6.4 Embedding audio and video
1. Embedding Audio with <audio>
The <audio> element allows you to embed sound content in web pages. It supports multiple sources, controls, and fallback content.
1.1 Atributos principales
| Atributo | Descripción |
|---|---|
| src | URL del archivo de audio. |
| controls | Muestra los controles de reproducción (play, pause, volumen). |
| autoplay | Inicia la reproducción automáticamente (cuidado con UX). |
| loop | Reproduce en bucle continuo. |
| muted | Silencia el audio al cargar. |
| preload | Indica si el navegador debe precargar el audio: auto, metadata, none. |
1.2 Ejemplo de audio con múltiples fuentes y texto de fallback
2. Embedding Video with <video>
El elemento <video> es análogo a <audio>. Permite insertar video en formatos múltiples, con controles, poster y subtítulos.
2.1 Atributos principales
| Atributo | Descripción |
|---|---|
| src | URL del archivo de video. |
| controls | Muestra la barra de controles de reproducción. |
| poster | URL de una imagen mostrada antes de la reproducción. |
| width, height | Dimensiones del reproductor en píxeles. |
| autoplay | Inicia la reproducción de vídeo automáticamente. |
| loop | Reproduce en bucle continuo. |
| muted | Silencia el vídeo. |
| preload | Precarga del vídeo: auto, metadata, none. |
2.2 Ejemplo de video con poster y subtítulos
3. Pistas y accesibilidad
- <track>: Permite añadir pistas de texto (subtítulos, descripciones de audio, capítulos).
- attribute kind: puede ser subtitles, captions, descriptions, chapters, metadata.
- attribute default: marca la pista activa por defecto.
- Formato recomendado: WebVTT (.vtt) para compatibilidad y facilidad de edición.
4. Interacción vía JavaScript
Los elementos <audio> y <video> exponen una API para controlar la reproducción y capturar eventos.
- Reproducción:
media.play(),media.pause(). - Tiempo:
media.currentTime(segundos),media.duration. - Volumen y mute:
media.volume(0 a 1),media.muted. - Eventos útiles:
loadedmetadata: cuando ya se conocen duración y dimensiones.timeupdate: actualizado cada vez que cambia el tiempo de reproducción.ended: al finalizar.canplay,canplaythrough: útil para controlar buffers.
4.1 Ejemplo JavaScript
<!-- HTML -->
<script>
const video = document.getElementById('miVideo');
document.getElementById('btnPlay').addEventListener('click', ()=> {
video.play(); // inicia reproducción
});
document.getElementById('btnPause').addEventListener('click', ()=> {
video.pause(); // pausa reproducción
});
// Mostrar tiempo transcurrido
video.addEventListener('timeupdate', ()=> {
console.log('Tiempo actual:', video.currentTime.toFixed(2), 's');
});
</script>
5. Buenas prácticas
- Ofrece múltiples formatos (MP4/WebM, MP3/OGG) para compatibilidad.
- Incluye controles nativos o personalizados accesibles.
- Proporciona subtítulos y descripciones para cumplir WCAG.
- Preload apropiadamente: evita descargar archivos pesados si no es necesario.
- Usa poster para mejorar la experiencia antes de cargar el vídeo.
- Considera la política de reproducción automática: muchos navegadores bloquean autoplay con sonido.
Con estas herramientas, podrás integrar audio y video de forma robusta, accesible y adaptable a distintos dispositivos y necesidades.
Leave a Reply
You must be logged in to post a comment.