Die Aufgabe stellt sich oft, die Lösung ist einfach: Wie können Sound-Effekte (beispielsweise Signaltöne) an bestimmte Elemente in HTML-Seiten gekoppelt und automatisch wiedergegeben werden?
Wir zeigen Ihnen, wie einfach das ist!
Dieses kleine Notenblatt zeigt den Anfang der Melodie des Kinderliedes
»Hänschen Klein«. Sie können sich die Töne einzeln anhören:
Wer kennt ihn nicht, den Klassiker aus der Schulzeit?
Ihr Computer ist ein geduldiger und fairer Gegner.
Wir benötigen nur eine einfache Javascript-Funktion, die zwei Kernelemente enthält:
function show_SoundMessage() {
var soundfile = "path/soundfile.mp3";
var sound_id = "soundbox";
var sound_message = "<";
sound_message += 'embed src="' + soundfile + '" autostart="true"
loop="false" hidden="true" height="0" width="0"';
sound_message += ">";
document.getElementById(sound_id).innerHTML = sound_message;
}
Die Javascript-Funktion kann im head-Bereich
der HTML-Seite gespeichert werden:
<script type="text/javascript" ><!-- // Hier die Funktion einkopieren! --></script>
Sie können die Funktion auch in einer gesonderten Datei mit der Endung .js speichern und über den Dateinamen im head-Bereich Ihrer HTML-Seite einbinden:
<script src="meine_sound_funktion.js" type="text/javascript"></script>
Nun müssen wir die Funktion im HTML-Code aufrufen.
Dazu brauchen wir
Das geht beispielsweise so:
<!-- Beispiel 1 --> <img src="pic.png" alt="" width="32" height="32" onmouseover="show_SoundMessage()"> <div id="soundbox"></div> <!-- Beispiel 2 --> <a href="javascript:show_SoundMessage()">Klick mich!</a> <td id="soundbox"></td>
Damit sind wir auch schon fertig!
Das auslösende Ereignis ist hier jeweils ein Maus-Ereignis. Selbstverständlich kann es auch das Ergebnis einer Berechnung, eines Zählerstandes oder eines Dateiinhalts usw. sein. Das allerdings muss jeweils anwendungsspezifisch programmiert werden.
Unser Notenblatt-Beispiel ist nur geringfügig aufwendiger: Es enthält im Grunde nur diese Funktion, aber sie ist leicht erweitert und arbeitet mit zwei getrennten Ausgaben.
Ein Ausgabebereich (zugewiesen über id) nimmt den Sound auf wie oben beschrieben, ein zweiter bekommt gleichzeitig eine Textnachricht. Wird ein Notenbild (png) mit der Maus überfahren (onmouseover) wird abhängig vom Bild eine bestimmte Sound-Datei geladen und es wird eine Nachricht erzeugt. Verlässt die Maus das Bild, wird eine zweite Funktion gerufen, die den Textausgabebereich löscht. Dazu wird ein leerer String an die document-Funktion für den Textbereich – nicht jedoch für den Sound-Bereich! – übergeben.
Sound-Dateien können sehr einfach in HTML-Dateien dynamisch eingebunden werden. Der Weg dahin ist einfach. Dafür sind nur wenige Voraussetzungen nötig:
Wir haben als individuelle Erweiterungen in unseren Beispiel nur wenige Spezialitäten eingebaut:
Die Grundlagen für viele Anwendungen sind damit geschaffen. Beispielsweise kann man sich von den alert-Boxen trennen, die sehr beliebt waren, um dem Benutzer einen Hinweis zu geben. Nun ist es sehr einfach möglich, nicht nur eine Nachricht an geeigneter Stelle in das Browser-Fenster zu schreiben; der Benutzer kann gleichzeitig mit einem Signalton darauf aufmerksam gemacht werden.
Allerdings: Zuviel erwarten darf man nicht! Komplexere Anwendungen – und unser Notenblatt-Beispiel gehört schon dazu! – sollte man nicht mit HTML auf diese Weise lösen. Der Browser benötigt zu viel Zeit, um die Informationen zu generieren, zu laden und auszuführen (Sie werden bemerkt haben, dass die Ausgabe der Töne ziemlich träge erscheint). Zudem unterscheiden sich die Browser darin, wie sie Sound-Dateien behandeln. Testen Sie einfach mal unsere Seite in verschiedenen Browsern.
Für die Entwicklung komplexer Anwendungen empfiehlt sich Adobe® Flash. Die SWF-Dateien können zur Laufzeit deutlich einfacher geladen werden und um die Wiedergabe kümmert sich der Flash-Player. Damit ist die zuverlässige Wiedergabe in hoher Qualität (was bei Tönen wichtig sein kann) in allen Browsern, die SWF-Dateien unterstützen, sichergestellt.
Viel Erfolg beim Umsetzen Ihrer eigenen Ideen!