Pygame,无法导入声音

Posted

技术标签:

【中文标题】Pygame,无法导入声音【英文标题】:Pygame, cannot import sound 【发布时间】:2017-03-08 13:17:03 【问题描述】:

我已广泛尝试解决此问题,但我找不到一个可以解决此问题的解决方案,有什么建议吗?

import pygame
from pygame.locals import *
pygame.init()
pygame.mixer.init
pygame.display.set_caption("hey press 1234567890-= and i'll press back!")

a_1 = pygame.mixer.Sound("a1.mp3")
a_2 = pygame.mixer.Sound("a2.mp3")
a_3 = pygame.mixer.Sound("a3.mp3")
a_4 = pygame.mixer.Sound("a4.mp3")
a_5 = pygame.mixer.Sound("a5.mp3")
a_6 = pygame.mixer.Sound("a6.mp3")
a_7 = pygame.mixer.Sound("a7.mp3")
a_8 = pygame.mixer.Sound("a8.mp3")
a_9 = pygame.mixer.Sound("a9.mp3")
a_10 = pygame.mixer.Sound("a10.mp3")
a_11 = pygame.mixer.Sound("a11.mp3")
a_12 = pygame.mixer.Sound("a12.mp3")

if event.type == KEYDOWN:
    a_1.Sound.play()
    if event.key == K_1:
        a_1.play()

它返回的错误是 回溯(最近一次通话最后): 文件“\fs-03\14AColeman$\Documents\PYTHONFILES\wetransfer-5540b1\MUSBOT.py”,第 7 行,在 a_1 = pygame.mixer.Sound("a1.mp3") pygame.error: 无法打开文件'a1.mp3'

【问题讨论】:

尝试将其中一个 mp3 文件转换为 .ogg 格式并测试它是否适用于该文件。 【参考方案1】:

不确定您的问题是加载音频文件还是播放音频文件? 如果它正在加载。尝试从您的python 脚本所在的当前文件夹加载和播放文件,然后查看它是否可以播放。

如果加载后无法播放,请尝试将.wav 文件播放为 pygame 可以轻松播放 .wav 文件,所以在转到 mp3 之前先尝试一下。

如果您确实需要播放 mp3 ,请在继续捕获键盘事件之前尝试使用以下功能来查看它是否可以正常加载和播放。

import pygame
from Tkinter import *

mp3 = "yourMP3file.mp3"
afile = mp3
root = Tk()
pygame.init()
pygame.mixer.init()
pygame.mixer.music.load(afile)
pygame.mixer.music.play()
root.mainloop()

【讨论】:

【参考方案2】:

来自 pygame 声音的文档:

“声音可以从 OGG 音频文件或未压缩的 WAV 加载”

https://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Sound

我会推荐不同的文件格式或转换您拥有的文件格式。有时 mp3 会起作用,但这取决于比特率

【讨论】:

以上是关于Pygame,无法导入声音的主要内容,如果未能解决你的问题,请参考以下文章

我无法在32位版本的IDLE上导入pygame。

我需要帮助在 Replit(Pygame) 上播放声音

导入pygame时“通用包装器中没有匹配的架构”

win7系统下运行python3.7的类导入问题

为啥 PyGame 不播放声音

PyGame 更改预设声音字体