MX2004 - Streaming Sound mit Volumenregelung

black-dog

Erfahrenes Mitglied
Hi Folks

Ich hab ein kleines Problem:

Für eine Website lade ich nen Streaming-Sound von einem Server. Falls jemand den Sound zur Site nicht hören will, sollte er die möglichkeit haben, diesen auszuschalten. Da beim aus- und dann beim erneuten Einschalten der Stream von neuem beginnt, hab ich mir gedacht, dass ich doch einfach das Soundvolumen auf 0 bzw. 100 setzen könnte. Leider funktioniert das nicht wirklich! Der Sound fängt an, wie wild umherzuspringen, sobald ich den Button einbaue.

Code fürs Streaming

stop();
Code:
var mySound = new Sound(); 
mySound.loadSound("http://www.geschenk-kiosk.ch/sieber/hinnergrund.mp3", true);  
mySound.start(0, 60000);

stop();

Code für Button Frame 1

Code:
on (release) {
	mySound.setVolume(0);
	gotoAndStop(2);
}

Code für Button Frame 2

Code:
on (release) {
	mySound.setVolume(100);
	gotoAndStop(1);
}

Ach ja, im Gegensatz zu den meisten Beispielen, die's hier auf tutorials.de gibt, ist mein on auch gleichzeitig mein off-Button. D.h. beim klicken auf «Sound ON» wechselt der Text in «Sound OFF», weshalb ich 2 Frames benutze.

Was mache ich falsch?
 
Hi,

das Problem ist, dass Du mit gotoAndPlay(1) auf der Hauptzeitleiste wieder in den ersten Frame springst, wo folgendes natürlich sofort wieder ausgeführt wird:
Code:
var mySound = new Sound(); 
mySound.loadSound("http://www.geschenk-kiosk.ch/sieber/hinnergrund.mp3", true);  
mySound.start(0, 60000);
Damit wird der Sound jedesmal neu erstellt und geladen, sobald Du den Button im zweiten Frame drückst.

Lösung: Arbeite nur mit einem Frame auf der Hauptzeitleiste (was man bei dynamischen Dateien sowieso immer machen sollte) und gib dem Button einen Maushandler, der sowohl zum Muten als auch zum Einschalten dient:
Code:
on(release) {
    if (_root.stopped == undefined || _root.stopped == false) {
        _root.stopped = true;
    } else {
        _root.stopped = false;
    }
    mySound.setVolume((_root.stopped)? 0 : 100);
}

Gruß
.
 
Zurück