与Pyaudio的MP3

时间:2013-10-22 22:03:40

标签: python mp3 playback pyaudio

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。

有任何帮助吗?

1 个答案:

答案 0 :(得分:1)

您正在使用wave尝试打开非wav的文件。相反,您正在尝试打开mp3文件。 wave模块只能打开wav个文件,因此您需要将mp3转换为wav。以下是如何使用pyglet播放mp3文件:

        import pyglet

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

        pyglet.app.run()

这比你尝试的方法简单得多。你用pyglet得到了什么错误?