ภาพรวม
การแสดงโมเดลข้อมูลของคิวสื่อความยาวที่กําหนดเอง
สามารถใช้คลาสนี้เป็นพื้นฐานในการใช้ 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 |
แสดงผลรหัสสินค้าของสินค้าในดัชนีที่ระบุไว้ในคิว
- การคืนสินค้า
- รหัสสินค้าในดัชนีที่ระบุ หรือ kGCKMediaQueueinvalidItemID หากดัชนีไม่ถูกต้อง
- (NSInteger) indexOfItemWithID: | (GCKMediaQueueItemID) | itemID |
ค้นหาดัชนีของรายการในคิวในคิว
- Parameters
-
itemID The queue item ID.
- การคืนสินค้า
- ดัชนี (ซึ่งก็คือตําแหน่งจํานวนสมาชิกในเซ็ต) ของรายการในคิว หรือ NSNotFound หากไม่มีรายการดังกล่าวในคิว
- (void) reload |
โหลดคิวซ้ํา
แคชจะล้างออกและระบบจะดึงข้อมูลรายการรหัสอีกครั้งจากตัวรับ
- (void) clear |
ล้างคิว โดยนําองค์ประกอบทั้งหมดออกและล้างแคช
รายละเอียดพร็อพเพอร์ตี้
|
readnonatomicassign |
จํานวนรายการที่อยู่ในคิวในปัจจุบัน
|
readnonatomicassign |
ขนาดแคช
|
readnonatomicassign |
จํานวนรายการในคิวที่อยู่ในแคชในปัจจุบัน