一尘不染

如何用pyaudio播放音频文件?

python

我不了解pyaudio的示例材料。看来他们写了整个小程序,这让我失望了。

如何只播放一个音频文件?

格式不是问题,我只想知道播放音频文件所需的最少代码。


阅读 653

收藏
2021-01-20

共1个答案

一尘不染

这个例子对我来说似乎很清楚。您只需将示例另存为playwav.py调用即可:

python playwav.py my_fav_wav.wav

带有一些额外注释的wave示例:

import pyaudio
import wave
import sys

# length of data to read.
chunk = 1024

# validation. If a wave file hasn't been specified, exit.
if len(sys.argv) < 2:
    print "Plays a wave file.\n\n" +\
          "Usage: %s filename.wav" % sys.argv[0]
    sys.exit(-1)

'''
************************************************************************
      This is the start of the "minimum needed to read a wave"
************************************************************************
'''
# open the file for reading.
wf = wave.open(sys.argv[1], 'rb')

# create an audio object
p = pyaudio.PyAudio()

# open stream based on the wave object which has been input.
stream = p.open(format =
                p.get_format_from_width(wf.getsampwidth()),
                channels = wf.getnchannels(),
                rate = wf.getframerate(),
                output = True)

# read data (based on the chunk size)
data = wf.readframes(chunk)

# play stream (looping from beginning of file to the end)
while data != '':
    # writing to the stream is what *actually* plays the sound.
    stream.write(data)
    data = wf.readframes(chunk)

# cleanup stuff.
stream.close()    
p.terminate()
2021-01-20