Genel bakış
Rastgele uzunluktaki bir medya sırasının veri modeli gösterimi.
Bu sınıf, medya sırası kullanıcı arayüzünü yönlendirmeye yönelik bir UITableViewDataSource uygulanmasında temel olarak kullanılabilir.
GCKMediaQueue, GCKSessionManager etkinliklerini dinler ve bir Yayınlama oturumu başlatıldığında kendini otomatik olarak GCKRemoteMediaClient öğesine ekler. GCKRemoteMediaClient API'sinden gelen sıra değişikliği bildirimlerini dinler ve dahili veri modelini buna göre günceller. Benzer şekilde, istek üzerine sıra bilgilerini getirmek için GCKRemoteMediaClient özelliğini kullanır.
Model, sıranın tamamı için sıra öğesi kimliklerinin bir listesini tutar; bir yayınlama oturumuna eklendiğinde bu listeyi otomatik olarak getirir. Ayrıca, sıra öğesi kimliği ile belirlenen GCKMediaQueueItems'in LRU önbelleğini (yapılandırılabilir boyuta sahip) tutar.
itemAtIndex: (GCKMediaQueue) yöntemi, belirli bir dizindeki bir sıra öğesini getirmek için kullanılır. GCKMediaQueueItem şu anda önbellekte değilse öğeyi alıcıdan getirmek için eşzamansız bir istek yapılır ve istenen öğeler alındığında yetki verilen kişiye en sonunda bildirim gönderilir.
Bu yönteme çok kısa bir süre içinde birden fazla çağrı yapılırsa istenen öğe kimlikleri, yapılan ağ isteklerinin sayısını azaltmak için dahili olarak gruplandırılır. Alıcıdan aynı anda kaç sıra öğesinin getirilebileceğiyle ilgili bir üst sınır olduğu için GCKMediaQueue, alınacak son N öğe kimliğinin kayan aralığını korur. Bu nedenle, kısa bir süre içinde çok sayıda öğe istenirse yalnızca son N öğe getirilir. Bu davranış, uygulamanın kullanıcı arayüzünde bir kullanıcı tarafından hızlı ve/veya sık sık kaydırılabilen çok uzun bir sıranın verimli bir şekilde yönetilmesine olanak tanır.
GCKMediaQueue, sıranın doğrudan değiştirilmesi için herhangi bir yöntem sunmaz. Çünkü bu tür değişiklikler alıcıya yönelik eşzamansız bir ağ isteği içerir (GCKRemoteMediaClient üzerindeki yöntemler aracılığıyla) ve bu durum, bir hata ile başarısız olabilir. GCKMediaQueue, sıranın alıcıda mevcut olduğu şekilde tutarlı bir şekilde gösterilmesini sağlamalıdır. Bu nedenle, henüz alıcıda işlenmemiş veri modelinde yerel değişiklikler yapılması hatalı kullanıcı arayüzü davranışına neden olabilir.
Delege protokolü için GCKMediaQueueDelegate sayfasına bakın.
- yılından beri
- 4.3.4
NSObject öğesini devralır.
Örnek Yöntemi Özeti | |
(instancetype) | - init |
(instancetype) | - initWithRemoteMediaClient: |
Varsayılan önbellek boyutu ve varsayılan maksimum getirme sayısıyla yeni bir GCKMediaQueue başlatır. Diğer... | |
(instancetype) | - initWithRemoteMediaClient:cacheSize: |
Belirtilen önbellek boyutu ve varsayılan maksimum getirme sayısı ile yeni bir GCKMediaQueue başlatır. Diğer... | |
(instancetype) | - initWithRemoteMediaClient:cacheSize:maxFetchCount: |
Belirtilen önbellek boyutu ve belirtilen maksimum getirme sayısı ile yeni bir GCKMediaQueue başlatır. Diğer... | |
(void) | - addDelegate: |
Bu nesnenin yetki verilmiş kullanıcılar listesine yetki verilmiş kullanıcı ekler. Diğer... | |
(void) | - removeDelegate: |
Yetki verilmiş bir kullanıcıyı bu nesnenin yetki verilmiş kullanıcılar listesinden kaldırır. Diğer... | |
(nullable GCKMediaQueueItem *) | - itemAtIndex: |
Sırada belirtilen dizindeki medya sırası öğesini döndürür veya öğe o anda önbellekte değilse alıcıdan getirilmesi için düzenlenir. Diğer... | |
(nullable GCKMediaQueueItem *) | - itemAtIndex:fetchIfNeeded: |
Sırada belirtilen dizindeki medya sırası öğesini döndürür veya isteğe bağlı olarak öğe o anda önbellekte değilse alıcıdan getirilecek şekilde ayarlanır. Diğer... | |
(GCKMediaQueueItemID) | - itemIDAtIndex: |
Sırada belirtilen dizindeki öğenin öğe kimliğini döndürür. Diğer... | |
(NSInteger) | - indexOfItemWithID: |
Sıradaki bir sıra öğesinin dizinini arar. Diğer... | |
(void) | - reload |
Sırayı yeniden yükler. Diğer... | |
(void) | - clear |
Sırayı temizleyerek tüm öğeleri kaldırır ve önbelleği temizler. Diğer... | |
Mülk Özeti | |
NSUInteger | itemCount |
Şu anda sırada bulunan öğelerin sayısı. Diğer... | |
NSUInteger | cacheSize |
Önbellek boyutu. Diğer... | |
NSUInteger | cachedItemCount |
Şu anda önbellekte olan sıra öğelerinin sayısı. Diğer... | |
Yöntem Ayrıntısı
- (instancetype) initWithRemoteMediaClient: | (GCKRemoteMediaClient *) | remoteMediaClient |
Varsayılan önbellek boyutu ve varsayılan maksimum getirme sayısıyla yeni bir GCKMediaQueue başlatır.
- (instancetype) initWithRemoteMediaClient: | (GCKRemoteMediaClient *) | remoteMediaClient | |
cacheSize: | (NSUInteger) | cacheSize | |
Belirtilen önbellek boyutu ve varsayılan maksimum getirme sayısı ile yeni bir GCKMediaQueue başlatır.
- Parameters
-
cacheSize The cache size. Must be nonzero.
- (instancetype) initWithRemoteMediaClient: | (GCKRemoteMediaClient *) | remoteMediaClient | |
cacheSize: | (NSUInteger) | cacheSize | |
maxFetchCount: | (NSUInteger) | maxFetchCount | |
Belirtilen önbellek boyutu ve belirtilen maksimum getirme sayısı ile yeni bir GCKMediaQueue başlatır.
- Parameters
-
cacheSize The cache size. Must be nonzero. maxFetchCount The maxiumum fetch count with minimum being 1.
- (void) addDelegate: | (id< GCKMediaQueueDelegate >) | delegate |
Bu nesnenin yetki verilmiş kullanıcılar listesine yetki verilmiş kullanıcı ekler.
- Parameters
-
delegate The delegate to add. The delegate will be retained until removeDelegate: is called.
- (void) removeDelegate: | (id< GCKMediaQueueDelegate >) | delegate |
Yetki verilmiş bir kullanıcıyı bu nesnenin yetki verilmiş kullanıcılar listesinden kaldırır.
- Parameters
-
delegate The delegate to remove.
- (nullable GCKMediaQueueItem *) itemAtIndex: | (NSUInteger) | index |
Sırada belirtilen dizindeki medya sırası öğesini döndürür veya öğe o anda önbellekte değilse alıcıdan getirilmesi için düzenlenir.
- Parameters
-
index The index of the item to fetch.
- İlerlemeler
- Belirtilen dizindeki öğe veya öğe o anda önbellekte değilse ancak eşzamansız olarak alınacaksa
nil
.
- (nullable GCKMediaQueueItem *) itemAtIndex: | (NSUInteger) | index | |
fetchIfNeeded: | (BOOL) | fetch | |
Sırada belirtilen dizindeki medya sırası öğesini döndürür veya isteğe bağlı olarak öğe o anda önbellekte değilse alıcıdan getirilecek şekilde ayarlanır.
- 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.
- İlerlemeler
- Belirtilen dizindeki öğe veya öğe o anda önbellekte değilse
nil
.
- (GCKMediaQueueItemID) itemIDAtIndex: | (NSUInteger) | index |
Sırada belirtilen dizindeki öğenin öğe kimliğini döndürür.
- İlerlemeler
- Belirtilen dizindeki öğe kimliği veya dizin geçersizse kGCKMediaQueue invalidItemID.
- (NSInteger) indexOfItemWithID: | (GCKMediaQueueItemID) | itemID |
Sıradaki bir sıra öğesinin dizinini arar.
- Parameters
-
itemID The queue item ID.
- İlerlemeler
- Öğenin sıradaki dizini (kardinal konumu) veya sırada böyle bir öğe yoksa NSNotFound.
- (void) reload |
Sırayı yeniden yükler.
Önbellek temizlenecek ve öğe kimliği listesi alıcıdan yeniden alınacak.
- (void) clear |
Sırayı temizleyerek tüm öğeleri kaldırır ve önbelleği temizler.
Mülk Ayrıntısı
|
readnonatomicassign |
Şu anda sırada bulunan öğelerin sayısı.
|
readnonatomicassign |
Önbellek boyutu.
|
readnonatomicassign |
Şu anda önbellekte olan sıra öğelerinin sayısı.