Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android TextureView:调用getBitmap时显示灰色帧的视频_Android_Video_Textureview - Fatal编程技术网

Android TextureView:调用getBitmap时显示灰色帧的视频

Android TextureView:调用getBitmap时显示灰色帧的视频,android,video,textureview,Android,Video,Textureview,我正在开发一款android应用程序,当用户点击按钮时,它可以从视频中抓取画面,这是一款配置为使用TextureView播放视频的android应用程序。为了将帧捕获为位图,我使用: Bitmap bit = textureView.getBitmap(width, height); 它工作正常,但“getBitmap”需要相当长的时间(640x480帧大约150-200毫秒)。问题在于调用getBitmap时,视图上显示灰色帧。看起来好像有什么东西在弹。有没有办法解决这个问题 谢谢您应该使用

我正在开发一款android应用程序,当用户点击按钮时,它可以从视频中抓取画面,这是一款配置为使用TextureView播放视频的android应用程序。为了将帧捕获为位图,我使用:

Bitmap bit = textureView.getBitmap(width, height);
它工作正常,但“getBitmap”需要相当长的时间(640x480帧大约150-200毫秒)。问题在于调用getBitmap时,视图上显示灰色帧。看起来好像有什么东西在弹。有没有办法解决这个问题


谢谢

您应该使用处理程序来避免延迟时间

new Handler().post(new Runnable() {
@Override
public void run() {
    try {
        Bitmap bit = textureView.getBitmap(width, height);
        //you could save the video frames to use later
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}});

您是否尝试在单独的线程中运行getBitmap方法?获取位图仍然需要一些时间,但至少不会影响显示回调!捕获发生在同一个线程上,捕获帧需要花费很多时间