Никак не могу заставить проигрывать файлы MP3 последовательно, может кто нибудь делал такое?
Пишет Ошибка открытия 'rickroll.mp3' Ошибка открытия 'output.mp3' Ошибка открытия 'harpsi-cs.mp3' Воспроизведение с SD-карты завершено.
#include <Arduino.h>
#include "AudioFileSourceSD.h"
#include "AudioOutputI2S.h"
#include "AudioGeneratorMP3.h"
File dir;
AudioFileSourceSD *source = NULL;
AudioOutputI2S *output = NULL;
AudioGeneratorMP3 *decoder = NULL;
void setup() {
Serial.begin(115200);
Serial.println();
delay(1000);
audioLogger = &Serial;
source = new AudioFileSourceSD();
output = new AudioOutputI2S();
output->SetPinout(26, 25, 19);
output->SetGain( 0.2 );
decoder = new AudioGeneratorMP3();
SPI.begin(14, 2, 15, 13);
SD.begin(13, SPI, 40000000);
dir = SD.open("/");
}
void loop() {
if ((decoder) && (decoder->isRunning())) {
if (!decoder->loop()) decoder->stop();
} else {
File file = dir.openNextFile();
if (file) {
if (String(file.name()).endsWith(".mp3")) {
source->close();
if (source->open(file.name())) {
Serial.printf_P(PSTR("Воспроизведение '%s' с SD-карты...\n"), file.name());
decoder->begin(source, output);
} else {
Serial.printf_P(PSTR("Ошибка открытия '%s'\n"), file.name());
}
}
} else {
Serial.println(F("Воспроизведение с SD-карты завершено.\n"));
delay(1000);
}
}
}
Если он это сделает, то в следующей строке не сможет получить имя файла, так как закроет его.
Мне вот интересно - зачем в 33 строке закрывать то, чего еще не открыто?
Ну и имя (путь к файлу) можно в строковую переменную «загнать» попробовать.
Косая черта перед именем означает, что записан полный путь к файлу от корневой директории. Отсутствие черты означает, что путь читается от текущей папки