在 application.js
中,为与 HbbTV 广播互动的 HbbTV 应用创建主类。此类与 broadcastAppManager
和 broadcastContainer
进行交互。如需查看类似类的示例,请参阅处理广播音频/视频对象。
修改此基本 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 示例。