2015-04-30 83 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