handle problem
Posted By: Nomi
handle problem - 06/28/10 21:39
hi leute ich wollte ein (handle)für sound machen geht aber nich es werden auch zwei beispiele gemacht was ist da richtig ?
und sleep(1) /// geht ürgend wie nich ? geht es nich mehr bei a7 ?
Beispiel:1
SOUND* whamm = "whamm.wav";
var whamm_handle;
...
whamm_handle = snd_play(whamm, 100, 0);
Beispiel:2
SOUND wave = "wave.wav";
var_nsave wavehandle;
...
wavehandle = snd_PLAY(wave,50,-75);
sleep(3); // 3 Sekunden warten
snd_stop(wavehandle); stoppe sound wave
Posted By: Superku
Re: handle problem - 06/28/10 21:44
sleep ist veraltet, ersetzt durch wait:
wait(-x): warte x Sekunden
wait(x): warte x Frames
Beispiel 1 müsste funktionieren. Wo ist das Problem?
Posted By: Nomi
Re: handle problem - 06/28/10 21:57
Die musik leuft weiter -.- ich weis auch net
SOUND* musik = "bosa.ogg";
var stopmusik ;
stopmusik = snd_play(musik,musiklaut,50);
snd_play (snd_play(musik,musiklaut,50);
wait(-3);
snd_stop(stopmusik);
und mit dem wait(-1) stimmt auch nich ganz überein mit einer sec.
Posted By: WretchedSid
Re: handle problem - 06/28/10 21:59
Es ist auch nur garantiert das mindestens 1 Sekunde gewartet wird (bei -1), eine maximale Wartezeit ist nicht möglich.
Posted By: Nomi
Re: handle problem - 06/28/10 22:24
ja habs es geht max wait(-60)oder
aber das mit dem handle geht immer noch nich -.-
Posted By: Superku
Re: handle problem - 06/28/10 22:26
Poste mal deinen Code, und zwar exakt so, wie du es probierst.
Posted By: Nomi
Re: handle problem - 06/28/10 22:35
eigendlich so wie oben
SOUND* musik = "bosa.ogg";
var stopmusik ;
stopmusik = snd_play(musik,musiklaut,50);
function stop ()
{
snd_stop(stopmusik);
}
function main ()
{
snd_play(musik,musiklaut,50);
}
naja ist jetzt nich wie bei mir aber so ungefär.
Posted By: WretchedSid
Re: handle problem - 06/28/10 22:38
In main weist du dem Handle gar nix zu, ergo ist stopmusik auch nicht valid.
Posted By: Superku
Re: handle problem - 06/28/10 23:02
Also der Code oben 3 Posts zuvor ist ziemlicher Murks, tut mir Leid, wenn ich das so sagen muss. Du solltest besser noch einmal die Tutorials durcharbeiten.
Zu deinem Problem:
musik_handle = snd_play(musik,50,0);
snd_play(musik,50,0);
Hier spielst du den Sound zweimal ab, warum?
Den zweiten wirst du nicht stoppen können, da beide ein unterschiedliches Handle haben. Dieses wird bei jedem Funktionsaufruf von snd_play neu generiert und ist nur für dieses gültig. Entferne einfach den unteren Aufruf.
Posted By: Nomi
Re: handle problem - 06/28/10 23:08
ok danke habs verstanden ich habe handle immer wieder neu gebunden mit dem
snd_play(musik,musiklaut,50);
wusste nicht das die musik da auch leuft
stopmusik = snd_play(musik,musiklaut,50);
hab immer gedacht das man damit nur "stopmusik" was zuweist.
Posted By: Superku
Re: handle problem - 06/28/10 23:10
Ok. Beim Funktionsaufruf hier:
stopmusik = snd_play(musik,musiklaut,50);
weiß snd_play gar nicht, dass links davon noch etwas steht. Sie liefert immer einen Rückgabewert, auch wenn du ihn nicht verwertest. Es gilt im Allgemeinen, dass von innen nach außen und von rechts nach links ausgewertet wird, falls dir das bei deinen Überlegungen hilft.