ב-application.js, יוצרים את המחלקה הראשית של אפליקציית HbbTV שמתקשרת עם שידור HbbTV. הכיתה הזו מקיימת אינטראקציה עם broadcastAppManager ועם broadcastContainer. דוגמה למחלקה דומה מופיעה במאמר טיפול באובייקט של שידור אודיו/וידאו.
משנים את אפליקציית HbbTV הבסיסית הזו כדי לבקש שידור IMA ולהגיב לאירועים של הפסקות פרסום.
אתחול האפליקציה
מאתחלים את מחלקת האפליקציה ב-application.js, מגדירים את broadcastAppManager ואת broadcastContainer בהתאם למדריך טיפול באובייקט השידור של אודיו ווידאו.
לאחר מכן, יוצרים אובייקטים חדשים של VideoPlayer ושל AdManager.
שליחת בקשת סטרימינג של IMA
ב-method HbbTVApp.onPlayStateChangeEvent(), שולחים בקשת סטרימינג בתגובה למעבר האפליקציה אל PRESENTING_PLAYSTATE. הגישה הזו מכינה את האפליקציה לטעינת המניפסט של חבילת המודעות בתגובה לאירוע AD_BREAK_EVENT_ANNOUNCE.
אם המכשיר לא משדר בצורה תקינה את מאגר השידור PlayStateChange
event, אפשר להשתמש בפונקציה 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 ומציגה אותם. כדי להשוות את האפליקציה שלכם לאפליקציה לדוגמה שההגדרה שלה הושלמה, אפשר לעיין בדוגמה של IMA HbbTV ב-GitHub.