From e23d78af67d2b37377d0d02eec9eb57a5f6eeff3 Mon Sep 17 00:00:00 2001 From: xue <2144439972@qq.com> Date: Sat, 6 Dec 2025 20:25:06 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E6=94=B9vad=E6=9C=AA=E5=88=9D=E5=A7=8B?= =?utf8?q?=E5=8C=96=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../src/ThunderBirdDialogueView.cpp | 2 +- .../thunderbird/src/ThunderBirdPresenter.cpp | 54 +++++++++---------- 2 files changed, 26 insertions(+), 30 deletions(-) diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdDialogueView.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdDialogueView.cpp index efeb5008f..c51630d37 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdDialogueView.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdDialogueView.cpp @@ -218,7 +218,7 @@ namespace OHOS } case THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW: { - uapi_set_sleep_mode_active(false);//睡眠模式激活标志位 + // uapi_set_sleep_mode_active(false);//睡眠模式激活标志位 ThunderBirdModel::GetInstance()->HighFrequence(); // 从ThunderBirdModel获取当前表情和状态文本 std::string currentStatusText = "发呆中... "; 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 71f3b70cc..257cefe54 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 @@ -833,7 +833,7 @@ namespace OHOS break; case ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_5: ln_ws_end_audio_chat();//结束对话 - uapi_set_sleep_mode_active(false);//睡眠模式激活标志位 + // uapi_set_sleep_mode_active(false);//睡眠模式激活标志位 do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_STORY_FINISH, NULL, 0);//确认结束哄睡 // 退出哄睡模式时恢复时间线表情 ThunderBirdModel::GetInstance()->OnExitLullabyMode(); @@ -1124,12 +1124,17 @@ namespace OHOS || (currentView == THUNDERBIRD_GUIDEVIEW)) { do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_INIT, NULL, 0); - // 检查WebSocket连接状态和VAD认证状态 + // 检查WebSocket连接状态 int wsState = ln_ws_get_connection_state(); bool wsConnected = (wsState == 2); // WS_STATE_CONNECTED = 2 - // bool vadEnabled = ln_ws_is_vad_server_enabled(); + // 检查vad认证状态 + bool vadInitialized = ln_ws_is_vad_server_initialized(); + bool vadAuthSuccess = ln_ws_is_vad_server_auth_success(); + if(vadAuthSuccess == true || vadInitialized == true) + { + vadFirstSuccess = true; + } - if (!wsConnected) { // 不满足条件,显示提示并设置2秒定时器自动隐藏 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入对话模式条件不满足: wsConnected=%d", wsConnected); @@ -1138,17 +1143,27 @@ namespace OHOS ThunderBirdMainView::GetInstance()->ChangeThunderBirdReminderView(THUNDERBIRD_REMINDERVIEW); ThunderBirdReminderView *reminderView = ThunderBirdReminderView::GetInstance(); if (reminderView) { - if (!wsConnected) { // WebSocket未连接,显示网络断开提醒 reminderView->Show(ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_NETWORK_DISCONNECT); reminderView->dialogue_unnetwork(); - } // 显示后再设置2秒定时器自动隐藏提示 - } else { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdReminderView::GetInstance() returned NULL"); - } + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WebSocket未连接,不进入对话模式"); return; // 不满足条件,不进入对话模式 } + else if(vadAuthSuccess == false) + { + ThunderBirdModel::GetInstance()->StartReminderHideTimer(2000); + ThunderBirdMainView::GetInstance()->ChangeThunderBirdReminderView(THUNDERBIRD_REMINDERVIEW); + ThunderBirdReminderView *reminderView = ThunderBirdReminderView::GetInstance(); + if (reminderView) + { + reminderView->Show(ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_VAD_INITIALIZING); + reminderView->dialogue_vad_initializing(); + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "vad认证不成功,不进入对话模式"); + return; + } // 条件满足,进入对话模式 ThunderBirdModel::GetInstance()->LowFrequence();//减低视频帧率 @@ -1173,26 +1188,7 @@ namespace OHOS else { ThunderBirdDialogueView::GetInstance()->Isband(true); - } - bool vadInitialized = ln_ws_is_vad_server_initialized(); - bool vadAuthSuccess = ln_ws_is_vad_server_auth_success(); - if(vadAuthSuccess == true || vadInitialized == true) - { - vadFirstSuccess = true; - } - if(vadFirstSuccess == false) - { - ThunderBirdModel::GetInstance()->StartReminderHideTimer(3000); - ThunderBirdMainView::GetInstance()->ChangeThunderBirdReminderView(THUNDERBIRD_REMINDERVIEW); - ThunderBirdReminderView *reminderView = ThunderBirdReminderView::GetInstance(); - if (reminderView) - { - reminderView->Show(ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_VAD_INITIALIZING); - reminderView->dialogue_vad_initializing(); - } - vadFirstSuccess = true; - } - + } isDialogueing = true; ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 打开屏幕常亮 // 进入对话模式时记录当前表情 -- 2.17.1