Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
0d0ece94d3 | |||
1c06f6d06d | |||
dda8e30b92 | |||
c4e2e24643 | |||
e020a105a3 |
14
changelog.md
14
changelog.md
@ -1,3 +1,17 @@
|
||||
## v3.0.9
|
||||
|
||||
* Demo fix
|
||||
* Fix Vimeo regression
|
||||
|
||||
## v3.0.8
|
||||
|
||||
* Vimeo hotfix for private videos
|
||||
|
||||
## v3.0.7
|
||||
|
||||
* Fix for keyboard shortcut error with fast forward
|
||||
* Fix for Vimeo trying to set playback rate when not allowed
|
||||
|
||||
## v3.0.6
|
||||
|
||||
* Improved the logic for the custom handlers preventing default handlers
|
||||
|
3
demo/dist/demo.js
vendored
3
demo/dist/demo.js
vendored
@ -3846,9 +3846,6 @@ var singleton = Raven;
|
||||
enabled: true,
|
||||
publisherId: '918848828995742'
|
||||
}
|
||||
/* listeners: {
|
||||
seek: () => false,
|
||||
}, */
|
||||
});
|
||||
|
||||
// Expose for tinkering in the console
|
||||
|
2
demo/dist/demo.js.map
vendored
2
demo/dist/demo.js.map
vendored
File diff suppressed because one or more lines are too long
2
demo/dist/demo.min.js.map
vendored
2
demo/dist/demo.min.js.map
vendored
File diff suppressed because one or more lines are too long
@ -83,9 +83,6 @@ import Raven from 'raven-js';
|
||||
enabled: true,
|
||||
publisherId: '918848828995742',
|
||||
},
|
||||
/* listeners: {
|
||||
seek: () => false,
|
||||
}, */
|
||||
});
|
||||
|
||||
// Expose for tinkering in the console
|
||||
|
46
dist/plyr.js
vendored
46
dist/plyr.js
vendored
@ -77,7 +77,7 @@ var defaults = {
|
||||
// Sprite (for icons)
|
||||
loadSprite: true,
|
||||
iconPrefix: 'plyr',
|
||||
iconUrl: 'https://cdn.plyr.io/3.0.6/plyr.svg',
|
||||
iconUrl: 'https://cdn.plyr.io/3.0.8/plyr.svg',
|
||||
|
||||
// Blank video (used to prevent errors on source change)
|
||||
blankVideo: 'https://cdn.plyr.io/static/blank.mp4',
|
||||
@ -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,9 +3990,7 @@ var controls = {
|
||||
|
||||
this.elements.controls = container;
|
||||
|
||||
if (this.config.controls.includes('settings') && this.config.settings.includes('speed')) {
|
||||
controls.setSpeedMenu.call(this);
|
||||
}
|
||||
controls.setSpeedMenu.call(this);
|
||||
|
||||
return container;
|
||||
},
|
||||
@ -4179,7 +4196,7 @@ var Listeners = function () {
|
||||
|
||||
case 39:
|
||||
// Arrow forward
|
||||
this.player.fastForward();
|
||||
this.player.forward();
|
||||
break;
|
||||
|
||||
case 37:
|
||||
@ -5710,7 +5727,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 +6005,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, []);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
@ -6043,7 +6066,10 @@ var vimeo = {
|
||||
var currentSrc = void 0;
|
||||
player.embed.getVideoUrl().then(function (value) {
|
||||
currentSrc = value;
|
||||
}).catch(function (error) {
|
||||
_this2.debug.warn(error);
|
||||
});
|
||||
|
||||
Object.defineProperty(player.media, 'currentSrc', {
|
||||
get: function get() {
|
||||
return currentSrc;
|
||||
@ -6409,7 +6435,7 @@ var source = {
|
||||
|
||||
// ==========================================================================
|
||||
// Plyr
|
||||
// plyr.js v3.0.6
|
||||
// plyr.js v3.0.8
|
||||
// https://github.com/sampotts/plyr
|
||||
// License: The MIT License (MIT)
|
||||
// ==========================================================================
|
||||
|
2
dist/plyr.js.map
vendored
2
dist/plyr.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.min.js
vendored
2
dist/plyr.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.min.js.map
vendored
2
dist/plyr.min.js.map
vendored
File diff suppressed because one or more lines are too long
48
dist/plyr.polyfilled.js
vendored
48
dist/plyr.polyfilled.js
vendored
@ -5268,7 +5268,7 @@ var defaults = {
|
||||
// Sprite (for icons)
|
||||
loadSprite: true,
|
||||
iconPrefix: 'plyr',
|
||||
iconUrl: 'https://cdn.plyr.io/3.0.6/plyr.svg',
|
||||
iconUrl: 'https://cdn.plyr.io/3.0.9/plyr.svg',
|
||||
|
||||
// Blank video (used to prevent errors on source change)
|
||||
blankVideo: 'https://cdn.plyr.io/static/blank.mp4',
|
||||
@ -8714,9 +8714,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;
|
||||
@ -8724,9 +8729,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
|
||||
@ -8738,6 +8745,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;
|
||||
@ -8762,6 +8772,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;
|
||||
@ -9152,9 +9171,7 @@ var controls = {
|
||||
|
||||
this.elements.controls = container;
|
||||
|
||||
if (this.config.controls.includes('settings') && this.config.settings.includes('speed')) {
|
||||
controls.setSpeedMenu.call(this);
|
||||
}
|
||||
controls.setSpeedMenu.call(this);
|
||||
|
||||
return container;
|
||||
},
|
||||
@ -9360,7 +9377,7 @@ var Listeners = function () {
|
||||
|
||||
case 39:
|
||||
// Arrow forward
|
||||
this.player.fastForward();
|
||||
this.player.forward();
|
||||
break;
|
||||
|
||||
case 37:
|
||||
@ -10891,7 +10908,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) {
|
||||
@ -11168,6 +11186,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, []);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
@ -11224,7 +11247,10 @@ var vimeo = {
|
||||
var currentSrc = void 0;
|
||||
player.embed.getVideoUrl().then(function (value) {
|
||||
currentSrc = value;
|
||||
}).catch(function (error) {
|
||||
_this2.debug.warn(error);
|
||||
});
|
||||
|
||||
Object.defineProperty(player.media, 'currentSrc', {
|
||||
get: function get() {
|
||||
return currentSrc;
|
||||
@ -11590,7 +11616,7 @@ var source = {
|
||||
|
||||
// ==========================================================================
|
||||
// Plyr
|
||||
// plyr.js v3.0.6
|
||||
// plyr.js v3.0.9
|
||||
// https://github.com/sampotts/plyr
|
||||
// License: The MIT License (MIT)
|
||||
// ==========================================================================
|
||||
@ -12906,7 +12932,7 @@ var Plyr$1 = function () {
|
||||
|
||||
// ==========================================================================
|
||||
// Plyr Polyfilled Build
|
||||
// plyr.js v3.0.6
|
||||
// plyr.js v3.0.8
|
||||
// https://github.com/sampotts/plyr
|
||||
// License: The MIT License (MIT)
|
||||
// ==========================================================================
|
||||
|
2
dist/plyr.polyfilled.js.map
vendored
2
dist/plyr.polyfilled.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.polyfilled.min.js
vendored
2
dist/plyr.polyfilled.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.polyfilled.min.js.map
vendored
2
dist/plyr.polyfilled.min.js.map
vendored
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "plyr",
|
||||
"version": "3.0.6",
|
||||
"version": "3.0.9",
|
||||
"description": "A simple, accessible and customizable HTML5, YouTube and Vimeo media player",
|
||||
"homepage": "https://plyr.io",
|
||||
"main": "./dist/plyr.js",
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
A simple, lightweight, accessible and customizable HTML5, YouTube and Vimeo media player that supports [_modern_](#browser-support) browsers.
|
||||
|
||||
[Checkout the demo](https://plyr.io) - [Donate to support Plyr](#donate) - [Chat on Slack](https://bit.ly/plyr-slack)
|
||||
[Checkout the demo](https://plyr.io) - [Donate to support Plyr](#donate) - [Chat on Slack](https://bit.ly/plyr-chat)
|
||||
|
||||
[](https://plyr.io)
|
||||
|
||||
@ -128,7 +128,7 @@ See [initialising](#initialising) for more information on advanced setups.
|
||||
If you want to use our CDN (provided by [Fastly](https://www.fastly.com/)) for the JavaScript, you can use the following:
|
||||
|
||||
```html
|
||||
<script src="https://cdn.plyr.io/3.0.6/plyr.js"></script>
|
||||
<script src="https://cdn.plyr.io/3.0.9/plyr.js"></script>
|
||||
```
|
||||
|
||||
_Note_: Be sure to read the [polyfills](#polyfills) section below about browser compatibility
|
||||
@ -144,13 +144,13 @@ Include the `plyr.css` stylsheet into your `<head>`
|
||||
If you want to use our CDN (provided by [Fastly](https://www.fastly.com/)) for the default CSS, you can use the following:
|
||||
|
||||
```html
|
||||
<link rel="stylesheet" href="https://cdn.plyr.io/3.0.6/plyr.css">
|
||||
<link rel="stylesheet" href="https://cdn.plyr.io/3.0.9/plyr.css">
|
||||
```
|
||||
|
||||
### SVG Sprite
|
||||
|
||||
The SVG sprite is loaded automatically from our CDN (provided by [Fastly](https://www.fastly.com/)). To change this, see the [options](#options) below. For
|
||||
reference, the CDN hosted SVG sprite can be found at `https://cdn.plyr.io/3.0.6/plyr.svg`.
|
||||
reference, the CDN hosted SVG sprite can be found at `https://cdn.plyr.io/3.0.9/plyr.svg`.
|
||||
|
||||
## Ads
|
||||
|
||||
|
28
src/js/controls.js
vendored
28
src/js/controls.js
vendored
@ -706,7 +706,12 @@ const controls = {
|
||||
},
|
||||
|
||||
// Set a list of available captions languages
|
||||
setSpeedMenu() {
|
||||
setSpeedMenu(options) {
|
||||
// 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;
|
||||
@ -714,8 +719,8 @@ const controls = {
|
||||
|
||||
const 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,
|
||||
@ -725,6 +730,8 @@ const controls = {
|
||||
1.75,
|
||||
2,
|
||||
];
|
||||
} else {
|
||||
this.options.speed = options;
|
||||
}
|
||||
|
||||
// Set options if passed and filter based on config
|
||||
@ -734,6 +741,9 @@ const controls = {
|
||||
const 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;
|
||||
@ -755,6 +765,14 @@ const controls = {
|
||||
controls.updateSetting.call(this, type, list);
|
||||
},
|
||||
|
||||
// Check if we need to hide/show the settings menu
|
||||
checkMenu() {
|
||||
const speedHidden = this.elements.settings.tabs.speed.getAttribute('hidden') !== null;
|
||||
const languageHidden = this.elements.settings.tabs.captions.getAttribute('hidden') !== null;
|
||||
|
||||
utils.toggleHidden(this.elements.settings.menu, speedHidden && languageHidden);
|
||||
},
|
||||
|
||||
// Show/hide menu
|
||||
toggleMenu(event) {
|
||||
const { form } = this.elements.settings;
|
||||
@ -1159,9 +1177,7 @@ const controls = {
|
||||
|
||||
this.elements.controls = container;
|
||||
|
||||
if (this.config.controls.includes('settings') && this.config.settings.includes('speed')) {
|
||||
controls.setSpeedMenu.call(this);
|
||||
}
|
||||
controls.setSpeedMenu.call(this);
|
||||
|
||||
return container;
|
||||
},
|
||||
|
@ -56,7 +56,7 @@ const defaults = {
|
||||
// Sprite (for icons)
|
||||
loadSprite: true,
|
||||
iconPrefix: 'plyr',
|
||||
iconUrl: 'https://cdn.plyr.io/3.0.6/plyr.svg',
|
||||
iconUrl: 'https://cdn.plyr.io/3.0.9/plyr.svg',
|
||||
|
||||
// Blank video (used to prevent errors on source change)
|
||||
blankVideo: 'https://cdn.plyr.io/static/blank.mp4',
|
||||
|
@ -129,7 +129,7 @@ class Listeners {
|
||||
|
||||
case 39:
|
||||
// Arrow forward
|
||||
this.player.fastForward();
|
||||
this.player.forward();
|
||||
break;
|
||||
|
||||
case 37:
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
import utils from './../utils';
|
||||
import captions from './../captions';
|
||||
import controls from './../controls';
|
||||
import ui from './../ui';
|
||||
|
||||
const vimeo = {
|
||||
@ -139,10 +140,18 @@ const vimeo = {
|
||||
return speed;
|
||||
},
|
||||
set(input) {
|
||||
player.embed.setPlaybackRate(input).then(() => {
|
||||
speed = input;
|
||||
utils.dispatchEvent.call(player, player.media, 'ratechange');
|
||||
});
|
||||
player.embed
|
||||
.setPlaybackRate(input)
|
||||
.then(() => {
|
||||
speed = input;
|
||||
utils.dispatchEvent.call(player, player.media, 'ratechange');
|
||||
})
|
||||
.catch(error => {
|
||||
// Hide menu item (and menu if empty)
|
||||
if (error.name === 'Error') {
|
||||
controls.setSpeedMenu.call(player, []);
|
||||
}
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
@ -193,9 +202,15 @@ const vimeo = {
|
||||
|
||||
// Source
|
||||
let currentSrc;
|
||||
player.embed.getVideoUrl().then(value => {
|
||||
currentSrc = value;
|
||||
});
|
||||
player.embed
|
||||
.getVideoUrl()
|
||||
.then(value => {
|
||||
currentSrc = value;
|
||||
})
|
||||
.catch(error => {
|
||||
this.debug.warn(error);
|
||||
});
|
||||
|
||||
Object.defineProperty(player.media, 'currentSrc', {
|
||||
get() {
|
||||
return currentSrc;
|
||||
|
@ -294,7 +294,8 @@ const youtube = {
|
||||
});
|
||||
|
||||
// Get available speeds
|
||||
player.options.speed = instance.getAvailablePlaybackRates();
|
||||
const options = instance.getAvailablePlaybackRates();
|
||||
controls.setSpeedMenu.call(player, options);
|
||||
|
||||
// Set the tabindex to avoid focus entering iframe
|
||||
if (player.supported.ui) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
// ==========================================================================
|
||||
// Plyr
|
||||
// plyr.js v3.0.6
|
||||
// plyr.js v3.0.9
|
||||
// https://github.com/sampotts/plyr
|
||||
// License: The MIT License (MIT)
|
||||
// ==========================================================================
|
||||
|
@ -1,6 +1,6 @@
|
||||
// ==========================================================================
|
||||
// Plyr Polyfilled Build
|
||||
// plyr.js v3.0.6
|
||||
// plyr.js v3.0.9
|
||||
// https://github.com/sampotts/plyr
|
||||
// License: The MIT License (MIT)
|
||||
// ==========================================================================
|
||||
|
Reference in New Issue
Block a user