Videostart auf Knopfdruck

  • Hallo zusammen


    Ich bin bzw. war ein relativ unerfahrener Raspi Benutzer und habe mich Aufgrund eines Auftrages in diese Materie eingelesen.


    Der Auftrag ist folgender:


    Es soll ein Bild angezeigt werden, auf welchem steht: "Drücken Sie den Startknopf um das Video ab zu spielen".
    Auf Knopfdruck wird das Video abgespielt. Nachdem es fertig ist soll es wieder zurück zum Bild gehen.


    Ich habe es nun hingekriegt, jedoch bin ich mir sicher, dass man den Code noch optimieren kann.




    Ich bin um jegliches Feedback dankbar.
    Ach und falls jemand eine Idee hat, wie man mit einem zweiten Knopfdruck das Video von vorne abspielen könnte, wäre dies der absolute Hammer!



    Danke im Vorraus und schönen Abend.

    • Official Post

    Hallo stan_,


    willkommen im Forum!


    aus der Hüfte, bei weitem nicht perfekt und natürlich ungetestet ;) :


  • Hi Hyle


    Vielen Dank für deine Antwort!
    Ich habe es soeben getestet und leider funktioniert es auch mit deinem Code nicht.


    Das Problem welches ich schon immer habe, ist das dieser omxplayer sich nichts sagen lässt.
    Mit pkill omxplayer in der Konsole funktioniert es ohne Probleme... Sobald sich aber dieser pkill im Code befindet, ignoriert er ihn komplett.


    Gibt es eine Variante Prozesse unter zu ordnen? Ich glaube ich müsste dem Program eine höhere Prio geben, als dem omxplayer.


    Kann das sein?



    EDIT:


    Habe deinen Code gerade einwenig angepasst um zu testen:


    Nun kommt am Anfang 1x Video Stop und bei jedem nächstem Knopfdruck kommt 1x Video play.
    Dein Code stimmt also, nur dass dieser dumme omxplayer nicht richtig will :wallbash:

    Edited once, last by stan_ ().

  • Moin


    Das Wichtigste zuerst:


    - auf Modulebene haben sich nur Konstanten Klassen/Funktionen zu befinden.
    - du hältst dich nicht an die Namenskonvention (Style Guide for Python Code). Funktionen werden klein geschrieben => ``play_video``
    - für den omxplayer gibt es in Python geschriebene Anbindungen. Damit fällt der externe Aufruf weg. ``os.system`` verwendet man nicht (mehr) sondern das subprocess-Modul
    - schau dir mal das ``gpiozero`` Modul an. zB https://gpiozero.readthedocs.i…cipes.html#gpio-music-box

  • Hallo bootsmann


    Auch dir erstmals herzlichen Dank für deine Inputs.
    Leider bin ich nicht ganz nachgekommen, was du mir alles versucht hast zu sagen.


    Das mit dem gpiozero Modul habe ich verstanden und erfolgreich implementiert.
    Leider löst es nicht mein Problem mit dem omxplayer. Da bin ich mit den subprocesses dann doch nicht ganz nachgekommen.


    Ich habe es jetzt irgendwie mit einem omxplayer-wrapper versucht.



    Nun startet das Video gar nicht mehr auf Knopfdruck.


    Könntet ihr mir da nochmals weiterhelfen?
    Tut mir Leid für die (für euch) wahrscheinlich dumme Fragen....
    Aber es ist echt schwer etwas im Internet zu finden, wenn man nicht genau weiss welcher Ansatz der richtige ist.


    Danke und Gruss

    Edited once, last by stan_ ().

    • Official Post

    Hallo,


    ich bin in Python mit Sicherheit nicht die erste Wahl und wollte Dir nur erstmal den Weg in die richtige Richtung zeigen. Wirklich weiterhelfen kann ich Dir also mit omxplayer nicht direkt.



    ... warte mal, hast Du den Taster an einen anderen Pin angeschlossen, oder Dich vertippt? :-/ Pin 13 ist GPIO 27, in Deinem Script steht button = Button(17). Du solltest beachten, dass bei gpiozero die GPIO-Nummer erwartet wird und NICHT die Pin-Nummer!


    Richtig wäre hier also (wenn Du nichts umgeklemmt hast):


    Code
    button = Button(27)
  • Danke Hyle für deine Bemühungen.
    Ich habe aber in der Zwischenzeit den GPIO Pin gewechselt -> die PIN Nr. stimmt also...

  • Hallo Stan_ und Community,


    hättest du oder einer aus dem Forum zufällig den gesamten endgültigen Code für mich. Habe momentan das genau gleiche Problem und bringe es einfach nicht zum laufen.


    Euch schonmal vielen lieben Dank!


    LG Dave 🙂