【发布时间】:2013-01-05 04:30:38
【问题描述】:
我在一个 Cocoa 应用中使用 AVPlayer,并且我已经实现了一个跳转到视频结尾的命令。
问题是,AVPlayer 没有找到我告诉它的地方。
例如,我的其中一个视频时长为 4 分 14 秒。当我寻找到最后时,AVPlayer 寻找到 4 分 12 秒——短了 2 秒。如果我然后点击播放,播放器将播放两秒钟,然后到达终点。
我的第一次尝试是这样的:
[self.player seekToTime:self.player.currentItem.duration];
我已将其切换为:
[self.player seekToTime:self.player.currentItem.duration
toleranceBefore:kCMTimePositiveInfinity
toleranceAfter:kCMTimeZero];
没有一个比另一个更好。
我也尝试过寻找kCMTimePositiveInfinity。那时它只是不理我。
播放器是否已加载视频的那部分似乎并不重要。我什至可以追到未尽头,玩到真正的尽头,然后再试探到底,它会跳回未尽头。
差值并不总是两秒。在我的一些视频中,它或多或少完全正确,即使不完全正确,也非常接近真正的终点。至少在一个上,它缩短了三秒钟。长度似乎不是一个因素;所有这些长度都大致相同,除了一个长度超过一个小时,并且短到两秒。
那么,为什么 AVPlayer 比我告诉它的位置少了三秒,我如何说服它跳到我要求的那一刻?
【问题讨论】:
标签: macos osx-lion avfoundation avplayer