Favoritos

En esta guía, se muestra cómo implementar favoritos con el SDK de DAI de IMA cuando se usa la inserción de anuncios dinámicos (DAI) para transmisiones de video on demand (VOD). De este modo, se da por sentado que hay una implementación de DAI de IMA que funciona, como la que se presenta en Comenzar.

¿Qué es agregar a favoritos?

Agregar a favoritos es la capacidad de guardar y, luego, volver a un punto específico de la transmisión de contenido. Supongamos que un usuario mira cinco minutos de contenido, abandona la transmisión de video por Internet 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ó, lo que le brinda una experiencia fluida al usuario.

Funcionamiento interno de favoritos de la DAI

Cuando agregues una transmisión de DAI a favoritos, debes registrar el ID de transmisión y la hora a la que el usuario abandona el video. Cuando el usuario regrese, vuelve a solicitar la transmisión y busca el tiempo ahorrado. Dado que cada instancia de la transmisión solicitada puede tener pausas publicitarias de diferentes duraciones, el hecho de guardar el tiempo de transmisión no funcionará. Lo que realmente debes hacer es continuar desde el mismo tiempo de contenido.

Métodos de conversión al rescate

El SDK de IMA de DAI proporciona un par de métodos para solicitar el tiempo de transmisión de un tiempo de transmisión determinado y el tiempo de transmisión de un tiempo de contenido determinado. Con estos métodos de conversión, puedes almacenar el tiempo de contenido agregado a favoritos y, luego, buscar el tiempo de transmisión correspondiente en la instancia nueva de la transmisión. A continuación, se describe el enfoque, que incluye un vínculo a una app de ejemplo que muestre una implementación de favoritos en funcionamiento.

Cómo guardar favoritos

Guarda un favorito cuando Activity esté detenido.

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

Cargando favoritos

Carga el favorito cuando vuelvas 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 favoritos.