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