Skip to main content

Reproductor MP3

Este proyecto demuestra cómo usar la placa reSpeaker Lite para reproducir archivos MP3 almacenados en el sistema de archivos SPIFFS.

Biblioteca Requerida

Funcionalidad

  • Reproduce archivos MP3 desde el sistema de archivos SPIFFS
  • Utiliza la interfaz I2S para salida de audio
  • Soporta extracción de metadatos y callback
  • Clase AudioPlayer fácil de usar para reproducción de audio sin problemas

Subiendo Archivos a SPIFFS

Puedes consultar el Wiki aquí.

Asegúrate de tener las herramientas necesarias para subir archivos a SPIFFS. Puedes usar la herramienta "ESP32 Sketch Data Upload" en el IDE de Arduino o una herramienta externa como "ESP32 File Uploader".

Crea una carpeta llamada "data" en el directorio de tu sketch y coloca los archivos MP3 que quieres reproducir dentro de ella.

Sube los archivos a SPIFFS usando la herramienta elegida.

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();
}

Configuración

startFilePath: La ruta del directorio donde se encuentran los archivos MP3 en SPIFFS (por defecto: "/").

ext: La extensión de archivo de los archivos de audio (por defecto: "mp3").

Puedes modificar estas constantes en el sketch para que coincidan con tu estructura de archivos específica y requisitos.

Personalización

printMetaData: Esta función se llama cuando se extraen metadatos del archivo de audio. Puedes personalizar la función para manejar los metadatos según tus necesidades.

AudioSourceSPIFFS: Puedes cambiar el filtro de archivos descomentando la línea //source.setFileFilter("Bob Dylan"); y reemplazando el filtro con tus criterios deseados.

Loading Comments...