There appears to be at least two kinds of MP3 players. Tracked players such as DFplayer are given the track name and play that from an onboard FAT16 or FAT32 SD card. The other kind is a streaming player where the MCU must read the SD card and spoon feed the data byte by byte via SPI to the player — such as the older Adafruit VS1053 player. There may be players with other kind of architectures.
Problem I have is that my tracks are at least one hour long and consist of a mix of songs (EDM, Progressive, etc). A track can easily be three hours long and 400 MB. Usually I want to play one or few of the songs in such a track, and not the whole three hour track. So I need a method to play the track random access anywhere in the middle, by providing the byte address of the start of the song in a track to the player. It is not practical for me to break down each track into its songs and make a track for each song using an audio editor. There are about 10,000 songs.
1- Are there tracked players that can start playing from the middle of a track, such as by fast forwarding (instantly)? Or do I have to use a streamed player. I am pretty sure the popular tracked players such as the DFplayer cannot play from the middle.
2- If a song is extracted from the middle of a track and sent to a streaming player, would that stream be all messed up because it does not start from the beginning of the track, and the decoder may not have the correct initial conditions to play from the middle of a track?
I’m sorry, but I’m not familiar with audio with the ESP32 at all.
Nonetheless, I’ve done some research. But I couldn’t find any information about what you want to achieve.
I’m sorry that I can’t help much.
Maybe you can try to post your issue in our Facebook group and see if it reaches more people: https://www.facebook.com/groups/RandomNerdTutorials