有没有办法直接使用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)
编辑: 问题已经解决,如果您遇到类似的问题,请参阅下面的答案
答案 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文件作为字节。