Questa guida spiega come implementare l'aggiunta ai preferiti utilizzando l'SDK IMA DAI quando si utilizza l'inserimento di annunci dinamici (DAI) per gli stream video on demand (VOD). Questo presuppone che l'implementazione IMA DAI funzioni correttamente, come quella presentata in Inizia.
Che cos'è l'aggiunta ai preferiti?
L'aggiunta ai preferiti consente di salvare e tornare a un punto specifico nello stream di contenuti. Supponiamo che un utente guardi cinque minuti di contenuti esce dal video stream e poi vi torna. L'aggiunta di segnalibri salva la posizione dell'utente nello stream, in modo che quest'ultimo possa riprendere da dove interrotto, offrendo allo spettatore un'esperienza fluida.
L'inserimento di annunci dinamici nei segnalibri
Quando aggiungi uno stream DAI ai preferiti, devi registrare l'ID e l'ora dello streaming quando l'utente abbandona il video. Quando l'utente ritorna, richiedi di nuovo per avviare lo streaming e la ricerca fino al tempo risparmiato. Poiché ogni istanza della richiesta lo stream può includere interruzioni pubblicitarie di durata diversa semplicemente salvando lo stream tempo non funzionerà. Quello che vogliamo fare è continuare tempo dei contenuti.
Metodi di conversione in soccorso
L'SDK IMA DAI fornisce un paio di metodi per richiedere l'ora dei contenuti per un determinato tempo di streaming e la durata dello streaming per un determinato contenuti volta. Con questi metodi di conversione puoi memorizzare i preferiti tempo dei contenuti e poi cerca la durata dello streaming corrispondente tra la nuova istanza del flusso. Ecco l'approccio, incluso un link a un'app di esempio che mostra un'implementazione funzionante dei preferiti.
Salvataggio dei preferiti in corso...
Salva un preferito quando l'Attività è in pausa.
- (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;
...
}
}
}
Caricamento preferiti in corso...
Carica il preferito quando richiedi di nuovo uno stream. Fa parte dell'implementazione
l'interfaccia 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;
}
}
}