我已经在某些实例上添加了一个wav文件,但是当我将代码放在一个函数中并在其他地方调用时它不起作用。当我改变缩进时。我试过mp3,但同样的问题发生了。
此代码正常运行:
pygame.mixer.init()
pygame.mixer.music.load("../audio/Humi.wav")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy() == True:
continue
此代码不起作用:
def func():
pygame.mixer.init()
pygame.mixer.music.load("../audio/Humi.wav")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy() == True:
continue
以下是我收到的错误消息:
File "D:\GitANN.py", line 34, in Predicions
pygame.mixer.music.load("../audio/Humi.wav")
pygame.error: Couldn't open '../audi/Humi.wav'
答案 0 :(得分:0)
抱歉,我建议你在我的评论中做到获得音频文件的绝对路径是行不通的。我错过了在.wav文件的相对路径上有两个点..
前缀的事实。
这个想法的核心 - 获取并使用音频文件的绝对路径 - 仍然是可行的。它只需要做一点点不同(实际上有点容易)。
这在我测试它时起作用(波形文件的路径是否被函数内的pygame.mixer.music.load()
调用使用)。
注意:不是在函数中引用全局变量,而是在函数中添加路径参数,并将字符串作为参数传递给它。在函数之外只调用一次pygame.mixer.init()
可能更好,而不是每次调用它。
import os
import pygame
def func():
pygame.mixer.init()
pygame.mixer.music.load(wavpath) # Uses global variable.
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
pass
wavpath = os.path.abspath('../audio/Humi.wav')
func()