This appears to get the total number of channels, not the number of active channels. However, I tried using get_busy(), but it still does not seem to work.

See the following modifications to my original code:

import pygame, time

for x in range(10):
   print("Starting iteration " + str(x))
   print("Initializing mixer")
   pygame.mixer.init()

   print("Loading sound")
   sound = pygame.mixer.Sound("foo.wav")
   print("Finding free channel")
   channel = pygame.mixer.find_channel()
print("Channel object: " + str(channel)) print("Setting volume")
   channel.set_volume(0.7)
print("Playing sound")
   channel.play(sound)
print("Sleeping until sound is finished playing...")
   while pygame.mixer.get_busy():
       time.sleep(1)

   print("Quitting mixer\n\n")
   pygame.mixer.quit()



This displays the same behaviour.

In response to a previous comment about using channel.stop() before quitting the mixer: this does not work either, as can be seen by adding channel.stop() after the get_busy loop above.


Has anyone tried running this code themselves? I am wondering if I am experiencing some obscure bug, possibly platform specific. I am running on OS X, but don't have access to other systems for troubleshooting. If someone else has access to a Windows or Linux box, and is able to prove if this fails on those systems as well, that may be useful.

Cheers

Ian Mallett wrote:
On 7/2/08, *Wyatt Olson* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Is there anything which can return a list of all currently active
    channels?

pygame.mixer.get_num_channels()
This returns 0 if none are playing and > 0 if there are.

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to