排程

Cast 架構提供佇列 API,可用於建立影片項目清單 (例如影片或音訊串流) 清單,以便在網路接收器上依序播放。內容項目佇列可以編輯、重新排序、更新等。

只要佇列至少有一個項目目前是運作中 (播放或暫停),Web Receiver SDK 就會保留佇列並回應佇列中的作業。傳送者可以加入工作階段並將項目加入佇列。接收方會為佇列項目保留工作階段,直到最後一個項目完成播放或傳送者停止播放並終止工作階段,或傳送者在接收器上載入新佇列為止。根據預設,接收器不會保留關於終止佇列的任何資訊。佇列中的最後一個項目完成後,媒體工作階段就會結束,佇列也會消失。

建立及載入媒體佇列項目

在 iOS 中,媒體佇列項目在 Cast 架構中會顯示為 GCKMediaQueueItem 執行個體。建立內含自動調整內容的媒體佇列項目時,您可以設定預載時間,讓播放器在媒體佇列項目尚未播放完畢前,開始緩衝處理媒體佇列項目。如要進一步瞭解預先載入功能,請參閱網路接收端預先載入指南

將項目的自動播放屬性設為 true,Web Receiver 就能自動播放。舉例來說,您可以使用建構工具模式建立媒體佇列項目,如下所示:

Swift
let builder = GCKMediaQueueItemBuilder.init()
builder.mediaInformation = mediaInformation
builder.autoplay = true
builder.preloadTime = 8.0
let newItem = builder.build()
Objective-C
GCKMediaQueueItemBuilder *builder = [[GCKMediaQueueItemBuilder alloc] init];
builder.mediaInformation = self.mediaInformation;
builder.autoplay = YES;
builder.preloadTime = 8.0;
GCKMediaQueueItem *newItem = [builder build];

使用 GCKRemoteMediaClient 類別的適當 queueLoadItems 方法,載入佇列中的媒體佇列項目陣列。

接收媒體佇列狀態更新

Web Receiver 載入媒體佇列項目時,會為工作階段持續期間 (以及佇列的生命週期) 保留的項目指派專屬 ID。您可以瞭解佇列狀態,指出目前正在載入 (可能未播放)、載入或預先載入的項目。您也可以取得佇列中所有項目的排序清單。GCKMediaStatus 類別提供以下狀態資訊:

將這些成員與其他媒體狀態成員一起使用,通知應用程式關於佇列的狀態和佇列中的項目。除了來自 Web Receiver 的媒體狀態更新外,您也可以透過實作 GCKRemoteMediaClientListener-[remoteMediaClientDidUpdateQueue:] 來監聽佇列的變更。

編輯佇列

如要使用佇列中的項目,請使用 GCKRemoteMediaClient 的佇列方法。可供選擇的 API這些功能可讓您將項目陣列載入新的佇列、將項目插入現有佇列、更新佇列中項目的屬性、在佇列中向前或向後移動項目、設定佇列本身的屬性 (例如變更選取下一個項目的 repeatMode)、移除佇列中的項目,以及重新排佇列中的項目。