【问题标题】:Pygame error: not able to open .wav filePygame 错误:无法打开 .wav 文件
【发布时间】:2015-09-30 09:06:27
【问题描述】:

我的 Pygame 程序有问题。我需要帮助。 wav 文件与 python 文件位于同一目录中。 我在终端 Python3 中运行它:

import pygame.mixer
sounds = pygame.mixer
sounds.init()

def wait_finish(channel):
    while channel.get_busy():
        pass

asked = 0
true = 0
false = 0

choice = str(input("Push 1 for true, 2 for false, 0 to end"))
while choice != '0':
      if choice == '1':
             asked = asked + 1
             true = true + 1
             s = sounds.Sound("correct.wav")
             wait_finish(s.play())
      if choice == '2':
             asked = asked + 1
             false = false + 1
             s = sounds.Sound("wrong.wav")
             wait_finish(s.play())
      choice = str(input("Push 1 for true, 2 for false, 0 to end"))

print ("you asked" +str(asked) + "questions")
print ("there were" +str(false) + "wrong answers")
print ("and" + str(true) + "correct answers")

它抛出- pygame.error:

无法打开文件'correct.wav'

【问题讨论】:

  • 剪切并粘贴确切的错误
  • Pygame cannot open sound file 的可能重复项
  • 你有 `s =sounds.Sound("correct.wav")` 和 s = sounds.Sounds("wrong.wav") ,这是正确的声音或声音
  • @user696 请确认Alex.S的建议你试过了吗?
  • 在我在这里描述我的问题之前,我看到了 Alex.S 的解决方案。是的,感谢 Saxony 的 Rolf,我修正了 sound.sound() 的错误,但仍然无法正常工作。我已经阅读了网上的其他建议。我正在使用 Linux Xubuntu 和 python3。

标签: python pygame


【解决方案1】:

我遇到了同样的问题,无法让这段代码工作:

correctSound = pygame.mixer.Sound('jingle3.wav')

我收到 pygame 错误:

无法打开文件“jingle3.wav”

通过将“jingle3.wav”加载到 Audicity 并将其从 32 位 PCM 更改为 16 位 PCM .wav 文件解决了问题。之后 pygame.mixer.Sound 完美运行。

我在这个论坛上得到了这个提示,它奏效了!

【讨论】:

  • 什么论坛,具体来说,你有原始链接吗?
【解决方案2】:

与其在 cmets 部分进行讨论,我将发布此内容。
一旦将def wait_finish(channnel): 更改为def wait_finish(channel): 并且sounds.Sound 而不是sounds.Sounds 的问题得到解决,该程序就可以在我的机器上正常处理普通的.wav 文件。
我确信调用要播放的 wrong.wav 文件的 Sound 或 Sounds 错误将解释“无法打开文件 wrong.wav”消息。
如果 pygame 不喜欢该文件的某些内容,它可能不会播放它,这就是这样的一行:

sounds.pre_init(frequency=22050, size=-16, channels=2, buffer=4096)

(在sounds.init() 之前调用)可能会起作用。
(注意,您可能必须使用不同的缓冲区选项,因为我正在使用 pygame for python 2.7 进行测试)

在我的盒子上,如果 pygame 不喜欢或找不到该文件,我不会收到任何错误,但在播放调用时扬声器会单击。
在这一点上,我只能建议您尝试使用与当前用于错误答案的 wav 文件完全不同的 wav 文件,看看它是否有所作为。 只是为了记录,我将您的 wait_finish 函数更改为:

def wait_finish(channel):
    while channel.get_busy():
        pygame.time.Clock().tick(10)

【讨论】:

  • 几天前我重新安装了Linux,而不是安装Ubuntu,我安装了Xubuntu,它对我的​​旧电脑来说是最好的,现在没有问题,我的程序运行良好,我可以听到声音, .wav 文件没有问题。感谢您抽出宝贵时间,尤其是萨克森的 Rolf,感谢您的建议和耐心,我是 PC 编程的初学者。
猜你喜欢
  • 1970-01-01
  • 2022-06-25
  • 1970-01-01
  • 2016-05-25
  • 2019-02-25
  • 2016-04-12
  • 1970-01-01
  • 1970-01-01
  • 2021-02-14
相关资源
最近更新 更多