ln_ws_end_audio_chat();
// 强制中断音频播放
// AI_ForceInterrupt();
+
+ //推送结束故事消息
+ ln_ws_send_sleep_mode_end_ack(true, "哄睡模式结束");
+
// 发送中断消息(通知服务器停止发送音频数据)
ln_ws_send_voice_chat_interrupt("退出哄睡");
// 等待一小段时间,确保WebSocket线程处理完中断消息
- //推送结束故事消息
- ln_ws_send_sleep_mode_end_ack(true, "哄睡模式结束");
+
// 音频deinit(清理音频资源)
do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0);
// 等待音频deinit完成,避免在音频清理过程中切换视图
}
// 检查是否是退出对话场景
- bool is_exit_dialogue = (strcmp(reason, "退出对话") == 0);
+ bool is_exit_dialogue = (strcmp(reason, "退出对话") == 0 || strcmp(reason, "退出哄睡") == 0);
// 检查是否需要在1秒内有数据时触发重连
bool need_reconnect = ln_ws_check_binary_data_interrupt();
data_msg->text_content, data_msg->audio_url, data_msg->audio_duration, data_msg->chat_id);
}
+ if (data_msg->command == WS_CMD_SLEEP_MODE_END)
+ {
+ g_story_index=0;
+ }
// 保存原始JSON字符串
data_msg->raw_json = (char*)malloc(strlen(json_str) + 1);
if (data_msg->raw_json) {