アクティビティのonPause()が呼び出されたときにビデオを一時停止しようとしています。それから活動を再開するときにそれが残った瞬間にそれを再開し、演奏を続ける。アクティビティを再開するときにMediaPlayerを再起動
私はこれを達成する方法について多くの記事を読んだことがあります。アクティビティのonPause()でmediaPlayer.pause()を呼び出し、ActivityのonResume()でmediaPlayer.play() 。シンプルなようだが、私はonResumeにIllegalStateExceptionが得続ける:mediaPlayer.play()
私はメディアプレーヤとvideoviewを設定してるところです:
videoView.setMediaController(mediaController);
videoView.setVideoURI(videoUri);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// Pass MediaPlayer to control playback speed
mediaController.setMediaPlayer(mp);
mp.start();
mediaPlayer = mp;
hideProgressBar();
}
});
私はAPI呼び出しからvideoUriを取得した後、このコードが呼び出されますこの呼び出しはonCreate()で行われます。
とonResume()onPause()で:
@Override
protected void onResume() {
super.onResume();
if (mediaPlayer != null) {
mediaPlayer.start();
}
}
@Override
protected void onPause() {
super.onPause();
if (mediaPlayer != null) {
mediaPlayer.pause();
}
}
?アクティビティが作成されるたびに作成されませんか? –
@Perroloco上記のようにonPrepared()からmpを取得し、そのmpをonPauseとonResumeから呼び出せるようにmpの参照を保持するために、そのmpをクラス属性であるmediaPlayerに割り当てます。 – IRPdevelop