คลาส GCKMediaQueue

ข้อมูลอ้างอิงคลาส GCKMediaQueue

ภาพรวม

การแสดงโมเดลข้อมูลของคิวสื่อความยาวที่กําหนดเอง

สามารถใช้คลาสนี้เป็นพื้นฐานในการใช้ UITableViewDataSource สําหรับการเพิ่ม UI ของคิวสื่อ

GCKMediaQueue รอฟังเหตุการณ์ GCKSessionManager และแนบ GCKRemoteMediaClient โดยอัตโนมัติเมื่อเซสชันการแคสต์เริ่มทํางาน ซึ่งคอยฟังการแจ้งเตือนการเปลี่ยนแปลงคิวจาก GCKRemoteMediaClient และอัปเดตโมเดลข้อมูลภายในของภายในให้สอดคล้องกัน ในทํานองเดียวกัน ระบบจะใช้ GCKRemoteMediaClient เพื่อดึงข้อมูลคิวตามคําขอ

โมเดลจะเก็บรักษารายการรหัสคิวของคิวทั้งหมดไว้ และจะเรียกรายการนี้โดยอัตโนมัติทุกครั้งที่แนบไปกับเซสชันการแคสต์ และยังเก็บรักษาแคช LRU (ขนาดที่กําหนดค่าได้) ของ GCKMediaQueueItems ซึ่งคีย์ด้วยรหัสรายการคิว

มีการใช้เมธอด itemAtIndex: (GCKMediaQueue) เพื่อดึงรายการคิวที่ดัชนีที่ระบุ หาก GCKMediaQueueItem ไม่ได้อยู่ในแคชในขณะนี้ ระบบจะส่งคําขอแบบไม่พร้อมกันเพื่อดึงรายการดังกล่าวจากผู้รับ และในการมอบสิทธิ์จะได้รับแจ้งเมื่อมีการรับรายการที่ขอ

หากมีการเรียกวิธีนี้หลายครั้งในเวลาสั้นๆ รหัสสินค้าที่ขอจะจัดกลุ่มไว้ภายในเพื่อลดจํานวนคําขอเครือข่ายที่เกิดขึ้น เนื่องจากมีขีดจํากัดจํานวนครั้งสูงสุดที่จะดึงข้อมูลรายการคิวจากตัวรับได้ในแต่ละครั้ง GCKMediaQueue จะเก็บหน้าต่างของรหัสรายการ N ล่าสุดเอาไว้ ดังนั้นหากมีการขอรายการจํานวนมากในช่วงเวลาสั้นๆ ระบบจะดึงข้อมูลเฉพาะรายการ N รายการสุดท้ายเท่านั้น ลักษณะการทํางานนี้ช่วยให้จัดการคิวที่ใช้เวลานานใน UI ของแอปได้อย่างมีประสิทธิภาพ ซึ่งอาจเลื่อนได้อย่างรวดเร็วและ/หรือเลื่อนผ่านผู้ใช้บ่อย

GCKMediaQueue ไม่มีเมธอดสําหรับการแก้ไขคิวโดยตรง เนื่องจากการเปลี่ยนแปลงดังกล่าวเกี่ยวข้องกับคําขอเครือข่ายแบบไม่พร้อมกันไปยังผู้รับ (ผ่านเมธอดใน GCKRemoteMediaClient) ซึ่งอาจล้มเหลวได้โดยมีข้อผิดพลาด GCKMediaQueue ต้องแสดงถึงคิวที่สอดคล้องกันเนื่องจากมีอยู่ในตัวรับ ดังนั้น การเปลี่ยนแปลงในเครื่องสําหรับโมเดลข้อมูลที่ยังไม่ได้ทําสัญญาผูกมัดไว้ในตัวรับอาจส่งผลให้ลักษณะการทํางานของ UI ไม่ถูกต้อง

โปรดดู GCKMediaQueueDelegate สําหรับโปรโตคอลการมอบสิทธิ์

Since
4.3.4

รับค่า NSObject

สรุปเมธอดของอินสแตนซ์

(instancetype) - init
 
(instancetype) - initWithRemoteMediaClient:
 เริ่มต้น GCKMediaQueue ใหม่ด้วยขนาดแคชเริ่มต้นและจํานวนการดึงข้อมูลสูงสุดเริ่มต้น เพิ่มเติม...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:
 เริ่มต้น GCKMediaQueue ใหม่ด้วยขนาดแคชที่ระบุและจํานวนการดึงข้อมูลสูงสุดเริ่มต้น เพิ่มเติม...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:maxFetchCount:
 เริ่มต้น GCKMediaQueue ใหม่ด้วยขนาดแคชที่ระบุและจํานวนการดึงข้อมูลสูงสุด เพิ่มเติม...
 
(void) - addDelegate:
 เพิ่มผู้รับมอบสิทธิ์ในรายการผู้รับมอบสิทธิ์ของออบเจ็กต์นี้ เพิ่มเติม...
 
