aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/js/plyr.js54
1 files changed, 48 insertions, 6 deletions
diff --git a/src/js/plyr.js b/src/js/plyr.js
index f172b259..73963a90 100644
--- a/src/js/plyr.js
+++ b/src/js/plyr.js
@@ -131,8 +131,8 @@
// Quality settings
quality: {
- default: 'auto',
- selected: 'auto'
+ selected: 'auto',
+ options: []
},
// Set loops
@@ -3863,7 +3863,7 @@
// Settings - Quality
else if (utils.matches(event.target, player.config.selectors.inputs.quality)) {
handlerProxy.call(this, event, player.config.listeners.quality, function() {
- warn("Set quality");
+ player.setQuality(event.target.value);
});
}
@@ -3879,11 +3879,13 @@
else if (utils.matches(event.target, player.config.selectors.buttons.loop)) {
handlerProxy.call(this, event, player.config.listeners.loop, function() {
// TODO: This should be done in the method itself I think
- var value = event.target.getAttribute('data-loop__value') || event.target.getAttribute('data-loop__type');
+ // var value = event.target.getAttribute('data-loop__value') || event.target.getAttribute('data-loop__type');
- if (utils.inArray(['start', 'end', 'all', 'none'], value)) {
+ warn('Set loop');
+
+ /*if (utils.inArray(['start', 'end', 'all', 'none'], value)) {
player.loop(value);
- }
+ }*/
});
}
});
@@ -4647,6 +4649,7 @@
break;
case 'vimeo':
+ speed = null;
// Vimeo not supported (https://github.com/vimeo/player.js)
player.core.warn('Vimeo playback rate change is not supported');
break;
@@ -4656,6 +4659,45 @@
break;
}
+ // Save speed to localStorage
+ player.core.updateStorage({
+ speed: speed
+ });
+
+ // Allow chaining
+ return player;
+ };
+
+ // Set playback quality
+ Plyr.prototype.setQuality = function(quality) {
+ var player = this;
+
+ // Load speed from storage or default value
+ if (!utils.is.string(quality)) {
+ quality = parseFloat(player.storage.quality || player.config.quality.selected);
+ }
+
+ if (!utils.inArray(player.config.quality.options, quality)) {
+ player.core.warn('Unsupported quality option (' + quality + ')');
+ return;
+ }
+
+ // Set media speed
+ switch (player.type) {
+ case 'youtube':
+ player.embed.setPlaybackQuality(quality);
+ break;
+
+ default:
+ player.core.warn('Quality options are only available for YouTube');
+ break;
+ }
+
+ // Save speed to localStorage
+ player.core.updateStorage({
+ quality: quality
+ });
+
// Allow chaining
return player;
};