问题描述:
原因是在编写视频播放时,能正常解码的视频,图像显示没有问题,当有问题的视频,播放器能播放,但是显示的是上一次播放的视频的最后一帧的图像,所以,本人想清除surfaceview的内容
清除画布试了一下不行,本人想建议一个空的surfaceview ,播放时将另外一个surfaceview是空的,默认是黑的,拷贝到当前的surfaceview,这样再打开mediaPlayer,实现,
public void clearDraw() {
SurfaceHolder holder = mSurfaceHolder;
Canvas canvas = null;
try {
canvas = holder.lockCanvas(null);
canvas.drawColor(Color.BLACK);
} catch (Exception e) {
} finally {
if (canvas != null) {
holder.unlockCanvasAndPost(canvas);
holder.getSurfaceFrame();
}
}
}
原因是在编写视频播放时,能正常解码的视频,图像显示没有问题,当有问题的视频,播放器能播放,但是显示的是上一次播放的视频的最后一帧的图像,所以,本人想清除surfaceview的内容
清除画布试了一下不行,本人想建议一个空的surfaceview ,播放时将另外一个surfaceview是空的,默认是黑的,拷贝到当前的surfaceview,这样再打开mediaPlayer,实现,
public void clearDraw() {
SurfaceHolder holder = mSurfaceHolder;
Canvas canvas = null;
try {
canvas = holder.lockCanvas(null);
canvas.drawColor(Color.BLACK);
} catch (Exception e) {
} finally {
if (canvas != null) {
holder.unlockCanvasAndPost(canvas);
holder.getSurfaceFrame();
}
}
}
解决方案
50
这个问题是MediaPlayer和SurfaceView数据同步的问题,你可以使用SurfaceView INVISIBlE 黑掉当前SurfaceView 2,3秒的样子 然后再重新VISIBLE