• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

sound vorladen, wieder mal

planet4

New member
hallo,

wieder mal hab ich ein Problem mit einem sound, der so eingebunden wird:

<embed src="sound/tada.wav" loop="false" autostart="true" width="0" height="0"/>

es vergehen ca. 5 Sekunden, bis er ertönt, selbst wenn er bei mir auf dem Rechner liegt,
außerdem ist er nur 27kb groß...

er ist in einer php-Datei eingebunden, was hier wohl keine Rolle spielt, nur so viel:
er wird mitten im script aufgerufen

kann man da noch irgendetwas anders machen, damit es nicht so lange dauert

(es gibt hier einen thread, der ist mittlerweile 3 Jahre alt, da hab ich schon mal danach
gefragt - könnte ja sein, dass es da neue Ideen gibt... )

planet4.
 
Sound vorzuladen ist schwierig... Wann soll das passieren? Möglich wäre, dass du eine Seite vorher den Sound lädst, und über Meta-Angaben oder headers den Browser anweist, den Sound im Cache zu behalten und von dort zu laden...
 
Danke, das werd ich mir mal anschauen.

mir ist gerade noch ein Beispiel eingefallen, simpel zwar, aber da geschieht genau das,
was ich brauche:

wenn man otto.de aufruft, ertönt auf der Stelle ein Pfeifen,
das immerhin auch aus mehreren Tönen besteht, eigentlich noch bevor alles andere geladen
und sichtbar ist. Im Quelltext kann ich nicht entdecken, wie das geht...

aber jetzt schau ich mir erstmal deinen link an

planet4.
 
Mit nem guten Auge oder nem Netzwerksniffer, ist zu erkennen, dass otto.de ungefähr 2-3mal weiterleitet... Das heisst, dein Sound wird auf einer Seite in einem Popup gestartet, unterdessen wird im Hintergrund (Hauptfenster) auf die Seite weitergeleitet.

Nicht sehr schoen finde ich...

[edit]
Nach ein paar Analysen hab ich das rausbekommen:

Dieses File wird in das Popup geladen: http://otto.de/exit/sound_close.html

Dadrin wird ein SWF (Flash) Film geladen der den Sound beinhaltet
HTML:
<html>
<head>
	<TITLE>OTTO - Ihr Online-Shop!</TITLE>
	<script>
		function closeMe() {
			this.window.close();
		}

		var window_left = (screen.width-50)/2;
		var window_top = (screen.height-50)/2;
		window.moveTo(window_left,window_top);	
	</script>				
</head>

<body bgcolor="White" onload="setTimeout('closeMe()',1700);"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0" width="-3" height="-1">
<param name="movie" value="otto_pfeifen.swf">
<param name="quality" value="high">
<embed src="otto_pfeifen.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="0" height="0">
</embed> 

</object> 
</body>
</html>
Nach 1,7 Sekunden schliesst sich dann das Fenster. Hier ist der Vorteil, der ein schnelles Laden ermöglicht, ist, dass der Sound über flash abgespielt wird. Mit Flash ist es möglich, Sounds zu streamen. Das heisst, dass der Sound schon abgespielt wird, wenn er noch gar nicht fertig geladen ist und das laden dann im Hintergrund passiert. Diese Lösung wollt ich dir eigentlich nicht ins Ohr legen, da du so nämlich deine Sounds in swf-Filme packen müsstest. Ich denke die JS-Funktion macht dasselbe mit weniger Aufwand. Probiert sie doch einfach mal aus...Wenns ned funzt kann ich dir ja weiterhelfen....


[/edit]
 
Zuletzt bearbeitet:
Das geht nicht mit JS, nur mit einem Plugin, dass Streaming beherrscht. Die JS Funktion vermutlich ein Atcion Script im flash, denn im Browser gibt es kein Sound() Objekt.
 
Oh ja...jetzt less ichs... Es gibt auch kein onrelease-Event, was eher en as/flash erinnert...

Naja, dann halt doch mit flash, ausser der schlaue weiss nen anderen Ausweg?

Wenn nicht, findest du im inet sicher irgendwo nen Flash-Sound-Streamer...
 
hallo jeko,

das find ich toll, was du da alles so über das otto-pfeifen herausgefunden hast

man müste also einen kleinen Flash-Film machen, den man quasi im Hintergrund aufruft...

und mit JS geht es also definitiv auch 2006 nicht :)

vielen Dank für eure Hilfe und Ideen!

planet4.
 
hi,

noch mal ne kleine Frage:
es funktioniert tatsächlich so, dass der sound sofort ertönt, wenn ich ihn mit flash einbinde,
nur weiß ich nicht, wie ich das Popup "im Hintergrund" öffne (ist jetzt wohl mehr ne Js-Frage)
so sieht's aus:
das steht in der "test.htm"
HTML:
<script type="text/javascript">
<!-- 
function popup(source,name,width,height)
{
	window.open(source,name,'width='+width+',height='+height+'');
}
//-->
</script>

</head>

<body onload="popup('tada.htm','tada','1px','1px')">

und das in "tada.htm", die sich dann "im Hintergrund" öffnen soll:

HTML:
<script>  

function closeMe() { 
	this.window.close(); 
} 

var window_left = (screen.width-50)/2; 
var window_top = (screen.height-50)/2; 
window.moveTo(window_left,window_top); 

</script>

</head>

<body onload="setTimeout('closeMe()',1700);">

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
 codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
 WIDTH=550 HEIGHT=400>
 <PARAM NAME=movie VALUE="tada.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF>  <EMBED src="flash/tada.swf" quality=high bgcolor=#FFFFFF  WIDTH=550 HEIGHT=400 TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED>
</OBJECT>

es öffnet sich dann immer ein Fenster, das ungefähr 30x50px groß ist...

planet4.
 
Vielleicht ist es besser mit JS ein iframe zu erzeugen und in diese dann die Datei zu laden, das kannst du dann komplett unsichtbar machen
 
Du könntest auch in dein Flash-Film noch Knöpfe zum Anhalten und Abspielen der Musik machen. Beim öffnen des Fensters setzt du den Focus aber gleich wieder auf das Elternfenster. Nun ist ein kleines Popup zwar geöffnet, jedoch ist es dann nicht einfach leer sondern hat eben die beiden Buttons "Abspielen" und "Anhalten". So ergibt sich daraus ein nützliches Tool für den User. Das ganze ist eigentlich doppelt vorteilhaft, denn wenn der User den Sound wirklich nicht will, kann er einfach das kleine popup schliessen, was bei einem iframe schlecht geht... :D
 
hallo jeko, hallo ein_schlauer,
das hört sich beides gut an und ich werde es ausprobieren.

in diesem Fall jetzt ist der iframe wohl angebrachter, da es sich um einen kurzen Sound handelt
(ein Quiz für Kinder und wenn die Frage richtig beantwortet ist, ertönt ein Tusch, "tada" eben :)

die andere Version mit dem Flash-Abspiel- und Anhalte-Button kann ich aber sicher auch mal gebrauchen.

Vielen Dank erstmal!
planet4.
 
hallo zusammen,

ich bin begeistert: das mit dem iframe ist eine tolle Lösung für so einen kleinen Sound, klappt super!

die Version mit dem Flash klappt in so weit, dass der sound beginnt, wenn man auf "on" klickt,
dass er aufhört, wenn man auf "off" klickt, will man ihn dann wieder einschalten, muss man,
warum auch immer, 2 mal auf "on" klicken :confused: (aber das wär jetzt wohl eher was
fürs Flash-Forum)

planet4.
 
Zurück
Oben