我看了这个问题:pyaudio help play a file
虽然这个问题确实得到了回答,但我从来没有得到一个明确的答案,即实际上把歌曲文件放在哪里。
这是播放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条答案
按热度按时间2fjabf4q1#
神奇的台词是:
这似乎表明脚本的第一个参数(
sys.argv[1]
)用作wave的输入。lyr7nygr2#
我对pyaudio一无所知,但很明显,当你执行程序时,歌曲文件是传递给程序的第一个参数,看看这一行:就改成
sys.arg[1]
改成'c:/filename.wav'
什么的。如果你不给它传递任何参数,程序就不会像现在写的那样运行。
pokxtpni3#
下面是一个解决方案:注解If语句,直接添加文件名播放
bq9c1y664#
对python和pyaudio了解不多,但似乎歌曲文件是执行程序时传递给程序的第一个参数。
只需插入如下参数:
问候。