Muestra de Brightcove Player: Agrandar Jugador al pasar el ratón

En este tema, aprenderá a usar JavaScript y CSS para agrandar un reproductor pequeño cuando pasa el mouse sobre él, y luego reducirlo a un tamaño pequeño cuando lo apaga.

Ejemplo de jugador

Pase el mouse sobre el reproductor de abajo y fuera de él para ver la funcionalidad.

Ver la pluma 18165-ampliar-jugador-mouseover por Brightcove Learning Services ( bcls1969 ) en CodePen.

Código fuente

Ver el solución completa en GitHub.

Uso de CodePen

Estos son algunos consejos para utilizar eficazmente el CodePen anterior:

  • Cambie la visualización real del reproductor haciendo clic en el Result botón.
  • Haga clic en el HTML/CSS/JS botones para mostrar UNO de los tipos de código.
  • Más adelante, en este documento, la lógica, el flujo y el estilo utilizados en la aplicación se analizarán en la configuración de reproductor/HTML, Flujo de aplicaciones y Estilo de la aplicación. secciones. La mejor manera de seguir la información de estas secciones es:
    1. Haga clic en el EDIT ON CODEPEN en el CodePen y tenga el código disponible en un navegador / pestaña del navegador.
    2. En CodePen, ajusta el código que quieres que se muestre. Puede cambiar el ancho de las distintas secciones de código dentro de CodePen.
    3. Ver el Configuración de reproductor / HTML , Flujo de aplicación y / o Estilo de aplicación secciones en otra pestaña del navegador / navegador. Ahora podrá seguir las explicaciones del código y, al mismo tiempo, ver el código.

secuencia de desarrollo

Esta es la secuencia de desarrollo recomendada:

  1. Utilice la implementación del reproductor de incrustación en la página para probar la funcionalidad de su reproductor, complemento y CSS (si es necesario CSS)
  2. Coloque el JavaScript y CSS del plugin en archivos separados para pruebas locales
  3. Implementa el código del plugin y CSS en tu servidor una vez que hayas resuelto cualquier error.
  4. Usa Studio para agregar el plugin y CSS a tu reproductor
  5. Reemplace la implementación del reproductor de incrustación en página si determina que la implementación de iframe se ajusta mejor (se detalla en la siguiente sección)

Para obtener más información sobre estos pasos, consulte la sección Paso a paso: Guía de desarrollo de plugins.

iframe o incrustación en página

Al desarrollar mejoras para Brightcove Player, deberás decidir si el código se ajusta mejor a la implementación de iframe o incrustación en la página. La recomendación de práctica recomendada es crear un complemento para usarlo con una implementación de iframe. Las ventajas de utilizar el reproductor iframe son:

  • Sin colisiones con JavaScript y/o CSS existentes
  • Responde automáticamente
  • El iframe facilita el uso en aplicaciones de redes sociales (o siempre que el vídeo tenga que «viajar» a otras aplicaciones)

Aunque la integración del reproductor de incrustación en la página puede ser más compleja, hay ocasiones en que planificará el código en torno a esa implementación. Para generalizar, este enfoque es mejor cuando la página que contiene necesita comunicarse con el reproductor. En concreto, estos son algunos ejemplos:

  • El código de la página que contiene necesita escuchar y actuar en función de los eventos de los jugadores
  • El reproductor utiliza estilos de la página que lo contiene
  • El iframe hará que la lógica de la aplicación falle, como un redireccionamiento desde la página que contiene

Incluso si tu implementación final no utiliza el código iframe, puedes seguir usando el código de incrustación en la página con un plugin para tu JavaScript y un archivo separado para tu CSS. Esto encapsula tu lógica para que puedas utilizarla fácilmente en varios reproductores.

Detalles de la implementación

Hay una lógica adicional usando el API del reproductor para eliminar el comportamiento de encogimiento mientras se reproduce el video y luego restaurarlo nuevamente cuando el video esté en pausa o finalice. Como se creó aquí, esta muestra debe utilizar el Advanced (en la página) reproductor incrustado. Puede crear esta funcionalidad utilizando el iframe incrustar código también, pero la lógica sería un poco diferente y no se prestaría a convertirse en un complemento.

