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