SDK NATIVO DE BRIGHTCOVE CON EXOPLAYER 2

Foto de JESS R
JESS R
blog-placeholder image

Si utiliza el SDK del reproductor nativo de Brightcove para Android, es muy probable que esté utilizando el framework Google ExoPlayer para la reproducción de vídeo. En 2016, el equipo de Google ExoPlayer lanzó la segunda versión principal del reproductor, con una importante refactorización del código. Entonces decidimos darle algo de tiempo antes de saltar al barco de ExoPlayer 2, para que el código fuera más estable en el momento de la actualización.

En 2017 evaluamos ExoPlayer 2 y llegamos a la conclusión de que había llegado el momento de realizar la actualización, que lo convertirá en un gran complemento para el SDK de Brightcove y sus usuarios.

ACTUALIZACIÓN A EXOPLAYER 2

Al actualizar a ExoPlayer 2, tomamos la decisión de mantener ambas versiones de ExoPlayer en el SDK de reproductores nativos de Brightcove para Android, de modo que pueda actualizar a SDK v6.0.1+ con el mínimo esfuerzo y conservar el reproductor heredado.

Puedes empezar a explorar ExoPlayer 2 modificando tu build.gradle para sustituir compile project(':players:exoplayer') con compile project(':players:exoplayer2') en el bloque de dependencias.

Es posible que ya estés familiarizado con los cambios arquitectónicos realizados por el equipo de Google ExoPlayer en la segunda versión de su reproductor, pero si no es así, debes saber que la refactorización fue significativa con respecto a la primera versión y hubo muchos cambios de última hora. Algunas clases públicas fueron renombradas, otras fueron eliminadas y hubo varias adiciones. Puede consultar ExoPlayer 2 - Nuevos nombres de paquetes y clases para saber más sobre esto.

Se ha realizado un gran esfuerzo para gestionar estos cambios arquitectónicos en el SDK del reproductor nativo de Brightcove para Android, con el fin de que el proceso de actualización a ExoPlayer 2 sea lo más sencillo posible. Si su aplicación utiliza únicamente las clases de Brightcove, el esfuerzo de actualización debería ser mínimo. Sin embargo, si utiliza alguna de las clases heredadas de ExoPlayer expuestas, o alguna de las clases heredadas de ExoPlayerVideoDisplayComponent que dependen de las retrollamadas de ExoPlayer, es probable que se produzcan algunos cambios de última hora.

Si encuentra algún error, compruebe la sección de cambios de última hora del documento Migración a ExoPlayer 2 Framework.

VENTAJAS DE ACTUALIZAR A EXOPLAYER 2

El ExoPlayer 2 del SDK nativo de Brightcove para Android ofrece las mismas funciones que el ExoPlayer anterior. Esto incluye una sencilla reproducción de vídeo a la carta (VOD) compatible con múltiples pistas de audio y subtítulos como WebVTT y EIA-608, reproducción de contenidos protegidos con Widevine Modular, publicidad en el lado del cliente con Google Interactive Media Ads (IMA) y FreeWheel, compatibilidad con Android TV y Fire TV, vídeo 360 y reproducción sin conexión. También incluye integración total con servicios de Brightcove como VideoCloud y Dynamic Delivery.

Con ExoPlayer 2, el equipo de Google ExoPlayer ha añadido nuevas funciones a su marco de trabajo, ha mejorado la compatibilidad con las funciones existentes y ha corregido muchos errores, haciendo que ExoPlayer 2 sea más sólido y fiable. Esto nos ha permitido abandonar la versión bifurcada de ExoPlayer utilizada en el reproductor heredado, en la que teníamos mucho código personalizado, especialmente en torno a HTTP Live Streaming (HLS) para VOD y reproducción en directo. Nuestro objetivo es seguir utilizando el ExoPlayer de Google directamente, en lugar de una bifurcación, para que las futuras actualizaciones puedan aplicarse con mayor rapidez y frecuencia.

Se han realizado muchas mejoras y adiciones en áreas importantes del marco de ExoPlayer 2.

  • Compatibilidad total con multiperíodos DASH.
  • Esquemas criptográficos adicionales para DRM y compatibilidad con licencias offline.
  • Se incluye un mejor tratamiento de los metadatos malformados ID3.
  • Mejor compatibilidad con WebVTT y subtítulos EIA608.
  • Mejora en la búsqueda hacia delante dentro de contenidos almacenados en buffer, haciéndola realmente rápida y eficiente.

Al utilizar el SDK nativo de Brightcove para Android con ExoPlayer 2, su aplicación utilizará automáticamente todas estas mejoras.

Como ya se ha mencionado, ExoPlayer también ha mejorado sustancialmente su compatibilidad con HLS.

  • Añadir o mejorar la compatibilidad con etiquetas HLS como EXT-X-DISCONTINUITY, EXT-X-START, EXT-X-DISCONTINUITY-SEQUENCE y EXT-X-PROGRAM-DATE-TIME.
  • Se ha añadido soporte para el uso del ancho de banda medio cuando esté disponible en la lista de reproducción maestra HLS.
  • Mejor compatibilidad con MPEG-TS en varios aspectos.
  • Varios métodos de utilidad para identificar y trabajar con contenidos en directo.
  • Mejor gestión de la excepción BehindLiveWindowException, una mejora que ha sido aprovechada por el SDK de reproductores nativos de Brightcove para Android para ofrecer una mejor experiencia con HLS Live.

Puede consultar la lista completa de adiciones y correcciones en la biblioteca de ExoPlayer 2 en sus notas de la versión.

Hay algunas otras características que puede aprovechar accediendo directamente al objeto ExoPlayer 2 Player. Sin embargo, debe tener en cuenta que al trabajar directamente con las clases de ExoPlayer 2, las posibilidades de introducir cambios de última hora en su código aumentan cuando se lanzan nuevas versiones de ExoPlayer. Puede acceder a la instancia de ExoPlayer a través del método getExoPlayer() en el método ExoPlayerVideoDisplayComponent clase. Actualmente estamos utilizando la clase SimpleExoplayerInstancepor lo que puede lanzarlo a este objeto y utilizar sus métodos de utilidad, como se muestra a continuación.

ExoPlayerVideoDisplayComponent displayComponent = (ExoPlayerVideoDisplayComponent) brightcoveVideoView.getVideoDisplay();
ExoPlayer exoPlayer = displayComponent.getExoPlayer();
if (exoPlayer instanceof SimpleExoPlayer) {
   SimpleExoPlayer simpleExoPlayer = (SimpleExoPlayer) exoPlayer;
}

Un ejemplo de una función que podría interesarle podría ser establecer una velocidad de reproducción variable con ExoPlayer.

Si aún no lo ha hecho, le recomendamos encarecidamente que considere la posibilidad de actualizar a ExoPlayer 2, ya que hemos dejado de ofrecer soporte para el marco heredado de ExoPlayer.

Compartir

Brightcove ayudó a un fabricante de equipos de diagnóstico a reducir el tiempo de clase y los gastos, a la vez que mejoraba el éxito ...
Brightcove ayudó al mercado automovilístico más reconocido a gestionar su enorme videoteca heredada y a monetizarla...
Para mantener la integridad de la marca, las marcas minoristas necesitan reproductores de vídeo personalizables que les permitan ajustar los colores, la fuente...

¿PREPARADO PARA EMPEZAR?

Póngase en contacto con nosotros para saber cómo podemos mejorar sus esfuerzos de marketing por vídeo y ayudarle a generar los resultados y el ROI que necesita.