这应该是一个简单的。我有AVPlayer
播放视频文件,我希望能够跳转到特定时间,但我在理解CMTime
的工作方式时遇到了一些麻烦。
我需要以秒为单位指定时间。例如:如果我想跳到第二个10.8我想做这样的事情:
[self.avPlayer.currentItem seekToTime:CMTimeMakeWithSeconds(10.8, 1];
但我没有得到我想要的结果。
答案 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>