(void) - removeDelegate:
 นําผู้ที่ได้รับมอบสิทธิ์ออกจากรายการผู้รับมอบสิทธิ์ของออบเจ็กต์นี้ เพิ่มเติม...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:
 แสดงผลรายการคิวสื่อที่ดัชนีหนึ่งๆ ในคิว หรือจัดเรียงให้ดึงรายการจากผู้รับหากไม่ได้อยู่ในแคชในขณะนี้ เพิ่มเติม...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:fetchIfNeeded:
 แสดงผลรายการคิวสื่อที่ดัชนีที่ระบุในคิว หรือเลือกหรือจัดเรียงเพื่อดึงรายการจากตัวรับ หากปัจจุบันไม่ได้อยู่ในแคช เพิ่มเติม...
 
(GCKMediaQueueItemID- itemIDAtIndex:
 แสดงผลรหัสสินค้าของสินค้าในดัชนีที่ระบุไว้ในคิว เพิ่มเติม...
 
(NSInteger) - indexOfItemWithID:
 ค้นหาดัชนีของรายการในคิวในคิว เพิ่มเติม...
 
(void) - reload
 โหลดคิวซ้ํา เพิ่มเติม...
 
(void) - clear
 ล้างคิว โดยนําองค์ประกอบทั้งหมดออกและล้างแคช เพิ่มเติม...
 

สรุปพร็อพเพอร์ตี้

NSUInteger itemCount
 จํานวนรายการที่อยู่ในคิวในปัจจุบัน เพิ่มเติม...
 
NSUInteger cacheSize
 ขนาดแคช เพิ่มเติม...
 
NSUInteger cachedItemCount
 จํานวนรายการในคิวที่อยู่ในแคชในปัจจุบัน เพิ่มเติม...
 

รายละเอียดเมธอด

- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient

เริ่มต้น GCKMediaQueue ใหม่ด้วยขนาดแคชเริ่มต้นและจํานวนการดึงข้อมูลสูงสุดเริ่มต้น

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

เริ่มต้น GCKMediaQueue ใหม่ด้วยขนาดแคชที่ระบุและจํานวนการดึงข้อมูลสูงสุดเริ่มต้น

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

เริ่มต้น GCKMediaQueue ใหม่ด้วยขนาดแคชที่ระบุและจํานวนการดึงข้อมูลสูงสุด

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

เพิ่มผู้รับมอบสิทธิ์ในรายการผู้รับมอบสิทธิ์ของออบเจ็กต์นี้

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

นําผู้ที่ได้รับมอบสิทธิ์ออกจากรายการผู้รับมอบสิทธิ์ของออบเจ็กต์นี้

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

แสดงผลรายการคิวสื่อที่ดัชนีหนึ่งๆ ในคิว หรือจัดเรียงให้ดึงรายการจากผู้รับหากไม่ได้อยู่ในแคชในขณะนี้

Parameters
indexThe index of the item to fetch.
การคืนสินค้า
รายการในดัชนีที่ระบุ หรือnilหากรายการไม่ได้อยู่ในแคชในขณะนี้แต่จะมีการดึงข้อมูลแบบไม่พร้อมกัน
- (nullable GCKMediaQueueItem *) itemAtIndex: (NSUInteger)  index
fetchIfNeeded: (BOOL)  fetch 

แสดงผลรายการคิวสื่อที่ดัชนีที่ระบุในคิว หรือเลือกหรือจัดเรียงเพื่อดึงรายการจากตัวรับ หากปัจจุบันไม่ได้อยู่ในแคช

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.
การคืนสินค้า
รายการในดัชนีที่ระบุ หรือnilหากรายการไม่ได้อยู่ในแคชในขณะนี้
- (GCKMediaQueueItemID) itemIDAtIndex: (NSUInteger)  index

แสดงผลรหัสสินค้าของสินค้าในดัชนีที่ระบุไว้ในคิว

การคืนสินค้า
รหัสสินค้าในดัชนีที่ระบุ หรือ kGCKMediaQueueinvalidItemID หากดัชนีไม่ถูกต้อง
- (NSInteger) indexOfItemWithID: (GCKMediaQueueItemID itemID

ค้นหาดัชนีของรายการในคิวในคิว

Parameters
itemIDThe queue item ID.
การคืนสินค้า
ดัชนี (ซึ่งก็คือตําแหน่งจํานวนสมาชิกในเซ็ต) ของรายการในคิว หรือ NSNotFound หากไม่มีรายการดังกล่าวในคิว
- (void) reload

โหลดคิวซ้ํา

แคชจะล้างออกและระบบจะดึงข้อมูลรายการรหัสอีกครั้งจากตัวรับ

- (void) clear

ล้างคิว โดยนําองค์ประกอบทั้งหมดออกและล้างแคช

รายละเอียดพร็อพเพอร์ตี้

- (NSUInteger) itemCount
readnonatomicassign

จํานวนรายการที่อยู่ในคิวในปัจจุบัน

- (NSUInteger) cacheSize
readnonatomicassign

ขนาดแคช

- (NSUInteger) cachedItemCount
readnonatomicassign

จํานวนรายการในคิวที่อยู่ในแคชในปัจจุบัน