草庐IT

android - MediaMetadataRetriever getFrameAtTime : videoframe is a null pointer

coder 2023-12-16 原文

我正在尝试获取视频的帧,所以我像这样使用 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: videoframe is a null pointer

在 logCat 中。

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

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

谢谢!!

最佳答案

实际上我使用的是 this external library 中的 FFmpegMediaMetadataRetriever 类效果很好!!

关于android - MediaMetadataRetriever getFrameAtTime : videoframe is a null pointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17743988/

有关android - MediaMetadataRetriever getFrameAtTime : videoframe is a null pointer的更多相关文章

随机推荐