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 Default playlistcache.csv.

Die Funktionsweise ist wiefolgt: Der ESPuino schaut, ob es im angefragten Verzeichnis bereits einen 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. 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 aus.

Wichtig:

  • Pro Verzeichnis wird ein Cachefile angelegt.
  • Der Cache arbeitet nicht bei einer Playlist, die nur aus einer Datei besteht und auch nicht bei Webradio.
  • 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.
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.