【问题标题】:seekTo in VideoView视频视图中的 seekTo
【发布时间】:2010-12-27 17:11:10
【问题描述】:


我在寻找视频时遇到问题。 我的应用程序应该从上次停止的地方恢复视频。所以我这样做:

videoView.seekTo(bookmark);
videoView.start();
但是,当它播放时,我听到视频开头的声音大约 1-2 秒。只有在该视频寻找到正确的位置之后。此行为可在 HTC Nexus One、HTC G1、HTC evo 上重现。但在三星 Galaxy Tab 上一切正常。

有人遇到过类似的问题吗?这个错误是 HTC 特有的吗?提前致谢。

【问题讨论】:

    标签: android android-videoview seek


    【解决方案1】:

    这绝对不是您的手机特有的。我在 HTC Incredible 上遇到了同样的问题。 seekTo 有效,但剪辑开头出现音频故障。根据尝试实现自定义 VideoView 的结果,我想我不会遇到麻烦。我现在要看看是否可以将剪辑的开头静音。如果我成功了,我会在这里报告。

    好吧,我已经放弃了。我发现使剪辑开头静音的唯一方法是使手机完全静音,这也会使背景音乐静音。我假设这将在未来某个时候得到修复,因为这是一个已知问题:

    http://code.google.com/p/android/issues/detail?id=9135 问题 9135:MediaPlayer/VideoView 和 SeekTo 在初始播放之前从头开始几毫秒

    【讨论】:

      【解决方案2】:

      我想这可能是一个原因:

      来自api doc

      虽然异步 seekTo(int) 调用以正确的方式返回,但实际的 seek 操作可能需要一段时间才能完成,尤其是对于正在流式传输的音频/视频。实际搜索操作完成后,如果已通过 setOnSeekCompleteListener(OnSeekCompleteListener) 预先注册了 OnSeekCompleteListener,则内部播放器引擎会调用用户提供的 OnSeekComplete.onSeekComplete()。

      现在 Videoview 没有暴露 On​​SeekCompleteListener 并且很烂,但 Videoview 只是 Mediaplayer 和 SurfaceView 的包装类

      【讨论】:

      • 感谢您的回答。也感谢我自己实现自定义 VideoView 的想法
      • 尝试自己实现 VideoView。即使在调用onSeekComplete() 之后调用start(),我仍然遇到同样的问题。首先,我认为问题出在VideoView.mSHCallback 中,它在 OS 1.6 上调用 start() 并进行了修复。所以我只有在玩家准备好并设置搜索位置后才调用start()。启动时仍然打嗝。
      • 您能否解释一下如何实现 videoview 并仍然设法使用 onSeekComplete()。谢谢
      • 你从哪里引用 api 文档?我看到的关于 seekTo 的描述是:Seeks to specified time position.
      • mishkin 是对的,VideoView 只是一个包装器,您可以通过复制它来自定义,试试看我对7990784 的回答。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 2014-02-12
      相关资源
      最近更新 更多