在AVPlayer seekToTime中使用秒

时间:2014-03-26 15:44:48

标签: ios avplayer cmtime

这应该是一个简单的。我有AVPlayer播放视频文件,我希望能够跳转到特定时间,但我在理解CMTime的工作方式时遇到了一些麻烦。

我需要以秒为单位指定时间。例如:如果我想跳到第二个10.8我想做这样的事情:

[self.avPlayer.currentItem seekToTime:CMTimeMakeWithSeconds(10.8, 1];

但我没有得到我想要的结果。

4 个答案:

答案 0 :(得分:15)

http://warrenmoore.net/understanding-cmtime

可能会让您更清楚地了解CMTime。

如果您将线路更改为阅读...

[self.avPlayer.currentItem seekToTime:CMTimeMakeWithSeconds(10.8, 60000)];

您可能会获得更好的结果。 60000是一秒钟内有多少项目。如果你使用1作为这个值,那么你每秒只能跳到一个地方 - 通过放60000你在第二个10和第二个11之间给自己60000个位置。

答案 1 :(得分:0)

Swift版

avPlayer.seek(to:CMTimeMakeWihtSeconds(10.8,1000))

答案 2 :(得分:0)

如果您需要寻找非常特定的时间,我建议您在容忍的情况下使用此方法:

let myTime = CMTime(seconds: 10.8, preferredTimescale: 60000)    
player.seek(to: myTime, toleranceBefore: .zero, toleranceAfter: .zero)

文档:link。苹果建议使用它以提高准确性。

答案 3 :(得分:0)

Swift 5.1版本

<b>, <i>