首页 文章

在python上播放mp3歌曲

提问于
浏览
44

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

这不正确:

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

13 回答

  • -1

    试试这个 . 它过于简单但可能不是最好的方法 .

    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
    
  • 10

    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 .

  • 4

    由于这里尚未提出,但可能是最简单的解决方案之一:

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

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

    apt-get install mpg123
    

    要么

    apt-get install mpg321
    
  • 0

    另见playsound

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

    您正在尝试播放 .mp3 ,就像它是 .wav 一样 .

    您可以尝试使用pydub将其转换为 .wav 格式,然后将其提供给pyAudio .

    例:

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

    或者,使用pygame,如另一个答案中所述 .

  • 76

    简单的解决方案:

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

    干杯...

  • 5

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

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

    另一个快速简单的选择......

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

    现在您可能需要进行一些细微的更改才能使其正常工作 . 例如,如果玩家需要额外的参数,或者您不需要指定完整路径 . 但这是一种简单的方法 .

  • 4

    此时,为什么不提 python-audio-tools

    这是我发现的最佳解决方案 .

    (我需要在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 (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)
    
  • 11
    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()
    
  • 11

    我在这里尝试了大多数列出的选项并找到了以下内容:

    对于Windows 10:类似于@Shuge Lee的回答;

    from playsound import playsound
    playsound('/path/file.mp3')
    

    你需要运行:

    $ pip install playsound
    

    对于Mac:只需尝试以下操作os命令,

    import os
    os.system("afplay file.mp3")
    
  • 1

    代码是

    import os
    
    os.system("mpg321 song1.mp3")
    

    mpg321是一个免费的命令行音频播放器,它使用音频解码库 .

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

相关问题