首页 文章

Pygame - 同时播放声音

提问于
浏览
3

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

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

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 中播放的声音在自己的线程上运行,但我确信 program/game 在完成播放声音之前不会终止。

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

2 回答

  • 3

    正如sr2222在评论中所说:

    文档称 mp3 支持仅限于音乐,而 Sound 只支持 OGG 和 WAV。您是否尝试过官方支持的格式之一?

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

  • 1

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

    points_channel = points_sound.play()
    

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

相关问题