ภาพรวม
การนำเสนอโมเดลข้อมูลของคิวสื่อที่มีความยาวเท่าใดก็ได้
คลาสนี้สามารถใช้เป็นพื้นฐานสำหรับการใช้งาน 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 | 
จำนวนรายการในคิวที่อยู่ในแคชในขณะนี้