キャスト フレームワークには、ウェブ レシーバーで順次再生するコンテンツ アイテム(動画や音声ストリームなど)のリストの作成をサポートするキューイング API が用意されています。コンテンツ アイテムのキューは、編集、並べ替え、更新などを行うことができます。
Web Receiver SDK は、キューの少なくとも 1 つのアイテムがアクティブ(再生中または一時停止)である限り、キューを維持し、キューのオペレーションに応答します。送信者はセッションに参加して、キューにアイテムを追加できます。レシーバは、最後のアイテムの再生を完了するか、センダーが再生を停止してセッションを終了するか、センダーがレシーバに新しいキューを読み込むまで、キューアイテムのセッションを保持します。デフォルトでは、レシーバは終了したキューに関する情報を保持しません。キュー内の最後のアイテムが終了すると、メディア セッションが終了し、キューが消えます。
メディアキュー アイテムを作成して読み込む
iOS では、メディアキュー アイテムはキャスト フレームワーク内で GCKMediaQueueItem
インスタンスとして表されます。アダプティブ コンテンツを含むメディアキュー アイテムを作成するときに、キュー内の先行するアイテムの再生が完了する前にプレーヤーがメディアキュー アイテムのバッファリングを開始できるように、プリロード時間を設定できます。プリロードについて詳しくは、Web Receiver プリロード ガイドをご覧ください。
アイテムの autoplay 属性を true に設定すると、Web Receiver による自動再生が可能になります。たとえば、次のようにビルダー パターンを使用してメディアキュー アイテムを作成できます。
let builder = GCKMediaQueueItemBuilder.init() builder.mediaInformation = mediaInformation builder.autoplay = true builder.preloadTime = 8.0 let newItem = builder.build()
GCKMediaQueueItemBuilder *builder = [[GCKMediaQueueItemBuilder alloc] init]; builder.mediaInformation = self.mediaInformation; builder.autoplay = YES; builder.preloadTime = 8.0; GCKMediaQueueItem *newItem = [builder build];
GCKRemoteMediaClient
クラスの適切な queueLoadItems
メソッドを使用して、キュー内のメディアキュー アイテムの配列を読み込みます。
メディアキューのステータス更新を受信
ウェブレシーバーがメディアキュー アイテムを読み込むと、セッション中(およびキューの存続期間)にわたって保持されるアイテムに一意の ID が割り当てられます。現在読み込まれている(再生されていない可能性がある)、読み込み中、またはプリロードされているアイテムを示すキューのステータスを確認できます。キュー内のすべてのアイテムの順序付きリストを取得することもできます。GCKMediaStatus
クラスは、次のステータス情報を提供します。
preloadedItemID
プロパティ - 現在プリロードされているアイテムの ID(ある場合)。loadingItemID
プロパティ - 現在読み込み中のアイテムの ID。currentItemID
プロパティ - 現在のキューアイテムの ID(存在する場合)。queueItemCount
メソッド - 再生キュー内のアイテム数を返します。queueItemAtIndex
メソッド - 再生キュー内の指定されたインデックスのアイテムを返します。
これらのメンバーを他のメディア ステータス メンバーと一緒に使用して、キューのステータスとキュー内のアイテムについてアプリに通知します。Web Receiver によるメディア ステータスの更新に加えて、GCKRemoteMediaClientListener
の -[remoteMediaClientDidUpdateQueue:]
を実装してキューの変更をリッスンできます。
キューを編集する
キュー内のアイテムを操作するには、GCKRemoteMediaClient
のキュー メソッドを使用します。API が複数あります。これらを使用すると、アイテムの配列の新しいキューへの読み込み、既存のキューへのアイテムの挿入、キュー内のアイテムのプロパティの更新、キュー内でのアイテムの前方または後方へのジャンプ、キュー自体のプロパティの設定(次のアイテムを選択する repeatMode
の変更など)、キューからのアイテムの削除、キュー内のアイテムの並べ替えを行うことができます。