fix: only switch quality during active playback, not after video ended
This commit is contained in:
@@ -182,8 +182,6 @@ export class VideoManager {
|
|||||||
switchQuality(src: string, seekTime: number) {
|
switchQuality(src: string, seekTime: number) {
|
||||||
const active = this.active
|
const active = this.active
|
||||||
this.currentSrc = src
|
this.currentSrc = src
|
||||||
active.pause()
|
|
||||||
active.currentTime = 0
|
|
||||||
active.src = src
|
active.src = src
|
||||||
active.load()
|
active.load()
|
||||||
this.preloaded.set(this.keyOf(active), src)
|
this.preloaded.set(this.keyOf(active), src)
|
||||||
|
|||||||
12
src/App.vue
12
src/App.vue
@@ -114,10 +114,14 @@ watch([() => store.qteTimeRelax, () => store.qteSingleKey], () => {
|
|||||||
watch(() => store.preferredQuality, (q) => {
|
watch(() => store.preferredQuality, (q) => {
|
||||||
engine.videoManager.streamingQuality = q
|
engine.videoManager.streamingQuality = q
|
||||||
const scene = store.currentScene
|
const scene = store.currentScene
|
||||||
if (scene?.streamingUrl && q) {
|
if (scene?.streamingUrl && scene.streamingUrl[q]) {
|
||||||
const url = engine.videoManager.resolveVideoUrl(scene, q)
|
const active = engine.videoManager.getActiveVideoElement()
|
||||||
const ct = engine.videoManager.getCurrentTime()
|
if (active && !active.ended) {
|
||||||
engine.videoManager.switchQuality(url, ct)
|
engine.videoManager.switchQuality(
|
||||||
|
engine.videoManager.resolveVideoUrl(scene, q),
|
||||||
|
engine.videoManager.getCurrentTime()
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, { immediate: true })
|
}, { immediate: true })
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user