私はplayerItemのリストの最初の秒をプリロードして、最初の遅延を防ぐようにしています。 私はpreferredForwardBufferDurationを使ってプリロードしています。preload playerItemのリストのHLSストリーミング
- 私はそれが約1〜3秒(偉大な無線LAN)用を取ることに気づいた:私は2つの質問がある
//setup repload in advance VURLAsset *asset = [AVURLAsset assetWithURL:m3u8URL]; AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset]; playerItem.preferredForwardBufferDuration = 1; AVPlayer *player = [[AVPlayer alloc] init]; _playerLayer.player = player; player.replaceCurrentItemWithPlayerItem(playerItem)
// as soon as playback begins, reset it to 0 _item.preferredForwardBufferDuration = 0;
:ここ
は、プリロードのセットアップのためのスニペットです設定後、playerItemステータスがAVPlayerItemStatusUnknownからAVPlayerItemStatusReadyToPlayに変更されます。したがって、プレロード設定後に1秒以内にタップして再生すると、状態が準備完了に変わるまで待たなければなりません。なぜそれが多くの時間を費やしているのか、そして状態変化の原因は何ですか?素晴らしいWi-Fiの下で最初の1秒を先読みしてもそれほど長い時間はかかりません。 - 私はplayerItemのリストの最初の秒を事前にロードしたいと思います。上記の方法を使用することは可能ですか?または、AVAssetResourceLoaderを使用できますか?