Ce guide explique comment intégrer les favoris à l'aide du SDK IMA DAI lorsque vous utilisez l'insertion dynamique d'annonces pour les flux de vidéo à la demande. Cela suppose que l'implémentation d'IMA DAI fonctionne correctement, comme celle présentée dans l'article Premiers pas
Qu'est-ce que l'ajout de favoris ?
Les favoris permettent d'enregistrer un point spécifique, puis de revenir à ce dernier. dans le flux de contenu. Supposons qu'un utilisateur regarde cinq minutes de contenu quitte le flux vidéo, puis y retourne. L'ajout aux favoris la position de l'utilisateur dans le flux pour que celui-ci puisse reprendre pour offrir une expérience fluide à l'utilisateur.
Options avancées de l'ajout de favoris pour l'insertion dynamique d'annonces
Lorsque vous ajoutez un flux pour l'insertion dynamique d'annonce aux favoris, vous devez enregistrer l'ID et l'heure du flux. lorsque l'utilisateur quitte la vidéo. Lorsque l'utilisateur revient, demandez à nouveau et rechercher le temps gagné. Puisque chaque instance de la requête peut comporter des coupures publicitaires de différentes durées. Il suffit d'enregistrer la diffusion. l'heure ne fonctionnera pas. Ce que vous voulez vraiment faire, c'est continuer date et heure du contenu.
Les méthodes de conversion à la rescousse
Le SDK IMA DAI fournit deux méthodes pour demander l'heure du contenu pour une durée de diffusion donnée et la durée de diffusion d'un contenu donné heure. À l'aide de ces méthodes de conversion, vous pouvez stocker les favoris durée du contenu, puis recherchez la durée de la diffusion correspondante dans la nouvelle instance du flux. Voici l'approche à adopter, avec un lien à un exemple d'application qui montre une implémentation opérationnelle de la fonction d'ajout de favoris.
Enregistrement des favoris
Enregistrer un favori lorsque le lecteur de contenu est mis en pause
onPause() {
var bookmarkTime = Math.floor(
streamManager.contentTimeForStreamTime(videoElement.currentTime));
}
Chargement des favoris...
Chargez le favori lors d'une nouvelle demande de flux.
function loadUrl(url) {
hls.on(Hls.Events.MANIFEST_PARSED, () => {
var startTime = 0;
if (bookmarkTime) {
var startTime = streamManager.streamTimeForContentTime(bookmarkTime);
// Seeking on load triggers the onSeekEnd event, so treat this seek as
// if it's snapback. Without this, resuming at a bookmark kicks you
// back to the ad before the bookmark.
isSnapback = true;
}
hls.startLoad(startTime);
videoElement.addEventListener('loadedmetadata', () => { videoElement.play(); });
});
hls.loadSource(url);
hls.attachMedia(videoElement);
}
Application exemple
Télécharger l'application exemple pour voir une implémentation d'ajout aux favoris.