0
ユーザーがビデオを再生しているときに、ユーザーが一定の割合で再生したときを把握しようとしています。AVPlayerが総再生時間の特定のパーセンテージに達したときを検出しますか?
たとえば、ユーザーが動画を再生していて、ユーザーが50%再生したときに何らかの表示をしたいとします。
もっと明確にするには、50%が発生したときに「リスナー/オブザーバー」を設定する方法がありますか?観察する
ユーザーがビデオを再生しているときに、ユーザーが一定の割合で再生したときを把握しようとしています。AVPlayerが総再生時間の特定のパーセンテージに達したときを検出しますか?
たとえば、ユーザーが動画を再生していて、ユーザーが50%再生したときに何らかの表示をしたいとします。
もっと明確にするには、50%が発生したときに「リスナー/オブザーバー」を設定する方法がありますか?観察する
ベストな方法は、おそらくdocsからperiodTimeObserver
に使用するために、次のようになります。
func addPeriodicTimeObserver() {
// Invoke callback every half second
let interval = CMTime(seconds: 0.5,
preferredTimescale: CMTimeScale(NSEC_PER_SEC))
// Queue on which to invoke the callback
let mainQueue = DispatchQueue.main
// Add time observer
timeObserverToken =
player.addPeriodicTimeObserver(forInterval: interval, queue: mainQueue) {
[weak self] time in
// Check whether the time has reached half of duration
}
}
感謝。 @rashwanLが答えたところで、periodTimeObserverを使用する利点はありますか? – Changerrs
@Changerrs「ビデオのタイムティック」が無効になる可能性があるため、ビデオの専門家ではありませんが、内部実装の方がより良い方法がわかりました作成したカスタムタイマーと同期します。 – kgaidis