diff --git a/examples/factory_demo/main/app/app_sr_handler.c b/examples/factory_demo/main/app/app_sr_handler.c index f3a6637..9ecb05d 100644 --- a/examples/factory_demo/main/app/app_sr_handler.c +++ b/examples/factory_demo/main/app/app_sr_handler.c @@ -20,6 +20,7 @@ #include "ui_sr.h" #include "app_sr_handler.h" #include "settings.h" +#include "es8311.h" static const char *TAG = "sr_handler"; @@ -79,10 +80,17 @@ static esp_err_t sr_echo_play(audio_segment_t audio) size_t len = g_audio_data[audio].len - sizeof(wav_header_t); len = len & 0xfffffffc; ESP_LOGD(TAG, "frame_rate=%d, ch=%d, width=%d", wav_head->SampleRate, wav_head->NumChannels, wav_head->BitsPerSample); + i2s_set_clk(I2S_NUM_0,wav_head->SampleRate,wav_head->BitsPerSample,I2S_CHANNEL_STEREO); i2s_zero_dma_buffer(I2S_NUM_0); + sys_param_t *param = settings_get_parameter(); + bsp_codec_set_voice_volume(param->volume); + es8311_set_voice_mute(false); + ESP_LOGI(TAG, "bsp_codec_set_voice_volume=%d", param->volume); + vTaskDelay(pdMS_TO_TICKS(50)); bsp_board_power_ctrl(POWER_MODULE_AUDIO, true);// turn on the speaker + size_t bytes_written = 0; b_audio_playing = true; i2s_write(I2S_NUM_0, p, len, &bytes_written, portMAX_DELAY); diff --git a/examples/factory_demo/main/main.c b/examples/factory_demo/main/main.c index f25b7cc..07add7f 100644 --- a/examples/factory_demo/main/main.c +++ b/examples/factory_demo/main/main.c @@ -70,12 +70,9 @@ static esp_err_t audio_mute_function(AUDIO_PLAYER_MUTE_SETTING setting) { // as es8311_set_voice_mute(true) results in voice volume (REG32) being set to zero. static int last_volume; - ESP_LOGI(TAG, "mute setting %d", setting); - int volume; - - ESP_RETURN_ON_ERROR(es8311_codec_get_voice_volume(&volume), TAG, "get voice volume"); - if(volume != 0) { - last_volume = volume; + sys_param_t *param = settings_get_parameter(); + if(param->volume != 0) { + last_volume = param->volume; } ESP_RETURN_ON_ERROR(es8311_set_voice_mute(setting == AUDIO_PLAYER_MUTE ? true : false), TAG, "set voice mute"); @@ -85,6 +82,8 @@ static esp_err_t audio_mute_function(AUDIO_PLAYER_MUTE_SETTING setting) { es8311_codec_set_voice_volume(last_volume); } + ESP_LOGI(TAG, "mute setting %d, volume:%d", setting, last_volume); + return ESP_OK; }