Je veux jouer ma chanson (mp3) à partir de python, pouvez-vous me donner la commande la plus simple pour le faire?
Ce n'est pas correct:
import wave
w = wave.open("e:/LOCAL/Betrayer/Metalik Klinik1-Anak Sekolah.mp3","r")
Essaye ça. C'est simpliste mais peut-être pas la meilleure méthode.
from pygame import mixer # Load the required library
mixer.init()
mixer.music.load('e:/LOCAL/Betrayer/Metalik Klinik1-Anak Sekolah.mp3')
mixer.music.play()
Veuillez noter que le support de pour MP3
est limité .
pip install pygame
Prenez le module VLC Python , vlc.py, qui fournit un support complet pour libVLC et insérez-le dans les packages de site. Ensuite:
>>> import vlc
>>> p = vlc.MediaPlayer("file:///path/to/track.mp3")
>>> p.play()
Et vous pouvez l'arrêter avec:
>>> p.stop()
Ce module offre bien plus que cela (comme pratiquement tout ce que le lecteur multimédia VLC peut faire), mais c'est le moyen le plus simple et le plus efficace de jouer un MP3.
Vous pouvez jouer un peu avec os.path pour le trouver et trouver le chemin du fichier MP3, compte tenu du nom du fichier et limitant éventuellement les répertoires de recherche.
Une documentation complète et des modules pré-préparés sont disponibles ici . Les versions actuelles sont compatibles Python 3.
Comme ce n’était pas déjà suggéré ici, c’est probablement l’une des solutions les plus simples:
import subprocess
def play_mp3(path):
subprocess.Popen(['mpg123', '-q', path]).wait()
Cela dépend de tout lecteur compatible mpg123, que vous obtenez par exemple. pour Debian en utilisant:
apt-get install mpg123
ou
apt-get install mpg321
Voir aussi playsound
pip install playsound
import playsound
playsound.playsound('/path/to/filename.mp3', True)
Vous essayez de jouer un .mp3
comme s'il s'agissait d'un .wav
.
Vous pouvez essayer d'utiliser pydub pour le convertir au format .wav
, puis le transférer dans pyAudio.
Exemple:
from pydub import AudioSegment
song = AudioSegment.from_mp3("original.mp3")
song.export("final.wav", format="wav")
Vous pouvez également utiliser pygame , comme indiqué dans l'autre réponse.
Une solution simple:
import webbrowser
webbrowser.open("C:\Users\Public\Music\Sample Music\Kalimba.mp3")
à votre santé...
Si vous travaillez dans le bloc-notes Jupyter (anciennement IPython), vous pouvez
import IPython.display as ipd
ipd.Audio(filename='path/to/file.mp3')
À ce stade, pourquoi ne pas mentionner python-audio-tools
:
C'est la meilleure solution que j'ai trouvée.
(J'avais besoin d'installer libasound2-dev
sur Raspbian)
Extrait de code librement basé sur:
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 __== "__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)
Une autre option simple et rapide ...
import os
os.system('start path/to/player/executable path/to/file.mp3')
Maintenant, vous devrez peut-être apporter de légers changements pour que cela fonctionne. Par exemple, si le joueur a besoin d'arguments supplémentaires ou s'il n'est pas nécessaire de spécifier le chemin complet. Mais c'est une façon simple de le faire.
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()
J'ai essayé la plupart des options énumérées ici et trouvé ce qui suit:
pour Windows 10: semblable à la réponse @ Shuge Lee;
from playsound import playsound
playsound('/path/file.mp3')
vous devez courir:
$ pip install playsound
pour Mac: essayez simplement ce qui suit, qui exécute la commande os,
import os
os.system("afplay file.mp3")
Code est
import os
os.system("mpg321 song1.mp3")
mpg321 est un lecteur audio en ligne de commande gratuit qui utilise une bibliothèque de décodage audio.
J'ai eu ce problème et je n'ai trouvé aucune solution qui me plaisait. J'ai donc créé un wrapper python pour mpg321: mpyg321 .
Vous aurez besoin d'avoir mpg321 installé sur votre ordinateur, puis faites pip install mpyg321
.
L'utilisation est assez simple:
from mpyg321.mpyg321 import MPyg321Player
from time import sleep
player = MPyg321Player() # instanciate the player
player.play_song("sample.mp3") # play a song
sleep(5)
player.pause() # pause playing
sleep(3)
player.resume() # resume playing
sleep(5)
player.stop() # stop playing
player.quit() # quit the player
Vous pouvez également définir des rappels pour plusieurs événements (musique mise en pause par l'utilisateur, fin de la chanson, etc.).