Ready event fix, YouTube play event fix, docs update

This commit is contained in:
Sam Potts
2018-03-03 23:06:12 +11:00
parent bfb550b8d0
commit 317b08c703
26 changed files with 2105 additions and 1237 deletions

2
dist/plyr.css vendored

File diff suppressed because one or more lines are too long

54
dist/plyr.js vendored
View File

@ -1472,7 +1472,7 @@ var utils = {
// Force repaint of element
repaint: function repaint(element) {
window.setTimeout(function () {
setTimeout(function () {
utils.toggleHidden(element, true);
element.offsetHeight; // eslint-disable-line
utils.toggleHidden(element, false);
@ -1484,7 +1484,6 @@ var utils = {
// Plyr support checks
// ==========================================================================
// Check for feature support
var support = {
// Basic support
audio: 'canPlayType' in document.createElement('audio'),
@ -2002,7 +2001,6 @@ var Storage = function () {
/* global google */
// Build the default tag URL
var getTagUrl = function getTagUrl() {
var params = {
AV_PUBLISHERID: '58c25bb0073ef448b1087ad6',
@ -2634,7 +2632,7 @@ var Ads = function () {
this.player.debug.log('Safety timer invoked from: ' + from);
this.safetyTimer = window.setTimeout(function () {
this.safetyTimer = setTimeout(function () {
_this10.cancel();
_this10.clearSafetyTimer('startSafetyTimer()');
}, time);
@ -2663,7 +2661,6 @@ var Ads = function () {
// Plyr Event Listeners
// ==========================================================================
// Sniff out the browser
var browser$2 = utils.getBrowser();
var listeners = {
@ -2838,7 +2835,7 @@ var listeners = {
// Delay the adding of classname until the focus has changed
// This event fires before the focusin event
window.setTimeout(function () {
setTimeout(function () {
utils.toggleClass(utils.getFocusElement(), _this.config.classNames.tabFocus, true);
}, 0);
});
@ -3241,6 +3238,8 @@ var ui = {
// Setup the UI
build: function build() {
var _this = this;
// Re-attach media element listeners
// TODO: Use event bubbling
listeners.media.call(this);
@ -3301,7 +3300,9 @@ var ui = {
this.ready = true;
// Ready event at end of execution stack
utils.dispatchEvent.call(this, this.media, 'ready');
setTimeout(function () {
utils.dispatchEvent.call(_this, _this.media, 'ready');
}, 0);
// Set the title
ui.setTitle.call(this);
@ -3361,7 +3362,7 @@ var ui = {
// Check if media is loading
checkLoading: function checkLoading(event) {
var _this = this;
var _this2 = this;
this.loading = ['stalled', 'waiting'].includes(event.type);
@ -3371,17 +3372,17 @@ var ui = {
// Timer to prevent flicker when seeking
this.timers.loading = setTimeout(function () {
// Toggle container class hook
utils.toggleClass(_this.elements.container, _this.config.classNames.loading, _this.loading);
utils.toggleClass(_this2.elements.container, _this2.config.classNames.loading, _this2.loading);
// Show controls if loading, hide if done
_this.toggleControls(_this.loading);
_this2.toggleControls(_this2.loading);
}, this.loading ? 250 : 0);
},
// Check if media failed to load
checkFailed: function checkFailed() {
var _this2 = this;
var _this3 = this;
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/networkState
this.failed = this.media.networkState === 3;
@ -3397,10 +3398,10 @@ var ui = {
// Timer to prevent flicker when seeking
this.timers.loading = setTimeout(function () {
// Toggle container class hook
utils.toggleClass(_this2.elements.container, _this2.config.classNames.loading, _this2.loading);
utils.toggleClass(_this3.elements.container, _this3.config.classNames.loading, _this3.loading);
// Show controls if loading, hide if done
_this2.toggleControls(_this2.loading);
_this3.toggleControls(_this3.loading);
}, this.loading ? 250 : 0);
},
@ -3459,7 +3460,7 @@ var ui = {
// Update <progress> elements
updateProgress: function updateProgress(event) {
var _this3 = this;
var _this4 = this;
if (!this.supported.ui || !utils.is.event(event)) {
return;
@ -3485,12 +3486,12 @@ var ui = {
case 'playing':
case 'progress':
value = function () {
var buffered = _this3.media.buffered;
var buffered = _this4.media.buffered;
if (buffered && buffered.length) {
// HTML5
return utils.getPercentage(buffered.end(0), _this3.duration);
return utils.getPercentage(buffered.end(0), _this4.duration);
} else if (utils.is.number(buffered)) {
// YouTube returns between 0 and 1
return buffered * 100;
@ -3575,7 +3576,6 @@ var ui = {
// Plyr controls
// ==========================================================================
// Sniff out the browser
var browser$1 = utils.getBrowser();
var controls = {
@ -5177,17 +5177,14 @@ var youtube = {
// Create a faux HTML5 API using the YouTube API
player.media.play = function () {
instance.playVideo();
player.media.paused = false;
};
player.media.pause = function () {
instance.pauseVideo();
player.media.paused = true;
};
player.media.stop = function () {
instance.stopVideo();
player.media.paused = true;
};
player.media.duration = instance.getDuration();
@ -5316,7 +5313,7 @@ var youtube = {
}, 200);
// Rebuild UI
window.setTimeout(function () {
setTimeout(function () {
return ui.build.call(player);
}, 50);
},
@ -5719,7 +5716,7 @@ var vimeo = {
});
// Rebuild UI
window.setTimeout(function () {
setTimeout(function () {
return ui.build.call(player);
}, 0);
}
@ -5729,7 +5726,6 @@ var vimeo = {
// Plyr Media
// ==========================================================================
// Sniff out the browser
var browser$3 = utils.getBrowser();
var media = {
@ -6500,15 +6496,7 @@ var Plyr = function () {
// If toggle is false or if we're playing (regardless of toggle),
// then set the timer to hide the controls
if (!show || this.playing) {
this.timers.controls = window.setTimeout(function () {
/* this.debug.warn({
pressed: this.elements.controls.pressed,
hover: this.elements.controls.pressed,
playing: this.playing,
paused: this.paused,
loading: this.loading,
}); */
this.timers.controls = setTimeout(function () {
// If the mouse is over the controls (and not entering fullscreen), bail
if ((_this2.elements.controls.pressed || _this2.elements.controls.hover) && !isEnterFullscreen) {
return;
@ -6652,7 +6640,7 @@ var Plyr = function () {
}
// Vimeo does not always return
window.setTimeout(done, 200);
setTimeout(done, 200);
break;

2
dist/plyr.js.map vendored

File diff suppressed because one or more lines are too long

2
dist/plyr.min.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2707
dist/plyr.polyfilled.js vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long