我试图在我的AVPlayer时间观察器中使用1/50秒间隔。但这不会打印所有值。
let interval = CMTimeMake(1, 50)
AVPlayerVC.player?.addPeriodicTimeObserver(forInterval: interval, queue: DispatchQueue.main, using: {(progressTime) in
let seconds = CMTimeGetSeconds(progressTime)
let doubleSeconds = String(format: "%.2f", seconds)
print ("\(doubleSeconds) -")
这是结果: 0.00 - 0.05 - 0.09 - 0.13 - 0.21 - 0.30 - 0.40 - 0.45 - 0.54 - 0.59 - 0.70 - 0.75 - 0.85 - 0.96 - 1.07
我怎么能每0.02秒一次? (0.00 - 0.02 - 0.04 - 0.06 ......)
答案 0 :(得分:1)
正如documentation所述,您的回调无法保证按您的要求频繁调用:
如果间隔实时对应于非常短的间隔,则玩家可以比请求的频率更少地调用该块。即便如此,玩家也会经常足够地调用该块,以便客户端在其最终用户界面中适当地更新当前时间的指示。
您希望如此频繁地收到通知,您想要完成什么?