Hey Leute,
ich hoffe das kommt jetzt nicht dumm oder heuchlerisch rüber. Aber ich habe ein Problem und zwar habe ich am Dienstag ein Projekt für die Schule hierzu habe ich eine Android App im Appinventor gebaut. Jetzt fehlt mir leider noch die letzte Funktion, mithilfe welcher man am Handy Audiofiles aufzeichnen kann welche dann automatisch auf einem Lautspecher abgespielt werden, welcher am RasPi angeschlossen ist. Ich habe es bereits geschafft dass die Dateien automatisch durch einen SFTP Server auf dem RasPi gespeichert werden in einem definierten Order.
Jetzt kommt mein Problem und zwar benötige ich eigentlich nur ein simples Phyton Skript, welches erkennt wenn sich eine neue MP3 Datei im Ordner befindet und diese dann automatisch abspielt. Leider hatte ich bisher keinerlei Berührungspunkte mit Phyton und habe wirklich gar keine Ahnung.
Ein fertiges Skript zu finden gestaltet sich irgendwie auch schwieriger als gedacht..
Denkt ihr jemand von euch kann mir da eventuell etwas helfen? Oder eventuell benutzt jemand von euch ja schon ein Skript genau für diese Zweck.
Für mich klingt das ganze für jemanden, der sich mit Phyton auskennt relativ simpel, für mich jedoch ist das echt nicht machbar.
Freue mich auf die ein oder andere Antwort von euch!
Phyton script welches neue mp3 files auf dem raspi automatisch abspielt
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
muss das mit Python sein? Verzeichnisse kann man z.B. mit inotify (siehe z.B. https://wiki.ubuntuusers.de/inotify/) überwachen. Und jedes Mal, wenn eine Datei dazu kommt, damit was machen. Z.B. mit dem Audioplayer des Systems abspielen.
Natürlich kannst du das auch mit Python machen, aber in dem Falle wäre Python nur der Wrapper für inotify und den Audioplayer - also nicht so richtig sinnvoll.
Gruß, noisefloor
muss das mit Python sein? Verzeichnisse kann man z.B. mit inotify (siehe z.B. https://wiki.ubuntuusers.de/inotify/) überwachen. Und jedes Mal, wenn eine Datei dazu kommt, damit was machen. Z.B. mit dem Audioplayer des Systems abspielen.
Natürlich kannst du das auch mit Python machen, aber in dem Falle wäre Python nur der Wrapper für inotify und den Audioplayer - also nicht so richtig sinnvoll.
Gruß, noisefloor
- DeaD_EyE
- User
- Beiträge: 1021
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Ich würde es mit Inotify machen, da man dann auch die Information hat, dass die Datei fertig übertragen ist.
Wegwerfcode:
Wenn ich mit SCP Dateien lokal kopiere, bekomme ich zweimal das Ereignis "IN_CLOSE_WRITE" mit dem gleichen Dateinamen.
Beim Dateimanager `Dolphin` auch zweimal, aber die Datei hat zusätzlich noch `.part` am Ende.
Bei sftp kommt "IN_CLOSE_WRITE" nur einmal. Das ist gut.
Das Beispiel überwacht /home/pi/Musik und spielt die Dateien mp3, m4a, ogg und opus mit dem mpv Player ab.
Wegwerfcode:
Code: Alles auswählen
from __future__ import annotations
import subprocess
from inotify.adapters import Inotify
# https://pypi.org/project/inotify/
def predicate(event_types: list[str]):
return len(event_types) == 1 and "IN_CLOSE_WRITE" in event_types
def main(root: str, suffixes: list[str]):
while True:
for event in Inotify(root).event_gen(yield_nones=False):
event, event_types, path, file = event
if not file or not predicate(event_types):
continue
if not any(file.endswith(suffix) for suffix in suffixes):
continue
# blockiert
subprocess.run(["mpv", file])
# print(event, event_types, path, file)
main("/home/pi/Musik", [".mp3", ".m4a", ".ogg", ".opus"])
Beim Dateimanager `Dolphin` auch zweimal, aber die Datei hat zusätzlich noch `.part` am Ende.
Bei sftp kommt "IN_CLOSE_WRITE" nur einmal. Das ist gut.
Das Beispiel überwacht /home/pi/Musik und spielt die Dateien mp3, m4a, ogg und opus mit dem mpv Player ab.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server