优化故事5s为播放音频结束定时器开启位置,应该在第一句音频结束后
authorxue <2144439972@qq.com>
Fri, 16 Jan 2026 03:03:56 +0000 (11:03 +0800)
committerxue <2144439972@qq.com>
Fri, 16 Jan 2026 03:03:56 +0000 (11:03 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdLullabyView.cpp

index 8109401..29fb123 100644 (file)
@@ -447,6 +447,7 @@ namespace OHOS
         
         // 故事模式相关标志
         bool m_storyModeFinished = false;    // 故事模式是否已finished(收到finished=true)
+        bool m_firstStoryAudioPlayed = false; // 故事模式第一句音频是否已播放完成
         void* m_storyModeTimeoutTimer;        // 故事模式超时定时器(1分钟无文本切换则退出)
         void* m_storyAudioPlaybackTimeoutTimer;  // 故事模式音频播放超时定时器(5秒内无音频播放则退出)
         
index 8257307..7c87997 100644 (file)
@@ -344,11 +344,13 @@ namespace OHOS
             // 重置故事模式finished标志,确保每次进入故事模式时标志位是干净的
             ThunderBirdModel::GetInstance()->ResetStoryModeFinished();
             
+            // 重置第一句音频播放标志,确保每次进入故事模式时标志位是干净的
+            ThunderBirdModel::GetInstance()->ResetFirstStoryAudioPlayed();
+            
             // 启动故事模式超时定时器(1分钟无文本切换则退出)
             ThunderBirdModel::GetInstance()->StartStoryModeTimeoutTimer();
             
-            // 启动故事模式音频播放超时定时器(5秒内无音频播放则退出)
-            ThunderBirdModel::GetInstance()->StartStoryAudioPlaybackTimeoutTimer();
+            // 注意:5秒音频播放超时定时器将在第一句音频播放完成后才启动
             
             // 进入故事模式时关闭VAD
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入故事模式,关闭VAD");