HOWTO · Python
MP3-Datei mit Python abspielen
Lernen Sie fünf Möglichkeiten kennen, eine MP3-Datei mit Python abzuspielen, mit Hinweisen zu Installation, Pfaden und Plattformen.
Auf dieser Seite
Um eine MP3-Datei mit Python abzuspielen, eignet sich playsound für ein kurzes Wiedergabeskript, pygame für Mixer-Steuerungen oder python-vlc, wenn VLC verfügbar ist. Python kann die Datei mit webbrowser auch über einen Browser-Handler öffnen oder einen installierten Systemplayer starten. Ersetzen Sie in jedem Beispiel sample.mp3 durch den Pfad zu Ihrer Audiodatei. Relative Pfade werden ausgehend vom aktuellen Arbeitsverzeichnis des Prozesses aufgelöst.
Eine MP3-Datei mit playsound abspielen
Installieren Sie das Drittanbieterpaket playsound mit python -m pip install playsound. Rufen Sie anschließend dessen Wiedergabefunktion mit dem Dateipfad auf. Das Paket unterstützt gängige Audioformate wie MP3 und WAV; die Wiedergabe hängt vom Audio-Backend der jeweiligen Plattform ab.
Dieses vollständige Skript spielt sample.mp3 aus dem aktuellen Arbeitsverzeichnis ab. Installieren Sie zuerst das Paket und legen Sie die Datei dort ab, oder ändern Sie track so, dass der richtige Pfad angegeben ist. Für die Wiedergabe werden ein funktionsfähiges Audiogerät und ein vom Paket unterstütztes Audio-Backend benötigt.
from pathlib import Path
track = Path("sample.mp3")
if track.is_file():
from playsound import playsound
playsound(str(track))
Eine MP3-Datei mit pygame abspielen
Installieren Sie pygame mit python -m pip install pygame. Die Mixer-API lädt den Titel und startet die Wiedergabe. Die MP3-Decodierung hängt vom verwendeten Build von pygame und SDL_mixer ab. Wenn der installierte Build Ihre MP3-Datei nicht decodieren kann, ist eine WAV-Datei eine praktische Ausweichmöglichkeit. Siehe eine MP3-Datei in WAV konvertieren.
Dieses Skript lädt sample.mp3 aus dem aktuellen Arbeitsverzeichnis. Installieren Sie zuerst pygame und stellen Sie ein Audio-Backend bereit. Der Mixer-Aufruf play() startet die Wiedergabe asynchron; die Schleife hält das Skript am Laufen, bis der Titel beendet ist. Die MP3-Decodierung hängt vom verwendeten Build von pygame und SDL_mixer ab. Falls der Build den Titel nicht decodieren kann, ist eine WAV-Datei eine praktische Ausweichmöglichkeit.
from pathlib import Path
track = Path("sample.mp3")
if track.is_file():
import time
import pygame
pygame.mixer.init()
pygame.mixer.music.load(str(track))
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
time.sleep(0.1)
Eine MP3-Datei mit python-vlc abspielen
python-vlc ist der Name der pip-Distribution; das zugehörige Python-Modul wird mit vlc importiert. Installieren Sie die Bindung mit python -m pip install python-vlc. Da die Bindung das native Medienframework von VLC verwendet, müssen Sie außerdem eine kompatible VLC-Laufzeitumgebung installieren und sicherstellen, dass der Prozess darauf zugreifen kann. Die erforderliche Einrichtung kann je nach Betriebssystem variieren.
Dieses Skript verwendet die Datei sample.mp3 im aktuellen Arbeitsverzeichnis. Installieren Sie vor dem Ausführen sowohl die Bindung python-vlc als auch eine kompatible VLC-Laufzeitumgebung. player.play() startet die Wiedergabe asynchron. Die Eingabeaufforderung hält den Prozess während der Wiedergabe am Laufen; drücken Sie die Eingabetaste, wenn Sie die Wiedergabe beenden möchten. Eine Audioausgabe ist ebenfalls erforderlich.
from pathlib import Path
track = Path("sample.mp3")
if track.is_file():
import vlc
player = vlc.MediaPlayer(str(track))
player.play()
input("Press Enter to stop playback.\n")
player.stop()
Eine MP3-Datei mit webbrowser öffnen
webbrowser gehört zur Python-Standardbibliothek und muss daher nicht mit pip installiert werden. Dieses vollständige Beispiel weist den vom System konfigurierten Browser an, eine Datei-URL für sample.mp3 im aktuellen Arbeitsverzeichnis zu öffnen. Durch Auflösen des Pfads und seine Umwandlung in eine URI werden Leerzeichen und andere Zeichen im Pfad korrekt behandelt.
from pathlib import Path
import webbrowser
track = Path("sample.mp3")
if track.is_file():
webbrowser.open(track.resolve().as_uri())
Damit wird der Browser oder ein registrierter Handler angewiesen, die Datei zu öffnen. Es ist nicht garantiert, dass ein Browser-Tab die Audiodatei abspielt; das Verhalten hängt vom Browser und vom Betriebssystem ab.
Einen Systemplayer über Python starten
Verwenden Sie subprocess.run mit einer Argumentliste, um einen installierten Kommandozeilenplayer zu starten. So müssen Sie aus dem Dateipfad keinen Shell-Befehl zusammensetzen. Installieren Sie den Player separat; Verfügbarkeit und Befehlsnamen hängen vom Betriebssystem ab. Die folgenden Beispiele verwenden mpg123 unter Linux und afplay unter macOS.
Dieses vollständige Skript verwendet mpg123 unter Linux oder afplay unter macOS, um sample.mp3 aus dem aktuellen Arbeitsverzeichnis abzuspielen. Installieren Sie den gewählten Player separat. Bei der Argumentlistenform wird der Pfad auch dann als einzelnes Argument übergeben, wenn er Leerzeichen enthält. check=True meldet einen Rückgabewert ungleich null des Players als Python-Fehler. Das kann bei der Suche nach der Ursache eines fehlgeschlagenen Starts helfen.
from pathlib import Path
import subprocess
import sys
track = Path("sample.mp3")
if track.is_file():
if sys.platform.startswith("linux"):
player = "mpg123"
elif sys.platform == "darwin":
player = "afplay"
else:
raise SystemExit("Choose a player command for this operating system.")
subprocess.run([player, str(track)], check=True)
Für eine einfache Pfadprüfung, bevor Sie eine Wiedergabemethode auswählen, gibt dieses eigenständige Python-Beispiel den Dateinamen eines Pfads im aktuellen Arbeitsverzeichnis aus:
from pathlib import Path
track = Path("sample.mp3")
print(track.name)
sample.mp3