使用seekTo
会在恢复视频时产生轻微的闪烁效果。更好的方法是使用pause()
类的start()
方法,MediaPlayer
而不是使用VideoView
. 的start()
方法VideoView
从头开始重新开始视频,但如果之前调用了该start()
方法,MediaPlayer
则恢复视频的方法。pause()
这是官方 android 文档所说的
公共无效开始()
在 API 级别 1 中添加 开始或恢复播放。如果之前已暂停播放,则播放将从暂停的位置继续。如果播放已停止,或以前从未开始,则播放将从头开始。
您可以获得MediaPlayer
与VideoView
in OnPreparedListener
of相关联的VideoView
。
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();
非常简单而有效的解决方案。希望能帮助到你!