Python 当wav文件完成时,PyAudio readframes未结束

Python 当wav文件完成时,PyAudio readframes未结束,python,pyaudio,Python,Pyaudio,目前正在对PyAudio进行一些实验。我目前的目标是导入一个wav文件并让PyAudio为我播放它。播放它实际上是简单的部分-困难的部分是在wav文件完成后关闭流。现在,我的代码从未退出while循环。我听到wav文件,然后在代码继续不向流写入任何内容时静音 import wave import pyaudio wav = wave.open('./5secondbeat.wav') p = pyaudio.PyAudio() chunk = 1024 stream = p.open(form

目前正在对PyAudio进行一些实验。我目前的目标是导入一个wav文件并让PyAudio为我播放它。播放它实际上是简单的部分-困难的部分是在wav文件完成后关闭流。现在,我的代码从未退出while循环。我听到wav文件,然后在代码继续不向流写入任何内容时静音

import wave
import pyaudio

wav = wave.open('./5secondbeat.wav')
p = pyaudio.PyAudio()
chunk = 1024
stream = p.open(format = p.get_format_from_width(wav.getsampwidth()),
                channels = wav.getnchannels(),
                rate = wav.getframerate(),
                frames_per_buffer = chunk,
                output = True)

data = wav.readframes(chunk)
while data != '':    //enters this loop
    stream.write(data)    //I hear my short 5 second wave file
    data = wav.readframes(chunk)

print('hello')    //this never gets printed and my code continues running in the loop

stream.close() 
p.terminate()

我错过了什么

条件中的数据类型不对应。在检查之前,您可以尝试以下方法之一将其转换为相同的类型:

while data != b'':


太棒了,谢谢你。知道为什么我的数据类型与我在网上看到的大多数文档中的类型不一致吗?我只见过我怀疑这些文档可能是针对Python2的,我会像我一样冒险,你在运行Python3吗?在Python3中,字符串类型已经被更加严格地标准化,因此我怀疑
while data.decode("utf-8") != '':