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);

}

相关推荐
Keith Guo2 小时前
ESP32-S31 分区表的访问流程图
流程图·esp32
Keith Guo3 天前
Event Task Matrix(ETM)工作机制
驱动开发·esp32·etm
攸尔的笔记本~5 天前
I2C和I2S的区别
i2s·i2c
星野云联AIoT技术洞察6 天前
ESP32 接入 Meta Muse:Gadget SDK 能做什么,为什么不能直接做商业设备
esp32·agent·token·边缘ai·meta muse·mcu选型
ITKEY_8 天前
VSCode Arduino cli 开发ESP32
esp32·iot
J_bean8 天前
Mac(Intel 芯片)ESP32 USB 串口驱动安装教程
esp32·iot·usb 串口驱动
星野云联AIoT技术洞察9 天前
ESP32-P4 摄像头到屏幕的数据链路:CSI、ISP、PPA、缓冲与 DSI 如何协同
esp32·esp-idf·esp32-p4·摄像头集成·芯片集成·乐鑫芯片
星野云联AIoT技术洞察11 天前
ESP32-P4 没有 Wi-Fi,产品该怎么联网:C6 协处理器、总线与双固件边界
esp32·esp32-s3·esp32-p4·芯片选型·esp-hosted·设备联网
ITKEY_11 天前
Arduino IDE开发ESP32环境搭建到helloworld
ide·esp32
国产化创客13 天前
ESP32音频/语音技术(4)AudioTools 库及转发播放程序分析
物联网·音视频·esp32