在VideoView中寻找

und*_*ood 6 android seek android-videoview


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

videoView.seekTo(bookmark);
videoView.start();
Run Code Online (Sandbox Code Playgroud)然而,当它播放时,我听到声音从视频开始约1-2秒.只有在那个视频寻找合适的位置之后.这种行为在HTC Nexus One,HTC G1,HTC evo上是可重现的.但在三星Galaxy标签上,所有播放都正常.

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

mis*_*kin 2

我想这可能是一个原因:

来自API 文档

尽管异步的seekTo(int)调用返回正确的方式,但实际的查找操作可能需要一段时间才能完成,特别是对于流式传输的音频/视频。当实际的查找操作完成时,如果预先通过 setOnSeekCompleteListener(OnSeekCompleteListener) 注册了 OnSeekCompleteListener,则内部播放器引擎会调用用户提供的 OnSeekComplete.onSeekComplete()。

现在Videoview没有暴露OnSeekCompleteListener,这很糟糕,但Videoview只是Mediaplayer和SurfaceView的包装类

  • 尝试自己实现VideoView。即使我在调用`onSeekComplete()`之后调用`start()`,我仍然遇到同样的问题。首先,我认为问题出在“VideoView.mSHCallback”中,它在 OS 1.6 上调用“start()”并进行了修复。所以我只有在玩家准备好并设置搜索位置后才调用“start()”。启动时仍然出现问题。 (2认同)