问题处出现概率:必现<br/>
逻辑实现:<br/>
<B><s></s>case1没有问题<br/>
case2有mp3播放不完全的问题<e></e></B><br/>
<B><s></s>case1:<e></e></B><br/>
1、“hi 乐鑫”唤醒<br/>
2、设备播放ding.mp3提示音,表示被唤醒(可以播放完全)<br/>
3、本地录制一句“北京天气”raw data传到服务器,服务器返回天气url“<URL url="http://mirror-advertising.oss-cn-beijin ... <LINK_TEXT text="http://mirror-advertising.oss-cn-beijin ... 5bfd66.mp3">http://mirror-advertising.oss-cn-beijin ... /URL>”<br/>
4、播放url<br/>
<B><s></s>case2:<e></e></B><br/>
1、“hi 乐鑫”唤醒<br/>
2、设备播放ding.mp3提示音,表示被唤醒(可以播放完全)<br/>
3、本地录制一句“北京天气”raw data传到服务器,服务器返回天气url“<URL url="http://mirror-advertising.oss-cn-beijin ... <LINK_TEXT text="http://mirror-advertising.oss-cn-beijin ... 5bfd66.mp3">http://mirror-advertising.oss-cn-beijin ... /URL>”<br/>
4、播放url<br/>
5、打断唤醒,播放url过程中“hi 乐鑫”唤醒,esp_audio_stop()停止播放url<br/>
6、调esp_audio_play()播放.mp3,结果时长1S的提示音只播了一半,esp_audio_play()调用实现如下
<CODEBOX codebox="c" file="Untitled.c"><s>
- </s>int joshvm_audio_play_handler(const char *url)<br/>
- {<br/>
- int ret;<br/>
- esp_audio_state_t state;<br/>
- do{<br/>
- esp_audio_state_get(player,&state); <br/>
- if(state.status == AUDIO_STATUS_RUNNING){<br/>
- ESP_LOGW(TAG,"state :%d\n",state.status);<br/>
- vTaskDelay(500 /portTICK_PERIOD_MS);<br/>
- }<br/>
- }while(state.status == AUDIO_STATUS_RUNNING);<br/>
- ESP_LOGI(TAG, "Playing : %s", url);<br/>
- ret = esp_audio_play(player, AUDIO_CODEC_TYPE_DECODER, url, 0);<br/>
- return ret;<br/>
- }<e>
求大神一起看看什么原因啊