#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"
//最低视频帧率
#define LOW_FREQUENCE 20
//最高视频帧率
- #define HIGH_FREQUENCE 50
+ #define HIGH_FREQUENCE 60
namespace OHOS
{
enum OTA_STATUS
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)
{