python - 为什么Pygame只播放最后一个声音?

标签 python audio pygame

我得到了这段代码:

a_0 = pygame.mixer.sound("a.mp3",)
a = pygame.mixer.music

b_0 = pygame.mixer.music.load("b.mp3")
b = pygame.mixer.music

c_0 = pygame.mixer.music.load("c.mp3",)
c   = pygame.mixer.music

d_0 = pygame.mixer.music.load("d.mp3")
d   = pygame.mixer.music

e_0 = pygame.mixer.music.load("e.mp3",)
e = pygame.mixer.music

当我想使用以下声音播放d (that emans d.mp3)时:
d.play()

它只会播放列表中的最后一个声音,这意味着e.mp3而不是d.mp3
我在这里做错了什么?

最佳答案

pygame.music.mixer.load()不返回任何内容。因此,您不能将其分配给变量。它加载到混音器中,并准备播放。 Documentation

您需要具有要播放的歌曲的列表或字典,然后每当要播放一首歌曲时,都需要将其加载到调音台中并进行播放:

def play_song(name):
    pygame.mixer.music.load(name)
    pygame.mixer.music.set_volume(0.3)  # you can also set the volume
    pygame.mixer.music.play(loops=-1)

这是专门针对mixer.music的。
pygame.mixer.Sound返回一个Sound对象,您可以将其保存以供以后使用:documentation。因此,您可以将声音目录加载到python列表中。
sounds_list = []
sounds_list.append(pygame.mixer.Sound('gun_fire.wav'))
sounds_list.append(pygame.mixer.Sound('coin_pickup.wav'))
# add more sounds

关于python - 为什么Pygame只播放最后一个声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53770122/

相关文章:

python - 为什么它在我的 Tkinter 程序中显示空白而不是图片?

python - 由于耗尽了所有 RAM,将大量 Pandas df 文本数据保存到磁盘会导致 Colab 崩溃。有解决方法吗?

python,如何知道一年中的周数,周六为一周的第一天

html - 在 HTML5 音频播放器上添加和删除控件

javascript - 在第一页上单击按钮时,将声音播放到第二个网页

python - 如何修复 Python 游戏中的图像?

python - 使用 Python/urllib/beautifulsoup 从 URL 批量下载文本和图像?

android - BLE 音频作为 Android 上的麦克风输入

python-3.x - 使用 Pyinstaller 制作 .exe 后 Pygame 未加载 png

python - 为什么我的简单 pygame 会滞后?