Reproducción de Audio y Video - HTML5

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.

Video con controlador automático

<video src="videos/trailer.mp4" controls>
</video>

Video con botones de control


Audio mp3

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. Puede 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.