带Pyaudi的MP3

2024-05-21 05:21:13 发布

您现在位置:Python中文网/ 问答频道 /正文

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,也无法检测到media和所有其他模块。

有什么帮助吗?


Tags: importformatdatastreamopenwavemp3yes
1条回答
网友
1楼 · 发布于 2024-05-21 05:21:13

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

        import pyglet

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

        pyglet.app.run()

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

相关问题 更多 >