À propos du projet

La bibliothèque ESP32-A2DP fournit une interface simple compatible Arduino pour la diffusion audio Bluetooth A2DP sur les microcontrôleurs Espressif ESP32. Elle implémente les rôles A2DP Sink (récepteur de musique) et A2DP Source (émetteur de musique), permettant des projets comme des enceintes Bluetooth ou des émetteurs audio sans fil. La bibliothèque encapsule la pile Bluedroid d'ESP-IDF et expose des callbacks pour les données PCM, les métadonnées AVRCP (titre, artiste, durée de lecture), les notifications de lecture (statut, position, changement de piste) et les commandes de contrôle à distance (lecture, pause, suivant, précédent, etc.). La sortie peut être routée vers I2S (DAC externe), le DAC interne de l'ESP32, ou tout flux dérivé de Print d'Arduino. Depuis ESP-IDF v5 / Arduino core 3.0, l'API I2S héritée est obsolète ; la bibliothèque recommande désormais la bibliothèque complémentaire AudioTools pour un pipeline audio indépendant de la version, mais fonctionne également directement avec la nouvelle classe I2SClass de l'ESP32. Les codecs non-SBC tels que AAC nécessitent ESP-IDF ≥ 6.1 et un décodeur AudioTools enregistré via add_decoder(). Le code n'a aucune dépendance externe au-delà d'ESP-IDF (fourni par le noyau Arduino ESP32) et prend en charge trois environnements de compilation : Arduino IDE, PlatformIO et ESP-IDF en tant que composant. Des exemples complets couvrent le sink/source de base, la configuration des broches, la gestion des métadonnées, l'analyse FFT et les configurations multi-codecs. La documentation comprend une référence de classe, un wiki avec aperçu de conception, des guides d'intégration PlatformIO/IDF et un historique des modifications. Sous licence Apache 2.0.