ภาพรวม
การนำเสนอโมเดลข้อมูลของคิวสื่อที่มีความยาวเท่าใดก็ได้
คลาสนี้สามารถใช้เป็นพื้นฐานสำหรับการใช้งาน 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
-
cacheSize The cache size. Must be nonzero.
- (instancetype) initWithRemoteMediaClient: | (GCKRemoteMediaClient *) | remoteMediaClient | |
cacheSize: | (NSUInteger) | cacheSize | |
maxFetchCount: | (NSUInteger) | maxFetchCount | |
เริ่มต้น GCKMediaQueue ใหม่ด้วยขนาดแคชที่ระบุและจำนวนการดึงข้อมูลสูงสุด
- Parameters
-
cacheSize The cache size. Must be nonzero. maxFetchCount The maxiumum fetch count with minimum being 1.
- (void) addDelegate: | (id< GCKMediaQueueDelegate >) | delegate |
เพิ่มผู้ที่ได้รับมอบสิทธิ์ในรายชื่อผู้รับมอบสิทธิ์ของออบเจ็กต์นี้
- Parameters
-
delegate The delegate to add. The delegate will be retained until removeDelegate: is called.
- (void) removeDelegate: | (id< GCKMediaQueueDelegate >) | delegate |
นำผู้รับมอบสิทธิ์ออกจากรายการผู้รับมอบสิทธิ์ของออบเจ็กต์นี้
- Parameters
-
delegate The delegate to remove.
- (nullable GCKMediaQueueItem *) itemAtIndex: | (NSUInteger) | index |
แสดงรายการในคิวสื่อที่ดัชนีที่กำหนดในคิว หรือจัดเรียงให้ดึงรายการจากตัวรับหากขณะนี้รายการนั้นไม่อยู่ในแคช
- Parameters
-
index The index of the item to fetch.
- การคืนสินค้า
- รายการในดัชนีที่ระบุ หรือ
nil
หากขณะนี้รายการไม่อยู่ในแคช แต่จะมีการเรียกข้อมูลแบบไม่พร้อมกัน
- (nullable GCKMediaQueueItem *) itemAtIndex: | (NSUInteger) | index | |
fetchIfNeeded: | (BOOL) | fetch | |
แสดงรายการในคิวสื่อที่ดัชนีที่กำหนดในคิว หรือจัดเรียงเพื่อให้ดึงรายการจากเครื่องรับหากขณะนี้รายการใดไม่ได้อยู่ในแคช
- 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.
- การคืนสินค้า
- รายการในดัชนีที่ระบุ หรือ
nil
หากขณะนี้รายการไม่ได้อยู่ในแคช
- (GCKMediaQueueItemID) itemIDAtIndex: | (NSUInteger) | index |
แสดงผลรหัสสินค้าของสินค้าในดัชนีที่กำหนดในคิว
- การคืนสินค้า
- รหัสสินค้าในดัชนีที่กำหนด หรือ kGCKMediaQueueNegativeItemID ไม่ถูกต้องหากดัชนีไม่ถูกต้อง
- (NSInteger) indexOfItemWithID: | (GCKMediaQueueItemID) | itemID |
ค้นหาดัชนีของรายการคิวในคิว
- Parameters
-
itemID The queue item ID.
- การคืนสินค้า
- ดัชนี (ซึ่งก็คือตำแหน่ง Cardinal) ของรายการในคิว หรือ NSNotFound หากไม่มีรายการดังกล่าวอยู่ในคิว
- (void) reload |
โหลดคิวซ้ำ
ระบบจะล้างแคชและดึงข้อมูลรายการรหัสสินค้าอีกครั้งจากตัวรับ
- (void) clear |
ล้างคิว นำองค์ประกอบทั้งหมดออกและล้างแคช
รายละเอียดที่พัก
|
readnonatomicassign |
จำนวนรายการที่อยู่ในคิวในขณะนี้
|
readnonatomicassign |
ขนาดแคช
|
readnonatomicassign |
จำนวนรายการในคิวที่อยู่ในแคชในขณะนี้