我有一个AVPlayer
,我想在11.593
秒的特定时间开始播放。我有一个从URL字符串中检索到的数字(以毫秒为单位),然后转换为Double
,然后转换为CMTime
,如下所示:
http://www.mywebsite.com/video?s=11593
将11593
提取为String
->转换为Double
11593.0
。
然后我将其转换为CMTime
:
let time = CMTime(seconds: milliseconds,
preferredTimescale: CMTimeScale(NSEC_PER_MSEC))
然后我告诉AVPlayer
寻求:
player.seek(to: time, toleranceBefore: .zero, toleranceAfter: .zero)
但是玩家总是寻求25.88
秒。为什么?
答案 0 :(得分:0)
您对CMTime(seconds:preferredTimescale:)
的整个使用是错误的。第一个参数应为秒数(因此,名称为seconds:
),而不是毫秒数;第二个参数应该是合理的时间范围,例如600。