使用的是esp_dispatcher_dueros_app初始化的audio,初始化函数是setup_player。
使用esp_audio_play播放声音时,用esp_audio_state_get获取播放状态,如果播放源是http,可以获得正确状态;如果播放源是sdcard文件,获取到状态是AUDIO_STATUS_UNKNOWN。
看了一下setup_player,通过函数esp_audio_input_stream_add添加了两个input。
据我猜想,audio会根据url的类型自动选择input。但是获取状态时,直接从http的input获取的,没有根据url进行区分,所以播放sdcard文件时状态不对。
audio的函数不是开源的,无法自己修改,请看一下