From bcafb28e947b3af7dce14f3efccaaab4b4653903 Mon Sep 17 00:00:00 2001 From: xue <2144439972@qq.com> Date: Thu, 12 Feb 2026 10:47:53 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E6=8F=90=E9=86=92=E7=95=8C?= =?utf8?q?=E9=9D=A2=E8=A7=A6=E5=8F=91=E6=8F=90=E9=86=92=E8=AE=BE=E7=BD=AE?= =?utf8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../thunderbird/src/ThunderBirdModel.cpp | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp index 147dc93cb..71b91329b 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp @@ -2611,6 +2611,13 @@ extern "C" { if (ThunderBirdMainView::GetInstance()) { int currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); int currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView(); + //如果已经在提醒界面。则先进入发呆中界面 + if (currentView == THUNDERBIRD_REMINDERVIEW && currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_TASK_REMINDER) { + ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW); + //关闭提醒音频 + ln_schedule_reminder_set_volume_zero(); + + } ThunderBirdModel::GetInstance()->StartReminderHideTimer(3000); ThunderBirdReminderView *reminderView = ThunderBirdReminderView::GetInstance(); if (reminderView) @@ -3081,8 +3088,12 @@ extern "C" { //若为意图识别结果,则跳转到4,否则跳转到2 if(is_intention_result == 0) { - do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_INIT_VAD_DISABLE, NULL, 0); + do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_INIT_VAD_DISABLE, NULL, 0); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeStart: 非意图识别结果,跳转到4"); + // 对话过程中收到小程序哄睡:关闭VAD,隐藏收音指示灯 + if (ThunderBirdMainView::GetInstance() && ThunderBirdMainView::GetInstance()->listenIcon) { + ThunderBirdMainView::GetInstance()->listenIcon->SetVisible(false); + } // 重置故事模式finished标志,确保每次进入故事模式时标志位是干净的 m_storyModeFinished = false; // 进入哄睡模式时切换为眨眼表情 @@ -3555,17 +3566,33 @@ 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界面,如果是,标记角色开始询问 - 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界面,角色开始询问"); + 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界面,角色开始询问"); + } } } -- 2.17.1