seekTo()函数在VideoView中不起作用

时间:2012-04-26 07:17:26

标签: android

我的应用程序出现问题,我想在VideoView中使用seekTo()函数,如下所示:

videoView.seekTo(time);
videoView.start();

它在Android 2.2中运行良好,但在android 2.3或更高版本中不起作用... 有些人会告诉我为什么?这会让我感到烦恼。

4 个答案:

答案 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类?

Vitamio

答案 3 :(得分:0)

此解决方案应该有效。 问题可能是videoView内的媒体播放器尚未创建。

通过更改设备的方向,可以轻松进行测试。这就是我测试它的方式。

videoView.setOnPreparedListener(onPreparedListener);
private MediaPlayer.OnPreparedListener onPreparedListener = new MediaPlayer.OnPreparedListener() {
    public void onPrepared(MediaPlayer mp) {
        mp.seekTo(videoPosition);
    }
};