2017-05-12 63 views
2

有没有办法使用python直接从字节播放mp3?如果不是,我可以将二进制文件转换为不同的音频格式并使二进制文件可以播放?如何从字节播放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

我想弄清楚,你有.MP3格式的文件,你想它使用Python玩?你使用的是什么操作系统? – cameronroytaylor

+0

我不会,我正在流式传输mp3二进制文件,我不想将它写入磁盘。我使用的是Mac,但是Linux的解决方案也很好。 – tushar

+1

只是为了澄清当你说二进制文件,它是一个振幅数组,还是它实际上是MP3格式?当你说流媒体时,你的意思是它必须实时完成吗? – cameronroytaylor

回答

1

对于谁可能面临类似的问题的人,这个工程

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) 
0

我看到我的回答如下你的pygame标签,所以我会在pygame中做到这一点。 Pygame可以用这一行从字节加载文件:sound = pygame.mixer.Sound(bytes)sound = pygame.mixer.Sound(buffer=bytes)。我不能保证这将适用于mp3文件,但是,您可能需要使用OGG或WAV文件作为字节。

+0

我在帖子中添加了一段代码。这适用于'wav',但'mp3'文件声音损坏。 – tushar