2015-04-30 81 views
1

「ExoPlayer」等一些視頻播放器正在使用SurfaceView作爲VideoEngine的收聽者。在做截圖時,我只是得到一個黑色的圖像。播放視頻時從SurfaceView抓取幀/屏幕截圖

以下是我正在創建的截圖:

public Bitmap viewToBMP(View view) { 
     view.setDrawingCacheEnabled(true); 
     Bitmap  bitmap = Bitmap.createBitmap(view.getDrawingCache()); 
     view.setDrawingCacheEnabled(false); 
     return bitmap; 
    } 

我已經集中搜查SO,但目前還沒有相關的答案,只有解決方法。有解決方案嗎?

+0

你有沒有找到辦法做到這一點? – wilkas

回答

0

您可以嘗試使用View.draw(畫布畫布)。我不確定是否存在與SurfaceView相關的限制,但我知道類似的方法適用於拍攝WebViews的快照。

public Bitmap getBitmapFromView(View view) { 
    Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bitmap); 
    view.draw(canvas); 
    return bitmap; 
} 
+0

你試過了嗎? – user1767754