Player V6 de Brightcove es un gran paso adelante para facilitar el desarrollo y la personalización de reproductores. Este blog describe algunas de las ventajas de esta nueva versión y cómo puede probarla. La versión 6 incluye:
- Plugins avanzados. Una API de plugins mejorada que facilita la escritura y el mantenimiento de plugins.
- Fuentes dinámicas. Permite cambiar los tipos de vídeo después de la inicialización del reproductor, para que pueda mezclar tipos de contenido en listas de reproducción, anuncios, y soportar mejor la carga condicional y el comportamiento dinámico de la página.
- Actualización de la accesibilidad. Mejoras en los estilos de contorno y eliminación de botones anidados.
- Personalización más sencilla de la interfaz de usuario. Modelo CSS más sencillo y mejor información sobre herramientas.
¿Por qué una versión mayor?
Aunque hemos hecho un gran esfuerzo para minimizar los cambios que podrían romper la API y para mantener la compatibilidad con los plugins y las personalizaciones existentes, hemos aumentado el número de la versión principal porque algunos de los cambios que hemos realizado para simplificar la API podrían romper el código de algunas integraciones. El número de versión principal indica este potencial y significa la necesidad de revisar las personalizaciones e integraciones para asegurarse de que siguen funcionando.
Detalles
Fuentes dinámicas
Diseñado a partir de las populares ofertas de middleware en frameworks web como Express y Django, las fuentes dinámicas del reproductor de Brightcove son una función sencilla pero potente que permite un control preciso del proceso de selección de fuentes y de la línea de tiempo del reproductor.
Plugins avanzados
El reproductor Brightcove Player V6 es ahora compatible tanto con los plugins existentes como con los plugins avanzados. Éstos ofrecen una serie de ventajas a los autores de plugins, incluida la gestión del ciclo de vida (configuración/eliminación), que ayuda a evitar fugas de memoria. Con este cambio llegan nuevos métodos del reproductor para detectar qué plugins están disponibles y cuáles se están utilizando actualmente en un reproductor.
Accesibilidad
Nos esforzamos para que nuestro reproductor sea accesible para usuarios con discapacidades. Basándonos en los comentarios de los usuarios de Brightcove Player V5, hemos facilitado el uso de nuestro reproductor con un sitio web accesible.
- Se habían eliminado los estilos de contorno de los elementos, lo que hacía difícil o imposible saber qué elemento estaba enfocado en el reproductor.
- Había casos en los que teníamos botones HTML dentro de botones HTML. Esto confundía a los lectores de pantalla y dificultaba el uso de los controles de volumen.
Mejoras en la interfaz de usuario
Basándonos en los comentarios recibidos, hemos introducido algunos cambios para facilitar el uso y la personalización del reproductor. En concreto, hemos combinado los controles de subtítulos y subtítulos en un solo menú. Además, la información sobre el tiempo en la barra de progreso ahora siempre se encuentra dentro de los límites del reproductor.
Guía de migración
Los plugins de la versión 5 deberían seguir funcionando con la versión 6. Aunque la mayoría de los plugins deberían ser compatibles, es importante ser consciente de los cambios y evaluar cada plugin, ya que hay algunos cambios incompatibles con versiones anteriores. En la siguiente sección se explican estos cambios y cómo pueden afectar al código de nuestros clientes y socios.
Eliminación del encadenamiento de métodos
Una de las características relativamente desconocidas de Player V5 de Brightcove es que muchos métodos del reproductor podían encadenarse entre sí, al estilo jQuery. El problema era que esto hacía que los valores de retorno de algunas funciones fueran impredecibles, lo que daba lugar a un código difícil de depurar. A veces devolvían un valor, a veces el propio jugador. En la versión 6 hemos eliminado el encadenamiento de métodos. Donde antes los métodos devolvían un jugador, ahora no devuelven nada.
La función src()
En Brightcove Player V5, la función src() devuelve la dirección URL de origen que se está reproduciendo en el elemento de vídeo. Esto puede causar problemas con ciertos formatos como HLS, en los que podría devolver una dirección URL "blob". Esto es prácticamente inútil para los usuarios, que normalmente querían conocer la fuente que se había establecido originalmente en el reproductor. En la versión 6, la función src() devuelve ahora la ruta de la fuente determinada por el nuevo procedimiento de selección dinámica de la fuente.
Configuración de la fuente asíncrona
En el reproductor Brightcove Player V5, si se llamaba a src() y se introducía un valor, se iniciaba un algoritmo de selección de fuentes síncrono. Esto significa que cualquier llamada posterior a src() devolverá la fuente seleccionada en la última llamada:
player.src({type: ‘video/mp4’, src: ‘foo.mp4’});
videojs.log(player.src().src); // ‘foo.mp4’
Sin embargo, dado que el nuevo mecanismo de selección de fuentes incorpora la asincronía -que admite flujos de trabajo avanzados como la realización de llamadas al servidor para la selección personalizada de fuentes-, el reproductor ya no puede garantizar que se cumpla lo anterior.
Cambios en la interfaz de usuario y la accesibilidad
Los cambios en la interfaz de usuario y en la accesibilidad realizados en el reproductor Brightcove Player V6 implican que el HTML y el CSS pueden haber cambiado con ellos. Entre los componentes que han cambiado el marcado se incluyen:
- Controles de volumen
- Menú combinado de subtítulos y subtítulos
- Información sobre el tiempo de la barra de progreso
Las pieles personalizadas con mucha personalización pueden tener que ajustarse a estos cambios.
Depreciaciones
Varios métodos del reproductor Brightcove Player 5 han quedado obsoletos. Éstos registrarán advertencias en la consola del navegador con una sugerencia sobre cómo evitarlos, si así se desea. Algunos de los cambios clave en los métodos son:
- videojs.plugin() está obsoleto, utiliza videojs.registerPlugin() en su lugar.
- Los métodos de manipulación del DOM, como addClass(), hasClass(), createEl(), etc. se han trasladado a un subobjeto: videojs.dom. Cada uno de ellos registrará una advertencia apropiada, pero seguirá funcionando durante la vida útil del reproductor Brightcove Player 6.
Comenzar
Pruebe la versión preliminar del reproductor Brightcove Player V6 y díganos qué le parece.