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