From 59bf548dcac29ff543b9eb25e60dd57be094a1ac Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Fri, 22 Aug 2025 12:06:13 +0800 Subject: [PATCH] =?utf8?q?1.=E9=9B=B7=E9=B8=9F=EF=BC=9A=E8=A7=A3=E5=86=B3?= =?utf8?q?=E5=8F=91=E9=80=81=E5=BC=80=E5=A7=8B=E5=BD=95=E9=9F=B3=E6=8C=87?= =?utf8?q?=E4=BB=A4=E5=90=8E=EF=BC=8C=E5=81=9C=E6=AD=A2=E4=B8=8D=E4=BA=86?= =?utf8?q?=E5=BD=95=E9=9F=B3bug=EF=BC=8C=E5=8E=9F=E5=9B=A0=E4=B8=BA?= =?utf8?q?=EF=BC=9A=20stop=20=E6=B5=81=E7=A8=8B=E9=98=BB=E5=A1=9E=E5=9C=A8?= =?utf8?q?=E5=B0=BE=E9=9A=8F=E7=BA=BF=E7=A8=8B=E7=9A=84=20Join=20=E6=88=96?= =?utf8?q?=E4=BB=8D=E6=9C=89=E6=95=B0=E6=8D=AE=E8=BF=BD=E5=8A=A0=E5=AF=BC?= =?utf8?q?=E8=87=B4=E5=B0=BE=E9=9A=8F=E5=BE=AA=E7=8E=AF=E4=B8=80=E7=9B=B4?= =?utf8?q?=E8=B7=91=E3=80=82=EF=BC=8C=E8=B0=83=E6=95=B4=E8=B0=83=E7=94=A8?= =?utf8?q?=E9=A1=BA=E5=BA=8F=E5=90=8E=E8=A7=A3=E5=86=B3=202.=E5=85=B3?= =?utf8?q?=E9=97=AD=E5=BD=95=E9=9F=B3=E7=BA=BF=E7=A8=8B=E9=AB=98=E9=A2=91?= =?utf8?q?=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../sample/wrapper/audio_capture_wrapper.cpp | 2 +- code/sdk/zhihui/leiniao/imsl_ln/vad_at_cmd.c | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/code/sdk/middleware/services/media/foundation/sample/wrapper/audio_capture_wrapper.cpp b/code/sdk/middleware/services/media/foundation/sample/wrapper/audio_capture_wrapper.cpp index d4fda3b34..c2aa2f6ee 100644 --- a/code/sdk/middleware/services/media/foundation/sample/wrapper/audio_capture_wrapper.cpp +++ b/code/sdk/middleware/services/media/foundation/sample/wrapper/audio_capture_wrapper.cpp @@ -409,7 +409,7 @@ static void* AudioCaptureProcess(void* arg) readCnt, timeStamp.time.tv_sec, timeStamp.time.tv_nsec); } } - MEDIA_INFO_LOG("audioCap Read readCnt = %d, size = %d", readCnt, ret); + // MEDIA_INFO_LOG("audioCap Read readCnt = %d, size = %d", readCnt, ret); } if (g_audioSourceProcessInput.audioFormat == OPUS) { AudioCapturerOggCtxDeInit(); diff --git a/code/sdk/zhihui/leiniao/imsl_ln/vad_at_cmd.c b/code/sdk/zhihui/leiniao/imsl_ln/vad_at_cmd.c index 8cde59f79..53a0bf6e8 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/vad_at_cmd.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/vad_at_cmd.c @@ -79,6 +79,7 @@ static MediaThreadIdHandle g_vad_tail_thread = NULL; static char g_vad_live_path[256] = "/user/vad_live.pcm"; static int g_vad_prev_status = -1; +// 尾随线程,持续从文件中读取数据并喂给 VAD static void *VadTailThread(void *arg) { printf("VAD TailThread\n"); @@ -137,6 +138,7 @@ static void *StartRecordThread(void *arg) return NULL; } +/* 确保父目录存在 */ static void EnsureParentDir(const char *file_path) { if (file_path == NULL) { @@ -390,21 +392,18 @@ static uint32_t vad_record_stop(uint8_t *para, uint32_t paraLen, char *strCommon printf("=== 停止 VAD 实时录音 ===\n"); - /* 1) 停止尾随线程 */ - if (g_vad_live_running) { - g_vad_live_running = false; - if (g_vad_tail_thread != NULL) { - MediaThreadJoin(&g_vad_tail_thread); - g_vad_tail_thread = NULL; - } - } - - /* 2) 停止系统录音 */ + /* 1) 先停止系统录音,减少文件追加,便于尾随线程退出 */ + printf("VAD 停止系统录音\n"); { const char *stopArg = "stop"; (void)AudioCaptureSample(1, &stopArg); } + /* 2) 通知尾随线程退出(不阻塞等待) */ + printf("VAD 停止尾随线程\n"); + g_vad_live_running = false; + g_vad_tail_thread = NULL; + printf("VAD 实时录音已停止\n"); return ERRCODE_SUCC; } -- 2.17.1