javascript + sound

Von: , 25.10.2010 15:45 Uhr

Liebe/-r Experte/-in,

ich möchte in einem html-File die Tastenschläge mit dem Aufruf:
<body onkeydown="doonkeydown(this,event);">
abfangen.

Ausserdem möchte ich bei bestimmten Ereignissen ein Sound abspielen, mit dem Aufruf:
document.getElementById("sound_element").innerHTML="<embed src='mysound.wav' volume='50' hidden=true autostart=true loop=false id='sound_element_embed'></embed>";

Leider wird meine doonkeydown(...)-JavaScript-Funktion nicht mehr aufgerufen, NACH dem ich ein <embed...>-Element in die html-Seite eingefügt habe, da der Fokus auf dieses <embed>-Element gesetzt wird.

Wenn ich dann in die html-Seite klicke, hat diese den Fokus wieder und meine doonkeydown(...)-JavaScript-Funktion wird wieder korrekt aufgerufen.

Meine Frage:
wie kann ich kurze Sounds mit JavaScript so abspielen, dass die Webseite den Fokus nicht verliert?

Bereits probiert, aber nicht funktioniert:
------------------------------------------
1. mit JavaScript onclick-Ereignisse auf die Webseite simulieren
2. <embed>-Element in ein <iframe> platzieren
3. js-Libraries zum Abspielen von Sounds
(wie z.B. aus www.seabreezecomputers.com)
4. Aufruf document.getElementsByTagName("body")[0].focus();
funktioniert auch nicht
5. Aufruf document.addEventListener("keydown", doonkeydown1, true); oder document.onkeydown = doonkeydown1;
funktionieren auch nicht besser...

Für einen Hinweis wäre ich dankbar:
Ilona

