如何从字节中播放mp3?

tus*_*har 6 python mp3 pygame pyaudio

有没有办法直接使用python从字节播放mp3?如果没有,我可以将二进制转换为不同的音频格式并使二进制可播放吗?

编辑:以下代码适用于wav文件但不适用mp3

from pygame import mixer, time

mixer.pre_init(44100, -16, 2, 2048)
mixer.init()

data = open('filename.mp3', 'rb').read()
sound = mixer.Sound(buffer=data)

audio = sound.play()
while audio.get_busy():
    time.Clock().tick(10)
Run Code Online (Sandbox Code Playgroud)

编辑:问题已经解决,如果您遇到类似的问题,请参阅下面的答案

tus*_*har 6

对于可能面临类似问题的任何人,此方法都有效

from pydub import AudioSegment
from pydub.playback import play
import io

data = open('filename.mp3', 'rb').read()

song = AudioSegment.from_file(io.BytesIO(data), format="mp3")
play(song)
Run Code Online (Sandbox Code Playgroud)

  • 尝试过这个,但是出现 ffmpeg 错误,我的问题是您是否通过 pip 安装了 ffmpeg 或者将其安装到您的操作系统中? (2认同)