t?t=0:t>lt.media.duration&&(t=lt.media.duration);try{lt.media.currentTime=t.toFixed(1)}catch(r){}n("Seeking to "+lt.media.currentTime+" seconds"),h(t)}function W(){d(lt.container,F.classes.playing,!lt.media.paused),d(lt.container,F.classes.stopped,lt.media.paused)}function z(e){function t(){d(lt.controls,F.classes.hover,!0),window.clearTimeout(s),a||(s=window.setTimeout(function(){d(lt.controls,F.classes.hover,!1)},2e3))}function n(e){a="mouseenter"===e.type}var r=T.supportsFullScreen;e&&e.type===T.fullScreenEventName?lt.isFullscreen=T.isFullScreen(lt.container):r?(T.isFullScreen(lt.container)?T.cancelFullScreen():T.requestFullScreen(lt.container),lt.isFullscreen=T.isFullScreen(lt.container)):(lt.isFullscreen=!lt.isFullscreen,lt.isFullscreen?(m(document,"keyup",X),document.body.style.overflow="hidden"):(y(document,"keyup",X),document.body.style.overflow="")),d(lt.container,F.classes.fullscreen.active,lt.isFullscreen);var s,a=!1;F.fullscreen.hideControls&&(d(lt.controls,F.classes.hover,!1),f(lt.controls,"mouseenter mouseleave",n,lt.isFullscreen),f(lt.container,"mousemove",t,lt.isFullscreen))}function X(e){27===(e.which||e.charCode||e.keyCode)&<.isFullscreen&&z()}function _(e){"undefined"==typeof e&&(e=F.storage.enabled&&x().supported?window.localStorage[F.storage.key]||F.volume:F.volume),e>10&&(e=10),0>e&&(e=0),lt.media.volume=parseFloat(e/10),lt.media.muted&&e>0&&J()}function J(e){"undefined"==typeof e&&(e=!lt.media.muted),lt.media.muted=e}function $(){var e=lt.media.muted?0:10*lt.media.volume;lt.supported.full&<.volume&&(lt.volume.value=e),F.storage.enabled&&x().supported&&window.localStorage.setItem(F.storage.key,e),d(lt.container,F.classes.muted,0===e),lt.supported.full&<.buttons.mute&&(lt.buttons.mute.checked=0===e)}function K(e){lt.supported.full&<.buttons.captions&&("undefined"==typeof e&&(e=-1===lt.container.className.indexOf(F.classes.captions.active),lt.buttons.captions.checked=e),d(lt.container,F.classes.captions.active,e))}function Y(e){var t="waiting"===e.type;clearTimeout(lt.loadingTimer),lt.loadingTimer=setTimeout(function(){d(lt.container,F.classes.loading,t)},t?250:0)}function G(e){var t=lt.progress.played.bar,n=lt.progress.played.text,r=0;if(e)switch(e.type){case"timeupdate":case"seeking":r=g(lt.media.currentTime,lt.media.duration),"timeupdate"==e.type&<.buttons.seek&&(lt.buttons.seek.value=r);break;case"change":case"input":r=e.target.value;break;case"playing":case"progress":t=lt.progress.buffer.bar,n=lt.progress.buffer.text,r=function(){var e=lt.media.buffered;return e.length?g(e.end(0),lt.media.duration):0}()}t&&(t.value=r),n&&(n.innerHTML=r)}function Q(e,t){if(t){lt.secs=parseInt(e%60),lt.mins=parseInt(e/60%60),lt.hours=parseInt(e/60/60%60);var n=parseInt(lt.media.duration/60/60%60)>0;lt.secs=("0"+lt.secs).slice(-2),lt.mins=("0"+lt.mins).slice(-2),t.innerHTML=(n?lt.hours+":":"")+lt.mins+":"+lt.secs}}function Z(){var e=lt.media.duration||0;!lt.duration&&F.displayDuration&<.media.paused&&Q(e,lt.currentTime),lt.duration&&Q(e,lt.duration)}function et(e){Q(lt.media.currentTime,lt.currentTime),G(e)}function tt(){for(var e=lt.media.querySelectorAll("source"),t=e.length-1;t>=0;t--)c(e[t]);lt.media.removeAttribute("src")}function nt(e){if(e.src){var t=document.createElement("source");p(t,e),u(lt.media,t)}}function rt(e){if(B(),U(),tt(),"string"==typeof e)lt.media.setAttribute("src",e);else if(e.constructor===Array)for(var t in e)nt(e[t]);lt.supported.full&&(et(),W()),lt.media.load(),null!==lt.media.getAttribute("autoplay")&&V()}function st(e){"video"===lt.type&<.media.setAttribute("poster",e)}function at(){var e="IE"==lt.browser.name?"change":"input";m(lt.buttons.play,"click",function(){V(),setTimeout(function(){lt.buttons.pause.focus()},100)}),m(lt.buttons.pause,"click",function(){B(),setTimeout(function(){lt.buttons.play.focus()},100)}),m(lt.buttons.restart,"click",U),m(lt.buttons.rewind,"click",j),m(lt.buttons.forward,"click",D),m(lt.buttons.seek,e,U),m(lt.volume,e,function(){_(this.value)}),m(lt.buttons.mute,"change",function(){J(this.checked)}),m(lt.buttons.fullscreen,"click",z),T.supportsFullScreen&&m(document,T.fullScreenEventName,z),m(lt.media,"timeupdate seeking",et),m(lt.media,"timeupdate",h),m(lt.media,"loadedmetadata",Z),m(lt.buttons.captions,"change",function(){K(this.checked)}),m(lt.media,"ended",function(){"video"===lt.type&&(lt.captionsContainer.innerHTML=""),W()}),m(lt.media,"progress",G),m(lt.media,"playing",G),m(lt.media,"volumechange",$),m(lt.media,"play pause",W),m(lt.media,"waiting canplay seeked",Y),m(lt.checkboxes,"keyup",b),"video"===lt.type&&F.click&&m(lt.videoContainer,"click",function(){lt.media.paused?v(lt.buttons.play,"click"):lt.media.ended?(U(),v(lt.buttons.play,"click")):v(lt.buttons.pause,"click")})}function ot(){if(!lt.init)return null;lt.container.setAttribute("class",F.selectors.container.replace(".","")),c(A(F.selectors.controls)),"video"===lt.type&&(c(A(F.selectors.captions)),l(lt.videoContainer)),lt.media.setAttribute("controls","");var e=lt.media.cloneNode(!0);lt.media.parentNode.replaceChild(e,lt.media),lt.init=!1}function it(){if(lt.init)return null;if(T=k(),lt.browser=r(),lt.media=lt.container.querySelectorAll("audio, video")[0],lt.type=lt.media.tagName.toLowerCase(),lt.supported=e.supported(lt.type),!lt.supported.basic)return!1;if(n(lt.browser.name+" "+lt.browser.version),O(),lt.supported.full){if(M(),!L())return!1;F.displayDuration&&Z(),I(),q(),_(),$(),H(),at()}lt.init=!0}var lt=this;return lt.container=a,it(),lt.init?{media:lt.media,play:V,pause:B,restart:U,rewind:j,forward:D,seek:U,source:rt,poster:st,setVolume:_,togglePlay:R,toggleMute:J,toggleCaptions:K,toggleFullscreen:z,isFullscreen:function(){return lt.isFullscreen||!1},support:function(e){return s(lt,e)},destroy:ot,restore:it}:{}}var T,F,S={enabled:!0,debug:!1,seekTime:10,volume:5,click:!0,tooltips:!1,displayDuration:!0,iconPrefix:"icon",selectors:{container:".player",controls:".player-controls",labels:"[data-player] .sr-only, label .sr-only",buttons:{seek:"[data-player='seek']",play:"[data-player='play']",pause:"[data-player='pause']",restart:"[data-player='restart']",rewind:"[data-player='rewind']",forward:"[data-player='fast-forward']",mute:"[data-player='mute']",volume:"[data-player='volume']",captions:"[data-player='captions']",fullscreen:"[data-player='fullscreen']"},progress:{container:".player-progress",buffer:".player-progress-buffer",played:".player-progress-played"},captions:".player-captions",currentTime:".player-current-time",duration:".player-duration"},classes:{video:"player-video",videoWrapper:"player-video-wrapper",audio:"player-audio",stopped:"stopped",playing:"playing",muted:"muted",loading:"loading",tooltip:"player-tooltip",hidden:"sr-only",hover:"hover",captions:{enabled:"captions-enabled",active:"captions-active"},fullscreen:{enabled:"fullscreen-enabled",active:"fullscreen-active",hideControls:"fullscreen-hide-controls"}},captions:{defaultActive:!1},fullscreen:{enabled:!0,fallback:!0,hideControls:!0},storage:{enabled:!0,key:"plyr_volume"},controls:["restart","rewind","play","fast-forward","current-time","duration","mute","volume","captions","fullscreen"],onSetup:function(){}};e.supported=function(e){var t,n,s=r(),a="IE"===s.name&&s.version<=9,o=/iPhone|iPod/i.test(navigator.userAgent),i=!!document.createElement("audio").canPlayType,l=!!document.createElement("video").canPlayType;switch(e){case"video":t=l,n=t&&!a&&!o;break;case"audio":t=i,n=t&&!a;break;default:t=i&&l,n=t&&!a}return{basic:t,full:n}},e.setup=function(t){if(F=h(S,t),!F.enabled||!e.supported().basic)return!1;for(var n=document.querySelectorAll(F.selectors.container),r=[],s=n.length-1;s>=0;s--){var a=n[s];if("undefined"==typeof a.plyr){var o=new w(a);a.plyr=Object.keys(o).length?o:!1,F.onSetup.apply(a.plyr)}r.push(a.plyr)}return r}}(this.plyr=this.plyr||{});
\ No newline at end of file
diff --git a/gulpfile.js b/gulpfile.js
index 96e13368..6c84bf69 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -185,12 +185,12 @@ gulp.task("watch", function () {
// Plyr core
gulp.watch(paths.plyr.src.js, tasks.js);
gulp.watch(paths.plyr.src.less, tasks.less);
- gulp.watch(paths.plyr.src.sprite, "sprite");
+ gulp.watch(paths.plyr.src.sprite, ["sprite"]);
// Docs
gulp.watch(paths.docs.src.js, tasks.js);
gulp.watch(paths.docs.src.less, tasks.less);
- gulp.watch(paths.docs.src.templates, "js");
+ gulp.watch(paths.docs.src.templates, ["js"]);
});
// Publish a version to CDN and docs
diff --git a/package.json b/package.json
index 05368a49..91096dcd 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "plyr",
- "version": "1.1.13",
+ "version": "1.1.14",
"description": "A simple HTML5 media player using custom controls",
"homepage": "http://plyr.io",
"main": "gulpfile.js",
diff --git a/readme.md b/readme.md
index e28d0fbe..d8925c38 100644
--- a/readme.md
+++ b/readme.md
@@ -172,6 +172,12 @@ You can pass the following options to the setup method using `plyr.setup({...})`
["restart", "rewind", "play", "fast-forward", "current-time", "duration", "mute", "volume", "captions", "fullscreen"]
Toggle which control elements you would like to display when using the default controls html. If you specify a html
option, this is redundant. The default value is to display everything.
+
+ iconPrefix
+ String
+ icon
+ Specify the id prefix for the icons used in the default controls (e.g. "icon-play" would be "icon"). This is to prevent clashes if you're using your own SVG defs file but with the default controls. Most people can ignore this option.
+
debug
Boolean
diff --git a/src/js/plyr.js b/src/js/plyr.js
index adb35c12..debbecfc 100644
--- a/src/js/plyr.js
+++ b/src/js/plyr.js
@@ -1,6 +1,6 @@
// ==========================================================================
// Plyr
-// plyr.js v1.1.13
+// plyr.js v1.1.14
// https://github.com/selz/plyr
// License: The MIT License (MIT)
// ==========================================================================
@@ -22,6 +22,7 @@
click: true,
tooltips: false,
displayDuration: true,
+ iconPrefix: "icon",
selectors: {
container: ".player",
controls: ".player-controls",
@@ -105,7 +106,7 @@
if(_inArray(config.controls, "restart")) {
html.push(
"",
- " ",
+ " ",
"Restart ",
" "
);
@@ -115,7 +116,7 @@
if(_inArray(config.controls, "rewind")) {
html.push(
"",
- " ",
+ " ",
"Rewind {seektime} secs ",
" "
);
@@ -125,11 +126,11 @@
if(_inArray(config.controls, "play")) {
html.push(
"",
- " ",
+ " ",
"Play ",
" ",
"",
- " ",
+ " ",
"Pause ",
" "
);
@@ -139,7 +140,7 @@
if(_inArray(config.controls, "fast-forward")) {
html.push(
"",
- " ",
+ " ",
"Forward {seektime} secs ",
" "
);
@@ -176,8 +177,8 @@
html.push(
" ",
"",
- " ",
- " ",
+ " ",
+ " ",
"Toggle Mute ",
" "
);
@@ -196,8 +197,8 @@
html.push(
" ",
"",
- " ",
- " ",
+ " ",
+ " ",
"Toggle Captions ",
" "
);
@@ -207,8 +208,8 @@
if(_inArray(config.controls, "fullscreen")) {
html.push(
"",
- " ",
- " ",
+ " ",
+ " ",
"Toggle Fullscreen ",
" "
);