From 2eb5f60f35a7734aaad59b9ccfea786862b5bad9 Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Fri, 24 Jul 2020 16:00:26 -0400 Subject: [PATCH] Prevent immediate level switch from performing unnecessary pause and seeks as this can interfere with 3rd party application state --- src/controller/stream-controller.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/controller/stream-controller.js b/src/controller/stream-controller.js index 1d5371150f3..d0e374eac9a 100644 --- a/src/controller/stream-controller.js +++ b/src/controller/stream-controller.js @@ -571,7 +571,9 @@ class StreamController extends BaseStreamController { let media = this.media, previouslyPaused; if (media) { previouslyPaused = media.paused; - media.pause(); + if (!previouslyPaused) { + media.pause(); + } } else { // don't restart playback after instant level switch in case media not attached previouslyPaused = true; @@ -597,7 +599,7 @@ class StreamController extends BaseStreamController { const media = this.media; if (media && media.buffered.length) { this.immediateSwitch = false; - if (BufferHelper.isBuffered(media, media.currentTime)) { + if (media.currentTime > 0 && BufferHelper.isBuffered(media, media.currentTime)) { // only nudge if currentTime is buffered media.currentTime -= 0.0001; }