Python Raspberry Pi 4上的PyAudio无法获得音频输出

Python Raspberry Pi 4上的PyAudio无法获得音频输出,python,raspberry-pi,pyaudio,alsa,raspberry-pi4,Python,Raspberry Pi,Pyaudio,Alsa,Raspberry Pi4,有点不知所措。目前,下面的代码不能播放wav文件。我添加了一些print语句,发现while循环从未结束 我用的是覆盆子皮4。我安装PyAudio时使用 sudo apt-get install libasound-dev sudo apt-get install portaudio19-dec sudo apt-get install python3-pyaudio 奇怪的是录音作品。此外,使用aplay soundfile.wav也可以 def play(fileName): CH

有点不知所措。目前,下面的代码不能播放wav文件。我添加了一些print语句,发现
while
循环从未结束

我用的是覆盆子皮4。我安装PyAudio时使用

sudo apt-get install libasound-dev
sudo apt-get install portaudio19-dec
sudo apt-get install python3-pyaudio
奇怪的是录音作品。此外,使用
aplay soundfile.wav
也可以

def play(fileName):
    CHUNK = 1024

    wf = wave.open(fileName, 'rb')

    p = pyaudio.PyAudio()

    stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                    channels=2,
                    rate=wf.getframerate(),
                    output=True,
                    output_device_index=0)
  
    data = wf.readframes(CHUNK)

    print("starting loop")

    while len(data) > 0: # also tried: while data != ''
        stream.write(data)
        data = wf.readframes(CHUNK)

    print("finished loop")

    stream.stop_stream()
    stream.close()

    p.terminate()
        
play("soundfile.wav")

上面的代码会产生以下消息

Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.pcm.dsnoop.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5047:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM sysdefault
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.pcm.dsnoop.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5047:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM sysdefault
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM bluealsa
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM bluealsa
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM input
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

starting loop

如果有人对可能出现的问题有任何见解,我将不胜感激。

你解决过这个问题吗?没有。在这个项目中,我放弃了使用PyAudio,只使用了ALSA。奇怪的是,我在覆盆子Pi 3上执行了完全相同的示例,效果很好。也许这和Pi4.Im有点关系,但问题是我正在尝试的项目是在pyaudio上编写的。我还没弄明白为什么它不能和pi4一起工作。我能理解在这个问题上经历了很多挫折。听起来这对你来说不是一个解决方案,但我过去只是播放音频文件的黑客是
os.system(“aplay myFile.wav”)