Je réalise un jeu avec HTML5 et JavaScript.
Comment puis-je lire le son du jeu via JavaScript ?
Je réalise un jeu avec HTML5 et JavaScript.
Comment puis-je lire le son du jeu via JavaScript ?
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.
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.
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 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.
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/