Lớp GCKMediaQueue

Tài liệu tham khảo về lớp GCKMediaQueue

Tổng quan

Mô hình dữ liệu thể hiện một hàng đợi nội dung đa phương tiện có độ dài tuỳ ý.

Bạn có thể dùng lớp này làm cơ sở triển khai UITableViewDataSource để điều khiển giao diện người dùng hàng đợi nội dung nghe nhìn.

GCKMediaQueue theo dõi các sự kiện GCKSessionManager và tự động đính kèm vào GCKRemoteMediaClient khi phiên Truyền bắt đầu. Trình thu thập thông tin theo dõi các thông báo về thay đổi hàng đợi từ GCKRemoteMediaClient và cập nhật mô hình dữ liệu nội bộ cho phù hợp. Tương tự, mã này sử dụng GCKRemoteMediaClient để tìm nạp thông tin trong hàng đợi theo yêu cầu.

Mô hình này duy trì một danh sách mã mục trong hàng đợi cho toàn bộ hàng đợi; tự động tìm nạp danh sách này mỗi khi đính kèm vào một phiên Truyền. Lớp này cũng duy trì một bộ nhớ đệm LRU (có kích thước có thể định cấu hình) của GCKMediaQueueItems, được khoá theo mã mục trong hàng đợi.

Phương thức itemAtIndex: (GCKMediaQueue) được dùng để tìm nạp một mục trong hàng đợi tại một chỉ mục nhất định. Nếu GCKMediaQueueItem hiện không có trong bộ nhớ đệm, thì một yêu cầu không đồng bộ sẽ được thực hiện để tìm nạp mục đó từ trình thu nhận và cuối cùng, người được uỷ quyền sẽ nhận được thông báo khi nhận được các mục được yêu cầu.

Nếu bạn thực hiện nhiều lệnh gọi đến phương thức này trong thời gian rất ngắn, thì mã mục được yêu cầu sẽ được phân lô nội bộ để giảm số lượng yêu cầu mạng được thực hiện. Vì có giới hạn trên về số lượng mục trong hàng đợi có thể tìm nạp được qua trình nhận tại một thời điểm, nên GCKMediaQueue sẽ áp dụng một cửa sổ luân phiên để tìm nạp N mã mục cuối cùng. Do đó, nếu người dùng yêu cầu quá nhiều mục trong một khoảng thời gian ngắn, thì hệ thống chỉ thực sự tìm nạp được N mục cuối cùng. Hành vi này giúp quản lý hiệu quả một hàng đợi rất dài trong giao diện người dùng của ứng dụng mà người dùng có thể cuộn qua một cách nhanh chóng và/hoặc thường xuyên.

GCKMediaQueue không cung cấp bất kỳ phương thức nào để sửa đổi trực tiếp hàng đợi, vì mọi thay đổi như vậy đều liên quan đến yêu cầu mạng không đồng bộ đến trình thu nhận (thông qua các phương thức trên GCKRemoteMediaClient), và có thể không thực hiện được do lỗi. GCKMediaQueue phải đảm bảo sự thể hiện nhất quán của hàng đợi như tồn tại trên trình thu nhận. Vì vậy, việc thực hiện các thay đổi cục bộ đối với mô hình dữ liệu chưa được cam kết trên trình thu nhận có thể dẫn đến hành vi không chính xác trên giao diện người dùng.

Xem GCKMediaQueueDelegate để biết giao thức uỷ quyền.

Năm thành lập
4.3.4

Kế thừa NSObject.

Tóm tắt phương thức thực thể

(instancetype) - init
 
(instancetype) - initWithRemoteMediaClient:
 Khởi chạy một GCKMediaQueue mới với kích thước bộ nhớ đệm mặc định và số lượng tìm nạp tối đa mặc định. Xem thêm...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:
 Khởi chạy một GCKMediaQueue mới với kích thước bộ nhớ đệm đã cho và số lượng tìm nạp tối đa mặc định. Xem thêm...
 
(instancetype) - initWithRemoteMediaClient:cacheSize:maxFetchCount:
 Khởi động một GCKMediaQueue mới với kích thước bộ nhớ đệm đã cho và số lượt tìm nạp tối đa nhất định. Xem thêm...
 
(void) - addDelegate:
 Thêm một thực thể đại diện vào danh sách người được uỷ quyền của đối tượng này. Xem thêm...
 
(void) - removeDelegate:
 Xoá một người được uỷ quyền khỏi danh sách người được uỷ quyền của đối tượng này. Xem thêm...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:
 Trả về mục hàng đợi nội dung đa phương tiện tại chỉ mục đã cho trong hàng đợi hoặc sắp xếp để tìm nạp mục này từ trình nhận nếu mục này hiện chưa có trong bộ nhớ đệm. Xem thêm...
 
(nullable GCKMediaQueueItem *) - itemAtIndex:fetchIfNeeded:
 Trả về mục hàng đợi nội dung đa phương tiện tại chỉ mục đã cho trong hàng đợi hoặc tuỳ ý sắp xếp để tìm nạp mục từ trình nhận nếu mục này hiện chưa có trong bộ nhớ đệm. Xem thêm...
 
