Hallo Liebe TonUINO Community,
Ich bin gerade dabei meinen ersten TonUINO zu bauen und komme leider bei einem Problem nicht weiter. Leider konnte ich auch im Internet bisher keine Lösung finden. Vielleicht hat jemand von euch ja eine Idee.
Beim Abspielen eines Albums wird die Anzahl der Tracks scheinbar immer erst nach ein paar Versuchen neu geladen.
Ich habe zum Testen eine SD-Karte die etwa folgende Struktur aufweist:
- mp3 (mit heruntergeladenen Inhalten)
- advert (mit heruntergeladenen Inhalten)
- 01
- 001.mp3
- 002.mp3
- 003.mp3
- 004.mp3
- 005.mp3
- 006.mp3
- 007.mp3
- 02
- 001.mp3
- 002.mp3
- 003.mp3
- 004.mp3
- 005.mp3
Wenn ich nun Beispielsweise Ordner 01 und dann Ordner 02 abspiele wird für Ordner 02 ausgegeben, dass es 7 Tracks gibt. Wenn ich vorher im Admin-menü war werden für das nächste Abspielen eines Ordners sogar 332 Dateien (anzahl des mp3 Verzeichnisses) angegeben…
Es sieht aus als würde die Track-Anzahl irgendwie gecached und erst nach ein bis zwei Versuchen wird sie dann korrekt geladen.
Ich habe mir den Code mal genauer angeschaut und wie es aussieht kommt der Wert direkt vom DFPlayer:
numTracksInFolder = mp3.getFolderTrackCount(myFolder->folder);
Müsste also eigentlich immer aktuell sein. Hat der DFPlayer irgendwie selbst einen Cache?
Hier noch eine Beispielausgabe mit Kommentaren (//…)
Ich spiele hier einmal Ordner 01 ab und dann drei mal Ordner 02
_____ _____ _____ _____ _____
|_ _|___ ___| | | | | | |
| | | . | | | |- -| | | | | |
|_| |___|_|_|_____|_____|_|___|_____|
TonUINO Version 2.1
created by Thorsten Voß and licensed under GNU/GPL.
Information and contribution at https://tonuino.de.
=== loadSettingsFromFlash()
Version: 2
Maximal Volume: 25
Minimal Volume: 5
Initial Volume: 15
EQ: 1
Locked: 0
Sleep Timer: 0
Inverted Volume Buttons: 1
Admin Menu locked: 0
Admin Menu Pin: 1111
=== setstandbyTimer()
0
Firmware Version: 0x92 = v2.0
=== playShortCut()
3
Shortcut not configured!
Card UID: E3 33 EE A7
PICC type: MIFARE 1KB
Authenticating Classic using key A...
Reading data from block 4 ...
Data on Card :
13 37 B3 47 02 01 02 09 DA 00 00 00 00 00 00 00
1
1
== playFolder()
=== disablestandby()
5 Dateien in Ordner 1 // Hier ist der erste Fehler. der Ordner 01 hat 7 Dateien
Album Modus -> kompletten Ordner wiedergeben
Card UID: 13 E0 92 08
PICC type: MIFARE 1KB
Authenticating Classic using key A...
Reading data from block 4 ...
Data on Card :
13 37 B3 47 02 02 01 09 DA 00 00 00 00 00 00 00
2
2
== playFolder()
=== disablestandby()
7 Dateien in Ordner 2 // Nun sind die 7 Dateien von Ordner 01 geladen, nun wären aber 5 richtig..
// es wird Track 06 abgespielt, den es gar nicht gibt. Daher gibt es keinen Ton..
Hörspielmodus -> zufälligen Track wiedergeben
6
Card UID: 13 E0 92 08
PICC type: MIFARE 1KB
Authenticating Classic using key A...
Reading data from block 4 ...
Data on Card :
13 37 B3 47 02 02 01 09 DA 00 00 00 00 00 00 00
2
2
== playFolder()
=== disablestandby()
7 Dateien in Ordner 2 // Immer noch falsche Anzahl
Hörspielmodus -> zufälligen Track wiedergeben
1
Card UID: 13 E0 92 08
PICC type: MIFARE 1KB
Authenticating Classic using key A...
PCD_Authenticate() failed: Error in communication.
// RFID-Karte war vermutlich kurz weg und wieder da..
Card UID: 13 E0 92 08
PICC type: MIFARE 1KB
Authenticating Classic using key A...
Reading data from block 4 ...
Data on Card :
13 37 B3 47 02 02 01 09 DA 00 00 00 00 00 00 00
2
2
== playFolder()
=== disablestandby()
5 Dateien in Ordner 2 // Nun ist die korrekte Anzahl geladen
Hörspielmodus -> zufälligen Track wiedergeben
5
Ein zweites Beispiel (Intro gekürzt)
- Admin Menü
- Abbruch
- Ordner 1 abspielen
- Ordner 1 erneut abspielen
=== adminMenu()
=== voiceMenu() (12 Options)
553
552
Card UID: E3 33 EE A7
PICC type: MIFARE 1KB
Authenticating Classic using key A...
Reading data from block 4 ...
Data on Card :
13 37 B3 47 02 01 02 09 DA 00 00 00 00 00 00 00
1
1
== playFolder()
=== disablestandby()
332 Dateien in Ordner 1
Album Modus -> kompletten Ordner wiedergeben
Card UID: E3 33 EE A7
PICC type: MIFARE 1KB
Authenticating Classic using key A...
Reading data from block 4 ...
Data on Card :
13 37 B3 47 02 01 02 09 DA 00 00 00 00 00 00 00
1
1
== playFolder()
=== disablestandby()
7 Dateien in Ordner 1
Album Modus -> kompletten Ordner wiedergeben
1
=== nextTrack()
Albummodus ist aktiv -> nächster Track: 2
Ich habe bisher folgendes versucht:
- verschiedene Versionen von DFMiniMp3
- SD Karte komplett shredden, formatieren (FAT32), neu bespielen
- SD Karte mit fatsort sortieren
- DFPlayer ausgetauscht
- alle Lötstellen überprüft und nachgemessen
Falls jemand eine Idee hat, wäre ich sehr dankbar
LG Robin