vsch: Menü mit Sound

Hallo.
Ich weiss, diese Frage wurde bereits mehrfach in diesem Forum gestellt. Dennoch muss auch ich diese Frage wieder stellen:

Ich habe ein Menü mit Hilfe von CSS und JavaScript erstellt. Jetzt möchte ich mein Menü auch mit Soundeffekten ausstatten. Dabei ist vor allen Dingen wichtig, dass alle Browser die Musik abspielen können. Die Musik soll nur dann abgespielt werden, wenn man die Maus über ein normales Element bewegt.
Die Struktur sieht in etwa so aus
<ul id="Navi">
  <li><a href="www.google.de">Google</a></li>
    :             :             :     :   :
</ul>
Wenn der Benutzer über das a Elment mit der Maus fährt, soll ein Sound abgespielt werden (<3sek).
Ich habe schon mehrfach gelesen, dass dies nur über flash möglich ist. Aber ich möchte die Struktur meines bisherigen Menüs gerne beibehalten und nicht noch ein Menü in Flash generieren. Denn ich habe überhaupt keine Ahnung von Flash!
Ausserdem möchte ich nicht, dass irgendwelche grafischen Element von irgendeinem Flashplayer angezeigt werden (z.B. play, stop etc).
Am liebsten wäre mir, ich könnte die Flash - Music mit JavaScript starten.
Für Eure Hilfe bin ich Euch jetzt schon dankbar

  1. Hello out there!

    Ich habe ein Menü mit Hilfe von CSS und JavaScript erstellt. Jetzt möchte ich mein Menü auch mit Soundeffekten ausstatten. Dabei ist vor allen Dingen wichtig, dass alle Browser die Musik abspielen können.

    Nein, vor allen Dingen ist wichtig, ob der Nutzer den Sound möchte. Vielleicht möchte er gerne seine eigene Musik ungestört weiterhören. Oder sich nicht auf Arbeit beim privaten Surfen erwischen lassen?

    Wenn der Benutzer über das a Elment mit der Maus fährt,

    Du weist also für alle 'a'-Elemente der "Navi" dem 'onmouseover'-Eventhandler die Funktion zu, die den Sound abspielt:

    var naviitems = document.getElementById("Navi").getElementsByTagName("a");  
    for (var i = 0; i < naviitems.length; i++)  
      naviitems[i].onmouseover = playNaviSound;
    

    Das ganze darfst du natürlich erst ausführen, wenn "Navi" und dessen Kinder schon existieren:

    window.onload = function ()  
    {  
      var naviitems = document.getElementById("Navi").getElementsByTagName("a");  
      for (var i = 0; i < naviitems.length; i++)  
        naviitems[i].onmouseover = playNaviSound;  
    };
    

    Aber ich möchte die Struktur meines bisherigen Menüs gerne beibehalten und nicht noch ein Menü in Flash generieren.
    Am liebsten wäre mir, ich könnte die Flash - Music mit JavaScript starten.

    Das sollte dann die Funktion playNaviSound() tun. Ein Menü in Flash ist dazu nicht erforderlich.

    See ya up the road,
    Gunnar

    PS: Vor und nach einem Bindestrich steht kein Leerzeichen: Flash-Musik

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
    1. Hello out there!

      Ich habe ein Menü mit Hilfe von CSS und JavaScript erstellt. Jetzt möchte ich mein Menü auch mit Soundeffekten ausstatten. Dabei ist vor allen Dingen wichtig, dass alle Browser die Musik abspielen können.

      Nein, vor allen Dingen ist wichtig, ob der Nutzer den Sound möchte. Vielleicht möchte er gerne seine eigene Musik ungestört weiterhören. Oder sich nicht auf Arbeit beim privaten Surfen erwischen lassen?

      Wenn der Benutzer über das a Elment mit der Maus fährt,

      Du weist also für alle 'a'-Elemente der "Navi" dem 'onmouseover'-Eventhandler die Funktion zu, die den Sound abspielt:

      var naviitems = document.getElementById("Navi").getElementsByTagName("a");

      for (var i = 0; i < naviitems.length; i++)
        naviitems[i].onmouseover = playNaviSound;

      
      >   
      > Das ganze darfst du natürlich erst ausführen, wenn "Navi" und dessen Kinder schon existieren:  
      >   
      > ~~~javascript
      
      window.onload = function ()  
      
      > {  
      >   var naviitems = document.getElementById("Navi").getElementsByTagName("a");  
      >   for (var i = 0; i < naviitems.length; i++)  
      >     naviitems[i].onmouseover = playNaviSound;  
      > };
      
      

      Aber ich möchte die Struktur meines bisherigen Menüs gerne beibehalten und nicht noch ein Menü in Flash generieren.
      Am liebsten wäre mir, ich könnte die Flash - Music mit JavaScript starten.

      Das sollte dann die Funktion playNaviSound() tun. Ein Menü in Flash ist dazu nicht erforderlich.

      See ya up the road,
      Gunnar

      PS: Vor und nach einem Bindestrich steht kein Leerzeichen: Flash-Musik

      Danke für die schnelle Antwort.
      Der Benutzer kann schon auswählen ob er Musik möchte oder nicht.
      Und wie muss die Funktion playNaviSound dann inhaltlich aussehen?

      Danke schon mal im voraus

      1. Hallo,

        Und wie muss die Funktion playNaviSound dann inhaltlich aussehen?

        du brauchst
         1) Einen Player, zum Beispiel EMFF
         2) Ein beliebiges Element (außerhalb des Anzeigebereiches).
        du musst:
         3) Das <object> im mouseover dynamisch je nach Sound generieren.
         4) Dem innerHTML von 2) den String aus 3)zuweisen.

        Wie so etwas dynamisch gemacht werden kann findest du, ähnlich realisiert hier: http://www.electric-lemon.de/stoiber/swfplayer.js
        function makesound() ist die entscheidende Stelle.

        Grüße,

        Jochen

        P.S. und bitte etwas sinnvoller zitieren.

        --
        Kritzeln statt texten:
        Scribbleboard
  2. Hallo vsch,

    Wenn der Benutzer über das a Elment mit der Maus fährt, soll ein Sound abgespielt werden (<3sek).
    Ich habe schon mehrfach gelesen, dass dies nur über flash möglich ist. Aber ich möchte die Struktur meines bisherigen Menüs gerne beibehalten und nicht noch ein Menü in Flash generieren. Denn ich habe überhaupt keine Ahnung von Flash!

    Du benötigst dafür kein Flashmenü, aber am besten bindest du den Sound dennoch über einen "Flashfilm" ein, weil das das verbreitetste Plugin ist. Da du ja nichts zeigen, sondern nur den Sound abspielen willst, reicht dafür ein Flashfilm von 1*1 Pixel Ausmaß, den du über CSS irgendwo außerhalb des sichtbaren Bereichs platzieren kannst.

    Hier habe ich mal beschrieben, wie das für ein Klickgeräusch funktioniert. Die Adaption an Mouseover schaffst du auch alleine. Bei onMouseover statt onClick benötigst du auch keinen Frame.

    Gruß Gernot