PlayMP3FromSDToDAC.ino 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. */
  7. #include <M5Stack.h>
  8. #include <WiFi.h>
  9. #include "AudioFileSourceID3.h"
  10. #include "AudioFileSourceSD.h"
  11. #include "AudioGeneratorMP3.h"
  12. #include "AudioOutputI2S.h"
  13. AudioGeneratorMP3 *mp3;
  14. AudioFileSourceSD *file;
  15. AudioOutputI2S *out;
  16. AudioFileSourceID3 *id3;
  17. void setup() {
  18. M5.begin();
  19. M5.Power.begin();
  20. WiFi.mode(WIFI_OFF);
  21. delay(500);
  22. M5.Lcd.setTextFont(2);
  23. M5.Lcd.printf("Sample MP3 playback begins...\n");
  24. Serial.printf("Sample MP3 playback begins...\n");
  25. // pno_cs from https://ccrma.stanford.edu/~jos/pasp/Sound_Examples.html
  26. file = new AudioFileSourceSD("/pno-cs.mp3");
  27. id3 = new AudioFileSourceID3(file);
  28. out = new AudioOutputI2S(0, 1); // Output to builtInDAC
  29. out->SetOutputModeMono(true);
  30. mp3 = new AudioGeneratorMP3();
  31. mp3->begin(id3, out);
  32. }
  33. void loop() {
  34. if (mp3->isRunning()) {
  35. if (!mp3->loop()) mp3->stop();
  36. } else {
  37. Serial.printf("MP3 done\n");
  38. delay(1000);
  39. }
  40. }