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

Cha*_*rrs 2 ios avplayer swift

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

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

更澄清一下,有没有办法在 50% 发生时设置“监听器/观察器”?

kga*_*dis 5

观察的最佳方法可能是使用 to periodTimeObserverfrom 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
    }
}
Run Code Online (Sandbox Code Playgroud)