Yüzey görünümü ve mediaplayer ile bir video oynatıcı yaptım. 10 video ve 10 düğüme sahibim. , her bir düğmeyi tıklarsanız, her video oynatılır.Medya yürütücü bittiğinde yüzey tutucu nasıl temizlenmeli?
buradabenim kodudur ..
//onCreate
holder = surfaceview.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
//Button1
if(mp == null)mp = new MediaPlayer();
mp.setDataSource(mediaplay_path);
mp.setDisplay(holder);
mp.setScreenOnWhilePlaying(true);
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.prepare();
mp.start();
//Button2
if(mp != null){
mp.stop();
mp.reset();
}
mp.setDataSource(mediaplay_path2);
mp.setDisplay(holder);
mp.setScreenOnWhilePlaying(true);
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.prepare();
mp.start();
//Button3~Button10 is same as Button2..
her şey yolunda. Özel video görüşüm iyi çalışıyor. ancak video bir sonrakine geçtiğinde, önceki videonun son sahnesi bir süre kalır ve bir sonraki video sahnesine döner.
Bunun nedeni, bir sonraki videonun oynatılmadan önce önceki yüzey görünümünün net olması gerektiğidir. ancak yüzey görünümünü veya yüzey tutucuyu nasıl temizleyeceğimi bilmiyorum.
Bunun için arama yaptım, ancak sadece videonun nasıl oynanacağını bulabilirim, mediaplayer'dan neşeyle belirlenen yüzey görünümünü nasıl temizleyeceğimi değil.
Lütfen bana yardım edin ~~!
En iyi çözüm bu mu? Sonraki videodan önce SurfaceHolder'ı temizlemek için bir yol yok mu? –
void ClearTextureView() { var cnv = _textureView.LockCanvas(); cnv.DrawColor (Android.Graphics.Color.Transparent, Android.Graphics.PorterDuff.Mode.Clear); _textureView.UnlockCanvasAndPost (cnv); } –