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/

2voto

Mark Points 12663

Vous pouvez utiliser l'API audio Web pour lire des sons. Il existe de nombreuses bibliothèques audio comme howler.js, soundjs, etc. Si vous ne vous souciez pas des anciens navigateurs, vous pouvez aussi consulter http://musquitojs.com/ . Il fournit une API simple pour créer et jouer des sons.

Par exemple, pour jouer un son, il suffit de.

import $buzz from 'musquito';

const buzz = $buzz('gunfire.mp3');

buzz.play();

La bibliothèque prend également en charge les Sprites audio.

1voto

I.M.SMART Points 47

Utilisez juste ça :

<video controls="" autoplay="" name="media"><source src="Sound URL Here" type="audio/mpeg" /></video>

Ou, pour faire plus simple :

<video controls="" autoplay="" name="media">

<source src="Sound URL Here" type="audio/mpeg" />

</video>

Un échantillon :

<video controls="" autoplay="" name="media">
<source src="https://interactive-examples.mdn.mozilla.net/media/examples/t-rex-roar.mp3" type="audio/mpeg">
</video>

Je n'ai AUCUNE idée si cela fonctionne sur d'autres navigateurs que Chrome 73 !

0voto

Sean Rogers Points 19

Cela n'a pas fonctionné pour Firefox mais cela a fonctionné pour Chrome.

J'ai changé le fichier mp3 en fichier wav et maintenant ça marche pour les deux.

Mais n'oubliez pas de mettre exactement le même nom et l'extension du fichier dans le paramètre Audio().

0voto

Urihel Coleman Points 73

C'est un peu de JS que j'ai trouvé sur un projet d'IA pour bébé sur lequel je travaille. J'espère que cela pourra vous aider.

<!DOCTYPE html>
<html>
<head>
    <title>
        js prompt AI
    </title>
    <style>
        #button {
            border: 1px solid black;
            border-radius: 10px;
            font-size: 22px;
            height:65px;
            width:100px;
            text-align: center;
            line-height: 65px;
        }
    </style>
</head>
<body>

    <audio id="myAudio" src="./how_are_you.m4a"></audio>
    <p>To Interact with the AI please click the button</p>
    <div id=button>click</div>

    <script>

       var button = document.getElementById("button");
       function playBack() {
           button.addEventListener("click", function (){
            var talk = prompt("If you wish for the AI to respond type hi");
            var myAudio = document.getElementById("myAudio");

            if(talk === "hi") {
                    myAudio.play();
            }
           }) ;

       }
       playBack();
   </script>
</body>

</html>

0voto

Danny Points 76

J'ai eu quelques problèmes avec la lecture de l'audio, surtout depuis que Chrome a mis à jour que l'utilisateur doit d'abord interagir avec le document.

Cependant, dans presque toutes les solutions que j'ai trouvées, le code JS doit définir activement des écouteurs (par exemple, des clics de bouton) pour recevoir les événements de l'utilisateur afin de lire l'audio.

Dans mon cas, je voulais juste que mon jeu joue de la musique d'ambiance dès que le joueur interagit avec lui, donc je me suis fait un simple écouteur qui continue à vérifier si la page web est interceptée ou non.

const stopAttempt = setInterval(() => {
    const audio = new Audio('your_audio_url_or_file_name.mp3');
    const playPromise = audio.play();
    if (playPromise) {
      playPromise.then(() => {
        clearInterval(stopAttempt)
      }).catch(e=>{
        console.log('' + e);
      })
    }
}, 100 )

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