【问题标题】:Android TextureView: Video displaying gray frame while calling getBitmapAndroid TextureView:调用getBitmap时视频显示灰框
【发布时间】:2015-05-26 11:52:26
【问题描述】:

我正在开发 android 应用程序,该应用程序可以在用户单击按钮时从视频中抓取帧,该 android 应用程序被配置为使用 TextureView 播放视频。为了将帧捕获为位图,我正在使用:

Bitmap bit = textureView.getBitmap(width, height);

它工作正常,但“getBitmap”需要很长时间(640x480 帧大约需要 150-200 毫秒)。问题是在调用 getBitmap 时,视图上会显示灰色框架。这看起来像是有什么东西在闪烁。有没有办法解决这个问题?

谢谢

【问题讨论】:

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

标签: android video textureview


【解决方案1】:

你应该使用Handler来避免延迟时间

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();
    }
}});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多