Class GCKMediaQueue

Referensi Class GCKMediaQueue

Ringkasan

Representasi model data dari antrean media dengan panjang arbitrer.

Class ini dapat digunakan sebagai dasar untuk implementasi UITableViewDataSource untuk mendorong UI antrean media.

GCKMediaQueue memproses peristiwa GCKSessionManager dan secara otomatis mengaitkan dirinya ke GCKRemoteMediaClient saat sesi Transmisi dimulai. Fungsi ini memproses notifikasi perubahan antrean dari GCKRemoteMediaClient dan memperbarui model data internalnya. Demikian juga, kode ini menggunakan GCKRemoteMediaClient untuk mengambil informasi antrean sesuai permintaan.

Model ini mempertahankan daftar ID item antrean untuk seluruh antrean; model ini secara otomatis mengambil daftar ini setiap kali dilampirkan ke sesi Transmisi. Plugin ini juga mempertahankan cache LRU (dengan ukuran yang dapat dikonfigurasi) dari GCKMediaQueueItems, yang dikunci oleh ID item antrean.

Metode itemAtIndex: (GCKMediaQueue) digunakan untuk mengambil item antrean pada indeks tertentu. Jika GCKMediaQueueItem saat ini tidak ada dalam cache, permintaan asinkron dibuat untuk mengambil item tersebut dari penerima, dan delegasi akan diberi tahu saat item yang diminta diterima.

Jika beberapa panggilan ke metode ini dilakukan dalam waktu yang sangat singkat, ID item yang diminta akan dikelompokkan secara internal untuk mengurangi jumlah permintaan jaringan yang dibuat. Karena ada batas atas jumlah item antrean yang dapat diambil dari penerima pada satu waktu, GCKMediaQueue menyimpan jendela bergulir dari ID item terakhir yang akan diambil. Oleh karena itu, jika permintaan item dalam jumlah yang sangat besar dalam waktu singkat, hanya N item terakhir yang benar-benar akan diambil. Perilaku ini memungkinkan pengelolaan antrean yang sangat panjang secara efisien di UI aplikasi, yang dapat dilakukan dengan cepat dan/atau sering di-scroll oleh pengguna.

GCKMediaQueue tidak menyediakan metode apa pun untuk memodifikasi antrean secara langsung, karena setiap perubahan tersebut melibatkan permintaan jaringan asinkron ke penerima (melalui metode di GCKRemoteMediaClient), yang berpotensi gagal dengan error. GCKMediaQueue harus memastikan representasi antrean yang konsisten seperti yang ada di penerima, sehingga membuat perubahan lokal pada model data yang belum di-commit di penerima dapat menyebabkan perilaku UI yang salah.

Lihat GCKMediaQueueDelegate untuk protokol delegasi.

Sejak
4.3.4

Mewarisi NSObject.

Ringkasan Metode Instance

(instancetype) - init
 
(instancetype) - initWithRemoteMediaClient:
 Menginisialisasi GCKMediaQueue baru dengan ukuran cache default dan jumlah pengambilan maksimum default. Lainnya...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:
 Menginisialisasi GCKMediaQueue baru dengan ukuran cache yang ditentukan dan jumlah pengambilan maksimum default. Lainnya...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:maxFetchCount:
 Menginisialisasi GCKMediaQueue baru dengan ukuran cache yang ditentukan dan jumlah pengambilan maksimum yang ditentukan. Lainnya...
 
(void) - addDelegate:
 Menambahkan delegasi ke daftar delegasi objek ini. Lainnya...
 
(void) - removeDelegate:
 Menghapus delegasi dari daftar delegasi objek ini. Lainnya...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:
 Menampilkan item antrean media pada indeks yang diberikan dalam antrean, atau mengatur agar item diambil dari penerima jika saat ini tidak ada dalam cache. Lainnya...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:fetchIfNeeded:
 Menampilkan item antrean media pada indeks yang diberikan dalam antrean, atau secara opsional mengatur agar item diambil dari penerima jika item tersebut saat ini tidak ada dalam cache. Lainnya...
 
(GCKMediaQueueItemID- itemIDAtIndex:
 Menampilkan ID item dari item pada indeks yang diberikan dalam antrean. Lainnya...
 
(NSInteger) - indexOfItemWithID:
 Mencari indeks item dalam antrean. Lainnya...
 
(void) - reload
 Memuat ulang antrean. Lainnya...
 
(void) - clear
 Mengosongkan antrean, menghapus semua elemen, dan mengosongkan cache. Lainnya...
 

Ringkasan Properti

NSUInteger itemCount
 Jumlah item dalam antrean saat ini. Lainnya...
 
NSUInteger cacheSize
 Ukuran cache. Lainnya...
 
NSUInteger cachedItemCount
 Jumlah item antrean yang saat ini berada dalam cache. Lainnya...
 

Detail Metode

- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient

Menginisialisasi GCKMediaQueue baru dengan ukuran cache default dan jumlah pengambilan maksimum default.

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

Menginisialisasi GCKMediaQueue baru dengan ukuran cache yang ditentukan dan jumlah pengambilan maksimum default.

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

Menginisialisasi GCKMediaQueue baru dengan ukuran cache yang ditentukan dan jumlah pengambilan maksimum yang ditentukan.

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

Menambahkan delegasi ke daftar delegasi objek ini.

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

Menghapus delegasi dari daftar delegasi objek ini.

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

Menampilkan item antrean media pada indeks yang diberikan dalam antrean, atau mengatur agar item diambil dari penerima jika saat ini tidak ada dalam cache.

Parameters
indexThe index of the item to fetch.
Hasil
Item pada indeks tertentu, atau nil jika item saat ini tidak berada dalam cache, tetapi akan diambil secara asinkron.
- (nullable GCKMediaQueueItem *) itemAtIndex: (NSUInteger)  index
fetchIfNeeded: (BOOL)  fetch 

Menampilkan item antrean media pada indeks yang diberikan dalam antrean, atau secara opsional mengatur agar item diambil dari penerima jika item tersebut saat ini tidak ada dalam 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.
Hasil
Item pada indeks tertentu, atau nil jika item tersebut saat ini tidak berada dalam cache.
- (GCKMediaQueueItemID) itemIDAtIndex: (NSUInteger)  index

Menampilkan ID item dari item pada indeks yang diberikan dalam antrean.

Hasil
ID item pada indeks yang diberikan, atau kGCKMediaQueueInvalidItemID jika indeks tidak valid.
- (NSInteger) indexOfItemWithID: (GCKMediaQueueItemID itemID

Mencari indeks item dalam antrean.

Parameters
itemIDThe queue item ID.
Hasil
Indeks (yaitu, posisi utama) item dalam antrean, atau NSNotFound jika tidak ada item semacam itu dalam antrean.
- (void) reload

Memuat ulang antrean.

Cache akan dikosongkan dan daftar ID item akan diambil ulang dari penerima.

- (void) clear

Mengosongkan antrean, menghapus semua elemen, dan mengosongkan cache.

Detail Properti

- (NSUInteger) itemCount
readnonatomicassign

Jumlah item dalam antrean saat ini.

- (NSUInteger) cacheSize
readnonatomicassign

Ukuran cache.

- (NSUInteger) cachedItemCount
readnonatomicassign

Jumlah item antrean yang saat ini berada dalam cache.