修复哄睡仍Vad的bug
authorxue <2144439972@qq.com>
Fri, 5 Dec 2025 10:03:55 +0000 (18:03 +0800)
committerxue <2144439972@qq.com>
Fri, 5 Dec 2025 10:03:55 +0000 (18:03 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp

index 7959eb8..7c8dad8 100644 (file)
@@ -2576,6 +2576,7 @@ extern "C" {
            //若为意图识别结果,则跳转到4,否则跳转到2
            if(is_intention_result == 0)
            {
+              do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_INIT, NULL, 0);
               WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeStart: 非意图识别结果,跳转到4");
                 // 重置故事模式finished标志,确保每次进入故事模式时标志位是干净的
                 m_storyModeFinished = false;
@@ -2584,7 +2585,13 @@ extern "C" {
                 ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4);
                 //清空文本队列
                 ClearAudioTextQueue();
-                do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_INIT, NULL, 0);
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入故事模式,关闭VAD");
+                int vad_ret = ln_ws_disable_vad_server();
+                if (vad_ret == 0) {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VAD已成功关闭");
+                } else {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "关闭VAD失败: %d", vad_ret);
+                }
                 // 故事请求已在协议解析阶段处理(ln_parse_sleep_mode_start),此处不再发送
            }
            else//意图识别结果
@@ -3084,7 +3091,7 @@ extern "C" {
         if(ThunderBirdDialogueView::GetInstance() && currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING)
         {
             // 检查传入的表情是否与当前对话界面表情不同
-            if (m_dialogueExpression != emotion && emotion != m_currentExpression) {
+            if (m_dialogueExpression != emotion && m_currentExpression != emotion) {
                 // 记录新的对话界面表情
                 m_dialogueExpression = emotion;
                 
@@ -3096,13 +3103,13 @@ extern "C" {
                     expressionPath = "/user/res/video/Default/" + emotionFileName + ".mp4";
                 } else {
                     // 非默认表情
-                    if(emotion == "winking") {
+                    if(strcmp(emotion, "winking") == 0) {
                         // 如果为眨眼表情,则在默认文件目录里面
                         // expressionPath = "/user/res/video/CloseEyes/" + eyesShape_ + "/" + eyesColor_ + ".mp4";
                         return;
                     } else {
                         // 非眨眼表情,则在下载文件目录里面
-                        if(emotion == "sleeping")
+                        if(strcmp(emotion, "sleeping") == 0)
                         {
                             expressionPath = "/user/res/video/Default/sleeping.mp4";
                         }