Marque-page

Ce guide explique comment implémenter l'ajout de favoris à l'aide du SDK IMA DAI lorsque vous utilisez l'insertion dynamique d'annonce pour les flux de vidéo à la demande (VOD). Cela suppose que vous disposiez d'une mise en œuvre IMA DAI fonctionnelle, telle que celle présentée dans la section Premiers pas.

Qu'est-ce que l'ajout de favoris ?

Les favoris permettent d'enregistrer un point spécifique du flux de contenu, puis d'y revenir. Supposons qu'un utilisateur regarde cinq minutes de contenu, quitte le flux vidéo, puis y retourne. Cette fonctionnalité enregistre la position de l'utilisateur dans le flux afin que celui-ci puisse reprendre là où il s'était arrêté, offrant ainsi une expérience fluide au spectateur.

Options avancées de l'insertion dynamique de favoris

Lorsque vous ajoutez un flux pour l'insertion dynamique d'annonce aux favoris, vous devez enregistrer l'ID du flux et l'heure à laquelle l'utilisateur quitte la vidéo. Lorsque l'utilisateur revient, demandez à nouveau la diffusion et recherchez l'heure gagnée. Étant donné que chaque instance du flux demandé peut comporter des coupures publicitaires de durées différentes, il ne suffit pas d'enregistrer la durée du flux. Ce que vous devez faire, c'est continuer à partir du même temps de contenu.

Les méthodes de conversion

Le SDK IMA DAI fournit deux méthodes pour demander la durée du contenu pour une durée de flux donnée et la durée du flux pour une heure de diffusion du contenu donnée. Ces méthodes de conversion vous permettent de stocker la durée du contenu ajoutée aux favoris, puis de rechercher l'heure du flux correspondante dans la nouvelle instance du flux. Voici l'approche utilisée, y compris un lien vers une application exemple qui affiche une implémentation opérationnelle de la fonctionnalité de favoris.

Enregistrement des favoris...

Enregistre 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 favori 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)];
  }
}

Application exemple

Application exemple