Browse Source

解决情绪大模型音频喇叭状态的问题;

dev
宋杰 2 days ago
parent
commit
a85ade2bb2
  1. 83
      src/views/AiEmotion.vue

83
src/views/AiEmotion.vue

@ -1477,6 +1477,13 @@ const playNextAudio = () => {
emotionAudioStore.isPlaying = true; emotionAudioStore.isPlaying = true;
console.log(`开始播放${audioInfo.name}音频`); console.log(`开始播放${audioInfo.name}音频`);
//
const currentStock = emotionStore.activeStock;
if (currentStock) {
setStockAudioState(currentStock, { isPlaying: true, isPaused: false });
console.log('设置当前股票音频状态为播放中:', currentStock.stockInfo?.name);
}
// //
if ( if (
currentPlayIndex === 0 && currentPlayIndex === 0 &&
@ -1484,26 +1491,46 @@ const playNextAudio = () => {
parsedConclusion.value parsedConclusion.value
) { ) {
console.log("🎬 第一个音频开始播放,同时启动打字机效果"); console.log("🎬 第一个音频开始播放,同时启动打字机效果");
const currentStock = emotionStore.activeStock;
const stockId = currentStock?.stockInfo?.code || currentStock?.stockInfo?.symbol; const stockId = currentStock?.stockInfo?.code || currentStock?.stockInfo?.symbol;
startTypewriterEffect(parsedConclusion.value, stockId, audioInfo.onComplete); startTypewriterEffect(parsedConclusion.value, stockId, audioInfo.onComplete);
} }
}, },
onpause: () => { onpause: () => {
emotionAudioStore.isPlaying = false;
emotionAudioStore.isPaused = true; emotionAudioStore.isPaused = true;
console.log(`${audioInfo.name}音频暂停播放`);
//
if (audio && audio.seek) {
emotionAudioStore.playbackPosition = audio.seek() || 0;
}
console.log(`${audioInfo.name}音频暂停播放,位置:`, emotionAudioStore.playbackPosition);
//
const currentStock = emotionStore.activeStock;
if (currentStock) {
setStockAudioState(currentStock, { isPlaying: false, isPaused: true });
console.log('设置当前股票音频状态为暂停:', currentStock.stockInfo?.name);
}
}, },
onresume: () => { onresume: () => {
emotionAudioStore.isPlaying = true;
emotionAudioStore.isPaused = false; emotionAudioStore.isPaused = false;
console.log(`${audioInfo.name}音频继续播放`);
//
if (emotionAudioStore.playbackPosition > 0 && audio && audio.seek) {
audio.seek(emotionAudioStore.playbackPosition);
}
console.log(`${audioInfo.name}音频继续播放,位置:`, emotionAudioStore.playbackPosition);
//
const currentStock = emotionStore.activeStock;
if (currentStock) {
setStockAudioState(currentStock, { isPlaying: true, isPaused: false });
console.log('设置当前股票音频状态为播放中:', currentStock.stockInfo?.name);
}
}, },
onend: () => { onend: () => {
console.log(`${audioInfo.name}音频播放完成,准备播放下一个`); console.log(`${audioInfo.name}音频播放完成,准备播放下一个`);
emotionAudioStore.isPlaying = false;
emotionAudioStore.isPaused = false; emotionAudioStore.isPaused = false;
emotionAudioStore.playbackPosition = 0; emotionAudioStore.playbackPosition = 0;
isAudioPlaying.value = false;
isPlayingQueueAudio.value = false;
// //
currentPlayIndex++; currentPlayIndex++;
@ -1513,14 +1540,30 @@ const playNextAudio = () => {
console.log( console.log(
`队列中还有音频,500ms后播放下一个 (索引:${currentPlayIndex})` `队列中还有音频,500ms后播放下一个 (索引:${currentPlayIndex})`
); );
//
setTimeout(() => { setTimeout(() => {
isCallingPlayNext = false; isCallingPlayNext = false;
isPlayingQueueAudio.value = false; //
// emotionAudioStore.isPlayingtruevoice
emotionAudioStore.isPlaying = true;
// URLtogglePlayPause
const nextAudioInfo = audioQueue.value[currentPlayIndex];
if (nextAudioInfo && nextAudioInfo.url) {
emotionAudioStore.setCurrentAudioUrl(nextAudioInfo.url);
}
playNextAudio(); playNextAudio();
}, 500); }, 500);
} else { } else {
console.log("🎉 所有音频播放完成"); console.log("🎉 所有音频播放完成");
emotionAudioStore.nowSound = null; emotionAudioStore.nowSound = null;
isCallingPlayNext = false; isCallingPlayNext = false;
// store
emotionAudioStore.isPlaying = false;
emotionAudioStore.isPaused = false;
emotionAudioStore.playbackPosition = 0;
isAudioPlaying.value = false;
isPlayingQueueAudio.value = false;
// //
const currentStock = emotionStore.activeStock; const currentStock = emotionStore.activeStock;
@ -1768,6 +1811,13 @@ function playAudio(url) {
isAudioPlaying.value = true; isAudioPlaying.value = true;
emotionAudioStore.isPlaying = true; emotionAudioStore.isPlaying = true;
console.log("开始播放场景应用语音"); console.log("开始播放场景应用语音");
//
const currentStock = emotionStore.activeStock;
if (currentStock) {
setStockAudioState(currentStock, { isPlaying: true, isPaused: false });
console.log('设置当前股票音频状态为播放中:', currentStock.stockInfo?.name);
}
// //
}, },
onend: () => { onend: () => {
@ -1776,16 +1826,37 @@ function playAudio(url) {
emotionAudioStore.isPaused = false; emotionAudioStore.isPaused = false;
emotionAudioStore.playbackPosition = 0; emotionAudioStore.playbackPosition = 0;
console.log("场景应用语音播放结束"); console.log("场景应用语音播放结束");
//
const currentStock = emotionStore.activeStock;
if (currentStock) {
setStockAudioState(currentStock, { isPlaying: false, isPaused: false });
console.log('重置当前股票音频状态:', currentStock.stockInfo?.name);
}
}, },
onstop: () => { onstop: () => {
isAudioPlaying.value = false; isAudioPlaying.value = false;
emotionAudioStore.isPlaying = false; emotionAudioStore.isPlaying = false;
console.log("场景应用语音播放停止"); console.log("场景应用语音播放停止");
//
const currentStock = emotionStore.activeStock;
if (currentStock) {
setStockAudioState(currentStock, { isPlaying: false, isPaused: false });
console.log('重置当前股票音频状态:', currentStock.stockInfo?.name);
}
}, },
onpause: () => { onpause: () => {
isAudioPlaying.value = false; isAudioPlaying.value = false;
emotionAudioStore.isPlaying = false; emotionAudioStore.isPlaying = false;
console.log("场景应用语音播放暂停"); console.log("场景应用语音播放暂停");
//
const currentStock = emotionStore.activeStock;
if (currentStock) {
setStockAudioState(currentStock, { isPlaying: false, isPaused: true });
console.log('设置当前股票音频状态为暂停:', currentStock.stockInfo?.name);
}
}, },
onerror: (error) => { onerror: (error) => {
isAudioPlaying.value = false; isAudioPlaying.value = false;

Loading…
Cancel
Save