Classe GCKMediaQueue

Riferimento classe GCKMediaQueue

Panoramica

Una rappresentazione del modello dati di una coda multimediale di lunghezza arbitraria.

Questa classe può essere utilizzata come base per un'implementazione di UITableViewDataSource al fine di gestire un'interfaccia utente per le code multimediali.

GCKMediaQueue ascolta gli eventi GCKSessionManager e si collega automaticamente al dispositivo GCKRemoteMediaClient quando viene avviata una sessione di trasmissione. Rimane in ascolto delle notifiche di modifica della coda da GCKRemoteMediaClient e aggiorna di conseguenza il proprio modello dei dati interno. Analogamente, utilizza GCKRemoteMediaClient per recuperare le informazioni sulla coda on demand.

Il modello conserva un elenco di ID degli elementi della coda per l'intera coda e recupera automaticamente l'elenco ogni volta che viene allegato a una sessione di trasmissione. Gestisce inoltre una cache LRU (di dimensioni configurabili) di GCKMediaQueueItems, digitata in base all'ID elemento della coda.

Il metodo itemAtIndex: (GCKMediaQueue) viene utilizzato per recuperare un elemento della coda in un determinato indice. Se l'elemento GCKMediaQueueItem non è attualmente nella cache, viene effettuata una richiesta asincrona per recuperare l'elemento dal destinatario e il delegato riceve una notifica quando vengono ricevuti gli elementi richiesti.

Se vengono effettuate più chiamate a questo metodo in un breve lasso di tempo, gli ID elemento richiesti vengono raggruppati internamente per ridurre il numero di richieste di rete effettuate. Poiché esiste un limite massimo al numero di elementi in coda che possono essere recuperati dal destinatario in un'unica volta, GCKMediaQueue mantiene una finestra continua contenente gli ultimi N ID elemento da recuperare. Pertanto, se viene richiesto un numero molto elevato di elementi in un breve periodo di tempo, verranno effettivamente recuperati solo gli ultimi N elementi. Questo comportamento consente di gestire in modo efficiente una coda molto lunga nell'interfaccia utente dell'app che un utente potrebbe far scorrere velocemente e/o spesso.

GCKMediaQueue non offre alcun metodo per modificare direttamente la coda, poiché tale modifica comporta una richiesta di rete asincrona al destinatario (tramite metodi su GCKRemoteMediaClient), che potrebbe non riuscire e generare un errore. GCKMediaQueue deve garantire una rappresentazione coerente della coda così come esiste sul destinatario; di conseguenza, le modifiche locali al modello dei dati che non sono ancora state confermate sul destinatario potrebbero causare un comportamento errato dell'interfaccia utente.

Vedi GCKMediaQueueDelegate per il protocollo delegato.

Dal
4.3.4

Eredita NSObject.

Riepilogo del metodo di istanza

(instancetype) - init
 
(instancetype) - initWithRemoteMediaClient:
 Inizializza un nuovo GCKMediaQueue con le dimensioni della cache predefinite e il numero massimo di fetch predefiniti. Altro...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:
 Inizializza un nuovo GCKMediaQueue con le dimensioni della cache specificate e il numero massimo predefinito di fetch. Altro...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:maxFetchCount:
 Inizializza un nuovo GCKMediaQueue con le dimensioni della cache specificate e il numero massimo di recuperi indicati. Altro...
 
(void) - addDelegate:
 Aggiunge un delegato all'elenco dei delegati di questo oggetto. Altro...
 
(void) - removeDelegate:
 Rimuove un delegato dall'elenco dei delegati di questo oggetto. Altro...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:
 Restituisce l'elemento della coda multimediale nell'indice specificato nella coda oppure organizza il recupero dell'elemento dal destinatario se non è attualmente nella cache. Altro...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:fetchIfNeeded:
 Restituisce l'elemento della coda multimediale in corrispondenza dell'indice specificato nella coda o, se necessario, organizza il recupero dell'elemento dal destinatario se non è attualmente nella cache. Altro...
 
(GCKMediaQueueItemID- itemIDAtIndex:
 Restituisce l'ID elemento dell'elemento nell'indice specificato nella coda. Altro...
 
(NSInteger) - indexOfItemWithID:
 Cerca l'indice di un elemento della coda in coda. Altro...
 
(void) - reload
 Ricarica la coda. Altro...
 
(void) - clear
 Cancella la coda, rimuovendo tutti gli elementi e svuotando la cache. Altro...
 

Riepilogo proprietà

NSUInteger itemCount
 Il numero di elementi attualmente in coda. Altro...
 
NSUInteger cacheSize
 Le dimensioni della cache. Altro...
 
NSUInteger cachedItemCount
 Il numero di elementi della coda attualmente presenti nella cache. Altro...
 

Dettaglio metodo

- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient

Inizializza un nuovo GCKMediaQueue con le dimensioni della cache predefinite e il numero massimo di fetch predefiniti.

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

Inizializza un nuovo GCKMediaQueue con le dimensioni della cache specificate e il numero massimo predefinito di fetch.

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

Inizializza un nuovo GCKMediaQueue con le dimensioni della cache specificate e il numero massimo di recuperi indicati.

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

Aggiunge un delegato all'elenco dei delegati di questo oggetto.

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

Rimuove un delegato dall'elenco dei delegati di questo oggetto.

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

Restituisce l'elemento della coda multimediale nell'indice specificato nella coda oppure organizza il recupero dell'elemento dal destinatario se non è attualmente nella cache.

Parameters
indexThe index of the item to fetch.
Ritorni
L'elemento nell'indice specificato o nil se l'elemento non è attualmente nella cache, ma verrà recuperato in modo asincrono.
- (nullable GCKMediaQueueItem *) itemAtIndex: (NSUInteger)  index
fetchIfNeeded: (BOOL)  fetch 

Restituisce l'elemento della coda multimediale in corrispondenza dell'indice specificato nella coda o, se necessario, organizza il recupero dell'elemento dal destinatario se non è attualmente nella 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.
Ritorni
L'elemento nell'indice specificato oppure nil se l'elemento non è attualmente nella cache.
- (GCKMediaQueueItemID) itemIDAtIndex: (NSUInteger)  index

Restituisce l'ID elemento dell'elemento nell'indice specificato nella coda.

Ritorni
L'ID elemento nell'indice specificato o kGCKMediaQueueInvalidItemID se l'indice non è valido.
- (NSInteger) indexOfItemWithID: (GCKMediaQueueItemID itemID

Cerca l'indice di un elemento della coda in coda.

Parameters
itemIDThe queue item ID.
Ritorni
L'indice (ovvero la posizione cardinale) dell'elemento nella coda oppure NSNotFound se questo elemento non è presente nella coda.
- (void) reload

Ricarica la coda.

La cache verrà svuotata e l'elenco degli ID elemento verrà recuperato dal destinatario.

- (void) clear

Cancella la coda, rimuovendo tutti gli elementi e svuotando la cache.

Dettagli della proprietà

- (NSUInteger) itemCount
readnonatomicassign

Il numero di elementi attualmente in coda.

- (NSUInteger) cacheSize
readnonatomicassign

Le dimensioni della cache.

- (NSUInteger) cachedItemCount
readnonatomicassign

Il numero di elementi della coda attualmente presenti nella cache.