Estoy intentando reproducir un sonido de 5 segundos de duración en JavaScript utilizando HTMLAudioElement, una subclase de audio de HTMLMediaElement que debería ser sencillo:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<script>
var a = new Audio("sound.mp3");
a.load();
a.autoplay = true;
a.loops = false;
a.muted = false;
a.volume = 1.0;
a.pause = false;
a.controls = true;
a.onended = function(){ window.console.log("Ended play"); };
window.console.log("Will play; error = " + a.error + "; ended = " + a.ended);
a.play();
window.console.log("Did play; error = " + a.error + "; ended = " + a.ended);
function timed_out() {
window.console.log("Timed out; error = " + a.error + "; ended = " + a.ended);
};
setTimeout(timed_out, 10000);
</script>
</body>
</html>
Aunque la consola de JavaScript muestra "Will play; error = null; ended = false", "Did play; error = null; ended = false", no se oye ningún sonido, no aparece el mensaje "Ended play", y después de diez segundos muestra "After ten seconds: error = null; ended = false". El único otro mensaje de la consola dice que no se encontró favicon.ico, lo que tiene sentido porque no hay ninguno.
Estoy usando Safari 15.5 en un MacBook Pro de silicona de Apple con MacOS 12.4.
Lo he hecho:
- Lo he probado con y sin cada uno de los ajustes que deberían ser por defecto: a.load(); a.autoplay = true; a.loops = false; a.muted = false; a.volume = 1.0; a.pause = false; a.controls = true;
- He intentado alojar esto en un sitio web público que controlo y en un servidor web en la LAN local.
- Configure Safari >> Ajustes para [dominio o dirección IP del servidor web] >> Permitir todas las reproducciones automáticas. (Si no se configura, se produce un error sobre la interacción del usuario que se muestra en la consola de Javascript).
- He vaciado la caché y he vuelto a cargar la página.
- Se ha comprobado que el archivo sound.mp3 está disponible (se registra un mensaje de error si falta).
- He comprobado que el archivo sound.mp3 se reproduce correctamente al hacer doble clic (es decir, se reproduce en la aplicación Música de Apple).
Gracias de antemano por cualquier sugerencia.