From b0c8c6f4bab0f945690b8b5dd2933f5c6d238e7a Mon Sep 17 00:00:00 2001 From: Hardy--Lee Date: Tue, 3 Feb 2026 20:43:12 +0800 Subject: [PATCH] fix: vocal mouth animation --- packages/webgal/src/Core/gameScripts/vocal/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/webgal/src/Core/gameScripts/vocal/index.ts b/packages/webgal/src/Core/gameScripts/vocal/index.ts index 84508023b..5d2cd0017 100644 --- a/packages/webgal/src/Core/gameScripts/vocal/index.ts +++ b/packages/webgal/src/Core/gameScripts/vocal/index.ts @@ -130,9 +130,12 @@ export const playVocal = (sentence: ISentence) => { audioContextWrapper.dataArray = new Uint8Array(bufferLength); let vocalControl = document.getElementById('currentVocal') as HTMLMediaElement; - if (!audioContextWrapper.source) { + if (!audioContextWrapper.source || audioContextWrapper.source.mediaElement !== vocalControl) { + if (audioContextWrapper.source) { + audioContextWrapper.source.disconnect(); + } audioContextWrapper.source = audioContextWrapper.audioContext.createMediaElementSource(vocalControl); - audioContextWrapper.source.connect(audioContextWrapper.analyser); + audioContextWrapper.source.connect(audioContextWrapper.analyser!); } audioContextWrapper.analyser.connect(audioContextWrapper.audioContext.destination);