Je suis en train de précharger la première seconde d'une liste de playerItems pour empêcher le retard au début. J'utilise preferredForwardBufferDuration pour précharger.préchargement streaming HLS pour une liste de playerItem
Voici un extrait pour la configuration de pré-charge:
//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;
J'ai deux questions:
- Je remarquai qu'il faut environ 1-3 secondes (grand wifi) pour Le statut de playerItem passe de AVPlayerItemStatusUnknown à AVPlayerItemStatusReadyToPlay après l'installation. Donc, si je touche pour jouer dans 1 seconde après la configuration de la précharge, il faudra attendre jusqu'à ce que le statut passe à prêt. Pourquoi cela prend-il autant de temps et qu'est-ce qui cause le changement de statut? La préextraction de la première 1 seconde sous un bon wifi ne devrait pas prendre autant de temps.
- Je voudrais précharger la première seconde d'une liste d'éléments PlayerItems. Est-il possible d'utiliser la méthode ci-dessus? Ou si je peux utiliser AVAssetResourceLoader?