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 Cómo comenzar.
¿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. Los favoritos guardan la posición del usuario en la transmisión para que pueda retomarla desde donde la dejó y, de esta forma, ofrecen 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 favoritos
Guarda un favorito cuando se pause la Activity.
private double bookmarkTime;
@Override
public void onPause() {
super.onPause();
double streamTime = videoPlayer.getCurrentPosition() / 1000.0; // ms to s.
bookmarkTime = streamManager.getContentTimeForStreamTime(streamTime);
}
Cómo cargar favoritos
Carga el favorito cuando vuelvas a solicitar una transmisión. Forma parte de la implementación de la interfaz 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.
}
}
App de ejemplo
Descarga la app de ejemplo para ver una implementación de favoritos.