Classe GCKMediaQueue

Documentation de référence sur la classe GCKMediaQueue

Présentation

Représentation d'un modèle de données d'une file d'attente de contenus multimédias de longueur arbitraire.

Cette classe peut être utilisée comme base pour l'implémentation d'une UITableViewDataSource afin de piloter l'interface utilisateur d'une file d'attente multimédia.

GCKMediaQueue écoute les événements GCKSessionManager et s'associe automatiquement à GCKRemoteMediaClient lorsqu'une session Cast démarre. Il écoute les notifications de modification de file d'attente du GCKRemoteMediaClient et met à jour son modèle de données interne en conséquence. De même, il utilise GCKRemoteMediaClient pour récupérer à la demande des informations sur la file d'attente.

Le modèle gère une liste des ID des éléments de la file d'attente pour l'ensemble de la file d'attente. Il la récupère automatiquement chaque fois qu'elle est associée à une session Cast. Il gère également un cache LRU (de taille configurable) de GCKMediaQueueItems, associé à l'ID de l'élément de la file d'attente.

La méthode itemAtIndex: (GCKMediaQueue) permet d'extraire un élément de file d'attente à un index donné. Si GCKMediaQueueItem ne se trouve pas actuellement dans le cache, une requête asynchrone est effectuée pour récupérer cet élément auprès du récepteur, et le délégué est informé de la réception des éléments demandés.

Si plusieurs appels à cette méthode sont effectués en très peu de temps, les ID d'articles demandés sont regroupés en interne afin de réduire le nombre de requêtes réseau effectuées. Étant donné qu'il existe une limite supérieure pour le nombre d'éléments de file d'attente pouvant être récupérés à la fois depuis le récepteur, GCKMediaQueue conserve une fenêtre glissante des N derniers ID d'éléments à extraire. Par conséquent, si un très grand nombre d'articles est demandé en peu de temps, seuls les N derniers éléments seront réellement récupérés. Ce comportement permet de gérer efficacement une très longue file d'attente dans l'interface utilisateur de l'application, que l'utilisateur peut parcourir rapidement et/ou fréquemment.

GCKMediaQueue ne fournit aucune méthode pour modifier directement la file d'attente, car une telle modification implique une requête réseau asynchrone adressée au destinataire (via des méthodes sur GCKRemoteMediaClient), ce qui peut échouer et générer une erreur. GCKMediaQueue doit garantir une représentation cohérente de la file d'attente telle qu'elle existe sur le récepteur. Par conséquent, les modifications locales du modèle de données qui n'ont pas encore été validées sur le récepteur pourraient entraîner un comportement incorrect de l'interface utilisateur.

Consultez GCKMediaQueueDelegate pour connaître le protocole délégué.

Depuis
4.3.4

Hérite du NSObject.

Résumé des méthodes d'instance

(instancetype) - init
 
(instancetype) - initWithRemoteMediaClient:
 Initialise un nouveau GCKMediaQueue avec la taille de cache par défaut et le nombre maximal de récupérations par défaut. Plus...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:
 Initialise un nouveau GCKMediaQueue avec la taille de cache donnée et le nombre maximal de récupérations par défaut. Plus...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:maxFetchCount:
 Initialise un nouveau GCKMediaQueue avec la taille de cache donnée et le nombre maximal de récupérations. Plus...
 
(void) - addDelegate:
 Ajoute un délégué à la liste de délégués de cet objet. Plus...
 
(void) - removeDelegate:
 Supprime un délégué de la liste des délégués de cet objet. Plus...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:
 Renvoie l'élément de la file d'attente multimédia correspondant à l'index donné dans la file d'attente ou fait en sorte que l'élément soit récupéré auprès du récepteur s'il ne se trouve pas dans le cache. Plus...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:fetchIfNeeded:
 Renvoie l'élément de la file d'attente multimédia correspondant à l'index donné dans la file d'attente, ou organise l'extraction de cet élément auprès du récepteur s'il ne se trouve pas dans le cache. Plus...
 
