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
-
cacheSize The 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
-
cacheSize The cache size. Must be nonzero. maxFetchCount The maxiumum fetch count with minimum being 1.
- (void) addDelegate: | (id< GCKMediaQueueDelegate >) | delegate |
Adiciona um delegado à lista de delegados desse objeto.
- Parameters
-
delegate The 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
-
delegate The 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
-
index The 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
-
index The index of the item to fetch. fetch Whether 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
-
itemID The 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
|
readnonatomicassign |
O número de itens na fila.
|
readnonatomicassign |
O tamanho do cache.
|
readnonatomicassign |
O número de itens da fila que estão no cache atualmente.