如何在pygame中同时播放多个声音?
我有一直在后台运行的音乐和一些会在触发时播放声音的活动。音乐工作正常。如何在pygame中同时播放多个声音?
pygame.mixer.music.load(os.path.join(SOUND_FOLDER, 'WateryGrave.ogg'))
我的问题是,当有2个或更多的活动触发的声音,那么只有一个会被播放(不包括背景音乐),其余均为静音。有没有解决这个问题的方法?
您可以使用调音台添加声音,以不同的渠道:
pygame.mixer.Channel(0).play(pygame.mixer.Sound('sound\gun_fire.wav'))
pygame.mixer.Channel(1).play(pygame.mixer.Sound('sound\enemy_hit.wav'))
内的每个通道仍然可以一次只播放一个声音,但你可以组声音分为不同的渠道,如果他们需要打与此同时。
您可以添加更多的渠道是这样的:
pygame.mixer.set_num_channels(10) # default is 8
一个简单的例子。有关渠道的文档,请访问:
https://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Channel
你错误地与频道参数: >>频道参数用于指定是否使用单声道或立体声。 1为单声道,2为立体声。没有其他值被支持(负值被视为1,大于2的值为2) –
@DamienJALLON woops,事实上你是对的,我错了代码。我更新了我的答案。谢谢! – The4thIceman
有与在这里工作的答案类似的问题:http://stackoverflow.com/questions/15385727/pygame-mixer-only-plays-one一次听出来 – Benjie