Mise en file d'attente

Le framework Cast fournit des API de mise en file d'attente permettant de créer des listes d'éléments de contenu, tels que des flux vidéo ou audio, à lire de manière séquentielle sur le récepteur Web. La file d'attente des éléments de contenu peut être modifiée, réorganisée, mise à jour, etc.

Le SDK Web Receiver gère la file d'attente et répond aux opérations qu'elle contient tant qu'au moins un élément de la file d'attente est actif (en lecture ou en pause). Les expéditeurs peuvent rejoindre la session et ajouter des éléments à la file d'attente. Le destinataire conserve une session pour les éléments de la file d'attente jusqu'à ce que le dernier élément termine la lecture, ou que l'expéditeur arrête la lecture et mette fin à la session, ou jusqu'à ce qu'un expéditeur charge une nouvelle file d'attente sur le récepteur. Par défaut, le récepteur ne conserve aucune information sur les files d'attente arrêtées. Une fois le dernier élément de la file d'attente terminé, la session multimédia se termine, et la file d'attente disparaît.

Créer et charger des éléments de file d'attente multimédia

Dans iOS, un élément de file d'attente multimédia est représenté dans le framework Cast par une instance GCKMediaQueueItem. Lorsque vous créez un élément de file d'attente multimédia avec du contenu adaptatif, vous pouvez définir le temps de préchargement afin que le lecteur puisse commencer à mettre en mémoire tampon l'élément de file d'attente multimédia avant la fin de la lecture de l'élément qui le précède. Pour en savoir plus sur le préchargement, consultez le guide de préchargement de Web Receiver.

Définir l'attribut de lecture automatique de l'élément sur "true" permet au récepteur Web de le lire automatiquement. Par exemple, vous pouvez utiliser un schéma de compilateur pour créer votre élément de file d'attente multimédia comme suit:

Swift
let builder = GCKMediaQueueItemBuilder.init()
builder.mediaInformation = mediaInformation
builder.autoplay = true
builder.preloadTime = 8.0
let newItem = builder.build()
Goal-C
GCKMediaQueueItemBuilder *builder = [[GCKMediaQueueItemBuilder alloc] init];
builder.mediaInformation = self.mediaInformation;
builder.autoplay = YES;
builder.preloadTime = 8.0;
GCKMediaQueueItem *newItem = [builder build];

Chargez un tableau d'éléments de file d'attente multimédia à l'aide de la méthode queueLoadItems appropriée de la classe GCKRemoteMediaClient.

Recevoir des informations sur l'état de la file d'attente multimédia

Lorsque le récepteur Web charge un élément de file d'attente multimédia, il attribue un ID unique à l'élément qui est conservé pendant toute la durée de la session (et celle de la file d'attente). Vous pouvez apprendre l'état de la file d'attente et indiquer quel élément est actuellement chargé (il peut ne pas être en cours de lecture), en cours de chargement ou préchargé. Vous pouvez également obtenir une liste numérotée de tous les éléments de la file d'attente. La classe GCKMediaStatus fournit les informations d'état suivantes:

  • Propriété preloadedItemID : ID de l'élément actuellement préchargé, le cas échéant.
  • Propriété loadingItemID : ID de l'élément en cours de chargement,
  • Propriété currentItemID : ID de l'élément de file d'attente actuel, le cas échéant.
  • Méthode queueItemCount : renvoie le nombre d'éléments dans la file d'attente de lecture.
  • Méthode queueItemAtIndex : renvoie l'élément correspondant à l'index spécifié dans la file d'attente de lecture.

Utilisez ces membres avec les autres membres d'état multimédia pour informer votre application de l'état de la file d'attente et des éléments qu'elle contient. En plus des mises à jour de l'état des médias par le récepteur Web, vous pouvez écouter les modifications apportées à la file d'attente en implémentant -[remoteMediaClientDidUpdateQueue:] de GCKRemoteMediaClientListener.

Modifier la file d'attente

Pour utiliser les éléments de la file d'attente, utilisez les méthodes de file d'attente GCKRemoteMediaClient. vous disposez de plusieurs API. Ils vous permettent de charger un tableau d'éléments dans une nouvelle file d'attente, d'insérer des éléments dans une file d'attente existante, de mettre à jour les propriétés des éléments de la file d'attente, d'avancer ou de reculer dans la file d'attente, de définir les propriétés de la file d'attente proprement dite (par exemple, modifier la repeatMode qui sélectionne l'élément suivant), de supprimer des éléments de la file d'attente et de réorganiser les éléments de la file d'attente.