1. 程式人生 > >Android視訊部分截圖功能實現

Android視訊部分截圖功能實現

最近想用將android視訊接收app上加上螢幕截圖功能,直接在網上查詢截圖程式碼,發現結出來的圖不對勁,視訊視窗變成黑色的了,沒有截圖成功。而且網上大多數的方法都是利用view套件裡的getDrawingCache()函式。我繼續在網上查詢答案,發現有人這樣解釋,說Activity畫面走的是framebuffer,視訊是硬解碼推送過來的,所有讀取/dev/graphics/fb0 視訊播放的那一塊就是黑色的。
最後我找到了一種可行的方法,使用adb命令擷取全屏,然後再用程式碼對擷取的全屏圖片進行擷取處理為需要的部分。大家可以試一試。

public void takeScreenShot() {
        File file = new File("/mnt/sdcard/dji_picture"
); if (!file.exists()) { file.mkdir(); } //String mSavedPath = Environment.getExternalStorageDirectory() + dir.separator + "sreenshot.png"; String mSavedPath = file.getAbsolutePath() + file.separator + "sreenshot" + Integer.toString(sum) + ".png"; try { Runtime.getRuntime
().exec("screencap -p " + mSavedPath); } catch (Exception e) { e.printStackTrace(); } sum ++; }