Audio-Player mit ESP32-Audiokit 2.2.
Stand: 16.04.2022
Ein kleiner V
ersuch der persönlichen Anpassung der “arduino-audio-tools” Bibliotheken von Phil Schatzmann.
Die Steuerung erfolgt über ein 3,5″ Nextion Display.
Noch in Arbeit!! Aber das meiste klappt!
Eine Testversion meiner “main.cpp” zum Testeten der Funktionen.
/**
* @file player-sd-audiokit.ino
* @brief see https://github.com/pschatzmann/arduino-audio-tools/blob/main/examples/examples-audiokit/player-sd-audiokit/README.md
*
* @author Phil Schatzmann
* @copyright GPLv3
*/
// set this in AudioConfig.h or here after installing https://github.com/pschatzmann/arduino-libhelix.git
#include "MP3DecoderHelix.h"
#include "SdFat.h"
#include <Wire.h>
#define USE_SDFAT
#define USE_HELIX // or USE_MAD
#include "AudioTools.h"
#include "AudioLibs/AudioKit.h"
float vol = 0.5;
const char *startFilePath="/";
const char* ext="mp3";
int speedMz = 10;
AudioSourceSdFat source(startFilePath, ext, PIN_AUDIO_KIT_SD_CARD_CS, speedMz);
AudioKitStream kit;
MP3DecoderHelix decoder; // or change to MP3DecoderMAD
AudioPlayer player(source, kit, decoder);
void next(bool, int, void*) {
player.next();
Serial.print("Index: ");
Serial.println(source.index());
Serial.println(source.toStr());
}
void previous(bool, int, void*) {
player.previous();
}
void lauter(bool, int, void*) {
if (vol < 1){
vol = vol + 0.1;
player.setVolume(vol);
Serial.print("+");
Serial.println(vol);
}
}
void leiser(bool, int, void*) {
if (vol > 0){
vol = vol - 0.1;
player.setVolume(vol);
Serial.print("-");
Serial.println(vol);
}
}
void setup() {
Serial.begin(115200);
AudioLogger::instance().begin(Serial, AudioLogger::Warning);
//AudioLogger::instance().begin(Serial, AudioLogger::Debug);
// setup output
auto cfg = kit.defaultConfig(TX_MODE);
kit.begin(cfg);
// setup additional buttons
kit.addAction(PIN_KEY4, next);
kit.addAction(PIN_KEY3, previous);
kit.addAction(PIN_KEY5, leiser);
kit.addAction(PIN_KEY6, lauter);
//player.setVolume(0.1);
// setup player
player.setVolume(0.5);
player.begin();
}
void loop() {
player.copy();
kit.processActions();
}