如何在pygame中同时播放多个声音?

问题描述:

我有一直在后台运行的音乐和一些会在触发时播放声音的活动。音乐工作正常。如何在pygame中同时播放多个声音?

pygame.mixer.music.load(os.path.join(SOUND_FOLDER, 'WateryGrave.ogg')) 

我的问题是,当有2个或更多的活动触发的声音,那么只有一个会被播放(不包括背景音乐),其余均为静音。有没有解决这个问题的方法?

+1

有与在这里工作的答案类似的问题:http://*.com/questions/15385727/pygame-mixer-only-plays-one一次听出来 – Benjie

您可以使用调音台添加声音,以不同的渠道:

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

你错误地与频道参数: >>频道参数用于指定是否使用单声道或立体声。 1为单声道,2为立体声。没有其他值被支持(负值被视为1,大于2的值为2) –

+0

@DamienJALLON woops,事实上你是对的,我错了代码。我更新了我的答案。谢谢! – The4thIceman