Sobre o projeto

A biblioteca ESP32-A2DP fornece uma interface simples compatível com Arduino para streaming de áudio Bluetooth A2DP em microcontroladores Espressif ESP32. Ela implementa tanto os papéis de A2DP Sink (receptor de música) quanto A2DP Source (transmissor de música), permitindo projetos como alto-falantes Bluetooth ou transmissores de áudio sem fio. A biblioteca encapsula a pilha Bluedroid do ESP-IDF e expõe callbacks para dados PCM, metadados AVRCP (título, artista, tempo de reprodução), notificações de reprodução (status, posição, mudança de faixa) e comandos de controle remoto (play, pause, próximo, anterior, etc.). A saída pode ser roteada para I2S (DAC externo), o DAC interno do ESP32, ou qualquer stream derivado de Print do Arduino. Desde o ESP-IDF v5 / núcleo Arduino 3.0, a API I2S legada está obsoleta; a biblioteca agora recomenda a biblioteca complementar AudioTools para um pipeline de áudio independente de versão, mas também funciona diretamente com a nova I2SClass do ESP32. Codecs não-SBC, como AAC, requerem ESP-IDF ≥ 6.1 e um decodificador AudioTools registrado via add_decoder(). O código não tem dependências externas além do ESP-IDF (fornecido pelo núcleo Arduino ESP32) e suporta três ambientes de compilação: Arduino IDE, PlatformIO e ESP-IDF como componente. Exemplos abrangentes cobrem sink/source básico, configuração de pinos, manipulação de metadados, análise FFT e configurações multi-codec. A documentação inclui referência de classes, wiki com visão geral do design, guias de integração PlatformIO/IDF e histórico de alterações. Licenciado sob Apache 2.0.