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.
© 2024 lite-C Forums