סימניות

במדריך הזה מוסבר איך להטמיע סימניות באמצעות IMA DAI SDK כשמשתמשים בתכונה 'הטמעת מודעות דינמיות (DAI)' בשידורי וידאו על פי דרישה (VOD). ההנחה היא שהטמעת IMA DAI פעילה, כמו זו שהוצגה שנתחיל?

מהי הוספה לסימניות?

הוספה לסימניות היא היכולת לשמור ואז לחזור לנקודה ספציפית בזרם התוכן. נניח שמשתמש צופה בתוכן של חמש דקות. יוצא משידור הווידאו ולאחר מכן חוזר אליו. הוספה לסימניות שומרת את המיקום של המשתמש בשידור, כך שהשידור יכול להמשיך מהמקום שבו הוא להמשיך, וכך לספק לצופה חוויה חלקה.

הוספת סימנייה של DAI

כשמוסיפים זרם DAI לסימניות, צריך לתעד את מזהה השידור ואת השעה כשהמשתמש עוזב את הסרטון. כשהמשתמש חוזר, מבקשים ממנו שוב ותרוץ בזמן שנשמר. מאחר שכל מופע של יכולים להיות הפסקות למודעות במשכי זמן שונים, פשוט שמירת השידור הזמן לא יעבוד. מה שאתם באמת רוצים לעשות הוא להמשיך מאותה נקודה משך התוכן.

שיטות המרה להצלה

ב-IMA DAI SDK יש שתי שיטות לבקש את מועד הצגת התוכן עבור זמן זרם וזמן זרם נתון של תוכן שעה. בעזרת שיטות ההמרה האלה, אפשר לשמור את הדפים content time ולאחר מכן עוברים למועד הסטרימינג המתאים המופע החדש של השידור. זו הגישה, כולל קישור לאפליקציה לדוגמה שמראה הטמעה תקינה של סימניות.

מתבצעת שמירה של סימניות

לשמור סימנייה כשהפעילות מושהית.

- (void)viewWillDisappear:(BOOL)animated {
  [super viewWillDisappear:animated];
  [self.contentPlayer pause];
  // Ignore this if you're presenting a modal view (e.g. in-app clickthrough).
  if ([self.navigationController.viewControllers indexOfObject:self] ==
      NSNotFound) {
    NSTimeInterval contentTime =
        [self.streamManager contentTimeForStreamTime:CMTimeGetSeconds(
            self.contentPlayer.currentTime)];
    self.video.savedTime = contentTime;
    ...
    }
  }
}

הסימניות בטעינה

טוענים את הסימנייה כשמבקשים סטרימינג מחדש. זה חלק מההטמעה הממשק VideoStreamPlayer.

- (void)streamManager:(IMAStreamManager *)streamManager didReceiveAdEvent:(IMAAdEvent *)event {
  ...
  case kIMAAdEvent_STREAM_LOADED: {
    if (self.video.savedTime > 0) {
      NSTimeInterval streamTime =
          [self.streamManager streamTimeForContentTime:self.video.savedTime];
      [self.IMAVideoDisplay.playerItem
          seekToTime:CMTimeMakeWithSeconds(streamTime, NSEC_PER_SEC)];
      self.video.savedTime = 0;
    }
  }
}

אפליקציה לדוגמה

אפליקציה לדוגמה