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 esta manera, se da por sentado que hay una implementación de IMA de DAI 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

Guardar un favorito cuando la actividad esté en pausa

Saves the current time as a bookmark in the current video.
Function saveBookmarkTime(player as Object,  streamManager as Object) as Void
  m.videos[player.video.index].bookmarkTime =
      streamManager.getContentTime(player.currentTime * 1000)
End Function

Cargando favoritos

Carga el favorito cuando vuelvas a solicitar una transmisión. Es parte de la implementación de la interfaz VideoStreamPlayer.

player.loadUrl = Function(streamInfo as Object)
  ...
  If m.video.bookmarkTime > 0
    streamTime = m.streamManager.getStreamTime(m.video.bookmarkTime)
    m.videoPlayer.seek(streamTime)
  End If
End Function

App de ejemplo

App de ejemplo