One Button AudioBook

  • Hallo,

    ich habe das One Button Audiobook (siehe hier) nachgebaut.

    Die hierin vorgeschlagenen Tests (Handbetrieb) funktionieren auch. Ich kann auch das python script starten und über den button die mp3 Datei starten und anhalten. Auch die Datenübernahme vom usb Stick funktioniert noch, aber nach dem erneuten start von mpd durch das script geht's in die Hose. Das Script stürzt mit Fehlermeldungen ab:


    Die neue mp3 datei wurde vom stick geladen und der stick un-mounted.

    Bis dahin hat es also noch funktioniert.

    Da ich allerdings von Python keinen blassen Schimmer habe, komme ich hier nicht wirklich weiter. :wallbash:

    Kann mir jemand von den Python Gurus hier weiterhelfen?

    Ich habe das script (mit meinen GPIO-Pin Anpassungen) angefügt:

    Danke schon mal.

    Configuration:
    Debian Jessie (aktuellste RASBIAN Version) auf RPi B

    Nachtrag:
    der Fehler liegt möglicherweise an einer ganz anderen Stelle, denn nachdem ich mal ein komplettes Hörbuch auf den USB Stick gepackt hatte, funktioniert zumindest der restart via script. Vorher hatte ich lediglich einen Testsong auf dem Stick.

    Jetzt zeigt sich aber eine veränderte Symptomatik. Sobald das script mehrere Minuten ohne Tastendruck läuft, stürzt es beim nächsten Tastendruck ab. Dabei ist es gleichgültig ob die Wiedergabe gerade läuft oder ob der Tastendruck die Wiedergabe gerade starten sollte.

    So sieht jetzt die Fehlermeldung aus:


    :danke_ATDE:
    Gunter

    Einmal editiert, zuletzt von gupi (29. November 2015 um 18:55)

  • Nachdem ich mir das Verhalten nochmal genauer angesehen habe, komme ich immer mehr zu der Auffassung, dass hier wohl eher die Ursache beim mpd bzw. mpc liegt. Der Fehler tritt ja beim client Aufruf auf.
    Deshalb ist meine Anfrage eventuell besser im Multimedia Forum aufgehoben.

    Moderator, würdest Du bitte den Beitrag entsprechend verschieben?

    :danke_ATDE: Gunter

    Einmal editiert, zuletzt von gupi (30. November 2015 um 08:10)

  • Ich bin bei der Ursachenforschung etwas weiter gekommen, allerdings noch ohne Lösung.

    Wenn ich mir die log-datei von mpd ansehe (/var/log/mpd/mpd.log) bemerke ich folgendes:

    Code
    Nov 30 11:31 : client: [3] opened from [::1]:57099
    Nov 30 11:34 : client: [3] closed

    wenn ich nach dem Start des scripts innerhalb der ersten Minute den Button mehrfach drücke, startet und stoppt die Audioausgebe wie gewünscht und der closed Eintrag im Log verzögert sich. Erst wenn dieser Eintrag im Log auftaucht, zeigt sich der Fehler.

    Es dauert übrigens genau eine Minute nach der letzten Button - Betätigung bis der client stoppt. Deshalb auch der Zeitabstand von vier Minuten im Log, denn ich habe den Button mehrfach alle 30 Sekunden gedrückt.

    Das heißt, erst wenn der client, warum auch immer, gestoppt ist, kann das script nicht mehr mit dem daemon kommunizieren und verabschiedet sich.

    Die Frage ist also, weshalb stoppt der client? Ist das ein automatischer timeout? Hier bringt mich momentan die googelei nicht weiter, oder ich stelle die falsche Frage. Die Doku von mpd ist auch nicht viel sprechender.

    :wallbash:
    Gunter
    Automatisch zusammengefügt:
    Gotscha - zumindest der "workaround" funktioniert.

    ich habe einfach die Schleife um einen client Aufruf alle 20 Sekunden eingefügt. Damit unterbleibt das automatische Beenden des clients durch timeout und das script läuft und läuft und läuft.

    Weshalb allerdings der client vorher beendet wurde würde mich schon interressieren.

    :D
    Gunter

    Einmal editiert, zuletzt von gupi (30. November 2015 um 14:13)

  • Hi Gupi,
    ich habe versucht gemäß Tutorial dieses "Audiobook" zum Laufen zu bringen. Wenn ich aber versuche mitttels
    sudo python /home/pi/tobabp.py zu starten, erhalte ich eine Fehlermeldung.
    Wenn ich den USB-Stick "1GB" einstecke blinkt zwar die LED wie im Video gezeigt, dann blinkt der Stick und dann wieder die LED.
    Aber danach zeigt sich im Terminal die folgende Fehlermeldung (vielleicht kennst Du das Problem):

    {'playlistlength': '0', 'playlist': '2', 'repeat': '0', 'consume': '0', 'mixrampdb': '0.000000', 'random': '0', 'state': 'stop', 'xfade': '0', 'volume': '80', 'single': '0', 'mixrampdelay': 'nan'}
    [ ok ] Stopping Music Player Daemon: mpd.
    [....] Starting Music Player Daemon: mpdlisten: bind to '[::1]:6600' failed: Failed to create socket: Address family not supported by protocol (continuing anyway, because binding to '127.0.0.1:6600' succeeded)
    Failed to load database: Failed to open database file "/var/lib/mpd/tag_cache": No such file or directory
    . ok
    volume: 80% repeat: off random: off single: off consume: off
    [ ok ] Stopping Music Player Daemon: mpd.
    [....] Starting Music Player Daemon: mpdlisten: bind to '[::1]:6600' failed: Failed to create socket: Address family not supported by protocol (continuing anyway, because binding to '127.0.0.1:6600' succeeded)
    . ok
    {'playlistlength': '0', 'playlist': '2', 'repeat': '0', 'consume': '0', 'mixrampdb': '0.000000', 'random': '0', 'state': 'stop', 'xfade': '0', 'volume': '80', 'single': '0', 'mixrampdelay': 'nan'}

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!