使用seekTo
给出了一个轻微的闪烁efeect再次开始视频。更好的方法是使用pause()
和start()
方法MediaPlayer
类而不是使用来自VideoView
的方法。 VideoView
的start()
方法从头开始重新开始视频,但start()
方法MediaPlayer
如果先前已调用pause()
方法,则重新开始播放视频。
下面是官方Android医生说
公共无效的start()
在API级别1开始或继续播放。如果先前已暂停播放 ,则播放将从暂停的 处继续播放。如果播放已停止,或从未开始播放,则将从头开始播放。
你可以得到一个VideoView
在VideoView
OnPreparedListener
相关的MediaPlayer
。
public class MainActivity extends Activity {
private MediaPlayer mMediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
VideoView videoView = (VideoView) findViewById(R.id.videoView1);
videoView.setVideoPath(path);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mMediaPlayer = mp;
}
});
}
}
然后后续pause()
和resume()
方法可以在MediaPlayer
对象本身被调用。
//To pause the video
mMediaPlayer.pause();
//To resume the video
mMediaPlayer.start();
非常简单而有效的解决方案。希望能帮助到你!
你可以在onSaveInstanceState(Bundle outState)期间在outState中存储你的'stopPosition',比你可以在你的活动中使用onCreate(Bundle savedInstanceState)提取它。 – Entreco 2012-12-28 15:00:33