修复对话开始哄睡时的收音指示灯状态错误bug
authorxue <2144439972@qq.com>
Thu, 12 Feb 2026 02:50:57 +0000 (10:50 +0800)
committerxue <2144439972@qq.com>
Thu, 12 Feb 2026 02:50:57 +0000 (10:50 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp

index 71b9132..a0cb8b0 100644 (file)
@@ -3566,33 +3566,17 @@ extern "C" {
     void ThunderBirdModel::HandleAudioPlaybackStart()
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackStart");
-        ThunderBirdMainView *view = ThunderBirdMainView::GetInstance();
-        if (view) {
-            int currentView = view->GetCurrentView();
-            int currentSubView = view->GetCurrentSubView();
-            // 对话模式下若“音频开始播放”早于“录音结束”回调:此时仍为聆听中,需先切到说话中再推送文本,避免出现“聆听中还在播放上一句”的错位
-            if (currentView == THUNDERBIRD_DIALOGUEVIEW &&
-                currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING) {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackStart: 对话聆听中收到播放开始,先切到说话中");
-                view->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING);
-                if (view->listenIcon) {
-                    view->listenIcon->SetVisible(false);
-                }
-            }
-        }
         // 音频开始播放时,从队列中取出对应的文本并推送
         DequeueAndPushAudioText();
         
         // 检查是否在THUNDERBIRD_LULLABYVIEW_3界面,如果是,标记角色开始询问
-        if (view) {
-            int currentView = view->GetCurrentView();
-            int currentSubView = view->GetCurrentSubView();
-            if (currentView == THUNDERBIRD_LULLABYVIEW &&
-                currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3)
-            {
-                m_lullabyView3InquiryStarted = true;
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackStart: THUNDERBIRD_LULLABYVIEW_3界面,角色开始询问");
-            }
+        int currentView = ThunderBirdMainView::GetInstance()->GetCurrentView();
+        int currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView();
+        if (currentView == THUNDERBIRD_LULLABYVIEW &&
+            currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3)
+        {
+            m_lullabyView3InquiryStarted = true;
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackStart: THUNDERBIRD_LULLABYVIEW_3界面,角色开始询问");
         }
     }
 
index 54803bc..9a250eb 100644 (file)
@@ -818,8 +818,11 @@ namespace OHOS
             case ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3:
             {
                 // ln_http_download_init();
-                // 进入哄睡模式时切换为眨眼表情
+                // 进入哄睡模式时切换为眨眼表情,关闭VAD并隐藏收音指示灯
                 do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_INIT_VAD_DISABLE, NULL, 0);
+                if (ThunderBirdMainView::GetInstance() && ThunderBirdMainView::GetInstance()->listenIcon) {
+                    ThunderBirdMainView::GetInstance()->listenIcon->SetVisible(false);
+                }
                 ThunderBirdModel::GetInstance()->OnEnterLullabyMode();
                 ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4);
                 // ln_ws_start_audio_chat(LN_AUDIO_CHAT_CHOOSE_STORY_REQUEST);