บุ๊กมาร์ก

คู่มือนี้จะแสดงวิธีใช้การบุ๊กมาร์กโดยใช้ IMA DAI SDK เมื่อใช้การแทรกโฆษณาแบบไดนามิก (DAI) สำหรับสตรีมวิดีโอตามคำขอ (VOD) โดยสมมติว่ามีการใช้งาน IMA DAI ที่ใช้งานได้ตามที่แสดงใน เริ่มต้นใช้งาน

การบุ๊กมาร์กคืออะไร

การสร้างบุ๊กมาร์กเป็นความสามารถในการบันทึกจุดที่เฉพาะเจาะจงในสตรีมเนื้อหา สมมติว่าผู้ใช้คนหนึ่งดูเนื้อหานาน 5 นาที ออกจากสตรีมวิดีโอ แล้วกลับมา การสร้างบุ๊กมาร์กจะบันทึกตำแหน่งของผู้ใช้ในสตรีม ดังนั้นสตรีมจะกลับมาที่จุดที่ดูค้างไว้ ทำให้ผู้ชมได้รับประสบการณ์ที่ราบรื่น

การบุ๊กมาร์ก DAI ขั้นสูง

เมื่อบุ๊กมาร์กสตรีม DAI คุณต้องบันทึกรหัสสตรีมและเวลาเมื่อผู้ใช้ออกจากวิดีโอ เมื่อผู้ใช้กลับมา ให้ขอสตรีมอีกครั้งและมองหาเวลาที่บันทึกไว้ เนื่องจากแต่ละอินสแตนซ์ของสตรีมที่ขออาจมีช่วงพักโฆษณาตามระยะเวลาที่ต่างกัน การบันทึกเวลาของสตรีมจึงไม่ทำงาน สิ่งที่คุณจะทำจริงๆ คือทำต่อจากเวลาแสดงเนื้อหาเดิม

วิธีการ Conversion ที่ช่วยได้

IMA DAI SDK มีวิธีขอเวลาของเนื้อหาสำหรับเวลาสตรีมที่ระบุ และเวลาสตรีมสำหรับเวลาของเนื้อหาที่ระบุ เมื่อใช้วิธี Conversion เหล่านี้ คุณจะจัดเก็บเวลาของเนื้อหาที่บุ๊กมาร์กไว้ จากนั้นค้นหาเวลาในสตรีมที่สอดคล้องกันในอินสแตนซ์ใหม่ของสตรีมได้ นี่คือวิธีการ ซึ่งรวมถึงลิงก์ไปยังแอปตัวอย่างที่แสดงการใช้บุ๊กมาร์กที่ทำงานอยู่

การบันทึกบุ๊กมาร์ก

บันทึกบุ๊กมาร์กเมื่อกิจกรรมหยุดชั่วคราว

- (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;
    }
  }
}

แอปตัวอย่าง

แอปตัวอย่าง