Clase GCKMediaQueue

Referencia de la clase GCKMediaQueue

Descripción general

Representación de un modelo de datos de una cola de contenido multimedia de longitud arbitraria.

Esta clase se puede usar como base para una implementación de una UITableViewDataSource para impulsar una IU de cola de medios.

GCKMediaQueue detecta eventos GCKSessionManager y se adjunta automáticamente a GCKRemoteMediaClient cuando se inicia una sesión de transmisión. Detecta las notificaciones de cambio de cola de GCKRemoteMediaClient y actualiza su modelo de datos interno según corresponda. Del mismo modo, usa GCKRemoteMediaClient para recuperar información de colas a pedido.

El modelo mantiene una lista de los ID de los elementos de la cola para toda la cola; automáticamente, cuando se adjunta a una sesión de transmisión. También mantiene una caché LRU (de tamaño configurable) de GCKMediaQueueItems, clave por el ID del elemento de la cola.

El método itemAtIndex: (GCKMediaQueue) se usa para recuperar un elemento de cola en un índice determinado. Si GCKMediaQueueItem no está en la caché, se realiza una solicitud asíncrona para recuperar ese elemento del receptor y se notifica al delegado cuando se reciben los elementos solicitados.

Si se realizan varias llamadas a este método en un período muy corto de tiempo, los ID de artículo solicitados se agrupan en lotes para reducir la cantidad de solicitudes de red realizadas. Como hay un límite superior para la cantidad de elementos en cola que se pueden recuperar del receptor a la vez, GCKMediaQueue mantiene una ventana progresiva de los últimos N IDs que se deben recuperar. Por lo tanto, si se solicita una gran cantidad de elementos en un período breve, solo se recuperarán los últimos N elementos. Este comportamiento permite administrar de manera eficiente una cola larga en la IU de la app que un usuario puede desplazarse de manera rápida o frecuente.

GCKMediaQueue no proporciona ningún método para modificar la cola directamente, ya que cualquier cambio de este tipo implica una solicitud de red asíncrona al receptor (a través de métodos en GCKRemoteMediaClient), que puede fallar con un error. GCKMediaQueue debe garantizar una representación coherente de la cola como existe en el receptor, por lo que realizar cambios locales en el modelo de datos que aún no se confirmó en el receptor podría dar como resultado un comportamiento incorrecto de la IU.

Consulta GCKMediaQueueDelegate para ver el protocolo de delegado.

Since
4.3.4

Hereda NSObject.

Resumen del método de instancia

(instancetype) - init
 
(instancetype) - initWithRemoteMediaClient:
 Inicializa un GCKMediaQueue nuevo con el tamaño predeterminado de la caché y el recuento máximo de recuperación predeterminado. Más...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:
 Inicializa un GCKMediaQueue nuevo con el tamaño de caché determinado y el recuento de recuperación máximo predeterminado. Más...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:maxFetchCount:
 Inicializa un GCKMediaQueue nuevo con el tamaño de caché determinado y el recuento de recuperación máximo. Más...
 
(void) - addDelegate:
 Agrega un delegado a la lista de delegados de este objeto. Más...
 
(void) - removeDelegate:
 Quita a un delegado de la lista de delegados de este objeto. Más...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:
 Muestra el elemento de cola de contenido multimedia en el índice determinado de la cola o organiza la recuperación del elemento desde la app receptora si no está actualmente en la caché. Más...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:fetchIfNeeded:
 Muestra el elemento de cola de contenido multimedia en el índice determinado de la cola o, de manera opcional, organiza que el elemento se obtenga del receptor si no está actualmente en la caché. Más...
 
(GCKMediaQueueItemID- itemIDAtIndex:
 Muestra el ID del elemento en el índice especificado de la cola. Más...
 
(NSInteger) - indexOfItemWithID:
 Busca el índice de un elemento de la cola. Más...
 
(void) - reload
 Vuelve a cargar la cola. Más...
 
(void) - clear
 Borra la cola, quita todos los elementos y vacía la caché. Más...
 

Resumen de la propiedad

NSUInteger itemCount
 La cantidad de elementos que actualmente están en fila Más...
 
NSUInteger cacheSize
 El tamaño de la caché. Más...
 
NSUInteger cachedItemCount
 La cantidad de elementos en cola que están actualmente en caché. Más...
 

Detalle del método

- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient

Inicializa un GCKMediaQueue nuevo con el tamaño predeterminado de la caché y el recuento máximo de recuperación predeterminado.

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

Inicializa un GCKMediaQueue nuevo con el tamaño de caché determinado y el recuento de recuperación máximo predeterminado.

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

Inicializa un GCKMediaQueue nuevo con el tamaño de caché determinado y el recuento de recuperación máximo.

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

Agrega un delegado a la lista de delegados de este objeto.

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

Quita a un delegado de la lista de delegados de este objeto.

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

Muestra el elemento de cola de contenido multimedia en el índice determinado de la cola o organiza la recuperación del elemento desde la app receptora si no está actualmente en la caché.

Parameters
indexThe index of the item to fetch.
Resultado que se muestra
El elemento del índice especificado o nil si el elemento no está en la caché, pero se recuperará de manera asíncrona.
- (nullable GCKMediaQueueItem *) itemAtIndex: (NSUInteger)  index
fetchIfNeeded: (BOOL)  fetch 

Muestra el elemento de cola de contenido multimedia en el índice determinado de la cola o, de manera opcional, organiza que el elemento se obtenga del receptor si no está actualmente en la caché.

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.
Resultado que se muestra
El elemento del índice especificado o nil si el elemento no está en la caché.
- (GCKMediaQueueItemID) itemIDAtIndex: (NSUInteger)  index

Muestra el ID del elemento en el índice especificado de la cola.

Resultado que se muestra
El ID del elemento en el índice dado o kGCKMediaQueueInvalidItemID si el índice no es válido.
- (NSInteger) indexOfItemWithID: (GCKMediaQueueItemID itemID

Busca el índice de un elemento de la cola.

Parameters
itemIDThe queue item ID.
Resultado que se muestra
El índice (es decir, la posición cardinal) del elemento dentro de la cola o NSNotFound si ese elemento no existe en la cola.
- (void) reload

Vuelve a cargar la cola.

Se vaciará la caché y se volverá a recuperar la lista de ID de artículos del receptor.

- (void) clear

Borra la cola, quita todos los elementos y vacía la caché.

Detalles de la propiedad

- (NSUInteger) itemCount
readnonatomicassign

La cantidad de elementos que actualmente están en fila

- (NSUInteger) cacheSize
readnonatomicassign

El tamaño de la caché.

- (NSUInteger) cachedItemCount
readnonatomicassign

La cantidad de elementos en cola que están actualmente en caché.