ב-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.