Zakładki

Ten przewodnik pokazuje, jak wdrożyć zakładki przy użyciu pakietu IMA DAI SDK podczas korzystania z dynamicznego wstawiania reklam (DAI) w strumieniach wideo na żądanie (VOD). Zakładamy przy tym działającą implementację IMA DAI, taką jak ta przedstawiona Wypróbuj

Co to jest tworzenie zakładek?

Tworzenie zakładek to możliwość zapisania i powrót do określonego momentu. w strumieniu treści. Załóżmy, że użytkownik ogląda 5 minut materiału, opuszcza strumień wideo, a następnie wraca do niego. Dodanie zakładek pozwala zaoszczędzić pozycji użytkownika w strumieniu, tak aby strumień mógł rozpocząć się został przerwany, zapewniając widzom płynne wrażenia.

Zaawansowane funkcje DAI

Podczas tworzenia zakładki strumienia z dynamicznym wstawianiem reklam musisz zapisać identyfikator i godzinę transmisji gdy użytkownik opuści film. Gdy użytkownik wróci, poproś o ponowne przesłanie strumieniować i przewijać do zaoszczędzonego czasu. Ponieważ każde wystąpienie żądanego w transmisji możesz ustawić przerwy na reklamę o różnej długości. Wystarczy, że zapiszesz transmisję. czas nie zadziała. To, co naprawdę chcesz zrobić, to kontynuować od czas treści.

Metody konwersji – na ratunek

Pakiet IMA DAI SDK udostępnia parę metod żądania czasu wyświetlania treści w danym czasie strumienia i w czasie strumieniowania danego treści . Za pomocą tych metod konwersji można przechowywać content time, a następnie przewiń do odpowiedniego czasu strumienia w nową instancję strumienia. Oto podejście, w tym link do przykładowej aplikacji, która pokazuje działającą implementację zakładek.

Zapisywanie zakładek

Zapisz zakładkę, gdy aktywność jest wstrzymana.

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

Wczytuję zakładki

Wczytaj zakładkę przy ponownym żądaniu strumienia. To część procesu wdrażania interfejsu 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;
    }
  }
}

Przykładowa aplikacja

Przykładowa aplikacja