Comment jouer un audio en js ?

Bonjour ! Je suis en train de créer un site et je n'arrive pas a jouer un audio en appuyant sur le bouton dédié.
voici mon code :
JavaScript :
function theRumbling(){
	var audio = document.getElementById('theRumblingAudio');
}

function playAudio(){
	audio.play();
}


Html :
<audio src="Ma source.mp3 (pas de problème là dessus)" id="theRumblingAudio"></audio>


pour activer la fonction playAudio j'ai :
<button class="playAudio" onclick="playAudio()">▶</button>


merci de m'aider :))

1 réponse

  1. Bonjour,

    Tu as un problème de portée : la variable audio initialisée dans la fonction theRumbling() n'est pas accessible dans la fonction playAudio().
    https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Functions
    https://www.pierre-giraud.com/javascript-apprendre-coder-cours/portee-variable-return-fonction/

    Une solution simple est d'initialiser la variable audio dans le contexte globale (donc pas dans une fonction) pour pouvoir y accéder dans le reste de ton code :
    var audio = document.getElementById('theRumblingAudio');
    
    function playAudio(){
    	audio.play();
    }
    


    Si c'est pas déjà le cas, penses à mettre ton code javascript après ton code html (en général juste avant la fermeture de la balise </body>) et prends le réflexe d'ouvrir la console de ton navigateur (raccourci F12, onglet Console) pour voir les éventuelles erreurs.
    2
    1. En fait il y a un bouton pour jouer l'audio et selon le bouton cliqué précédemment pour choisir la musique ça doit jouer la bonne :\ c'est pour ça que je l'avais mis dans une fonction
      1
    2. @AIDEZMOUACa ne change rien au problème de portée.
      Tu peux initialiser la variable audio dans le contexte global, l'utiliser dans une fonction pour changer sa valeur (sélectionner une autre balise/piste audio) et l'utiliser dans une autre fonction pour démarrer la lecture.
      0