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