Classe GCKMediaQueue

Referência da classe GCKMediaQueue

Informações gerais

Uma representação do modelo de dados de uma fila de mídia de tamanho arbitrário.

Essa classe pode ser usada como base para uma implementação de um UITableViewDataSource para acionar uma interface de fila de mídia.

O GCKMediaQueue detecta eventos GCKSessionManager e se anexa automaticamente ao GCKRemoteMediaClient quando uma sessão de transmissão é iniciada. Ele detecta notificações de mudança da fila do GCKRemoteMediaClient e atualiza o modelo de dados interno conforme necessário. Da mesma forma, ele usa GCKRemoteMediaClient para buscar informações da fila sob demanda.

O modelo mantém uma lista de IDs de itens da fila para toda a fila. Ele busca essa lista automaticamente sempre que é anexada a uma sessão de transmissão. Ele também mantém um cache de LRU (de tamanho configurável) de GCKMediaQueueItems, codificado pelo ID do item da fila.

O método itemAtIndex: (GCKMediaQueue) é usado para buscar um item da fila em um determinado índice. Se o GCKMediaQueueItem não estiver no cache, uma solicitação assíncrona será feita para buscar esse item no receptor, e o delegado será notificado quando os itens solicitados forem recebidos.

Se várias chamadas a esse método forem feitas em um período muito curto, os códigos de item solicitados serão agrupados internamente para reduzir o número de solicitações de rede feitas. Como há um limite máximo de quantos itens da fila podem ser buscados no receptor por vez, o GCKMediaQueue mantém uma janela contínua dos últimos N IDs de item a serem buscados. Portanto, se um número muito grande de itens for solicitado em um curto espaço de tempo, apenas os últimos N itens serão efetivamente buscados. Esse comportamento permite o gerenciamento eficiente de uma fila muito longa na interface do app, que pode ser rapidamente e/ou rolada por um usuário.

GCKMediaQueue não fornece nenhum método para modificar diretamente a fila, porque qualquer mudança envolve uma solicitação de rede assíncrona para o receptor (por métodos em GCKRemoteMediaClient), que pode falhar com um erro. GCKMediaQueue precisa garantir uma representação consistente da fila como ela existe no receptor. Portanto, fazer mudanças locais no modelo de dados que ainda não foram confirmadas no receptor pode resultar em um comportamento incorreto da interface.

Consulte GCKMediaQueueDelegate para ver o protocolo delegado.

Como
4.3.4

Herda o NSObject.

Resumo do método de instância

(instancetype) - init
 
(instancetype) - initWithRemoteMediaClient:
 Inicializa um novo GCKMediaQueue com o tamanho de cache padrão e a contagem máxima de busca padrão. Mais...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:
 Inicializa um novo GCKMediaQueue com o tamanho do cache e a contagem máxima de busca padrão fornecidos. Mais...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:maxFetchCount:
 Inicializa um novo GCKMediaQueue com o tamanho do cache e a contagem máxima de busca fornecidos. Mais...
 
(void) - addDelegate:
 Adiciona um delegado à lista de delegados desse objeto. Mais...
 
(void) - removeDelegate:
 Remove um delegado da lista desse objeto. Mais...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:
 Retorna o item da fila de mídia no índice especificado na fila ou organiza para que o item seja buscado no receptor, caso não esteja no cache. Mais...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:fetchIfNeeded:
 Retorna o item da fila de mídia no índice especificado na fila ou, opcionalmente, organiza para que o item seja buscado no receptor, caso não esteja no cache. Mais...
 
(GCKMediaQueueItemID- itemIDAtIndex:
 Retorna o ID do item no índice especificado na fila. Mais...
 
(NSInteger) - indexOfItemWithID:
 Procura o índice de um item da fila na fila. Mais...
 
(void) - reload
 Recarrega a fila. Mais...
 
(void) - clear
 Limpa a fila, removendo todos os elementos e limpando o cache. Mais...
 

Resumo da propriedade

NSUInteger itemCount
 O número de itens na fila. Mais...
 
NSUInteger cacheSize
 O tamanho do cache. Mais...
 
NSUInteger cachedItemCount
 O número de itens da fila que estão no cache atualmente. Mais...
 

Detalhes dos métodos

- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient

Inicializa um novo GCKMediaQueue com o tamanho de cache padrão e a contagem máxima de busca padrão.

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

Inicializa um novo GCKMediaQueue com o tamanho do cache e a contagem máxima de busca padrão fornecidos.

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

Inicializa um novo GCKMediaQueue com o tamanho do cache e a contagem máxima de busca fornecidos.

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

Adiciona um delegado à lista de delegados desse objeto.

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

Remove um delegado da lista desse objeto.

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

Retorna o item da fila de mídia no índice especificado na fila ou organiza para que o item seja buscado no receptor, caso não esteja no cache.

Parameters
indexThe index of the item to fetch.
Retorna
O item no índice especificado, ou nil se o item não estiver no cache no momento, mas será buscado de forma assíncrona.
- (nullable GCKMediaQueueItem *) itemAtIndex: (NSUInteger)  index
fetchIfNeeded: (BOOL)  fetch 

Retorna o item da fila de mídia no índice especificado na fila ou, opcionalmente, organiza para que o item seja buscado no receptor, caso não esteja no cache.

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.
Retorna
O item no índice especificado ou nil se o item não estiver no cache.
- (GCKMediaQueueItemID) itemIDAtIndex: (NSUInteger)  index

Retorna o ID do item no índice especificado na fila.

Retorna
O ID do item no índice especificado ou kGCKMediaQueueInvalidItemID se o índice for inválido.
- (NSInteger) indexOfItemWithID: (GCKMediaQueueItemID itemID

Procura o índice de um item da fila na fila.

Parameters
itemIDThe queue item ID.
Retorna
O índice (ou seja, a posição cardeal) do item na fila, ou NSNotFound se não houver esse item na fila.
- (void) reload

Recarrega a fila.

O cache será limpo e a lista de códigos de itens será buscada novamente no receptor.

- (void) clear

Limpa a fila, removendo todos os elementos e limpando o cache.

Detalhe da propriedade

- (NSUInteger) itemCount
readnonatomicassign

O número de itens na fila.

- (NSUInteger) cacheSize
readnonatomicassign

O tamanho do cache.

- (NSUInteger) cachedItemCount
readnonatomicassign

O número de itens da fila que estão no cache atualmente.