(GCKMediaQueueItemID- itemIDAtIndex:
 Trả về mã mục của mục tại chỉ mục đã cho trong hàng đợi. Xem thêm...
 
(NSInteger) - indexOfItemWithID:
 Tìm chỉ mục của một mục trong hàng đợi. Xem thêm...
 
(void) - reload
 Tải lại hàng đợi. Xem thêm...
 
(void) - clear
 Xoá hàng đợi, xoá tất cả các phần tử và xoá bộ nhớ đệm. Xem thêm...
 

Tóm tắt về thuộc tính

NSUInteger itemCount
 Số mục hiện có trong hàng đợi. Xem thêm...
 
NSUInteger cacheSize
 Dung lượng bộ nhớ đệm. Xem thêm...
 
NSUInteger cachedItemCount
 Số mục trong hàng đợi hiện có trong bộ nhớ đệm. Xem thêm...
 

Chi tiết phương pháp

- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient

Khởi chạy một GCKMediaQueue mới với kích thước bộ nhớ đệm mặc định và số lượng tìm nạp tối đa mặc định.

- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient
cacheSize: (NSUInteger)  cacheSize 

Khởi chạy một GCKMediaQueue mới với kích thước bộ nhớ đệm đã cho và số lượng tìm nạp tối đa mặc định.

Parameters
cacheSizeThe cache size. Must be nonzero.
- (instancetype) initWithRemoteMediaClient: (GCKRemoteMediaClient *)  remoteMediaClient
cacheSize: (NSUInteger)  cacheSize
maxFetchCount: (NSUInteger)  maxFetchCount 

Khởi động một GCKMediaQueue mới với kích thước bộ nhớ đệm đã cho và số lượt tìm nạp tối đa nhất định.

Parameters
cacheSizeThe cache size. Must be nonzero.
maxFetchCountThe maxiumum fetch count with minimum being 1.
- (void) addDelegate: (id< GCKMediaQueueDelegate >)  delegate

Thêm một thực thể đại diện vào danh sách người được uỷ quyền của đối tượng này.

Parameters
delegateThe delegate to add. The delegate will be retained until removeDelegate: is called.
- (void) removeDelegate: (id< GCKMediaQueueDelegate >)  delegate

Xoá một người được uỷ quyền khỏi danh sách người được uỷ quyền của đối tượng này.

Parameters
delegateThe delegate to remove.
- (nullable GCKMediaQueueItem *) itemAtIndex: (NSUInteger)  index

Trả về mục hàng đợi nội dung đa phương tiện tại chỉ mục đã cho trong hàng đợi hoặc sắp xếp để tìm nạp mục này từ trình nhận nếu mục này hiện chưa có trong bộ nhớ đệm.

Parameters
indexThe index of the item to fetch.
Trả bóng
Mục tại chỉ mục đã cho hoặc nil nếu mục hiện không có trong bộ nhớ đệm nhưng sẽ được tìm nạp không đồng bộ.
- (nullable GCKMediaQueueItem *) itemAtIndex: (NSUInteger)  index
fetchIfNeeded: (BOOL)  fetch 

Trả về mục hàng đợi nội dung đa phương tiện tại chỉ mục đã cho trong hàng đợi hoặc tuỳ ý sắp xếp để tìm nạp mục từ trình nhận nếu mục này hiện chưa có trong bộ nhớ đệm.

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.
Trả bóng
Mục tại chỉ mục đã cho hoặc nil nếu mục hiện không có trong bộ nhớ đệm.
- (GCKMediaQueueItemID) itemIDAtIndex: (NSUInteger)  index

Trả về mã mục của mục tại chỉ mục đã cho trong hàng đợi.

Trả bóng
Mã mặt hàng tại chỉ mục đã cho hoặc kGCKMediaQueueInvalidItemID nếu chỉ mục không hợp lệ.
- (NSInteger) indexOfItemWithID: (GCKMediaQueueItemID itemID

Tìm chỉ mục của một mục trong hàng đợi.

Parameters
itemIDThe queue item ID.
Trả bóng
Chỉ mục (tức là vị trí chính) của mục trong hàng đợi hoặc NSNotFound (không tìm thấy) nếu không có mục nào như vậy trong hàng đợi.
- (void) reload

Tải lại hàng đợi.

Bộ nhớ đệm sẽ được kích hoạt và danh sách mã mục sẽ được tìm nạp lại từ trình nhận.

- (void) clear

Xoá hàng đợi, xoá tất cả các phần tử và xoá bộ nhớ đệm.

Chi tiết về cơ sở lưu trú

- (NSUInteger) itemCount
readnonatomicassign

Số mục hiện có trong hàng đợi.

- (NSUInteger) cacheSize
readnonatomicassign

Dung lượng bộ nhớ đệm.

- (NSUInteger) cachedItemCount
readnonatomicassign

Số mục trong hàng đợi hiện có trong bộ nhớ đệm.