GCKMediaQueue 클래스

GCKMediaQueue 클래스 참조

개요

임의의 길이의 미디어 큐의 데이터 모델 표현입니다.

이 클래스는 미디어 대기열 UI를 구동하기 위한 UITableViewDataSource 구현의 기반으로 사용할 수 있습니다.

GCKMediaQueueGCKSessionManager 이벤트를 수신 대기하고 Cast 세션이 시작되면 자동으로 GCKRemoteMediaClient에 연결됩니다. GCKRemoteMediaClient에서 큐 변경 알림을 수신 대기하고 그에 따라 내부 데이터 모델을 업데이트합니다. 마찬가지로 GCKRemoteMediaClient를 사용하여 요청 시 큐 정보를 가져옵니다.

모델은 전체 큐의 큐 항목 ID 목록을 유지합니다. Cast 세션에 연결될 때마다 자동으로 이 목록을 가져옵니다. 또한 큐 항목 ID로 키가 지정된 GCKMediaQueueItems의 LRU 캐시 (구성 가능한 크기)를 유지합니다.

itemAtIndex: (GCKMediaQueue) 메서드는 지정된 색인에서 큐 항목을 가져오는 데 사용됩니다. GCKMediaQueueItem가 현재 캐시에 없는 경우 수신기에서 항목을 가져오기 위해 비동기식 요청이 이루어지며 요청된 항목이 수신될 때 대리자에게 알림이 전송됩니다.

매우 짧은 시간에 이 메서드에 대한 여러 호출이 이루어지는 경우 요청된 항목 ID가 내부적으로 일괄 처리되어 네트워크 요청 횟수가 줄어듭니다. 한 번에 수신기에서 가져올 수 있는 큐 항목 수에 상한이 있으므로 GCKMediaQueue는 가져올 마지막 N개 항목 ID의 롤링 기간을 유지합니다. 따라서 짧은 시간 내에 매우 많은 수의 항목을 요청하면 실제로 마지막 N개의 항목만 가져옵니다. 이 동작을 통해 앱 UI에서 사용자가 빠르게 또는 자주 스크롤할 수 있는 매우 긴 큐를 효율적으로 관리할 수 있습니다.

GCKMediaQueue는 큐를 직접 수정하는 메서드를 제공하지 않습니다. 이러한 변경사항에는 GCKRemoteMediaClient의 메서드를 통한 수신자에 대한 비동기 네트워크 요청이 포함되고 이 작업은 잠재적으로 오류와 함께 실패할 수 있기 때문입니다. GCKMediaQueue는 수신기에 있는 대로 큐를 일관되게 표시해야 하므로 아직 수신기에 커밋되지 않은 데이터 모델을 로컬에서 변경하면 잘못된 UI 동작이 발생할 수 있습니다.

위임 프로토콜은 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:
 대기열의 지정된 색인에 있는 항목의 항목 ID를 반환합니다. 더보기...
 
(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

대기열의 지정된 색인에 있는 항목의 항목 ID를 반환합니다.

반환 값
지정된 색인의 항목 ID 또는 색인이 유효하지 않은 경우 kGCKMediaQueueInvalidItemID입니다.
- (NSInteger) indexOfItemWithID: (GCKMediaQueueItemID itemID

대기열에서 대기열 항목의 색인을 조회합니다.

Parameters
itemIDThe queue item ID.
반환 값
큐에 있는 항목의 색인 (즉, 기본 위치)이거나 큐에 해당 항목이 없는 경우 NSNotFound입니다.
- (void) reload

큐를 새로고침합니다.

캐시가 삭제되고 상품 ID 목록을 수신기에서 다시 가져옵니다.

- (void) clear

큐를 지우고 모든 요소를 삭제하고 캐시를 플러시합니다.

부동산 세부정보

- (NSUInteger) itemCount
readnonatomicassign

현재 큐에 있는 항목의 수입니다.

- (NSUInteger) cacheSize
readnonatomicassign

캐시 크기입니다.

- (NSUInteger) cachedItemCount
readnonatomicassign

현재 캐시에 있는 큐 항목 수입니다.