858 votes

Comment lire l'audio ?

Je réalise un jeu avec HTML5 et JavaScript.

Comment puis-je lire le son du jeu via JavaScript ?

13 votes

Puisque c'est html5, il y a <audio> . Cet élément sera doté de crochets JS appropriés pour "lecture", "pause", etc...

17 votes

Je parie que vous vous demandez où se trouve la documentation relative à toutes les méthodes audio : stackoverflow.com/questions/4589451/

23voto

Reza Saadati Points 1921

Si vous obtenez l'erreur suivante :

Uncaught (in promise) DOMException : play() failed because the user n'a pas interagi avec le document avant.

Cela signifie que l'utilisateur doit d'abord interagir avec le site Web (comme le dit le message d'erreur). Dans ce cas, vous devez utiliser click ou simplement un autre écouteur d'événements, afin que l'utilisateur puisse interagir avec votre site Web.

Si vous souhaitez charger automatiquement l'audio et que vous ne voulez pas que l'utilisateur interagisse d'abord avec le document, vous pouvez utiliser la commande suivante setTimeout .

setTimeout(() => {
  document.getElementById('mySound').play();
}, 500)

<audio id="mySound" src="sound.mp3"></audio>

Le son commencera après 0,5 seconde.

18voto

Rey Points 273

Ajoutez un son caché et jouez-le.

function playSound(url){
  var audio = document.createElement('audio');
  audio.style.display = "none";
  audio.src = url;
  audio.autoplay = true;
  audio.onended = function(){
    audio.remove() //Remove when played.
  };
  document.body.appendChild(audio);
}

11voto

Maxmaxmaximus Points 1386
new Audio('./file.mp3').play()

9voto

Ben Stafford Points 87

Une solution assez simple si vous avez une balise HTML comme ci-dessous :

<audio id="myAudio" src="some_audio.mp3"></audio>

Il suffit d'utiliser JavaScript pour le jouer, comme ceci :

document.getElementById('myAudio').play();

8voto

Phil Allen Points 28

Compte tenu des exigences de sécurité selon lesquelles un utilisateur doit interagir avec une page Web pour que le son soit autorisé, voici comment je procède, après avoir lu de nombreux articles, notamment sur ce site.

  1. Définissez les fichiers audio requis dans votre html
  2. Avoir un bouton de démarrage de jeu avec un onclick.
  3. Lorsque vous cliquez sur le bouton, vous pouvez lire et mettre en pause TOUS les fichiers audio, sauf celui que vous voulez lire au début.

Comme tous les fichiers audio ont été "joués" sur le même OnClick, vous pouvez maintenant les lire à tout moment dans le jeu, sans restrictions.

Notez que pour une meilleure compatibilité, n'utilisez pas de fichiers wav, MS ne les prend pas en charge.

Utilisez les formats mp3 et ogg, qui couvrent tous les appareils.

Exemple :

<audio id="welcome">
    <source src="URL/welcome.ogg" type="audio/ogg">
    <source src="URL/welcome.mp3" type="audio/mpeg">
    Your browser does not support the audio element.
</audio>

répéter si nécessaire pour tous les sons du jeu

Ensuite :

document.getElementById("welcome").play();
document.getElementById("welcome").pause();

Répétez l'opération si nécessaire, mais ne mettez pas en pause le son que vous voulez entendre au début du jeu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X