0

我正在使用 SurfaceView 播放视频,我想从正在运行的视频中获取图像,我尝试过使用 getDrawingCache(),但我得到的是空白图像或黑屏,但是当我绘制任何其他没有视频的布局的图像时,这是可行的很好,所以请任何人都可以解决如何从视频或表面视图中获取位图图像的问题。提前感谢,如果您知道,请回答我的问题。我已经使用了这段代码,但没有得到结果。

mVideo.setDrawingCacheEnabled(true);

  mVideo.buildDrawingCache();

  Bitmap b = mVideo.getDrawingCache();
4

1 回答 1

0

这不起作用,因为视频内容没有“暴露”到普通视图层。

如果您使用 API 级别 >= 10,则可以使用MediaMetadataRetriever getFrameAtTime. 它在这里描述。

即使这样也可能不会返回确切的帧,因为它相当依赖于硬件。

最可靠的方法是使用 FFMPEG 之类的东西自己访问流。

于 2013-06-15T10:03:24.473 回答