我正在使用 AVPlayer 播放视频。我希望能够根据用户的输入循环播放视频的各个部分(在播放视频时,用户可以按下按钮开始循环,然后在几秒钟后再次按下以结束 - 然后它应该从开始时间开始播放,并在当前时间到达指定的结束时间后继续循环)
我可以通过获取玩家的 currentTime 来获取这些开始/结束循环时间
var startLoop : CMTime = player.currentTime()
// seconds pass by ....
var endLoop : CMTime = player.currentTime()
我知道有一种方法可以在完成播放后将视频干净地循环回到开头,如下所示:
NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: self.player.currentItem, queue: .main) { [weak self] _ in
self?.player?.seek(to: CMTime.zero)
self?.player?.rate = self?.rate ?? 1.0
}
我想知道是否有办法用我的自定义 startLoop 和 endLoop 时间来做到这一点?