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...

Enregistrez un favori lorsque Activity est mis en pause.

private double bookmarkTime;
@Override
public void onPause() {
   super.onPause();
   double streamTime = videoPlayer.getCurrentPosition() / 1000.0; // ms to s.
   bookmarkTime = streamManager.getContentTimeForStreamTime(streamTime);
}

Chargement des favoris...

Chargez le favori lorsque vous demandez à nouveau un flux. Cela fait partie de l'implémentation de l'interface VideoStreamPlayer.

public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
    // Set video player's stream URL and subtitles, and play the stream.
    ...

    // Bookmarking.
    if (bookmarkTime > 0) {
        double streamTime =
                streamManager.getStreamTimeForContentTime(bookmarkTime);
        videoPlayer.seek((long) (streamTime * 1000.0)); // s to ms.
    }
}

Application exemple

Téléchargez l'application exemple pour voir une implémentation de l'ajout de favoris.