इस गाइड में, वीडियो ऑन डिमांड (वीओडी) स्ट्रीम के लिए डाइनैमिक ऐड इंसर्शन (डीएआई) का इस्तेमाल करते समय, IMA DAI SDK का इस्तेमाल करके बुकमार्किंग की सुविधा लागू करने का तरीका बताया गया है. इसके लिए, IMA DAI को लागू किया जाना ज़रूरी है. जैसे, शुरू करें में दिखाया गया है.
बुकमार्क करने की सुविधा क्या है?
बुकमार्क करने की सुविधा की मदद से, कॉन्टेंट स्ट्रीम में किसी खास जगह को सेव किया जा सकता है. इसके बाद, उस जगह पर वापस जाया जा सकता है. मान लें कि कोई उपयोगकर्ता पांच मिनट तक कॉन्टेंट देखता है, वीडियो स्ट्रीम बंद कर देता है, और फिर उसे वापस चालू करता है. बुकमार्क करने से, स्ट्रीम में उपयोगकर्ता की पोज़िशन सेव हो जाती है. इससे स्ट्रीम को वहीं से शुरू किया जा सकता है जहां उसे छोड़ा गया था. इससे दर्शक को बिना रुकावट वीडियो देखने का अनुभव मिलता है.
DAI बुकमार्किंग की बारीकियों के बारे में जानकारी
डीएआई स्ट्रीम को बुकमार्क करते समय, आपको स्ट्रीम आईडी और उस समय को रिकॉर्ड करना होगा, जब उपयोगकर्ता वीडियो देखना बंद करता है. जब उपयोगकर्ता वापस आता है, तो स्ट्रीम का फिर से अनुरोध करें और सेव किए गए समय पर जाएं. अनुरोध की गई स्ट्रीम के हर इंस्टेंस में, अलग-अलग अवधि के विज्ञापन ब्रेक हो सकते हैं. इसलिए, स्ट्रीम का समय सेव करने से काम नहीं चलेगा. आपको उसी कॉन्टेंट टाइम से वीडियो देखना जारी रखना है.
कन्वर्ज़न के तरीकों से मदद पाना
IMA डीएआई एसडीके, दो तरीके उपलब्ध कराता है. इनकी मदद से, किसी स्ट्रीम टाइम के लिए कॉन्टेंट टाइम और किसी कॉन्टेंट टाइम के लिए स्ट्रीम टाइम का अनुरोध किया जा सकता है. इन कन्वर्ज़न तरीकों का इस्तेमाल करके, बुकमार्क किए गए कॉन्टेंट का समय सेव किया जा सकता है. इसके बाद, स्ट्रीम के नए इंस्टेंस में, उससे जुड़े स्ट्रीम का समय ढूंढा जा सकता है. यहां तरीका बताया गया है. साथ ही, एक ऐसे सैंपल ऐप्लिकेशन का लिंक दिया गया है जिसमें बुकमार्क करने की सुविधा काम करती है.
विज्ञापन स्ट्रीम के बुकमार्क सेव और लोड करना
कॉन्टेंट प्लेयर के रुकने पर, बुकमार्क सेव करें.
onPause() {
var bookmarkTime = Math.floor(
streamManager.contentTimeForStreamTime(videoElement.currentTime));
}
बुकमार्क लोड किए जा रहे हैं
स्ट्रीम का फिर से अनुरोध करते समय, बुकमार्क लोड करें.
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);
}
सैंपल ऐप्लिकेशन
बुकमार्क करने की सुविधा लागू करने का तरीका जानने के लिए, सैंपल ऐप्लिकेशन डाउनलोड करें.