From 5dff5ca8d157007e88dbada0d01b5a426801188a Mon Sep 17 00:00:00 2001 From: xue <2144439972@qq.com> Date: Fri, 28 Nov 2025 18:02:23 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E8=AF=9D=E5=93=84?= =?utf8?q?=E7=9D=A1=E4=B8=8E=E6=97=A5=E7=A8=8B=E6=8F=90=E9=86=92=E4=BC=98?= =?utf8?q?=E5=85=88=E7=BA=A7=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../thunderbird/src/ThunderBirdModel.cpp | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) 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 e953892f8..8f8cb5e86 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 @@ -17,6 +17,7 @@ #include "thunderbird/include/ThunderBirdModel.h" #include "thunderbird/include/ThunderBirdReminderView.h" #include "thunderbird/include/ThunderBirdLullabyView.h" + #include "thunderbird/include/ThunderBirdDialogueView.h" #include "thunderbird/include/ThunderBirdMainView.h" #include "thunderbird/include/ThunderBirdBlueView.h" #include "thunderbird/include/ThunderBirdPresenter.h" @@ -73,7 +74,7 @@ extern "C" { //最低视频帧率 #define LOW_FREQUENCE 20 //最高视频帧率 - #define HIGH_FREQUENCE 50 + #define HIGH_FREQUENCE 60 namespace OHOS { enum OTA_STATUS @@ -2131,6 +2132,55 @@ extern "C" { if (ThunderBirdMainView::GetInstance()) { int currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); int currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView(); + + // 如果当前在对话界面,需要先打断语音并退出对话模式 + if (currentView == THUNDERBIRD_DIALOGUEVIEW && + (currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING || + currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING)) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleScheduleReminder: 在对话界面,先打断语音并退出对话模式"); + // 打断语音播放 + AI_ForceInterrupt(); + ln_ws_send_voice_chat_interrupt("日程提醒"); + ln_ws_end_audio_chat();//结束对话 + do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0); + ThunderBirdPresenter::GetInstance()->SetDialogueing(false); + ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON); // 关闭屏幕常亮 + ThunderBirdModel::GetInstance()->HighFrequence();//恢复视频帧率 + ThunderBirdModel::GetInstance()->OnExitDialogueMode(); + // 退出到状态界面 + // ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW); + ThunderBirdDialogueView::GetInstance()->DialogueFirst = true; + // 更新当前视图和子视图 + // currentView = THUNDERBIRD_DIALOGUEVIEW; + // currentSubView = ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW; + } + // 如果当前在哄睡界面,需要先打断语音并退出哄睡模式 + else if (currentView == THUNDERBIRD_LULLABYVIEW && + currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleScheduleReminder: 在哄睡界面,先打断语音并退出哄睡模式"); + // 打断语音播放 + AI_ForceInterrupt(); + ln_ws_send_voice_chat_interrupt("日程提醒"); + //推送结束故事消息 + do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_STORY_FINISH, NULL, 0); + ln_ws_audio_deinit();//功耗优化 + // 重置故事模式finished标志 + m_storyModeFinished = false; + // 退出故事模式时重新启用VAD + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "退出故事模式,重新启用VAD"); + int vad_ret = ln_ws_enable_vad_server(); + if (vad_ret == 0) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VAD已成功启用"); + } else { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "启用VAD失败: %d", vad_ret); + } + // 退出到对话状态界面 + // ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW); + // 更新当前视图和子视图 + // currentView = THUNDERBIRD_DIALOGUEVIEW; + // currentSubView = ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW; + } + //如果当前界面是事项提醒界面,则不进行切换,防止返回原任务进入循环 if(currentView != THUNDERBIRD_REMINDERVIEW && currentSubView != ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_TASK_REMINDER) { -- 2.17.1