我的应用在Surfaceview中播放视频。我在onPause()时停止播放媒体播放器。但是,当我从另一个活动返回时,surfaceview全黑,只有当我再次开始播放视频时才开始显示帧。我想知道是否有一种方法可以在停止时保留最后一帧。非常感谢。
答案 0 :(得分:0)
我使用了2个SurfaceViews,第一个用于播放视频,第二个用于显示图片。 当我从暂停状态返回时,如果媒体播放器没有播放,我会通过这部分代码获得当前的视频帧:
try {
mediaMDRetriever.setDataSource(mediaPath);
picBitmap = mediaMDRetriever.getFrameAtTime();
} catch (Exception e) {
}
并在第二个冲浪视图上绘制。
如果需要,您可以通过以下代码清除第二个SurfaceView:
Canvas surfCanvas = surfHolder2.lockCanvas();
surfCanvas.drawColor( 0, PorterDuff.Mode.CLEAR );
surfHolder2.unlockCanvasAndPost( surfCanvas );