检测 AVPlayer 何时达到总播放时间的特定百分比?

Detect when AVPlayer reaches certain percentage played of the total duration?

当用户播放视频时,我试图弄清楚用户何时达到一定的播放百分比。

例如,用户正在播放视频,我想在用户播放到 50% 时显示一些视图。

更多说明,有没有办法为 50% 发生时设置 "listener/observer"?

最好的观察方法可能是使用 to periodTimeObserver from docs:

func addPeriodicTimeObserver() {
    // Invoke callback every half second
    let interval = CMTime(seconds: 0.5,
                          preferredTimescale: CMTimeScale(NSEC_PER_SEC))
    // Queue on which to invoke the callback
    let mainQueue = DispatchQueue.main
    // Add time observer
    timeObserverToken =
        player.addPeriodicTimeObserver(forInterval: interval, queue: mainQueue) {
            [weak self] time in
            // Check whether the time has reached half of duration
    }
}