Hallo,
Ich bin gerade dabei einen kleinen Music Player in Python 3 zu schreiben. Leider habe ich noch nichts gutes gefunden, um Musik Datei (vorallem .mp3) abzuspielen.
Was es können muss:
-Abspielen
-Stoppen
-Pausieren
-Fortfahren (nach Pausieren)
-Aktuelle "Position"(Zeit) des Songs (also wo [welche Sekunde] man sich gerade beim Abspielen befindet)
-Lautstärke verändern
-Zu Position x "springen"(vorspulen)
Was ich schon versucht habe:
-Pygame: fällt weg weil die aktuelle Position im Song fehlt (da gibts nur wie lange es schon den Song abspielt - und in dem Moment wo man vorspult gibt's dann Probleme)
-playsound: nicht genug Funktionen (siehe oben)
-winsound: gibt's nur für Windows (ich nutze GNU/Linux)
-pyglet: geht nicht mit tkinter (das benutze ich für die GUI), pyglet.app.run() lässt die GUI einfrieren (und ohne pyglet.app.run() wird das Abspielen des Songs direkt wieder abgebrochen)
Vielen Dank
Musik abspielen + Zeit
Eine andere Möglichkeit ist, GStreamer zu verwenden. Das ist ein sehr flexibles, allerdings aber auch recht umfangreiches Framework, das etwas Einarbeitung erfordert. MPD fand ich einfacher zu verstehen. Streng genommen ist das nur eben kein AudioPlayer den man da schreibt, sondern ein Client für einen Player ohne GUI, der als separater Prozess läuft. Das Abstraktionslevel ist höher als bei GStreamer und die Einflussmöglichkeiten sind geringer. Für die Sachen, die du oben auflistet genügt es aber denke ich.
- __blackjack__
- User
- Beiträge: 13114
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Wobei man bei egal welcher Lösung wohl nicht darum herum kommt das Nebenläufig mit einem Thread oder Prozess zur Tki-GUI zu lösen, womit `pyglet` dann vielleicht auch wieder in Frage kommt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Vielen Dank, ich komme mit der Benutzung von python-mpd2 aber noch nicht ganz klar. Mein Test-Code:nezzcarth hat geschrieben: ↑Sonntag 26. Januar 2020, 07:43 Eine andere Möglichkeit ist, GStreamer zu verwenden. Das ist ein sehr flexibles, allerdings aber auch recht umfangreiches Framework, das etwas Einarbeitung erfordert. MPD fand ich einfacher zu verstehen. Streng genommen ist das nur eben kein AudioPlayer den man da schreibt, sondern ein Client für einen Player ohne GUI, der als separater Prozess läuft. Das Abstraktionslevel ist höher als bei GStreamer und die Einflussmöglichkeiten sind geringer. Für die Sachen, die du oben auflistet genügt es aber denke ich.
Code: Alles auswählen
from mpd import MPDClient
client = MPDClient()
client.connect("localhost", 6600)
client.add("/home/richard/Programme/Music Player/src/Musik.mp3")
mpd.base.CommandError: [4@0] {} Access denied
(die Musik.mp3 Datei liegt im selben Ordner wie meine .py).
mit
Code: Alles auswählen
client.add("Musik.mp3")
mpd.base.CommandError: [50@0] {} No such directory
Das kann man ja auch googeln, und dann lernt man das hier: https://christiantietze.de/posts/2019/0 ... -filename/