From 32f7e34130e089cad3850fd1cde3a073f7cd80af Mon Sep 17 00:00:00 2001 From: cocos02 Date: Fri, 12 Jun 2026 18:56:29 +0800 Subject: [PATCH] fix: preload candidate URLs now use resolveVideoUrl in Web mode --- engine/core/Engine.ts | 6 +++++- engine/core/SceneManager.ts | 4 +--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/engine/core/Engine.ts b/engine/core/Engine.ts index eed9cec..89151f8 100644 --- a/engine/core/Engine.ts +++ b/engine/core/Engine.ts @@ -107,10 +107,14 @@ export class Engine { this.emit('sceneChange', scene) this.checkHotspotTime(scene, 0) - const preloadUrls = this.sceneManager.getCandidateUrls( + const candidateIds = this.sceneManager.getCandidateSceneIds( scene, (conds) => conds ? this.stateManager.evaluate(conds) : true ) + const preloadUrls = candidateIds + .map(id => this.sceneManager.getScene(id)) + .filter((s) => !!s && s.type !== 'image') + .map(s => this.videoManager.resolveVideoUrl(s!, this.videoManager.streamingQuality)) this.videoManager.onEnd(() => { if (!this.qteTriggered || this.qteResolved) { diff --git a/engine/core/SceneManager.ts b/engine/core/SceneManager.ts index 1e20cd4..a982443 100644 --- a/engine/core/SceneManager.ts +++ b/engine/core/SceneManager.ts @@ -57,9 +57,7 @@ export class SceneManager { return targets } - getCandidateUrls(scene: SceneNode, evaluateCondition: (conds?: Condition[]) => boolean): string[] { + getCandidateSceneIds(scene: SceneNode, evaluateCondition: (conds?: Condition[]) => boolean): string[] { return this.getCandidateTargetIds(scene, evaluateCondition) - .map(id => this.scenes[id]?.videoUrl) - .filter((url): url is string => !!url) } }