Sound zufällig wiedergeben

d4k4

Erfahrenes Mitglied
Genau das ist meine Frage. Kann ich einen Sound zufällig wiedergeben lassen? Ach ja, kann man eine Animation auch zufällig wiedergeben ?
 
ja - kann man.
EInfacher wäre es aber einen film per random() bilder anzusprechen und in diesen Bildern dann die dazugehörigen sounds, da du ja sicher den passenden sound zur gegenwärtigen szene abspielen möchtest
 
nein eher nicht
ich möcht einfach nur einen sound vereinzelt weidergeben, unabhängig von animation oder sonstigem.
 
kannste auch mit random() machen...

Sorry, aber ne längere bzw. bessere Antwort fällt mir da auch nicht ein.
Solltest ein wenig durch die Hilfe blättern und wenn du dort noch immer nicht fündig geworden bist, kannste hier ja nochmal etwas gezielter Fragen(z.B. ob du externe Sounds haben willst, oder alles in einer .fla)
 
das ging ja schnell ;-)

na gut...dann lass mich ma kurz überlegen...

gehen wir vonner txt aus, die die mp3-namen hat:
mp3s=1.mp3#2.mp3#3.mp3
dann machen wir erstmal´n array aus den ganzen files
PHP:
sound = new LoadVars(); //loadvars-object
sound.Load("mp3s.txt"); //mp3s.txt laden
mp3s.onLoad = function(loaded) {
	if (loaded) { //wenn geladen
		mp3s = new Array(); //neues Array
		mp3s = this.mp3s.toString().split("#"); //unsere Trennzeichen(#) zum trennen rausfiltern
		for (i=0; i < mp3s.length; i++) { //für jede mp3 ein eigenes sound-object erstellen
			sound[i] = new Sound();
			sound[i].loadSound(mp3s[i]);
			sound[i].onLoad = function(loaded) {
				if (loaded) { //wenn mp3 geladen dann das Volumen hochdrehen
					sound[i].setVolume = 100;
				}
			}
		}
		playing = false;  //momentan wird keine mp3 abgespielt
		gotmp3s = true; //mp3s sind alle geladen
	}
}

gut...jetzt haben wir ein Array mit all unseren mp3-dateien, für jede mp3 ein eigenes sound object erstellt und die mp3s geladen - fehlt nur noch das zufällige abspielen

PHP:
soundrandomizer += random(4); //soundrandomizer wird mit jedem frame erhöht
if (soundrandomizer >= 40) { //wenn die durch zufall erhöhte Zahl größer 40, dann abspielen
	if ((gotmp3s == true) && (playing == false)) {
		playing = true; //jetzt speilen wir was ab
		sound[i].start();
		sound[i].onSoundComplete = function() {
			playing = false; //fertig mit abspielen
		}
	}
	soundrandomizer = 0;
}

soh...
So in etwa müsste das dann aussehen.Hab es dank geringer Zeit nicht getestet, Ansatz stimmt aber in jedem Fall. Dann wünsch ich dir mal viel Spass damit :)
 
hey wow erstma danke :eek:
es geht mir aber nur um eine mp3, habe also nicht mehrere Titel. Ich brauche also eigentlich nur den randomizer

naja mal schaun was ich rausbekomme
 
if (init == undefined) {
sound = new Sound();
sound.loadSound("sound.mp3");
init = false;
}

sound.onLoad = function(geladen) {
if(geladen) {
init = true; //geladen
}
}

sound.onSoundComplete = function() {
playing = false; //fertig mit abspielen
}

soundrandomizer += random(4); //soundrandomizer wird mit jedem Frame um einen Wert zwischen 0 und 3 erhöht
if (soundrandomizer >= 40) { //deine Zufallszahl bei der der sound abgespielt wird
if ((init == true) && (playing == false)) { //nur abspielen wenn geladen und nicht grade läuft
playing = true; //jetzt spielen wir was ab
sound.start();
}
soundrandomizer = 0; //wieder auf 0 setzen
}


auch nich getestet, hab wie gesagt keine Zeit - bin gegen 22.00Uhr wieder da und will bis dahin gehört haben ob das so OK ist.
Tschööö
 
ich enttäusch dich nur ungern, aber bei mit tut sich nix. der sound wird zwar reingeladen, aber er spielt sich nie ab.

kann ich es nicht so probieren?

PHP:
mySound = new Sound();
mySound.attachSound ("birds");

zahl = random(151); 

if (frame(zahl) == zahl) {
    mySound.start (0, 1);
}

nur das geht nicht, hab ich einen Fehler, oder funktioniert das Skript sowieso nicht?
 
Zuletzt bearbeitet:
irgendwie is da wirklich der Wurm drin...
die variable sound is auf jeden Fall voll daneben :)
das Soundobject geh ich auch voll falsch an...
das dein Sound nicht will hat mehrere Gründe...
1.du wolltest den Sound extern laden, aber sprichst einen aus deiner Library an.
2.hab ich von frame() noch nie was gehört... _currentFrame() vielleicht?

also folgendes hat bei mir geklappt...aber auch nur in halbherziger Weise...

Musst wahrscheinlich einen leeren MovieClip in deinen Film ziehen und das folgende script unter onClipEvent(enterFrame) { } verschachteln.

PHP:
if (initsound == undefined) {
	mySound = new Sound();
	mySound.loadSound ("http://www.deineDomain.de/birds.mp3", false);
	initsound = false;
} else if (initsound == false) {
	if (mySound.getBytesLoaded() == mySound.getBytesTotal()) {
		mySound.setVolume(100);
		initsound = true;
	}
} else if ((initsound == true) && (_currentFrame == random(151))) {
    mySound.start(0, 1);
}
 
Zurück