在python上播放mp3歌曲

我想从python播放我的歌(mp3),你能给我一个最简单的命令吗?

这是不正确的:

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

你可以试试,简单但不是最好的方法。

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

请注意,对MP3的支持是有限的( 正如文档中所述 )

有关安装说明,请访问http://pygame.org/install.html

抓住VLC Python模块 vlc.py,它提供了对libVLC的全面支持,并在站点包中popup。 然后:

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

你可以用下面的方法来阻止它:

 >>> p.stop() 

该模块提供了大量的function(就像VLC媒体播放器所能做的一样),但这是播放一个MP3最简单,最有效的方法。

你可以用os.path来播放一下,find文件名并且可能限制search目录的path。

完整的文档和预先准备好的模块可以在这里find 。 目前的版本是Python 3兼容。

您正试图播放.mp3 ,就好像它是.wav

您可以尝试使用pydub将其转换为.wav格式,然后将其馈送到pyAudio。

例:

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

或者,使用pygame ,如其他答案中所述。

由于这里还没有提到,但可能是最简单的解决scheme之一:

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

这取决于任何符合mpg123标准的播放器,例如,您可以使用Debian使用的播放器:

 apt-get install mpg123 

要么

 apt-get install mpg321 

简单的解决scheme:

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

干杯…

另见播放

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

另一个快速简单的选项…

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

现在,您可能需要稍作更改才能使其正常工作。 例如,如果玩家需要额外的参数,或者您不需要指定完整的path。 但这是一个简单的方法。

如果你在Jupyter(以前的IPython)笔记本上工作,你可以

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

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

在这一点上,为什么不提到python-audio-tools

  • GitHub: https : //github.com/tuffy/python-audio-tools
  • docs: http : //audiotools.sourceforge.net/programming/audiotools.html? highlight= seek# module- audiotools

这是我find的最好的解决scheme。

(我需要在Raspbian上安装libasound2-dev

代码摘录基于:
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 (ie ".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)