From 3e6ed7b69b6d19d7e217a721925586e6471b4c5e Mon Sep 17 00:00:00 2001 From: Sebastian Carlsson Date: Thu, 17 Nov 2016 15:43:26 +0100 Subject: fixes bug where cleanUp would be called twice --- src/js/plyr.js | 100 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 51 insertions(+), 49 deletions(-) (limited to 'src/js') diff --git a/src/js/plyr.js b/src/js/plyr.js index 4c02b8fd..0570e35b 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -25,7 +25,7 @@ 'use strict'; // Globals - var fullscreen, + var fullscreen, scroll = { x: 0, y: 0 }, // Default config @@ -36,8 +36,8 @@ loop: false, seekTime: 10, volume: 10, - volumeMin: 0, - volumeMax: 10, + volumeMin: 0, + volumeMax: 10, volumeStep: 1, duration: null, displayDuration: true, @@ -493,9 +493,9 @@ } // Create and dispatch the event - var event = new CustomEvent(type, { + var event = new CustomEvent(type, { bubbles: bubbles, - detail: properties + detail: properties }); // Dispatch the event @@ -568,7 +568,7 @@ // Check variable types var _is = { object: function(input) { - return input !== null && typeof(input) === 'object'; + return input !== null && typeof(input) === 'object'; }, array: function(input) { return input !== null && (typeof(input) === 'object' && input.constructor === Array); @@ -713,7 +713,7 @@ timers = {}, api; - // Set media + // Set media plyr.media = media; var original = media.cloneNode(true); @@ -732,7 +732,7 @@ if (_is.string(config.logPrefix) && config.logPrefix.length) { args.unshift(config.logPrefix); } - + console[type].apply(console, args); } } @@ -1037,7 +1037,7 @@ var captions = [], caption, req = xhr.responseText; - + //According to webvtt spec, line terminator consists of one of the following // CRLF (U+000D U+000A), LF (U+000A) or CR (U+000D) var lineSeparator = '\r\n'; @@ -1048,7 +1048,7 @@ lineSeparator = '\n'; } } - + captions = req.split(lineSeparator+lineSeparator); for (var r = 0; r < captions.length; r++) { @@ -1530,7 +1530,7 @@ mediaId = _parseVimeoId(plyr.embedId); break; - default: + default: mediaId = plyr.embedId; } @@ -1819,7 +1819,7 @@ plyr.embed.stop(); plyr.media.paused = true; }; - + plyr.media.paused = true; plyr.media.currentTime = 0; @@ -1835,7 +1835,7 @@ plyr.embed.getDuration().then(function(value) { plyr.media.duration = value; - + // Trigger timeupdate _triggerEvent(plyr.media, 'durationchange'); }); @@ -1898,7 +1898,7 @@ plyr.embed = window.SC.Widget(this); // Setup on ready - plyr.embed.bind(window.SC.Widget.Events.READY, function() { + plyr.embed.bind(window.SC.Widget.Events.READY, function() { // Create a faux HTML5 API using the Soundcloud API plyr.media.play = function() { plyr.embed.play(); @@ -2035,7 +2035,7 @@ targetTime = duration; } - // Update seek range and progress + // Update seek range and progress _updateSeekDisplay(targetTime); // Set the current time @@ -2126,7 +2126,7 @@ function _toggleFullscreen(event) { // Check for native support var nativeSupport = fullscreen.supportsFullScreen; - + if (nativeSupport) { // If it's a fullscreen change event, update the UI if (event && event.type === fullscreen.fullScreenEventName) { @@ -2424,7 +2424,7 @@ if (!plyr.supported.full) { return; } - + // Default to 0 if (_is.undefined(value)) { value = 0; @@ -2516,7 +2516,7 @@ _updateProgress(event); } - // Update seek range and progress + // Update seek range and progress function _updateSeekDisplay(time) { // Default to 0 if (!_is.number(time)) { @@ -2526,7 +2526,7 @@ var duration = _getDuration(), value = _getPercentage(time, duration); - // Update progress + // Update progress if (plyr.progress && plyr.progress.played) { plyr.progress.played.value = value; } @@ -2635,15 +2635,15 @@ } } - // If toggle is false or if we're playing (regardless of toggle), - // then set the timer to hide the controls + // If toggle is false or if we're playing (regardless of toggle), + // then set the timer to hide the controls if (!show || !plyr.media.paused) { timers.hover = window.setTimeout(function() { // If the mouse is over the controls (and not entering fullscreen), bail if ((plyr.controls.pressed || plyr.controls.hover) && !isEnterFullscreen) { return; } - + _toggleClass(plyr.container, config.classes.hideControls, true); }, delay); } @@ -2720,7 +2720,7 @@ _remove(plyr.videoContainer); } - // Reset class name + // Reset class name if (plyr.container) { plyr.container.removeAttribute('class'); } @@ -2915,7 +2915,7 @@ count = get().length; // Only handle global key press if there's only one player - // and the key is in the allowed keys + // and the key is in the allowed keys // and if the focused element is not editable (e.g. text input) // and any that accept key input http://webaim.org/techniques/keyboard/ if (count === 1 && _inArray(allowed, code) && (!_is.htmlElement(focused) || !_matches(focused, config.selectors.editable))) { @@ -2949,7 +2949,7 @@ return; } - // Divide the max duration into 10th's and times by the number value + // Divide the max duration into 10th's and times by the number value _seek((duration / 10) * (code - 48)); } @@ -2967,18 +2967,18 @@ switch(code) { // 0-9 - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: case 56: case 57: if (!held) { seekByKey(); } break; // Space and K key - case 32: + case 32: case 75: if (!held) { _togglePlay(); } break; // Arrow up case 38: _increaseVolume(); break; @@ -2996,7 +2996,7 @@ case 67: if (!held) { _toggleCaptions(); } break; } - // Escape is handle natively when in full screen + // Escape is handle natively when in full screen // So we only need to worry about non native if (!fullscreen.supportsFullScreen && plyr.isFullscreen && code === 27) { _toggleFullscreen(); @@ -3075,12 +3075,12 @@ _on(plyr.container, 'mouseenter mouseleave mousemove touchstart touchend touchcancel touchmove enterfullscreen', _toggleControls); // Watch for cursor over controls so they don't hide when trying to interact - _on(plyr.controls, 'mouseenter mouseleave', function(event) { + _on(plyr.controls, 'mouseenter mouseleave', function(event) { plyr.controls.hover = event.type === 'mouseenter'; }); // Watch for cursor over controls so they don't hide when trying to interact - _on(plyr.controls, 'mousedown mouseup touchstart touchend touchcancel', function(event) { + _on(plyr.controls, 'mousedown mouseup touchstart touchend touchcancel', function(event) { plyr.controls.pressed = _inArray(['mousedown', 'touchstart'], event.type); }); @@ -3136,7 +3136,7 @@ if (plyr.type === 'video') { _setCaption(); } - + // Restart _seek(); @@ -3238,7 +3238,7 @@ // Type specific stuff switch (plyr.type) { - case 'youtube': + case 'youtube': // Clear timers window.clearInterval(timers.buffering); window.clearInterval(timers.playing); @@ -3248,16 +3248,16 @@ // Clean up cleanUp(); - + break; case 'vimeo': - // Destroy Vimeo API + // Destroy Vimeo API // then clean up (wait, to prevent postmessage errors) plyr.embed.unload().then(cleanUp); // Vimeo does not always return - window.setTimeout(cleanUp, 200); + timers.cleanUp = window.setTimeout(cleanUp, 200); break; @@ -3273,6 +3273,8 @@ } function cleanUp() { + clearTimeout(timers.cleanUp); + // Default to restore original element if (!_is.boolean(restore)) { restore = true; @@ -3448,7 +3450,7 @@ isMuted: function() { return plyr.media.muted; }, isReady: function() { return _hasClass(plyr.container, config.classes.ready); }, isLoading: function() { return _hasClass(plyr.container, config.classes.loading); }, - isPaused: function() { return plyr.media.paused; }, + isPaused: function() { return plyr.media.paused; }, on: function(event, callback) { _on(plyr.container, event, callback); return this; }, play: _play, pause: _pause, @@ -3473,7 +3475,7 @@ // Everything done function _ready() { // Ready event at end of execution stack - window.setTimeout(function() { + window.setTimeout(function() { _triggerEvent(plyr.media, 'ready'); }, 0); @@ -3679,15 +3681,15 @@ // Listen for events if debugging if (config.debug) { var events = config.events.concat(['setup', 'statechange', 'enterfullscreen', 'exitfullscreen', 'captionsenabled', 'captionsdisabled']); - - _on(instance.getContainer(), events.join(' '), function(event) { + + _on(instance.getContainer(), events.join(' '), function(event) { console.log([config.logPrefix, 'event:', event.type].join(' '), event.detail.plyr); }); } // Callback - _event(instance.getContainer(), 'setup', true, { - plyr: instance + _event(instance.getContainer(), 'setup', true, { + plyr: instance }); // Add to return array even if it's already setup @@ -3718,7 +3720,7 @@ } }); - return instances; + return instances; } return []; -- cgit v1.2.3 From a44c7ecc3a077b11fc586bba8aa2df25b01f209f Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Sun, 27 Nov 2016 20:15:15 +1100 Subject: Fix for iPad and YouTube issues --- src/js/plyr.js | 133 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 77 insertions(+), 56 deletions(-) (limited to 'src/js') diff --git a/src/js/plyr.js b/src/js/plyr.js index 4c02b8fd..d65c4f7a 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -25,7 +25,7 @@ 'use strict'; // Globals - var fullscreen, + var fullscreen, scroll = { x: 0, y: 0 }, // Default config @@ -36,8 +36,8 @@ loop: false, seekTime: 10, volume: 10, - volumeMin: 0, - volumeMax: 10, + volumeMin: 0, + volumeMax: 10, volumeStep: 1, duration: null, displayDuration: true, @@ -257,6 +257,7 @@ isChrome: isChrome, isSafari: isSafari, isIos: /(iPad|iPhone|iPod)/g.test(navigator.platform), + isIphone: /(iPhone|iPod)/g.test(navigator.userAgent), isTouch: 'ontouchstart' in document.documentElement }; } @@ -493,9 +494,9 @@ } // Create and dispatch the event - var event = new CustomEvent(type, { + var event = new CustomEvent(type, { bubbles: bubbles, - detail: properties + detail: properties }); // Dispatch the event @@ -568,7 +569,7 @@ // Check variable types var _is = { object: function(input) { - return input !== null && typeof(input) === 'object'; + return input !== null && typeof(input) === 'object'; }, array: function(input) { return input !== null && (typeof(input) === 'object' && input.constructor === Array); @@ -713,7 +714,7 @@ timers = {}, api; - // Set media + // Set media plyr.media = media; var original = media.cloneNode(true); @@ -732,7 +733,7 @@ if (_is.string(config.logPrefix) && config.logPrefix.length) { args.unshift(config.logPrefix); } - + console[type].apply(console, args); } } @@ -1037,7 +1038,7 @@ var captions = [], caption, req = xhr.responseText; - + //According to webvtt spec, line terminator consists of one of the following // CRLF (U+000D U+000A), LF (U+000A) or CR (U+000D) var lineSeparator = '\r\n'; @@ -1048,7 +1049,7 @@ lineSeparator = '\n'; } } - + captions = req.split(lineSeparator+lineSeparator); for (var r = 0; r < captions.length; r++) { @@ -1530,7 +1531,7 @@ mediaId = _parseVimeoId(plyr.embedId); break; - default: + default: mediaId = plyr.embedId; } @@ -1819,7 +1820,7 @@ plyr.embed.stop(); plyr.media.paused = true; }; - + plyr.media.paused = true; plyr.media.currentTime = 0; @@ -1835,7 +1836,7 @@ plyr.embed.getDuration().then(function(value) { plyr.media.duration = value; - + // Trigger timeupdate _triggerEvent(plyr.media, 'durationchange'); }); @@ -1898,7 +1899,7 @@ plyr.embed = window.SC.Widget(this); // Setup on ready - plyr.embed.bind(window.SC.Widget.Events.READY, function() { + plyr.embed.bind(window.SC.Widget.Events.READY, function() { // Create a faux HTML5 API using the Soundcloud API plyr.media.play = function() { plyr.embed.play(); @@ -2035,7 +2036,7 @@ targetTime = duration; } - // Update seek range and progress + // Update seek range and progress _updateSeekDisplay(targetTime); // Set the current time @@ -2126,7 +2127,7 @@ function _toggleFullscreen(event) { // Check for native support var nativeSupport = fullscreen.supportsFullScreen; - + if (nativeSupport) { // If it's a fullscreen change event, update the UI if (event && event.type === fullscreen.fullScreenEventName) { @@ -2424,7 +2425,7 @@ if (!plyr.supported.full) { return; } - + // Default to 0 if (_is.undefined(value)) { value = 0; @@ -2516,7 +2517,7 @@ _updateProgress(event); } - // Update seek range and progress + // Update seek range and progress function _updateSeekDisplay(time) { // Default to 0 if (!_is.number(time)) { @@ -2526,7 +2527,7 @@ var duration = _getDuration(), value = _getPercentage(time, duration); - // Update progress + // Update progress if (plyr.progress && plyr.progress.played) { plyr.progress.played.value = value; } @@ -2635,15 +2636,15 @@ } } - // If toggle is false or if we're playing (regardless of toggle), - // then set the timer to hide the controls + // If toggle is false or if we're playing (regardless of toggle), + // then set the timer to hide the controls if (!show || !plyr.media.paused) { timers.hover = window.setTimeout(function() { // If the mouse is over the controls (and not entering fullscreen), bail if ((plyr.controls.pressed || plyr.controls.hover) && !isEnterFullscreen) { return; } - + _toggleClass(plyr.container, config.classes.hideControls, true); }, delay); } @@ -2720,7 +2721,7 @@ _remove(plyr.videoContainer); } - // Reset class name + // Reset class name if (plyr.container) { plyr.container.removeAttribute('class'); } @@ -2915,7 +2916,7 @@ count = get().length; // Only handle global key press if there's only one player - // and the key is in the allowed keys + // and the key is in the allowed keys // and if the focused element is not editable (e.g. text input) // and any that accept key input http://webaim.org/techniques/keyboard/ if (count === 1 && _inArray(allowed, code) && (!_is.htmlElement(focused) || !_matches(focused, config.selectors.editable))) { @@ -2949,7 +2950,7 @@ return; } - // Divide the max duration into 10th's and times by the number value + // Divide the max duration into 10th's and times by the number value _seek((duration / 10) * (code - 48)); } @@ -2967,18 +2968,18 @@ switch(code) { // 0-9 - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: case 56: case 57: if (!held) { seekByKey(); } break; // Space and K key - case 32: + case 32: case 75: if (!held) { _togglePlay(); } break; // Arrow up case 38: _increaseVolume(); break; @@ -2996,7 +2997,7 @@ case 67: if (!held) { _toggleCaptions(); } break; } - // Escape is handle natively when in full screen + // Escape is handle natively when in full screen // So we only need to worry about non native if (!fullscreen.supportsFullScreen && plyr.isFullscreen && code === 27) { _toggleFullscreen(); @@ -3075,12 +3076,12 @@ _on(plyr.container, 'mouseenter mouseleave mousemove touchstart touchend touchcancel touchmove enterfullscreen', _toggleControls); // Watch for cursor over controls so they don't hide when trying to interact - _on(plyr.controls, 'mouseenter mouseleave', function(event) { + _on(plyr.controls, 'mouseenter mouseleave', function(event) { plyr.controls.hover = event.type === 'mouseenter'; }); // Watch for cursor over controls so they don't hide when trying to interact - _on(plyr.controls, 'mousedown mouseup touchstart touchend touchcancel', function(event) { + _on(plyr.controls, 'mousedown mouseup touchstart touchend touchcancel', function(event) { plyr.controls.pressed = _inArray(['mousedown', 'touchstart'], event.type); }); @@ -3136,7 +3137,7 @@ if (plyr.type === 'video') { _setCaption(); } - + // Restart _seek(); @@ -3238,7 +3239,7 @@ // Type specific stuff switch (plyr.type) { - case 'youtube': + case 'youtube': // Clear timers window.clearInterval(timers.buffering); window.clearInterval(timers.playing); @@ -3248,11 +3249,11 @@ // Clean up cleanUp(); - + break; case 'vimeo': - // Destroy Vimeo API + // Destroy Vimeo API // then clean up (wait, to prevent postmessage errors) plyr.embed.unload().then(cleanUp); @@ -3294,6 +3295,9 @@ // Replace the container with the original element provided plyr.container.parentNode.replaceChild(original, plyr.container); + // Allow overflow (set on fullscreen) + document.body.style.overflow = ''; + // Event _triggerEvent(original, 'destroyed', true); } @@ -3448,7 +3452,7 @@ isMuted: function() { return plyr.media.muted; }, isReady: function() { return _hasClass(plyr.container, config.classes.ready); }, isLoading: function() { return _hasClass(plyr.container, config.classes.loading); }, - isPaused: function() { return plyr.media.paused; }, + isPaused: function() { return plyr.media.paused; }, on: function(event, callback) { _on(plyr.container, event, callback); return this; }, play: _play, pause: _pause, @@ -3473,7 +3477,7 @@ // Everything done function _ready() { // Ready event at end of execution stack - window.setTimeout(function() { + window.setTimeout(function() { _triggerEvent(plyr.media, 'ready'); }, 0); @@ -3540,31 +3544,48 @@ var browser = _browserSniff(), isOldIE = (browser.isIE && browser.version <= 9), isIos = browser.isIos, - isIphone = /iPhone|iPod/i.test(navigator.userAgent), - audio = !!document.createElement('audio').canPlayType, - video = !!document.createElement('video').canPlayType, - basic, full; + isIphone = browser.isIphone, + audioSupport = !!document.createElement('audio').canPlayType, + videoSupport = !!document.createElement('video').canPlayType, + basic = false, + full = false; switch (type) { case 'video': - basic = video; + basic = videoSupport; full = (basic && (!isOldIE && !isIphone)); break; case 'audio': - basic = audio; + basic = audioSupport; full = (basic && !isOldIE); break; + // Vimeo does not seem to be supported on iOS via API + // Issue raised https://github.com/vimeo/player.js/issues/87 case 'vimeo': + basic = true; + full = (!isOldIE && !isIos); + break; + case 'youtube': + basic = true; + full = (!isOldIE && !isIos); + + // YouTube seems to work on iOS 10+ on iPad + if (isIos && !isIphone && browser.version >= 10) { + full = true; + } + + break; + case 'soundcloud': basic = true; - full = (!isOldIE && !isIos); + full = (!isOldIE && !isIphone); break; default: - basic = (audio && video); + basic = (audioSupport && videoSupport); full = (basic && !isOldIE); } @@ -3679,15 +3700,15 @@ // Listen for events if debugging if (config.debug) { var events = config.events.concat(['setup', 'statechange', 'enterfullscreen', 'exitfullscreen', 'captionsenabled', 'captionsdisabled']); - - _on(instance.getContainer(), events.join(' '), function(event) { + + _on(instance.getContainer(), events.join(' '), function(event) { console.log([config.logPrefix, 'event:', event.type].join(' '), event.detail.plyr); }); } // Callback - _event(instance.getContainer(), 'setup', true, { - plyr: instance + _event(instance.getContainer(), 'setup', true, { + plyr: instance }); // Add to return array even if it's already setup @@ -3718,7 +3739,7 @@ } }); - return instances; + return instances; } return []; -- cgit v1.2.3 From a9bb8afca425188216c3eed667b4bc85bbb5ee91 Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Sun, 27 Nov 2016 20:18:30 +1100 Subject: v2.0.11 --- src/js/plyr.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/js') diff --git a/src/js/plyr.js b/src/js/plyr.js index 8a486d93..f1a0b192 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -1,6 +1,6 @@ // ========================================================================== // Plyr -// plyr.js v2.0.10 +// plyr.js v2.0.11 // https://github.com/selz/plyr // License: The MIT License (MIT) // ========================================================================== @@ -43,7 +43,7 @@ displayDuration: true, loadSprite: true, iconPrefix: 'plyr', - iconUrl: 'https://cdn.plyr.io/2.0.10/plyr.svg', + iconUrl: 'https://cdn.plyr.io/2.0.11/plyr.svg', clickToPlay: true, hideControls: true, showPosterOnEnd: false, -- cgit v1.2.3 From a1d5bccac23668e2c380982d5fe182138fb1edc4 Mon Sep 17 00:00:00 2001 From: Morten Vestergaard Hansen Date: Wed, 30 Nov 2016 08:54:24 +0100 Subject: Fixed typo --- src/js/plyr.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/js') diff --git a/src/js/plyr.js b/src/js/plyr.js index f1a0b192..1119700c 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -1490,7 +1490,7 @@ _toggleClass(plyr.container, config.classes.stopped, config.autoplay); // Add iOS class - _toggleClass(plyr.ontainer, config.classes.isIos, plyr.browser.isIos); + _toggleClass(plyr.container, config.classes.isIos, plyr.browser.isIos); // Add touch class _toggleClass(plyr.container, config.classes.isTouch, plyr.browser.isTouch); -- cgit v1.2.3 From 96ae866baa3afbe0366f4037ac8f2afee864f8ab Mon Sep 17 00:00:00 2001 From: Jason Ronallo Date: Mon, 26 Dec 2016 17:06:59 -0500 Subject: allow for setting additional listener for captions --- src/js/plyr.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/js') diff --git a/src/js/plyr.js b/src/js/plyr.js index f1a0b192..fb75c9a7 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -3065,7 +3065,7 @@ } // Captions - _on(plyr.buttons.captions, 'click', _toggleCaptions); + _proxyListener(plyr.buttons.captions, 'click', config.listeners.captions, _toggleCaptions); // Seek tooltip _on(plyr.progress.container, 'mouseenter mouseleave mousemove', _updateSeekTooltip); -- cgit v1.2.3 From 7d5c507f16733a1789e540dcab612226e5bf1d32 Mon Sep 17 00:00:00 2001 From: Samuel Hodge Date: Sat, 11 Feb 2017 23:50:49 -0500 Subject: Allow configuration of the blank.mp4 URL This is useful for people behind firewalls who need to host a blank mp4 themselves. --- src/js/plyr.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/js') diff --git a/src/js/plyr.js b/src/js/plyr.js index 1119700c..da4230de 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -44,6 +44,7 @@ loadSprite: true, iconPrefix: 'plyr', iconUrl: 'https://cdn.plyr.io/2.0.11/plyr.svg', + blankUrl: 'https://cdn.selz.com/plyr/blank.mp4', clickToPlay: true, hideControls: true, showPosterOnEnd: false, @@ -3217,7 +3218,7 @@ // Set blank video src attribute // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection - plyr.media.setAttribute('src', 'https://cdn.selz.com/plyr/blank.mp4'); + plyr.media.setAttribute('src', config.blankUrl); // Load the new empty source // This will cancel existing requests -- cgit v1.2.3 From 4957e4d80c833bbfa915c0c20d3d79245221b6f6 Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Sat, 25 Mar 2017 10:58:41 +1100 Subject: Version bump to 2.0.12 --- src/js/plyr.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/js') diff --git a/src/js/plyr.js b/src/js/plyr.js index 815a4c01..d86a2ecb 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -1,6 +1,6 @@ // ========================================================================== // Plyr -// plyr.js v2.0.11 +// plyr.js v2.0.12 // https://github.com/selz/plyr // License: The MIT License (MIT) // ========================================================================== @@ -43,7 +43,7 @@ displayDuration: true, loadSprite: true, iconPrefix: 'plyr', - iconUrl: 'https://cdn.plyr.io/2.0.11/plyr.svg', + iconUrl: 'https://cdn.plyr.io/2.0.12/plyr.svg', blankUrl: 'https://cdn.selz.com/plyr/blank.mp4', clickToPlay: true, hideControls: true, -- cgit v1.2.3