(GCKMediaQueueItemID- itemIDAtIndex:
 Renvoie l'ID de l'élément correspondant à l'index donné dans la file d'attente. Plus...
 
(NSInteger) - indexOfItemWithID:
 Recherche l'index d'un élément de la file d'attente. Plus...
 
(void) - reload
 Il actualise la file d'attente. Plus...
 
(void) - clear
 Efface la file d'attente, supprime tous les éléments et vide le cache. Plus...
 

Résumé de la propriété

NSUInteger itemCount
 Nombre d'éléments dans la file d'attente. Plus...
 
NSUInteger cacheSize
 Taille du cache. Plus...
 
NSUInteger cachedItemCount
 Nombre d'éléments de file d'attente actuellement dans le cache. Plus...
 

Détails sur la méthode

- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient

Initialise un nouveau GCKMediaQueue avec la taille de cache par défaut et le nombre maximal de récupérations par défaut.

- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient
cacheSize: (NSUInteger)  cacheSize 

Initialise un nouveau GCKMediaQueue avec la taille de cache donnée et le nombre maximal de récupérations par défaut.

Parameters
cacheSizeThe cache size. Must be nonzero.
- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient
cacheSize: (NSUInteger)  cacheSize
maxFetchCount: (NSUInteger)  maxFetchCount 

Initialise un nouveau GCKMediaQueue avec la taille de cache donnée et le nombre maximal de récupérations.

Parameters
cacheSizeThe cache size. Must be nonzero.
maxFetchCountThe maxiumum fetch count with minimum being 1.
- (void) addDelegate: (id< GCKMediaQueueDelegate >)  delegate

Ajoute un délégué à la liste de délégués de cet objet.

Parameters
delegateThe delegate to add. The delegate will be retained until removeDelegate: is called.
- (void) removeDelegate: (id< GCKMediaQueueDelegate >)  delegate

Supprime un délégué de la liste des délégués de cet objet.

Parameters
delegateThe delegate to remove.
- (nullable GCKMediaQueueItem *) itemAtIndex: (NSUInteger)  index

Renvoie l'élément de la file d'attente multimédia correspondant à l'index donné dans la file d'attente ou fait en sorte que l'élément soit récupéré auprès du récepteur s'il ne se trouve pas dans le cache.

Parameters
indexThe index of the item to fetch.
Renvoie
Élément de l'index donné, ou nil si l'élément ne se trouve pas dans le cache, mais sera récupéré de manière asynchrone.
- (nullable GCKMediaQueueItem *) itemAtIndex: (NSUInteger)  index
fetchIfNeeded: (BOOL)  fetch 

Renvoie l'élément de la file d'attente multimédia correspondant à l'index donné dans la file d'attente, ou organise l'extraction de cet élément auprès du récepteur s'il ne se trouve pas dans le cache.

Parameters
indexThe index of the item to fetch.
fetchWhether the item should be fetched from the receiver if it is not currently in the cache.
Renvoie
Élément de l'index donné, ou nil si l'élément ne se trouve pas dans le cache.
- (GCKMediaQueueItemID) itemIDAtIndex: (NSUInteger)  index

Renvoie l'ID de l'élément correspondant à l'index donné dans la file d'attente.

Renvoie
ID de l'élément dans l'index donné, ou kGCKMediaQueueInvalidItemID si l'index n'est pas valide.
- (NSInteger) indexOfItemWithID: (GCKMediaQueueItemID itemID

Recherche l'index d'un élément de la file d'attente.

Parameters
itemIDThe queue item ID.
Renvoie
Index (c'est-à-dire la position cardinale) de l'élément dans la file d'attente, ou NSNotFound si aucun élément de ce type ne se trouve dans la file d'attente.
- (void) reload

Il actualise la file d'attente.

Le cache sera vidé, et la liste des ID d'éléments sera de nouveau récupérée à partir du destinataire.

- (void) clear

Efface la file d'attente, supprime tous les éléments et vide le cache.

Détails de la propriété

- (NSUInteger) itemCount
readnonatomicassign

Nombre d'éléments dans la file d'attente.

- (NSUInteger) cacheSize
readnonatomicassign

Taille du cache.

- (NSUInteger) cachedItemCount
readnonatomicassign

Nombre d'éléments de file d'attente actuellement dans le cache.