Source change fix
This commit is contained in:
parent
7daa08c32f
commit
a49d77afab
4
dist/plyr.js
vendored
4
dist/plyr.js
vendored
File diff suppressed because one or more lines are too long
@ -1194,6 +1194,7 @@
|
|||||||
var player = this;
|
var player = this;
|
||||||
var timers = {};
|
var timers = {};
|
||||||
var api = {};
|
var api = {};
|
||||||
|
player.ready = false;
|
||||||
|
|
||||||
// Get the media element
|
// Get the media element
|
||||||
player.media = media;
|
player.media = media;
|
||||||
@ -1282,7 +1283,6 @@
|
|||||||
if (utils.is.string(element)) {
|
if (utils.is.string(element)) {
|
||||||
utils.removeElement(player.elements[element]);
|
utils.removeElement(player.elements[element]);
|
||||||
player.elements[element] = null;
|
player.elements[element] = null;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
utils.removeElement(element);
|
utils.removeElement(element);
|
||||||
}
|
}
|
||||||
@ -3389,9 +3389,6 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove ready class hook
|
|
||||||
player.ready = false;
|
|
||||||
|
|
||||||
// Stop playback
|
// Stop playback
|
||||||
player.stop();
|
player.stop();
|
||||||
|
|
||||||
@ -3410,7 +3407,7 @@
|
|||||||
player.embed = null;
|
player.embed = null;
|
||||||
|
|
||||||
// Remove media
|
// Remove media
|
||||||
removeElement('media');
|
removeElement(player.media);
|
||||||
|
|
||||||
// Remove the old captions
|
// Remove the old captions
|
||||||
removeElement('captions');
|
removeElement('captions');
|
||||||
@ -4111,6 +4108,8 @@
|
|||||||
|
|
||||||
// Everything done
|
// Everything done
|
||||||
function ready() {
|
function ready() {
|
||||||
|
player.ready = true;
|
||||||
|
|
||||||
// Ready event at end of execution stack
|
// Ready event at end of execution stack
|
||||||
trigger(player.elements.container, 'ready', true);
|
trigger(player.elements.container, 'ready', true);
|
||||||
|
|
||||||
@ -4209,7 +4208,7 @@
|
|||||||
player.elements.container = utils.wrap(target, utils.createElement('div'));
|
player.elements.container = utils.wrap(target, utils.createElement('div'));
|
||||||
|
|
||||||
// Cache original element state for .destroy()
|
// Cache original element state for .destroy()
|
||||||
player.original = target.cloneNode(true);
|
player.elements.original = target.cloneNode(true);
|
||||||
|
|
||||||
// Allow focus to be captured
|
// Allow focus to be captured
|
||||||
player.elements.container.setAttribute('tabindex', 0);
|
player.elements.container.setAttribute('tabindex', 0);
|
||||||
@ -5007,28 +5006,29 @@
|
|||||||
// http://stackoverflow.com/questions/12528049/if-a-dom-element-is-removed-are-its-listeners-also-removed-from-memory
|
// http://stackoverflow.com/questions/12528049/if-a-dom-element-is-removed-are-its-listeners-also-removed-from-memory
|
||||||
Player.prototype.destroy = function(callback, restore) {
|
Player.prototype.destroy = function(callback, restore) {
|
||||||
var player = this;
|
var player = this;
|
||||||
|
|
||||||
// Type specific stuff
|
// Type specific stuff
|
||||||
switch (player.type) {
|
switch (player.type) {
|
||||||
case 'youtube':
|
case 'youtube':
|
||||||
// Clear timers
|
// Clear timers
|
||||||
window.clearInterval(player.timers.buffering);
|
window.clearInterval(player.core.timers.buffering);
|
||||||
window.clearInterval(player.timers.playing);
|
window.clearInterval(player.core.timers.playing);
|
||||||
|
|
||||||
// Destroy YouTube API
|
// Destroy YouTube API
|
||||||
player.embed.destroy();
|
player.embed.destroy();
|
||||||
|
|
||||||
// Clean up
|
// Clean up
|
||||||
cleanUp();
|
done();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'vimeo':
|
case 'vimeo':
|
||||||
// Destroy Vimeo API
|
// Destroy Vimeo API
|
||||||
// then clean up (wait, to prevent postmessage errors)
|
// then clean up (wait, to prevent postmessage errors)
|
||||||
player.embed.unload().then(cleanUp);
|
player.embed.unload().then(done);
|
||||||
|
|
||||||
// Vimeo does not always return
|
// Vimeo does not always return
|
||||||
window.setTimeout(cleanUp, 200);
|
window.setTimeout(done, 200);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -5038,35 +5038,44 @@
|
|||||||
player.core.toggleNativeControls(true);
|
player.core.toggleNativeControls(true);
|
||||||
|
|
||||||
// Clean up
|
// Clean up
|
||||||
cleanUp();
|
done();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
function cleanUp() {
|
function done() {
|
||||||
|
// Bail if already destroyed
|
||||||
|
if (!player.ready) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Default to restore original element
|
// Default to restore original element
|
||||||
if (!utils.is.boolean(restore)) {
|
if (!utils.is.boolean(restore)) {
|
||||||
restore = true;
|
restore = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Callback
|
// Reset overflow (incase destroyed while in fullscreen)
|
||||||
if (utils.is.function(callback)) {
|
|
||||||
callback.call(player.original);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Bail if we don't need to restore the original element
|
|
||||||
if (!restore) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace the container with the original element provided
|
|
||||||
player.elements.container.parentNode.replaceChild(player.original, player.elements.container);
|
|
||||||
|
|
||||||
// Reset overflow (incase destroyed while fullscreen)
|
|
||||||
document.body.style.overflow = '';
|
document.body.style.overflow = '';
|
||||||
|
|
||||||
|
// Replace the container with the original element provided
|
||||||
|
if (restore) {
|
||||||
|
var parent = player.elements.container.parentNode;
|
||||||
|
|
||||||
|
if (utils.is.htmlElement(parent)) {
|
||||||
|
parent.replaceChild(player.elements.original, player.elements.container);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove ready state
|
||||||
|
player.ready = false;
|
||||||
|
|
||||||
// Event
|
// Event
|
||||||
player.core.trigger(player.original, 'destroyed', true);
|
player.core.trigger(player.elements.original, 'destroyed', true);
|
||||||
|
|
||||||
|
// Callback
|
||||||
|
if (utils.is.function(callback)) {
|
||||||
|
callback.call(player.elements.original);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allow chaining
|
// Allow chaining
|
||||||
|
Loading…
x
Reference in New Issue
Block a user