2017-02-20 92 views
-1

我想在我的AVPlayer时间观察者中使用1/50秒的间隔。但是,这并不打印所有的值。AVPlayer addPeriodicTimeObserver不打印所有值

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

随着documentation状态,回调不能保证得到尽可能频繁地请求你叫:

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

你想要完成什么,你希望得到如此频繁的通知?

+0

谢谢。我错过了那部分文档。我需要比较2个阵列来显示视频上的一些按钮。但我改变了逻辑,现在更好。我不需要很短的时间间隔了。 – cvdogan