音频
C202 的 sdk中,关于1302音频的处理,头文件里有audio_player_stop_and_wait、audio_player_stop_speak和audio_player_raw_write_finish 这三个有什么区别?
- audio_player_raw_write_finish 这个是音频下发结束,数据流结束通知 (流式TTS结束)
- audio_player_stop_speak 快速响应异步停止请求(类似按键暂停)
- audio_player_stop_and_wait 强制停止并阻塞等待完成(唤醒打断)
在C202 的使用过程中,会出现这个报错,“ci13002_protocol:Deal recv frame too slow”,这个报错是什么原因?
当 xQueueSend 在 10ms 超时时间内无法将接收到的帧数据放入队列时,就会触发这个错误
表示 uart_buffer_queue 队列已满,通常有以下几种情况:
1、消费速度过慢: 在 ci1302.c 的 ci1302_deal_task() 函数中,从队列取数据并处理的速度跟不上串口接收速度
2、队列容量不足: 虽然代码中没有显示队列创建部分,但如果队列深度设置过小,在数据高峰期容易满
3、处理任务阻塞: 消费任务可能在某些操作上阻塞了(如文件操作、网络请求等),导致无法及时从队列取数据
4、串口数据突发: CI1302 芯片短时间内发送大量数据(如音频流、唤醒事件等),超过处理能力