Moin,
ich habe gerade einen Audioplayer für meine Kinder gebaut und ein Shell-Skript geschrieben. Die Kinder können nun über einen Druck auf einen von 6 Buttons, denen jeweils eine bunte Figur zugeordnet ist, einen Song bzw. eine Playlist auswählen und abspielen (beliebiges Audioformat). Der Quelltext ist hier:
https://github.com/Terminal-Geek/Audioplayer
Das Ganze basiert auf einem Raspberry Pi mit Raspbian (wie Ubuntu ein Debian-Derivat, weshalb ich mich dafür entschieden habe, weil ich seit Jahren mit Ubuntu arbeite). Als Player-Daemon fungiert xmms2. Die Inputs erfolen über die GPIO pins des Raspberry Pi.
Die ausführliche Doku mache ich, wenn das Projekt vollständig zu Ende entwickelt ist. Das eine oder andere Feature (auf Seiten von Hardware und Software) fehlt nämlich noch.
Nun möchte ich erreichen, dass nach dem Anspringen einer Playlist der zuletzt gespielte Track an derselben Stelle fortgesetzt wird, wo er zuletzt gespielt wurde. Dafür lasse ich im Hintergrund ein Helper-Script laufen, das alle zehn Sekunden den gerade gespielten Track und die aktuelle Spielzeit in eine Datei schreibt. Die kann ich dann wiederum im Audioplayer-Skript auslesen (mit grep) - selbst nach einem Neustart des Systems bleibt somit die letzte Position im Track erhalten. Jede Playlist (6 Stück) hat ihre eigene "Log-Datei", die alle so aufgebaut sind:
track: x
playtime: yy:zz
So weit die Theorie. Das Auslesen der Variablen funktioniert auch wunderbar. Setzte ich die Variable für den Track als Integer (typeset -i track), kann ich den richtigen Track mit
xmms2 jump $track
anspringen. Wunderbar. Bei playtime funktioniert Folgendes NICHT:
xmms2 seek $playtime
Mit Anführungsstrichen und einfachen Anführungsstrichen rund um $playtime geht es auch nicht.
Mit einer "Umtypisierung" der Variablen in einen integren Wert komme ich natürlich auch nicht weiter: yy:zz ist nun mal kein Integer.
Hat jemand eine Idee, wie ich das gewünschte Verhalten erreiche?
Jeder Hinweis hilft. Danke! Digital-Junkie