Fix for playing getter as currentTime check is flaky

This commit is contained in:
Sam Potts 2017-11-21 21:14:44 +11:00
parent d3b31e595a
commit 4b82e89845
4 changed files with 12 additions and 21 deletions

2
dist/plyr.js vendored

File diff suppressed because one or more lines are too long

2
dist/plyr.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -290,14 +290,7 @@ class Plyr {
* Get playing state
*/
get playing() {
// Because the third party players don't fire timeupdate as frequently as HTML5,
// we can't use the check for currentTime > 0 for those players which is a shame
// readystate also does not exist for the embedded players
if (this.isHTML5) {
return !this.paused && !this.ended && this.currentTime > 0 && this.media.readyState > 2;
}
return !this.paused && !this.ended;
return !this.paused && !this.ended && (this.isHTML5 ? this.media.readyState > 2: true);
}
/**

View File

@ -138,19 +138,17 @@ const ui = {
// Check playing state
checkPlaying() {
window.setTimeout(() => {
// Class hooks
utils.toggleClass(this.elements.container, this.config.classNames.playing, this.playing);
utils.toggleClass(this.elements.container, this.config.classNames.stopped, this.paused);
// Class hooks
utils.toggleClass(this.elements.container, this.config.classNames.playing, this.playing);
utils.toggleClass(this.elements.container, this.config.classNames.stopped, this.paused);
// Set aria state
if (utils.is.array(this.elements.buttons.play)) {
Array.from(this.elements.buttons.play).forEach(button => utils.toggleState(button, this.playing));
}
// Set aria state
if (utils.is.array(this.elements.buttons.play)) {
Array.from(this.elements.buttons.play).forEach(button => utils.toggleState(button, this.playing));
}
// Toggle controls
this.toggleControls(!this.playing);
}, 100);
// Toggle controls
this.toggleControls(!this.playing);
},
// Check if media is loading