Hola a todo
intento crear un codigo para que con un esp32 al encender reproducir un audio tras hacerlo grabar audio de 30 segundos y apagar
cuando intento compilar el codigo me da el siguiente error
ATENCIÓN: la librería Audio pretende ejecutarse sobre arquitectura(s) sam y puede ser incompatible con tu actual tarjeta la cual corre sobre arquitectura(s) esp32.
y este es el codigo
#include <Arduino.h>
#include <SD.h>
#include "Audio.h"
#include "toneAC.h"
// Definición de los pines utilizados para la conexión de la tarjeta SD
#define SD_CS_PIN 5
// Definición de los pines utilizados para la reproducción y grabación de audio
#define AUDIO_OUT_PIN 25
#define AUDIO_IN_PIN 35
// Definición de la duración de la grabación en segundos
#define RECORD_DURATION 30
// Definición de las frecuencias de los tonos de inicio y finalización
#define START_TONE_FREQ 440
#define END_TONE_FREQ 880
// Creación de un objeto AudioOutputI2S para la reproducción de audio
AudioOutputI2S audioOutput;
// Creación de un objeto AudioInputI2S para la grabación de audio
AudioInputI2S audioInput;
// Creación de un objeto ToneAC para la emisión de tonos
ToneAC toneAC;
// Creación de un objeto File para la lectura del archivo de audio
File audioFile;
// Creación de un buffer para la grabación de audio
int16_t audioBuffer[RECORD_DURATION * 30000];
void setup() {
// Inicialización de la comunicación serial para la salida de mensajes de depuración
Serial.begin(9600);
// Inicialización del lector de tarjetas SD
if (!SD.begin(SD_CS_PIN)) {
Serial.println("Error al inicializar la tarjeta SD");
while (1);
}
// Apertura del archivo de audio
audioFile = SD.open("/audio.wav");
if (!audioFile) {
Serial.println("Error al abrir el archivo de audio");
while (1);
}
// Configuración del objeto AudioOutputI2S para la reproducción de audio
audioOutput.analogWriteResolution(16);
audioOutput.setPinout(AUDIO_BUILTIN_DAC);
audioOutput.begin();
// Configuración del objeto AudioInputI2S para la grabación de audio
audioInput.setPinout(AUDIO_IN_PIN, AUDIO_BUILTIN_ADC);
audioInput.begin();
// Emisión del tono de inicio
toneAC.begin(AUDIO_OUT_PIN);
toneAC.play(START_TONE_FREQ, 1000);
delay(1000);
toneAC.stop();
// Reproducción del audio
audioOutput.play(audioFile);
// Grabación del audio
audioInput.read(audioBuffer, RECORD_DURATION * 30000);
audioFile = SD.open("/grabacion.wav", FILE_WRITE);
audioFile.write((uint8_t*) audioBuffer, RECORD_DURATION * 2);
audioFile.close();
// Emisión del tono de finalización
toneAC.play(END_TONE_FREQ, 1000);
delay(1000);
toneAC.stop();
// Reset del ESP32
ESP.restart();
}
void loop() {
// No hay nada que hacer aquí
}