这是我的视频播放器活动:
public class myActivity extends Activity
implements MediaPlayer.OnPreparedListener,
MediaController.MediaPlayerControl {
....
}
并且在它的onPause
方法中我不发布MediaPlayer
并且我只是pause
它:
@Override
protected void onPause() {
super.onPause();
lastPlaybackInfo.IsPlaying = mMediaPlayer.isPlaying();
mMediaPlayer.pause();
lastPlaybackInfo.SeekPosition = mMediaPlayer.getCurrentPosition();
}
并且在onResume
@Override
protected void onResume() {
super.onResume();
if (mMediaPlayer != null) {
if (lastPlaybackInfo.IsPlaying) {
mMediaPlayer.start();
} else {
mMediaPlayer.seekTo(lastPlaybackInfo.SeekPosition);
}
mMediaController.show();
}
}
和 onTouchEvent:
@Override
public boolean onTouchEvent(MotionEvent event) {
mMediaController.show();
return true;
}
我有两个问题:
第一个问题是,一旦应用程序恢复,
MediaController
所绑定的MediaPlayer
仅显示一次(调用 inonResume
),之后调用onTouchEvent
不显示MediaController
。第二个是,如果
MediaPlayer
在应用程序暂停之前暂停,则在恢复应用程序后,SurfaceView
绑定MediaPlayer
为黑色并且不显示最后渲染的帧。