13 Antworten zu dieser Frage

  1. Antwort von nach 6 Minuten 0 hilfreich
    Re: javascript + sound

    Hallo,

    deine Idee 4 ist schon nicht schlecht, aber der body ist von Haus aus nicht fokussierbar. Wenn du dagegen vorher irgendwann einmal

    document.body.tabIndex = 0;

    setzt, kannst du später jederzeit mit

    document.body.focus();

    arbeiten, um eingebetteten Objekten die Steuerung zu entziehen.


    Gruß,

    Amica

    • Antwort von nach 16 Minuten 0 hilfreich
      Re^2: javascript + sound

      Vielen Dank für den Hinweis!

      ich habe die zwei Funktionen ausprobiert:

      document.body.tabIndex = 0;
      document.body.focus();

      leider ohne Erfolg (Fokus bleibt auf dem QuickTime-Steuerelement zum Abspielen von dem Sound)
      (ohne JavaScript-Fehler)
      (mit Google Chrome 7.x ausprobiert)

      • Antwort von nach 20 Minuten 0 hilfreich
        Re^3: javascript + sound

        Wenn es nicht zufällig irgendeinen Quicktime-Schalter gibt, mit dem man das verhindern kann, weiß ich auch nicht weiter, sorry.

  2. Antwort von nach 8 Minuten 0 hilfreich
    Re: javascript + sound

    Hallo Illona,

    nur so eine Idee, aber wie wäre es, das embed gleich in die seite zu schreiben mit autoplay=false und dann beim Aufruf des Events das embed per id holen und play() darauf auszuführen?

    Gruß, Alex

    • Antwort von nach 18 Minuten 0 hilfreich
      Re^2: javascript + sound

      Vielen Dank für den Hinweis!

      habe ich probiert.
      Wenn ich das Steuerelement in die html-Seite von Anfang an drin habe, dann funktioniert
      <body onkeydown="doonkeydown(this,event);">
      von Anfang an nicht (doonkeydown(...) wird nicht aufgerufen)

  3. Antwort von - abgemeldetes Mitglied - nach 45 Minuten 0 hilfreich
    Re: javascript + sound

    Hallo Ilona, Für einen Hinweis wäre ich dankbar:
    wie wäre es, wenn Du in der function, die den sound erzeugt, noch ein "document.body.focus()" aufrufst?


    Für Audio-Ausgaben nehme ich player.swf.
    Vorteile:
    klein und funktioniert als object eingebunden bei allen Browsern. (gibt ja besonders beim FF Probleme bei background-music)

    Gruß
    Klaus

    • Antwort von nach 53 Minuten 0 hilfreich
      Re^2: javascript + sound

      Vielen Dank für den Hinweis!

      document.body.focus()
      habe ich bereits probiert.

      Ich würde gerne player.swf ausprobieren, aber ich weiss nicht, wie ich mein wav (oder mp3)-Datei in das entsprechende Format umwandeln kann!?

      • Antwort von - abgemeldetes Mitglied - nach einer Stunde 1 hilfreich
        Re^3: javascript + sound

        document.body.focus()
        habe ich bereits probiert.
        und .. klappt das? Ich würde gerne player.swf ausprobieren, aber ich weiss nicht,
        wie ich mein wav (oder mp3)-Datei in das entsprechende Format
        umwandeln kann!?
        player.swf spielt mp3-files

        ist freeware und es gibt auch Beispiele, wie der eingebunden wird.
        Kann Dir aber auch Beispiel schicken.

        Gruß
        Klaus

  4. Antwort von nach 3 Stunden 0 hilfreich
    Re: javascript + sound

    Eigentlich sollte das mit dem focus funktionieren. Zumindest würde ich da ansetzen.

    Schon mal mit jQuery versucht zu arbeiten und dann das focus ereigniss nach dem hinzufügen des Embeded-Object (was man dann auch über jQuery machen kann) wieder zurückzusetzen.

    Gruß Lamer

  5. Antwort von nach 4 Stunden 0 hilfreich
    Re: javascript + sound

    Hallo Ilona,
    alle Ideen, die mir zu deinem Problem eingefallen wären, hast du unter der Rubrik "schon probiert" bereits aufgeführt - und noch mehr.
    Mit anderen Worten: Ich kann dir leider nicht helfen.

    Trotzdem wünsche ich dir viel Erfolg!
    Viele Grüße,
    Michael Janßen

    ---

    www.LilaLupe.de
    www.MiJan.de

  6. Antwort von nach 5 Stunden 0 hilfreich
    Re: javascript + sound

    hallo ilona,

    schön, dass du schon so viel ausprobiert hast, bevor du die frage gepostet hast.
    ich hab das versucht nachzubauen und bei mir (linux-firefox) behält er den fokus,
    wenn ich per javascript den src vom embed-element beschreib:

    function dosound( track ) {
    if ((track == 'track01') || (track == 'track02'))
    document.getElementById('embedtag').src='snd.swf?getSound='+track+'.mp3';
    return false;
    }

    <form name="formular" onsubmit="dosound(this.soundfile.value)">
    <input type="text" name="soundfile" value="" onkeydown="dosound(this.value);" />
    <input type="submit" />
    </form>

    <embed
    id="embedtag" src="snd.swf?getSound=track01.mp3" quality="high"
    allowScriptAccess="sameDomain" type="application/x-shockwave-flash"
    pluginspage="http://www.macromedia.com/go/getflashplayer" />

    gruß & hoffe geholfen zu haben
    people

    • Antwort von nach 5 Stunden 0 hilfreich
      Re^2: javascript + sound

      huh!
      Danke für den Hinweis!
      Ich würde den Code gerne probieren, aber ich habe 'snd.swf' nicht.
      Was ist das für Flash-File?
      Kann man snd.swf irgendwo downloaden?

            • Antwort von nach 73 Tagen 0 hilfreich
              Re: javascript + sound

              weiss keine Lösungweiss keine Lösungweiss keine Lösungweiss keine Lösungweiss keine Lösungweiss keine Lösungweiss keine Lösungweiss keine Lösungweiss keine Lösung

              Jetzt auf diese Frage antworten.