我的应用程序出现问题,我想在VideoView中使用seekTo()函数,如下所示:
videoView.seekTo(time);
videoView.start();
它在Android 2.2中运行良好,但在android 2.3或更高版本中不起作用... 有些人会告诉我为什么?这会让我感到烦恼。
答案 0 :(得分:3)
只有在搜寻完成后才能拨打VideoView.start()
。拨打VideoView.seekTo()
的电话会启动搜索,但遗憾的是VideoView
不支持通知搜索所需的OnSeekCompleteListener
。
您可以自定义VideoView
以支持OnSeekCompleteListener
,如my answer to 7990784所示。
然后,您可以通过致电onSeekComplete()
注册接收setOnSeekCompleteListener()
。然后,您的侦听器实现应该调用VideoView.start()
。
答案 1 :(得分:1)
为了正确操作方法seekTo()
,视频状态应位于PlaybackState
。
结帐VideoView
source here以获取更多信息。
答案 2 :(得分:1)
您是否尝试过 Vitamio 库中的VideoView类?
答案 3 :(得分:0)
此解决方案应该有效。
问题可能是videoView
内的媒体播放器尚未创建。
通过更改设备的方向,可以轻松进行测试。这就是我测试它的方式。
videoView.setOnPreparedListener(onPreparedListener);
private MediaPlayer.OnPreparedListener onPreparedListener = new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mp.seekTo(videoPosition);
}
};