Methoden
Man sollte dabei unterscheiden, ob der Sound im Hintergrund
abgespielt werden oder auf ein bestimmtes Ereignis folgen
soll.
Um Audio-Dateien ( Klänge, Geräusche oder Musik ) im Browser im Hintergrund abspielen zu lassen, galt theoretisch bis vor kurzem, ( wie hier selfhtml entnommen: )
Hintergrundmusik bindet man je nach Browser unterschiedlich ein
<html>
<head>
<title> Hintergrundmusik </title>
<!-- Microsoft: -->
<bgsound src = "background. mid" loop = "infinite" >
</head>
<body>
<!-- Netscape: -->
<embed src = "background. mid" autostart = "true" loop = "true" hidden = "true" height = "0" width = "0" >
<h1> Inhalt der Seite </h1>
</body>
</html>
Veraltet aber wirksam
Nun ist es zwar im Jahre des Herrn 2006 so, daß zwar der alte
Netscape - Tag
<EMBED> eigentlich nicht mehr benutzt werden sollte und nach
HTML - 4 - Standard durch den Tag <object data> ersetzt
werden sollte; aber dieser hat einige Nachteile, und zwischenzeitlich galt
für Multimedia - Dateien im
Internet Explorer
<object> ohne "data", aber mir etlichen Parametern, so
daß je nachdem, welchen Browser die Seite liest, etwas funktioniert
oder nicht. Also muß wie oben erneut ein Gemisch aus verschiedenen
Tags angewandt werden.
Näheres dazu kann man z. B. bei selfhtml nachlesen.
Zusätzliche Probleme
In der Praxis wird die Sache dadurch noch komplizierter, das einige Browser,
z. B. der
Internet Explorer, mehrere Tags
auslesen ( können ), so daß Multimedia - Dateien
dadurch unter Umständen doppelt abgespielt werden.
Andererseits funktioniert die mit <object data> angestrebte "einheitliche, Browserübergreifende Schreibweise" zum abspielen einer Sound - Datei im Internet auch nicht unbedingt immer so, wie man sich das wünscht.
Erschwerend und entscheidend kommt hinzu: der Browser des Anwenders muß, um mit der Datei überhaupt etwas anfangen zu können, ein entsprechendes Plug-In besitzen oder - wie häufig der Internet Explorer - wenigstens darauf zugreifen können. Und das Abspielen der Datei startet unter Umständen erst dann, wenn sie komplett vom Server übertragen wurde.
Es wird nämlich nicht die eigentliche Datei im Browser dargestellt, sondern das damit verknüpfte Programm, das wiederum ( wie bei Word, Excel, Acrobat Reader, Media Player ) sehr groß sein kann und den Rechner u. U. überlastet.
Des Weiteren muß das PlugIn auch für genau diese Art ( Mime - Type ) von Audio Datei ( wav, midi, au, mp3 ) in Windows und im Browser als Player konfiguriert sein. Das ist nicht unbedingt immer der Fall. Hinzu kommt, daß fast jedes neu installierte Programm, das sich zum abspielen von Audio-Dateien eignet ( Quicktime, Real Audio Player, Windows Media Player ), den bis dahin installierten Playern die Zugriffsrechte zu entziehen versucht und dabei häufig auch unbemerkt Browserkonfigurationen ruiniert.
All diese Schwierigkeiten - verbunden mit einem häufig
miserablen PlugIn-Management der Browser,
in dem Plug-Ins nicht einfach wie Applets, JavaScript,
GIF - Animationen, Pop-Ups etc. pp. an - oder
abgeschaltet werden können, führen dazu, daß so etwas simples
wie "ein Geräusch abspielen" in der modernen, multimedialen Welt
ausgerechnet im Internet sehr kompliziert und unzuverlässig werden kann,
obwohl das dazu erforderliche Teil-Programm vermutlich lächerlich klein
wäre. Also wird zum abspielen von Audio - Dateien auf Flash
ausgewichen, in der Annahme, dieses Plug-In hätte heutzutage sowieso
jeder Browser installiert.
Erst wenn alle Voraussetzungen erfüllt sind, kann der Browser des
Anwenders Audio - Dateien abspielen. Und dann will auch noch jeder anders
angesprochen werden.
Sounds im Hintergrund abspielen: unsicher
Will oder kann man nicht auf Flash ausweichen, so folgt im Ergebnis
daraus: Ist ein entsprechendes Audio - PlugIn im Browser vorhanden und
auch für die Datei vorgesehen, funktioniert für Hintergrundklänge
der alte, nie standardisierte <EMBED> - Tag immer
noch am besten.
Baut man ihn ans Ende der Seite ein, ertönt das Signal dann, wenn die Seite geladen wurde. Im Internet Explorer meist recht zuverlässig, da er automatisch auf in Windows eingebundene Media - Player zugreift, aber auch in Mozilla - Browsern, wenn auch nicht immer ganz so zuverlässig. Es gibt z. B. bei K-Meleon den Fall, daß es funktioniert, wenn die Datei die Endung html hat, aber bei exakt derselben Datei nicht, wenn sie als php - Datei abgerufen wird.
TEST
1: ertönt / ertönte beim
Laden dieser
Seite ein "PING"?
Dann ist ihr Browser in der Lage, Wave-Dateien
( .wav ) abzuspielen.
Sounds auf Abruf abspielen: ebenfalls unsicher
Geräusche auf Abruf ( zum Anklicken, beim Überfahren )
erfordern mehr. Da der <EMBED> - Tag zwar per
Java Script mit play / stop angesprochen werden kann, es aber
von installierten Player bzw. PlugIn abhängt, ob der das auch tut, ist
das Ergebnis nicht immer vorhersehbar.
Es gibt dazu im Netz verschiedene Scripts, die alle mehr oder weniger zuverlässig mit dem Internet Explorer arbeiten und in anderen Browsern zumindest nicht stören.
Hören tut man da meistens allerdings auch nichts.
Eine weitere generelle Eigenschaft dieser Scripte besteht
übrigens darin, daß das Abspielen der Audio - Datei im
Allgemeinen abbricht, sobald das Ereignis vorüber ist.
Ausweichmöglichkeiten
TEST
2: ertönte beim
Überfahren
dieser Links ein "PING"? Wenn nicht,
dann ist ihr Browser nicht in der Lage, auf die folgende erste
Weise Wave-Dateien abzuspielen.
Möglichkeit 1:
Die Audio - Datei wird mit dem alten
<EMBED> - Tag als Hintergrund in eine extra Seite
eingebunden und per Java - Script abgerufen, indem diese Seite immer
wieder neu geladen wird. Da die Seite sehr klein sein kann, ist eine
Verzögerung kaum zu bemerken. Größere Audio - Dateien
sollten allerdings vorgeladen werden
Ist die Seite in eine Frameset eingebunden, kann diese
Seite völlig unbemerkt als Extra - Fenster mit eingebaut werden.
( überhaupt eigen sich Framesets dazu, gemeinsame Objekte und Scripte oder Werte - auch dynamisch - zu verstecken und auf Abruf bereitzustellen. )
Ohne Frameset muß ein neues Fenster im geöffnet
werden, das anschließend im Hintergrund immer neu geladen wird.
( Auf diesen Seiten wurde der Code im Menü - Fenster untergebracht. )
In beide Fällen ist der Code in etwa gleich und lautet im Prinzip
wie folgt:
Auf der aufrufenden Seite:
<HTML>
<HEAD>
<script type = "text/javascript" >
function PING (URL, NAME)
{Ping2 = window. open (URL, NAME); self. focus ();... ;}
</script>
</HEAD>
<BODY OnUnload = "Ping2. close ();" >
<P>
<A HREF = "#" Onmouseover = "PING ('menuding. htm', 'DING'); return false" > PING </A>
<P>
</BODY> </HTML>
Auf der Extra - Seite:
<HTML>
<HEAD>
<script type = "text/javascript" >
function Fensterweg ()
{... ; self. blur;}
</script>
</HEAD>
<BODY Onload = "Fensterweg ()" >
<P>
<embed autostart = "true" src = "ding. wav" width = "0" height = "0" > </embed>
</BODY> </HTML>
Es ist deshalb ratsam, dies durch eine Java - Script - Anweisung zu ersetzen, welche zumindest diesen Fehler abfangen kann:
Auf der Extra - Seite:
<HTML>
<HEAD>
<script type = "text/javascript" >
function Fensterweg ()
{... ; self. blur;}
</script>
</HEAD>
<BODY Onload = "Fensterweg ()" >
<P>
<script type = "text/javascript" >
<!--
if ( (window.location.protocol == "http:") && ( (navigator) && (!( navigator.mimeTypes ["application/wav"] )) ) && (!( document.all )) )
{
// alert ("Format `wav´ nicht bekannt");
}
else
{
document.writeln ( "<embed autostart\=\"true\" src\=\"sounds\/ding\.wav\" width\=\"0\" height\=\"0\"> <\/embed>" );
}
// -->
</script></BODY> </HTML>
Diese Methode wird in Abwandlung
HIER in einem FRAMESET vorgeführt -
Es bleibt aber die Abhängigkeit von der Browser-Konfiguration des Anwenders!
TEST 3: ertönte beim
Überfahren
dieser Links ein ( anderes,
leiseres ) "PING"?
Dann ist ihr Browser in der Lage, au-Dateien abzuspielen.
Die Audio - Datei wir per Java - Applet abgespielt,
z. B. von
audiodata.
Das geht recht zuverlässig, erfordert aber strenge Beachtung der
Vorschriften und verlangsamt das erste Laden der Seite. Insbesondere werden
von diesem speziellen Applet nur Dateien im für die meisten Browser
gängigen Sun / Java '.AU' - Format abgespielt. Andere Formate
müssen vorher umgewandelt werden.
In beiden Möglichkeiten wird die Sound - Datei vollständig abgespielt, wenn sie abgerufen wird.
Mehr zum audiodata - Applet hier