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 la implementación de una UITableViewDataSource para controlar una IU de cola de contenido multimedia.

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

El modelo mantiene una lista de ID de elementos de cola para toda la cola y la recupera automáticamente cada vez que se conecta a una sesión de transmisión. También mantiene una caché LRU (de tamaño configurable) de GCKMediaQueueItems, vinculada al ID del elemento de la cola.

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

Si se realizan varias llamadas a este método en un período muy corto, los ID de artículo solicitados se agrupan en lotes de manera interna para reducir la cantidad de solicitudes de red realizadas. Debido a que existe un límite superior para la cantidad de elementos de la cola que se pueden recuperar desde el receptor a la vez, GCKMediaQueue mantiene una ventana progresiva de los últimos N ID de elementos que se deben recuperar. Por lo tanto, si se solicita un gran número de elementos en poco tiempo, solo se recuperarán los últimos N elementos. Este comportamiento permite administrar de manera eficiente una cola muy larga en la IU de la app que el usuario puede desplazar con rapidez y/o frecuencia.

GCKMediaQueue no proporciona ningún método para modificar directamente la cola, ya que cualquiera de esos cambios implica una solicitud de red asíncrona al receptor (a través de métodos en GCKRemoteMediaClient), que puede fallar y mostrar un error. GCKMediaQueue debe garantizar una representación coherente de la cola tal como se encuentra en el receptor, por lo que realizar cambios locales en el modelo de datos que aún no se confirmaron en el receptor podría generar un comportamiento incorrecto de la IU.

Consulta GCKMediaQueueDelegate para ver el protocolo de delegado.

Desde
4.3.4

Hereda NSObject.

Resumen del método de instancia

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

Resumen de la propiedad

NSUInteger itemCount
 La cantidad de elementos que se encuentran en la cola en ese momento. 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 una nueva GCKMediaQueue con el tamaño de caché y el recuento de recuperación máximo predeterminados.

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

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

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

Inicializa una nueva GCKMediaQueue con el tamaño de caché y la cantidad máxima de recuperaciones especificadas.

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 un delegado de la lista de delegados de este objeto.

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

Muestra el elemento de la cola de contenido multimedia en el índice dado de la cola o se encarga de que se recupere el elemento del receptor si no está actualmente en la caché.

Parameters
indexThe index of the item to fetch.
Devuelve
Es el elemento en el índice dado o nil si el elemento no está actualmente en la caché, pero se recuperará de forma asíncrona.
- (nullable GCKMediaQueueItem *) itemAtIndex: (NSUInteger)  index
fetchIfNeeded: (BOOL)  fetch 

Muestra el elemento de la cola de contenido multimedia en el índice determinado de la cola o, de manera opcional, dispone que se recupere el elemento 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.
Devuelve
Es el elemento en el índice dado o nil si el elemento no está actualmente en la caché.
- (GCKMediaQueueItemID) itemIDAtIndex: (NSUInteger)  index

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

Devuelve
El ID de elemento en el índice determinado o kGCKMediaQueueInvalidItemID si el índice no es válido.
- (NSInteger) indexOfItemWithID: (GCKMediaQueueItemID itemID

Busca el índice de un elemento de la cola en la cola.

Parameters
itemIDThe queue item ID.
Devuelve
Es el índice (es decir, la posición cardinal) del elemento dentro de la cola o NSNotFound si no existe ese elemento 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ículo del receptor.

- (void) clear

Borra la cola, quita todos los elementos y limpia la caché.

Detalles de la propiedad

- (NSUInteger) itemCount
readnonatomicassign

La cantidad de elementos que se encuentran en la cola en ese momento.

- (NSUInteger) cacheSize
readnonatomicassign

El tamaño de la caché.

- (NSUInteger) cachedItemCount
readnonatomicassign

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