{
case THUNDERBIRD_DIALOGUEVIEW_SPEAKING:
{
- ThunderBirdModel::GetInstance()->LowFrequence();//减低视频帧率
- ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
if (TextLabel)
{
TextLabel->SetPosition(37, 66, 325, 42);
}
case THUNDERBIRD_DIALOGUEVIEW_LISTENING:
{
- ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
if (TextLabel)
{
TextLabel->SetPosition(111, 64, 180, 42);
}
case THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW:
{
- ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
ThunderBirdModel::GetInstance()->HighFrequence();//恢复视频帧率
// uapi_set_sleep_mode_active(false);//睡眠模式激活标志位
//如果仍在对话,取消对话
if (currentView == THUNDERBIRD_DIALOGUEVIEW &&
(currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING || currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING)) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "聆听/说话界面超时,自动跳转并退出对话");
+ ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
if(bind_status == true)
{
view->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
void ThunderBirdModel::HandleSleepModeEnd()
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeEnd");
- //关闭常亮屏
- ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
// 停止故事模式超时定时器
StopStoryModeTimeoutTimer();
// 重置故事模式finished标志
ln_ws_send_voice_chat_interrupt("退出哄睡");
do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0);
ThunderBirdModel::GetInstance()->HighFrequence();//恢复视频帧率
- ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON); // 关闭屏幕常亮
+ // ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON); // 关闭屏幕常亮
// ThunderBirdModel::GetInstance()->g_sleep_mode_active = false;//睡眠模式激活标志位
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
break;
ThunderBirdDialogueView::GetInstance()->Isband(true);
}
isDialogueing = true;
- ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 打开屏幕常亮
+ ThunderBirdModel::GetInstance()->LowFrequence();//减低视频帧率
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
// 进入对话模式时记录当前表情
ThunderBirdModel::GetInstance()->OnEnterDialogueMode();
// 获取对话体力与流量信息
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "退出对话模式,当前子状态: %d", currentSubView);
+ ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
#if LN_VOICE_CHAT_ENABLED
//发送结束对话流标志
do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_CHAT_SESSION_END, NULL, 0);
{
ThunderBirdModel::GetInstance()->StopCountUpTimer();
}
-
+ ln_ws_end_audio_chat();//结束对话
+
// 停止实际的音频播放
// ai_media_play_stop();
ThunderBirdDialogueView::GetInstance()->DialogueFirst = true;
// 退出对话模式,执行清理
ThunderBirdModel::GetInstance()->OnExitDialogueMode();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::HandleFuncKeyLongPress: Stopped AI audio playback");
-
+ // 先设置退出标志,防止录音结束回调误判为正常录音结束
+ isDialogueing = false;
// 等待视频切换完成,避免在视频切换过程中退出导致资源冲突
if (ThunderBirdMainView::GetInstance() && ThunderBirdMainView::IsSwitchingVideo()) {
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::HandleFuncKeyLongPress: 等待视频切换完成");
ThunderBirdMainView::WaitForVideoSwitchComplete(2000);
}
-
- // 先设置退出标志,防止录音结束回调误判为正常录音结束
- isDialogueing = false;
-
- ln_ws_end_audio_chat();//结束对话
-
-
-
+
// 检查绑定状态,如果未绑定则跳转到 THUNDERBIRD_GUIDEVIEW_5
if (!ThunderBirdModel::GetInstance()->getbind_status()) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "设备未绑定,跳转到 THUNDERBIRD_GUIDEVIEW_5");