Bei mir tritt das Problem leider auch mit Arduino 3 und der neuesten ESP32-audioI2S-Version (#d300302) auf. Das sind Songs, die manchmal ohne Probleme durchlaufen und manchmal, scheinbar willkürlich, einfach diesen Fehler bringen und den ESPuino in den Absturz reißen…
I [1533250] info : Reading file: "[...].mp3"
I [1533283] info : MP3Decoder has been initialized, free Heap: 133176 bytes , free stack 3212 DWORDs
N [1533283] '[...].mp3' wird abgespielt (13 von 14)
I [1533779] info : Content-Length: 3677877
I [1533779] info : ID3 framesSize: 139558
I [1533779] info : ID3 version: 2.4
I [1533790] info : ID3 normal frames
I [1533798] id3data : [...]
I [1533962] info : Audio-Length: 3538319
I [1533963] info : stream ready
I [1533964] info : syncword found at pos 0
I [1533970] info : MPEG-2.5, Layer I
I [1533971] info : Channels: 2
I [1533972] info : SampleRate: 44100
I [1533982] info : BitsPerSample: 16
I [1533982] info : BitRate: 64000
I [1555663] info : MP3 decode error -6 : INVALID_FRAMEHEADER
I [1555664] info : syncword found at pos 674
I [1555665] info : syncword found at pos 0
I [1555677] info : MP3 decode error -9 : INVALID_HUFFCODES
I [1555678] info : syncword found at pos 834
I [1555679] info : syncword found at pos 0
I [1555699] info : MPEG-2.5, Layer I
I [1555700] info : Channels: 2
I [1555701] info : SampleRate: 44100
I [1555701] info : BitsPerSample: 16
I [1555712] info : BitRate: 320000
[Edit] Anmerkung: Beim Durchlauf mit der alten Version (Arduino 2, Commit #567abd2) ist die Log-Ausgabe (mit Ausnahme der Zeitstempel und freiem Heap/Stack sowie der Fehlermeldung) identisch - allerdings fehlt die Zeile
I [1555699] info : MPEG-2.5, Layer I
Das macht mich etwas stutzig und ich hab mal kurz die Suchmaschine meines Vertrauens bemüht. Zum einen sind mp3-Dateien ja eigentlich „MPEG-1 / MPEG-2 Audio Layer 3“ und zum anderen wird sowohl im Quellcode von ESP32-audioI2S als auch bei Hydrogenaudio für dieses Format eine Abtastrate von 8-12 kHz beschrieben.
Die Datei hat aber nun eindeutig eine übliche Abtastrate von 44,1 kHz, wie sowohl in der Logdatei (korrekt) steht, als auch sonstige Medientools bestätigen (Ausgabe gekürzt):
➜ file test.mp3
test.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 64 kbps, 44.1 kHz, Stereo
➜ mediainfo test.mp3
General
Complete name : test.mp3
Format : MPEG Audio
File size : 3.51 MiB
Duration : 1 min 50 s
Overall bit rate mode : Variable
Overall bit rate : 255 kb/s
Writing library : Lavf61.7.100
Cover : Yes
Cover type : Cover (front)
Cover MIME : image/jpeg
Audio
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 3
Format settings : Joint stereo
Duration : 1 min 50 s
Bit rate mode : Variable
Bit rate : 256 kb/s
Channel(s) : 2 channels
Sampling rate : 44.1 kHz
Frame rate : 38.281 FPS (1152 SPF)
Compression mode : Lossy
Stream size : 3.37 MiB (96%)
Ich konnte im Quelltext leider nicht erkennen, wo diese Logausgabe herkommt - womöglich hat das aber etwas mit der (manchmal) fehlerhaften Dekodierung zu tun?