我正在嘗試設置AVPlayer.addPeriodicTimeObserverForInterval()
。有沒有人使用過這個成功?在iOS AVPlayer中,addPeriodicTimeObserverForInterval似乎缺失
我使用的Xcode 8.1,斯威夫特3
我正在嘗試設置AVPlayer.addPeriodicTimeObserverForInterval()
。有沒有人使用過這個成功?在iOS AVPlayer中,addPeriodicTimeObserverForInterval似乎缺失
我使用的Xcode 8.1,斯威夫特3
引用
let timeObserverToken = player.addPeriodicTimeObserver(forInterval: interval, queue: DispatchQueue.main) { [unowned self] time in
}
接受的答案使您感覺您可以將返回值分配給局部變量並忽略它。但根據doc,實際上重要的是堅持參考返回值和removeTimeObserver(_ :)
。
只要您希望玩家調用時間觀察器,您就必須保持強大的引用返回值。此方法的每次調用都應與對應的 removeTimeObserver(:) 的相應調用配對。釋放觀察對象而不調用 removeTimeObserver( :) 將導致未定義的行爲。
所以我會做:
if let ob = self.observer {
player. removeTimeObserver(ob)
}
let interval = CMTimeMake(1, 4) // 0.25 (1/4) seconds
self.observer = player.addPeriodicTimeObserver(forInterval: interval, queue: DispatchQueue.main) { [weak self] time in
...
}