5

我正在尝试获取视频帧,所以我正在使用 MediaMetadataRetriever.getFrameAtTime() 像这样:

    Uri directorio = Uri.parse("android.resource://com.extremeye/" + R.raw.video);
    media = new MediaMetadataRetriever();
    media.setDataSource(this, directorio);

    frame = (ImageView)findViewById(R.id.frame);
    Bitmap bmFrame = media.getFrameAtTime();
    frame.setImageBitmap(bmFrame);

但问题是我得到:

MediaMetadataRetriever getFrameAtTime:视频帧是空指针

在 logCat 中。

我确定该视频与 android 操作系统兼容,并且 MediaMetadataRetriever 会加载它,因为我可以在 2.3.3 操作系统版本中毫无问题地获取它的元数据描述。

我不知道为什么我无法获得框架,但如果我使用 4.2 操作系统版本,它可以完美运行。我试图更改视频的编解码器和格式,但它不起作用......我想这是格式兼容性的问题,但我不知道我能做什么......

谢谢!!

4

1 回答 1

2

实际上我正在使用这个外部库中的 FFmpegMediaMetadataRetriever 类并且效果很好!

于 2013-11-04T17:01:39.773 回答