2017-07-31 3 views
0

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:

  1. 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.
  2. 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?

Répondre

0

L'accélération de la lecture a plusieurs variables à gérer. Jetez un oeil sur cette session https://developer.apple.com/videos/play/wwdc2016/503/ il contient la section "Accélérer HTTP Live Streaming" qui peut être utile.

Le temps de chargement peut contenir plusieurs composants, par ex. La playlist principale est trop longue et il faut du temps pour la charger et l'analyser (dans ce cas, il est recommandé de configurer la compression http avec gzip sur le serveur web) ou le flux FairPlay crypté avant de commencer à jouer. Si votre flux est une vidéo, vous pouvez également modifier la qualité initiale de la vidéo.