Pygame错误:无法打开.wav文件

时间:2015-09-30 09:06:28

标签: python pygame

我的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'

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,无法使用此代码:

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

我得到了pygame错误:

  

无法打开文件'jingle3.wav'

通过将'jingle3.wav'加载到Audicity并将其从32位PCM更改为16位PCM .wav文件来解决问题。之后,pygame.mixer.Sound工作得很好。

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

答案 1 :(得分:0)

我不会在评论部分进行讨论,而是发布此内容 将def wait_finish(channnel):更改为def wait_finish(channel):并解决sounds.Sound而不是sounds.Sounds的问题后,该程序可以正常使用我机器上的.wav文件。
我确信调用error.wav文件的声音或声音的错误将解释"无法打开文件wrong.wav"消息。
如果pygame不喜欢该文件的某些内容,它可能无法播放它,这就是像以下一样的行:

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

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

在我的方框中,如果pygame不喜欢或找不到该文件,我完全没有任何错误,只有当发出请求时,扬声器会点击。
我现在可以建议的是,你尝试使用一个完全不同的wav文件到当前用于错误答案的文件,看看它是否有所作为。 为了记录,我将wait_finish函数更改为:

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