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 サンプルをご覧ください。