इस गाइड में IMA डीएआई SDK टूल का इस्तेमाल करके, वीडियो-ऑन-डिमांड (वीओडी) स्ट्रीम के लिए डाइनैमिक ऐड इंसर्शन (डीएआई) का इस्तेमाल करते समय, बुकमार्किंग को लागू करने का तरीका बताया गया है. इसमें IMA डीएआई को लागू करने का काम किया जाता है. जैसा कि शुरू करें सेक्शन में बताया गया है.
बुकमार्किंग क्या है?
बुकमार्क सेव करने और फिर कॉन्टेंट स्ट्रीम में किसी खास पॉइंट पर वापस लौटने की क्षमता है. मान लीजिए कि कोई उपयोगकर्ता पांच मिनट का कॉन्टेंट देखता है, वीडियो स्ट्रीम छोड़ देता है और फिर उस पर वापस आता है. बुकमार्क करने से, स्ट्रीम में उपयोगकर्ता की पोज़िशन पहले जैसी बनी रहती है. इससे स्ट्रीम वहीं से देखना शुरू कर सकती है जहां से उसे देखना बंद हुआ था. इससे दर्शकों को एक बेहतरीन अनुभव मिलता है.
हुड के तहत डीएआई बुकमार्क करना
डीएआई स्ट्रीम को बुकमार्क करते समय, आपको स्ट्रीम आईडी और उपयोगकर्ता के वीडियो छोड़ने का समय रिकॉर्ड करना होगा. उपयोगकर्ता के वापस आने पर, स्ट्रीम के लिए फिर से अनुरोध करें और सेव किए गए समय पर जाएं. अनुरोध की गई स्ट्रीम के हर इंस्टेंस में अलग-अलग अवधि के विज्ञापन के लिए ब्रेक हो सकते हैं. बस स्ट्रीम का समय बचाने से काम नहीं बनेगा. हालांकि, आपका मकसद यह होता है कि आप एक ही कॉन्टेंट टाइम को जारी रखें.
बचाव के लिए रूपांतरण के तरीके
IMA डीएआई SDK टूल, दिए गए स्ट्रीम टाइम के लिए कॉन्टेंट टाइम और दिए गए कॉन्टेंट टाइम के लिए स्ट्रीम टाइम का अनुरोध करने के कई तरीके देता है. कन्वर्ज़न के इन तरीकों का इस्तेमाल करके, बुकमार्क किए गए कॉन्टेंट का समय स्टोर किया जा सकता है. साथ ही, स्ट्रीम के नए इंस्टेंस में, इससे जुड़े स्ट्रीम के समय पर जाया जा सकता है. यहां एक तरीका बताया गया है, जिसमें एक ऐसे सैंपल ऐप्लिकेशन का लिंक दिया गया है जो बुकमार्किंग का काम कर रहा है.
बुकमार्क सेव किए जा रहे हैं
गतिविधि के रोके जाने पर बुकमार्क सेव करें.
- (void)viewWillAppear:(BOOL)animated {
...
self.bookmarkTime =
[self.streamManager contentTimeForStreamTime:CMTimeGetSeconds(
self.playerViewController.player.currentTime)];
}
बुकमार्क लोड हो रहे हैं
स्ट्रीम के लिए फिर से अनुरोध करते समय बुकमार्क लोड करें. यह VideoStreamPlayer
इंटरफ़ेस
को लागू करने का हिस्सा है.
- (void)streamManagerIsPlaybackReady:(IMAStreamManager *)streamManager {
...
if (self.bookmarkTime != 0) {
NSTimeInterval streamTime = [self.streamManager
streamTimeForContentTime:self.bookmarkTime];
[self.playerViewController.player
seekToTime:CMTimeMakeWithSeconds(streamTime, NSEC_PER_SEC)];
}
}