在 application.js
中,建立與 HbbTV 廣播互動的 HbbTV 應用程式主要類別。這個類別會與 broadcastAppManager
和 broadcastContainer
互動。如需類似類別的範例,請參閱「處理廣播 A/V 物件」。
修改這個基本 HbbTV 應用程式,要求 IMA 串流並回應廣告插播事件。
初始化應用程式
在 application.js
中初始化應用程式類別,然後按照「處理廣播音訊/視訊物件」教學課程,設定 broadcastAppManager
和 broadcastContainer
。然後啟動新的 VideoPlayer
和 AdManager
物件。
提出 IMA 串流要求
在 HbbTVApp.onPlayStateChangeEvent()
方法中,針對應用程式切換至 PRESENTING_PLAYSTATE
的情況,發出串流要求。這個方法會準備應用程式,以便在收到 AD_BREAK_EVENT_ANNOUNCE
事件時載入廣告 Pod 資訊清單。
如果裝置無法正確發出廣播容器 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
事件觸發時載入廣告 Pod 資訊清單,請建立HbbTVApp.onAdBreakAnnounce()
方法:如要在廣告插播期間切換至廣告串流播放,請建立
HbbTVApp.onAdBreakStart()
方法:如要返回內容廣播,請建立
HbbTVApp.onAdBreakEnd()
方法:
您現在可以在 HbbTV 應用程式中請求及顯示 IMA SDK 廣告插播。如要比較您的應用程式與已完成的範例應用程式,請參閱 GitHub 上的 IMA HbbTV 範例。