En esta guía, se muestra cómo implementar la función de favoritos con el SDK de IMA DAI cuando se usa la inserción de anuncios dinámicos (DAI) para transmisiones de video on demand (VOD). Se supone que tienes una implementación de IMA DAI en funcionamiento, como la que se presenta en Primeros pasos.
¿Qué es la función de favoritos?
La función de favoritos permite guardar un punto específico en la transmisión del contenido y luego regresar a él. Supongamos que un usuario mira cinco minutos de contenido, deja la transmisión de video y luego regresa a ella. La función de favoritos guarda la posición del usuario en la transmisión para que pueda retomarla desde donde la dejó y, de esta forma, ofrece al espectador una experiencia continua.
Funcionamiento interno de la función de favoritos de DAI
Cuando agregues una transmisión de DAI a favoritos, debes registrar el ID de la transmisión y la hora en que el usuario abandona el video. Cuando el usuario regrese, vuelve a solicitar la transmisión y busca la hora guardada. Como cada instancia de la transmisión solicitada puede tener pausas publicitarias de diferentes duraciones, no funcionará simplemente guardar la hora de la transmisión. Lo que realmente quieres hacer es continuar desde la misma hora de contenido.
Métodos de conversión al rescate
El SDK de IMA DAI proporciona un par de métodos para solicitar la hora de contenido para una hora de transmisión determinada y la hora de transmisión para una hora de contenido determinada. Con estos métodos de conversión, puedes almacenar la hora de contenido agregada a favoritos y, luego, buscar la hora de transmisión correspondiente en la nueva instancia de la transmisión. Este es el enfoque, incluido un vínculo a una app de ejemplo que muestra una implementación de favoritos en funcionamiento.
Cómo guardar y cargar favoritos de transmisiones de anuncios
Guarda un favorito cuando se pausa el reproductor de contenido.
onPause() {
var bookmarkTime = Math.floor(
streamManager.contentTimeForStreamTime(videoElement.currentTime));
}
Cómo cargar favoritos
Carga el favorito cuando vuelvas a solicitar una transmisión.
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);
}
App de ejemplo
Descarga la app de ejemplo para ver una implementación de favoritos.