En esta guía, se muestra cómo implementar el uso de marcadores con el SDK de IMA para DAI cuando se usa la inserción de anuncios dinámicos (DAI) para transmisiones de video on demand (VOD). Esto supone una implementación de DAI de IMA que funciona, como la que se presenta en Primeros pasos.
¿Qué es el uso de marcadores?
Los favoritos permiten 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 del agregado de marcadores de la DAI
Cuando agregues a favoritos una transmisión de DAI, debes registrar el ID y la hora de la transmisión cuando el usuario abandone el video. Cuando el usuario regrese, vuelve a solicitar la transmisión y busca el tiempo guardado. Como cada instancia de la transmisión solicitada puede tener pausas publicitarias de diferentes duraciones, no funcionará simplemente guardar el tiempo de la transmisión. Lo que realmente quieres hacer es continuar desde el mismo momento del contenido.
Los métodos de conversión al rescate
El SDK de DAI de IMA proporciona un par de métodos para solicitar el tiempo de contenido para un tiempo de transmisión determinado y el tiempo de transmisión para un tiempo de contenido determinado. Con estos métodos de conversión, puedes almacenar el tiempo de contenido marcado y, luego, buscar el tiempo de transmisión correspondiente en la nueva instancia de la transmisión. Aquí se explica el enfoque, incluido un vínculo a una app de ejemplo que muestra una implementación de favoritos en funcionamiento.
Cómo guardar favoritos
Guardar un marcador cuando se pausa el Activity
private double bookmarkTime;
@Override
public void onPause() {
super.onPause();
double streamTime = videoPlayer.getCurrentPosition() / 1000.0; // ms to s.
bookmarkTime = streamManager.getContentTimeForStreamTime(streamTime);
}
Cargando marcadores
Carga el marcador cuando se vuelve a solicitar una transmisión. Es 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 marcadores.