feat(speaking): 添加初始场景欢迎语
This commit is contained in:
parent
5d9f399112
commit
e976495e68
|
|
@ -1,5 +1,5 @@
|
|||
<script setup>
|
||||
import { ref, computed, nextTick, onUnmounted } from "vue";
|
||||
import { ref, computed, nextTick, onUnmounted, onMounted } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { DOUBAO_APP_ID, DOUBAO_ACCESS_TOKEN, DOUBAO_RESOURCE_ID, DOUBAO_TTS_API_PATH, DOUBAO_AUDIO_FORMAT, DOUBAO_SAMPLE_RATE, ARK_API_KEY, ARK_MODEL, ARK_API_PATH, ARK_MAX_TOKENS, ARK_HISTORY_LIMIT } from "@/config/index.js";
|
||||
|
||||
|
|
@ -109,6 +109,7 @@ const messagesContainer = ref(null);
|
|||
let msgIdCounter = 0;
|
||||
let currentAudioInstance = null;
|
||||
const blobUrls = [];
|
||||
let lastGreetedScene = null;
|
||||
|
||||
// 兼容的 UUID 生成函数
|
||||
const generateUUID = () => {
|
||||
|
|
@ -121,6 +122,15 @@ const generateUUID = () => {
|
|||
|
||||
const currentScene = computed(() => scenes.find((s) => s.id === activeScene.value));
|
||||
|
||||
// 初始化:发送默认场景欢迎语
|
||||
onMounted(() => {
|
||||
const defaultScene = scenes.find((s) => s.id === activeScene.value);
|
||||
if (defaultScene) {
|
||||
sendGreeting(defaultScene);
|
||||
lastGreetedScene = activeScene.value;
|
||||
}
|
||||
});
|
||||
|
||||
// 发送场景欢迎语
|
||||
const sendGreeting = async (scene) => {
|
||||
isSending.value = true;
|
||||
|
|
@ -144,7 +154,8 @@ const sendGreeting = async (scene) => {
|
|||
|
||||
// 切换场景,重置对话并发送欢迎语
|
||||
const switchScene = (sceneId) => {
|
||||
if (activeScene.value === sceneId) return;
|
||||
// 如果是上一个已发送欢迎语的场景,不重复发送
|
||||
if (activeScene.value === sceneId && lastGreetedScene === sceneId) return;
|
||||
activeScene.value = sceneId;
|
||||
// 停止当前播放
|
||||
if (currentAudioInstance) {
|
||||
|
|
@ -153,7 +164,10 @@ const switchScene = (sceneId) => {
|
|||
}
|
||||
messages.value = [];
|
||||
const scene = scenes.find((s) => s.id === sceneId);
|
||||
if (scene) sendGreeting(scene);
|
||||
if (scene) {
|
||||
sendGreeting(scene);
|
||||
lastGreetedScene = sceneId;
|
||||
}
|
||||
};
|
||||
|
||||
// 滚动到底部
|
||||
|
|
|
|||
Loading…
Reference in New Issue