คู่มือนี้จะแสดงวิธีใช้การบุ๊กมาร์กโดยใช้ IMA DAI SDK เมื่อใช้การแทรกโฆษณาแบบไดนามิก (DAI) สำหรับสตรีมวิดีโอออนดีมานด์ (VOD) ซึ่งจะถือว่ามีการติดตั้งใช้งาน IMA DAI ที่ทำงานอยู่ เช่น การติดตั้งใช้งานที่แสดงใน เริ่มต้นใช้งาน
การบุ๊กมาร์กคืออะไร
การสร้างบุ๊กมาร์กคือความสามารถในการบันทึกแล้วกลับไปยังจุดที่ต้องการ ในสตรีมเนื้อหา สมมติว่าผู้ใช้ดูเนื้อหา 5 นาที ออกจากสตรีมวิดีโอ แล้วกลับมาที่วิดีโอนี้ การสร้างบุ๊กมาร์กจะบันทึก ตำแหน่งของผู้ใช้ในสตรีม ทำให้สตรีมสามารถเล่นต่อได้ ที่หยุดไว้และมอบประสบการณ์ที่ราบรื่นให้แก่ผู้ชม
บุ๊กมาร์ก DAI ขั้นสูง
เมื่อบุ๊กมาร์กสตรีม DAI คุณต้องบันทึกรหัสและเวลาของสตรีม เมื่อผู้ใช้ออกจากวิดีโอ เมื่อผู้ใช้กลับมา ให้ส่งคำขอ สตรีมและกรอไปยังเวลาที่บันทึก เนื่องจากแต่ละอินสแตนซ์ของ สตรีมสามารถมีช่วงพักโฆษณาในระยะเวลาต่างกัน เพียงแค่บันทึกสตรีม เวลาไม่ได้ผล สิ่งที่คุณต้องการทำจริงๆ ก็คือ ดำเนินการต่อจากเดิม Content time
วิธีการ Conversion ที่จะช่วยคุณได้
IMA DAI SDK มีวิธีขอเวลาของเนื้อหา 2 วิธี สำหรับเวลาสตรีมและเวลาสตรีมสำหรับเนื้อหาที่กำหนด เวลา เมื่อใช้วิธี 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;
}
}
}