Is there a way to play mp3 from bytes directly using python? If not, can I convert the binary to a different audio format and make the binary playable?
Edit: The following code works for wav
files but not 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)
Edit: The problem has been solved, see my answer below if you're facing a similar issue
For anyone who might be facing a similar problem, this works
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)
I saw your pygame tag, so I'll to do this in pygame. Pygame can load files from bytes with this line: sound = pygame.mixer.Sound(bytes)
or sound = pygame.mixer.Sound(buffer=bytes)
. I can't guarantee this will work with mp3 files, though, you may need to use OGG or WAV files, as bytes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With