簡體   English   中英

即使速率屬性為0,AVPlayer仍在播放

[英]AVPlayer playing even though rate property is 0

另一個SO帖子建議,當AVPlayerrate屬性為0時,這意味着AVPlayer不再播放。 我們使用下面的觀察者代碼循環播放視頻,但有時在播放器上調用pause功能無法中斷循環播放。 調試時, rate屬性的值為0。

1)鏈接的SO發布是否錯誤,因為費率值0並不表示玩家已暫停?

2)是連續循環中,即使在pause函數被調用,某種競爭條件,其中pause功能來后playerItemDidReachEnd通知已發出?

NSNotificationCenter.defaultCenter().addObserver(self, selector: "playerItemDidReachEnd:", name: AVPlayerItemDidPlayToEndTimeNotification, object: playerItem)

private func playVideo() {
    player.seekToTime(kCMTimeZero)
    player.actionAtItemEnd = .Pause
    player.play()
}

設置播放器時:

player.actionAtItemEnd = AVPlayerActionAtItemEnd.None

NSNotificationCenter.defaultCenter().addObserver(self, 
                                                 selector: "playerItemDidReachEnd:", 
                                                 name: AVPlayerItemDidPlayToEndTimeNotification, 
                                                 object: player.currentItem)

這樣可以防止播放器在結尾處暫停。

在通知中:

func playerItemDidReachEnd(notification: NSNotification) {
    let p: AVPlayerItem = notification.object as! AVPlayerItem
    p.seekToTime(kCMTimeZero)
}

這將倒帶電影。

釋放播放器時,請不要忘記注銷通知。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM