版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hpb21/article/details/74548879
在小米的系统播放器中,在进行视频切换时会有画面残留。经过多次调试可以通过重绘surface完成,不过要注意重绘的时间。
核心代码:
getHolder().addCallback(
new SurfaceHolder.Callback2() {
@Override
public void surfaceRedrawNeeded(SurfaceHolder holder) {
}
@Override
public void surfaceCreated( final SurfaceHolder holder) {
SdkLogger. d( "surfaceCreated") ;
new Thread() {
@Override
public void run() {
SdkLogger. d( "clearSurfaceThread") ;
if ( holder != null) {
Canvas canvas = holder.lockCanvas() ;
if (canvas != null) {
canvas.drawColor(Color. TRANSPARENT , PorterDuff.Mode. CLEAR) ;
holder.unlockCanvasAndPost(canvas) ;
}
}
}
}.start() ;
}
@Override
public void surfaceChanged(SurfaceHolder holder , int format , int width , int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}) ;
@Override
public void surfaceRedrawNeeded(SurfaceHolder holder) {
}
@Override
public void surfaceCreated( final SurfaceHolder holder) {
SdkLogger. d( "surfaceCreated") ;
new Thread() {
@Override
public void run() {
SdkLogger. d( "clearSurfaceThread") ;
if ( holder != null) {
Canvas canvas = holder.lockCanvas() ;
if (canvas != null) {
canvas.drawColor(Color. TRANSPARENT , PorterDuff.Mode. CLEAR) ;
holder.unlockCanvasAndPost(canvas) ;
}
}
}
}.start() ;
}
@Override
public void surfaceChanged(SurfaceHolder holder , int format , int width , int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}) ;