我在我的应用中使用VideoView播放视频。点击按钮,它会记录视频的当前位置,应用程序会打开浏览器并显示一些网址。按下后退按钮后,应用程序将返回视频应用程序并从中断处继续播放视频。
我查看了Android Activity生命周期,发现一旦视频活动到达前台,就会调用onStart()方法。所以我在onStart()中创建我的布局,并通过寻找当前位置来播放视频。
我的问题是,当视频恢复时,它会从一开始就缓冲,然后寻求。由于它已经第一次缓冲,有没有办法在执行seekTo时再次消除缓冲?
由于 克里斯
答案 0 :(得分:0)
我遇到了类似的问题。我有一个OnPreparedListener,它在开始之前执行seekTo。 seekTo的工作原理除了视频的一开始就有一个音频故障,就好像它开始播放然后寻找一样。我不知道我的代码是否有助于所描述的缓冲问题,但它可能有助于阐明它。
mVideoView.setVisibility(View.VISIBLE);
//get current window information, and set format, set it up differently, if you need some special effects
getWindow().setFormat(PixelFormat.TRANSLUCENT);
//mVideoView.setVideoURI(Uri.parse(path));
mVideoView.setVideoPath(path);
//get focus, before playing the video.
mVideoView.requestFocus();
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mVideoView.seekTo(mImageSeek);
mVideoView.start();
}
});
答案 1 :(得分:0)
定义资源视频视图,然后使用此代码
videoview = (VideoView) findViewById(R.id.videoview_play);
videoview.setVideoPath(dir + videoName);
//get focus, before playing the video.
videoview.setMediaController(new MediaController(this));
videoview.requestFocus();
videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp){
videoview.seekTo(5000);
videoview.start();
}
});
你必须添加.setMediaController(new MediaController(this));
和
videoview.requestFocus();
使用PrepareListener之前
希望它会帮助你