0

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 時間でこれを行う方法があるかどうか疑問に思っていましたか?

4

1 に答える 1