0 votes

Le fichier sonore n'est pas lu avec JavaScript et HTMLAudioElement.

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.

0voto

Dustin Campbell Points 6323

Hmmm. Cela fonctionne ce matin ! Safari a planté hier après-midi, donc peut-être que c'était juste un problème temporaire de Safari.

Désolé d'avoir dérangé tout le monde.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X