From dee8eb425e7a197b06029f24aef39e6dc0e5b330 Mon Sep 17 00:00:00 2001 From: xue <2144439972@qq.com> Date: Wed, 26 Nov 2025 22:31:58 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E5=AF=B9=E8=AF=9D=E8=B6=85?= =?utf8?q?=E6=97=B6=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../thunderbird/src/ThunderBirdModel.cpp | 29 ++++++++++--------- .../thunderbird/src/ThunderBirdPresenter.cpp | 4 +++ 2 files changed, 19 insertions(+), 14 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 cbdcd6744..7cddcf9c8 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 @@ -2688,7 +2688,7 @@ extern "C" { ThunderBirdDialogueView::GetInstance()->AudioPlaybackEnd(); // 启动8秒定时器,时间到就退出对话 StartCountUpTimer(10); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackEnd: 启动8秒定时器,时间到就退出对话"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackEnd: 启动10秒定时器,时间到就退出对话"); return; } @@ -2713,6 +2713,10 @@ extern "C" { { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioRecordingStart: 录音开始"); + // 取消退出对话的定时器(用户开始录音,说明要继续对话) + StopCountUpTimer(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioRecordingStart: 取消退出对话定时器"); + // 获取当前视图状态 ThunderBirdMainView *view = ThunderBirdMainView::GetInstance(); if (view) { @@ -2740,6 +2744,10 @@ extern "C" { // return ;//需要vad的时候在处理 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioRecordingEnd: 录音结束"); + // 取消退出对话的定时器(用户结束录音,说明要继续对话) + StopCountUpTimer(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioRecordingEnd: 取消退出对话定时器"); + // 获取当前视图状态 ThunderBirdMainView *view = ThunderBirdMainView::GetInstance(); if (view) { @@ -2751,26 +2759,19 @@ extern "C" { currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "录音结束,跳转到播放界面"); view->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING); - } + } else if (currentView == THUNDERBIRD_LULLABYVIEW && currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "录音结束,跳转到故事选择界面"); view->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4); - } - else{ - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioRecordingEnd: 不满足推送条件 "); - } - // 停止聆听超时定时器 - StopCountUpTimer(); - - // 清空音频文本队列 - ClearAudioTextQueue(); } - else - { + else{ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioRecordingEnd: 不满足推送条件 "); } - + + // 清空音频文本队列 + ClearAudioTextQueue(); + } } // VAD初始化完成处理函数 diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp index 529b633c5..6bb8ae3e9 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp @@ -450,6 +450,9 @@ namespace OHOS */ void ThunderBirdPresenter::HandleDialogueFunction(int16_t currentView, int16_t currentSubView) { + // 在对话界面进行按键操作时,取消退出对话的定时器(用户有操作,说明要继续对话) + ThunderBirdModel::GetInstance()->StopCountUpTimer(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HandleDialogueViewNavigation: 取消退出对话定时器"); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleDialogueFunction: currentView=%d, currentSubView=%d", currentView, currentSubView); //bool flag = ThunderBirdModel::GetInstance()->Get_is_all_services_ready(); @@ -614,6 +617,7 @@ namespace OHOS */ bool ThunderBirdPresenter::HandleDialogueViewNavigation(int16_t currentSubView, KeyType keyType) { + // switch (currentSubView) { // case ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING: // ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_DIALOGUEVIEW, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING); -- 2.17.1