ChannelPlaying bug!
BlitzPlus Forums/BlitzPlus Programming/ChannelPlaying bug!
| ||
I loaded a wav or ogg and I want to know when it's finished playing but ChannelPlaying() always returns 0. So, how can I workaround it? |
| ||
You need to post your code, the ChannelPlaying command works fine. |
| ||
[CODE] Sound=LoadSound("sound.wav") ; Load the sound Channel=PlaySound(Sound) DebugMessage(ChannelPlaying(Channel)) [/CODE] I just did a small example, I didnt test it but it should give you an idea. |
| ||
That should be 'DebugLog(ChannelPlaying(Channel))'... ;) |
| ||
I dont use that command so I made the best guess. |
| ||
There may, on some cards, be a short delay between initialising the sound and playing the sound where ChannelPlaying will return 0. |
| ||
Thanks for your infos. My sound is about 5 s. Maybe it's too short for ChannelPlaying. I will try it on a longer sound and will tell you. |
| ||
I tried with a mp3 file (6 minutes length) and I still have the same problem: ChannelPlaying always returns 0. The most strange is that when I tried with Blitz3D demo: ChannelPlaying bugs : Memory Access Violation!! What do you think about that? My sound card is not compatible with Blitz? However I never had pb with commercial games full of sounds. |
| ||
post your code please. |
| ||
Yeah Walter, if you could post your code or even just a sample to show the bug you're getting it will help everyone assist you. Might be worth posting your system specs too. |
| ||
All along the music, the value 0 is displayed: Graphics(640,480,0,2) SetBuffer BackBuffer() snd=LoadSound("zic.mp3") PlaySound(snd) While Not KeyHit(1) Cls() Text 0,0,ChannelPlaying(snd) Flip() Wend |
| ||
Ah, now the problem is obvious, you're not using the command correctly. This is how it should be (as MrSAK showed earlier): Graphics(640,480,0,2) SetBuffer BackBuffer() snd=LoadSound("zic.mp3") chan=PlaySound(snd) ; <<<< You have to assign the Playsound to a channel variable While Not KeyHit(1) Cls Text 0,0,ChannelPlaying(chan) ; <<<< now you check the channel variable (not the snd) Flip Wend It's a bit confusing at first, but once you play around with it everything becomes clear. Note: I've used 'chan' here but it can be anything you like... chan, channel, chan_snd Hope this helps :) |
| ||
Aaaahhh!! ok! :) Yes, it's a bit confusing. It's not like with the movie: chan=OpenMovie("...") and MoviePlaying(chan) where you use the channel of the open function. For the sound, I didn't noticed MrSak used the channel of the Play function. I'm really not careful. Sorry for my careless mistake. Thank you all guys, I'm reassured now! |