Pygame - 同时播放声音

时间:2012-12-10 22:17:21

标签: python audio pygame

我正在使用Pygame制作游戏,而我正在尝试做的是为每个关卡设置一个主音,并在收集点时听到一些默认声音(例如)

所以,我使用以下方式加载主级音乐:

pygame.mixer.music.load(music_file)
pygame.mixer.music.play(-1)

现在,我想做的是每当玩家收集一个点时播放特定的声音。我无法停止播放音乐:

pygame.mixer.music.stop()
pygame.mixer.music.load(point_music)
pygame.mixer.music.play()

因为关卡的音乐会停止播放。

所以,我尝试过这样的事情:

points_sound = pygame.mixer.Sound("point.mp3")
points_sound.play()

我知道在pygame中播放的声音在其自己的线程上运行,但我确信程序/游戏在完成播放声音之前不会终止。

长话短说:玩家可以收集积分,但我无法让pygame播放收集点声音。

2 个答案:

答案 0 :(得分:3)

正如sr2222在评论中所说:

  

Docs称mp3支持仅限于音乐,而且只支持OGG和WAV   Sound支持。你尝试过其中一种格式吗?   官方支持?

为您的声音尝试OGG或WAV格式,这应该有用。

答案 1 :(得分:1)

points_sound.play()应该返回一个通道对象。此对象是播放声音所必需的。

points_channel = points_sound.play()

这让我在自己的情况下得到了帮助。