Neues Feature: Cached-Playlist

Es kam vor einer Weile hier mal ein Thema auf, bei dem es darum ging, dass die Playlist-Generierung zu lange dauert. Der Grund dafür ist, dass der gesamte Inhalt eines Verzeichnis jedes Mal neu gelesen und geparst wird. Das ist ein Vorgang, der nicht fürchterlich schnell ist.

Diesem Mechanismus habe ich nun einen Cache verpasst, den man mit ENABLE_CACHED_PLAYLIST aktivieren kann. Der Name des Cachefiles lässt sich via playlistCacheFile festlegen und lautet per Voreinstellung playlistcache.csv.

Die Funktionsweise ist wiefolgt: Der ESPuino schaut, ob es im angefragten Verzeichnis bereits ein Playlist-Cache existiert. Also nehmen wir an, wir wollen aus dem Ordner /mp3/Kinderlieder alle Dateien abspielen, dann wird nach /mp3/Kinderlieder/playlistcache.csv gesucht. Existiert diese Datei nicht, so wird der Ordner wie üblich geparst. Gleichzeitig wird die csv-Datei jedoch auch angelegt, so dass sie für den nächsten Abspielvorgang zur Verfügung steht. Diese Datei enthält dann alle nutzbaren Dateien des Verzeichnis, das geparst wurde. Wird die Karte erneut aufgelegt, so wird das Cachefile gelesen und daraus die Playlist generiert. Je mehr Dateien in einem Verzeichnis sind, desto mehr wirkt sich das Caching hinsichtlich Schnelligkeit aus. Kurzum: Es gibt eigentlich keinen Grund, es nicht zu aktivieren :slight_smile: .

Wichtig:

  • Pro Verzeichnis wird ein Cachefile angelegt.
  • Der Cache arbeitet nicht bei einer Playlist, die nur aus einer Datei besteht und auch nicht beim Modus Webradio.
  • Im Modus .m3u funktioniert das Caching auch nicht. Würde hier jedoch auch gar keinen Sinn machen, da eine .m3u-Datei ja im Prinzip schon wie ein Cache aufgebaut ist.
  • Wenn im Verzeichnis, in dem das Cachefile liegt, neue Dateien hinzukommen, die im Rahmen einer Playlist abgespielt werden sollen, so muss das Cachefile gelöscht werden, wenn die Dateien nicht über den Webbrowser (via Webtransfer) auf die Karte geladen wurden (d.h. per FTP oder direkt von Computer auf SD). Natürlich nur dann, wenn ENABLE_CACHED_PLAYLIST aktiv ist. Wurde Webtransfer verwendet, so löscht ESPuino diese Datei selbstständig.
5 „Gefällt mir“

Nachtrag: Das Caching ist nun auch für Playlists, die zufällig generiert werden, verfügbar. Das Caching hat ja mit dem „Verwürfeln“ der Playlist nichts zu tun, da das Verwürfeln eh immer nachgelagert geschieht.