キャスト フレームワークは、ウェブ レシーバで順次再生できるように、動画ストリームやオーディオ ストリームなどのコンテンツ アイテムのリスト作成をサポートするキューイング API を提供します。コンテンツ アイテムのキューは、編集、並べ替え、更新などが可能です。
Web Receiver SDK はキューを維持し、キューに現在アクティブなアイテム(再生中または一時停止中)が 1 つ以上ある場合はキューのオペレーションに応答します。送信者はセッションに参加して、アイテムをキューに追加できます。レシーバーは、最後のアイテムの再生が完了するまで、または送信者が再生を停止してセッションを終了するまで、または送信者がレシーバーに新しいキューを読み込むまで、キューアイテムのセッションを維持します。デフォルトでは、レシーバは終了キューに関する情報を保持しません。キューの最後のアイテムが終了すると、メディア セッションが終了し、キューは消えます。
メディアキュー アイテムを作成して読み込む
iOS では、メディア キュー アイテムはキャスト フレームワークで GCKMediaQueueItem
インスタンスとして表されます。アダプティブ コンテンツを使用してメディアキュー アイテムを作成する場合、キュー内の先行するアイテムの再生が完了する前に、プレーヤーがメディア キュー アイテムのバッファリングを開始できるようにプリロード時間を設定できます。プリロードの詳細については、Web Receiver プリロード ガイドをご覧ください。
アイテムの自動再生属性を true に設定すると、ウェブレシーバーが自動再生できるようになります。たとえば、メディア キュー アイテムを作成するには、次のようにビルダー パターンを使用できます。
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
メソッド - 再生キュー内の指定インデックスにあるアイテムを返します。
これらのメンバーを他のメディア ステータス メンバーと一緒に使用して、キューのステータスとキュー内のアイテムに関する情報をアプリに通知します。ウェブレシーバからのメディア ステータスの更新に加え、GCKRemoteMediaClientListener
の -[remoteMediaClientDidUpdateQueue:]
を実装してキューへの変更をリッスンできます。
キューを編集する
キュー内のアイテムを操作するには、GCKRemoteMediaClient
のキューメソッドを使用します。API が複数あります。これにより、アイテムの配列を新しいキューに読み込む、既存のキューにアイテムを挿入する、キュー内のアイテムのプロパティを更新する、キュー内でアイテム間を移動する、キュー自体のプロパティを設定する(たとえば、次のアイテムを選択する repeatMode
を変更する)、キューからアイテムを削除する、キュー内のアイテムを並べ替えることができます。