J'essaie de faire jouer un son de 5 secondes en JavaScript à l'aide de HTMLAudioElement, une sous-classe audio de HTMLMediaElement ce qui devrait être simple :
<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>
Bien que la console JavaScript affiche "Will play ; error = null ; ended = false", "Did play ; error = null ; ended = false", aucun son n'est entendu, aucun message "Ended play" n'apparaît, et après dix secondes, elle affiche "After ten seconds : error = null ; ended = false". Le seul autre message de la console indique que favicon.ico n'a pas été trouvé, ce qui est logique puisqu'il n'y en a pas.
J'utilise Safari 15.5 sur un Apple Silicon MacBook Pro fonctionnant sous MacOS 12.4.
Je l'ai fait :
- J'ai essayé avec et sans chacun des paramètres qui devraient être par défaut : a.load() ; a.autoplay = true ; a.loops = false ; a.muted = false ; a.volume = 1.0 ; a.pause = false ; a.controls = true ;
- J'ai essayé de l'héberger sur un site web public que je contrôle et sur un serveur web du réseau local.
- Paramétrez Safari >> Paramètres pour [domaine ou adresse IP du serveur web] >> Autoriser toutes les lectures automatiques. (Si ce paramètre n'est pas défini, une erreur indiquant qu'une interaction de l'utilisateur est nécessaire s'affiche dans la console Javascript).
- J'ai vidé le cache et rechargé la page.
- Vérifie que le fichier sound.mp3 est disponible (un message d'erreur est enregistré s'il est manquant).
- Vérifiez que le fichier sound.mp3 est lu correctement lorsqu'on double-clique dessus (c'est-à-dire qu'il est lu dans l'application Musique d'Apple).
Merci d'avance pour toute suggestion.