这应该是一个简单的问题。我有一个播放视频文件的AVPlayer,我希望能够跳到特定的时间,但我在理解CMTime的工作原理时遇到了一些问题。
我需要以秒为单位指定时间。例如:如果我想跳到秒10.8,我想这样做:
[self.avPlayer.currentItem seekToTime:CMTimeMakeWithSeconds(10.8, 1];但是我没有得到我想要的结果。
发布于 2014-03-28 04:59:37
http://warrenmoore.net/understanding-cmtime
可能会让你对CMTime有一个更清晰的了解。
如果你把行改成了...
[self.avPlayer.currentItem seekToTime:CMTimeMakeWithSeconds(10.8, 60000)];你可能会得到更好的结果。60000是指一秒钟内有多少个项目。如果你用1作为这个值,那么你每秒只能跳到一个位置--把60000放在10秒和11秒之间,你就给了自己60000个位置。
发布于 2019-03-04 08:44:06
如果您需要寻找一个非常具体的时间,我建议您使用以下方法:
let myTime = CMTime(seconds: 10.8, preferredTimescale: 60000)
player.seek(to: myTime, toleranceBefore: .zero, toleranceAfter: .zero)文档:link。苹果公司建议使用它来提高精确度。
发布于 2017-06-21 00:36:25
Swift版本
avPlayer.seek(to:CMTimeMakeWithSeconds(10.8,1000))https://stackoverflow.com/questions/22666190
复制相似问题