diff --git a/engine/core/VideoManager.ts b/engine/core/VideoManager.ts index 817c693..cccc5e5 100644 --- a/engine/core/VideoManager.ts +++ b/engine/core/VideoManager.ts @@ -182,8 +182,6 @@ export class VideoManager { switchQuality(src: string, seekTime: number) { const active = this.active this.currentSrc = src - active.pause() - active.currentTime = 0 active.src = src active.load() this.preloaded.set(this.keyOf(active), src) diff --git a/src/App.vue b/src/App.vue index 4ba9036..c09d405 100644 --- a/src/App.vue +++ b/src/App.vue @@ -114,10 +114,14 @@ watch([() => store.qteTimeRelax, () => store.qteSingleKey], () => { watch(() => store.preferredQuality, (q) => { engine.videoManager.streamingQuality = q const scene = store.currentScene - if (scene?.streamingUrl && q) { - const url = engine.videoManager.resolveVideoUrl(scene, q) - const ct = engine.videoManager.getCurrentTime() - engine.videoManager.switchQuality(url, ct) + if (scene?.streamingUrl && scene.streamingUrl[q]) { + const active = engine.videoManager.getActiveVideoElement() + if (active && !active.ended) { + engine.videoManager.switchQuality( + engine.videoManager.resolveVideoUrl(scene, q), + engine.videoManager.getCurrentTime() + ) + } } }, { immediate: true })