sound reproducir read playsound play python audio mp3

reproducir - Reproducción de canciones mp3 en python



read mp3 python (11)

Quiero reproducir mi canción (mp3) de Python, ¿me pueden dar un comando más simple para hacer eso?

Esto no es correcto:

import wave w = wave.open("e:/LOCAL/Betrayer/Metalik Klinik1-Anak Sekolah.mp3","r")


Como ya no se sugirió aquí, pero es probablemente una de las soluciones más fáciles:

import subprocess def play_mp3(path): subprocess.Popen([''mpg123'', ''-q'', path]).wait()

Depende de cualquier reproductor compatible con mpg123, que obtienes por ejemplo para Debian usando:

apt-get install mpg123

o

apt-get install mpg321


En este punto, ¿por qué no mencionar python-audio-tools ?

Es la mejor solución que encontré.

(Necesitaba instalar libasound2-dev , en Raspbian)

Extracto del código basado libremente en:
https://github.com/tuffy/python-audio-tools/blob/master/trackplay

#!/usr/bin/python import os import re import audiotools.player START = 0 INDEX = 0 PATH = ''/path/to/your/mp3/folder'' class TracklistPlayer: def __init__(self, tr_list, audio_output=audiotools.player.open_output(''ALSA''), replay_gain=audiotools.player.RG_NO_REPLAYGAIN, skip=False): if skip: return self.track_index = INDEX + START - 1 if self.track_index < -1: print(''--> [track index was negative]'') self.track_index = self.track_index + len(tr_list) self.track_list = tr_list self.player = audiotools.player.Player( audio_output, replay_gain, self.play_track) self.play_track(True, False) def play_track(self, forward=True, not_1st_track=True): try: if forward: self.track_index += 1 else: self.track_index -= 1 current_track = self.track_list[self.track_index] audio_file = audiotools.open(current_track) self.player.open(audio_file) self.player.play() print(''--> index: '' + str(self.track_index)) print(''--> PLAYING: '' + audio_file.filename) if not_1st_track: pass # here I needed to do something :) if forward: pass # ... and also here except IndexError: print(''/n--> playing finished/n'') def toggle_play_pause(self): self.player.toggle_play_pause() def stop(self): self.player.stop() def close(self): self.player.stop() self.player.close() def natural_key(el): """See http://www.codinghorror.com/blog/archives/001018.html""" return [int(s) if s.isdigit() else s for s in re.split(r''(/d+)'', el)] def natural_cmp(a, b): return cmp(natural_key(a), natural_key(b)) if __name__ == "__main__": print(''--> path: '' + PATH) # remove hidden files (i.e. ".thumb") raw_list = filter(lambda element: not element.startswith(''.''), os.listdir(PATH)) # mp3 and wav files only list file_list = filter(lambda element: element.endswith(''.mp3'') | element.endswith(''.wav''), raw_list) # natural order sorting file_list.sort(key=natural_key, reverse=False) track_list = [] for f in file_list: track_list.append(os.path.join(PATH, f)) TracklistPlayer(track_list)


Estás intentando jugar un .mp3 como si fuera un .wav .

Podría intentar usar pydub para convertirlo a formato .wav , y luego alimentarlo en pyAudio.

Ejemplo:

from pydub import AudioSegment song = AudioSegment.from_mp3("original.mp3") song.export("final.wav", format="wav")

Alternativamente, use pygame , como se menciona en la otra respuesta.


Obtenga el módulo VLC Python , vlc.py, que brinda soporte completo para libVLC y pop en paquetes de sitio. Entonces:

>>> import vlc >>> p = vlc.MediaPlayer("file:///path/to/track.mp3") >>> p.play()

Y puedes detenerlo con:

>>> p.stop()

Ese módulo ofrece mucho más que eso (como casi todo lo que puede hacer el reproductor multimedia VLC), pero ese es el medio más simple y efectivo de reproducir un MP3.

Podrías jugar un poco con os.path para que encuentre la ruta del MP3 para ti, dado el nombre del archivo y posiblemente limitando los directorios de búsqueda.

La documentación completa y los módulos pre-preparados están disponibles here . Las versiones actuales son compatibles con Python 3.


Otra opción rápida y simple ...

import os os.system(''start path/to/player/executable path/to/file.mp3'')

Ahora es posible que deba hacer algunos pequeños cambios para que funcione. Por ejemplo, si el jugador necesita argumentos adicionales o no necesita especificar la ruta completa. Pero esta es una forma simple de hacerlo.


Prueba esto. Es simplista pero quizás no sea el mejor método.

from pygame import mixer # Load the required library mixer.init() mixer.music.load(''e:/LOCAL/Betrayer/Metalik Klinik1-Anak Sekolah.mp3'') mixer.music.play()

Tenga en cuenta que la compatibilidad con MP3 es limitada .

La instalación es simple -

pip install pygame


Si está trabajando en el cuaderno Jupyter (anteriormente IPython), puede

import IPython.display as ipd ipd.Audio(filename=''path/to/file.mp3'')


Una solución simple:

import webbrowser webbrowser.open("C:/Users/Public/Music/Sample Music/Kalimba.mp3")

aclamaciones...


Ver también playsound

pip install playsound import playsound playsound.playsound(''/path/to/filename.mp3'', True)


from win32com.client import Dispatch

wmp=Dispatch(''WMPlayer.OCX'')

liste=[r"F:/Mp3/rep/6.Evinden Uzakta.mp3", r"F:/Mp3/rep/07___SAGOPA_KAJMER___BIR__I.MP3", r"F:/Mp3/rep/7.Terzi.mp3", r"F:/Mp3/rep/08. Rüya.mp3", r"F:/Mp3/rep/8.Battle Edebiyatı.mp3", r"F:/Mp3/rep/09_AUDIOTRACK_09.MP3", r"F:/Mp3/rep/02. Sagopa Kajmer - Uzun Yollara Devam.mp3", r"F:/Mp3/rep/2Pac_-_CHANGE.mp3", r"F:/Mp3/rep/03. Herkes.mp3", r"F:/Mp3/rep/06. Sagopa Kajmer - Istakoz.mp3" for x in liste: mp3=wmp.newMedia(x) wmp.currentPlaylist.appendItem(mp3) wmp.controls.play()


import os os.system(''file_path/filename.mp3'')