// ---------------------- 通用计时加一定时器(已整合到新定时器系统) ----------------------
void ThunderBirdModel::StartCountUpTimer(uint32_t targetSeconds)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StartCountUpTimer: targetSeconds=%u", targetSeconds);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StartCountUpTimer: targetSeconds=%u", targetSeconds);
// 参数保护:至少为1秒
if (targetSeconds < 1) { targetSeconds = 1; }
view->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING);
ln_ws_end_audio_chat();
}
+ //检查是否是播放界面超时,需要自动跳转到状态界面
+ else if (currentView == THUNDERBIRD_DIALOGUEVIEW &&
+ currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "播放界面超时,自动跳转到状态界面");
+ view->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
+ ln_ws_end_audio_chat();//结束对话
+ // 退出对话模式时恢复表情
+ AI_ForceInterrupt();
+ ln_ws_send_voice_chat_interrupt("退出对话");
+ 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();
+ }
+
// 检查是否是绑定成功界面,需要跳转到对话界面
else if (currentView == THUNDERBIRD_ADJUSTVIEW &&
currentSubView == ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_BIND_SUCCESS) {
void ThunderBirdModel::HandleAudioPlaybackEnd()
{
//return;//确保稳定性该版本不使用音频播放结束处理
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackEnd");
int currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView();
if(ThunderBirdDialogueView::GetInstance() && currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING)
{
+
ThunderBirdDialogueView::GetInstance()->AudioPlaybackEnd();
+ //增加30秒定时器
+ ThunderBirdModel::GetInstance()->StartCountUpTimer(120);
}
}