閱讀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倒序輸出、正則將首字母大寫