#include "AudioPlayer.hpp" #include #include "audio_setup.h" #include static const char* TAG = "AudioPlayer"; AudioPlayer::AudioPlayer() { playerHandle = setup_player(NULL, NULL); esp_player_init((esp_audio_handle_t)playerHandle); esp_audio_vol_set((esp_audio_handle_t)playerHandle, 50); } bool AudioPlayer::isHttpUri(const std::string& uri) const { return uri.rfind("http://", 0) == 0 || uri.rfind("https://", 0) == 0; } bool AudioPlayer::isLastUri(const std::string& uri) const { return lastUri == uri; } void AudioPlayer::play(const std::string& uri) { if(isLastUri(uri)) { esp_player_music_resume(); return; } esp_player_music_stop(); lastUri = uri; if(isHttpUri(uri)) { ESP_LOGI(TAG, "Streaming: %s", uri.c_str()); esp_player_http_music_play(uri.c_str(), 0); } else { ESP_LOGI(TAG, "Playing local: %s", uri.c_str()); esp_player_sdcard_music_play(uri.c_str(), 0); } } void AudioPlayer::pause() { esp_player_music_pause(); } void AudioPlayer::stop() { esp_player_music_stop(); lastUri.clear(); } int AudioPlayer::getVolume() { int vol = 0; esp_player_vol_get(&vol); return vol; } void AudioPlayer::setVolume(int vol) { if(vol < 0) vol = 0; if(vol > 100) vol = 100; esp_audio_vol_set((esp_audio_handle_t)playerHandle, vol); } bool AudioPlayer::isPlaying() const { esp_audio_state_t state; if(esp_player_state_get(&state) != ESP_OK) return false; return state.status == AUDIO_STATUS_RUNNING; }