Ce guide explique comment implémenter l'ajout de signets à l'aide du SDK IMA DAI lorsque vous utilisez l'insertion dynamique d'annonces (DAI) pour les flux de vidéo à la demande (VOD). Cela suppose une implémentation IMA DAI fonctionnelle, telle que celle présentée dans Premiers pas.
Qu'est-ce que l'ajout de favoris ?
Cette fonctionnalité permet d'enregistrer un point précis du flux de contenu, puis d'y revenir. Supposons qu'un utilisateur regarde cinq minutes de contenu, quitte le flux vidéo, puis y revienne. La fonctionnalité de favoris enregistre la position de l'utilisateur dans le flux de sorte que celui-ci puisse reprendre la lecture là où l'utilisateur s'était arrêté. Cela garantit une expérience homogène à l'utilisateur.
Fonctionnement de l'ajout de signets pour l'insertion dynamique d'annonces
Lorsque vous ajoutez un flux DAI à vos favoris, vous devez enregistrer l'ID et l'heure du flux lorsque l'utilisateur quitte la vidéo. Lorsque l'utilisateur revient, demandez à nouveau le flux et recherchez l'heure enregistrée. Étant donné que chaque instance du flux demandé peut comporter des pauses publicitaires de durées différentes, il ne suffit pas d'enregistrer l'heure du flux. Ce que vous voulez vraiment faire, c'est continuer à partir du même temps de contenu.
Les méthodes de conversion à la rescousse
Le SDK IMA DAI fournit une paire de méthodes permettant de demander le temps de contenu pour un temps de flux donné et le temps de flux pour un temps de contenu donné. Ces méthodes de conversion vous permettent de stocker le temps de contenu mis en signet, puis de rechercher le temps de flux correspondant dans la nouvelle instance du flux. Voici l'approche, y compris un lien vers un exemple d'application qui montre une implémentation de mise en signet fonctionnelle.
Enregistrer des favoris
Enregistrez un favori lorsque l'activité est suspendue.
- (void)viewWillAppear:(BOOL)animated {
...
self.bookmarkTime =
[self.streamManager contentTimeForStreamTime:CMTimeGetSeconds(
self.playerViewController.player.currentTime)];
}
Chargement des favoris
Chargez le signet lorsque vous demandez à nouveau un flux. Cela fait partie de l'implémentation de l'interface 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)];
}
}