Pular para o conteúdo principal

Reprodutor de MP3

Este projeto demonstra como usar a placa reSpeaker Lite para reproduzir arquivos MP3 armazenados no sistema de arquivos SPIFFS.

Biblioteca necessária

Funcionalidades

  • Reproduz arquivos MP3 a partir do sistema de arquivos SPIFFS
  • Utiliza a interface I2S para saída de áudio
  • Suporta extração de metadados e callback
  • Classe AudioPlayer fácil de usar para reprodução de áudio contínua

Enviando arquivos para o SPIFFS

Você pode consultar o Wiki aqui.

Certifique-se de ter as ferramentas necessárias para enviar arquivos para o SPIFFS. Você pode usar a ferramenta "ESP32 Sketch Data Upload" na Arduino IDE ou uma ferramenta externa como "ESP32 File Uploader".

Crie uma pasta chamada "data" no diretório do seu sketch e coloque dentro dela os arquivos MP3 que deseja reproduzir.

Envie os arquivos para o SPIFFS usando a ferramenta escolhida.

Código

#include "AudioTools.h"
#include "AudioLibs/AudioSourceSPIFFS.h"
#include "AudioCodecs/CodecMP3Helix.h"

const char *startFilePath="/";
const char* ext="mp3";
AudioSourceSPIFFS source(startFilePath, ext);
I2SStream i2s;
MP3DecoderHelix decoder;
AudioPlayer player(source, i2s, decoder);

void printMetaData(MetaDataType type, const char* str, int len){
Serial.print("==> ");
Serial.print(toStr(type));
Serial.print(": ");
Serial.println(str);
}

void setup() {
Serial.begin(115200);
AudioLogger::instance().begin(Serial, AudioLogger::Info);

// setup output
auto cfg = i2s.defaultConfig(TX_MODE);
i2s.begin(cfg);

// setup player
//source.setFileFilter("*Bob Dylan*");
player.setMetadataCallback(printMetaData);
player.begin();
}

void loop() {
player.copy();
}

Configuração

startFilePath: O caminho do diretório onde os arquivos MP3 estão localizados no SPIFFS (padrão: "/").

ext: A extensão de arquivo dos arquivos de áudio (padrão: "mp3").

Você pode modificar essas constantes no sketch para corresponder à sua estrutura de arquivos específica e aos seus requisitos.

Personalização

printMetaData: Esta função é chamada quando os metadados são extraídos do arquivo de áudio. Você pode personalizar a função para tratar os metadados de acordo com suas necessidades.

AudioSourceSPIFFS: Você pode alterar o filtro de arquivos descomentando a linha //source.setFileFilter("Bob Dylan"); e substituindo o filtro pelos critérios desejados.

Loading Comments...