Complemento SSAI para el SDK nativo para Android

En este tema, obtendrá información sobre cambios importantes en el complemento de inserción de anuncios del lado del servidor (SSAI) en Brightcove Native SDK para Android.

Resumen

Comenzando con Native SDK para Android versión 6.18.0, hay algunos cambios importantes en el complemento SSAI que mejoran el comportamiento de reproducción y búsqueda, particularmente en reproductores en pausa.

Anteriormente, cuando un usuario buscaba hacia adelante y cruzaba un anuncio, los controles de anuncios reemplazaban los controles de video de inmediato. Esto no permitía que el usuario siguiera buscando. El reproductor también mantendría el contenido del video en lugar de reemplazarlo con el contenido del anuncio.

Ahora, los usuarios pueden buscar hacia adelante y hacia atrás sin que se reproduzcan los anuncios hasta que se reproduzca el video y el usuario haya cruzado un anuncio con la última búsqueda.

Caso de uso

Considere el siguiente caso de uso:

  1. El usuario carga un video con uno o más anuncios mid-roll en el reproductor e inicia la reproducción del video.
  2. Antes de un anuncio mid-roll, el usuario detiene la reproducción.
  3. Mientras el reproductor está en pausa, el usuario busca a través del marcador de anuncios mid-roll.
  4. Mientras el reproductor aún está en pausa, el usuario busca de nuevo a través del marcador de anuncios mid-roll, de vuelta al contenido que acaba de ver.
  5. Después de la búsqueda, los controles del reproductor están disponibles para el usuario. Cuando el usuario presiona Reproducir , el contenido se reproduce como se esperaba.
  6. Cuando la reproducción llegue al marcador de anuncio mid-roll, el anuncio se reproducirá y se mostrarán los controles del anuncio.
  7. Una vez que se completa el anuncio mid-roll, el reproductor completa la acción de búsqueda en el objetivo de búsqueda, donde el contenido reanuda la reproducción, con los controles del reproductor.

Requisitos

Los siguientes requisitos son necesarios para esta función:

  • Brightcove Native SDK para Android 6.18.0 o posterior

Cambios de comportamiento del complemento

Las siguientes clases tienen un nuevo comportamiento:

SSAIComponent clase

Esta clase ahora pasa el BaseVideoView objetar a la TimelineManager class cuando se crea una referencia a esta.

Eliminó pasar las referencias para el controlador de reproducción de video y el ticker al SeekManager cuando esto se crea y, en su lugar, pasa el emisor de eventos. También establece el oyente de búsqueda del objeto del administrador de la línea de tiempo en este nuevo SeekManager referencia.

También eliminó la SeekManager objeto de ser pasado como un observador a la Ticker clase.

LastAdSeekStrategy clase

Esta clase ahora es pública.

NoAdSeekStrategy clase

Esta clase ahora es pública.

SeekManager clase

Esta clase ya no activa la reproducción de anuncios. Esa funcionalidad se movió a la TimelineManager donde tiene más sentido.

Esta clase escuchó previamente SEEK_TO eventos y notificó a todos los oyentes suscritos a esta clase. Con esa acción, pasó la nueva posición de tiempo absoluto y también emitió una nueva SEEK_TO evento incluyendo la posición absoluta y la posición relativa. Ahora, SeekManager ya no emite un nuevo evento de búsqueda, pero aún notifica a todos los oyentes sobre el primer evento de búsqueda.

Esta clase ya no implementa el TickerObserver y SeekTask.Seekable clases y no maneja los eventos que esas clases generan.

Esta clase ya no maneja Skip Ad eventos.

La firma del constructor ha cambiado de

public SeekManager(VideoPlaybackController, Timeline, Ticker)

a

public SeekManager(EventEmitter, Timeline)

TimelineManager clase

Esta clase ahora maneja la reproducción y la acción de omisión de los anuncios. esta suscrito al SeekManager clase para escuchar los eventos de búsqueda. Una vez que se detecta un evento de búsqueda, esta clase verifica si se cruzó un anuncio. Si es así, reproduce el anuncio. De lo contrario, reposiciona el cursor de reproducción en el contenido del video y actualiza las posiciones absolutas y relativas.

Los anuncios se reproducen una vez que se reproduce el video. Si el video está en pausa, no reproducirá ningún anuncio cruzado por eventos de búsqueda. Esto proporciona la disponibilidad para admitir muchos eventos de búsqueda. Si el video se está reproduciendo y se cruza un anuncio, el anuncio se reproduce inmediatamente.

Cuando se cruza un anuncio mientras el video está en pausa, el TimelineManager reanudará la posición del cursor de reproducción en la posición anterior a la reproducción del anuncio.

El TimelineManager reanuda la reproducción en la posición anterior cuando se detecta un evento de salto de anuncio.

La clase TimelineManager ahora se extiende AbstractComponent .

Para crear un TimelineManager objeto, necesita pasar un BaseVideoView instancia junto con un Timeline instancia.

Cambios de API

Las siguientes clases tienen cambios de API:

SeekTask clase

Esta clase se eliminó porque su funcionalidad principal se integró en el TimelineManager clase donde tiene más sentido.

SeekManager clase

el constructor SeekManager(VideoPlaybackController videoPlaybackController, Timeline timeline, Ticker ticker) fue eliminado porque ya no necesita el VideoPlaybackController y el Ticker . En su lugar, ahora recibe la EventEmitter y el Timeline como sigue:

SeekManager(EventEmitter eventEmitter, Timeline timeline)

TimelineManager clase

el constructor TimelineManager(@NonNull Timeline mTimeline) fue cambiado a lo siguiente:

TimelineManager(@NonNull BaseVideoView mBaseVideoView, @NonNull Timeline mTimeline)