El framework de Cast proporciona APIs de colas que admiten la creación de listas de elementos de contenido, como transmisiones de video o audio, para reproducir de forma secuencial en el receptor web. La cola de elementos de contenido se puede editar, reordenar, actualizar, etcétera.
El SDK de Web Receiver mantiene la cola y responde a las operaciones que se realizan en ella, siempre y cuando esta tenga al menos un elemento activo (en reproducción o en pausa). Los remitentes pueden unirse a la sesión y agregar elementos a la fila. El receptor mantiene una sesión para los elementos de la cola hasta que el último elemento completa la reproducción, el remitente detiene la reproducción y finaliza la sesión, o hasta que un remitente cargue una cola nueva en el receptor. La app receptora no mantiene ninguna información sobre las colas finalizadas de forma predeterminada. Una vez que finaliza el último elemento de la cola, la sesión multimedia finaliza y la cola desaparece.
Crea y carga elementos de cola de contenido multimedia
En iOS, un elemento de la cola de contenido multimedia se representa en el framework de Cast como una instancia GCKMediaQueueItem
.
Cuando creas un elemento de la cola de contenido multimedia con contenido adaptable, puedes configurar el tiempo de precarga para que el reproductor pueda comenzar a almacenar en búfer el elemento de la cola de contenido multimedia antes de que termine de reproducirse el elemento que está antes en la cola. Obtén más información sobre la precarga en la guía de precarga de Web Receiver.
Si se configura el atributo de reproducción automática del elemento como verdadero, Web Receiver podrá reproducirlo automáticamente. Por ejemplo, puedes usar un patrón de compilador para crear tu elemento de cola de contenido multimedia de la siguiente manera:
let builder = GCKMediaQueueItemBuilder.init() builder.mediaInformation = mediaInformation builder.autoplay = true builder.preloadTime = 8.0 let newItem = builder.build()
GCKMediaQueueItemBuilder *builder = [[GCKMediaQueueItemBuilder alloc] init]; builder.mediaInformation = self.mediaInformation; builder.autoplay = YES; builder.preloadTime = 8.0; GCKMediaQueueItem *newItem = [builder build];
Carga un array de elementos de la cola de contenido multimedia en la cola con el método queueLoadItems
apropiado de la clase GCKRemoteMediaClient
.
Recibir actualización del estado de la cola de contenido multimedia
Cuando el receptor web carga un elemento de la cola de contenido multimedia, asigna un ID único al elemento que persiste durante la sesión (y el ciclo de vida de la cola).
Puedes conocer el estado de la cola que indica qué elemento está cargado en el momento (es posible que no se esté reproduciendo), cargando o precargado. También puedes obtener una lista ordenada
de todos los elementos en la cola. La clase GCKMediaStatus
proporciona esta información de estado:
- Propiedad
preloadedItemID
: Es el ID del elemento que está precargado en ese momento, si corresponde. - Propiedad
loadingItemID
: ID del elemento que se está cargando actualmente - Propiedad
currentItemID
: El ID del elemento de cola actual, si corresponde. - Método
queueItemCount
: Muestra la cantidad de elementos en la cola de reproducción. - Método
queueItemAtIndex
: Muestra el elemento en el índice especificado en la cola de reproducción.
Usa estos miembros junto con los otros miembros de estado del contenido multimedia para informar a tu app sobre el estado de la cola y los elementos en ella. Además de las actualizaciones de estado del contenido multimedia del receptor web, puedes escuchar los cambios en la cola si implementas -[remoteMediaClientDidUpdateQueue:]
de GCKRemoteMediaClientListener
.
Editar la fila
Para trabajar con elementos en la cola, usa los métodos de cola de GCKRemoteMediaClient
.
tienes varias APIs. Estas te permiten cargar un array de elementos en una cola nueva, insertar elementos en una existente, actualizar las propiedades de los elementos de la cola, hacer que un elemento avance o retroceda en la cola, establecer las propiedades de la cola en sí (por ejemplo, cambiar el repeatMode
que selecciona el siguiente elemento), quitar elementos de la cola y reordenarlos.