Я хочу воспроизвести свою песню (mp3) с python, можете ли вы дать мне простейшую команду для этого?
Это неверно:
import wave
w = wave.open("e:/LOCAL/Betrayer/Metalik Klinik1-Anak Sekolah.mp3","r")
Я хочу воспроизвести свою песню (mp3) с python, можете ли вы дать мне простейшую команду для этого?
Это неверно:
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
ограничена.
pip install pygame
Возьмите модуль VLC Python, vlc.py, который обеспечивает полную поддержку libVLC и поп, что в пакетах сайта. Тогда:
>>> import vlc
>>> p = vlc.MediaPlayer("file:///path/to/track.mp3")
>>> p.play()
И вы можете остановить его с помощью:
>>> p.stop()
Этот модуль предлагает много возможностей (например, что-то, что может сделать медиаплеер VLC), но это самое простое и эффективное средство для воспроизведения одного MP3.
Вы можете немного поиграть с os.path, чтобы найти путь к MP3 для вас, учитывая имя файла и, возможно, ограничивая каталоги поиска.
Полная документация и готовые модули доступны здесь. Текущие версии совместимы с Python 3.
См. также playsound
pip install playsound
import playsound
playsound.playsound('/path/to/filename.mp3', True)
Вы пытаетесь воспроизвести .mp3
, как если бы это был .wav
.
Вы можете попробовать использовать pydub, чтобы преобразовать его в формат .wav
, а затем передать это в pyAudio.
Пример:
from pydub import AudioSegment
song = AudioSegment.from_mp3("original.mp3")
song.export("final.wav", format="wav")
В качестве альтернативы используйте pygame, как указано в другом ответе.
Как это уже не было предложено здесь, но, вероятно, это одно из самых простых решений:
import subprocess
def play_mp3(path):
subprocess.Popen(['mpg123', '-q', path]).wait()
Это зависит от любого совместимого с mpg123 проигрывателя, который вы получаете, например. для Debian:
apt-get install mpg123
или
apt-get install mpg321
Простое решение:
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')
В этот момент, почему бы не упомянуть python-audio-tools
:
Это лучшее решение, которое я нашел.
(мне нужно было установить libasound2-dev
, на Raspbian)
Исключить фрагмент кода на основе:
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)
Еще один быстрый и простой вариант...
import os
os.system('start path/to/player/executable 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()
Я попробовал большинство из перечисленных вариантов здесь и обнаружил следующее:
для 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 pygame
pygame.mixer.init()
pygame.mixer.music.load('music.mp3')
pygame.mixer.music.play()
input()
pygame.event.wait()
У меня была эта проблема, и я не нашел решения, которое мне понравилось, поэтому я создал оболочку Python для mpg321: mpyg321.
Вам нужно будет установить mpg321 на вашем компьютере, а затем выполнить pip install mpyg321
.
Использование довольно просто:
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
Вы также можете определить обратные вызовы для нескольких событий (музыка, приостановленная пользователем, конец песни...).
import os
os.system('file_path/filename.mp3')
Код
import os
os.system("mpg321 song1.mp3")
mpg321 - бесплатный аудиоплеер командной строки, использующий библиотеку декодирования звука.