Muestra de Brightcove Player: Descargar transcripción

En este tema, aprenderá a utilizar el archivo WebVTT de subtítulos y a convertirlo en una transcripción descargable.

Ejemplo de jugador

El video en CodePen a continuación usa el siguiente archivo WebVTT para definir subtítulos:

WEBVTT

00:00.000 --> 00:05.000 align:middle line:90%
The waves rhythmically pound against the rocks.

00:05.000 --> 00:10.000 align:middle line:84%
Here in the quaint village of Yachats on the central Oregon coast.

00:10.000 --> 00:15.000 align:middle line:84%
Come visit and enjoy the surf and sand.

00:15.000 --> 00:19.000 align:middle line:84%
Remember, it never rains on the Oregon coast!

La muestra proporciona un Descargar transcripción en la barra de control que descarga un archivo de texto con el formato WebVTT eliminado del archivo. En esencia, permite al usuario descargar una transcripción de los subtítulos basada en una versión modificada del archivo WebVTT.

Ver la pluma Descargar transcripción por Brightcove Learning Services ( rcrooks1969 ) 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.

Recursos de API/plugins utilizados

Métodos API Eventos API Propiedades de API
sobre() inicio de carga player.media info
player.controlBar.customControlSpacer.el ()    

Configuración de reproductor/HTML

En esta sección se detalla cualquier configuración especial necesaria durante la creación del reproductor. Además, se describen otros elementos HTML que deben agregarse a la página, más allá del código de implementación del reproductor de incrustación de la página.

Configuración del reproductor

No se requiere ninguna configuración especial para el reproductor de Brightcove que crea para este ejemplo.

Otros HTML

No se añaden otros elementos HTML a la página.

Flujo de aplicaciones

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

  • Cree una expresión regular para eliminar el formato WebVTT del archivo.
  • Esperen al loadstart evento y recupere la URL del archivo WebVTT de subtítulos.
  • Construye un botón y colócalo en la barra de control.
  • Al hacer clic en el botón, descargue el archivo WebVTT remoto usando un XMLHttpRequest() objeto.
  • Utilizar el download Biblioteca JavaScript para que el navegador descargue el archivo.

Definir la expresión regular

Busque el código etiquetado:

// ### Define the regular expression ###

Debe crear una expresión regular para eliminar cualquier formato no deseado del archivo WebVTT. En este caso, la expresión regular elimina las líneas que comienzan con la forma estándar de definir horas en un archivo WEBVTT. Si no es un experto en expresiones regulares, puede encontrar https://regexr.com/ de ayuda.

Recuperar URL y obtener archivo

Busque el código etiquetado:

// ### Retrieve the URL for the text track, which is in this case a WebVTT caption file ###

Debes esperar al loadstart evento para acceder al mediainfo propiedad, que contiene la información de la pista de texto. Tenga en cuenta que si la página se publica desde un (https ), debe modificar la URL del archivo para utilizar también una conexión segura. Una vez que tenga la URL correcta, llame al getFile() método que realmente devuelve el archivo. Finalmente, usa JavaScript replace() junto con la expresión regular para reformatear el texto.

Construye un botón y colócalo en la barra de control.

Busque el código etiquetado:

// ### Create button and place in player ###

Un HTML botón elemento se construye y se coloca en la barra de control. Tenga en cuenta que el click El detector de eventos también se agrega dinámicamente. En este caso, el botón se coloca en el spacer región de la barra de control. Para más detalles sobre el spacer , mira el Personalización de la apariencia del jugador documento.

Obtenga el archivo según la URL proporcionada

Busque el código etiquetado:

// ### Function that gets the actual file based on URL ###

Esta función utiliza AJAX, a través de un XMLHttpRequest objeto, para recuperar el archivo. El comportamiento asincrónico dicta el uso de una función de devolución de llamada.

Descargue el archivo modificado en la computadora del usuario

Busque el código etiquetado:

// ### download function used for graceful browser download ###

Como se mencionó anteriormente en este documento, lo más probable es que el comportamiento de los navegadores predeterminados NO sea lo que usted desea que suceda, es decir, una nueva pestaña o ventana que se abre para mostrar el archivo. Esta herramienta JavaScript fuerza la descarga del archivo de texto.

Estilismo de aplicaciones

El CSS establece los colores y la posición de los botones en la barra de control.

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: download-transcript.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.