From 09b154ed7a2f1539a239436b2cb8f76b464e4308 Mon Sep 17 00:00:00 2001 From: CeilingFANC Date: Fri, 12 Apr 2024 15:16:16 +0800 Subject: [PATCH] fix: Correct playhead when seek beyond seekRange (#6304) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes https://github.com/shaka-project/shaka-player/issues/5202 --------- Co-authored-by: Álvaro Velad Galván --- lib/media/playhead.js | 6 +++--- test/media/playhead_unit.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/media/playhead.js b/lib/media/playhead.js index a42fc3f860..393e6c5893 100644 --- a/lib/media/playhead.js +++ b/lib/media/playhead.js @@ -382,10 +382,10 @@ shaka.media.MediaSourcePlayhead = class { seekStart = seekEnd - this.minSeekRange_; } - if (currentTime < seekStart) { - // The seek range has moved past the playhead. Move ahead to catch up. + if (currentTime < seekStart || currentTime > seekEnd) { + // playhead is outside of the seekrange. Move playhead to catch up. const targetTime = this.reposition_(currentTime); - shaka.log.info('Jumping forward ' + (targetTime - currentTime) + + shaka.log.info('Jumping by ' + (targetTime - currentTime) + ' seconds to catch up with the seek range.'); this.mediaElement_.currentTime = targetTime; } diff --git a/test/media/playhead_unit.js b/test/media/playhead_unit.js index 0b7cca091b..bc52c2283b 100644 --- a/test/media/playhead_unit.js +++ b/test/media/playhead_unit.js @@ -683,7 +683,7 @@ describe('Playhead', () => { // It should allow a small buffer around the seek range. seekCount = 0; - currentTime = 1030.062441; + currentTime = 1030; jasmine.clock().tick(500); currentTime = 1027.9233; jasmine.clock().tick(500);