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
-
cacheSize The 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
-
cacheSize The cache size. Must be nonzero. maxFetchCount The maxiumum fetch count with minimum being 1.
- (void) addDelegate: | (id< GCKMediaQueueDelegate >) | delegate |
Dodaje przedstawiciela do listy przedstawicieli tego obiektu.
- Parameters
-
delegate The 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
-
delegate The 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
-
index The 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
-
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.
- 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
-
itemID The 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
|
readnonatomicassign |
Liczba elementów znajdujących się obecnie w kolejce.
|
readnonatomicassign |
Rozmiar pamięci podręcznej.
|
readnonatomicassign |
Liczba elementów kolejki, które są obecnie w pamięci podręcznej.