Browse Source

夺宝奇兵大模型音频完成;情绪大模型token浏览器获取

hongxilin/hotfix-20250625101643-手机输入法弹出输入框上浮
宋杰 1 week ago
parent
commit
88dfbde8ac
  1. 145
      src/views/AIchat.vue
  2. 10
      src/views/AiEmotion.vue

145
src/views/AIchat.vue

@ -139,21 +139,35 @@ const pauseAudio = () => {
//
const playAudioSequence = (audioUrls) => {
console.log('playAudioSequence被调用,参数:', audioUrls);
if (!audioUrls || audioUrls.length === 0) {
console.warn("音频URL列表为空,跳过播放");
return;
}
let currentIndex = 0;
let audioSequence = [...audioUrls]; //
const playNext = () => {
if (currentIndex >= audioUrls.length) {
console.log("所有音频播放完成");
if (currentIndex >= audioSequence.length) {
console.log("所有音频播放完成,重置到第一个音频");
//
currentIndex = 0;
audioStore.isPlaying = false;
audioStore.isPaused = false;
audioStore.playbackPosition = 0;
if (audioSequence.length > 0) {
audioStore.setCurrentAudioUrl(audioSequence[0]);
}
return;
}
const currentUrl = audioUrls[currentIndex];
const currentUrl = audioSequence[currentIndex];
console.log(`正在播放第${currentIndex + 1}个音频:`, currentUrl);
console.log('音频URL有效性检查:', !!currentUrl, '长度:', currentUrl?.length);
// URL
audioStore.setCurrentAudioUrl(currentUrl);
//
if (audioStore.nowSound) {
@ -167,10 +181,19 @@ const playAudioSequence = (audioUrls) => {
rate: 1.2,
onplay: () => {
audioStore.isPlaying = true;
audioStore.isPaused = false;
console.log(`开始播放音频 ${currentIndex + 1}`);
},
onpause: () => {
audioStore.isPlaying = false;
audioStore.isPaused = true;
audioStore.playbackPosition = sound.seek() || 0;
console.log(`音频 ${currentIndex + 1} 已暂停`);
},
onend: () => {
audioStore.isPlaying = false;
audioStore.isPaused = false;
audioStore.playbackPosition = 0;
console.log(`音频 ${currentIndex + 1} 播放完成`);
currentIndex++;
//
@ -180,6 +203,9 @@ const playAudioSequence = (audioUrls) => {
},
onstop: () => {
audioStore.isPlaying = false;
audioStore.isPaused = false;
audioStore.playbackPosition = 0;
console.log(`音频 ${currentIndex + 1} 已停止`);
},
onloaderror: (id, err) => {
console.error(`音频 ${currentIndex + 1} 加载失败:`, err);
@ -196,6 +222,30 @@ const playAudioSequence = (audioUrls) => {
sound.play();
};
// togglePlayPause
const originalTogglePlayPause = audioStore.togglePlayPause;
audioStore.togglePlayPause = () => {
if (audioStore.soundInstance) {
if (audioStore.isPlaying) {
//
audioStore.pause();
} else if (audioStore.isPaused) {
//
audioStore.play();
} else {
//
if (currentIndex >= audioSequence.length) {
currentIndex = 0; //
}
playNext();
}
} else {
//
currentIndex = 0;
playNext();
}
};
//
playNext();
};
@ -1113,6 +1163,46 @@ watch(
// });
}
}
// API
if (apiStatus.one.completed && apiStatus.two.completed && apiStatus.three.completed && apiStatus.four.completed && apiStatus.four.executed) {
console.log('所有API已完成,开始收集音频URL');
// URL
const audioUrls = [];
console.log('API返回结果检查:');
console.log('result21:', result21);
console.log('result22:', result22);
console.log('result23:', result23);
console.log('result24:', result24);
if (result21?.data?.url) {
console.log('添加result21音频URL:', result21.data.url);
audioUrls.push(result21.data.url.trim());
}
if (result22?.data?.url) {
console.log('添加result22音频URL:', result22.data.url);
audioUrls.push(result22.data.url.trim());
}
if (result23?.data?.url) {
console.log('添加result23音频URL:', result23.data.url);
audioUrls.push(result23.data.url.trim());
}
if (result24?.data?.url) {
console.log('添加result24音频URL:', result24.data.url);
audioUrls.push(result24.data.url.trim());
}
console.log('收集到的音频URLs:', audioUrls);
console.log('语音是否启用:', audioStore.isVoiceEnabled);
//
if (audioUrls.length > 0 && audioStore.isVoiceEnabled) {
console.log('开始播放音频序列');
playAudioSequence(audioUrls);
} else {
console.log('跳过音频播放 - audioUrls长度:', audioUrls.length, '语音启用状态:', audioStore.isVoiceEnabled);
}
}
};
const handleOneAPI = async () => {
@ -1238,17 +1328,7 @@ watch(
// const result23 = await dbqbSecondThreeAPI(params2);
// const result24 = await dbqbSecondFourAPI(params2);
// URL
const audioUrls = [];
if (result21.data.url) audioUrls.push(result21.data.url.trim());
if (result22.data.url) audioUrls.push(result22.data.url.trim());
if (result23.data.url) audioUrls.push(result23.data.url.trim());
if (result24.data.url) audioUrls.push(result24.data.url.trim());
//
if (audioUrls.length > 0 && audioStore.isVoiceEnabled) {
playAudioSequence(audioUrls);
}
// checkAndExecuteInOrder
// //
// const processedContent = marked(AIcontent.value);
@ -2935,6 +3015,9 @@ onMounted(() => {
console.log("组件挂载完成");
//
document.addEventListener('visibilitychange', handleVisibilityChange);
// DOM
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
@ -2954,8 +3037,42 @@ onMounted(() => {
observer.observe(document.body, { childList: true, subtree: true });
});
//
let wasPlayingBeforeHidden = false;
const handleVisibilityChange = () => {
if (document.hidden) {
//
if (audioStore.isPlaying) {
wasPlayingBeforeHidden = true;
audioStore.pause();
console.log('页面切换离开,音频已暂停');
} else {
wasPlayingBeforeHidden = false;
}
} else {
//
if (wasPlayingBeforeHidden && !audioStore.isPlaying) {
audioStore.play();
console.log('页面切换回来,音频已恢复播放');
wasPlayingBeforeHidden = false;
}
}
};
//
onUnmounted(() => {
//
document.removeEventListener('visibilitychange', handleVisibilityChange);
//
if (audioStore.isPlaying) {
audioStore.stop();
console.log('组件卸载,音频已停止');
}
//
Object.keys(chartInstancesMap).forEach((key) => {
if (chartInstancesMap[key]) {

10
src/views/AiEmotion.vue

@ -651,7 +651,7 @@ function startTypewriterEffect(conclusion) {
});
//
const disclaimerText = '该内容由AI生成,请注意甄别';
const disclaimerText = '该内容由AI内容生成,请注意甄别';
//
const showDisclaimerTimer = setTimeout(() => {
@ -795,8 +795,7 @@ async function handleSendMessage(input) {
const params = {
content: userMessage.text,
userData: {
token:
"9ior41AF0xTIbIG2pRnnbZi0+fEeMx8pywnIlrmTwo5FbqJ9lWrSWOxp9MkpKiNtedtUafqvzIwpFKrwuMs",
token: localStorage.getItem('localToken'),
language: "cn",
brainPrivilegeState: "1",
swordPrivilegeState: "1",
@ -824,8 +823,7 @@ async function handleSendMessage(input) {
const conclusionParams = {
content: input.trim(),
userData: {
token:
"9ior41AF0xTIbIG2pRnnbZi0+fEeMx8pywnIlrmTwo5FbqJ9lWrSWOxp9MkpKiNtedtUafqvzIwpFKrwuMs",
token: localStorage.getItem('localToken'),
language: "cn",
marketList: "hk,cn,usa,my,sg,vi,in,gb",
},
@ -1109,7 +1107,7 @@ function setupIntersectionObserver() {
two: conclusion.two || '',
three: conclusion.three || '',
four: conclusion.four || '',
disclaimer: '该内容由AI生成,请注意甄别'
disclaimer: '该内容由AI内容生成,请注意甄别'
};
displayedTitles.value = {
one: 'L1: 情绪监控',

Loading…
Cancel
Save