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 pemutar konten dijeda.
onPause() {
var bookmarkTime = Math.floor(
streamManager.contentTimeForStreamTime(videoElement.currentTime));
}
Memuat bookmark
Muat bookmark saat meminta ulang streaming.
function loadUrl(url) {
hls.on(Hls.Events.MANIFEST_PARSED, () => {
var startTime = 0;
if (bookmarkTime) {
var startTime = streamManager.streamTimeForContentTime(bookmarkTime);
// Seeking on load triggers the onSeekEnd event, so treat this seek as
// if it's snapback. Without this, resuming at a bookmark kicks you
// back to the ad before the bookmark.
isSnapback = true;
}
hls.startLoad(startTime);
videoElement.addEventListener('loadedmetadata', () => { videoElement.play(); });
});
hls.loadSource(url);
hls.attachMedia(videoElement);
}
Aplikasi contoh
Mendownload aplikasi Contoh untuk melihat implementasi bookmark.