3
import pyaudio
import wave

chunk = 1024
wf = wave.open('yes.mp3', 'rb')
p = pyaudio.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 data != '':
    stream.write(data)
    data = wf.readframes(chunk)

stream.close()
p.terminate()

不管我怎么写,在尝试多种方法时,我似乎在终端中不断收到以下错误:

raise Error, 'file does not start with RIFF id'

我会使用 pyglet,但即使我能够导入 pyglet,也不会检测到媒体和所有其他模块。

有什么帮助吗?

4

1 回答 1

1

您正在wave尝试打开不是wav. 相反,您正在尝试打开一个mp3文件。该wave模块只能打开wav文件,因此您需要mp3wav. 以下是使用 pyglet 播放mp3文件的方法:

        import pyglet

        music = pyglet.resource.media('music.mp3')
        music.play()

        pyglet.app.run()

它会比您尝试的方法简单得多。你在使用 pyglet 时遇到了什么错误?

于 2013-10-22T22:44:37.427 回答