คลาส 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

แสดงผลรหัสสินค้าของสินค้าในดัชนีที่กำหนดในคิว

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

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

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

โหลดคิวซ้ำ

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

- (void) clear

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

รายละเอียดที่พัก

- (NSUInteger) itemCount
readnonatomicassign

จำนวนรายการที่อยู่ในคิวในขณะนี้

- (NSUInteger) cacheSize
readnonatomicassign

ขนาดแคช

- (NSUInteger) cachedItemCount
readnonatomicassign

จำนวนรายการในคิวที่อยู่ในแคชในขณะนี้