Android VideoView resume 和 seekTo
Posted
技术标签:
【中文标题】Android VideoView resume 和 seekTo【英文标题】:Android VideoView resume and seekTo 【发布时间】:2011-02-28 05:15:34 【问题描述】:我正在我的应用中使用 VideoView 播放视频。点击一个按钮,它会记录视频的当前位置,应用程序会打开带有一些 url 的浏览器。按下后退按钮后,应用程序将返回视频应用程序并从中断处继续播放视频。
我查看了 android Activity 生命周期,发现一旦视频 Activity 进入前台,就会调用 onStart() 方法。所以我在 onStart() 中创建我的布局并通过寻找当前位置来播放视频。
我的问题是,当视频继续播放时,它会从头开始缓冲,然后再搜索。既然第一次已经缓冲了,有没有办法在执行 seekTo 时再次消除缓冲?
谢谢 克里斯
【问题讨论】:
试试看我在7276825中的建议。 【参考方案1】:我也有类似的问题。我有一个 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();
);
【讨论】:
【参考方案2】:定义您的资源视频视图,然后使用此代码
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 之前
希望对你有帮助
【讨论】:
以上是关于Android VideoView resume 和 seekTo的主要内容,如果未能解决你的问题,请参考以下文章
Android 视频播放器 :使用VideoView播放视频