Resumen audio y video

Video y audio son parte esencial de la web. HTML5 incorpora todos los elementos necesarios para aprovechar estas herramientas y utilizarlas en nuestras aplicaciones web.

Elementos

HTML5 provee dos nuevos elementos HTML para procesar medios y una API específica para acceder a la librería de medios.

  • <video>: este elemento nos permite insertar un archivo de video en un documento HTML.
  • <audio>: este elemento nos permite insertar un archivo de audio en un documento HTML.

Atributos

La especificación también provee atributos para los elementos <video> y <audio>:

  • src: este atributo declara la URL del medio a ser incluido en el documento. Puedes usar el elemento <source> para proveer más de una fuente y dejar que el navegador elija cual reproducir.
  • controls: este atributo, si está presente, activa los controles por defecto. Cada navegador provee sus propias funciones, como botones para reproducir y pausar el medio, así como barra de progreso, entre otras.
  • autoplay: este atributo, si está presente, le indicará al navegador que comience a reproducir el medio lo más pronto posible.
  • loop: este atributo hará que el navegador reproduzca el medio indefinidamente.
  • preload: este atributo recomienda al navegador qué hacer con el medio. Puede recibir tres
    valores diferentes: none, metadata y auto. El valor none le dice al navegador que no
    descargue el archivo hasta que el usuario lo ordene. El valor metadata le recomienda
    al navegador descargar información básica sobre el medio. El valor auto le dice al
    navegador que comience a descargar el archivo tan pronto como sea posible.

Atributos de <video>

Existen algunos atributos que son específicos para el elemento <video>:

  • poster: este atributo provee una imagen para mostrarla en lugar del video antes de ser
    reproducido.
  • width: este atributo determina el tamaño del video en pixeles.
  • height: este atributo determina el tamaño del video en pixeles.

Eventos

Los eventos más relevantes para esta API son:

  • progress: este evento es disparado periódicamente para informar el progreso en la descarga del medio.
  • canplaythrough: este evento es disparado cuando el medio completo puede ser reproducido sin interrupción.
  • canplay: este evento es disparado cuando el medio puede ser reproducido. A diferencia del evento previo, éste es disparado cuando solo parte del archivo fue descargado (solo los primeros cuadros de un video, por ejemplo).
  • ended: este evento es disparado cuando la reproducción llega al final del medio.
  • pause: este evento es disparado cuando la reproducción es pausada.
  • play: este evento es disparado cuando el medio comienza a ser reproducido.
  • error: este evento es disparado cuando ocurre un error. El evento es despachado desde el
    elemento <source> (si se encuentra presente) correspondiente a la fuente del medio que produjo el error.

Métodos

Los métodos más comunes para esta API son:

  • play(): este método comienza o continúa la reproducción del medio.
  • pause(): este método pausa la reproducción del medio.
  • load(): este método descarga el archivo del medio. Es útil en aplicaciones dinámicas.
  • canPlayType(formato): este método indica si el formato del archivo que queremos utilizar es soportado por el navegador o no. Retorna una cadena vacía si el navegador no puede reproducir el medio y los textos “maybe” (quizás) o “probably” (probablemente) basado en la confianza que tiene de que el medio pueda ser reproducido o no.

Propiedades

Las propiedades más comunes de esta API son:

  • paused: esta propiedad retorna true (verdadero) si la reproducción del medio se encuentra pausada o no ha comenzado.
  • ended: esta propiedad retorna true (verdadero) si la reproducción llegó al final del medio.
  • duration: esta propiedad retorna la duración del medio en segundos.
  • currentTime: esta es una propiedad que puede retornar o recibir un valor para informar la
    posición en la cual el medio se encuentra reproduciendo o establecer una nueva posición donde comenzar a reproducir.
  • error: esta propiedad retorna el valor del error cuando un error ocurre.
  • buffered: esta propiedad ofrece información sobre la cantidad del archivo que fue descargado e introducido en el buffer. Retorna un array conteniendo datos sobre cada porción del medio que ha sido descargada. Si el usuario salta a otra parte del medio que no ha sido aún descargada, el navegador comenzará a descargar el medio desde ese punto, generando una nueva porción en el buffer. Los elementos del array son accesibles por medio de los atributos end() y start(). Por ejemplo, el código buffered.end(0) retornará la duración en segundos de la primera porción del medio encontrada en el buffer.