Questa guida mostra 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). Ciò presuppone un'implementazione di IMA DAI funzionante, come quella presentata in Guida introduttiva.
Che cos'è l'aggiunta ai preferiti?
Il bookmarking consente di salvare e ritornare successivamente a un punto specifico dello streaming di contenuti. Supponiamo che un utente guardi cinque minuti di contenuti, lasci lo stream video e poi lo riprenda. Bookmarking salva la posizione dell'utente nello stream e riprende la riproduzione dal punto di interruzione, per garantire allo spettatore un'esperienza perfettamente integrata.
Funzionalità di segnalibro DAI
Quando aggiungi un flusso DAI ai preferiti, devi registrare l'ID flusso e l'ora in cui l'utente abbandona il video. Quando l'utente torna, richiedi di nuovo lo stream e cerca il momento salvato. Poiché ogni istanza dello stream richiesto può avere interruzioni pubblicitarie di durata diversa, il semplice salvataggio dell'ora dello stream non funzionerà. Quello che vuoi fare è continuare dallo stesso timestamp dei contenuti.
Metodi di conversione in soccorso
L'SDK IMA DAI fornisce una coppia di metodi per richiedere l'ora dei contenuti per una determinata ora dello stream e l'ora dello stream per una determinata ora dei contenuti. Utilizzando questi metodi di conversione, puoi memorizzare il tempo dei contenuti aggiunto ai preferiti e poi cercare il tempo dello stream corrispondente nella nuova istanza dello stream. Ecco l'approccio, incluso un link a un'app di esempio che mostra un'implementazione di aggiunta ai preferiti funzionante.
Salvataggio dei preferiti
Salva un segnalibro quando l'attività è in pausa.
- (void)viewWillAppear:(BOOL)animated {
...
self.bookmarkTime =
[self.streamManager contentTimeForStreamTime:CMTimeGetSeconds(
self.playerViewController.player.currentTime)];
}
Caricamento dei preferiti in corso…
Caricare il segnalibro quando viene richiesta nuovamente una riproduzione. Fa parte dell'implementazione
dell'interfaccia 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)];
}
}