סקירה כללית
ייצוג של מודל נתונים של תור מדיה באורך שרירותי.
המחלקה הזו יכולה לשמש כבסיס להטמעה של 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
-
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 |
מחזירה את מזהה הפריט של הפריט באינדקס הנתון בתור.
- החזרות
- מזהה הפריט באינדקס הנתון, או kGCKMediaQueueLegalItemID אם האינדקס לא חוקי.
- (NSInteger) indexOfItemWithID: | (GCKMediaQueueItemID) | itemID |
מחפש את האינדקס של פריט בתור בתור.
- Parameters
-
itemID The queue item ID.
- החזרות
- האינדקס (כלומר, המיקום הקרדינלי) של הפריט בתור, או NSNotFound אם אין פריט כזה בתור.
- (void) reload |
טעינת התור מחדש.
המטמון יוסר והרשימה של מזהי הפריטים תאוחזר מחדש מהמקבל.
- (void) clear |
ניקוי התור, הסרת כל הרכיבים וניקוי המטמון.
פרטי הנכס
|
readnonatomicassign |
מספר הפריטים שנמצאים כרגע בתור.
|
readnonatomicassign |
גודל המטמון.
|
readnonatomicassign |
מספר הפריטים בתור שנמצאים כרגע במטמון.