diff options
Diffstat (limited to 'dist/plyr.js')
-rw-r--r-- | dist/plyr.js | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/dist/plyr.js b/dist/plyr.js index 0e9d4894..890a2902 100644 --- a/dist/plyr.js +++ b/dist/plyr.js @@ -3533,9 +3533,14 @@ var controls = { // Set a list of available captions languages - setSpeedMenu: function setSpeedMenu() { + setSpeedMenu: function setSpeedMenu(options) { var _this4 = this; + // Do nothing if not selected + if (!this.config.controls.includes('settings') || !this.config.settings.includes('speed')) { + return; + } + // Menu required if (!utils.is.element(this.elements.settings.panes.speed)) { return; @@ -3543,9 +3548,11 @@ var controls = { var type = 'speed'; - // Set the default speeds - if (!utils.is.array(this.options.speed) || !this.options.speed.length) { + // Set the speed options + if (!utils.is.array(options)) { this.options.speed = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]; + } else { + this.options.speed = options; } // Set options if passed and filter based on config @@ -3557,6 +3564,9 @@ var controls = { var toggle = !utils.is.empty(this.options.speed); controls.toggleTab.call(this, type, toggle); + // Check if we need to toggle the parent + controls.checkMenu.call(this); + // If we're hiding, nothing more to do if (!toggle) { return; @@ -3581,6 +3591,15 @@ var controls = { }, + // Check if we need to hide/show the settings menu + checkMenu: function checkMenu() { + var speedHidden = this.elements.settings.tabs.speed.getAttribute('hidden') !== null; + var languageHidden = this.elements.settings.tabs.captions.getAttribute('hidden') !== null; + + utils.toggleHidden(this.elements.settings.menu, speedHidden && languageHidden); + }, + + // Show/hide menu toggleMenu: function toggleMenu(event) { var form = this.elements.settings.form; @@ -3971,7 +3990,7 @@ var controls = { this.elements.controls = container; - if (this.config.controls.includes('settings') && this.config.settings.includes('speed')) { + if (this.isHTML5) { controls.setSpeedMenu.call(this); } @@ -4179,7 +4198,7 @@ var Listeners = function () { case 39: // Arrow forward - this.player.fastForward(); + this.player.forward(); break; case 37: @@ -5710,7 +5729,8 @@ var youtube = { }); // Get available speeds - player.options.speed = instance.getAvailablePlaybackRates(); + var options = instance.getAvailablePlaybackRates(); + controls.setSpeedMenu.call(player, options); // Set the tabindex to avoid focus entering iframe if (player.supported.ui) { @@ -5987,6 +6007,11 @@ var vimeo = { player.embed.setPlaybackRate(input).then(function () { speed = input; utils.dispatchEvent.call(player, player.media, 'ratechange'); + }).catch(function (error) { + // Hide menu item (and menu if empty) + if (error.name === 'Error') { + controls.setSpeedMenu.call(player, []); + } }); } }); |