From f28d4c9fa42ce547b77113815326f109678d747d Mon Sep 17 00:00:00 2001 From: xiaoxustudio <1783558957@qq.com> Date: Fri, 29 Aug 2025 22:21:15 +0800 Subject: [PATCH 1/3] fix: automatic playback to fail when play audio for not exist file --- packages/webgal/src/Core/gameScripts/playEffect.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/webgal/src/Core/gameScripts/playEffect.ts b/packages/webgal/src/Core/gameScripts/playEffect.ts index e53382003..b58e49e5f 100644 --- a/packages/webgal/src/Core/gameScripts/playEffect.ts +++ b/packages/webgal/src/Core/gameScripts/playEffect.ts @@ -100,6 +100,11 @@ export const playEffect = (sentence: ISentence): IPerform => { } } }; + seElement.addEventListener('error', (e) => { + logger.error('播放效果音失败'); + // 播放失败提前结束 + seElement.onended?.(e); + }); }, 1); }), }; From 205dab7afe76771bf5d9eb0118d0c17134769a14 Mon Sep 17 00:00:00 2001 From: xiaoxustudio <1783558957@qq.com> Date: Fri, 29 Aug 2025 22:24:57 +0800 Subject: [PATCH 2/3] chore: add audio path to error log --- packages/webgal/src/Core/gameScripts/playEffect.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webgal/src/Core/gameScripts/playEffect.ts b/packages/webgal/src/Core/gameScripts/playEffect.ts index b58e49e5f..f4681ca14 100644 --- a/packages/webgal/src/Core/gameScripts/playEffect.ts +++ b/packages/webgal/src/Core/gameScripts/playEffect.ts @@ -101,7 +101,7 @@ export const playEffect = (sentence: ISentence): IPerform => { } }; seElement.addEventListener('error', (e) => { - logger.error('播放效果音失败'); + logger.error(`播放效果音失败: ${url}`); // 播放失败提前结束 seElement.onended?.(e); }); From 846c42303b9ff031d4b20180831bc2279442b30e Mon Sep 17 00:00:00 2001 From: Mahiru Date: Sun, 9 Nov 2025 14:00:20 +0800 Subject: [PATCH 3/3] fix: improve audio playback end handling in playEffect --- packages/webgal/src/Core/gameScripts/playEffect.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/webgal/src/Core/gameScripts/playEffect.ts b/packages/webgal/src/Core/gameScripts/playEffect.ts index f4681ca14..f23d202cb 100644 --- a/packages/webgal/src/Core/gameScripts/playEffect.ts +++ b/packages/webgal/src/Core/gameScripts/playEffect.ts @@ -6,6 +6,7 @@ import { IPerform } from '@/Core/Modules/perform/performInterface'; import { useSelector } from 'react-redux'; import { WebGAL } from '@/Core/WebGAL'; import { WEBGAL_NONE } from '@/Core/constants'; +import { end } from './end'; /** * 播放一段效果音 @@ -91,7 +92,7 @@ export const playEffect = (sentence: ISentence): IPerform => { }; resolve(perform); seElement?.play(); - seElement.onended = () => { + const endFunc = () => { for (const e of WebGAL.gameplay.performController.performList) { if (e.performName === performInitName) { isOver = true; @@ -100,10 +101,11 @@ export const playEffect = (sentence: ISentence): IPerform => { } } }; + seElement.onended = endFunc; seElement.addEventListener('error', (e) => { logger.error(`播放效果音失败: ${url}`); // 播放失败提前结束 - seElement.onended?.(e); + endFunc(); }); }, 1); }),