surfaceview と mediaplayer でビデオプレーヤーを作りました。10 個のビデオと 10 個のボタンがあります。各ボタンをクリックすると、各動画が再生されます。
ここに私のコードがあります..
//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..
すべて順調。私のカスタムビデオビューは問題なく動作しています。しかし、ビデオが次のビデオに移るとき、前のビデオの最後のシーンがしばらく残り、次のビデオ シーンに変わります。
次のビデオが再生される前に、前のサーフェスビューがクリアされている必要があるためだと思います。しかし、サーフェスビューまたはサーフェスホルダーをクリアする方法がわかりません。
私はこれを検索しましたが、ビデオを再生する方法しか見つけられませんでした。
助けてください~~!