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

JavaScript Discussion :

Exécuter un son au click sur image


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 18
    Points : 16
    Points
    16
    Par défaut Exécuter un son au click sur image
    Bonjour j'aimerais pouvoir executer un son quand je clique sur une zone cliquable j'ai donc ce code ci :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <img src="image2.jpg" id="page_internet_1" align="center"    usemap="#Secret" />
      <map name="Secret" >
     <area shape="rect" coords="0,0,500,500" onclick="JouerSon()" />
     </map>
    <audio id="beep" src="1936.mp3">
    </audio>
     
    <script>
        function JouerSon() {
                var sound = document.getElementById("beep");
                sound.play();
            }
    </script>

    Mon code marche bien la mais le probleme c'est que si je viens a rajouter un lien dans ma balise area le son ne marche plus

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <area shape="rect" coords="0,0,500,500" onclick="JouerSon()" href="xd.php" />

    qq aurait-il une solution à ce problème ?

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Mon code de test fonctionne bien :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <img src="https://danielhagnoul.developpez.com/images/mstile-150x150.png" id="page_internet_1" align="center" usemap="#Secret" />
    <map name="Secret">
        <area shape="rect" coords="0,0,150,150">
    </map>
    <audio id="beep" src="https://www.soundjay.com/button/beep-01a.mp3"></audio>

    Code JavaScript : 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
    window.addEventListener('load', ev => {
        // le DOM est construit et la page web est visible
     
        // début code du test
     
        document.querySelector('map[name="Secret"] > area').addEventListener('click', ev => {
            document.querySelector('#beep').play();
        });
     
        // fin code du test
     
    }, {
        capture: false,
        passive: true,
        once: false
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Ok ton code marche bien mais dés que je rajouter une balise qui redirige vers un lien le son n'est plus produit et c'est justement çà que j'aimerai bien régler comme problème
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <map name="Secret">
        <area shape="rect" coords="0,0,150,150">
    </map>
    ===>
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <map name="Secret">
        <area shape="rect" coords="0,0,150,150" href="nomsite.php">
    </map>

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Le comportement est logique, au clic le suivi du lien est prioritaire.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    je sais que c'est logique que le lien ai priorité mais justement j'aimerais bien avoir une zone cliquable qui puisse rediriger vers une autre page et en même temps pouvoir produire un son mais c'est soit l'un soit l'autre et je n'arrive pas à allier les 2

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        document.querySelector('map[name="Secret"] > area').addEventListener("click", function(ev) {
            ev.preventDefault(); // désactive l'action par défaut (lien href)
            document.querySelector("#beep").play();
            window.setInterval(function() {
              window.location.href = ev.target.getAttribute("href"); // active l'action (lien href)
            }, 1000); // 1 seconde (à ADAPTER à la durée du son)
          });

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Merci pour ton code mais je n'y arrive pas ça fait 2h que j'essaie et ca ne marche tjr pas voci le code:
    Code HTML : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <!DOCTYPE html>
    <html>
    <body style="background-color:#190C00;">
    <head>
    <link rel="stylesheet" href="escape_room.css">
    <meta charset="UTF-8"/>
    <title> Escape Room </title>
    </head>
    <img src="main_room.jpg" id="main_room" alt="Plan"   usemap="#Secret"   />
     <map name="Secret" >
     <area shape="rect" coords="0,0,500,500" onclick="ev()" href="Lumiere.php"/>
      <area shape="rect" coords="500,500,1000,1000" onclick="ev()" href="code.php"  />
       <area shape="rect" coords="105,170,135,115" href="Potion1.html" />
        <area shape="rect" coords="105,40,135,90" href="Potion2.html"  />
    	<area shape="rect" coords="1,0,10,915" href="Escape ordi.html"  />
    <script>
    document.querySelector('map[name="Secret"] > area').addEventListener("click", function(ev) {
            ev.preventDefault(); // désactive l'action par défaut (lien href)
            document.querySelector("#beep").play();
            window.setInterval(function() {
              window.location.href = ev.target.getAttribute("href"); // active l'action (lien href)
            }, 1000); // 1 seconde (à ADAPTER à la durée du son)
          });
              </script>
     </map>
     </body>
    </html>

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    sur ce coup là tu as perdu ta balise <audio id="beep" src="1936.mp3">.

    Note très personelle :
    Je navigue sans le son, la plupart du temps cela me saoule, alors imagine que, ayant été sur ton site, je clique sur le lien et ... rien ... il me faut attendre pour voir la suite ?? je fulmine après avoir cliqué « qu'est ce que c'est cette m...e ! » me dit une petite voie intérieure ... alors bye bye !

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    SANS balise <audio> :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <img src="https://www.wonderplugin.com/videos/demo-image0.jpg" id="main_room" alt="Plan" usemap="#Secret" />
    <map name="Secret">
      <area shape="rect" coords="0,0,500,500" href="Lumiere.php"/>
      <area shape="rect" coords="500,500,1000,1000" href="code.php"  />
      <area shape="rect" coords="105,170,135,115" href="Potion1.html" />
      <area shape="rect" coords="105,40,135,90" href="Potion2.html"  />
      <area shape="rect" coords="1,0,10,915" href="Escape ordi.html"  />
     </map>

    Code JavaScript : 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
    18
    19
    20
    21
    22
    23
    "use strict";
    const areas = document.querySelectorAll('map[name="Secret"] > area');
    const sound = "http://s1download-universal-soundbank.com/mp3/sounds/2051.mp3";
     
    areas.forEach(function(area) {
      area.addEventListener("click", function(ev) {
        ev.preventDefault(); // désactive l'action par défaut (lien href)
        play_sound(sound);
        let url = ev.target.getAttribute("href");
        goto_page(url);
      });
    });
    function goto_page(url) {
      console.log(url);
      window.setInterval(function() {
    //    window.location.href = url;
      }, 1000); // 1 seconde (à ADAPTER à la durée du son)
    }
    function play_sound(sound) {
      let audio = new Audio(sound);
      audio.play();
      audio.loop = false; // ne boucle pas
    }

  10. #10
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      }, 1000); // 1 seconde (à ADAPTER à la durée du son)
    Sinon on peut ajouter un écouteur d’évènement ended, pour ne pas avoir à coder en dur la durée du son.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. Limite de caractere Javascript besoin d'aide
    Par ptiiiilu dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/11/2017, 11h09
  2. Formulaire php/javascript, nouveau en javascript, besoin d'aide.
    Par Phoeboe dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 05/03/2015, 19h24
  3. Programme Javascript besoin d'aide
    Par niro123 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/04/2012, 20h23
  4. Changer le style en JavaScript [besoin d'aide]
    Par maximenet dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 13/09/2005, 17h21

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