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 ?
J'ai eu quelques problèmes liés à objet de promesse audio et certains problèmes liés à l'interaction de l'utilisateur avec les sons, je finis par utiliser ce petit objet,
Je recommande d'implémenter les sons de lecture les plus proches de l'événement d'interaction que l'utilisateur utilise.
var soundPlayer = {
audio: null,
muted: false,
playing: false,
_ppromis: null,
puse: function () {
this.audio.pause();
},
play: function (file) {
if (this.muted) {
return false;
}
if (!this.audio && this.playing === false) {
this.audio = new Audio(file);
this._ppromis = this.audio.play();
this.playing = true;
if (this._ppromis !== undefined) {
this._ppromis.then(function () {
soundPlayer.playing = false;
});
}
} else if (!this.playing) {
this.playing = true;
this.audio.src = file;
this._ppromis = soundPlayer.audio.play();
this._ppromis.then(function () {
soundPlayer.playing = false;
});
}
}
};
Et le mettre en œuvre comme suit :
<button onclick="soundPlayer.play('https://interactive-examples.mdn.mozilla.net/media/examples/t-rex-roar.mp3');">Play</button>
Si vous voulez pouvoir lire le son même lorsque l'onglet du navigateur n'est pas sélectionné, vous devez charger la ressource audio au chargement de la page.
Comme ça :
var audio = new Audio('audio/path.mp3');
function playSound(){
audio.play();
}
Véase este question pour plus de détails
Si vous voulez lire votre audio à chaque fois que la page est ouverte, faites comme ceci.
<script>
function playMusic(){
music.play();
}
</script>
<html>
<audio id="music" loop src="sounds/music.wav" autoplay> </audio>
</html>
et appelez cette playMusic() chaque fois que vous en avez besoin dans le code de votre 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/