如何从表面视图上播放的视频中获取图像?

时间:2015-03-02 18:44:17

标签: android video android-mediaplayer surfaceview

我正在尝试捕捉在表面视图上播放的视频的最后一帧。视频正在从http播放,我无法使用mediaMetaDataRetriever,因为mediaplayer已经使用http连接,mediaMetaDataRetriever返回null。

是否有任何解决方案可以在surfaceView上“捕获”当前帧?

1 个答案:

答案 0 :(得分:0)

您无法从库存设备上的应用程序捕获SurfaceView的内容。

SurfaceView的表面实际上是具有生产者 - 消费者关系的缓冲区队列。您的应用程序是生产者,系统合成器称为“surfaceflinger”,是消费者。发送到地面的图像只能由消费者阅读。

如果您改为将视频播放到TextureView,则应该可以使用getBitmap()来获取一个帧。