程序单独使用可以播放音频但是放在程序中就无法播放音频了
以下是单独使用的程序(可以正常使用)
void loop()
{
switchVal = digitalRead(SWITCH_PIN);
Serial.println(switchVal);
if (mp3->isRunning()) { // 是否在播放
if (!mp3->loop()){ // 是否播放完了
mp3->stop(); // 停止播放
delete file;
delete mp3;
mp3 = new AudioGeneratorMP3();
}
} else {
if (switchVal == 0) { // 开关接通为低电平
file = new AudioFileSourceSPIFFS("/music.mp3"); // 初始化音频文件
Serial.printf("MP3 done\n");
delay(1000);
mp3->begin(file, out); // 开始播放文件
}
}
}
无法播放音频的程序段
if (digitalRead(D1) == 0) {
delay(5000);
Serial.println("5s Start.");
while (digitalRead(D1) == 0) {
thetim1 = millis(); //计时开始
Serial.printf(" time start ");
do {
analogWrite(LedPin, brightness); //灯光常亮
delay(1000);
//music
if (mp3->isRunning()) { // 是否在播放
if (!mp3->loop()) { // 是否播放完了
mp3->stop(); // 停止播放
delete file;
delete mp3;
mp3 = new AudioGeneratorMP3();
ilk2 = 0;
}
} else {
if (ilk2 == 0) { //自锁
file = new AudioFileSourceSPIFFS("/music.mp3"); // 初始化音频文件
Serial.printf("MP3 done\n");
delay(1000);
mp3->begin(file, out); // 开始播放文件
ilk2 = 1;
}
}
//music
while (digitalRead(D1) == 1) {
delay(3000);
if (digitalRead(D1) == 1) {
analogWrite(LedPin, 0);
int lswc = 1; //app拉屎完成提醒
Serial.println(" shit finish ");
delay(1000);
goto bailout;
} else {
Serial.println(" break ");
break;
}
}
thetim2 = millis();
num1 = thetim2 - thetim1;
Serial.println(" get time ");
} while (num1 < tim);
mp3->begin(file, out);
这个接口调用有错误码返回值吗,有的话打印出来看下错误码多少
if (digitalRead(D1) == 0) {
delay(5000);
Serial.println("5s Start.");
while (digitalRead(D1) == 0) {
thetim1 = millis(); //计时开始
Serial.printf(" time start ");
do {
analogWrite(LedPin, brightness); //灯光常亮
delay(1000);
//music
if (mp3->isRunning()) { // 是否在播放
if (!mp3->loop()) { // 是否播放完了
mp3->stop(); // 停止播放
delete file;
delete mp3;
mp3 = new AudioGeneratorMP3();
ilk2 = 0;
}
} else {
if (ilk2 == 0) { //自锁
file = new AudioFileSourceSPIFFS("/music.mp3"); // 初始化音频文件
Serial.printf("MP3 done\n");
delay(1000);
mp3->begin(file, out); // 开始播放文件
ilk2 = 1;
}
}
//music
while (digitalRead(D1) == 1) {
delay(3000);
if (digitalRead(D1) == 1) {
analogWrite(LedPin, 0);
int lswc = 1; //app拉屎完成提醒
Serial.println(" shit finish ");
delay(1000);
goto bailout;
} else {
Serial.println(" break ");
break;
}
}
thetim2 = millis();
num1 = thetim2 - thetim1;
Serial.println(" get time ");
} while (num1 < tim);
}
}
你代码不完整啊,灯能亮吗?