[Sounds - Menü aufrufen]

Methoden

EMBED

Probleme

Im Hintergrund

Sounds auf Abruf

- Nur Java Script

- Im Frameset

- Mit Applet

Sound - Dateien im Browser abspielen lassen



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 selfhtmlSie verlassen diese Seiten 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 selfhtmlSie verlassen diese Seiten 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>



Achtung: Diese einfache Vorgehensweise ruft bei Mozilla - Browsern, welche nicht über das entsprechende Plug-In verfügen, unter Umständen eine blockierende Fehlermeldung hervor, speziell bei K-Meleon.

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!




Möglichkeit 2: 


   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