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

}

相关推荐
net3m332 小时前
不要用esp_websocket_client_send_bin直接发送前导音频,会卡,导致mic声音卡顿,要用环形队列
esp32
net3m3318 小时前
24位INMP441的相关配置,原本是16位mic数据,麦克风音质不高
esp32·i2s
SmartRadio2 天前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
π同学3 天前
ESP-IDF+vscode开发ESP32第十讲——I2S工程2
vscode·esp32·sd·音频播放
SmartRadio3 天前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信 (采用Arduino代码框架)
开发语言·智能手机·esp32·长距离wifi
饕餮tt4 天前
基于ESP-IDF的ESP32开发记录——如何初始化ADC并完成转换
esp32·esp-idf
π同学6 天前
ESP-IDF+vscode开发ESP32第九讲——I2S工程1
vscode·esp32·i2s播放音乐
π同学7 天前
ESP-IDF+vscode开发ESP32第八讲——音频信号全解
vscode·esp32·i2s·音频信号
sz4972385999 天前
vscode多种编译环境共存的方法
ide·vscode·stm32·编辑器·esp32