mic声音怎么才不容易卡顿 : 环形队列缓存要足够大

#define AUDIO_CODEC_DMA_DESC_NUM 8//6

#define AUDIO_CODEC_DMA_FRAME_NUM 340//240

===================================================================================

环形队列缓存要足够大:

buf_handle从(read_pre_back_ + 10)加大到(read_pre_back_ + 60),更多缓存,mic不容易卡顿:

buf_handle = xRingbufferCreate(RECV2_BUF_SIZE * (read_pre_back_ + 60), RINGBUF_TYPE_NOSPLIT);

===================================================================================

vTaskDelay(1)延时去掉,更实时:

void process_baidu_Asr(void *args){

while (1) {

//vTaskDelay(1); //

if(buf_handle!=nullptr){

size_t item_SIZE;

char * retbytes=(char * )xRingbufferReceive(buf_handle,&item_SIZE , pdMS_TO_TICKS(2000)); //xRingbufferReceiveUpTo

if (retbytes != NULL ) { //加了 && item_SIZE>10 会导致死锁??,导致一直不处理队列,发送那边直接死住,超时

if (client!=nullptr&& esp_websocket_client_is_connected(client) ){

xSemaphoreTake(ws_mutex, pdMS_TO_TICKS(max_send_wait_time_ms));

//esp_err_t err = esp_websocket_client_send_bin_partial(client, (const char *)retbytes,(int)(item_SIZE), portMAX_DELAY);

//为了防止返回PONG帧异常,esp_websocket_client_send_bin_partial改为esp_websocket_client_send_bin???:

esp_err_t err = esp_websocket_client_send_bin(client, (const char *)retbytes,(int)(item_SIZE), portMAX_DELAY);

if (err <0 ) {

ESP_LOGE(TAG, "Send bin failed1: %s , item_SIZE=%d ", esp_err_to_name(err),item_SIZE);

}

// err =esp_websocket_client_send_fin(client, portMAX_DELAY);

// if (err != ESP_OK)

// {

// ESP_LOGE(TAG, "Send bin failed2: %s", esp_err_to_name(err));

// }

xSemaphoreGive(ws_mutex);

}

vRingbufferReturnItem(buf_handle, (void *)retbytes);

}

}else{

vTaskDelay(3);

}

}

vTaskDelete(NULL);

}

相关推荐
殷忆枫2 天前
基于ESP32 的局域网全双工对讲系统
单片机·嵌入式硬件·esp32·对讲系统
ITKEY_3 天前
嵌入式ESP32初学踩坑记录
esp32
EatFan14 天前
全栈自造 Status Deck(四):硬件终于到了,从点亮屏幕到跑通第一个 Demo
单片机·物联网·esp32
攸尔的笔记本~17 天前
ESP32-C3的WIFI信号飘忽不定、连接不了
esp32·射频·硬件设计
乐鑫科技 Espressif19 天前
案例研究:基于 ESP32-C5 与 ESP RainMaker 构建符合 EN 18031 标准的 IoT 解决方案
esp32·乐鑫科技·rainmaker
jianqiang.xue21 天前
ESP-IDF保姆级入门41|产品级故障排查与稳定性优化全解:死机复位排查/内存泄漏定位/性能瓶颈分析/长期稳定性测试,掌握量产运维问题定位方法论
单片机·mcu·物联网·esp32
jianqiang.xue22 天前
ESP-IDF保姆级入门40|量产烧录与产线测试全解:批量烧录方案/校准流程/功能测试/不良分拣/产线追溯,掌握工业级量产交付全流程
单片机·物联网·esp32
jianqiang.xue22 天前
ESP-IDF保姆级入门39|固件安全与安全启动全解:签名校验/Flash加密/防回滚/OTP密钥/知识产权保护,掌握工业级固件安全防护体系
单片机·物联网·esp32
jianqiang.xue23 天前
ESP-IDF保姆级入门38|电源管理与锂电池充电全解:充电拓扑/电源路径控制/充放电保护/电量检测/低功耗策略,掌握嵌入式电池供电系统设计
单片机·嵌入式·esp32
jianqiang.xue24 天前
ESP-IDF保姆级入门35|SDMMC高速SD卡全解:SDIO接口/4位高速模式/FATFS文件系统/热插拔检测/磨损均衡,掌握嵌入式大容量存储扩展
单片机·esp32