Enfileiramento

O framework do Cast fornece APIs de enfileiramento compatíveis com a criação de listas de itens de conteúdo, como streams de vídeo ou áudio, para reprodução sequencial no receptor da Web. A fila de itens de conteúdo pode ser editada, reordenada, atualizada e assim por diante.

O SDK do receptor da Web mantém a fila e responde às operações na fila, desde que ela tenha pelo menos um item ativo no momento (em reprodução ou pausado). Os remetentes podem participar da sessão e adicionar itens à fila. O receptor mantém uma sessão para itens da fila até que o último item conclua a reprodução, o remetente interrompa a reprodução e encerre a sessão ou até que um remetente carregue uma nova fila no receptor. Por padrão, o receptor não mantém informações sobre filas encerradas. Quando o último item da fila termina, a sessão de mídia é encerrada e a fila desaparece.

Criar e carregar itens da fila de mídia

No iOS, um item da fila de mídia é representado no framework do Google Cast como uma instância GCKMediaQueueItem. Ao criar um item da fila de mídia com conteúdo adaptável, é possível definir o tempo de pré-carregamento para que o player possa começar a armazenar o item da fila de mídia em buffer antes que o item à frente dele na fila termine de ser reproduzido. Saiba mais sobre pré-carregamento no Guia de pré-carregamento do receptor da Web.

Definir o atributo de reprodução automática do item como "true" permite que o receptor da Web o reproduza automaticamente. Por exemplo, é possível usar um padrão de builder para criar o item da fila de mídia da seguinte maneira:

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];

Carregue uma matriz de itens da fila de mídia usando o método queueLoadItems apropriado da classe GCKRemoteMediaClient.

Receber atualização de status da fila de mídia

Quando o receptor da Web carrega um item da fila de mídia, ele atribui um ID exclusivo ao item que persiste pela duração da sessão (e da vida da fila). Você pode saber o status da fila, indicando qual item está carregado no momento (pode não estar sendo reproduzido), carregando ou pré-carregado. Também é possível ver uma lista ordenada de todos os itens na fila. A classe GCKMediaStatus fornece estas informações de status:

  • Propriedade preloadedItemID: o ID do item pré-carregado no momento, se houver.
  • Propriedade loadingItemID: o ID do item que está sendo carregado no momento.
  • Propriedade currentItemID: ID do item da fila atual, se houver.
  • Método queueItemCount: retorna o número de itens na fila de reprodução.
  • Método queueItemAtIndex: retorna o item no índice especificado na fila de reprodução.

Use esses membros com outros membros de status de mídia para informar ao app sobre o status da fila e os itens nela. Além das atualizações de status da mídia do Web Receiver, é possível detectar mudanças na fila implementando -[remoteMediaClientDidUpdateQueue:] da GCKRemoteMediaClientListener.

Editar a fila

Para trabalhar com os itens na fila, use os métodos de fila de GCKRemoteMediaClient. você tem várias APIs. Eles permitem carregar uma matriz de itens em uma nova fila, inserir itens em uma fila existente, atualizar as propriedades de itens na fila, fazer um item avançar ou retroceder na fila, definir as propriedades da própria fila (por exemplo, alterar a repeatMode que seleciona o próximo item), remover itens da fila e reordenar os itens na fila.