application.js에서 HbbTV 방송과 상호작용하는 HbbTV 앱의 기본 클래스를 만듭니다. 이 클래스는 broadcastAppManager 및 broadcastContainer와 상호작용합니다. 유사한 클래스의 예는 브로드캐스트 a/v 객체 처리를 참고하세요.
이 기본 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 샘플을 참고하세요.