En este artículo repasaremos las diversas posibilidades de reproducir un archivo de sonido MP3 en un documento HTML 5. Para ello acudiremos, fundamentalmente, a tres estrategias:
Listado 1: Audio MP3 con etiqueta audio de HTML 5.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" lang="es-es">
<title>Audio MP3</title>
</head>
<body>
<h1>Audio MP3</h1>
<audio id="sonido" src="whale_cry.mp3" controls>
</audio>
</body>
</html>

Puede que nos interese controlar más personalmente la apariencia del modo de reproducción, lo que implicará tener que basarnos en ciertos scripts y un par de elementos "button", por ejemplo, en el Listado 2, vemos cómo acudir a las funciones play() y pause(), disponibles en JavaScript para la programación de las etiquetas audio y video de HTML 5.
Listado 2: Audio MP3 con etiqueta audio de HTML 5, pero sin reproductor visible.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" lang="es-es">
<title>Audio MP3</title>
</head>
<body>
<h1>Audio MP3</h1>
<audio id="sonido" src="whale_cry.mp3">
</audio>
<button onclick="javascript:document.getElementById('sonido').play();">
Ejecutar</button>
<button onclick="javascript:document.getElementById('sonido').pause();">
Pausa</button>
</body>
</html>

Listado 3: Audio MP3 incrustado con etiqueta "embed" de HTML 5.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" lang="es-es">
<title>Audio embed MP3</title>
</head>
<body>
<h1>Audio embed MP3</h1>
<embed src="whale_cry.mp3" width="200" height="100" type="audio/mpeg" />
</body>
</html>
En numerosas ocasiones no es preciso indicar el tipo MIME, dado que es detectado automáticamente, aunque eso penalizará en algo la velocidad de ejecución de las páginas web.


Esa versatilidad nos vale también para reproducir archivos MP3, de una manera similar a como lo hicimos con la etiqueta embed, pero con una compatibilidad con versiones anteriores del lenguaje HTML. La sintaxis puede ser tan simple como:
<object width="400" height="300" data="ejemplo.swf"></object>
Listado 4: Audio MP3 incrustado con etiqueta object de HTML 5.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" lang="es-es">
<title>Audio object MP3</title>
</head>
<body>
<h1>Audio object MP3</h1>
<object type="application/x-shockwave-flash" data="player_mp3_maxi.swf" width="200" height="20">
<param name="video" value="player_mp3_maxi.swf" />
<param name="FlashVars" value="mp3=whale_cry.mp3&showstop=1&showinfo=1&showvolume=1" />
</object>
</body>
</html>

El comportamiento es muy similar a la etiqueta embed, trabaja con la carga del correspondiente control ActiveX que ejecutará el archivo multimedia asociado, en nuestro caso uno MP3. Una diferencia importante es que la carga se realizará en una nueva ventana, en la correspondiente al lugar en que hayamos programado el enlace, como sucede con todas las etiquetas A.
Listado 5: Audio MP3 como un enlace href estándar.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" lang="es-es">
<title>Audio href MP3</title>
</head>
<body>
<h1>Audio MP3</h1>
<h2><a href="whale_cry.mp3">Ejecutar</a></h2>
</body>
</html>


| Etiqueta audio | |||||||
| AUDIO | Formato | E | F | C | S | O | Type (MIME) |
| MP3 | X | X | X | type="audio/mpeg" | |||
|
Notas:
E: Microsoft Internet Explorer F: Mozilla Firefox C: Google Chrome S: Apple Safari O: Opera | |||||||
De no disponer de dicho soporte, tendremos la alternativa de trabajar con otros formatos de audio, cómo hemos comentado en nuestro artículo acerca de Añadir soporte para múltiples formatos de audio y vídeo (HTML 5).
Si el formato MP3 es la elección única, el uso de embed sería la segunda elección, juntamente con object, si deseamos asegurarnos la compatibilidad con navegadores que no sean compatibles con HTML 5.
Por último A HREF, podría parecer una mera concesión, pero además de asegurar compatibilidad con todas las versiones de HTML y con todos los navegadores, puede que lo que deseemos sea la ejecución en una ventana nueva y en tal caso, éste será el modo más sencillo.