如何在PyAudio中播放歌曲?
我看了这个问题:pyaudio帮助播放文件
虽然这个问题得到了回答,但我始终没有搞清楚到底应该把歌曲文件放在哪里。
这是播放WAVE文件的代码:
""" Play a WAVE file. """
import pyaudio
import wave
import sys
chunk = 1024
if len(sys.argv) < 2:
print "Plays a wave file.\n\n" +\
"Usage: %s filename.wav" % sys.argv[0]
sys.exit(-1)
wf = wave.open(sys.argv[1], 'rb')
p = pyaudio.PyAudio()
# open stream
stream = p.open(format =
p.get_format_from_width(wf.getsampwidth()),
channels = wf.getnchannels(),
rate = wf.getframerate(),
output = True)
# read data
data = wf.readframes(chunk)
# play stream
while data != '':
stream.write(data)
data = wf.readframes(chunk)
stream.close()
p.terminate()
我看过代码,但找不到任何地方可以插入音乐文件。当我在我的程序中按下“播放”按钮时(我用的是wxform做的程序),什么也没有播放。
4 个回答
1
我对Python和pyaudio了解得不多,但我发现当你运行这个程序时,歌曲文件是作为第一个参数传递给程序的。
只需要像这样更改并插入一个参数:
python your-python_file.py sound_file.wav
祝好。
1
我对pyaudio不太了解,但看起来很明显,当你运行这个程序时,歌曲文件是第一个传给程序的参数。看看这一行:wf = wave.open(sys.argv[1], 'rb')
。你只需要把sys.argv[1]
改成'c:/filename.wav'
或者其他文件名就可以了。
而且,如果你不传任何参数给程序,它是无法运行的,因为有一个if len(sys.argv) < 2
的判断块。
1
这行神奇的代码是:
wf = wave.open(sys.argv[1], 'rb')
这段话的意思是,脚本的第一个参数(sys.argv[1]
)被用作波形的输入。