在使用Mediaplayer播放视频的时候,很自然的想到一个功能就是能否截取其中的一个视频画面,并导出成一张图片。
但是很遗憾,查了很多方法,也没发现类似接口。
后来想到Mediaplayer的画面是在SurfaceView中刷新的,所以又想到能否通过view的截图方法来得到。
(view的截图方法参考:http://lovezhou.iteye.com/blog/836662)
可是我尝试之后,发现截图是黑屏。
后来,找到以下一段文字:(来自:http://www.son1c.net/android_develop/2089.html)
2. SurfaceView如何截图 ? 使用Linux下标准的Framebuffer无法获取是一片黑色,类似Windows下截取DirectX这样的DMA模式的数据一样,由于SurfaceView在游戏或高实时性画面比较多,Android除了从2.3.3开始新增了一个SurfaceFlinger API用于截图.当然有关OpenGL的截图还可以查看android开发网早期文章,如果你有Root权限截图普通图片通过读取/dev/graphics/fb0即可。