diff options
Diffstat (limited to 'src/js')
-rw-r--r-- | src/js/defaults.js | 2 | ||||
-rw-r--r-- | src/js/plyr.js | 59 | ||||
-rw-r--r-- | src/js/ui.js | 16 | ||||
-rw-r--r-- | src/js/utils.js | 1 |
4 files changed, 45 insertions, 33 deletions
diff --git a/src/js/defaults.js b/src/js/defaults.js index 91bb2386..a7d017ef 100644 --- a/src/js/defaults.js +++ b/src/js/defaults.js @@ -376,7 +376,7 @@ const defaults = { // Register for an account here: http://vi.ai/publisher-video-monetization/?aid=plyrio ads: { enabled: false, - publisherId: '918848828995742', + publisherId: '', }, }; diff --git a/src/js/plyr.js b/src/js/plyr.js index 32c8c062..00b7a007 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -293,22 +293,22 @@ class Plyr { * Types and provider helpers */ get isHTML5() { - return this.provider === providers.html5; + return Boolean(this.provider === providers.html5); } get isEmbed() { - return this.isYouTube || this.isVimeo; + return Boolean(this.isYouTube || this.isVimeo); } get isYouTube() { - return this.provider === providers.youtube; + return Boolean(this.provider === providers.youtube); } get isVimeo() { - return this.provider === providers.vimeo; + return Boolean(this.provider === providers.vimeo); } get isVideo() { - return this.type === types.video; + return Boolean(this.type === types.video); } get isAudio() { - return this.type === types.audio; + return Boolean(this.type === types.audio); } /** @@ -339,21 +339,21 @@ class Plyr { * Get paused state */ get paused() { - return this.media.paused; + return Boolean(this.media.paused); } /** * Get playing state */ get playing() { - return !this.paused && !this.ended && (this.isHTML5 ? this.media.readyState > 2 : true); + return Boolean(!this.paused && !this.ended && (this.isHTML5 ? this.media.readyState > 2 : true)); } /** * Get ended state */ get ended() { - return this.media.ended; + return Boolean(this.media.ended); } /** @@ -435,10 +435,31 @@ class Plyr { } /** + * Get buffered + */ + get buffered() { + const { buffered } = this.media; + + // YouTube / Vimeo return a float between 0-1 + if (utils.is.number(buffered)) { + return buffered; + } + + // HTML5 + // TODO: Handle buffered chunks of the media + // (i.e. seek to another section buffers only that section) + if (buffered && buffered.length && this.duration > 0) { + return buffered.end(0) / this.duration; + } + + return 0; + } + + /** * Get seeking status */ get seeking() { - return this.media.seeking; + return Boolean(this.media.seeking); } /** @@ -503,7 +524,7 @@ class Plyr { * Get the current player volume */ get volume() { - return this.media.volume; + return Number(this.media.volume); } /** @@ -552,7 +573,7 @@ class Plyr { * Get current muted state */ get muted() { - return this.media.muted; + return Boolean(this.media.muted); } /** @@ -569,12 +590,16 @@ class Plyr { } // Get audio tracks - return this.media.mozHasAudio || Boolean(this.media.webkitAudioDecodedByteCount) || Boolean(this.media.audioTracks && this.media.audioTracks.length); + return ( + Boolean(this.media.mozHasAudio) || + Boolean(this.media.webkitAudioDecodedByteCount) || + Boolean(this.media.audioTracks && this.media.audioTracks.length) + ); } /** * Set playback speed - * @param {decimal} speed - the speed of playback (0.5-2.0) + * @param {number} speed - the speed of playback (0.5-2.0) */ set speed(input) { let speed = null; @@ -615,7 +640,7 @@ class Plyr { * Get current playback speed */ get speed() { - return this.media.playbackRate; + return Number(this.media.playbackRate); } /** @@ -715,7 +740,7 @@ class Plyr { * Get current loop state */ get loop() { - return this.media.loop; + return Boolean(this.media.loop); } /** @@ -772,7 +797,7 @@ class Plyr { * Get the current autoplay state */ get autoplay() { - return this.config.autoplay; + return Boolean(this.config.autoplay); } /** diff --git a/src/js/ui.js b/src/js/ui.js index a083d502..a4f22413 100644 --- a/src/js/ui.js +++ b/src/js/ui.js @@ -255,21 +255,7 @@ const ui = { // Check buffer status case 'playing': case 'progress': - value = (() => { - const { buffered } = this.media; - - if (buffered && buffered.length) { - // HTML5 - return utils.getPercentage(buffered.end(0), this.duration); - } else if (utils.is.number(buffered)) { - // YouTube returns between 0 and 1 - return buffered * 100; - } - - return 0; - })(); - - ui.setProgress.call(this, this.elements.display.buffer, value); + ui.setProgress.call(this, this.elements.display.buffer, this.buffered * 100); break; diff --git a/src/js/utils.js b/src/js/utils.js index 4958627b..37dd6461 100644 --- a/src/js/utils.js +++ b/src/js/utils.js @@ -671,6 +671,7 @@ const utils = { if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) { return 0; } + return (current / max * 100).toFixed(2); }, |