Recursos de API/plugins utilizados

Eventos API
jugar
pausa
terminó

Configuración de reproductor/HTML

En este ejemplo, el código de Brightcove Player utiliza un style atributo con el width y height propiedades establecidas en 100%.

Otros HTML

Un envoltorio de jugador <div> El elemento se agrega alrededor del código de inserción del reproductor para controlar dinámicamente el tamaño del reproductor.

Recuerda añadir el id atributo a la video-js etiqueta en el código de inserción del reproductor.

<video-js id="myPlayerID"
...

Flujo de aplicaciones

La lógica básica detrás de esta aplicación es:

  • Defina los tamaños de los jugadores grandes y pequeños.
  • Agregue funciones para hacer que el reproductor sea grande o pequeño.
  • Agregue oyentes para el mouseover y mouseout eventos.
  • Al pasar el mouse, agranda el jugador. Al salir, haz que el jugador sea pequeño. Mientras se reproduce el video, mantenga el tamaño del reproductor. Cuando el video esté en pausa o el video finalice, reduzca el tamaño del reproductor.

Obtener referencias DOM

Obtenga una referencia al Brightcove Player y al contenedor. Defina el tamaño de los jugadores grandes y pequeños.

Cambiar el tamaño del reproductor

Busque el código etiquetado:

// +++ Change the size of the player +++

Agregue funciones para hacer que el reproductor sea grande y pequeño.

Escuche el evento de mouseout

Busque el código etiquetado:

// +++ Listen for the mouseout event +++

Escuche el mouseout evento en el playerWrapper. Cuando se activa el evento, haz que el jugador sea pequeño.

Controla el tamaño del reproductor

Busque el código etiquetado:

// +++ Control the player size +++

Agregue lógica para hacer lo siguiente:

  • Inicialmente, haga que el reproductor sea pequeño.
  • En mouseover , agranda el reproductor.
  • En play evento, mantenga el reproductor grande.
  • En pause o ended eventos, hacen que el jugador sea pequeño.
  • En mouseout , haz que el reproductor sea pequeño.

Estilismo de aplicaciones

El CSS establece inicialmente el playerWrapper y define la transición entre el jugador pequeño y grande.

Código de plugin

Normalmente, al convertir JavaScript en un complemento de Brightcove Player, se necesitan cambios nominales. Un cambio necesario es reemplazar el uso estándar del ready() método por el código que define un complemento.

Aquí está el código de inicio a JavaScript muy utilizado que funcionará con el reproductor:

videojs.getPlayer('myPlayerID').ready(function() {
var myPlayer = this;
...
});

Cambiarás la primera línea para usar la sintaxis estándar para iniciar un plugin de Brightcove Player:

videojs.registerPlugin('pluginName', function(options) {
var myPlayer = this;
...
});

Como se mencionó anteriormente, puede ver el código JavaScript del complemento en el repositorio de GitHub correspondiente de este documento: agrandar-jugador.js.

Uso del complemento con un reproductor

Una vez que tengas los archivos CSS y JavaScript del plugin almacenados en una ubicación accesible a Internet, puedes usar el plugin con un reproductor. En Studio's JUGADORES módulo puedes elegir un jugador, luego en el PLUGINS sección agregue las URL a los archivos CSS y JavaScript, y también agregue el Nombre y Opciones , si se necesitan opciones.

Notas de implementación

  • Si desea poder especificar los tamaños pequeño y grande del reproductor para cada instancia, puede pasarlos como opciones al complemento y luego modificar el código del complemento para leer los valores del objeto de opciones. Consulte el paso a paso: Desarrollo de complementos para obtener más detalles sobre cómo hacer esto.

  • Si desea utilizar el reproductor iframe en lugar del reproductor inpage. El div contenedor del reproductor rodearía la etiqueta iframe, y el Javascript para administrar el tamaño del reproductor sería muy similar a lo que ves aquí. Sin embargo, debería estar en la página HTML, en lugar de un complemento de reproductor.