如何从字节中播放mp3?

时间:2017-05-12 15:44:15

标签: python pygame mp3 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)

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

2 个答案:

答案 0 :(得分:4)

对于可能遇到类似问题的人来说,这是有效的

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)

答案 1 :(得分:2)

我看到了你的pygame标签,所以我将在pygame中这样做。 Pygame可以使用以下行加载来自字节的文件:sound = pygame.mixer.Sound(bytes)sound = pygame.mixer.Sound(buffer=bytes)。我无法保证这将适用于mp3文件,但是,您可能需要使用OGG或WAV文件作为字节。