使用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