Agregar a una cola

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:

Swift
let builder = GCKMediaQueueItemBuilder.init()
builder.mediaInformation = mediaInformation
builder.autoplay = true
builder.preloadTime = 8.0
let newItem = builder.build()
Objective-C
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.