Panduan ini menunjukkan cara menerapkan bookmark menggunakan IMA DAI SDK saat menggunakan Penyisipan Iklan Dinamis (DAI) untuk streaming video on-demand (VOD). Hal ini mengasumsikan penerapan DAI IMA yang berfungsi, seperti yang dijelaskan dalam Memulai
Apa itu bookmark?
Bookmark adalah kemampuan untuk menyimpan dan kembali ke titik tertentu di aliran konten. Misalkan pengguna menonton konten selama lima menit, keluar dari streaming video, lalu kembali lagi. Bookmark menghemat posisi pengguna dalam {i>stream <i}sehingga{i> <i} dapat mengambil dari posisi itu setelah ditinggalkan, memberikan pengalaman yang lancar kepada pemirsa.
Fitur bookmark DAI di balik layar
Saat mem-bookmark streaming DAI, Anda harus mencatat ID dan waktu streaming saat pengguna meninggalkan video. Saat pengguna kembali, minta ulang {i>streaming <i}dan mencari waktu yang sesuai. Karena setiap instance streaming dapat memiliki jeda iklan dengan durasi yang berbeda, hanya untuk menyimpan streaming waktu ini tidak akan berguna. Anda sebaiknya melanjutkan dari tahap waktu konten.
Metode konversi bisa membantu
IMA DAI SDK menyediakan sepasang metode untuk meminta waktu konten untuk waktu streaming dan waktu streaming tertentu untuk konten tertentu waktu. Dengan menggunakan metode konversi ini Anda dapat menyimpan bookmark waktu konten, lalu mencari waktu streaming yang sesuai di instance baru dari aliran. Berikut adalah pendekatannya, termasuk tautan ke aplikasi contoh yang menunjukkan implementasi bookmark yang berfungsi.
Menyimpan bookmark
Menyimpan bookmark saat Aktivitas dijeda.
- (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;
...
}
}
}
Memuat bookmark
Muat bookmark saat meminta ulang streaming. Ini adalah bagian dari
antarmuka 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;
}
}
}