repeat songs

This commit is contained in:
2021-09-27 21:17:29 +02:00
parent 04275b3d56
commit 81b57405f7
9 changed files with 48 additions and 27 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -2,12 +2,16 @@
AudioGeneratorMP3 *mp3; AudioGeneratorMP3 *mp3;
AudioFileSourceID3 *id3; AudioFileSourceID3 *id3;
AudioFileSourceLittleFS *file; AudioFileSourceLittleFS *file;
AudioOutputI2S *out; AudioOutputI2S *out;
const char *waveFile = "/Let_it_be.mp3"; uint8_t i = 0;
uint8_t n = 0;
const char *waveFile[] =
{"/ringoffire.mp3",
"/Let_it_be.mp3",
"/Billy-Jean.mp3"};
// Called when a metadata event occurs (i.e. an ID3 tag, an ICY block, etc. // Called when a metadata event occurs (i.e. an ID3 tag, an ICY block, etc.
void MDCallback(void *cbData, const char *type, bool isUnicode, const char *string) void MDCallback(void *cbData, const char *type, bool isUnicode, const char *string)
@@ -45,22 +49,30 @@ void StatusCallback(void *cbData, int code, const char *string)
Serial.flush(); Serial.flush();
} }
void initAudio() void playSong(uint8_t index)
{ {
if (index > AUDIONSONGS)
return;
audioLogger = &Serial; Serial.printf("now playing %s\n", waveFile[index]);
file = new AudioFileSourceLittleFS(waveFile); file = new AudioFileSourceLittleFS(waveFile[index]);
id3 = new AudioFileSourceID3(file); id3 = new AudioFileSourceID3(file);
id3->RegisterMetadataCB(MDCallback, (void *)"ID3TAG"); id3->RegisterMetadataCB(MDCallback, (void *)"ID3TAG");
mp3->begin(id3, out);
}
void initAudio()
{
Serial.println("init Audio");
audioLogger = &Serial;
out = new AudioOutputI2S();
out->SetPinout(I2S_BCLK, I2S_WCLK, I2S_DATA); //bclk, wclk, data
out->SetGain(AUDIOGAIN);
mp3 = new AudioGeneratorMP3(); mp3 = new AudioGeneratorMP3();
mp3->RegisterStatusCB(StatusCallback, (void *)"mp3"); mp3->RegisterStatusCB(StatusCallback, (void *)"mp3");
Serial.println("init Audio Done");
out = new AudioOutputI2S(); playSong(i);
out->SetPinout(19, 33, 22); //bclk, wclk, data
mp3->begin(id3, out);
out->SetGain(0.25);
} }
void handleAudio() void handleAudio()
@@ -69,12 +81,14 @@ void handleAudio()
{ {
if (!mp3->loop()) if (!mp3->loop())
{ {
mp3->stop(); //mp3->stop();
} if(n++ > AUDIOREPEATS)
}
else
{ {
Serial.printf("sound done\n"); i++;
delay(1000); n= 0;
}
playSong(i);
;
}
} }
} }

View File

@@ -1,11 +1,18 @@
#pragma once #pragma once
#include "board.h"
#include "AudioFileSourcePROGMEM.h" #include "AudioFileSourcePROGMEM.h"
#include <AudioFileSourceLittleFS.h> #include <AudioFileSourceLittleFS.h>
#include "AudioGeneratorMP3.h" #include "AudioGeneratorMP3.h"
#include "AudioFileSourceID3.h" #include "AudioFileSourceID3.h"
#include "AudioOutputI2S.h" #include "AudioOutputI2S.h"
#define AUDIOGAIN 0.1
#define AUDIONSONGS 3
#define AUDIOREPEATS 3
void initAudio(void); void initAudio(void);
void handleAudio(void); void handleAudio(void);

View File

@@ -0,0 +1,6 @@
#pragma once
#define I2S_BCLK 19
#define I2S_WCLK 33
#define I2S_DATA 22

View File

@@ -330,12 +330,6 @@ void initStorage()
return; return;
} }
listDir(LITTLEFS, "/", 0); listDir(LITTLEFS, "/", 0);
//testFileIO(LITTLEFS, "/test.txt");
//listDir(LITTLEFS, "/", 0);
//deleteFile(LITTLEFS, "/test.txt");
Serial.println("Test complete");
} }
void handleStorage() void handleStorage()

BIN
Tunes/Billy-Jean.MP3 Normal file

Binary file not shown.

BIN
Tunes/Let it be 13 sec..MP3 Normal file

Binary file not shown.

BIN
Tunes/ring of fire.MP3 Normal file

Binary file not shown.