Um Kodi, hier auf einem Raspberry PI mit OpenELEC, als ewige Diashow zu verwenden, hatte ich vor ein paar Jahren folgendes Skript geschrieben:

#Version 1
#created by Tebori
import xbmc, time, xbmcgui, os, sys

#set volume to 100%, mode to RepeatAll and start playing video
xbmc.executebuiltin( "SlideShow(/storage/pictures/Diashow/ ,recursive, random)" )
xbmc.executebuiltin( 'SetVolume(10)' )

PlayerIsPlaying = True
cWID = 0

xbmc.sleep(30000)

cWID = 0

try:
        cWID = xbmcgui.getCurrentWindowId()
except BaseException, exception:
        cWID = 0
except Exception, exception:
        cWID = 0
except NameError, exception:
        cWID = 0
except RuntimeError, exception:
        cWID = 0
finally:
        cWID = cWID + 0
if cWID == 10003:
        xbmc.executebuiltin( "Notification(Info,Skript unterbrochen - Neustart System erforderlich)" )
        sys.exit()

cWID = 0
while PlayerIsPlaying:
        xbmc.executebuiltin( "PlayerControl(RandomOn)" )
        xbmc.executebuiltin( "PlayerControl(Play)" )
        try:
                #cWID=xbmc.getInfoLabel('currentwindow')
                cWID = xbmcgui.getCurrentWindowId()
        except BaseException, exception:
                cWID = 0
        except Exception, exception:
                cWID = 0
        except NameError, exception:
                cWID = 0
        except RuntimeError, exception:
                cWID = 0
        finally:
                cWID = cWID + 0
        if not cWID == 12007:
                PlayerIsPlaying = False
        xbmc.sleep(5000)

#XBMC neu starten
xbmc.sleep(10000)
xbmc.executebuiltin( "Notification(Info,System wird automatisch neu gestartet)" )
xbmc.sleep(2000)
xbmc.executebuiltin('XBMC.Reboot')

Das Skript prüft hierbei erstmalig 30 Sekunden nach Start, ob die aktuelle Window ID 12007 (Slideshow) ist. Wenn nicht wird ein Reboot durchgeführt.

Dieses muss zwingend als autoexec.py bei Verwendung von OpenElec im Verzeichnis:

/storage/.kodi/userdata/

unter Linux:

/home/<username>/.kodi/userdata/

unter Windows:

%appdata%\Kodi\userdata

gespeichert werden.

Bei OpenELEC kann, zudem bei aktivierter Samba-Freigabe, die Datei direkt in der Freigabe:

userdata

gespeichert werden.

Zur Korrektur des Speicherortes bitte die folgende Zeile modifizieren:

xbmc.executebuiltin( "SlideShow(/storage/pictures/Diashow/ ,recursive, random)" )

Bei Verwendung von OpenELEC wurden die Dateien über die Netzwerkfreigabe Pictures und in dem selbst erstelltem Unterverzeichnis Diashow gespeichert.

Um den ewigen Autostart im Fehlerfall zu unterbrechen, zum Beispiel um neue Dateien über den Dateimanager zu übernehmen, muss innerhalb von 30 Sekunden in den Dateimanager gewechselt werden. Nach Abschluss der Maßnahmen muss der Player per Hand neu gestartet werden.

Epilog:

Die hier vorliegende Lösung konnte ich bereits mehrfach, mit einem Raspberry PI, OpenELEC und ohne zusätzliche Maus, Tastatur und Fernbedienung, bei öffentlichen Veranstaltungen erfolgreich einsetzen.

Zusätzlich ist es bei dieser Lösung genial, wenn ein Fernseher, Bildschirm oder Videoprojektor mit USB-Anschluss, als Spannungsversorgung für den Raspberry Pi, zur Verfügung steht. Hierdurch wird nur noch ein Stromkabel sichtbar verlegt benötigt.

Weiterführende Quellen:

Advertisements