application.js で、HbbTV ブロードキャストとやり取りする HbbTV アプリのメインクラスを作成します。このクラスは broadcastAppManager および broadcastContainer とやり取りします。同様のクラスの例については、ブロードキャストの音声/映像オブジェクトの処理をご覧ください。
このベースの HbbTV アプリを変更して、IMA ストリームをリクエストし、広告ブレーク イベントに応答します。
アプリケーションを初期化する
application.js でアプリケーション クラスを初期化し、チュートリアル「ブロードキャスト A/V オブジェクトの処理」に沿って 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 ストリーム イベントをリッスンする
ミッドロール挿入点イベント adBreakAnnounce、adBreakStart、adBreakEnd をリッスンする HbbTVApp.onStreamEvent() メソッドを作成します。
HbbTV ストリーム イベントを処理する
HbbTV ストリーム イベントを処理する手順は次のとおりです。
adBreakAnnounceイベントに応じて広告ポッド マニフェストを読み込むには、HbbTVApp.onAdBreakAnnounce()メソッドを作成します。広告ブレーク中に広告ストリームの再生に切り替えるには、
HbbTVApp.onAdBreakStart()メソッドを作成します。コンテンツ ブロードキャストに戻るには、
HbbTVApp.onAdBreakEnd()メソッドを作成します。
これで、HbbTV アプリで IMA SDK 広告ポッドをリクエストして表示できるようになりました。アプリを完成したサンプルアプリと比較するには、GitHub の IMA HbbTV サンプルをご覧ください。