0
当用户正在播放视频时,我试图弄清楚用户何时达到了特定的播放比例。当AVPlayer达到总持续时间的某个百分比时检测吗?
例如,用户在播放视频,我想在用户播放50%时显示一些视图。
更多说明,有没有办法在50%发生时设置“监听者/观察者”?观察
当用户正在播放视频时,我试图弄清楚用户何时达到了特定的播放比例。当AVPlayer达到总持续时间的某个百分比时检测吗?
例如,用户在播放视频,我想在用户播放50%时显示一些视图。
更多说明,有没有办法在50%发生时设置“监听者/观察者”?观察
最好的办法可能是从docs使用periodTimeObserver
:
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
}
}
谢谢。只是好奇使用periodTimeObserver有什么好处,而不是做@rashwanL在他的回答中提出的建议? – Changerrs
@Changerrs除了“你应该使用文档中列出的官方方法”的通常建议之外,“我不是视频专家,但是我可以看到他们的内部实现可能会更好,因为”视频时间滴答“可能会失效与您创建的自定义计时器同步。 – kgaidis