В application.js создайте основной класс для вашего приложения HbbTV, который взаимодействует с трансляцией HbbTV. Этот класс взаимодействует с broadcastAppManager и broadcastContainer . Пример аналогичного класса см. в разделе «Обработка объекта трансляции аудио/видео» .
Измените базовое приложение HbbTV, чтобы оно запрашивало IMA-поток и реагировало на события рекламных пауз.
Инициализируйте приложение.
Инициализируйте класс приложения в application.js , настройте broadcastAppManager и broadcastContainer , следуя инструкциям в руководстве « Обработка объекта broadcast a/v» . Затем создайте новые объекты 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():
Сейчас вы запрашиваете и отображаете рекламные блоки IMA SDK в своем приложении HbbTV. Чтобы сравнить ваше приложение с готовым примером, см. пример IMA HbbTV на GitHub .