application.js で、HbbTV ブロードキャストとやり取りする HbbTV アプリのメインクラスを作成します。このクラスは、broadcastAppManager と broadcastContainer
とやり取りします。同様のクラスの例については、
ブロードキャスト A/V オブジェクトの処理をご覧ください。
このベースの HbbTV アプリを変更して、IMA ストリームをリクエストし、ミッドロール挿入点イベントに応答します。
アプリケーションを初期化する
チュートリアル
ブロードキャスト A/V オブジェクトの処理に沿って、application.jsでアプリケーション クラスを初期化し、
broadcastAppManagerと broadcastContainerを設定します。
その後、新しい VideoPlayer オブジェクトと AdManager オブジェクトを開始します。
IMA ストリーム リクエストを行う
HbbTVApp.onPlayStateChangeEvent() メソッドで、アプリが PRESENTING_PLAYSTATE
に切り替わったときにストリーム リクエストを行います。このアプローチでは、AD_BREAK_EVENT_ANNOUNCE イベントに応じて連続配信広告マニフェストを読み込むようにアプリを準備します。
デバイスがブロードキャスト コンテナの PlayStateChange イベントを正しく出力しない場合は、setInterval()
関数を使用して再生状態の変化を確認します。
setInterval(function() {
if (!subscribedToStreamEvents &&
this.broadcastContainer.playState == PRESENTING_PLAYSTATE) {
subscribedToStreamEvents = true;
this.broadcastContainer.addStreamEventListener(
STREAM_EVENT_URL, 'eventItem', function(event) {
this.onStreamEvent(event);
}.bind(this));
debugView.log('Subscribing to stream events');
this.adManager.requestStream(NETWORK_CODE, CUSTOM_ASSET_KEY);
}
…
HbbTV ストリーム イベントをリッスンする
HbbTVApp.onStreamEvent() メソッドを作成して、ミッドロール挿入点イベント adBreakAnnounce、adBreakStart、adBreakEnd をリッスンします。
HbbTV ストリーム イベントを処理する
HbbTV ストリーム イベントを処理する手順は次のとおりです。
adBreakAnnounceイベントに応じて連続配信広告マニフェストを読み込むには、HbbTVApp.onAdBreakAnnounce()メソッドを作成します。ミッドロール挿入点中に広告ストリームの再生に切り替えるには、
HbbTVApp.onAdBreakStart()メソッドを作成します。コンテンツ ブロードキャストに戻るには、
HbbTVApp.onAdBreakEnd()メソッドを作成します。
これで、HbbTV アプリで IMA SDK 広告ポッドをリクエストして表示できるようになりました。アプリを完成したサンプルアプリと比較するには、 GitHub の IMA HbbTV サンプルをご覧ください。