我正在尝试获取视频的帧,所以我像这样使用 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/