Klasa GCKMediaQueue

Odniesienie do klasy GCKMediaQueue

Opis

Model danych reprezentujący kolejkę multimediów o dowolnej długości.

Ta klasa może służyć jako podstawa implementacji interfejsu UITableViewDataSource do kierowania interfejsu kolejki multimediów.

GCKMediaQueue nasłuchuje zdarzeń GCKSessionManager i automatycznie podłącza się do urządzenia GCKRemoteMediaClient po rozpoczęciu sesji przesyłania. Czeka na powiadomienia o zmianach w kolejce z komponentu GCKRemoteMediaClient i odpowiednio aktualizuje swój wewnętrzny model danych. Podobnie korzysta z GCKRemoteMediaClient do pobierania na żądanie informacji o kolejce.

Model przechowuje listę identyfikatorów elementów kolejki dla całej kolejki i automatycznie pobiera tę listę, gdy dochodzi do sesji przesyłania. Utrzymuje też pamięć podręczną LRU (o konfigurowalnym rozmiarze) GCKMediaQueueItems, posortowana według identyfikatora elementu kolejki.

Metoda itemAtIndex: (GCKMediaQueue) służy do pobierania elementu kolejki w danym indeksie. Jeśli GCKMediaQueueItem nie znajduje się obecnie w pamięci podręcznej, wysyłane jest asynchroniczne żądanie pobrania elementu z odbiornika, a osoba z przekazanym dostępem otrzymuje powiadomienie o odebraniu żądanych elementów.

Jeśli w krótkim czasie nastąpi wiele wywołań tej metody, żądane identyfikatory elementów są grupowane wewnętrznie w celu zmniejszenia liczby wysyłanych żądań sieciowych. Istnieje maksymalna liczba elementów kolejki, które można pobrać z odbiornika w danym momencie, dlatego GCKMediaQueue przechowuje okno ruchome z ostatnimi N identyfikatorami elementów do pobrania. Dlatego też, jeśli w krótkim czasie zostanie zażądanych bardzo dużo elementów, zostanie pobranych tylko N ostatnich. Pozwala to sprawnie zarządzać bardzo długą kolejką w interfejsie aplikacji, którą użytkownik może szybko lub często przewijać.

GCKMediaQueue nie udostępnia żadnych metod bezpośredniego modyfikowania kolejki, ponieważ każda taka zmiana wymaga wysłania asynchronicznego żądania sieciowego do odbiorcy (za pomocą metod w GCKRemoteMediaClient), co może zakończyć się błędem. GCKMediaQueue musi reprezentować kolejkę w takiej postaci, w jakiej występuje w odbiorniku, dlatego wprowadzenie lokalnych zmian w modelu danych, które nie zostały jeszcze zatwierdzone w odbiorniku, może spowodować nieprawidłowe działanie interfejsu użytkownika.

Informacje o protokole delegowania znajdziesz w sekcji GCKMediaQueueDelegate.

Od
4.3.4

Dziedziczy NSObject.

Podsumowanie metody instancji

(instancetype) - init
 
(instancetype) - initWithRemoteMediaClient:
 Inicjuje nowego GCKMediaQueue z domyślnym rozmiarem pamięci podręcznej i domyślną maksymalną liczbą pobrań. Więcej...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:
 Inicjuje nowego GCKMediaQueue z podanym rozmiarem pamięci podręcznej i domyślną maksymalną liczbą pobrań. Więcej...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:maxFetchCount:
 Inicjuje nowego GCKMediaQueue o podanym rozmiarze pamięci podręcznej i o podanej maksymalnej liczbie pobrań. Więcej...
 
(void) - addDelegate:
 Dodaje przedstawiciela do listy przedstawicieli tego obiektu. Więcej...
 
(void) - removeDelegate:
 Usuwa przedstawiciela z listy przedstawicieli tego obiektu. Więcej...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:
 Zwraca element kolejki multimediów o danym indeksie w kolejce lub konfiguruje pobieranie elementu z odbiornika, jeśli nie znajduje się on obecnie w pamięci podręcznej. Więcej...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:fetchIfNeeded:
 Zwraca element kolejki multimediów o danym indeksie w kolejce lub opcjonalnie porządkuje pobieranie elementu z odbiornika, jeśli nie znajduje się on obecnie w pamięci podręcznej. Więcej...
 
