Bermain mp3 lagu di python

Saya ingin play my song (mp3) dari python, anda dapat memberikan saya sebuah sederhana perintah untuk melakukan itu?

Ini tidak benar:

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

Ambil VLC modul Python, vlc.py, yang menyediakan dukungan penuh untuk libVLC dan pop itu di situs-paket. Maka:

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

Dan anda dapat menghentikannya dengan:

>>> p.stop()

Modul ini menyediakan banyak di luar itu (seperti apa pun cukup banyak VLC media player dapat melakukan), tapi yang's paling sederhana dan paling efektif bermain satu MP3.

Anda bisa bermain dengan os.jalan sedikit untuk mendapatkannya untuk menemukan jalan ke MP3 untuk anda, berikan nama file dan mungkin membatasi pencarian direktori.

Dokumentasi lengkap dan disiapkan modul tersedia di sini. Saat ini versi Python 3 yang kompatibel.

Komentar (4)
Larutan

Mencoba ini. It's sederhana, tapi mungkin bukan metode terbaik.

from pygame import mixer  # Load the popular external library

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

Harap dicatat bahwa pygame's dukungan untuk MP3 terbatas. Juga, seperti yang ditunjukkan oleh Samy Bencherif, tidak ada't menjadi konyol pygame jendela popup ketika anda menjalankan kode diatas.

Instalasi sederhana -

pip install pygame
Komentar (12)

Lihat juga playsound

pip install playsound

import playsound
playsound.playsound('/path/to/filename.mp3', True)
Komentar (2)

Anda mencoba untuk bermain .mp3 seolah-olah .wav.

Anda bisa mencoba menggunakan pydub untuk mengubahnya menjadi .wav format, dan kemudian pakan yang ke pyAudio.

Contoh:

from pydub import AudioSegment

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

Atau, gunakan pygame, seperti yang disebutkan dalam jawaban lain.

Komentar (0)

Karena itu't sudah disarankan di sini, tapi mungkin salah satu solusi termudah:

import subprocess

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

Hal ini tergantung pada setiap mpg123 compliant pemain, yang anda dapatkan misalnya untuk Debian menggunakan:

apt-get install mpg123

atau

apt-get install mpg321
Komentar (0)

Solusi sederhana:

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

cheers...

Komentar (2)

Jika anda're kerja di Jupyter (sebelumnya IPython) notebook, anda dapat

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

Saya telah mencoba sebagian besar dari opsi yang tercantum di sini dan menemukan berikut ini:

untuk windows 10: mirip dengan @Shuge Lee menjawab;

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

yang perlu anda jalankan:

$ pip install playsound

untuk Mac: hanya mencoba yang berikut, yang menjalankan os command,

import os
os.system("afplay file.mp3") 
Komentar (0)

Pada titik ini, mengapa tidak menyebutkan python-audio-alat:

It's solusi terbaik yang saya temukan.

(Saya butuhkan untuk menginstal libasound2-dev, pada Raspbian)

Kode kutipan longgar didasarkan pada: 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)
Komentar (0)

Lain cepat dan sederhana pilihan...

import os

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

Sekarang anda mungkin perlu membuat beberapa perubahan kecil untuk membuatnya bekerja. Misalnya, jika pemain membutuhkan tambahan argumen atau anda don't perlu untuk menentukan path lengkap. Tapi ini adalah cara sederhana untuk melakukannya.

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

Aku punya masalah ini dan tidak menemukan solusi apapun yang saya suka, jadi saya membuat sebuah wrapper python untuk mpg321: mpyg321.

Anda akan perlu untuk memiliki mpg321 diinstal pada komputer anda, dan kemudian melakukan pip menginstal mpyg321.

Penggunaan cukup sederhana:

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

Anda juga dapat menentukan callback untuk beberapa acara (musik berhenti oleh pengguna, akhir lagu...).

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