ESP32 MP3 Player with SD Card Support - Outdated

I am having issues with this guide 7.5 MP3 Player with SD Card Support — SunFounder ESP32 Starter Kit documentation

I have an error where this import is not recognized, and am unable to get the speaker + mp3 working. I have the latest version of the ESP8266Audio library installed.

#include "AudioFileSourceSD_MMC.h"
fatal error: AudioFileSourceSD_MMC.h: No such file or directory
 #include "AudioFileSourceSD_MMC.h"

It is possible that the files in your ESP8266Audio.zip library were not uploaded completely.
You are missing AudioFileSourceSD_MMC.h, which causes the error to be reported.
We suggest you delete the previously downloaded code and re-download the new code package package and unzip it.
Then reinstall the ESP8266Audio.zip library.
You use manual installation, installation tutorial steps to install:
https://docs.sunfounder.com/projects/esp32-starter-kit/en/latest/arduino/arduino_start/add_libraries_ar.html#install-lib-man
After successful installation, go ahead and run the sample code to see how it works.

Hi where are you getting the ESP8266Audio.zip library?

I have installed the library from this source GitHub - earlephilhower/ESP8266Audio: Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, MP3, and AAC files on I2S DACs or with a software emulated delta-sigma DAC on the ESP8266 and ESP32 but it is still not recognizing the following import.

#include "AudioFileSourceSD_MMC.h"

ESP8266Audio.zip is included in our product code package.
The path is:\esp32-starter-kit-main\c\libraries

You use manual installation, installation tutorial steps to install:
https://docs.sunfounder.com/projects/esp32-starter-kit/en/latest/arduino/arduino_start/add_libraries_ar.html
After successful installation, go ahead and run the sample code to see how it works.
020201

Thank you for your help. Where can I find the URL to your product code package?

Files are included in the code zip downloaded in the previous section: Download the Code — SunFounder ESP32 Starter Kit documentation

