【发布时间】:2019-01-09 17:23:58
【问题描述】:
我正在尝试使用适用于 iOS12 的 Swift 3 在 AVPlayer 中播放 4k 视频,它工作得很好,但我希望这个视频在循环中播放。我发现有文章说,你应该使用这种方法来注册视频播放的结束:
NotificationCenter.default.addObserver(self, selector: #selector(self.replay),
name:NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)
在这种情况下,self.replay 会在播放器到达视频结尾时被调用。这适用于普通视频,但一旦我尝试播放约 4 秒长的视频,它就不会循环播放。
回放函数如下所示:
@objc func replay() {
self.playerViewController!.player?.seek(to: CMTime.zero)
self.playerViewController!.player!.playImmediately(atRate: 1)
}
我在呈现 ViewController 的 viewDidLoad 中添加了观察者。
这是一种竞争条件,因为如前所述,较长的视频可以正常工作吗?我怎样才能防止这种行为。
(旁注:不是普通的海报,所以如果我的问题被问错或难以理解,请告诉我)
【问题讨论】:
标签: swift swift3 avplayer notificationcenter