La Etiqueta AUDIO

Permite incrustar archivos de audio directamente en un documento HTML, sin necesidad de plugins externos.

La etiqueta <audio> permite incrustar archivos de audio (como música, podcasts o efectos de sonido) directamente en un documento HTML, sin necesidad de plugins externos.

Sintaxis básica

<audio controls>
  <source src="audio.mp3" type="audio/mpeg">
  Tu navegador no soporta el elemento de audio.
</audio>
  • controls: Muestra los controles predeterminados (play, volumen, etc.).

  • <source>: Especifica archivos alternativos para compatibilidad entre navegadores.

  • Texto alternativo: Mensaje para navegadores antiguos que no soportan <audio>.

Atributos principales

Atributo Descripción
src Ruta del archivo de audio (si no se usa <source>)
controls Muestra controles de reproducción
autoplay Inicia la reproducción automáticamente (restringido en muchos navegadores)
loop Reproduce el audio en bucle
muted Silencia el audio por defecto
preload Carga anticipada: auto, metadata (solo metadatos), none

Ejemplos prácticos

Reproductor básico con múltiples formatos

<audio controls>
  <source src="sonido.mp3" type="audio/mpeg">
  <source src="sonido.ogg" type="audio/ogg">
  Descarga el <a href="sonido.mp3">audio en MP3</a>.
</audio>

Audio en bucle para ambientación

<audio loop autoplay muted>
  <source src="ambiente.mp3" type="audio/mpeg">
</audio>

Reproductor personalizado con JavaScript

<audio id="miAudio" src="musica.mp3"></audio>
<button onclick="document.getElementById('miAudio').play()">Play</button>
<button onclick="document.getElementById('miAudio').pause()">Pause</button>

Formatos compatibles

Formato Tipo MIME Navegadores
MP3 audio/mpeg Chrome, Firefox, Edge, Safari
WAV audio/wav Chrome, Firefox, Edge
OGG audio/ogg Chrome, Firefox, Edge
AAC audio/aac Safari, Edge

Accesibilidad

Subtítulos/transcripciones:

Usa <track> para integrar subtítulos (WebVTT):

<audio controls>
  <source src="podcast.mp3" type="audio/mpeg">
  <track
    src="subtitulos.vtt"
    kind="subtitles"
    srclang="es"
    label="Español"
  >
</audio> 

Descripción textual:

Proporciona un enlace a la transcripción si no usas <track>.

Estilización con CSS

Personaliza la apariencia del reproductor:

audio {
  width: 100%;
  background: #f0f0f0;
  border-radius: 8px;
  padding: 10px;
}

/* Estilos para navegadores WebKit (Chrome, Safari) */
audio::-webkit-media-controls-panel {
  background: #2c3e50;
}

audio::-webkit-media-controls-play-button {
  filter: invert(1);
}

Errores comunes

Olvidar el atributo controls:

<!-- Audio invisible sin controles -->
<audio src="sonido.mp3"></audio>

Autoplay no funcional:

Muchos navegadores bloquean autoplay sin muted o sin interacción previa del usuario.

Formatos incompatibles:

<!-- Solo MP3 no funcionará en navegadores antiguos -->
<audio controls>
  <source src="audio.mp3" type="audio/mp3"> <!-- Tipo MIME incorrecto -->
</audio>

Buenas prácticas

  • Prioriza MP3: Es el formato más compatible.

  • Optimiza archivos: Usa herramientas como Audacity para reducir el peso.

  • Lazy loading: Usa preload="none" si el audio no es esencial:

<audio controls preload="none">
  <source src="audio.mp3" type="audio/mpeg">
</audio>

Compatibilidad avanzada con JavaScript

Controla el audio mediante la API de HTMLMediaElement:

const audio = document.getElementById('miAudio');

// Eventos útiles
audio.addEventListener('play', () => {
  console.log('Reproduciendo...');
});

audio.addEventListener('ended', () => {
  console.log('Audio finalizado');
});

// Métodos
audio.play();    // Inicia reproducción
audio.pause();   // Pausa
audio.load();    // Recarga el recurso

Diseño responsivo

Asegúrate de que el reproductor se adapte a móviles:

@media (max-width: 480px) {
  audio {
    min-width: 250px;
  }
}

Conclusión:

La etiqueta <audio> es fundamental para integrar sonido en la web moderna. Recuerda:

  • Usar múltiples formatos para compatibilidad.

  • Priorizar la accesibilidad con subtítulos.

  • Controlar el autoplay para no molestar a los usuarios.

¡Transforma tu sitio web en una experiencia multimedia profesional!