I also have an issue with this sketch:
In file included from c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceHTTPStream.cpp:23:
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceHTTPStream.h:56:5: error: ‘WiFiClient’ does not name a type
56 | WiFiClient client;
| ^~~~~~~~~~
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceHTTPStream.cpp: In member function ‘virtual bool AudioFileSourceHTTPStream::open(const char*)’:
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceHTTPStream.cpp:42:14: error: ‘client’ was not declared in this scope; did you mean ‘Client’?
42 | http.begin(client, url);
| ^~~~~~
| Client
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceHTTPStream.cpp: In member function ‘virtual uint32_t AudioFileSourceHTTPStream::readInternal(void*, uint32_t, bool)’:
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceHTTPStream.cpp:105:3: error: ‘WiFiClient’ was not declared in this scope
105 | WiFiClient stream = http.getStreamPtr();
| ^~~~~~~~~~
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceHTTPStream.cpp:105:15: error: ‘stream’ was not declared in this scope; did you mean ‘std::io_errc::stream’?
105 | WiFiClient stream = http.getStreamPtr();
| ^~~~~~
| std::io_errc::stream
In file included from c:\users\gouge\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\ios:42,
from c:\users\gouge\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\ostream:38,
from c:\users\gouge\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\bits\unique_ptr.h:41,
from c:\users\gouge\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\memory:76,
from C:\Users\gouge\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\libraries\HTTPClient\src/HTTPClient.h:34,
from c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceHTTPStream.h:26:
c:\users\gouge\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\bits\ios_base.h:204:24: note: ‘std::io_errc::stream’ declared here
204 | enum class io_errc { stream = 1 };
| ^~~~~~
In file included from c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceICYStream.h:31,
from c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceICYStream.cpp:28:
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceHTTPStream.h:56:5: error: ‘WiFiClient’ does not name a type
56 | WiFiClient client;
| ^~~~~~~~~~
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceICYStream.cpp: In member function 'virtual bool AudioFileSourceICYStream::open(const char
)':
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceICYStream.cpp:49:14: error: ‘client’ was not declared in this scope; did you mean ‘Client’?
49 | http.begin(client, url);
| ^~~~~~
| Client
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceICYStream.cpp: In member function 'virtual uint32_t AudioFileSourceICYStream::readInternal(void
, uint32_t, bool)':
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceICYStream.cpp:118:3: error: ‘WiFiClient’ was not declared in this scope
118 | WiFiClient stream = http.getStreamPtr();
| ^~~~~~~~~~
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceICYStream.cpp:118:15: error: ‘stream’ was not declared in this scope; did you mean ‘std::io_errc::stream’?
118 | WiFiClient stream = http.getStreamPtr();
| ^~~~~~
| std::io_errc::stream
In file included from c:\users\gouge\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\ios:42,
from c:\users\gouge\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\ostream:38,
from c:\users\gouge\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\bits\unique_ptr.h:41,
from c:\users\gouge\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\memory:76,
from C:\Users\gouge\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\libraries\HTTPClient\src/HTTPClient.h:34,
from c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioFileSourceICYStream.h:26:
c:\users\gouge\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\bits\ios_base.h:204:24: note: ‘std::io_errc::stream’ declared here
204 | enum class io_errc { stream = 1 };
| ^~~~~~
In file included from c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioGeneratorMIDI.cpp:69:
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\libtinysoundfont/tsf.h: In function 'void tsf_channel_midi_control(tsf
, int, int, int)':
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\libtinysoundfont/tsf.h:2100:1: error: insn does not satisfy its constraints:
2100 | }
| ^
(insn 883 353 354 51 (set (reg:SF 19 f0 [371])
(mem/u/c:SF (symbol_ref/u:SI ("
.LC223") [flags 0x2]) [0 S4 A32])) “c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\libtinysoundfont/tsf.h”:2053:106 49 {movsf_internal}
(nil))
during RTL pass: postreload
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\libtinysoundfont/tsf.h:2100:1: internal compiler error: in extract_constrain_insn, at recog.cc:2692
libbacktrace could not find executable to open
Please submit a full bug report, with preprocessed source (by using -freport-bug).
See https://gcc.gnu.org/bugs/ for instructions.
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioOutputI2S.cpp: In member function ‘bool AudioOutputI2S::begin(bool)’:
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioOutputI2S.cpp:168:9: error: ‘esp_chip_info_t’ was not declared in this scope
168 | esp_chip_info_t out_info;
| ^~~~~~~~~~~~~~~
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioOutputI2S.cpp:169:24: error: ‘out_info’ was not declared in this scope
169 | esp_chip_info(&out_info);
| ^~~~~~~~
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioOutputI2S.cpp:169:9: error: ‘esp_chip_info’ was not declared in this scope
169 | esp_chip_info(&out_info);
| ^~~~~~~~~~~~~
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioOutputI2S.cpp:232:28: error: ‘I2S_MCLK_MULTIPLE_DEFAULT’ was not declared in this scope; did you mean ‘I2S_MCLK_MULTIPLE_512’?
232 | .mclk_multiple = I2S_MCLK_MULTIPLE_DEFAULT, // Unused
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| I2S_MCLK_MULTIPLE_512
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioOutputSPDIF.cpp: In constructor ‘AudioOutputSPDIF::AudioOutputSPDIF(int, int, int)’:
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioOutputSPDIF.cpp:108:22: error: ‘I2S_MCLK_MULTIPLE_DEFAULT’ was not declared in this scope; did you mean ‘I2S_MCLK_MULTIPLE_512’?
108 | .mclk_multiple = I2S_MCLK_MULTIPLE_DEFAULT, // Unused
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| I2S_MCLK_MULTIPLE_512
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioOutputSPDIF.cpp: In member function ‘virtual bool AudioOutputSPDIF::SetRate(int)’:
c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioOutputSPDIF.cpp:186:26: error: too many arguments to function ‘void rtc_clk_apll_enable(bool)’
186 | rtc_clk_apll_enable(1, 28, 8, 5, 0);
| ~^~
In file included from c:\Users\gouge\Documents\Arduino\libraries\ESP8266Audio\src\AudioOutputSPDIF.cpp:45:
C:\Users\gouge\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-dc859c1e67\esp32/include/soc/esp32/include/soc/rtc.h:242:6: note: declared here
242 | void rtc_clk_apll_enable(bool enable);
| ^
~~~~~~~~~~~~~~

Which example you uploaded that caused this error?
We suggest you to provide us more information (screenshots/videos) so that we can analyse and solve the problem.

this error

(MP3_PLAYER.ino.cpp.o):(.literal._Z5setupv+0x1c): undefined reference to `AudioFileSourceSD_MMC::AudioFileSourceSD_MMC(char const*)’

what this dont work :frowning:
i am beginner :slight_smile:
my board is :SunFounder ESP32 Ultimate Starter Kit with Battery & ESP32-WROOM-32E Board, RoHS Compliant
and program : 7.5 MP3 Player with SD Card Support

please help me (excuse my english i am from quebec french) :slight_smile:

Please describe the problem you are encountering in detail. Is there an error occurring during the code upload process? Are all the necessary dependency libraries correctly installed?

It would be even better if you could provide a video of the code uploading process, as it would help us analyze and resolve the issue more effectively.