diff --git a/engine/core/Engine.ts b/engine/core/Engine.ts index f4d67d3..8f72270 100644 --- a/engine/core/Engine.ts +++ b/engine/core/Engine.ts @@ -118,8 +118,11 @@ export class Engine { this.videoManager.onEnd(() => { if (this.loopActive && scene.loopEnd) { - this.videoManager.seekTo(scene.loopStart!) - this.videoManager.getActiveVideoElement()?.play().catch(() => {}) + const activeEl = this.videoManager.getActiveVideoElement() + if (activeEl) { + activeEl.currentTime = scene.loopStart! + setTimeout(() => activeEl.play().catch(() => {}), 0) + } return } if (scene.loopStart && !this.loopActive) { @@ -230,8 +233,11 @@ export class Engine { } if (this.loopActive && scene.loopEnd && time >= scene.loopEnd) { - this.videoManager.seekTo(scene.loopStart) - this.videoManager.getActiveVideoElement()?.play().catch(() => {}) + const activeEl = this.videoManager.getActiveVideoElement() + if (activeEl) { + activeEl.currentTime = scene.loopStart + setTimeout(() => activeEl.play().catch(() => {}), 0) + } } }