阅读582 返回首页    go 阿里云 go 技术社区[云栖]


关于SurfaceView的截图问题

在使用Mediaplayer播放视频的时候,很自然的想到一个功能就是能否截取其中的一个视频画面,并导出成一张图片。

但是很遗憾,查了很多方法,也没发现类似接口。

后来想到Mediaplayer的画面是在SurfaceView中刷新的,所以又想到能否通过view的截图方法来得到。

(view的截图方法参考:https://lovezhou.iteye.com/blog/836662

可是我尝试之后,发现截图是黑屏。

后来,找到以下一段文字:(来自:https://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即可。


最后更新:2017-04-02 06:52:11

  上一篇:go 我奋斗了18年才和你坐在一起喝咖啡
  下一篇:go JAVA面试题-STRINGBUFFER倒序输出、正则将首字母大写