IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

HTML5 Audio tag "exclusif"


Sujet :

HTML

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 93
    Par défaut HTML5 Audio tag "exclusif"
    Bonjour. Dans une page Web en HTML5, j'ai plusieurs audio tags associés à différents boutons pour jouer divers fichiers mp3.
    Comment faire pour bloquer ou mettre en file d'attente les fichiers audio lorsque l'utilisateur appuie sur un bouton alors qu'un fichier audio précédent est en cours de jeu et n'est pas terminé ? Dans mon projet actuellement, les fichiers audio se superposent et ce n'est pas top !

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 301
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <audio controls src="audio1.mp3"></audio>
    <audio controls src="audio2.mp3"></audio>
    <audio controls src="audio3.mp3"></audio>
     
    <script>
      const audios = document.querySelectorAll('audio');
     
      audios.forEach(audio => {
        audio.addEventListener('play', () => {
          audios.forEach(otherAudio => {
            if (otherAudio !== audio) {
              otherAudio.pause();
            }
          });
        });
      });
    </script>
    Bonjour,
    J'ai pas test mais un truc du genre ?
    Je sais pas si il y plus opti par contre
    Cdt
    Un problème sans solution est un problème mal posé. (Albert Einstein)

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 93
    Par défaut
    Merci pour le petit bout de code.
    J'ai essayé et il y a du mieux. Les fichiers ne se superposent plus mais le fichier précédent en cours de jeu est stoppé et remplacé par celui qui vient d'être lancé par appui sur un autre bouton (ou audio tag).
    Je préférerais que le fichier en cours de jeu se termine et que l'appui sur un autre bouton soit "sans effet", soit "mémorisé" pour que le nouveau fichier démarre après la fin du fichier précédent.
    Mais ce que vous proposez est déjà pas mal !!! C'est moins le bazar qu'avant !

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 93
    Par défaut
    Autre effet que je découvre avec votre bout de code : le fichier est stoppé et remplacé par le suivant; et si l'on essaie de rejouer le fichier n-1 (celui qui a été stoppé), il repart là où il s'était arrêté ...

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 301
    Par défaut
    Tu fais une file d'attente sinon , dès que tu cliques , ajoute la balise audio tag ( son id ) dans un tableau. Et quand un de tes audio est fini :
    https://developer.mozilla.org/en-US/...nt/ended_event

    Tu redéclenches le deuxième audio ?

    Je sais pas comment c'est fait autrement ...
    Un problème sans solution est un problème mal posé. (Albert Einstein)

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 93
    Par défaut
    En ajoutant derrière le .pause() un .load(), cela fonctionne de façon satisfaisante.
    Ainsi, le fichier en cours est arrêté et rechargé. Si l'on re-clique le bouton après arrêt, il repart au début.
    Si l'on clique un nouveau bouton, le fichier en cours s'arrête et le nouveau prend le relais.
    Ça me va comme cela.
    Merci pour l'aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. plugin ckeditor html5 audio
    Par j-cpierson dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/12/2011, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo