par anonyme 11-Aout-2021

Bonjour, je cherche à personnaliser les couleurs d'un bouton play et pause pour lire un fichier audio MP3. Je sais qu'on ne peut pas personnaliser les couleurs de la balise HTML5 <audio> ; existe-il une alternative, merci.

1 Réponse

par Antoine 11-Aout-2021

Vous pouvez utiliser JavaScript pour contrôler la lecture d'une balise HTML <audio>. Il vous suffit de cacher la balise avec du CSS, et de la remplacer par des icones que vous faites apparaitre ou disparaitre, selon que l'audio soit en lecture ou en pause.

Pour lancer la lecture et mettre en pause le son on utilise les deux éléments media suivants :

  • paused permet de mettre en pause.
  • play permet de lancer la lecture du média audio.

Voici comment créer un bouton audio lecture et pause en HTML ; la librairie Font Awesome est utilisée pour l'affichage des icônes au format SVG :

<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Comment créer un bouton audio lecture et pause en HTML ?</title>
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css'>
<style>
audio {
  display: none;
}
#bouton {
  color: red;
  background-color : lightgreen;
}
</style>
</head>
<body>
<audio src="https://nw.1formatik.fr/music.mp3"></audio>
<button id="bouton">
<i class="fas fa-volume-up fa-2x"></i>
</button>
<script>
const bouton = document.querySelector("#bouton");
const icone = document.querySelector("#bouton > i");
const audio = document.querySelector("audio");
bouton.addEventListener("click", () => {
  if (audio.paused) {
audio.play();
icone.classList.remove('fa-volume-up');
icone.classList.add('fa-volume-mute');

  } else {
audio.pause();
icone.classList.remove('fa-volume-mute');
icone.classList.add('fa-volume-up');
  }
});
</script>
</body>
</html>

Démo dans le bac à codes.

Bienvenue sur 1FORMATIK, où vous pouvez poser des questions en lien avec l'informatique et internet, et recevoir des réponses d'Antoine et d'autres internautes.

2.6k questions

3k réponses

...