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

时间:2017-02-22 14:13:14

标签: pygame

我的音乐总是在后台运行,而某些活动会在触发时发出声音。音乐很好用。

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

我遇到的问题是,当有2个或更多活动触发声音时,只会播放一个(不包括背景音乐),其余的都被静音。这有什么解决方案吗?

1 个答案:

答案 0 :(得分:3)

您可以使用调音台将声音添加到不同的声道​​:

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