我想从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()
请注意support for MP3 is limited .
Installation is simple -
pip install pygame
grab VLC Python module,vlc.py,它提供对libVLC的完全支持并在site-packages中弹出它 . 然后:
>>> import vlc >>> p = vlc.MediaPlayer("file:///path/to/track.mp3") >>> p.play()
你可以用以下方法阻止它:
>>> p.stop()
该模块提供了足够的功能(就像VLC媒体播放器可以做的任何事情一样),但这是播放一个MP3最简单,最有效的方法 .
您可以使用os.path来获取它,为您找到MP3的路径,给定文件名并可能限制搜索目录 .
提供完整的文档和预先准备的模块here . 当前版本兼容Python 3 .
由于这里尚未提出,但可能是最简单的解决方案之一:
import subprocess def play_mp3(path): subprocess.Popen(['mpg123', '-q', path]).wait()
这取决于任何符合mpg123标准的播放器,例如,对于Debian使用:
apt-get install mpg123
要么
apt-get install mpg321
另见playsound
pip install playsound import playsound playsound.playsound('/path/to/filename.mp3', True)
您正在尝试播放 .mp3 ,就像它是 .wav 一样 .
.mp3
.wav
您可以尝试使用pydub将其转换为 .wav 格式,然后将其提供给pyAudio .
例:
from pydub import AudioSegment song = AudioSegment.from_mp3("original.mp3") song.export("final.wav", format="wav")
或者,使用pygame,如另一个答案中所述 .
简单的解决方案:
import webbrowser webbrowser.open("C:\Users\Public\Music\Sample Music\Kalimba.mp3")
干杯...
如果你在Jupyter(以前的IPython)笔记本上工作,你可以
import IPython.display as ipd ipd.Audio(filename='path/to/file.mp3')
另一个快速简单的选择......
import os os.system('start path/to/player/executable path/to/file.mp3')
现在您可能需要进行一些细微的更改才能使其正常工作 . 例如,如果玩家需要额外的参数,或者您不需要指定完整路径 . 但这是一种简单的方法 .
此时,为什么不提 python-audio-tools :
python-audio-tools
GitHub:https://github.com/tuffy/python-audio-tools
docs:http://audiotools.sourceforge.net/programming/audiotools.html?highlight=seek#module-audiotools
这是我发现的最佳解决方案 .
(我需要在Raspbian上安装 libasound2-dev )
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 (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)
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()
我在这里尝试了大多数列出的选项并找到了以下内容:
对于Windows 10:类似于@Shuge Lee的回答;
from playsound import playsound playsound('/path/file.mp3')
你需要运行:
$ pip install playsound
对于Mac:只需尝试以下操作os命令,
import os os.system("afplay file.mp3")
代码是
import os os.system("mpg321 song1.mp3")
mpg321是一个免费的命令行音频播放器,它使用音频解码库 .
import os os.system('file_path/filename.mp3')
13 回答
试试这个 . 它过于简单但可能不是最好的方法 .
请注意support for MP3 is limited .
Installation is simple -
grab VLC Python module,vlc.py,它提供对libVLC的完全支持并在site-packages中弹出它 . 然后:
你可以用以下方法阻止它:
该模块提供了足够的功能(就像VLC媒体播放器可以做的任何事情一样),但这是播放一个MP3最简单,最有效的方法 .
您可以使用os.path来获取它,为您找到MP3的路径,给定文件名并可能限制搜索目录 .
提供完整的文档和预先准备的模块here . 当前版本兼容Python 3 .
由于这里尚未提出,但可能是最简单的解决方案之一:
这取决于任何符合mpg123标准的播放器,例如,对于Debian使用:
要么
另见playsound
您正在尝试播放
.mp3
,就像它是.wav
一样 .您可以尝试使用pydub将其转换为
.wav
格式,然后将其提供给pyAudio .例:
或者,使用pygame,如另一个答案中所述 .
简单的解决方案:
干杯...
如果你在Jupyter(以前的IPython)笔记本上工作,你可以
另一个快速简单的选择......
现在您可能需要进行一些细微的更改才能使其正常工作 . 例如,如果玩家需要额外的参数,或者您不需要指定完整路径 . 但这是一种简单的方法 .
此时,为什么不提
python-audio-tools
:GitHub:https://github.com/tuffy/python-audio-tools
docs:http://audiotools.sourceforge.net/programming/audiotools.html?highlight=seek#module-audiotools
这是我发现的最佳解决方案 .
(我需要在Raspbian上安装
libasound2-dev
)代码摘录基于:
https://github.com/tuffy/python-audio-tools/blob/master/trackplay
我在这里尝试了大多数列出的选项并找到了以下内容:
对于Windows 10:类似于@Shuge Lee的回答;
你需要运行:
对于Mac:只需尝试以下操作os命令,
代码是
mpg321是一个免费的命令行音频播放器,它使用音频解码库 .