我一直很难让声音对象在我的程序中播放;我没有收到任何类型的错误消息,音频文件本身没有损坏,但是每次我尝试运行程序时,扬声器都没有发出任何声音。我尝试的第一件事是pygame.mixer.Sound.play()
以播放声音,当我没有听到声音时,我仔细检查以确保计算机上的扬声器没有静音,我把音量调高,然后我再试一次。我仍然没有听到它播放,所以我尝试创建一个 Channel 对象,并使用以下代码示例告诉程序在该通道上播放声音:
from time import sleep
from pygame import mixer
###
mixer.init() #initialize mixer module
#########
soundObj = mixer.Sound("mySound.wav") #create Sound object from .wav file
soundChn = mixer.Channel(0) #create Channel object to play sounds from
###
soundChn.play(soundObj, 0) #play soundObj on the channel once - ERROR IS HERE
sleep(soundObj.get_length()) #pause program for the duration of soundObj
当我运行程序以测试此代码是否有效时,出现了对soundChn.play(soundObj, 0)
的回溯,以及错误消息SystemError: Bad call flags in PyCFunction_Call. METH_OLDARGS is no longer supported!
谁能向我解释 - 请用最通俗的英语,因为我非常困惑 - 这个错误消息到底是什么意思以及我需要做什么才能解决我的问题?谢谢!
看起来您在计算机上安装的pygame版本是旧版本,使用已弃用的方法。
由于它似乎同时适用于我的计算机,因此我建议通过运行来更新pygame。
pip3 install --user pygame # or pip2 if using python2