From a86bbae85145a22d0ed7f259fe86fe82b86dd7ff Mon Sep 17 00:00:00 2001 From: Robin van Nunen Date: Sat, 29 Sep 2018 21:23:10 +0200 Subject: [PATCH] Only save quality setting when it's updated by the user. Fixes bug in html5 player where it would override the settings if the current video does not support the given quality. --- src/js/html5.js | 3 --- src/js/plyr.js | 10 ++++++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/js/html5.js b/src/js/html5.js index fc8da8c0..0876211a 100644 --- a/src/js/html5.js +++ b/src/js/html5.js @@ -82,9 +82,6 @@ const html5 = { triggerEvent.call(player, player.media, 'qualitychange', false, { quality: input, }); - - // Save to storage - player.storage.set({ quality: input }); }, }); }, diff --git a/src/js/plyr.js b/src/js/plyr.js index 77582dd7..e5760d58 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -692,10 +692,15 @@ class Plyr { config.default, ].find(is.number); + let updateStorage = true; + if (!options.includes(quality)) { const value = closest(options, quality); this.debug.warn(`Unsupported quality option: ${quality}, using ${value} instead`); quality = value; + + // Don't update storage if quality is not supported + updateStorage = false; } // Update config @@ -703,6 +708,11 @@ class Plyr { // Set quality this.media.quality = quality; + + // Save to storage + if (updateStorage) { + this.storage.set({ quality: quality }); + } } /**