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
GNU General Public License v3.0
1.99k stars 433 forks source link

PlayMP3ToSPDIF logs the message "MP3 source file not open" to the Serial monitor. #632

Open matthewdrummond opened 1 year ago

matthewdrummond commented 1 year ago

Playback ends immediately, as in Serial.printf("MP3 done\n"); executes right away. Here is the code that I have

include

if defined(ARDUINO_ARCH_RP2040)

void setup() {} void loop() {}

else

ifdef ESP32

include

include "SPIFFS.h"

else

include

endif

include "AudioFileSourceSPIFFS.h"

include "AudioFileSourceID3.h"

include "AudioGeneratorMP3.h"

include "AudioOutputI2S.h"

// To run, set your ESP8266 build to 160MHz, and include a SPIFFS of 512KB or greater. // Use the "Tools->ESP8266/ESP32 Sketch Data Upload" menu to write the MP3 to SPIFFS // Then upload the sketch normally.

// pno_cs from https://ccrma.stanford.edu/~jos/pasp/Sound_Examples.html

AudioGeneratorMP3 mp3; AudioFileSourceSPIFFS file; AudioOutputI2S out; AudioFileSourceID3 id3;

// Called when a metadata event occurs (i.e. an ID3 tag, an ICY block, etc. void MDCallback(void cbData, const char type, bool isUnicode, const char *string) { (void)cbData; Serial.printf("ID3 callback for: %s = '", type);

if (isUnicode) { string += 2; }

while (string) { char a = (string++); if (isUnicode) { string++; } Serial.printf("%c", a); } Serial.printf("'\n"); Serial.flush(); }

void setup() { WiFi.mode(WIFI_OFF); Serial.begin(115200); delay(1000); SPIFFS.begin(); Serial.printf("Sample MP3 playback begins...\n");

audioLogger = &Serial; file = new AudioFileSourceSPIFFS("/pno-cs.mp3"); id3 = new AudioFileSourceID3(file); id3->RegisterMetadataCB(MDCallback, (void*)"ID3TAG"); out = new AudioOutputI2S(); mp3 = new AudioGeneratorMP3(); mp3->begin(id3, out); }

void loop() { if (mp3->isRunning()) { if (!mp3->loop()) mp3->stop(); } else { //Serial.printf("MP3 done\n"); delay(1000); } }

endif

And here is the Serial Monitors output:

Sample MP3 playback begins... MP3 source file not open

Anyone have any experience with this example? I am stuck here. Where is the Serial.println() that logs "MP3 source file not open" coming from? Thank you for any help

ChulseungYoo commented 6 months ago

I am having same problem. did you resolved the issue?

I am using nodemcu board with esp-12f from ai thinker