विज्ञापन स्ट्रीम के बुकमार्क सेव और लोड करना

प्लैटफ़ॉर्म चुनें: HTML5 Android iOS tvOS Roku

इस गाइड में, वीडियो ऑन डिमांड (वीओडी) स्ट्रीम के लिए डाइनैमिक ऐड इंसर्शन (डीएआई) का इस्तेमाल करते समय, IMA DAI SDK का इस्तेमाल करके बुकमार्क करने की सुविधा लागू करने का तरीका बताया गया है. यह मान लिया जाता है कि IMA DAI को सही तरीके से लागू किया गया है. जैसे, शुरू करें में दिखाया गया है.

बुकमार्क करने की सुविधा क्या है?

बुकमार्क करने की सुविधा की मदद से, कॉन्टेंट स्ट्रीम में किसी खास पॉइंट को सेव किया जा सकता है. इसके बाद, उस पॉइंट पर वापस जाया जा सकता है. मान लीजिए, कोई उपयोगकर्ता पांच मिनट तक कॉन्टेंट देखता है, वीडियो स्ट्रीम बंद कर देता है, और फिर उसे दोबारा शुरू करता है. बुकमार्क करने से, स्ट्रीम में उपयोगकर्ता की पोज़िशन सेव हो जाती है. इससे स्ट्रीम को वहीं से शुरू किया जा सकता है जहां उसे छोड़ा गया था. इससे दर्शक को बिना रुकावट वीडियो देखने का अनुभव मिलता है.

DAI की बुकमार्किंग की सुविधा के बारे में जानकारी

डीएआई स्ट्रीम को बुकमार्क करते समय, आपको स्ट्रीम आईडी और उस समय को रिकॉर्ड करना होगा, जब उपयोगकर्ता वीडियो देखना बंद करता है. जब उपयोगकर्ता वापस आता है, तो स्ट्रीम का फिर से अनुरोध करें और सेव किए गए समय पर जाएं. अनुरोध की गई स्ट्रीम के हर इंस्टेंस में, अलग-अलग अवधि के विज्ञापन ब्रेक हो सकते हैं. इसलिए, स्ट्रीम का समय सेव करने से काम नहीं चलेगा. आपको उसी कॉन्टेंट टाइम से वीडियो देखना जारी रखना है.

कन्वर्ज़न के तरीकों से मदद पाना

IMA DAI SDK टूल, स्ट्रीम के समय के हिसाब से कॉन्टेंट के समय और कॉन्टेंट के समय के हिसाब से स्ट्रीम के समय का अनुरोध करने के लिए, दो तरीके उपलब्ध कराता है. इन कन्वर्ज़न तरीकों का इस्तेमाल करके, बुकमार्क किए गए कॉन्टेंट का समय सेव किया जा सकता है. इसके बाद, स्ट्रीम के नए इंस्टेंस में, उससे जुड़े स्ट्रीम का समय ढूंढा जा सकता है. यहां तरीका बताया गया है. साथ ही, एक ऐसे सैंपल ऐप्लिकेशन का लिंक दिया गया है जिसमें बुकमार्क करने की सुविधा काम करती है.

बुकमार्क सेव किए जा रहे हैं

गतिविधि रोके जाने पर, बुकमार्क सेव करें.

- (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;
    ...
    }
  }

बुकमार्क लोड किए जा रहे हैं

स्ट्रीम का फिर से अनुरोध करते समय, बुकमार्क लोड करें. यह 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;
    }
  }
}

सैंपल ऐप्लिकेशन

सैंपल ऐप्लिकेशन