Skip to content

Commit 940c2cf

Browse files
fix(autoplay): pause auto play while Backlog is open
Backlog 打开时自动播放不应推进剧情,否则在历史界面 点选 backlog 语音暂停 currentVocal 后,auto 会立即推进 到下一句对话并触发新的 vocal 播放,导致 Backlog 中听到 两条声音。 - autoPlay 在 Backlog 打开时直接 return,避免推进 - Backlog 点击 backlog 语音时同时 unmount vocal-play perform,清理外部 pause 留下的状态不一致 属于 #866 修复的延伸场景。
1 parent 0d6797c commit 940c2cf

2 files changed

Lines changed: 6 additions & 0 deletions

File tree

packages/webgal/src/Core/controller/gamePlay/autoPlay.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ const autoPlay = () => {
5959
const data = webgalStore.getState().userData.optionData.autoSpeed;
6060
// 范围为 [250, 1750]
6161
const autoPlayDelay = 250 + (100 - data) * 15;
62+
// Backlog 打开时不推进,避免在历史界面里自动播放导致剧情继续
63+
if (webgalStore.getState().GUI.showBacklog) {
64+
return;
65+
}
6266
let isBlockingAuto = false;
6367
WebGAL.gameplay.performController.performList.forEach((e) => {
6468
if (e.blockingAuto())

packages/webgal/src/UI/Backlog/Backlog.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,8 @@ export const Backlog = () => {
143143
currentVocal.pause();
144144
currentVocal.currentTime = 0;
145145
}
146+
// 卸载 vocal-play perform,避免其 blockingAuto 阻塞自动播放
147+
WebGAL.gameplay.performController.unmountPerform('vocal-play', true);
146148
// 获取到播放 backlog 语音的元素
147149
const backlog_audio_element: any = document.getElementById(currentAudioId);
148150
if (backlog_audio_element) {

0 commit comments

Comments
 (0)