matt.b
Posts: 93
Joined: Fri Oct 19, 2012 7:23 am

MP3 mit Python abspielen

Tue Jun 25, 2013 8:49 am

Hi,

ich hab auch mal wieder eine Frage.
Wenn ich bisher MP3 mit Python abspielen wollte habe ich das über den Aufruf von mpg321 gemacht und die gesamte MP3 einfach vom Anfang bis zum Ende ablaufen gelassen.

Jetzt benötige ich aber etwas mehr:

An einem GPIO-Pin wird ein digitales Signal angelegt. Solange das Signal "1" ist soll der Raspberry das Lied abspielen. Wenn der Eingang auf "0" soll er stoppen und den aktuellen Zeitstempel des Liedes irgendwo abspeichern. Wenn der Eingang das nächste mal auf "1" geht soll das Lied an der abgespeicherten Stelle wieder anfangen zu spielen.

Der Umgang mit den GPIOs ist kein Problem. Den Zeitstempel irgendwo ablegen ist auch kein Ding. Kann ich einfach in einer Textdatei speichern. Ich weiss nur nicht, wie ich die MP3 in Python so abspielen kann, dass ich das Abspielen zu jeder Zeit unterbrechen kann UND den aktuellen Zeitstempel bekomme.

Zur Info: Bei der Genauigkeit des Zeitstempel sind +/-5 Sekunden kein Problem.

Bin für jeden Tipp dankbar.

Gruss
matt

User avatar
Hiswif
Posts: 664
Joined: Sat Oct 13, 2012 11:54 am
Contact: Website

Re: MP3 mit Python abspielen

Tue Jun 25, 2013 8:51 pm

Heho.

Schau mal hier. Die libary könnte dir weiterhelfen.

http://pymedia.org/tut/aplayer.html

Mfg

His
http://technikegge.blogspot.de

matt.b
Posts: 93
Joined: Fri Oct 19, 2012 7:23 am

Re: MP3 mit Python abspielen

Fri Jun 28, 2013 6:43 pm

Hallo,

habe herausgefunden, dass ich mpg321 mit dem Parameter "-k" eine Anzahl an Frames übergeben kann, die er von dem Lied überspringt und dann erst mit dem nächsten Frame beginnt abzuspielen.

Bei einem Lied habe ich jetzt ermittelt, dass in einer Sekunde ca. 38 Frames stecken. Damit kann ich das Lied bei einer definierten Position starten.

Um zu wissen wo ich starten muss messe ich die Zeit, wie lange mpg321 läuft. Ist zwar nicht das genaueste, aber wie gesagt: auf +/- 5 Sekunden (eigentlich auch +/- 10 Sekunden) kommt es nicht an.

Gruss

matt.b
Posts: 93
Joined: Fri Oct 19, 2012 7:23 am

Re: MP3 mit Python abspielen

Sun Jun 30, 2013 1:31 pm

Hallo,

wie ich schon geschrieben habe verwende ich mpg321 für das Abspielen der Lieder.

MPG321 will ich aus einem Python-Skript heraus starten. Mit der Codezeile

Code: Select all

subprocess.Popen(["mpg321", "lied1.mp3"])
funktioniert das auch ganz gut.
Allerdings will ich eine Playlist damit öffnen. Deswegen habe ich den Befehl angepasst:

Code: Select all

subprocess.Popen(["mpg321", "[email protected] playlist.m3u"])
Allerdings kommt da der Fehler "No such file or directory", egal ob ich noch den vollständigen Pfad davor setze oder nicht.
Kennt jemand das Problem?

Gruss
matt

User avatar
Hiswif
Posts: 664
Joined: Sat Oct 13, 2012 11:54 am
Contact: Website

Re: MP3 mit Python abspielen

Sun Jun 30, 2013 2:23 pm

Probier mal die Argumente des Aufrufes zu trennen. Also nicht

Code: Select all

subprocess.Popen(["mpg321", "[email protected] playlist.m3u"])
sondern:

Code: Select all

subprocess.Popen(["mpg321", "[email protected]", "playlist.m3u"])
Siehe das Beispiel auf python.org

Code: Select all

>>> print args
['/bin/vikings', '-input', 'eggs.txt', '-output', 'spam spam.txt', '-cmd', "echo '$MONEY'"]
>>> p = subprocess.Popen(args) # Success!
Dort sind die Flags von den Dateiangaben auch getrennt.

MFG

His
http://technikegge.blogspot.de

matt.b
Posts: 93
Joined: Fri Oct 19, 2012 7:23 am

Re: MP3 mit Python abspielen

Sun Jun 30, 2013 3:02 pm

Hallo Hiswif,

genau das ist die Lösung!
Vielen Dank

Gruss
matt

Return to “Deutsch”