מחלקה GCKMediaQueue

הפניה למחלקה GCKMediaQueue

סקירה כללית

ייצוג של מודל נתונים של תור מדיה באורך שרירותי.

המחלקה הזו יכולה לשמש כבסיס להטמעה של UITableViewDataSource להפעלת ממשק משתמש של תור מדיה.

האפליקציה GCKMediaQueue מאזינה לאירועי GCKSessionManager ומצרפת את עצמה באופן אוטומטי ל-GCKRemoteMediaClient כשמתחילים סשן העברה. היא מאזינה להתראות על שינויים בתור מ-GCKRemoteMediaClient ומעדכנת בהתאם את מודל הנתונים הפנימי שלו. באופן דומה, היא משתמשת בGCKRemoteMediaClient כדי לאחזר מידע על התור על פי דרישה.

המודל שומר רשימה של מזהי פריטים בתור לכל התור. הוא מאחזר באופן אוטומטי את הרשימה הזו בכל פעם שהיא מצורפת לפעילות העברה (cast). הוא גם שומר מטמון LRU (בגודל שניתן להגדרה) של GCKMediaQueueItems, המפתח לפי מזהה הפריט בתור.

השיטה itemAtIndex: (GCKMediaQueue) משמשת לאחזור פריט בתור באינדקס נתון. אם ה-GCKMediaQueueItem לא נמצא כרגע במטמון, נשלחת בקשה אסינכרונית כדי לאחזר את הפריט מהמקבל, ובסופו של דבר המואצל יקבל הודעה כשהפריטים המבוקשים יתקבלו.

אם מבוצעות כמה קריאות לשיטה הזו בפרק זמן קצר מאוד, מזהי הפריטים המבוקשים מקובצים באופן פנימי כדי לצמצם את מספר הבקשות ברשת. קיימת מגבלה עליונה על מספר הפריטים שאפשר לאחזר מהמקבל בבת אחת, ולכן GCKMediaQueue שומר חלון מתגלגל של N מזהי הפריטים האחרונים שיש לאחזר. לכן, אם מבקשים מספר גדול מאוד של פריטים בפרק זמן קצר, רק N הפריטים האחרונים יאוחזרו בפועל. ההתנהגות הזו מאפשרת ניהול יעיל של תור ארוך מאוד בממשק המשתמש של האפליקציה, שהמשתמשים יגלולו במהירות או לעיתים קרובות.

GCKMediaQueue לא מספק שיטות לשינוי ישיר של התור, כי כל שינוי כזה כרוך בבקשת רשת אסינכרונית מהמקבל (באמצעות שיטות ב-GCKRemoteMediaClient), שעלול להיכשל עם שגיאה. צריך לוודא שב-GCKMediaQueue יש ייצוג עקבי של התור כפי שהוא קיים אצל המקבל, לכן ביצוע שינויים מקומיים במודל הנתונים שעדיין לא ניתנו על המקבל עלול לגרום להתנהגות שגויה בממשק המשתמש.

למידע על הפרוטוקול להאצלת הגישה, אפשר להיכנס לכתובת GCKMediaQueueDelegate.

מאז
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

מחזירה את מזהה הפריט של הפריט באינדקס הנתון בתור.

החזרות
מזהה הפריט באינדקס הנתון, או kGCKMediaQueueLegalItemID אם האינדקס לא חוקי.
- (NSInteger) indexOfItemWithID: (GCKMediaQueueItemID itemID

מחפש את האינדקס של פריט בתור בתור.

Parameters
itemIDThe queue item ID.
החזרות
האינדקס (כלומר, המיקום הקרדינלי) של הפריט בתור, או NSNotFound אם אין פריט כזה בתור.
- (void) reload

טעינת התור מחדש.

המטמון יוסר והרשימה של מזהי הפריטים תאוחזר מחדש מהמקבל.

- (void) clear

ניקוי התור, הסרת כל הרכיבים וניקוי המטמון.

פרטי הנכס

- (NSUInteger) itemCount
readnonatomicassign

מספר הפריטים שנמצאים כרגע בתור.

- (NSUInteger) cacheSize
readnonatomicassign

גודל המטמון.

- (NSUInteger) cachedItemCount
readnonatomicassign

מספר הפריטים בתור שנמצאים כרגע במטמון.