بررسی اجمالی
نمایش مدل داده از یک صف رسانه با طول دلخواه.
این کلاس می تواند به عنوان پایه ای برای پیاده سازی UITableViewDataSource برای هدایت یک UI صف رسانه استفاده شود.
GCKMediaQueue به رویدادهای GCKSessionManager گوش می دهد و هنگام شروع جلسه Cast، خود را به طور خودکار به 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 |
شناسه مورد مورد را در نمایه داده شده در صف برمیگرداند.
- برمی گرداند
- شناسه مورد در ایندکس داده شده، یا kGCKMediaQueueInvalidItemID اگر نمایه نامعتبر باشد.
- (NSInteger) indexOfItemWithID: | ( GCKMediaQueueItemID ) | itemID |
نمایه یک آیتم صف را در صف جستجو می کند.
- Parameters
-
itemID The queue item ID.
- برمی گرداند
- شاخص (یعنی موقعیت اصلی) آیتم در صف، یا NSNotFound اگر چنین موردی در صف وجود نداشته باشد.
- (void) reload |
صف را دوباره بارگیری می کند.
حافظه پنهان پاک می شود و لیست شناسه مورد مجدداً از گیرنده دریافت می شود.
- (void) clear |
صف را پاک می کند، تمام عناصر را حذف می کند و کش را پاک می کند.
جزئیات ملک
|
read nonatomic assign |
تعداد مواردی که در حال حاضر در صف هستند.
|
read nonatomic assign |
اندازه حافظه پنهان
|
read nonatomic assign |
تعداد موارد صفی که در حال حاضر در حافظه پنهان هستند.