Pygame无法打开音频文件

12 投票
8 回答
52219 浏览
提问于 2025-04-17 15:42
import pygame, time
from pygame.locals import *

soundObj = pygame.mixer.Sound('beeps.wav')
soundObj.play()

time.sleep(1) # wait and let the sound play for 1 second
soundObj.stop()

然后它出现了这个错误:

Traceback (most recent call last):
  File "C:/Users/Jauhar/Desktop/Python/sounds.py", line 4, in <module>
    soundObj = pygame.mixer.Sound('beeps.wav')
pygame.error: Unable to open file 'beeps.wav'

beeps.wav 文件和代码所在的 python 文件在同一个文件夹里。

我不明白为什么它不工作!

8 个回答

0

试着记录一下这些信息,你可能会找到问题所在。

import os
os.getcwd() # Log this line.
soundObj = pygame.mixer.Sound('beeps.wav')

这段信息应该能告诉你,当你的应用程序试图访问声音文件时,它在查找哪个文件夹。你可能会发现它是在你游戏文件夹的最上层。

12

Pygame(至少是2.9版本)不支持32位浮点的WAV音频文件。你需要把它重新编码成16位有符号的WAV格式(比如可以用Audacity这个软件来做)。

9

在使用pygame这个库之前,你必须先初始化你要用的模块,或者直接初始化整个pygame。

    pygame.mixer.pre_init(44100, 16, 2, 4096) #frequency, size, channels, buffersize
    pygame.init() #turn all of pygame on.

在你做任何pygame的事情之前,先做好这些。我强烈推荐这样做。

撰写回答