PlayMP3FromSDToDAC.ino 1.1 KB

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