WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackStart");
// 音频开始播放时,从队列中取出对应的文本并推送
DequeueAndPushAudioText();
+
+ // 检查是否在THUNDERBIRD_LULLABYVIEW_3界面,如果是,标记角色开始询问
+ int currentView = ThunderBirdMainView::GetInstance()->GetCurrentView();
+ int currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView();
+ if (currentView == THUNDERBIRD_LULLABYVIEW &&
+ currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3)
+ {
+ m_lullabyView3InquiryStarted = true;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackStart: THUNDERBIRD_LULLABYVIEW_3界面,角色开始询问");
+ }
}
void ThunderBirdModel::HandleAudioPlaybackEnd()
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackEnd: 启动10秒定时器,时间到就退出对话");
return;
}
+ // 检查是否在THUNDERBIRD_LULLABYVIEW_3界面,且角色已经开始询问并询问完毕
+ if (currentView == THUNDERBIRD_LULLABYVIEW &&
+ currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3 &&
+ m_lullabyView3InquiryStarted)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackEnd: THUNDERBIRD_LULLABYVIEW_3界面,角色询问完毕,重新启动音频聊天");
+ // 重置标志
+ m_lullabyView3InquiryStarted = false;
+ int ret = ln_ws_start_audio_chat(LN_AUDIO_CHAT_CHOOSE_STORY_REQUEST);
+ if (ret == 0) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "THUNDERBIRD_LULLABYVIEW_3: 音频聊天已重新启动");
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "THUNDERBIRD_LULLABYVIEW_3: 启动音频聊天失败: %d", ret);
+ }
+ return;
+ }
// 检查是否是故事模式且已finished
// 注意:m_storyModeFinished在HandleStoryResponseFinished中已经通过了文本检查(不是"正在准备故事..."),
// THUNDERBIRD_LULLABYVIEW_3: 故事选择界面(VAD已关闭)
// THUNDERBIRD_LULLABYVIEW_4: 故事模式(VAD已关闭)
if(currentView == THUNDERBIRD_LULLABYVIEW &&
- (currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3 ||
- currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4))
+ currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3)
{
+ // isLullabyRecording = true;
+ ThunderBirdLullabyView::GetInstance()->listenAnimator->Start();
+ ThunderBirdDialogueView::GetInstance()->listenIcon->SetVisible(true);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioRecordingStart: 在哄睡界面(故事模式),忽略录音开始事件");
return;
}
ThunderBirdDialogueView::GetInstance()->listenIcon->SetVisible(false);
}
else if (currentView == THUNDERBIRD_LULLABYVIEW &&
- currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3 ||
- currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4) {
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "录音结束,跳转到故事选择界面");
- // view->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4);
+ currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3 ) {
+ ThunderBirdLullabyView::GetInstance()->listenAnimator->Stop();
+ ThunderBirdDialogueView::GetInstance()->listenIcon->SetVisible(false);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "录音结束,跳转到故事界面");
+ view->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4);
return;
}
else{