(GCKMediaQueueItemID- itemIDAtIndex:
 Zwraca identyfikator elementu o podanym indeksie w kolejce. Więcej...
 
(NSInteger) - indexOfItemWithID:
 Wyszukuje indeks elementu kolejki w kolejce. Więcej...
 
(void) - reload
 Ponownie wczytuje kolejkę. Więcej...
 
(void) - clear
 Czyści kolejkę, usuwając wszystkie elementy i opróżniając pamięć podręczną. Więcej...
 

Podsumowanie usługi

NSUInteger itemCount
 Liczba elementów znajdujących się obecnie w kolejce. Więcej...
 
NSUInteger cacheSize
 Rozmiar pamięci podręcznej. Więcej...
 
NSUInteger cachedItemCount
 Liczba elementów kolejki, które są obecnie w pamięci podręcznej. Więcej...
 

Szczegóły metody

- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient

Inicjuje nowego GCKMediaQueue z domyślnym rozmiarem pamięci podręcznej i domyślną maksymalną liczbą pobrań.

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

Inicjuje nowego GCKMediaQueue z podanym rozmiarem pamięci podręcznej i domyślną maksymalną liczbą pobrań.

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

Inicjuje nowego GCKMediaQueue o podanym rozmiarze pamięci podręcznej i o podanej maksymalnej liczbie pobrań.

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

Dodaje przedstawiciela do listy przedstawicieli tego obiektu.

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

Usuwa przedstawiciela z listy przedstawicieli tego obiektu.

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

Zwraca element kolejki multimediów o danym indeksie w kolejce lub konfiguruje pobieranie elementu z odbiornika, jeśli nie znajduje się on obecnie w pamięci podręcznej.

Parameters
indexThe index of the item to fetch.
Akcje powrotne
Element o danym indeksie lub nil, jeśli nie znajduje się obecnie w pamięci podręcznej, ale zostanie pobrany asynchronicznie.
- (nullable GCKMediaQueueItem *) itemAtIndex: (NSUInteger)  index
fetchIfNeeded: (BOOL)  fetch 

Zwraca element kolejki multimediów o danym indeksie w kolejce lub opcjonalnie porządkuje pobieranie elementu z odbiornika, jeśli nie znajduje się on obecnie w pamięci podręcznej.

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.
Akcje powrotne
Element w danym indeksie lub nil, jeśli nie znajduje się obecnie w pamięci podręcznej.
- (GCKMediaQueueItemID) itemIDAtIndex: (NSUInteger)  index

Zwraca identyfikator elementu o podanym indeksie w kolejce.

Akcje powrotne
Identyfikator elementu w danym indeksie lub wartość kGCKMediaQueueInvalidItemID, jeśli indeks jest nieprawidłowy.
- (NSInteger) indexOfItemWithID: (GCKMediaQueueItemID itemID

Wyszukuje indeks elementu kolejki w kolejce.

Parameters
itemIDThe queue item ID.
Akcje powrotne
Indeks (czyli pozycja kardynałowa) elementu w kolejce lub NSNotFound, jeśli w kolejce nie ma takiego elementu.
- (void) reload

Ponownie wczytuje kolejkę.

Pamięć podręczna zostanie opróżniona, a lista identyfikatorów produktów zostanie ponownie pobrana z odbiornika.

- (void) clear

Czyści kolejkę, usuwając wszystkie elementy i opróżniając pamięć podręczną.

Szczegóły nieruchomości

- (NSUInteger) itemCount
readnonatomicassign

Liczba elementów znajdujących się obecnie w kolejce.

- (NSUInteger) cacheSize
readnonatomicassign

Rozmiar pamięci podręcznej.

- (NSUInteger) cachedItemCount
readnonatomicassign

Liczba elementów kolejki, które są obecnie w pamięci podręcznej.