From 2bb72884517e9d90ee00437eed727ed6c70cdb9f Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Sun, 16 Jan 2022 08:43:24 +0000 Subject: [PATCH] Implement better support for playback rate changes (#730) * Implement better support for playback rate changes. * Add isNaN check for duration. --- src/components/VideoPlayer.vue | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/VideoPlayer.vue b/src/components/VideoPlayer.vue index 5e55d214..d3062688 100644 --- a/src/components/VideoPlayer.vue +++ b/src/components/VideoPlayer.vue @@ -349,8 +349,10 @@ export default { this.setPreference("volume", videoEl.volume); }); - videoEl.addEventListener("ratechange", () => { - this.setPreference("rate", videoEl.playbackRate); + videoEl.addEventListener("ratechange", e => { + const rate = videoEl.playbackRate; + if (rate > 0 && !isNaN(videoEl.duration) && !isNaN(videoEl.duration - e.timeStamp / 1000)) + this.setPreference("rate", rate); }); videoEl.addEventListener("ended", () => { @@ -489,7 +491,10 @@ export default { ); }); videoEl.volume = this.getPreferenceNumber("volume", 1); - player.trickPlay(this.getPreferenceNumber("rate", 1)); + const rate = this.getPreferenceNumber("rate", 1); + player.trickPlay(rate); + player.playbackRate = rate; + player.defaultPlaybackRate = rate; }); }, async updateProgressDatabase(time) {