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

Loading…
Cancel
Save