AVPlayer addPeriodicTimeObserver不会打印所有值

时间:2017-02-20 17:29:17

标签: swift avplayer intervals

我试图在我的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 ......)

1 个答案:

答案 0 :(得分:1)

正如documentation所述,您的回调无法保证按您的要求频繁调用:

  

如果间隔实时对应于非常短的间隔,则玩家可以比请求的频率更少地调用该块。即便如此,玩家也会经常足够地调用该块,以便客户端在其最终用户界面中适当地更新当前时间的指示。

您希望如此频繁地收到通知,您想要完成什么?