Odtwarzanie piosenki mp3 na Pythonie

Chcę odtworzyć moją piosenkę (mp3) z Pythona, możesz mi podać najprostsze polecenie, aby to zrobić?

To nie jest poprawne:

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

11 answers

Spróbuj tego. To proste, ale może nie najlepsza metoda.

from pygame import mixer # Load the required library

mixer.init()
mixer.music.load('e:/LOCAL/Betrayer/Metalik Klinik1-Anak Sekolah.mp3')
mixer.music.play()

Należy pamiętać, że wsparcie dla MP3 jest ograniczone .

Instalacja jest prosta -

pip install pygame
 38
Author: shad0w_wa1k3r,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-10 20:24:31

Pobierz VLC Python module , vlc.py, który zapewnia pełne wsparcie dla libVLC i pop, że w site-packages. Wtedy:

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

I możesz to zatrzymać za pomocą:

>>> p.stop()

Ten moduł oferuje wiele więcej (jak prawie wszystko, co może zrobić odtwarzacz multimedialny VLC), ale jest to najprostszy i najbardziej skuteczny sposób odtwarzania jednego MP3.

Możesz grać z systemem operacyjnym.ścieżka trochę, aby znaleźć ścieżkę do MP3 dla Ciebie, biorąc pod uwagę nazwę pliku i ewentualnie ograniczenie Szukaj katalogów.

Pełna dokumentacja i gotowe moduły są dostępne tutaj . Obecne wersje są zgodne z Pythonem 3.

 72
Author: Ben,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-17 19:51:40

Próbujesz grać .mp3 jakby to było .wav.

Możesz spróbować użyć pydub, aby przekonwertować go do formatu .wav, a następnie przesłać go do pyAudio.

przykład:

from pydub import AudioSegment

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

Alternatywnie, użyj pygame , Jak wspomniano w drugiej odpowiedzi.

 10
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-07 17:15:10

Ponieważ nie było to jeszcze sugerowane tutaj, ale jest prawdopodobnie jednym z najprostszych rozwiązań:

import subprocess

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

To zależy od dowolnego odtwarzacza zgodnego z mpg123, który dostajesz np. dla Debiana używając:

apt-get install mpg123

Lub

apt-get install mpg321
 10
Author: Michael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-18 15:48:58

Zobacz także playsound

pip install playsound

import playsound
playsound.playsound('/path/to/filename.mp3', True)
 10
Author: Shuge Lee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-22 02:20:42

Proste rozwiązanie:

import webbrowser
webbrowser.open("C:\Users\Public\Music\Sample Music\Kalimba.mp3")
Zdrówko...
 5
Author: toufikovich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-06 18:15:13

Jeśli pracujesz w notebooku Jupyter (dawniej IPython), możesz]}

import IPython.display as ipd
ipd.Audio(filename='path/to/file.mp3')
 5
Author: mdeff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-23 22:42:33

Kolejna szybka i prosta opcja...

import os

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

Teraz możesz potrzebować kilku drobnych zmian, aby to działało. Na przykład, jeśli gracz potrzebuje dodatkowych argumentów lub nie musisz podawać pełnej ścieżki. Ale jest to prosty sposób na zrobienie tego.

 4
Author: The Unnamed Engineer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-28 16:49:05

W tym momencie, dlaczego nie wspomnieć python-audio-tools:

To najlepsze rozwiązanie, jakie znalazłem.

(musiałem zainstalować libasound2-dev, Na Raspbianie)

Fragment kodu luźno oparty na:
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)
 4
Author: dentex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-09 14:41:09
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()
 2
Author: hsyn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-01 20:06:54
import os
os.system('file_path/filename.mp3')
 -1
Author: Akshay Udnur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-07 12:19:49