Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android SurfaceView show image after video (clear surface)

My task - play video on SurfaceView, after stop show image in SurfaceView

My code for play

mPlayer.setOnCompletionListener(onCompletionListener);
mPlayer.setDisplay(view.getHolder());
mPlayer.reset();
mPlayer.setDataSource(file.getAbsolutePath());
mPlayer.prepare();
mPlayer.start();

all ok video playing

in onCompletion

mPlayer.reset();
mPlayer.setDisplay(null);
view.setBackgroundDrawable(Drawable.createFromPath(file.toString()));

but image is transparend and on background i see last video frame - its no good. How clear surface?

I try use

holder.lockCanvas()

but this return null, why?

like image 379
Alexandr Sulimov Avatar asked Oct 22 '22 02:10

Alexandr Sulimov


1 Answers

I have a same problem and i fixed it by using these two lines after player release.

surfaceViewHolder.setFormat(PixelFormat.TRANSPARENT);
surfaceViewHolder.setFormat(PixelFormat.OPAQUE);
like image 64
Zia Avatar answered Oct 29 '22 19:10

Zia