哄睡缩短心跳
authorxue <2144439972@qq.com>
Tue, 13 Jan 2026 13:27:19 +0000 (21:27 +0800)
committerxue <2144439972@qq.com>
Tue, 13 Jan 2026 13:27:19 +0000 (21:27 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp

index afbc62a..06a9233 100644 (file)
@@ -349,6 +349,7 @@ namespace OHOS
         std::string cat1_pyver;
 
         bool m_savedBluetoothIconVisible = false;  // 进入下载前保存的蓝牙图标显示状态(用于恢复)
+        bool m_wasInDownloadView = false;  // 是否进入过下载界面(OTA视图),用于从下载界面返回时上报
 
     private:
         ThunderBirdModel();
@@ -435,7 +436,7 @@ namespace OHOS
         bool close_battery_flag = false;    // 电量过低即将关机标志位
 
         int downloadFileType = -1;
-        bool m_wasInDownloadView = false;  // 是否进入过下载界面(OTA视图),用于从下载界面返回时上报
+       
         
         // 故事模式相关标志
         bool m_storyModeFinished = false;    // 故事模式是否已finished(收到finished=true)
index 1655ce3..bd6ba0d 100644 (file)
@@ -2889,9 +2889,10 @@ extern "C" {
                     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "关闭VAD失败: %d", vad_ret);
                 }
                 //进入哄睡黑脸保护机制
-                if (videoPlay_ == nullptr || videoPlay_->isExited_)
+                ThunderBirdMainView* mainView = ThunderBirdMainView::GetInstance();
+                if (mainView != nullptr && (mainView->videoPlay_ == nullptr || mainView->videoPlay_->isExited_))
                 {
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdMainView::SwitchVideo: Video thread exited, switching to winking");
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeStart: Video thread exited, switching to winking");
                     ThunderBirdModel::GetInstance()->SwitchToWinkingExpression();
                 }
                 // 故事请求已在协议解析阶段处理(ln_parse_sleep_mode_start),此处不再发送
@@ -3732,6 +3733,8 @@ extern "C" {
     // 进入哄睡模式时记录当前表情(进入THUNDERBIRD_LULLABYVIEW_4时调用)
     void ThunderBirdModel::OnEnterLullabyMode()
     {
+        //进入哄睡模式时,心跳间隔设置为30秒
+        ln_ws_set_heartbeat_interval_sec(30);
         // 记录进入哄睡模式前的时间线表情(用于退出时恢复)
         m_lullabyExpression = "winking";
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::OnEnterLullabyMode: 记录时间线表情: %s", m_currentExpression.c_str());
@@ -3783,6 +3786,8 @@ extern "C" {
     // 退出哄睡模式时恢复表情(退出THUNDERBIRD_LULLABYVIEW_4时调用)
     void ThunderBirdModel::OnExitLullabyMode()
     {   
+        //退出哄睡模式时,心跳间隔设置为5分钟
+        ln_ws_set_heartbeat_interval_sec(300);
         // 隐藏小绿点
         ThunderBirdMainView* mainView = ThunderBirdMainView::GetInstance();
         if (mainView != nullptr && mainView->listenIcon) {