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;
AudioFileSourceID3 *id3;
AudioFileSourceLittleFS *file;
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.
void MDCallback(void *cbData, const char *type, bool isUnicode, const char *string)
@@ -40,27 +44,35 @@ void StatusCallback(void *cbData, int code, const char *string)
// Note that the string may be in PROGMEM, so copy it to RAM for printf
char s1[64];
strncpy_P(s1, string, sizeof(s1));
s1[sizeof(s1)-1]=0;
s1[sizeof(s1) - 1] = 0;
Serial.printf("STATUS(%s) '%d' = '%s'\n", ptr, code, s1);
Serial.flush();
}
void initAudio()
void playSong(uint8_t index)
{
audioLogger = &Serial;
file = new AudioFileSourceLittleFS(waveFile);
if (index > AUDIONSONGS)
return;
Serial.printf("now playing %s\n", waveFile[index]);
file = new AudioFileSourceLittleFS(waveFile[index]);
id3 = new AudioFileSourceID3(file);
id3->RegisterMetadataCB(MDCallback, (void *)"ID3TAG");
mp3->begin(id3, out);
}
mp3 = new AudioGeneratorMP3();
mp3->RegisterStatusCB(StatusCallback, (void*)"mp3");
void initAudio()
{
Serial.println("init Audio");
audioLogger = &Serial;
out = new AudioOutputI2S();
out->SetPinout(19, 33, 22); //bclk, wclk, data
mp3->begin(id3, out);
out->SetGain(0.25);
out->SetPinout(I2S_BCLK, I2S_WCLK, I2S_DATA); //bclk, wclk, data
out->SetGain(AUDIOGAIN);
mp3 = new AudioGeneratorMP3();
mp3->RegisterStatusCB(StatusCallback, (void *)"mp3");
Serial.println("init Audio Done");
playSong(i);
}
void handleAudio()
@@ -69,12 +81,14 @@ void handleAudio()
{
if (!mp3->loop())
{
mp3->stop();
//mp3->stop();
if(n++ > AUDIOREPEATS)
{
i++;
n= 0;
}
playSong(i);
;
}
}
else
{
Serial.printf("sound done\n");
delay(1000);
}
}

View File

@@ -1,11 +1,18 @@
#pragma once
#include "board.h"
#include "AudioFileSourcePROGMEM.h"
#include <AudioFileSourceLittleFS.h>
#include "AudioGeneratorMP3.h"
#include "AudioFileSourceID3.h"
#include "AudioOutputI2S.h"
#define AUDIOGAIN 0.1
#define AUDIONSONGS 3
#define AUDIOREPEATS 3
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;
}
listDir(LITTLEFS, "/", 0);
//testFileIO(LITTLEFS, "/test.txt");
//listDir(LITTLEFS, "/", 0);
//deleteFile(LITTLEFS, "/test.txt");
Serial.println("Test complete");
}
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.