کلاس GCKMediaQueue

مرجع کلاس GCKMediaQueue

بررسی اجمالی

نمایش مدل داده از یک صف رسانه با طول دلخواه.

این کلاس می تواند به عنوان پایه ای برای پیاده سازی 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
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

شناسه مورد مورد را در نمایه داده شده در صف برمی‌گرداند.

برمی گرداند
شناسه مورد در ایندکس داده شده، یا kGCKMediaQueueInvalidItemID اگر نمایه نامعتبر باشد.
- (NSInteger) indexOfItemWithID: ( GCKMediaQueueItemID itemID

نمایه یک آیتم صف را در صف جستجو می کند.

Parameters
itemIDThe queue item ID.
برمی گرداند
شاخص (یعنی موقعیت اصلی) آیتم در صف، یا NSNotFound اگر چنین موردی در صف وجود نداشته باشد.
- (void) reload

صف را دوباره بارگیری می کند.

حافظه پنهان پاک می شود و لیست شناسه مورد مجدداً از گیرنده دریافت می شود.

- (void) clear

صف را پاک می کند، تمام عناصر را حذف می کند و کش را پاک می کند.

جزئیات ملک

- (NSUInteger) itemCount
read nonatomic assign

تعداد مواردی که در حال حاضر در صف هستند.

- (NSUInteger) cacheSize
read nonatomic assign

اندازه حافظه پنهان

- (NSUInteger) cachedItemCount
read nonatomic assign

تعداد موارد صفی که در حال حاضر در حافظه پنهان هستند.