aboutsummaryrefslogtreecommitdiffstats
path: root/dist/plyr.js
diff options
context:
space:
mode:
Diffstat (limited to 'dist/plyr.js')
-rw-r--r--dist/plyr.js37
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, []);
+ }
});
}
});