PlayMP3FromSPIFFSToDAC.ino 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma mark - Depend ESP8266Audio and ESP8266_Spiram libraries
  2. /*
  3. cd ~/Arduino/libraries
  4. git clone https://github.com/earlephilhower/ESP8266Audio
  5. git clone https://github.com/Gianbacchio/ESP8266_Spiram
  6. Use the "Tools->ESP32 Sketch Data Upload" menu to write the MP3 to SPIFFS
  7. Then upload the sketch normally.
  8. https://github.com/me-no-dev/arduino-esp32fs-plugin
  9. */
  10. #include <M5Stack.h>
  11. #include <WiFi.h>
  12. #include "AudioFileSourceID3.h"
  13. #include "AudioFileSourceSPIFFS.h"
  14. #include "AudioGeneratorMP3.h"
  15. #include "AudioOutputI2S.h"
  16. #include "SPIFFS.h"
  17. AudioGeneratorMP3 *mp3;
  18. AudioFileSourceSPIFFS *file;
  19. AudioOutputI2S *out;
  20. AudioFileSourceID3 *id3;
  21. void setup() {
  22. M5.begin();
  23. M5.Power.begin();
  24. WiFi.mode(WIFI_OFF);
  25. SPIFFS.begin();
  26. delay(500);
  27. M5.Lcd.setTextFont(2);
  28. M5.Lcd.printf("Sample MP3 playback begins...\n");
  29. Serial.printf("Sample MP3 playback begins...\n");
  30. // pno_cs from https://ccrma.stanford.edu/~jos/pasp/Sound_Examples.html
  31. file = new AudioFileSourceSPIFFS("/pno-cs.mp3");
  32. id3 = new AudioFileSourceID3(file);
  33. out = new AudioOutputI2S(0, 1); // Output to builtInDAC
  34. out->SetOutputModeMono(true);
  35. mp3 = new AudioGeneratorMP3();
  36. mp3->begin(id3, out);
  37. }
  38. void loop() {
  39. if (mp3->isRunning()) {
  40. if (!mp3->loop()) mp3->stop();
  41. } else {
  42. Serial.printf("MP3 done\n");
  43. delay(1000);
  44. }
  45. }