【问题标题】:How to get image from video played on a surface view?如何从表面视图上播放的视频中获取图像?
【发布时间】:2015-03-02 18:44:16
【问题描述】:
我正在尝试捕捉在表面视图上播放的视频的最后一帧。视频是从 http 播放的,我不能使用 mediaMetaDataRetriever,因为 mediaplayer 已经使用了 http 连接,而 mediaMetaDataRetriever 返回 null。
在surfaceView上“捕获”当前帧有什么解决方案吗?
【问题讨论】:
标签:
android
video
android-mediaplayer
surfaceview
【解决方案1】:
您无法从现有设备上的应用中捕获 SurfaceView 的内容。
SurfaceView 的表面实际上是一个具有生产者-消费者关系的缓冲区队列。您的应用程序是生产者,系统合成器(称为“surfaceflinger”)是消费者。发送到表面的图像只能由消费者读取。
如果您改为将视频播放到TextureView,您应该可以使用getBitmap() 来获取帧。