pyaudio:基于pyaudio利用Python编程实现播放音频mp3、wav等格式文件

时间:2021-12-11 14:48:38

基于pyaudio利用Python编程实现播放音频mp3、wav等格式文件

T1、while循环输出数据流的方法

def play():
    chunk=1024  #2014kb
    wf=wave.open(r"16k.wav",'rb')
    p=PyAudio()
    stream=p.open(format=p.get_format_from_width(wf.getsampwidth()),channels=wf.getnchannels(),rate=wf.getframerate(),output=True)

    data = wf.readframes(chunk)  # 读取数据
    print(data)
    while data != '':  # 播放  
        stream.write(data)
        data = wf.readframes(chunk)
        print('while循环中!')
        print(data)
    stream.stop_stream()   # 停止数据流
    stream.close()
    p.terminate()  # 关闭 PyAudio
    print('play函数结束!')
pyaudio:基于pyaudio利用Python编程实现播放音频mp3、wav等格式文件
T2、while循环输出+if判断数据流的方法
def play():
    chunk=1024  #2014kb
    wf=wave.open(r"16k.wav",'rb')
    p=PyAudio()
    stream=p.open(format=p.get_format_from_width(wf.getsampwidth()),channels=wf.getnchannels(),rate=wf.getframerate(),output=True)

    data = wf.readframes(chunk)  # 读取数据
        
    while True:
        data=wf.readframes(chunk)
        if data=="":
            break
        stream.write(data)
    stream.stop_stream()   # 停止数据流
    stream.close()
    p.terminate()  # 关闭 PyAudio
    print('play函数结束!')

if __name__ == '__main__':
    audio_file='16k.wav'  #指定录音文件
    play()                #播放录音文件