Android視訊部分截圖功能實現
阿新 • • 發佈:2019-02-16
最近想用將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 ++;
}