This other SO post建议当rate
的{{1}}属性为0时,表示AVPlayer
不再播放。我们使用下面的观察者代码来循环播放视频,但有时在播放器上调用AVPlayer
函数无法打破循环。调试时,pause
属性的计算结果为0。
1)链接的SO帖子是否错误,因为费率值为0并不意味着播放器暂停?
2)即使在调用rate
函数之后,连续循环是否已经发出pause
通知后pause
函数出现的某种竞争条件?
playerItemDidReachEnd
答案 0 :(得分:0)
设置播放器时:
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)
}
这将回放电影。
释放播放器时,请不要忘记取消注册通知。