繁体   English   中英

Pygame无法打开声音文件

[英]Pygame cannot open sound file

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 文件保存在同一目录中。

我不明白为什么它不起作用!

Pygame(至少 2.9 版)不支持 32 位浮点 WAV。 将其重新编码为有符号的 16 位 WAV(例如使用 Audacity)。

您不能使用 pygames 的库,除非您初始化您使用的模块或所有 pygame。

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

在你在 pygame 中做任何事情之前先做这些。 我推荐它。

尝试记录此信息,您可能会发现问题。

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

这应该会告诉您在尝试访问您的声音文件时您的应用程序正在查找的目录。 您可能会在游戏目录的底部找到它。

遇到类似的问题,我发现 .wav 文件的大小与问题有关。 使 .wav 文件更小使其无需对问题进行重大修改即可工作

如果我在播放声音之前创建一个显示表面,同样的程序对我有用。

    #! Python 3
'''
Making games with python chapter 2 program 5
'''
import pygame, sys, time
from pygame.locals import*

pygame.init()
DISPLAYSURF = pygame.display.set_mode((400, 300))
pygame.display.set_caption("Sound!!")

soundObj = pygame.mixer.Sound('badswap.wav')
soundObj.play()
time.sleep(1) #wait and let the sound play for X second
soundObj.stop()

while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
        pygame.display.update()

在 pygame.init() 之后有声音文件。 我遇到了这个问题,但是在放置声音文件之后它对我来说效果很好。

这对我有用:

pygame.mixer.init() 

刚遇到同样的问题,从 wav 文件中删除 ID 标签有效。 所以值得检查文件是否有!

我在这行中有错误

GAME_SOUNDS['die'] = pygame.mixer.Sound('gallery/audio/die.mp3')

所以有人帮我,我出错了

GAME_SOUNDS['die'] = pygame.mixer.Sound('gallery/audio/die.mp3')
NameError: name 'pygame' is not defined

请帮我

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM