diff options
-rw-r--r-- | changelog.md | 6 | ||||
-rw-r--r-- | dist/plyr.css | 2 | ||||
-rw-r--r-- | dist/plyr.js | 4 | ||||
-rw-r--r-- | docs/index.dev.php | 129 | ||||
-rw-r--r-- | src/js/plyr.js | 70 | ||||
-rw-r--r-- | src/less/plyr.less | 27 | ||||
-rw-r--r-- | src/scss/plyr.scss | 27 |
7 files changed, 214 insertions, 51 deletions
diff --git a/changelog.md b/changelog.md index b8344604..5e23bcea 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,11 @@ # Changelog +## v1.6.2 +- Fix for tooltip displaying when duration is not set (fixes #177) +- `showPosterOnEnd` option to show poster on video finish (fixes #59) +- Error handler for YouTube (fixes #189) +- Initial SoundCloud support (fixes #194) + ## v1.6.1 - Tooltip changes for accessibility diff --git a/dist/plyr.css b/dist/plyr.css index 54d2ddeb..9672a3cf 100644 --- a/dist/plyr.css +++ b/dist/plyr.css @@ -1 +1 @@ -.plyr .plyr__video-embed iframe,.plyr__tooltip{pointer-events:none}@-webkit-keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-progress{to{background-position:25px 0}}.plyr{position:relative;max-width:100%;min-width:200px;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif}.plyr,.plyr *,.plyr ::after,.plyr ::before{box-sizing:border-box}.plyr a,.plyr button,.plyr input,.plyr label{-ms-touch-action:manipulation;touch-action:manipulation}.plyr audio,.plyr video{width:100%;height:auto;vertical-align:middle;border-radius:inherit}.plyr input[type=range]{display:block;height:20px;width:100%;margin:0;padding:0;vertical-align:middle;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:none;background:0 0}.plyr input[type=range]::-webkit-slider-runnable-track{height:8px;background:0 0;border:0;border-radius:4px;-webkit-user-select:none;user-select:none}.plyr input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-4px;position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.15);box-sizing:border-box}.plyr input[type=range]::-moz-range-track{height:8px;background:0 0;border:0;border-radius:4px;-moz-user-select:none;user-select:none}.plyr input[type=range]::-moz-range-thumb{position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.15);box-sizing:border-box}.plyr input[type=range]::-ms-track{height:8px;background:0 0;border:0;color:transparent}.plyr input[type=range]::-ms-fill-upper{height:8px;background:0 0;border:0;border-radius:4px;-ms-user-select:none;user-select:none}.plyr input[type=range]::-ms-fill-lower{height:8px;border:0;border-radius:4px;-ms-user-select:none;user-select:none;background:#3498db}.plyr input[type=range]::-ms-thumb{position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.15);box-sizing:border-box;margin-top:0}.plyr input[type=range]::-ms-tooltip{display:none}.plyr input[type=range]:focus{outline:0}.plyr input[type=range]::-moz-focus-outer{border:0}.plyr input[type=range].tab-focus:focus{outline-offset:3px}.plyr input[type=range]:active::-webkit-slider-thumb{background:#3498db;border-color:#fff;-webkit-transform:scale(1.25);transform:scale(1.25)}.plyr input[type=range]:active::-moz-range-thumb{background:#3498db;border-color:#fff;transform:scale(1.25)}.plyr input[type=range]:active::-ms-thumb{background:#3498db;border-color:#fff;transform:scale(1.25)}.plyr--video input[type=range].tab-focus:focus{outline:rgba(255,255,255,.5) dotted 1px}.plyr--audio input[type=range].tab-focus:focus{outline:rgba(86,93,100,.5) dotted 1px}.plyr__sr-only{position:absolute!important;clip:rect(1px,1px,1px,1px);padding:0!important;border:0!important;height:1px!important;width:1px!important;overflow:hidden}.plyr__video-wrapper{position:relative;background:#000;border-radius:inherit;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.plyr__video-embed{padding-bottom:56.25%;height:0;overflow:hidden;border-radius:inherit}.plyr__video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.plyr__video-embed>div{position:relative;padding-bottom:200%;-webkit-transform:translateY(-35.95%);transform:translateY(-35.95%)}.plyr video::-webkit-media-text-track-container{display:none}.plyr__captions{display:none;position:absolute;bottom:0;left:0;width:100%;padding:20px 20px 80px;color:#fff;font-size:20px;text-align:center;font-weight:400;-webkit-font-smoothing:subpixel-antialiased}.plyr__captions span{border-radius:2px;padding:3px 10px;background:rgba(0,0,0,.85)}.plyr__captions span:empty{display:none}@media (min-width:768px){.plyr__captions{font-size:24px}}.plyr--captions-active .plyr__captions{display:block}.plyr--fullscreen-active .plyr__captions{font-size:32px}.plyr__time,.plyr__tooltip{font-size:14px;-webkit-font-smoothing:subpixel-antialiased}.plyr__controls{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;line-height:1;text-align:center;transition:opacity .3s ease}.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>button{margin-left:5px}.plyr__controls .plyr__progress:first-child,.plyr__controls .plyr__time:first-child,.plyr__controls>button:first-child{margin-left:0}.plyr__controls .plyr__volume{margin-left:5px}.plyr__controls [data-plyr=pause]{margin-left:0}.plyr__controls button{position:relative;display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;vertical-align:middle;padding:5px;border:0;background:0 0;border-radius:3px;cursor:pointer;transition:background .3s ease,color .3s ease,opacity .3s ease;color:inherit}.plyr__controls button svg{width:18px;height:18px;display:block;fill:currentColor}.plyr__controls button:focus{outline:0}.plyr__controls .icon--captions-on,.plyr__controls .icon--exit-fullscreen,.plyr__controls .icon--muted{display:none}@media (min-width:480px){.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>button{margin-left:10px}.plyr__controls button{padding:5px 10px}}.plyr--hide-controls .plyr__controls{opacity:0}.plyr--video .plyr__controls{position:absolute;left:0;right:0;bottom:0;padding:50px 10px 10px;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.5));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;color:#fff}.plyr--video .plyr__controls button.tab-focus:focus,.plyr--video .plyr__controls button:hover{background:#3498db;color:#fff}@media (min-width:480px){.plyr--video .plyr__controls{padding-left:15px;padding-right:15px}}.plyr--audio .plyr__controls{padding:10px;border-radius:inherit;background:#fff;border:1px solid #dbe3e8;box-shadow:0 1px 1px rgba(0,0,0,.05);color:#565D64}.plyr--audio .plyr__controls button.tab-focus:focus,.plyr--audio .plyr__controls button:hover,.plyr__play-large{background:#3498db;color:#fff}.plyr__play-large{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);padding:10px;border:4px solid currentColor;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15);transition:opacity .3s ease,visibility .3s ease}.plyr__play-large svg{position:relative;left:2px;width:20px;height:20px;display:block;fill:currentColor}.plyr--audio .plyr__play-large,.plyr--playing .plyr__controls [data-plyr=play],.plyr__controls [data-plyr=pause]{display:none}.plyr__play-large:focus{outline:rgba(255,255,255,.5) dotted 1px}.plyr--playing .plyr__play-large{opacity:0;visibility:hidden}.plyr--playing .plyr__controls [data-plyr=pause]{display:inline-block}.plyr--captions-active .plyr__controls .icon--captions-on,.plyr--fullscreen-active .icon--exit-fullscreen,.plyr--muted .plyr__controls .icon--muted{display:block}.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr--captions-active .plyr__controls .icon--captions-on+svg,.plyr--fullscreen-active .icon--exit-fullscreen+svg,.plyr--muted .plyr__controls .icon--muted+svg{display:none}.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen]{display:inline-block}.plyr__tooltip{position:absolute;z-index:2;bottom:100%;margin-bottom:10px;padding:5px 7.5px;opacity:0;background:#000;box-shadow:0 0 5px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.1);border-radius:3px;color:#fff;line-height:1.3;-webkit-transform:translate(-50%,10px) scale(.8);transform:translate(-50%,10px) scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;transition:opacity .2s .1s ease,-webkit-transform .2s .1s ease;transition:transform .2s .1s ease,opacity .2s .1s ease;transition:transform .2s .1s ease,opacity .2s .1s ease,-webkit-transform .2s .1s ease}.plyr__tooltip::before{content:'';position:absolute;width:0;height:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);bottom:-4px;border-right:4px solid transparent;border-top:4px solid #000;border-left:4px solid transparent;z-index:2}.plyr button.tab-focus:focus .plyr__tooltip,.plyr button:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;-webkit-transform:translate(-50%,0) scale(1);transform:translate(-50%,0) scale(1)}.plyr button:hover .plyr__tooltip{z-index:3}.plyr__progress{position:relative;-webkit-flex:1;-ms-flex:1;flex:1}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress input[type=range]::-webkit-slider-runnable-track{background:0 0}.plyr__progress input[type=range]::-moz-range-track{background:0 0}.plyr__progress input[type=range]::-ms-fill-upper{background:0 0}.plyr__progress .plyr__tooltip{left:0}.plyr__progress--buffer[value],.plyr__progress--played[value],.plyr__volume--display[value]{position:absolute;left:0;top:50%;width:100%;height:8px;margin:-4px 0 0;padding:0;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:100px}.plyr__progress--buffer[value]::-webkit-progress-bar,.plyr__progress--played[value]::-webkit-progress-bar,.plyr__volume--display[value]::-webkit-progress-bar{background:0 0}.plyr__progress--buffer[value]::-webkit-progress-value,.plyr__progress--played[value]::-webkit-progress-value,.plyr__volume--display[value]::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:8px}.plyr__progress--buffer[value]::-moz-progress-bar,.plyr__progress--played[value]::-moz-progress-bar,.plyr__volume--display[value]::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:8px}.plyr__progress--buffer[value]::-ms-fill,.plyr__progress--played[value]::-ms-fill,.plyr__volume--display[value]::-ms-fill{border-radius:100px}.plyr__progress--played[value],.plyr__volume--display[value]{z-index:1;color:#3498db;background:0 0;transition:none}.plyr__progress--played[value]::-webkit-progress-value,.plyr__volume--display[value]::-webkit-progress-value{min-width:8px;max-width:99%;border-top-right-radius:0;border-bottom-right-radius:0}.plyr__progress--played[value]::-moz-progress-bar,.plyr__volume--display[value]::-moz-progress-bar{min-width:8px;max-width:99%;border-top-right-radius:0;border-bottom-right-radius:0}.plyr__progress--played[value]::-ms-fill,.plyr__volume--display[value]::-ms-fill{display:none}.plyr__progress--buffer[value]::-webkit-progress-value{transition:width .2s ease}.plyr__progress--buffer[value]::-moz-progress-bar{transition:width .2s ease}.plyr__progress--buffer[value]::-ms-fill{transition:width .2s ease}.plyr--video .plyr__progress--buffer[value],.plyr--video .plyr__volume--display[value]{background:rgba(255,255,255,.25)}.plyr--video .plyr__progress--buffer[value]{color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress--buffer[value],.plyr--audio .plyr__volume--display[value]{background:rgba(198,214,219,.66)}.plyr--audio .plyr__progress--buffer[value]{color:rgba(198,214,219,.66)}.plyr--loading .plyr__progress--buffer{-webkit-animation:plyr-progress 1s linear infinite;animation:plyr-progress 1s linear infinite;background-size:25px 25px;background-repeat:repeat-x;background-image:linear-gradient(-45deg,rgba(0,0,0,.15) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.15) 50%,rgba(0,0,0,.15) 75%,transparent 75%,transparent);color:transparent}.plyr--video.plyr--loading .plyr__progress--buffer{background-color:rgba(255,255,255,.25)}.plyr--audio.plyr--loading .plyr__progress--buffer{background-color:rgba(198,214,219,.66)}.plyr__time{display:inline-block;vertical-align:middle;line-height:.95}.plyr__time+.plyr__time{display:none}@media (min-width:768px){.plyr__time+.plyr__time{display:inline-block}}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}.plyr .plyr__volume{display:none;position:relative}.plyr .plyr__volume input[type=range]{position:relative;z-index:2}@media (min-width:480px){.plyr .plyr__volume{display:block;max-width:60px}}@media (min-width:768px){.plyr .plyr__volume{max-width:100px}}.plyr--is-ios .plyr__volume,.plyr--is-ios [data-plyr=mute]{display:none!important}.plyr--fullscreen,.plyr--fullscreen-active{position:fixed;top:0;left:0;right:0;bottom:0;height:100%;width:100%;z-index:10000000;background:#000;border-radius:0}.plyr--fullscreen video,.plyr--fullscreen-active video{height:100%}.plyr--fullscreen .plyr__video-wrapper,.plyr--fullscreen-active .plyr__video-wrapper{height:100%;width:100%}.plyr--fullscreen .plyr__controls,.plyr--fullscreen-active .plyr__controls{position:absolute;bottom:0;left:0;right:0}
\ No newline at end of file +.plyr .plyr__video-embed iframe,.plyr__tooltip{pointer-events:none}@-webkit-keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-progress{to{background-position:25px 0}}.plyr{position:relative;max-width:100%;min-width:200px;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif}.plyr,.plyr *,.plyr ::after,.plyr ::before{box-sizing:border-box}.plyr a,.plyr button,.plyr input,.plyr label{-ms-touch-action:manipulation;touch-action:manipulation}.plyr audio,.plyr video{width:100%;height:auto;vertical-align:middle;border-radius:inherit}.plyr input[type=range]{display:block;height:20px;width:100%;margin:0;padding:0;vertical-align:middle;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:none;background:0 0}.plyr input[type=range]::-webkit-slider-runnable-track{height:8px;background:0 0;border:0;border-radius:4px;-webkit-user-select:none;user-select:none}.plyr input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-4px;position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.15);box-sizing:border-box}.plyr input[type=range]::-moz-range-track{height:8px;background:0 0;border:0;border-radius:4px;-moz-user-select:none;user-select:none}.plyr input[type=range]::-moz-range-thumb{position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.15);box-sizing:border-box}.plyr input[type=range]::-ms-track{height:8px;background:0 0;border:0;color:transparent}.plyr input[type=range]::-ms-fill-upper{height:8px;background:0 0;border:0;border-radius:4px;-ms-user-select:none;user-select:none}.plyr input[type=range]::-ms-fill-lower{height:8px;border:0;border-radius:4px;-ms-user-select:none;user-select:none;background:#3498db}.plyr input[type=range]::-ms-thumb{position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.15);box-sizing:border-box;margin-top:0}.plyr input[type=range]::-ms-tooltip{display:none}.plyr input[type=range]:focus{outline:0}.plyr input[type=range]::-moz-focus-outer{border:0}.plyr input[type=range].tab-focus:focus{outline-offset:3px}.plyr input[type=range]:active::-webkit-slider-thumb{background:#3498db;border-color:#fff;-webkit-transform:scale(1.25);transform:scale(1.25)}.plyr input[type=range]:active::-moz-range-thumb{background:#3498db;border-color:#fff;transform:scale(1.25)}.plyr input[type=range]:active::-ms-thumb{background:#3498db;border-color:#fff;transform:scale(1.25)}.plyr--video input[type=range].tab-focus:focus{outline:rgba(255,255,255,.5) dotted 1px}.plyr--audio input[type=range].tab-focus:focus{outline:rgba(86,93,100,.5) dotted 1px}.plyr__sr-only{position:absolute!important;clip:rect(1px,1px,1px,1px);padding:0!important;border:0!important;height:1px!important;width:1px!important;overflow:hidden}.plyr__video-wrapper{position:relative;background:#000;border-radius:inherit;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.plyr__video-embed{padding-bottom:56.25%;height:0;overflow:hidden;border-radius:inherit}.plyr__video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.plyr__video-embed>div{position:relative;padding-bottom:200%;-webkit-transform:translateY(-35.95%);transform:translateY(-35.95%)}.plyr video::-webkit-media-text-track-container{display:none}.plyr__captions{display:none;position:absolute;bottom:0;left:0;width:100%;padding:20px 20px 80px;color:#fff;font-size:20px;text-align:center;font-weight:400}.plyr__captions span{border-radius:2px;padding:3px 10px;background:rgba(0,0,0,.85)}.plyr__captions span:empty{display:none}@media (min-width:768px){.plyr__captions{font-size:24px}}.plyr--captions-active .plyr__captions{display:block}.plyr--fullscreen-active .plyr__captions{font-size:32px}.plyr__controls{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;line-height:1;text-align:center;transition:opacity .3s ease}.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>button{margin-left:5px}.plyr__controls .plyr__progress:first-child,.plyr__controls .plyr__time:first-child,.plyr__controls>button:first-child{margin-left:0}.plyr__controls .plyr__volume{margin-left:5px}.plyr__controls [data-plyr=pause]{margin-left:0}.plyr__controls button{position:relative;display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;vertical-align:middle;padding:5px;border:0;background:0 0;border-radius:3px;cursor:pointer;transition:background .3s ease,color .3s ease,opacity .3s ease;color:inherit}.plyr__controls button svg{width:18px;height:18px;display:block;fill:currentColor}.plyr__controls button:focus{outline:0}.plyr__controls .icon--captions-on,.plyr__controls .icon--exit-fullscreen,.plyr__controls .icon--muted{display:none}@media (min-width:480px){.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>button{margin-left:10px}.plyr__controls button{padding:5px 10px}}.plyr--hide-controls .plyr__controls{opacity:0}.plyr--video .plyr__controls{position:absolute;left:0;right:0;bottom:0;padding:50px 10px 10px;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.5));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;color:#fff}.plyr--video .plyr__controls button.tab-focus:focus,.plyr--video .plyr__controls button:hover{background:#3498db;color:#fff}@media (min-width:480px){.plyr--video .plyr__controls{padding-left:15px;padding-right:15px}}.plyr--audio .plyr__controls{padding:10px;border-radius:inherit;background:#fff;border:1px solid #dbe3e8;box-shadow:0 1px 1px rgba(0,0,0,.05);color:#565D64}.plyr--audio .plyr__controls button.tab-focus:focus,.plyr--audio .plyr__controls button:hover,.plyr__play-large{background:#3498db;color:#fff}.plyr__play-large{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);padding:10px;border:4px solid currentColor;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15);transition:opacity .3s ease,visibility .3s ease}.plyr__play-large svg{position:relative;left:2px;width:20px;height:20px;display:block;fill:currentColor}.plyr--audio .plyr__play-large,.plyr--playing .plyr__controls [data-plyr=play],.plyr__controls [data-plyr=pause]{display:none}.plyr__play-large:focus{outline:rgba(255,255,255,.5) dotted 1px}.plyr--playing .plyr__play-large{opacity:0;visibility:hidden}.plyr--playing .plyr__controls [data-plyr=pause]{display:inline-block}.plyr--captions-active .plyr__controls .icon--captions-on,.plyr--fullscreen-active .icon--exit-fullscreen,.plyr--muted .plyr__controls .icon--muted{display:block}.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr--captions-active .plyr__controls .icon--captions-on+svg,.plyr--fullscreen-active .icon--exit-fullscreen+svg,.plyr--muted .plyr__controls .icon--muted+svg{display:none}.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen]{display:inline-block}.plyr__tooltip{position:absolute;z-index:2;bottom:100%;margin-bottom:10px;padding:5px 7.5px;opacity:0;background:#000;box-shadow:0 0 5px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.1);border-radius:3px;color:#fff;font-size:14px;line-height:1.3;-webkit-transform:translate(-50%,10px) scale(.8);transform:translate(-50%,10px) scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;transition:opacity .2s .1s ease,-webkit-transform .2s .1s ease;transition:transform .2s .1s ease,opacity .2s .1s ease;transition:transform .2s .1s ease,opacity .2s .1s ease,-webkit-transform .2s .1s ease}.plyr__tooltip::before{content:'';position:absolute;width:0;height:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);bottom:-4px;border-right:4px solid transparent;border-top:4px solid #000;border-left:4px solid transparent;z-index:2}.plyr button.tab-focus:focus .plyr__tooltip,.plyr button:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;-webkit-transform:translate(-50%,0) scale(1);transform:translate(-50%,0) scale(1)}.plyr button:hover .plyr__tooltip{z-index:3}.plyr__progress{position:relative;-webkit-flex:1;-ms-flex:1;flex:1}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress input[type=range]::-webkit-slider-runnable-track{background:0 0}.plyr__progress input[type=range]::-moz-range-track{background:0 0}.plyr__progress input[type=range]::-ms-fill-upper{background:0 0}.plyr__progress .plyr__tooltip{left:0}.plyr__progress--buffer,.plyr__progress--played,.plyr__volume--display{position:absolute;left:0;top:50%;width:100%;height:8px;margin:-4px 0 0;padding:0;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:100px}.plyr__progress--buffer::-webkit-progress-bar,.plyr__progress--played::-webkit-progress-bar,.plyr__volume--display::-webkit-progress-bar{background:0 0}.plyr__progress--buffer::-webkit-progress-value,.plyr__progress--played::-webkit-progress-value,.plyr__volume--display::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:8px}.plyr__progress--buffer::-moz-progress-bar,.plyr__progress--played::-moz-progress-bar,.plyr__volume--display::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:8px}.plyr__progress--buffer::-ms-fill,.plyr__progress--played::-ms-fill,.plyr__volume--display::-ms-fill{border-radius:100px}.plyr__progress--played,.plyr__volume--display{z-index:1;color:#3498db;background:0 0;transition:none}.plyr__progress--played::-webkit-progress-value,.plyr__volume--display::-webkit-progress-value{min-width:8px;max-width:99%;border-top-right-radius:0;border-bottom-right-radius:0}.plyr__progress--played::-moz-progress-bar,.plyr__volume--display::-moz-progress-bar{min-width:8px;max-width:99%;border-top-right-radius:0;border-bottom-right-radius:0}.plyr__progress--played::-ms-fill,.plyr__volume--display::-ms-fill{display:none}.plyr__progress--buffer::-webkit-progress-value{transition:width .2s ease}.plyr__progress--buffer::-moz-progress-bar{transition:width .2s ease}.plyr__progress--buffer::-ms-fill{transition:width .2s ease}.plyr--video .plyr__progress--buffer,.plyr--video .plyr__volume--display{background:rgba(255,255,255,.25)}.plyr--video .plyr__progress--buffer{color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress--buffer,.plyr--audio .plyr__volume--display{background:rgba(198,214,219,.66)}.plyr--audio .plyr__progress--buffer{color:rgba(198,214,219,.66)}.plyr--loading .plyr__progress--buffer{-webkit-animation:plyr-progress 1s linear infinite;animation:plyr-progress 1s linear infinite;background-size:25px 25px;background-repeat:repeat-x;background-image:linear-gradient(-45deg,rgba(0,0,0,.15) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.15) 50%,rgba(0,0,0,.15) 75%,transparent 75%,transparent);color:transparent}.plyr--video.plyr--loading .plyr__progress--buffer{background-color:rgba(255,255,255,.25)}.plyr--audio.plyr--loading .plyr__progress--buffer{background-color:rgba(198,214,219,.66)}.plyr__time{display:inline-block;vertical-align:middle;font-size:14px;line-height:.95}.plyr__time+.plyr__time{display:none}@media (min-width:768px){.plyr__time+.plyr__time{display:inline-block}}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}.plyr .plyr__volume{display:none;position:relative}.plyr .plyr__volume input[type=range]{position:relative;z-index:2}@media (min-width:480px){.plyr .plyr__volume{display:block;max-width:60px}}@media (min-width:768px){.plyr .plyr__volume{max-width:100px}}.plyr--is-ios .plyr__volume,.plyr--is-ios [data-plyr=mute]{display:none!important}.plyr--fullscreen,.plyr--fullscreen-active{position:fixed;top:0;left:0;right:0;bottom:0;height:100%;width:100%;z-index:10000000;background:#000;border-radius:0}.plyr--fullscreen video,.plyr--fullscreen-active video{height:100%}.plyr--fullscreen .plyr__video-wrapper,.plyr--fullscreen-active .plyr__video-wrapper{height:100%;width:100%}.plyr--fullscreen .plyr__controls,.plyr--fullscreen-active .plyr__controls{position:absolute;bottom:0;left:0;right:0}
\ No newline at end of file diff --git a/dist/plyr.js b/dist/plyr.js index 9c3d1222..61092207 100644 --- a/dist/plyr.js +++ b/dist/plyr.js @@ -1,2 +1,2 @@ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=t(e,document):"function"==typeof define&&define.amd?define(null,function(){t(e,document)}):e.plyr=t(e,document)}("undefined"!=typeof window?window:this,function(e,t){"use strict";function n(){var e,n,a,r=navigator.userAgent,s=navigator.appName,o=""+parseFloat(navigator.appVersion),i=parseInt(navigator.appVersion,10);return-1!==navigator.appVersion.indexOf("Windows NT")&&-1!==navigator.appVersion.indexOf("rv:11")?(s="IE",o="11;"):-1!==(n=r.indexOf("MSIE"))?(s="IE",o=r.substring(n+5)):-1!==(n=r.indexOf("Chrome"))?(s="Chrome",o=r.substring(n+7)):-1!==(n=r.indexOf("Safari"))?(s="Safari",o=r.substring(n+7),-1!==(n=r.indexOf("Version"))&&(o=r.substring(n+8))):-1!==(n=r.indexOf("Firefox"))?(s="Firefox",o=r.substring(n+8)):(e=r.lastIndexOf(" ")+1)<(n=r.lastIndexOf("/"))&&(s=r.substring(e,n),o=r.substring(n+1),s.toLowerCase()==s.toUpperCase()&&(s=navigator.appName)),-1!==(a=o.indexOf(";"))&&(o=o.substring(0,a)),-1!==(a=o.indexOf(" "))&&(o=o.substring(0,a)),i=parseInt(""+o,10),isNaN(i)&&(o=""+parseFloat(navigator.appVersion),i=parseInt(navigator.appVersion,10)),{name:s,version:i,ios:/(iPad|iPhone|iPod)/g.test(navigator.platform),touch:"ontouchstart"in t.documentElement}}function a(e,t){var n=e.media;if("video"==e.type)switch(t){case"video/webm":return!(!n.canPlayType||!n.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/no/,""));case"video/mp4":return!(!n.canPlayType||!n.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/,""));case"video/ogg":return!(!n.canPlayType||!n.canPlayType('video/ogg; codecs="theora"').replace(/no/,""))}else if("audio"==e.type)switch(t){case"audio/mpeg":return!(!n.canPlayType||!n.canPlayType("audio/mpeg;").replace(/no/,""));case"audio/ogg":return!(!n.canPlayType||!n.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/,""));case"audio/wav":return!(!n.canPlayType||!n.canPlayType('audio/wav; codecs="1"').replace(/no/,""))}return!1}function r(e){if(!t.querySelectorAll('script[src="'+e+'"]').length){var n=t.createElement("script");n.src=e;var a=t.getElementsByTagName("script")[0];a.parentNode.insertBefore(n,a)}}function s(e,t){return Array.prototype.indexOf&&-1!=e.indexOf(t)}function o(e,t,n){return e.replace(new RegExp(t.replace(/([.*+?\^=!:${}()|\[\]\/\\])/g,"\\$1"),"g"),n)}function i(e,t){e.length||(e=[e]);for(var n=e.length-1;n>=0;n--){var a=n>0?t.cloneNode(!0):t,r=e[n],s=r.parentNode,o=r.nextSibling;a.appendChild(r),o?s.insertBefore(a,o):s.appendChild(a)}}function l(e){for(var t=e.parentNode;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}function u(e){e&&e.parentNode.removeChild(e)}function c(e,t){e.insertBefore(t,e.firstChild)}function p(e,t){for(var n in t)e.setAttribute(n,"boolean"==typeof t[n]&&t[n]?"":t[n])}function d(e,n,a){var r=t.createElement(e);p(r,a),c(n,r)}function A(e){return e.replace(".","")}function m(e,t,n){if(e)if(e.classList)e.classList[n?"add":"remove"](t);else{var a=(" "+e.className+" ").replace(/\s+/g," ").replace(" "+t+" ","");e.className=a+(n?" "+t:"")}}function f(e,t){return e?e.classList?e.classList.contains(t):new RegExp("(\\s|^)"+t+"(\\s|$)").test(e.className):!1}function y(e,t,n,a){e&&g(e,t,n,!0,a)}function b(e,t,n,a){e&&g(e,t,n,!1,a)}function v(e,t,n,a,r){y(e,t,function(t){n&&n.apply(e,[t]),a.apply(e,[t])},r)}function g(e,t,n,a,r){var s=t.split(" ");if("boolean"!=typeof r&&(r=!1),e instanceof NodeList)for(var o=0;o<e.length;o++)e[o]instanceof Node&&g(e[o],arguments[1],arguments[2],arguments[3]);else for(var i=0;i<s.length;i++)e[a?"addEventListener":"removeEventListener"](s[i],n,r)}function h(e,t,n,a){if(e&&t){"boolean"!=typeof n&&(n=!1);var r=new CustomEvent(t,{bubbles:n,detail:a});e.dispatchEvent(r)}}function k(e,t){return e?(t="boolean"==typeof t?t:!e.getAttribute("aria-pressed"),e.setAttribute("aria-pressed",t),t):void 0}function w(e,t){return 0===e||0===t||isNaN(e)||isNaN(t)?0:(e/t*100).toFixed(2)}function T(){var e=arguments;if(e.length){if(1==e.lenth)return e[0];for(var t=Array.prototype.shift.call(e),n=e.length,a=0;n>a;a++){var r=e[a];for(var s in r)r[s]&&r[s].constructor&&r[s].constructor===Object?(t[s]=t[s]||{},T(t[s],r[s])):t[s]=r[s]}return t}}function x(){var e={supportsFullScreen:!1,isFullScreen:function(){return!1},requestFullScreen:function(){},cancelFullScreen:function(){},fullScreenEventName:"",element:null,prefix:""},n="webkit moz o ms khtml".split(" ");if("undefined"!=typeof t.cancelFullScreen)e.supportsFullScreen=!0;else for(var a=0,r=n.length;r>a;a++){if(e.prefix=n[a],"undefined"!=typeof t[e.prefix+"CancelFullScreen"]){e.supportsFullScreen=!0;break}if("undefined"!=typeof t.msExitFullscreen&&t.msFullscreenEnabled){e.prefix="ms",e.supportsFullScreen=!0;break}}return e.supportsFullScreen&&(e.fullScreenEventName="ms"==e.prefix?"MSFullscreenChange":e.prefix+"fullscreenchange",e.isFullScreen=function(e){switch("undefined"==typeof e&&(e=t.body),this.prefix){case"":return t.fullscreenElement==e;case"moz":return t.mozFullScreenElement==e;default:return t[this.prefix+"FullscreenElement"]==e}},e.requestFullScreen=function(e){return"undefined"==typeof e&&(e=t.body),""===this.prefix?e.requestFullScreen():e[this.prefix+("ms"==this.prefix?"RequestFullscreen":"RequestFullScreen")]()},e.cancelFullScreen=function(){return""===this.prefix?t.cancelFullScreen():t[this.prefix+("ms"==this.prefix?"ExitFullscreen":"CancelFullScreen")]()},e.element=function(){return""===this.prefix?t.fullscreenElement:t[this.prefix+"FullscreenElement"]}),e}function _(){var t={supported:function(){if(!("localStorage"in e))return!1;try{e.localStorage.setItem("___test","OK");var t=e.localStorage.getItem("___test");return e.localStorage.removeItem("___test"),"OK"===t}catch(n){return!1}return!1}()};return t}function E(g,T){function E(t,n){T.debug&&e.console&&console[n?"warn":"log"](t)}function S(){var e=[],t=T.iconUrl+"#"+T.iconPrefix;return s(T.controls,"play-large")&&e.push('<button type="button" data-plyr="play" class="plyr__play-large">','<svg><use xlink:href="'+t+'-play" /></svg>','<span class="plyr__sr-only">'+T.i18n.play+"</span>","</button>"),e.push('<div class="plyr__controls">'),s(T.controls,"restart")&&e.push('<button type="button" data-plyr="restart">','<svg><use xlink:href="'+t+'-restart" /></svg>','<span class="plyr__sr-only">'+T.i18n.restart+"</span>","</button>"),s(T.controls,"rewind")&&e.push('<button type="button" data-plyr="rewind">','<svg><use xlink:href="'+t+'-rewind" /></svg>','<span class="plyr__sr-only">'+T.i18n.rewind+"</span>","</button>"),s(T.controls,"play")&&e.push('<button type="button" data-plyr="play">','<svg><use xlink:href="'+t+'-play" /></svg>','<span class="plyr__sr-only">'+T.i18n.play+"</span>","</button>",'<button type="button" data-plyr="pause">','<svg><use xlink:href="'+t+'-pause" /></svg>','<span class="plyr__sr-only">'+T.i18n.pause+"</span>","</button>"),s(T.controls,"fast-forward")&&e.push('<button type="button" data-plyr="fast-forward">','<svg><use xlink:href="'+t+'-fast-forward" /></svg>','<span class="plyr__sr-only">'+T.i18n.forward+"</span>","</button>"),s(T.controls,"progress")&&(e.push('<span class="plyr__progress">','<label for="seek{id}" class="plyr__sr-only">Seek</label>','<input id="seek{id}" class="plyr__progress--seek" type="range" min="0" max="100" step="0.1" value="0" data-plyr="seek">','<progress class="plyr__progress--played" max="100" value="0" role="presentation"></progress>','<progress class="plyr__progress--buffer" max="100" value="0">',"<span>0</span>% "+T.i18n.buffered,"</progress>"),T.tooltips.seek&&e.push('<span class="plyr__tooltip">00:00</span>'),e.push("</span>")),s(T.controls,"current-time")&&e.push('<span class="plyr__time">','<span class="plyr__sr-only">'+T.i18n.currentTime+"</span>",'<span class="plyr__time--current">00:00</span>',"</span>"),s(T.controls,"duration")&&e.push('<span class="plyr__time">','<span class="plyr__sr-only">'+T.i18n.duration+"</span>",'<span class="plyr__time--duration">00:00</span>',"</span>"),s(T.controls,"mute")&&e.push('<button type="button" data-plyr="mute">','<svg class="icon--muted"><use xlink:href="'+t+'-muted" /></svg>','<svg><use xlink:href="'+t+'-volume" /></svg>','<span class="plyr__sr-only">'+T.i18n.toggleMute+"</span>","</button>"),s(T.controls,"volume")&&e.push('<span class="plyr__volume">','<label for="volume{id}" class="plyr__sr-only">'+T.i18n.volume+"</label>",'<input id="volume{id}" class="plyr__volume--input" type="range" min="0" max="10" value="5" data-plyr="volume">','<progress class="plyr__volume--display" max="10" value="0" role="presentation"></progress>',"</span>"),s(T.controls,"captions")&&e.push('<button type="button" data-plyr="captions">','<svg class="icon--captions-on"><use xlink:href="'+t+'-captions-on" /></svg>','<svg><use xlink:href="'+t+'-captions-off" /></svg>','<span class="plyr__sr-only">'+T.i18n.toggleCaptions+"</span>","</button>"),s(T.controls,"fullscreen")&&e.push('<button type="button" data-plyr="fullscreen">','<svg class="icon--exit-fullscreen"><use xlink:href="'+t+'-exit-fullscreen" /></svg>','<svg><use xlink:href="'+t+'-enter-fullscreen" /></svg>','<span class="plyr__sr-only">'+T.i18n.toggleFullscreen+"</span>","</button>"),e.push("</div>"),e.join("")}function I(){if(Ce.supported.full&&("audio"!=Ce.type||T.fullscreen.allowAudio)&&T.fullscreen.enabled){var e=C.supportsFullScreen;e||T.fullscreen.fallback&&!V()?(E((e?"Native":"Fallback")+" fullscreen enabled"),m(Ce.container,T.classes.fullscreen.enabled,!0)):E("Fullscreen not supported and fallback disabled"),k(Ce.buttons.fullscreen,!1),H()}}function N(){if("video"===Ce.type){L(T.selectors.captions)||Ce.videoContainer.insertAdjacentHTML("afterbegin",'<div class="'+A(T.selectors.captions)+'"></div>'),Ce.usingTextTracks=!1,Ce.media.textTracks&&(Ce.usingTextTracks=!0);for(var e,t="",n=Ce.media.childNodes,a=0;a<n.length;a++)"track"===n[a].nodeName.toLowerCase()&&(e=n[a].kind,"captions"!==e&&"subtitles"!==e||(t=n[a].getAttribute("src")));if(Ce.captionExists=!0,""===t?(Ce.captionExists=!1,E("No caption track found")):E("Caption track found; URI: "+t),Ce.captionExists){for(var r=Ce.media.textTracks,s=0;s<r.length;s++)r[s].mode="hidden";if(R(Ce),("IE"===Ce.browser.name&&Ce.browser.version>=10||"Firefox"===Ce.browser.name&&Ce.browser.version>=31)&&(E("Detected browser with known TextTrack issues - using manual fallback"),Ce.usingTextTracks=!1),Ce.usingTextTracks){E("TextTracks supported");for(var o=0;o<r.length;o++){var i=r[o];"captions"!==i.kind&&"subtitles"!==i.kind||y(i,"cuechange",function(){this.activeCues[0]&&"text"in this.activeCues[0]?P(this.activeCues[0].getCueAsHTML()):P()})}}else if(E("TextTracks not supported so rendering captions manually"),Ce.currentCaption="",Ce.captions=[],""!==t){var l=new XMLHttpRequest;l.onreadystatechange=function(){if(4===l.readyState)if(200===l.status){var e,t=[],n=l.responseText;t=n.split("\n\n");for(var a=0;a<t.length;a++){e=t[a],Ce.captions[a]=[];var r=e.split("\n"),s=0;-1===r[s].indexOf(":")&&(s=1),Ce.captions[a]=[r[s],r[s+1]]}Ce.captions.shift(),E("Successfully loaded the caption file via AJAX")}else E("There was a problem loading the caption file via AJAX",!0)},l.open("get",t,!0),l.send()}}else m(Ce.container,T.classes.captions.enabled)}}function P(e){var n=L(T.selectors.captions),a=t.createElement("span");n.innerHTML="","undefined"==typeof e&&(e=""),"string"==typeof e?a.innerHTML=e.trim():a.appendChild(e),n.appendChild(a);n.offsetHeight}function M(e){function t(e,t){var n=[];n=e.split(" --> ");for(var a=0;a<n.length;a++)n[a]=n[a].replace(/(\d+:\d+:\d+\.\d+).*/,"$1");return r(n[t])}function n(e){return t(e,0)}function a(e){return t(e,1)}function r(e){if(null===e||void 0===e)return 0;var t,n=[],a=[];return n=e.split(","),a=n[0].split(":"),t=Math.floor(60*a[0]*60)+Math.floor(60*a[1])+Math.floor(a[2])}if(!Ce.usingTextTracks&&"video"===Ce.type&&Ce.supported.full&&(Ce.subcount=0,e="number"==typeof e?e:Ce.media.currentTime,Ce.captions[Ce.subcount])){for(;a(Ce.captions[Ce.subcount][0])<e.toFixed(1);)if(Ce.subcount++,Ce.subcount>Ce.captions.length-1){Ce.subcount=Ce.captions.length-1;break}Ce.media.currentTime.toFixed(1)>=n(Ce.captions[Ce.subcount][0])&&Ce.media.currentTime.toFixed(1)<=a(Ce.captions[Ce.subcount][0])?(Ce.currentCaption=Ce.captions[Ce.subcount][1],P(Ce.currentCaption)):P()}}function R(){Ce.buttons.captions&&(m(Ce.container,T.classes.captions.enabled,!0),T.captions.defaultActive&&(m(Ce.container,T.classes.captions.active,!0),k(Ce.buttons.captions,!0)))}function B(e){return Ce.container.querySelectorAll(e)}function L(e){return B(e)[0]}function V(){try{return e.self!==e.top}catch(t){return!0}}function H(){function e(e){9===e.which&&Ce.isFullscreen&&(e.target!==a||e.shiftKey?e.target===n&&e.shiftKey&&(e.preventDefault(),a.focus()):(e.preventDefault(),n.focus()))}var t=B("input:not([disabled]), button:not([disabled])"),n=t[0],a=t[t.length-1];y(Ce.container,"keydown",e)}function O(e,t){if("string"==typeof t)d(e,Ce.media,{src:t});else if(t.constructor===Array)for(var n=t.length-1;n>=0;n--)d(e,Ce.media,t[n])}function W(){var e=T.html;E("Injecting custom controls"),e||(e=S()),e=o(e,"{seektime}",T.seekTime),e=o(e,"{id}",Math.floor(1e4*Math.random()));var n;if(null!==T.selectors.controls.container&&(n=T.selectors.controls.container,"string"==typeof selector&&(n=t.querySelector(n))),n instanceof HTMLElement||(n=Ce.container),n.insertAdjacentHTML("beforeend",e),T.tooltips.controls)for(var a=B([T.selectors.controls.wrapper," ",T.selectors.labels," .",T.classes.hidden].join("")),r=a.length-1;r>=0;r--){var s=a[r];m(s,T.classes.hidden,!1),m(s,T.classes.tooltip,!0)}}function G(){try{return Ce.controls=L(T.selectors.controls.wrapper),Ce.buttons={},Ce.buttons.seek=L(T.selectors.buttons.seek),Ce.buttons.play=B(T.selectors.buttons.play),Ce.buttons.pause=L(T.selectors.buttons.pause),Ce.buttons.restart=L(T.selectors.buttons.restart),Ce.buttons.rewind=L(T.selectors.buttons.rewind),Ce.buttons.forward=L(T.selectors.buttons.forward),Ce.buttons.fullscreen=L(T.selectors.buttons.fullscreen),Ce.buttons.mute=L(T.selectors.buttons.mute),Ce.buttons.captions=L(T.selectors.buttons.captions),Ce.progress={},Ce.progress.container=L(T.selectors.progress.container),Ce.progress.buffer={},Ce.progress.buffer.bar=L(T.selectors.progress.buffer),Ce.progress.buffer.text=Ce.progress.buffer.bar&&Ce.progress.buffer.bar.getElementsByTagName("span")[0],Ce.progress.played=L(T.selectors.progress.played),Ce.progress.tooltip=Ce.progress.container&&Ce.progress.container.querySelector("."+T.classes.tooltip),Ce.volume={},Ce.volume.input=L(T.selectors.volume.input),Ce.volume.display=L(T.selectors.volume.display),Ce.duration=L(T.selectors.duration),Ce.currentTime=L(T.selectors.currentTime),Ce.seekTime=B(T.selectors.seekTime),!0}catch(e){return E("It looks like there is a problem with your controls html",!0),q(!0),!1}}function Y(){m(Ce.container,T.selectors.container.replace(".",""),Ce.supported.full)}function q(e){e?Ce.media.setAttribute("controls",""):Ce.media.removeAttribute("controls")}function z(e){var t=T.i18n.play;if("undefined"!=typeof T.title&&T.title.length&&(t+=", "+T.title),Ce.supported.full&&Ce.buttons.play)for(var n=Ce.buttons.play.length-1;n>=0;n--)Ce.buttons.play[n].setAttribute("aria-label",t);e instanceof HTMLElement&&e.setAttribute("title",T.i18n.frameTitle.replace("{title}",T.title))}function Q(){if(!Ce.media)return E("No audio or video element found",!0),!1;if(Ce.supported.full&&(m(Ce.container,T.classes.type.replace("{0}",Ce.type),!0),s(T.types.embed,Ce.type)&&m(Ce.container,T.classes.type.replace("{0}","video"),!0),m(Ce.container,T.classes.stopped,T.autoplay),m(Ce.container,T.classes.isIos,Ce.browser.ios),m(Ce.container,T.classes.isTouch,Ce.browser.touch),"video"===Ce.type)){var e=t.createElement("div");e.setAttribute("class",T.classes.videoWrapper),i(Ce.media,e),Ce.videoContainer=e}s(T.types.embed,Ce.type)&&(j(),Ce.embedId=null)}function j(){for(var n=t.createElement("div"),a=Ce.embedId,s=Ce.type+"-"+Math.floor(1e4*Math.random()),o=B('[id^="'+Ce.type+'-"]'),i=o.length-1;i>=0;i--)u(o[i]);if(m(Ce.media,T.classes.videoWrapper,!0),m(Ce.media,T.classes.embedWrapper,!0),"youtube"===Ce.type)Ce.media.appendChild(n),n.setAttribute("id",s),"object"==typeof YT?U(a,n):(r(T.urls.youtube.api),e.onYouTubeReadyCallbacks=e.onYouTubeReadyCallbacks||[],e.onYouTubeReadyCallbacks.push(function(){U(a,n)}),e.onYouTubeIframeAPIReady=function(){e.onYouTubeReadyCallbacks.forEach(function(e){e()})});else if("vimeo"===Ce.type){var l=t.createElement("iframe");l.loaded=!1,y(l,"load",function(){l.loaded=!0}),p(l,{src:"https://player.vimeo.com/video/"+a+"?player_id="+s+"&api=1&badge=0&byline=0&portrait=0&title=0",id:s,webkitallowfullscreen:"",mozallowfullscreen:"",allowfullscreen:"",frameborder:0}),Ce.supported.full?(n.appendChild(l),Ce.media.appendChild(n)):Ce.media.appendChild(l),"$f"in e||r(T.urls.vimeo.api);var c=e.setInterval(function(){"$f"in e&&l.loaded&&(e.clearInterval(c),X.call(l))},50)}else if("soundcloud"===Ce.type){var d=t.createElement("iframe");d.loaded=!1,y(d,"load",function(){d.loaded=!0}),p(d,{src:"https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/"+a,id:s}),n.appendChild(d),Ce.media.appendChild(n),e.SC||r(T.urls.soundcloud.api);var A=e.setInterval(function(){e.SC&&d.loaded&&(e.clearInterval(A),Z.call(d))},50)}}function D(){Ce.container.plyr.embed=Ce.embed,Ee(),z(L("iframe"))}function U(t,n){"timer"in Ce||(Ce.timer={}),Ce.embed=new YT.Player(n.id,{videoId:t,playerVars:{autoplay:T.autoplay?1:0,controls:Ce.supported.full?0:1,rel:0,showinfo:0,iv_load_policy:3,cc_load_policy:T.captions.defaultActive?1:0,cc_lang_pref:"en",wmode:"transparent",modestbranding:1,disablekb:1,origin:"*"},events:{onError:function(e){h(Ce.container,"error",!0,{code:e.data,embed:e.target})},onReady:function(t){var n=t.target;Ce.media.play=function(){n.playVideo(),Ce.media.paused=!1},Ce.media.pause=function(){n.pauseVideo(),Ce.media.paused=!0},Ce.media.stop=function(){n.stopVideo(),Ce.media.paused=!0},Ce.media.duration=n.getDuration(),Ce.media.paused=!0,Ce.media.currentTime=n.getCurrentTime(),Ce.media.muted=n.isMuted(),T.title=n.getVideoData().title,h(Ce.media,"timeupdate"),e.clearInterval(Ce.timer.buffering),Ce.timer.buffering=e.setInterval(function(){Ce.media.buffered=n.getVideoLoadedFraction(),h(Ce.media,"progress"),1===Ce.media.buffered&&(e.clearInterval(Ce.timer.buffering),h(Ce.media,"canplaythrough"))},200),D(),me()},onStateChange:function(t){var n=t.target;switch(e.clearInterval(Ce.timer.playing),t.data){case 0:Ce.media.paused=!0,h(Ce.media,"ended");break;case 1:Ce.media.paused=!1,Ce.media.seeking=!1,h(Ce.media,"play"),h(Ce.media,"playing"),Ce.timer.playing=e.setInterval(function(){Ce.media.currentTime=n.getCurrentTime(),h(Ce.media,"timeupdate")},100);break;case 2:Ce.media.paused=!0,h(Ce.media,"pause")}}}})}function X(){Ce.embed=$f(this),Ce.embed.addEvent("ready",function(){Ce.media.play=function(){Ce.embed.api("play"),Ce.media.paused=!1},Ce.media.pause=function(){Ce.embed.api("pause"),Ce.media.paused=!0},Ce.media.stop=function(){Ce.embed.api("stop"),Ce.media.paused=!0},Ce.media.paused=!0,Ce.media.currentTime=0,D(),Ce.embed.api("getCurrentTime",function(e){Ce.media.currentTime=e,h(Ce.media,"timeupdate")}),Ce.embed.api("getDuration",function(e){Ce.media.duration=e,me()}),Ce.embed.addEvent("play",function(){Ce.media.paused=!1,h(Ce.media,"play"),h(Ce.media,"playing")}),Ce.embed.addEvent("pause",function(){Ce.media.paused=!0,h(Ce.media,"pause")}),Ce.embed.addEvent("playProgress",function(e){Ce.media.seeking=!1,Ce.media.currentTime=e.seconds,h(Ce.media,"timeupdate")}),Ce.embed.addEvent("loadProgress",function(e){Ce.media.buffered=e.percent,h(Ce.media,"progress"),1===parseInt(e.percent)&&h(Ce.media,"canplaythrough")}),Ce.embed.addEvent("finish",function(){Ce.media.paused=!0,h(Ce.media,"ended")}),T.autoplay&&Ce.embed.api("play")})}function Z(){Ce.embed=e.SC.Widget(this),Ce.embed.bind(e.SC.Widget.Events.READY,function(){Ce.media.play=function(){Ce.embed.play(),Ce.media.paused=!1},Ce.media.pause=function(){Ce.embed.pause(),Ce.media.paused=!0},Ce.media.stop=function(){Ce.embed.seekTo(0),Ce.embed.pause(),Ce.media.paused=!0},Ce.media.paused=!0,Ce.media.currentTime=0,D(),Ce.embed.getPosition(function(e){Ce.media.currentTime=e,h(Ce.media,"timeupdate")}),Ce.embed.getDuration(function(e){Ce.media.duration=e/1e3,me()}),Ce.embed.bind(e.SC.Widget.Events.PLAY,function(){Ce.media.paused=!1,h(Ce.media,"play"),h(Ce.media,"playing")}),Ce.embed.bind(e.SC.Widget.Events.PAUSE,function(){Ce.media.paused=!0,h(Ce.media,"pause")}),Ce.embed.bind(e.SC.Widget.Events.PLAY_PROGRESS,function(e){Ce.media.seeking=!1,Ce.media.currentTime=e.currentPosition/1e3,h(Ce.media,"timeupdate")}),Ce.embed.bind(e.SC.Widget.Events.LOAD_PROGRESS,function(e){Ce.media.buffered=e.loadProgress,h(Ce.media,"progress"),1===parseInt(e.loadProgress)&&h(Ce.media,"canplaythrough")}),Ce.embed.bind(e.SC.Widget.Events.FINISH,function(){Ce.media.paused=!0,h(Ce.media,"ended")}),T.autoplay&&Ce.embed.play()})}function $(){"play"in Ce.media&&Ce.media.play()}function J(){"pause"in Ce.media&&Ce.media.pause()}function K(e){e===!0?$():e===!1?J():Ce.media[Ce.media.paused?"play":"pause"]()}function ee(e){"number"!=typeof e&&(e=T.seekTime),ne(Ce.media.currentTime-e)}function te(e){"number"!=typeof e&&(e=T.seekTime),ne(Ce.media.currentTime+e)}function ne(e){var t=0,n=Ce.media.paused,a=ae();"number"==typeof e?t=e:"object"!=typeof e||"input"!==e.type&&"change"!==e.type||(t=e.target.value/e.target.max*a),0>t?t=0:t>a&&(t=a),Ce.progress&&Ce.progress.played&&(Ce.progress.played.value=100/a*t);try{Ce.media.currentTime=t.toFixed(1)}catch(r){}if(s(T.types.embed,Ce.type)){switch(Ce.type){case"youtube":Ce.embed.seekTo(t);break;case"vimeo":Ce.embed.api("seekTo",t.toFixed(0));break;case"soundcloud":Ce.embed.seekTo(1e3*t)}n&&J(),h(Ce.media,"timeupdate"),Ce.media.seeking=!0}E("Seeking to "+Ce.media.currentTime+" seconds"),M(t)}function ae(){var e=parseInt(T.duration);return isNaN(e)?Ce.media.duration:e}function re(){m(Ce.container,T.classes.playing,!Ce.media.paused),m(Ce.container,T.classes.stopped,Ce.media.paused),be(Ce.media.paused)}function se(e){var n=C.supportsFullScreen;e&&e.type===C.fullScreenEventName?Ce.isFullscreen=C.isFullScreen(Ce.container):n?(C.isFullScreen(Ce.container)?C.cancelFullScreen():C.requestFullScreen(Ce.container),Ce.isFullscreen=C.isFullScreen(Ce.container)):(Ce.isFullscreen=!Ce.isFullscreen,Ce.isFullscreen?(y(t,"keyup",oe),t.body.style.overflow="hidden"):(b(t,"keyup",oe),t.body.style.overflow="")),m(Ce.container,T.classes.fullscreen.active,Ce.isFullscreen),Ce.isFullscreen?Ce.container.setAttribute("tabindex","-1"):Ce.container.removeAttribute("tabindex"),H(Ce.isFullscreen),k(Ce.buttons.fullscreen,Ce.isFullscreen),h(Ce.container,Ce.isFullscreen?"enterfullscreen":"exitfullscreen")}function oe(e){27===(e.which||e.charCode||e.keyCode)&&Ce.isFullscreen&&se()}function ie(e){if("boolean"!=typeof e&&(e=!Ce.media.muted),k(Ce.buttons.mute,e),Ce.media.muted=e,0===Ce.media.volume&&le(T.volume),s(T.types.embed,Ce.type)){switch(Ce.type){case"youtube":Ce.embed[Ce.media.muted?"mute":"unMute"]();break;case"vimeo":Ce.embed.api("setVolume",Ce.media.muted?0:parseFloat(T.volume/10));break;case"soundcloud":Ce.embed.setVolume(Ce.media.muted?0:parseFloat(T.volume/10))}h(Ce.media,"volumechange")}}function le(t){if("undefined"==typeof t&&(t=T.volume,T.storage.enabled&&_().supported&&(t=e.localStorage.getItem(T.storage.key),e.localStorage.removeItem("plyr-volume"))),(null===t||isNaN(t))&&(t=T.volume),t>10&&(t=10),0>t&&(t=0),Ce.media.volume=parseFloat(t/10),Ce.volume.display&&(Ce.volume.display.value=t),s(T.types.embed,Ce.type)){switch(Ce.type){case"youtube":Ce.embed.setVolume(100*Ce.media.volume);break;case"vimeo":Ce.embed.api("setVolume",Ce.media.volume);break;case"soundcloud":Ce.embed.setVolume(Ce.media.volume)}h(Ce.media,"volumechange")}Ce.media.muted&&t>0&&ie()}function ue(){var t=Ce.media.muted?0:10*Ce.media.volume;Ce.supported.full&&(Ce.volume.input&&(Ce.volume.input.value=t),Ce.volume.display&&(Ce.volume.display.value=t)),T.storage.enabled&&_().supported&&!isNaN(t)&&e.localStorage.setItem(T.storage.key,t),m(Ce.container,T.classes.muted,0===t),Ce.supported.full&&Ce.buttons.mute&&k(Ce.buttons.mute,0===t)}function ce(e){Ce.supported.full&&Ce.buttons.captions&&("boolean"!=typeof e&&(e=-1===Ce.container.className.indexOf(T.classes.captions.active)),Ce.captionsEnabled=e,k(Ce.buttons.captions,Ce.captionsEnabled),m(Ce.container,T.classes.captions.active,Ce.captionsEnabled),h(Ce.container,Ce.captionsEnabled?"captionsenabled":"captionsdisabled"))}function pe(e){var t="waiting"===e.type;clearTimeout(Ce.timers.loading),Ce.timers.loading=setTimeout(function(){m(Ce.container,T.classes.loading,t)},t?250:0)}function de(e){var t=Ce.progress.played,n=!1,a=0,r=ae();if(e)switch(e.type){case"timeupdate":case"seeking":a=w(Ce.media.currentTime,r),"timeupdate"==e.type&&Ce.buttons.seek&&(Ce.buttons.seek.value=a);break;case"playing":case"progress":t=Ce.progress.buffer.bar,n=Ce.progress.buffer.text,a=function(){var e=Ce.media.buffered;return e&&e.length?w(e.end(0),r):"number"==typeof e?100*e:0}()}t&&(t.value=a),n&&(n.innerHTML=a)}function Ae(e,t){if(t){isNaN(e)&&(e=0),Ce.secs=parseInt(e%60),Ce.mins=parseInt(e/60%60),Ce.hours=parseInt(e/60/60%60);var n=parseInt(ae()/60/60%60)>0;Ce.secs=("0"+Ce.secs).slice(-2),Ce.mins=("0"+Ce.mins).slice(-2),t.innerHTML=(n?Ce.hours+":":"")+Ce.mins+":"+Ce.secs}}function me(){if(Ce.supported.full){var e=ae()||0;!Ce.duration&&T.displayDuration&&Ce.media.paused&&Ae(e,Ce.currentTime),Ce.duration&&Ae(e,Ce.duration),ye()}}function fe(e){Ae(Ce.media.currentTime,Ce.currentTime),e&&"timeupdate"==e.type&&Ce.media.seeking||de(e)}function ye(e){if(T.tooltips.seek&&!Ce.browser.touch&&Ce.progress.container){var t=Ce.progress.container.getBoundingClientRect(),n=0,a=T.classes.tooltip+"--visible";if(e)n=100/t.width*(e.pageX-t.left);else{if(!f(Ce.progress.tooltip,a))return;n=Ce.progress.tooltip.style.left.replace("%","")}0>n?n=0:n>100&&(n=100),Ae(ae()/100*n,Ce.progress.tooltip),Ce.progress.tooltip.style.left=n+"%",e&&s(["mouseenter","mouseleave"],e.type)&&m(Ce.progress.tooltip,a,"mouseenter"===e.type)}}function be(t){if(T.hideControls&&"audio"!==Ce.type){var n=0,a=!1,r=t;"boolean"!=typeof t&&(t&&t.type?(a="enterfullscreen"===t.type,r=s(["mousemove","mouseenter","focus"],t.type),"mousemove"===t.type&&(n=2e3),"focus"===t.type&&(n=3e3)):r=!1),e.clearTimeout(Ce.timers.hover),(r||Ce.media.paused)&&(m(Ce.container,T.classes.hideControls,!1),Ce.media.paused)||r&&Ce.media.paused||(Ce.timers.hover=e.setTimeout(function(){Ce.controls.active&&!a||m(Ce.container,T.classes.hideControls,!0)},n))}}function ve(e){if("undefined"!=typeof e)return void ge(e);var t;switch(Ce.type){case"youtube":t=Ce.embed.getVideoUrl();break;case"vimeo":Ce.embed.api("getVideoUrl",function(e){t=e});break;case"soundcloud":Ce.embed.getCurrentSound(function(e){t=e.permalink_url});break;default:t=Ce.media.currentSrc}return t||""}function ge(n){if(!("undefined"!=typeof n&&"sources"in n&&n.sources.length))return void E("Invalid source format",!0);if(J(),Ce.buttons&&Ce.buttons.seek&&(Ce.buttons.seek.value=0),Ce.progress&&Ce.progress.played&&(Ce.progress.played.value=0),Te(),"youtube"===Ce.type?(Ce.embed.destroy(),e.clearInterval(Ce.timer.buffering),e.clearInterval(Ce.timer.playing)):"video"===Ce.type&&Ce.videoContainer&&u(Ce.videoContainer),Ce.embed=null,u(Ce.media),"type"in n&&(Ce.type=n.type,"video"===Ce.type)){var a=n.sources[0];"type"in a&&s(T.types.embed,a.type)&&(Ce.type=a.type)}switch(Ce.supported=F.supported(Ce.type),Ce.type){case"video":Ce.media=t.createElement("video");break;case"audio":Ce.media=t.createElement("audio");break;case"youtube":case"vimeo":case"soundcloud":Ce.media=t.createElement("div"),Ce.embedId=n.sources[0].src}c(Ce.container,Ce.media),"undefined"!=typeof n.autoplay&&(T.autoplay=n.autoplay),s(T.types.html5,Ce.type)&&(T.crossorigin&&Ce.media.setAttribute("crossorigin",""),T.autoplay&&Ce.media.setAttribute("autoplay",""),"poster"in n&&Ce.media.setAttribute("poster",n.poster),T.loop&&Ce.media.setAttribute("loop","")),Ce.container.className=Ce.originalClassName,m(Ce.container,T.classes.fullscreen.active,Ce.isFullscreen),m(Ce.container,T.classes.captions.active,Ce.captionsEnabled),Y(),s(T.types.html5,Ce.type)&&O("source",n.sources),Q(),s(T.types.html5,Ce.type)&&("tracks"in n&&O("track",n.tracks),Ce.media.load(),Ee(),me()),T.title=n.title,z(),Ce.container.plyr.media=Ce.media}function he(e){"video"===Ce.type&&Ce.media.setAttribute("poster",e)}function ke(){function n(){var e=Ce.media.paused;e?$():J();var t=Ce.buttons[e?"play":"pause"],n=Ce.buttons[e?"pause":"play"];if(n=n&&n.length>1?n[n.length-1]:n[0]){var a=f(t,T.classes.tabFocus);setTimeout(function(){n.focus(),a&&(m(t,T.classes.tabFocus,!1),m(n,T.classes.tabFocus,!0))},100)}}function a(){var e=t.activeElement;e&&e!=t.body?t.querySelector&&(e=t.querySelector(":focus")):e=null;for(var n in Ce.buttons){var a=Ce.buttons[n];if(a instanceof NodeList)for(var r=0;r<a.length;r++)m(a[r],T.classes.tabFocus,a[r]===e);else m(a,T.classes.tabFocus,a===e)}}var r="IE"==Ce.browser.name?"change":"input";y(e,"keyup",function(e){var t=e.keyCode?e.keyCode:e.which;9==t&&a()}),y(t.body,"click",function(){m(L("."+T.classes.tabFocus),T.classes.tabFocus,!1)});for(var s in Ce.buttons){var o=Ce.buttons[s];y(o,"blur",function(){m(o,"tab-focus",!1)})}v(Ce.buttons.play,"click",T.listeners.play,n),v(Ce.buttons.pause,"click",T.listeners.pause,n),v(Ce.buttons.restart,"click",T.listeners.restart,ne),v(Ce.buttons.rewind,"click",T.listeners.rewind,ee),v(Ce.buttons.forward,"click",T.listeners.forward,te),v(Ce.buttons.seek,r,T.listeners.seek,ne),v(Ce.volume.input,r,T.listeners.volume,function(){le(Ce.volume.input.value)}),v(Ce.buttons.mute,"click",T.listeners.mute,ie),v(Ce.buttons.fullscreen,"click",T.listeners.fullscreen,se),C.supportsFullScreen&&y(t,C.fullScreenEventName,se),y(Ce.buttons.captions,"click",ce),y(Ce.progress.container,"mouseenter mouseleave mousemove",ye),T.hideControls&&(y(Ce.container,"mouseenter mouseleave mousemove enterfullscreen",be),y(Ce.controls,"mouseenter mouseleave",function(e){Ce.controls.active="mouseenter"===e.type}),y(Ce.controls,"focus blur",be,!0))}function we(){if(y(Ce.media,"timeupdate seeking",fe),y(Ce.media,"timeupdate",M),y(Ce.media,"durationchange loadedmetadata",me),y(Ce.media,"ended",function(){"video"===Ce.type&&P(),re()}),y(Ce.media,"progress playing",de),y(Ce.media,"volumechange",ue),y(Ce.media,"play pause",re),y(Ce.media,"waiting canplay seeked",pe),T.clickToPlay&&"audio"!==Ce.type){var e=L("."+T.classes.videoWrapper);if(!e)return;e.style.cursor="pointer",y(e,"click",function(){Ce.media.paused?$():Ce.media.ended?(ne(),$()):J()})}y(Ce.media,T.events.join(" "),function(e){h(Ce.container,e.type,!0)})}function Te(){if(s(T.types.html5,Ce.type)){for(var e=Ce.media.querySelectorAll("source"),t=0;t<e.length;t++)u(e[t]);Ce.media.setAttribute("src","data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAAGm1kYXQAAAGzABAHAAABthBgUYI9t+8AAAMNbW9vdgAAAGxtdmhkAAAAAMXMvvrFzL76AAAD6AAAACoAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAABhpb2RzAAAAABCAgIAHAE/////+/wAAAiF0cmFrAAAAXHRraGQAAAAPxcy++sXMvvoAAAABAAAAAAAAACoAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAgAAAAIAAAAAAG9bWRpYQAAACBtZGhkAAAAAMXMvvrFzL76AAAAGAAAAAEVxwAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAABaG1pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAShzdGJsAAAAxHN0c2QAAAAAAAAAAQAAALRtcDR2AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAgACABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAAXmVzZHMAAAAAA4CAgE0AAQAEgICAPyARAAAAAAMNQAAAAAAFgICALQAAAbABAAABtYkTAAABAAAAASAAxI2IAMUARAEUQwAAAbJMYXZjNTMuMzUuMAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAAABAAAAAQAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAASAAAAAQAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYHVkdGEAAABYbWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAraWxzdAAAACOpdG9vAAAAG2RhdGEAAAABAAAAAExhdmY1My4yMS4x"), -Ce.media.load(),E("Cancelled network requests for old media")}}function xe(){if(!Ce.init)return null;if(Ce.container.setAttribute("class",A(T.selectors.container)),Ce.init=!1,u(L(T.selectors.controls.wrapper)),"youtube"===Ce.type)return void Ce.embed.destroy();"video"===Ce.type&&(u(L(T.selectors.captions)),l(Ce.videoContainer)),q(!0);var e=Ce.media.cloneNode(!0);Ce.media.parentNode.replaceChild(e,Ce.media)}function _e(){if(Ce.init)return null;if(C=x(),Ce.browser=n(),Ce.media=Ce.container.querySelectorAll("audio, video")[0],Ce.media||(Ce.media=Ce.container.querySelectorAll("div")[0]),Ce.media){Ce.originalClassName=Ce.container.className;var e=Ce.media.tagName.toLowerCase();if("div"===e?(Ce.type=Ce.media.getAttribute("data-type"),Ce.embedId=Ce.media.getAttribute("data-video-id"),Ce.media.removeAttribute("data-type"),Ce.media.removeAttribute("data-video-id")):(Ce.type=e,T.crossorigin=null!==Ce.media.getAttribute("crossorigin"),T.autoplay=T.autoplay||null!==Ce.media.getAttribute("autoplay"),T.loop=T.loop||null!==Ce.media.getAttribute("loop")),Ce.supported=F.supported(Ce.type),Y(),!Ce.supported.basic)return!1;if(E(Ce.browser.name+" "+Ce.browser.version),Q(),s(T.types.html5,Ce.type)){if(!Ce.supported.full)return void(Ce.init=!0);Ee(),z(),T.autoplay&&$()}Ce.init=!0}}function Ee(){if(!Ce.supported.full)return E("No full support for this media type ("+Ce.type+")",!0),u(L(T.selectors.controls.wrapper)),u(L(T.selectors.buttons.play)),void q(!0);var e=!B(T.selectors.controls.wrapper).length;e&&W(),G()&&(e&&ke(),we(),q(),I(),N(),le(),ue(),fe(),re(),me(),h(Ce.container,"ready"))}var Ce=this;return Ce.container=g,Ce.timers={},E(T),_e(),Ce.init?{media:Ce.media,play:$,pause:J,restart:ne,rewind:ee,forward:te,seek:ne,source:ve,poster:he,setVolume:le,togglePlay:K,toggleMute:ie,toggleCaptions:ce,toggleFullscreen:se,isFullscreen:function(){return Ce.isFullscreen||!1},support:function(e){return a(Ce,e)},destroy:xe,restore:_e}:{}}var C,F={},S={enabled:!0,debug:!1,autoplay:!1,loop:!1,seekTime:10,volume:5,duration:null,displayDuration:!0,iconPrefix:"icon",iconUrl:"",clickToPlay:!0,hideControls:!0,tooltips:{controls:!1,seek:!0},selectors:{container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{seek:'[data-plyr="seek"]',play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',forward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',fullscreen:'[data-plyr="fullscreen"]'},volume:{input:'[data-plyr="volume"]',display:".plyr__volume--display"},progress:{container:".plyr__progress",buffer:".plyr__progress--buffer",played:".plyr__progress--played"},captions:".plyr__captions",currentTime:".plyr__time--current",duration:".plyr__time--duration"},classes:{videoWrapper:"plyr__video-wrapper",embedWrapper:"plyr__video-embed",type:"plyr--{0}",stopped:"plyr--stopped",playing:"plyr--playing",muted:"plyr--muted",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",active:"plyr--fullscreen-active"},tabFocus:"tab-focus"},captions:{defaultActive:!1},fullscreen:{enabled:!0,fallback:!0,allowAudio:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","fullscreen"],i18n:{restart:"Restart",rewind:"Rewind {seektime} secs",play:"Play",pause:"Pause",forward:"Forward {seektime} secs",played:"played",buffered:"buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",toggleMute:"Toggle Mute",toggleCaptions:"Toggle Captions",toggleFullscreen:"Toggle Fullscreen",frameTitle:"Player for {title}"},types:{embed:["youtube","vimeo","soundcloud"],html5:["video","audio"]},urls:{vimeo:{api:"https://cdn.plyr.io/froogaloop/1.0.1/plyr.froogaloop.js"},youtube:{api:"https://www.youtube.com/iframe_api"},soundcloud:{api:"https://w.soundcloud.com/player/api.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,forward:null,mute:null,volume:null,captions:null,fullscreen:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","emptied"]};return F.supported=function(e){var a,r,s=n(),o="IE"===s.name&&s.version<=9,i=/iPhone|iPod/i.test(navigator.userAgent),l=!!t.createElement("audio").canPlayType,u=!!t.createElement("video").canPlayType;switch(e){case"video":a=u,r=a&&!o&&!i;break;case"audio":a=l,r=a&&!o;break;case"vimeo":case"youtube":case"soundcloud":a=!0,r=!o&&!i;break;default:a=l&&u,r=a&&!o}return{basic:a,full:r}},F.setup=function(e,n){var a=[];if("string"==typeof e?e=t.querySelectorAll(e):e instanceof HTMLElement?e=[e]:e instanceof NodeList||"string"==typeof e||("undefined"==typeof n&&"object"==typeof e&&(n=e),e=t.querySelectorAll(S.selectors.container)),!F.supported().basic||!e.length)return!1;for(var r=0;r<e.length;r++){var s=e[r];if("undefined"==typeof s.plyr){var o=T(S,n,JSON.parse(s.getAttribute("data-plyr")));if(!o.enabled)return;var i=new E(s,o);s.plyr=Object.keys(i).length?i:!1,h(s,"setup",{plyr:s.plyr})}a.push(s.plyr)}return a},F}),function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}return"function"==typeof window.CustomEvent?!1:(e.prototype=window.Event.prototype,void(window.CustomEvent=e))}();
\ No newline at end of file +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=t(e,document):"function"==typeof define&&define.amd?define(null,function(){t(e,document)}):e.plyr=t(e,document)}("undefined"!=typeof window?window:this,function(e,t){"use strict";function n(){var e,n,a,r=navigator.userAgent,s=navigator.appName,o=""+parseFloat(navigator.appVersion),i=parseInt(navigator.appVersion,10);return-1!==navigator.appVersion.indexOf("Windows NT")&&-1!==navigator.appVersion.indexOf("rv:11")?(s="IE",o="11;"):-1!==(n=r.indexOf("MSIE"))?(s="IE",o=r.substring(n+5)):-1!==(n=r.indexOf("Chrome"))?(s="Chrome",o=r.substring(n+7)):-1!==(n=r.indexOf("Safari"))?(s="Safari",o=r.substring(n+7),-1!==(n=r.indexOf("Version"))&&(o=r.substring(n+8))):-1!==(n=r.indexOf("Firefox"))?(s="Firefox",o=r.substring(n+8)):(e=r.lastIndexOf(" ")+1)<(n=r.lastIndexOf("/"))&&(s=r.substring(e,n),o=r.substring(n+1),s.toLowerCase()==s.toUpperCase()&&(s=navigator.appName)),-1!==(a=o.indexOf(";"))&&(o=o.substring(0,a)),-1!==(a=o.indexOf(" "))&&(o=o.substring(0,a)),i=parseInt(""+o,10),isNaN(i)&&(o=""+parseFloat(navigator.appVersion),i=parseInt(navigator.appVersion,10)),{name:s,version:i,ios:/(iPad|iPhone|iPod)/g.test(navigator.platform),touch:"ontouchstart"in t.documentElement}}function a(e,t){var n=e.media;if("video"==e.type)switch(t){case"video/webm":return!(!n.canPlayType||!n.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/no/,""));case"video/mp4":return!(!n.canPlayType||!n.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/,""));case"video/ogg":return!(!n.canPlayType||!n.canPlayType('video/ogg; codecs="theora"').replace(/no/,""))}else if("audio"==e.type)switch(t){case"audio/mpeg":return!(!n.canPlayType||!n.canPlayType("audio/mpeg;").replace(/no/,""));case"audio/ogg":return!(!n.canPlayType||!n.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/,""));case"audio/wav":return!(!n.canPlayType||!n.canPlayType('audio/wav; codecs="1"').replace(/no/,""))}return!1}function r(e){if(!t.querySelectorAll('script[src="'+e+'"]').length){var n=t.createElement("script");n.src=e;var a=t.getElementsByTagName("script")[0];a.parentNode.insertBefore(n,a)}}function s(e,t){return Array.prototype.indexOf&&-1!=e.indexOf(t)}function o(e,t,n){return e.replace(new RegExp(t.replace(/([.*+?\^=!:${}()|\[\]\/\\])/g,"\\$1"),"g"),n)}function i(e,t){e.length||(e=[e]);for(var n=e.length-1;n>=0;n--){var a=n>0?t.cloneNode(!0):t,r=e[n],s=r.parentNode,o=r.nextSibling;a.appendChild(r),o?s.insertBefore(a,o):s.appendChild(a)}}function l(e){for(var t=e.parentNode;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}function u(e){e&&e.parentNode.removeChild(e)}function c(e,t){e.insertBefore(t,e.firstChild)}function p(e,t){for(var n in t)e.setAttribute(n,"boolean"==typeof t[n]&&t[n]?"":t[n])}function d(e,n,a){var r=t.createElement(e);p(r,a),c(n,r)}function A(e){return e.replace(".","")}function m(e,t,n){if(e)if(e.classList)e.classList[n?"add":"remove"](t);else{var a=(" "+e.className+" ").replace(/\s+/g," ").replace(" "+t+" ","");e.className=a+(n?" "+t:"")}}function f(e,t){return e?e.classList?e.classList.contains(t):new RegExp("(\\s|^)"+t+"(\\s|$)").test(e.className):!1}function y(e,t,n,a){e&&g(e,t,n,!0,a)}function b(e,t,n,a){e&&g(e,t,n,!1,a)}function v(e,t,n,a,r){y(e,t,function(t){n&&n.apply(e,[t]),a.apply(e,[t])},r)}function g(e,t,n,a,r){var s=t.split(" ");if("boolean"!=typeof r&&(r=!1),e instanceof NodeList)for(var o=0;o<e.length;o++)e[o]instanceof Node&&g(e[o],arguments[1],arguments[2],arguments[3]);else for(var i=0;i<s.length;i++)e[a?"addEventListener":"removeEventListener"](s[i],n,r)}function h(e,t,n,a){if(e&&t){"boolean"!=typeof n&&(n=!1);var r=new CustomEvent(t,{bubbles:n,detail:a});e.dispatchEvent(r)}}function k(e,t){return e?(t="boolean"==typeof t?t:!e.getAttribute("aria-pressed"),e.setAttribute("aria-pressed",t),t):void 0}function w(e,t){return 0===e||0===t||isNaN(e)||isNaN(t)?0:(e/t*100).toFixed(2)}function T(){var e=arguments;if(e.length){if(1==e.lenth)return e[0];for(var t=Array.prototype.shift.call(e),n=e.length,a=0;n>a;a++){var r=e[a];for(var s in r)r[s]&&r[s].constructor&&r[s].constructor===Object?(t[s]=t[s]||{},T(t[s],r[s])):t[s]=r[s]}return t}}function x(){var e={supportsFullScreen:!1,isFullScreen:function(){return!1},requestFullScreen:function(){},cancelFullScreen:function(){},fullScreenEventName:"",element:null,prefix:""},n="webkit moz o ms khtml".split(" ");if("undefined"!=typeof t.cancelFullScreen)e.supportsFullScreen=!0;else for(var a=0,r=n.length;r>a;a++){if(e.prefix=n[a],"undefined"!=typeof t[e.prefix+"CancelFullScreen"]){e.supportsFullScreen=!0;break}if("undefined"!=typeof t.msExitFullscreen&&t.msFullscreenEnabled){e.prefix="ms",e.supportsFullScreen=!0;break}}return e.supportsFullScreen&&(e.fullScreenEventName="ms"==e.prefix?"MSFullscreenChange":e.prefix+"fullscreenchange",e.isFullScreen=function(e){switch("undefined"==typeof e&&(e=t.body),this.prefix){case"":return t.fullscreenElement==e;case"moz":return t.mozFullScreenElement==e;default:return t[this.prefix+"FullscreenElement"]==e}},e.requestFullScreen=function(e){return"undefined"==typeof e&&(e=t.body),""===this.prefix?e.requestFullScreen():e[this.prefix+("ms"==this.prefix?"RequestFullscreen":"RequestFullScreen")]()},e.cancelFullScreen=function(){return""===this.prefix?t.cancelFullScreen():t[this.prefix+("ms"==this.prefix?"ExitFullscreen":"CancelFullScreen")]()},e.element=function(){return""===this.prefix?t.fullscreenElement:t[this.prefix+"FullscreenElement"]}),e}function _(){var t={supported:function(){if(!("localStorage"in e))return!1;try{e.localStorage.setItem("___test","OK");var t=e.localStorage.getItem("___test");return e.localStorage.removeItem("___test"),"OK"===t}catch(n){return!1}return!1}()};return t}function E(g,T){function E(t,n){T.debug&&e.console&&console[n?"warn":"log"](t)}function S(){var e=[],t=T.iconUrl+"#"+T.iconPrefix;return s(T.controls,"play-large")&&e.push('<button type="button" data-plyr="play" class="plyr__play-large">','<svg><use xlink:href="'+t+'-play" /></svg>','<span class="plyr__sr-only">'+T.i18n.play+"</span>","</button>"),e.push('<div class="plyr__controls">'),s(T.controls,"restart")&&e.push('<button type="button" data-plyr="restart">','<svg><use xlink:href="'+t+'-restart" /></svg>','<span class="plyr__sr-only">'+T.i18n.restart+"</span>","</button>"),s(T.controls,"rewind")&&e.push('<button type="button" data-plyr="rewind">','<svg><use xlink:href="'+t+'-rewind" /></svg>','<span class="plyr__sr-only">'+T.i18n.rewind+"</span>","</button>"),s(T.controls,"play")&&e.push('<button type="button" data-plyr="play">','<svg><use xlink:href="'+t+'-play" /></svg>','<span class="plyr__sr-only">'+T.i18n.play+"</span>","</button>",'<button type="button" data-plyr="pause">','<svg><use xlink:href="'+t+'-pause" /></svg>','<span class="plyr__sr-only">'+T.i18n.pause+"</span>","</button>"),s(T.controls,"fast-forward")&&e.push('<button type="button" data-plyr="fast-forward">','<svg><use xlink:href="'+t+'-fast-forward" /></svg>','<span class="plyr__sr-only">'+T.i18n.forward+"</span>","</button>"),s(T.controls,"progress")&&(e.push('<span class="plyr__progress">','<label for="seek{id}" class="plyr__sr-only">Seek</label>','<input id="seek{id}" class="plyr__progress--seek" type="range" min="0" max="100" step="0.1" value="0" data-plyr="seek">','<progress class="plyr__progress--played" max="100" value="0" role="presentation"></progress>','<progress class="plyr__progress--buffer" max="100" value="0">',"<span>0</span>% "+T.i18n.buffered,"</progress>"),T.tooltips.seek&&e.push('<span class="plyr__tooltip">00:00</span>'),e.push("</span>")),s(T.controls,"current-time")&&e.push('<span class="plyr__time">','<span class="plyr__sr-only">'+T.i18n.currentTime+"</span>",'<span class="plyr__time--current">00:00</span>',"</span>"),s(T.controls,"duration")&&e.push('<span class="plyr__time">','<span class="plyr__sr-only">'+T.i18n.duration+"</span>",'<span class="plyr__time--duration">00:00</span>',"</span>"),s(T.controls,"mute")&&e.push('<button type="button" data-plyr="mute">','<svg class="icon--muted"><use xlink:href="'+t+'-muted" /></svg>','<svg><use xlink:href="'+t+'-volume" /></svg>','<span class="plyr__sr-only">'+T.i18n.toggleMute+"</span>","</button>"),s(T.controls,"volume")&&e.push('<span class="plyr__volume">','<label for="volume{id}" class="plyr__sr-only">'+T.i18n.volume+"</label>",'<input id="volume{id}" class="plyr__volume--input" type="range" min="0" max="10" value="5" data-plyr="volume">','<progress class="plyr__volume--display" max="10" value="0" role="presentation"></progress>',"</span>"),s(T.controls,"captions")&&e.push('<button type="button" data-plyr="captions">','<svg class="icon--captions-on"><use xlink:href="'+t+'-captions-on" /></svg>','<svg><use xlink:href="'+t+'-captions-off" /></svg>','<span class="plyr__sr-only">'+T.i18n.toggleCaptions+"</span>","</button>"),s(T.controls,"fullscreen")&&e.push('<button type="button" data-plyr="fullscreen">','<svg class="icon--exit-fullscreen"><use xlink:href="'+t+'-exit-fullscreen" /></svg>','<svg><use xlink:href="'+t+'-enter-fullscreen" /></svg>','<span class="plyr__sr-only">'+T.i18n.toggleFullscreen+"</span>","</button>"),e.push("</div>"),e.join("")}function I(){if(Fe.supported.full&&("audio"!=Fe.type||T.fullscreen.allowAudio)&&T.fullscreen.enabled){var e=C.supportsFullScreen;e||T.fullscreen.fallback&&!V()?(E((e?"Native":"Fallback")+" fullscreen enabled"),m(Fe.container,T.classes.fullscreen.enabled,!0)):E("Fullscreen not supported and fallback disabled"),k(Fe.buttons.fullscreen,!1),O()}}function N(){if("video"===Fe.type){L(T.selectors.captions)||Fe.videoContainer.insertAdjacentHTML("afterbegin",'<div class="'+A(T.selectors.captions)+'"></div>'),Fe.usingTextTracks=!1,Fe.media.textTracks&&(Fe.usingTextTracks=!0);for(var e,t="",n=Fe.media.childNodes,a=0;a<n.length;a++)"track"===n[a].nodeName.toLowerCase()&&(e=n[a].kind,"captions"!==e&&"subtitles"!==e||(t=n[a].getAttribute("src")));if(Fe.captionExists=!0,""===t?(Fe.captionExists=!1,E("No caption track found")):E("Caption track found; URI: "+t),Fe.captionExists){for(var r=Fe.media.textTracks,s=0;s<r.length;s++)r[s].mode="hidden";if(R(Fe),("IE"===Fe.browser.name&&Fe.browser.version>=10||"Firefox"===Fe.browser.name&&Fe.browser.version>=31)&&(E("Detected browser with known TextTrack issues - using manual fallback"),Fe.usingTextTracks=!1),Fe.usingTextTracks){E("TextTracks supported");for(var o=0;o<r.length;o++){var i=r[o];"captions"!==i.kind&&"subtitles"!==i.kind||y(i,"cuechange",function(){this.activeCues[0]&&"text"in this.activeCues[0]?P(this.activeCues[0].getCueAsHTML()):P()})}}else if(E("TextTracks not supported so rendering captions manually"),Fe.currentCaption="",Fe.captions=[],""!==t){var l=new XMLHttpRequest;l.onreadystatechange=function(){if(4===l.readyState)if(200===l.status){var e,t=[],n=l.responseText;t=n.split("\n\n");for(var a=0;a<t.length;a++){e=t[a],Fe.captions[a]=[];var r=e.split("\n"),s=0;-1===r[s].indexOf(":")&&(s=1),Fe.captions[a]=[r[s],r[s+1]]}Fe.captions.shift(),E("Successfully loaded the caption file via AJAX")}else E("There was a problem loading the caption file via AJAX",!0)},l.open("get",t,!0),l.send()}}else m(Fe.container,T.classes.captions.enabled)}}function P(e){var n=L(T.selectors.captions),a=t.createElement("span");n.innerHTML="","undefined"==typeof e&&(e=""),"string"==typeof e?a.innerHTML=e.trim():a.appendChild(e),n.appendChild(a);n.offsetHeight}function M(e){function t(e,t){var n=[];n=e.split(" --> ");for(var a=0;a<n.length;a++)n[a]=n[a].replace(/(\d+:\d+:\d+\.\d+).*/,"$1");return r(n[t])}function n(e){return t(e,0)}function a(e){return t(e,1)}function r(e){if(null===e||void 0===e)return 0;var t,n=[],a=[];return n=e.split(","),a=n[0].split(":"),t=Math.floor(60*a[0]*60)+Math.floor(60*a[1])+Math.floor(a[2])}if(!Fe.usingTextTracks&&"video"===Fe.type&&Fe.supported.full&&(Fe.subcount=0,e="number"==typeof e?e:Fe.media.currentTime,Fe.captions[Fe.subcount])){for(;a(Fe.captions[Fe.subcount][0])<e.toFixed(1);)if(Fe.subcount++,Fe.subcount>Fe.captions.length-1){Fe.subcount=Fe.captions.length-1;break}Fe.media.currentTime.toFixed(1)>=n(Fe.captions[Fe.subcount][0])&&Fe.media.currentTime.toFixed(1)<=a(Fe.captions[Fe.subcount][0])?(Fe.currentCaption=Fe.captions[Fe.subcount][1],P(Fe.currentCaption)):P()}}function R(){Fe.buttons.captions&&(m(Fe.container,T.classes.captions.enabled,!0),T.captions.defaultActive&&(m(Fe.container,T.classes.captions.active,!0),k(Fe.buttons.captions,!0)))}function B(e){return Fe.container.querySelectorAll(e)}function L(e){return B(e)[0]}function V(){try{return e.self!==e.top}catch(t){return!0}}function O(){function e(e){9===e.which&&Fe.isFullscreen&&(e.target!==a||e.shiftKey?e.target===n&&e.shiftKey&&(e.preventDefault(),a.focus()):(e.preventDefault(),n.focus()))}var t=B("input:not([disabled]), button:not([disabled])"),n=t[0],a=t[t.length-1];y(Fe.container,"keydown",e)}function H(e,t){if("string"==typeof t)d(e,Fe.media,{src:t});else if(t.constructor===Array)for(var n=t.length-1;n>=0;n--)d(e,Fe.media,t[n])}function W(){var e=T.html;E("Injecting custom controls"),e||(e=S()),e=o(e,"{seektime}",T.seekTime),e=o(e,"{id}",Math.floor(1e4*Math.random()));var n;if(null!==T.selectors.controls.container&&(n=T.selectors.controls.container,"string"==typeof selector&&(n=t.querySelector(n))),n instanceof HTMLElement||(n=Fe.container),n.insertAdjacentHTML("beforeend",e),T.tooltips.controls)for(var a=B([T.selectors.controls.wrapper," ",T.selectors.labels," .",T.classes.hidden].join("")),r=a.length-1;r>=0;r--){var s=a[r];m(s,T.classes.hidden,!1),m(s,T.classes.tooltip,!0)}}function G(){try{return Fe.controls=L(T.selectors.controls.wrapper),Fe.buttons={},Fe.buttons.seek=L(T.selectors.buttons.seek),Fe.buttons.play=B(T.selectors.buttons.play),Fe.buttons.pause=L(T.selectors.buttons.pause),Fe.buttons.restart=L(T.selectors.buttons.restart),Fe.buttons.rewind=L(T.selectors.buttons.rewind),Fe.buttons.forward=L(T.selectors.buttons.forward),Fe.buttons.fullscreen=L(T.selectors.buttons.fullscreen),Fe.buttons.mute=L(T.selectors.buttons.mute),Fe.buttons.captions=L(T.selectors.buttons.captions),Fe.progress={},Fe.progress.container=L(T.selectors.progress.container),Fe.progress.buffer={},Fe.progress.buffer.bar=L(T.selectors.progress.buffer),Fe.progress.buffer.text=Fe.progress.buffer.bar&&Fe.progress.buffer.bar.getElementsByTagName("span")[0],Fe.progress.played=L(T.selectors.progress.played),Fe.progress.tooltip=Fe.progress.container&&Fe.progress.container.querySelector("."+T.classes.tooltip),Fe.volume={},Fe.volume.input=L(T.selectors.volume.input),Fe.volume.display=L(T.selectors.volume.display),Fe.duration=L(T.selectors.duration),Fe.currentTime=L(T.selectors.currentTime),Fe.seekTime=B(T.selectors.seekTime),!0}catch(e){return E("It looks like there is a problem with your controls html",!0),q(!0),!1}}function Y(){m(Fe.container,T.selectors.container.replace(".",""),Fe.supported.full)}function q(e){e?Fe.media.setAttribute("controls",""):Fe.media.removeAttribute("controls")}function z(e){var t=T.i18n.play;if("undefined"!=typeof T.title&&T.title.length&&(t+=", "+T.title),Fe.supported.full&&Fe.buttons.play)for(var n=Fe.buttons.play.length-1;n>=0;n--)Fe.buttons.play[n].setAttribute("aria-label",t);e instanceof HTMLElement&&e.setAttribute("title",T.i18n.frameTitle.replace("{title}",T.title))}function Q(){if(!Fe.media)return E("No audio or video element found",!0),!1;if(Fe.supported.full&&(m(Fe.container,T.classes.type.replace("{0}",Fe.type),!0),s(T.types.embed,Fe.type)&&m(Fe.container,T.classes.type.replace("{0}","video"),!0),m(Fe.container,T.classes.stopped,T.autoplay),m(Fe.container,T.classes.isIos,Fe.browser.ios),m(Fe.container,T.classes.isTouch,Fe.browser.touch),"video"===Fe.type)){var e=t.createElement("div");e.setAttribute("class",T.classes.videoWrapper),i(Fe.media,e),Fe.videoContainer=e}s(T.types.embed,Fe.type)&&(j(),Fe.embedId=null)}function j(){for(var n=t.createElement("div"),a=Fe.embedId,s=Fe.type+"-"+Math.floor(1e4*Math.random()),o=B('[id^="'+Fe.type+'-"]'),i=o.length-1;i>=0;i--)u(o[i]);if(m(Fe.media,T.classes.videoWrapper,!0),m(Fe.media,T.classes.embedWrapper,!0),"youtube"===Fe.type)Fe.media.appendChild(n),n.setAttribute("id",s),"object"==typeof YT?U(a,n):(r(T.urls.youtube.api),e.onYouTubeReadyCallbacks=e.onYouTubeReadyCallbacks||[],e.onYouTubeReadyCallbacks.push(function(){U(a,n)}),e.onYouTubeIframeAPIReady=function(){e.onYouTubeReadyCallbacks.forEach(function(e){e()})});else if("vimeo"===Fe.type){var l=t.createElement("iframe");l.loaded=!1,y(l,"load",function(){l.loaded=!0}),p(l,{src:"https://player.vimeo.com/video/"+a+"?player_id="+s+"&api=1&badge=0&byline=0&portrait=0&title=0",id:s,webkitallowfullscreen:"",mozallowfullscreen:"",allowfullscreen:"",frameborder:0}),Fe.supported.full?(n.appendChild(l),Fe.media.appendChild(n)):Fe.media.appendChild(l),"$f"in e||r(T.urls.vimeo.api);var c=e.setInterval(function(){"$f"in e&&l.loaded&&(e.clearInterval(c),X.call(l))},50)}else if("soundcloud"===Fe.type){var d=t.createElement("iframe");d.loaded=!1,y(d,"load",function(){d.loaded=!0}),p(d,{src:"https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/"+a,id:s}),n.appendChild(d),Fe.media.appendChild(n),e.SC||r(T.urls.soundcloud.api);var A=e.setInterval(function(){e.SC&&d.loaded&&(e.clearInterval(A),Z.call(d))},50)}}function D(){Fe.container.plyr.embed=Fe.embed,Ce(),z(L("iframe"))}function U(t,n){"timer"in Fe||(Fe.timer={}),Fe.embed=new YT.Player(n.id,{videoId:t,playerVars:{autoplay:T.autoplay?1:0,controls:Fe.supported.full?0:1,rel:0,showinfo:0,iv_load_policy:3,cc_load_policy:T.captions.defaultActive?1:0,cc_lang_pref:"en",wmode:"transparent",modestbranding:1,disablekb:1,origin:"*"},events:{onError:function(e){h(Fe.container,"error",!0,{code:e.data,embed:e.target})},onReady:function(t){var n=t.target;Fe.media.play=function(){n.playVideo(),Fe.media.paused=!1},Fe.media.pause=function(){n.pauseVideo(),Fe.media.paused=!0},Fe.media.stop=function(){n.stopVideo(),Fe.media.paused=!0},Fe.media.duration=n.getDuration(),Fe.media.paused=!0,Fe.media.currentTime=n.getCurrentTime(),Fe.media.muted=n.isMuted(),T.title=n.getVideoData().title,h(Fe.media,"timeupdate"),e.clearInterval(Fe.timer.buffering),Fe.timer.buffering=e.setInterval(function(){Fe.media.buffered=n.getVideoLoadedFraction(),h(Fe.media,"progress"),1===Fe.media.buffered&&(e.clearInterval(Fe.timer.buffering),h(Fe.media,"canplaythrough"))},200),D(),me()},onStateChange:function(t){var n=t.target;switch(e.clearInterval(Fe.timer.playing),t.data){case 0:Fe.media.paused=!0,h(Fe.media,"ended");break;case 1:Fe.media.paused=!1,Fe.media.seeking=!1,h(Fe.media,"play"),h(Fe.media,"playing"),Fe.timer.playing=e.setInterval(function(){Fe.media.currentTime=n.getCurrentTime(),h(Fe.media,"timeupdate")},100);break;case 2:Fe.media.paused=!0,h(Fe.media,"pause")}}}})}function X(){Fe.embed=$f(this),Fe.embed.addEvent("ready",function(){Fe.media.play=function(){Fe.embed.api("play"),Fe.media.paused=!1},Fe.media.pause=function(){Fe.embed.api("pause"),Fe.media.paused=!0},Fe.media.stop=function(){Fe.embed.api("stop"),Fe.media.paused=!0},Fe.media.paused=!0,Fe.media.currentTime=0,D(),Fe.embed.api("getCurrentTime",function(e){Fe.media.currentTime=e,h(Fe.media,"timeupdate")}),Fe.embed.api("getDuration",function(e){Fe.media.duration=e,me()}),Fe.embed.addEvent("play",function(){Fe.media.paused=!1,h(Fe.media,"play"),h(Fe.media,"playing")}),Fe.embed.addEvent("pause",function(){Fe.media.paused=!0,h(Fe.media,"pause")}),Fe.embed.addEvent("playProgress",function(e){Fe.media.seeking=!1,Fe.media.currentTime=e.seconds,h(Fe.media,"timeupdate")}),Fe.embed.addEvent("loadProgress",function(e){Fe.media.buffered=e.percent,h(Fe.media,"progress"),1===parseInt(e.percent)&&h(Fe.media,"canplaythrough")}),Fe.embed.addEvent("finish",function(){Fe.media.paused=!0,h(Fe.media,"ended")}),T.autoplay&&Fe.embed.api("play")})}function Z(){Fe.embed=e.SC.Widget(this),Fe.embed.bind(e.SC.Widget.Events.READY,function(){Fe.media.play=function(){Fe.embed.play(),Fe.media.paused=!1},Fe.media.pause=function(){Fe.embed.pause(),Fe.media.paused=!0},Fe.media.stop=function(){Fe.embed.seekTo(0),Fe.embed.pause(),Fe.media.paused=!0},Fe.media.paused=!0,Fe.media.currentTime=0,D(),Fe.embed.getPosition(function(e){Fe.media.currentTime=e,h(Fe.media,"timeupdate")}),Fe.embed.getDuration(function(e){Fe.media.duration=e/1e3,me()}),Fe.embed.bind(e.SC.Widget.Events.PLAY,function(){Fe.media.paused=!1,h(Fe.media,"play"),h(Fe.media,"playing")}),Fe.embed.bind(e.SC.Widget.Events.PAUSE,function(){Fe.media.paused=!0,h(Fe.media,"pause")}),Fe.embed.bind(e.SC.Widget.Events.PLAY_PROGRESS,function(e){Fe.media.seeking=!1,Fe.media.currentTime=e.currentPosition/1e3,h(Fe.media,"timeupdate")}),Fe.embed.bind(e.SC.Widget.Events.LOAD_PROGRESS,function(e){Fe.media.buffered=e.loadProgress,h(Fe.media,"progress"),1===parseInt(e.loadProgress)&&h(Fe.media,"canplaythrough")}),Fe.embed.bind(e.SC.Widget.Events.FINISH,function(){Fe.media.paused=!0,h(Fe.media,"ended")}),T.autoplay&&Fe.embed.play()})}function $(){"play"in Fe.media&&Fe.media.play()}function J(){"pause"in Fe.media&&Fe.media.pause()}function K(e){e===!0?$():e===!1?J():Fe.media[Fe.media.paused?"play":"pause"]()}function ee(e){"number"!=typeof e&&(e=T.seekTime),ne(Fe.media.currentTime-e)}function te(e){"number"!=typeof e&&(e=T.seekTime),ne(Fe.media.currentTime+e)}function ne(e){var t=0,n=Fe.media.paused,a=ae();"number"==typeof e?t=e:"object"!=typeof e||"input"!==e.type&&"change"!==e.type||(t=e.target.value/e.target.max*a),0>t?t=0:t>a&&(t=a),ye(t);try{Fe.media.currentTime=t.toFixed(1)}catch(r){}if(s(T.types.embed,Fe.type)){switch(Fe.type){case"youtube":Fe.embed.seekTo(t);break;case"vimeo":Fe.embed.api("seekTo",t.toFixed(0));break;case"soundcloud":Fe.embed.seekTo(1e3*t)}n&&J(),h(Fe.media,"timeupdate"),Fe.media.seeking=!0}E("Seeking to "+Fe.media.currentTime+" seconds"),M(t)}function ae(){var e=parseInt(T.duration),t=0;return null===Fe.media.duration||isNaN(Fe.media.duration)||(t=Fe.media.duration),isNaN(e)?t:e}function re(){m(Fe.container,T.classes.playing,!Fe.media.paused),m(Fe.container,T.classes.stopped,Fe.media.paused),ve(Fe.media.paused)}function se(e){var n=C.supportsFullScreen;e&&e.type===C.fullScreenEventName?Fe.isFullscreen=C.isFullScreen(Fe.container):n?(C.isFullScreen(Fe.container)?C.cancelFullScreen():C.requestFullScreen(Fe.container),Fe.isFullscreen=C.isFullScreen(Fe.container)):(Fe.isFullscreen=!Fe.isFullscreen,Fe.isFullscreen?(y(t,"keyup",oe),t.body.style.overflow="hidden"):(b(t,"keyup",oe),t.body.style.overflow="")),m(Fe.container,T.classes.fullscreen.active,Fe.isFullscreen),Fe.isFullscreen?Fe.container.setAttribute("tabindex","-1"):Fe.container.removeAttribute("tabindex"),O(Fe.isFullscreen),k(Fe.buttons.fullscreen,Fe.isFullscreen),h(Fe.container,Fe.isFullscreen?"enterfullscreen":"exitfullscreen")}function oe(e){27===(e.which||e.charCode||e.keyCode)&&Fe.isFullscreen&&se()}function ie(e){if("boolean"!=typeof e&&(e=!Fe.media.muted),k(Fe.buttons.mute,e),Fe.media.muted=e,0===Fe.media.volume&&le(T.volume),s(T.types.embed,Fe.type)){switch(Fe.type){case"youtube":Fe.embed[Fe.media.muted?"mute":"unMute"]();break;case"vimeo":Fe.embed.api("setVolume",Fe.media.muted?0:parseFloat(T.volume/10));break;case"soundcloud":Fe.embed.setVolume(Fe.media.muted?0:parseFloat(T.volume/10))}h(Fe.media,"volumechange")}}function le(t){if("undefined"==typeof t&&(t=T.volume,T.storage.enabled&&_().supported&&(t=e.localStorage.getItem(T.storage.key),e.localStorage.removeItem("plyr-volume"))),(null===t||isNaN(t))&&(t=T.volume),t>10&&(t=10),0>t&&(t=0),Fe.media.volume=parseFloat(t/10),Fe.volume.display&&(Fe.volume.display.value=t),s(T.types.embed,Fe.type)){switch(Fe.type){case"youtube":Fe.embed.setVolume(100*Fe.media.volume);break;case"vimeo":Fe.embed.api("setVolume",Fe.media.volume);break;case"soundcloud":Fe.embed.setVolume(Fe.media.volume)}h(Fe.media,"volumechange")}Fe.media.muted&&t>0&&ie()}function ue(){var t=Fe.media.muted?0:10*Fe.media.volume;Fe.supported.full&&(Fe.volume.input&&(Fe.volume.input.value=t),Fe.volume.display&&(Fe.volume.display.value=t)),T.storage.enabled&&_().supported&&!isNaN(t)&&e.localStorage.setItem(T.storage.key,t),m(Fe.container,T.classes.muted,0===t),Fe.supported.full&&Fe.buttons.mute&&k(Fe.buttons.mute,0===t)}function ce(e){Fe.supported.full&&Fe.buttons.captions&&("boolean"!=typeof e&&(e=-1===Fe.container.className.indexOf(T.classes.captions.active)),Fe.captionsEnabled=e,k(Fe.buttons.captions,Fe.captionsEnabled),m(Fe.container,T.classes.captions.active,Fe.captionsEnabled),h(Fe.container,Fe.captionsEnabled?"captionsenabled":"captionsdisabled"))}function pe(e){var t="waiting"===e.type;clearTimeout(Fe.timers.loading),Fe.timers.loading=setTimeout(function(){m(Fe.container,T.classes.loading,t)},t?250:0)}function de(e){var t=Fe.progress.played,n=!1,a=0,r=ae();if(e)switch(e.type){case"timeupdate":case"seeking":a=w(Fe.media.currentTime,r),"timeupdate"==e.type&&Fe.buttons.seek&&(Fe.buttons.seek.value=a);break;case"playing":case"progress":t=Fe.progress.buffer.bar,n=Fe.progress.buffer.text,a=function(){var e=Fe.media.buffered;return e&&e.length?w(e.end(0),r):"number"==typeof e?100*e:0}()}t&&(t.value=a),n&&(n.innerHTML=a)}function Ae(e,t){if(t){isNaN(e)&&(e=0),Fe.secs=parseInt(e%60),Fe.mins=parseInt(e/60%60),Fe.hours=parseInt(e/60/60%60);var n=parseInt(ae()/60/60%60)>0;Fe.secs=("0"+Fe.secs).slice(-2),Fe.mins=("0"+Fe.mins).slice(-2),t.innerHTML=(n?Fe.hours+":":"")+Fe.mins+":"+Fe.secs}}function me(){if(Fe.supported.full){var e=ae()||0;!Fe.duration&&T.displayDuration&&Fe.media.paused&&Ae(e,Fe.currentTime),Fe.duration&&Ae(e,Fe.duration),be()}}function fe(e){Ae(Fe.media.currentTime,Fe.currentTime),e&&"timeupdate"==e.type&&Fe.media.seeking||de(e)}function ye(e){"number"!=typeof e&&(e=0);var t=ae(),n=w(e,t);Fe.progress&&Fe.progress.played&&(Fe.progress.played.value=n),Fe.buttons&&Fe.buttons.seek&&(Fe.buttons.seek.value=n)}function be(e){var t=ae();if(T.tooltips.seek&&Fe.progress.container&&0!==t){var n=Fe.progress.container.getBoundingClientRect(),a=0,r=T.classes.tooltip+"--visible";if(e)a=100/n.width*(e.pageX-n.left);else{if(!f(Fe.progress.tooltip,r))return;a=Fe.progress.tooltip.style.left.replace("%","")}0>a?a=0:a>100&&(a=100),Ae(t/100*a,Fe.progress.tooltip),Fe.progress.tooltip.style.left=a+"%",e&&s(["mouseenter","mouseleave"],e.type)&&m(Fe.progress.tooltip,r,"mouseenter"===e.type)}}function ve(t){if(T.hideControls&&"audio"!==Fe.type){var n=0,a=!1,r=t;"boolean"!=typeof t&&(t&&t.type?(a="enterfullscreen"===t.type,r=s(["mousemove","mouseenter","focus"],t.type),"mousemove"===t.type&&(n=2e3),"focus"===t.type&&(n=3e3)):r=!1),e.clearTimeout(Fe.timers.hover),(r||Fe.media.paused)&&(m(Fe.container,T.classes.hideControls,!1),Fe.media.paused)||r&&Fe.media.paused||(Fe.timers.hover=e.setTimeout(function(){Fe.controls.active&&!a||m(Fe.container,T.classes.hideControls,!0)},n))}}function ge(e){if("undefined"!=typeof e)return void he(e);var t;switch(Fe.type){case"youtube":t=Fe.embed.getVideoUrl();break;case"vimeo":Fe.embed.api("getVideoUrl",function(e){t=e});break;case"soundcloud":Fe.embed.getCurrentSound(function(e){t=e.permalink_url});break;default:t=Fe.media.currentSrc}return t||""}function he(n){if(!("undefined"!=typeof n&&"sources"in n&&n.sources.length))return void E("Invalid source format",!0);if(J(),ye(),xe(),"youtube"===Fe.type?(Fe.embed.destroy(),e.clearInterval(Fe.timer.buffering),e.clearInterval(Fe.timer.playing)):"video"===Fe.type&&Fe.videoContainer&&u(Fe.videoContainer),Fe.embed=null,u(Fe.media),"type"in n&&(Fe.type=n.type,"video"===Fe.type)){var a=n.sources[0];"type"in a&&s(T.types.embed,a.type)&&(Fe.type=a.type)}switch(Fe.supported=F.supported(Fe.type),Fe.type){case"video":Fe.media=t.createElement("video");break;case"audio":Fe.media=t.createElement("audio");break;case"youtube":case"vimeo":case"soundcloud":Fe.media=t.createElement("div"),Fe.embedId=n.sources[0].src}c(Fe.container,Fe.media),"undefined"!=typeof n.autoplay&&(T.autoplay=n.autoplay),s(T.types.html5,Fe.type)&&(T.crossorigin&&Fe.media.setAttribute("crossorigin",""),T.autoplay&&Fe.media.setAttribute("autoplay",""),"poster"in n&&Fe.media.setAttribute("poster",n.poster),T.loop&&Fe.media.setAttribute("loop","")),Fe.container.className=Fe.originalClassName,m(Fe.container,T.classes.fullscreen.active,Fe.isFullscreen),m(Fe.container,T.classes.captions.active,Fe.captionsEnabled),Y(),s(T.types.html5,Fe.type)&&H("source",n.sources),Q(),s(T.types.html5,Fe.type)&&("tracks"in n&&H("track",n.tracks),Fe.media.load(),Ce(),me()),T.title=n.title,z(),Fe.container.plyr.media=Fe.media}function ke(e){"video"===Fe.type&&Fe.media.setAttribute("poster",e)}function we(){function n(){var e=Fe.media.paused;e?$():J();var t=Fe.buttons[e?"play":"pause"],n=Fe.buttons[e?"pause":"play"];if(n=n&&n.length>1?n[n.length-1]:n[0]){var a=f(t,T.classes.tabFocus);setTimeout(function(){n.focus(),a&&(m(t,T.classes.tabFocus,!1),m(n,T.classes.tabFocus,!0))},100)}}function a(){var e=t.activeElement;e&&e!=t.body?t.querySelector&&(e=t.querySelector(":focus")):e=null;for(var n in Fe.buttons){var a=Fe.buttons[n];if(a instanceof NodeList)for(var r=0;r<a.length;r++)m(a[r],T.classes.tabFocus,a[r]===e);else m(a,T.classes.tabFocus,a===e)}}var r="IE"==Fe.browser.name?"change":"input";y(e,"keyup",function(e){var t=e.keyCode?e.keyCode:e.which;9==t&&a()}),y(t.body,"click",function(){m(L("."+T.classes.tabFocus),T.classes.tabFocus,!1)});for(var s in Fe.buttons){var o=Fe.buttons[s];y(o,"blur",function(){m(o,"tab-focus",!1)})}v(Fe.buttons.play,"click",T.listeners.play,n),v(Fe.buttons.pause,"click",T.listeners.pause,n),v(Fe.buttons.restart,"click",T.listeners.restart,ne),v(Fe.buttons.rewind,"click",T.listeners.rewind,ee),v(Fe.buttons.forward,"click",T.listeners.forward,te),v(Fe.buttons.seek,r,T.listeners.seek,ne),v(Fe.volume.input,r,T.listeners.volume,function(){le(Fe.volume.input.value)}),v(Fe.buttons.mute,"click",T.listeners.mute,ie),v(Fe.buttons.fullscreen,"click",T.listeners.fullscreen,se),C.supportsFullScreen&&y(t,C.fullScreenEventName,se),y(Fe.buttons.captions,"click",ce),y(Fe.progress.container,"mouseenter mouseleave mousemove",be),T.hideControls&&(y(Fe.container,"mouseenter mouseleave mousemove enterfullscreen",ve),y(Fe.controls,"mouseenter mouseleave",function(e){Fe.controls.active="mouseenter"===e.type}),y(Fe.controls,"focus blur",ve,!0))}function Te(){if(y(Fe.media,"timeupdate seeking",fe),y(Fe.media,"timeupdate",M),y(Fe.media,"durationchange loadedmetadata",me),y(Fe.media,"ended",function(){"video"===Fe.type&&P(),re(),T.showPosterOnEnd&&(ne(0),Fe.media.load())}),y(Fe.media,"progress playing",de),y(Fe.media,"volumechange",ue),y(Fe.media,"play pause",re),y(Fe.media,"waiting canplay seeked",pe),T.clickToPlay&&"audio"!==Fe.type){var e=L("."+T.classes.videoWrapper);if(!e)return;e.style.cursor="pointer",y(e,"click",function(){Fe.media.paused?$():Fe.media.ended?(ne(),$()):J()})}y(Fe.media,T.events.join(" "),function(e){h(Fe.container,e.type,!0)})}function xe(){if(s(T.types.html5,Fe.type)){for(var e=Fe.media.querySelectorAll("source"),t=0;t<e.length;t++)u(e[t]);Fe.media.setAttribute("src","data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAAGm1kYXQAAAGzABAHAAABthBgUYI9t+8AAAMNbW9vdgAAAGxtdmhkAAAAAMXMvvrFzL76AAAD6AAAACoAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAABhpb2RzAAAAABCAgIAHAE/////+/wAAAiF0cmFrAAAAXHRraGQAAAAPxcy++sXMvvoAAAABAAAAAAAAACoAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAgAAAAIAAAAAAG9bWRpYQAAACBtZGhkAAAAAMXMvvrFzL76AAAAGAAAAAEVxwAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAABaG1pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAShzdGJsAAAAxHN0c2QAAAAAAAAAAQAAALRtcDR2AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAgACABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAAXmVzZHMAAAAAA4CAgE0AAQAEgICAPyARAAAAAAMNQAAAAAAFgICALQAAAbABAAABtYkTAAABAAAAASAAxI2IAMUARAEUQwAAAbJMYXZjNTMuMzUuMAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAAABAAAAAQAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAASAAAAAQAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYHVkdGEAAABYbWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAraWxzdAAAACOpdG9vAAAAG2RhdGEAAAABAAAAAExhdmY1My4yMS4x"), +Fe.media.load(),E("Cancelled network requests for old media")}}function _e(){if(!Fe.init)return null;if(Fe.container.setAttribute("class",A(T.selectors.container)),Fe.init=!1,u(L(T.selectors.controls.wrapper)),"youtube"===Fe.type)return void Fe.embed.destroy();"video"===Fe.type&&(u(L(T.selectors.captions)),l(Fe.videoContainer)),q(!0);var e=Fe.media.cloneNode(!0);Fe.media.parentNode.replaceChild(e,Fe.media)}function Ee(){if(Fe.init)return null;if(C=x(),Fe.browser=n(),Fe.media=Fe.container.querySelectorAll("audio, video")[0],Fe.media||(Fe.media=Fe.container.querySelectorAll("div")[0]),Fe.media){Fe.originalClassName=Fe.container.className;var e=Fe.media.tagName.toLowerCase();if("div"===e?(Fe.type=Fe.media.getAttribute("data-type"),Fe.embedId=Fe.media.getAttribute("data-video-id"),Fe.media.removeAttribute("data-type"),Fe.media.removeAttribute("data-video-id")):(Fe.type=e,T.crossorigin=null!==Fe.media.getAttribute("crossorigin"),T.autoplay=T.autoplay||null!==Fe.media.getAttribute("autoplay"),T.loop=T.loop||null!==Fe.media.getAttribute("loop")),Fe.supported=F.supported(Fe.type),Y(),!Fe.supported.basic)return!1;if(E(Fe.browser.name+" "+Fe.browser.version),Q(),s(T.types.html5,Fe.type)){if(!Fe.supported.full)return void(Fe.init=!0);Ce(),z(),T.autoplay&&$()}Fe.init=!0}}function Ce(){if(!Fe.supported.full)return E("No full support for this media type ("+Fe.type+")",!0),u(L(T.selectors.controls.wrapper)),u(L(T.selectors.buttons.play)),void q(!0);var e=!B(T.selectors.controls.wrapper).length;e&&W(),G()&&(e&&we(),Te(),q(),I(),N(),le(),ue(),fe(),re(),me(),h(Fe.container,"ready"))}var Fe=this;return Fe.container=g,Fe.timers={},E(T),Ee(),Fe.init?{media:Fe.media,play:$,pause:J,restart:ne,rewind:ee,forward:te,seek:ne,source:ge,poster:ke,setVolume:le,togglePlay:K,toggleMute:ie,toggleCaptions:ce,toggleFullscreen:se,isFullscreen:function(){return Fe.isFullscreen||!1},support:function(e){return a(Fe,e)},destroy:_e,restore:Ee}:{}}var C,F={},S={enabled:!0,debug:!1,autoplay:!1,loop:!1,seekTime:10,volume:5,duration:null,displayDuration:!0,iconPrefix:"icon",iconUrl:"",clickToPlay:!0,hideControls:!0,showPosterOnEnd:!0,tooltips:{controls:!1,seek:!0},selectors:{container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{seek:'[data-plyr="seek"]',play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',forward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',fullscreen:'[data-plyr="fullscreen"]'},volume:{input:'[data-plyr="volume"]',display:".plyr__volume--display"},progress:{container:".plyr__progress",buffer:".plyr__progress--buffer",played:".plyr__progress--played"},captions:".plyr__captions",currentTime:".plyr__time--current",duration:".plyr__time--duration"},classes:{videoWrapper:"plyr__video-wrapper",embedWrapper:"plyr__video-embed",type:"plyr--{0}",stopped:"plyr--stopped",playing:"plyr--playing",muted:"plyr--muted",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",active:"plyr--fullscreen-active"},tabFocus:"tab-focus"},captions:{defaultActive:!1},fullscreen:{enabled:!0,fallback:!0,allowAudio:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","fullscreen"],i18n:{restart:"Restart",rewind:"Rewind {seektime} secs",play:"Play",pause:"Pause",forward:"Forward {seektime} secs",played:"played",buffered:"buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",toggleMute:"Toggle Mute",toggleCaptions:"Toggle Captions",toggleFullscreen:"Toggle Fullscreen",frameTitle:"Player for {title}"},types:{embed:["youtube","vimeo","soundcloud"],html5:["video","audio"]},urls:{vimeo:{api:"https://cdn.plyr.io/froogaloop/1.0.1/plyr.froogaloop.js"},youtube:{api:"https://www.youtube.com/iframe_api"},soundcloud:{api:"https://w.soundcloud.com/player/api.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,forward:null,mute:null,volume:null,captions:null,fullscreen:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","emptied"]};return F.supported=function(e){var a,r,s=n(),o="IE"===s.name&&s.version<=9,i=/iPhone|iPod/i.test(navigator.userAgent),l=!!t.createElement("audio").canPlayType,u=!!t.createElement("video").canPlayType;switch(e){case"video":a=u,r=a&&!o&&!i;break;case"audio":a=l,r=a&&!o;break;case"vimeo":case"youtube":case"soundcloud":a=!0,r=!o&&!i;break;default:a=l&&u,r=a&&!o}return{basic:a,full:r}},F.setup=function(e,n){var a=[];if("string"==typeof e?e=t.querySelectorAll(e):e instanceof HTMLElement?e=[e]:e instanceof NodeList||"string"==typeof e||("undefined"==typeof n&&"object"==typeof e&&(n=e),e=t.querySelectorAll(S.selectors.container)),!F.supported().basic||!e.length)return!1;for(var r=0;r<e.length;r++){var s=e[r];if("undefined"==typeof s.plyr){var o=T(S,n,JSON.parse(s.getAttribute("data-plyr")));if(!o.enabled)return;var i=new E(s,o);s.plyr=Object.keys(i).length?i:!1,h(s,"setup",{plyr:s.plyr})}a.push(s.plyr)}return a},F}),function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}return"function"==typeof window.CustomEvent?!1:(e.prototype=window.Event.prototype,void(window.CustomEvent=e))}();
\ No newline at end of file diff --git a/docs/index.dev.php b/docs/index.dev.php new file mode 100644 index 00000000..76299c42 --- /dev/null +++ b/docs/index.dev.php @@ -0,0 +1,129 @@ +<?php +function base64($type, $file) { + return 'data:video/' . $type . ';base64,' . base64_encode(file_get_contents($file)); +} +?> +<!doctype html> +<html lang="en"> + <head> + <meta charset="utf-8" /> + <title>Plyr - A simple HTML5 media player</title> + <meta name="description" content="A simple HTML5 media player with custom controls and WebVTT captions."> + <meta name="author" content="Sam Potts"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <!-- Styles --> + <link rel="stylesheet" href="../dist/plyr.css"> + + <!-- Docs styles --> + <link rel="stylesheet" href="dist/docs.css"> + </head> + <body> + <header> + <h1>Plyr</h1> + <p>A simple, accessible HTML5 media player by <a href="https://twitter.com/sam_potts" target="_blank">@sam_potts</a> from <a href="https://twitter.com/selz" target="_blank">@selz</a></p> + <nav> + <ul> + <li> + <a href="https://github.com/selz/plyr" target="_blank" class="btn btn--large btn--primary" data-shr-network="github"> + <svg class="icon"><use xlink:href="#icon-github"/></svg>Download on GitHub + </a> + </li> + <li> + <a href="https://twitter.com/intent/tweet?text=A+simple+HTML5+media+player+with+custom+controls+and+WebVTT+captions.&url=http%3A%2F%2Fplyr.io&via=Sam_Potts" target="_blank" class="btn btn--large btn--twitter" data-shr-network="twitter"> + <svg class="icon"><use xlink:href="#icon-twitter"/></svg>Tweet + </a> + </li> + </ul> + </nav> + </header> + + <main role="main" id="main"> + <nav class="btn__bar"> + <ul> + <li class="active"> + <button type="button" class="btn" data-source="video">Video</button> + </li> + <li> + <button type="button" class="btn" data-source="audio">Audio</button> + </li> + <li> + <button type="button" class="btn btn--youtube" data-source="youtube"><svg class="icon"><use xlink:href="#icon-youtube"/></svg>YouTube</button> + </li> + <li> + <button type="button" class="btn btn--vimeo" data-source="vimeo"><svg class="icon"><use xlink:href="#icon-vimeo"/></svg>Vimeo</button> + </li> + </ul> + </nav> + <section> + <div class="js-media-player"> + <video controls crossorigin> + <!-- Video files --> + <source type="video/mp4" src="<?php echo base64("mp4", "SampleVideo_1280x720_1mb.mp4"); ?>"> + </video> + </div> + + <ul> + <li class="plyr__cite plyr__cite--video"><small><a href="http://viewfromabluemoon.com/" target="_blank">View From A Blue Moon</a> © Brainfarm</small></li> + <li class="plyr__cite plyr__cite--audio"><small><a href="http://www.kishibashi.com/" target="_blank">Kishi Bashi – “It All Began With A Burst”</a> © Kishi Bashi</small></li> + <li class="plyr__cite plyr__cite--youtube"><small><a href="https://www.youtube.com/watch?v=bTqVqk7FSmY" target="_blank">View From A Blue Moon</a> on <span class="color--youtube"><svg class="icon"><use xlink:href="#icon-youtube"/></svg>YouTube</span></small> + <li class="plyr__cite plyr__cite--vimeo"><small><a href="https://vimeo.com/ondemand/viewfromabluemoon4k" target="_blank">View From A Blue Moon</a> on <span class="color--vimeo"><svg class="icon"><use xlink:href="#icon-vimeo"/></svg>Vimeo</span></small> + </ul> + </section> + </main> + + <!-- Load SVG defs --> + <!-- You should bundle all SVG/Icons into one file using a build tool such as gulp and svg store --> + <script> + (function() { + [ + '../dist/sprite.svg', + 'dist/docs.svg' + ] + .forEach(function(u) { + var x = new XMLHttpRequest(), + b = document.body; + + // Check for CORS support + // If you're loading from same domain, you can remove the whole if/else statement + // XHR for Chrome/Firefox/Opera/Safari/IE10+ + if ('withCredentials' in x) { + x.open('GET', u, true); + } + // XDomainRequest for IE8 & IE9 + else if (typeof XDomainRequest == 'function') { + x = new XDomainRequest(); + x.open('GET', u); + } + else { return; } + + // Inject hidden div with sprite on load + x.onload = function() { + var c = document.createElement('div'); + c.setAttribute('hidden', ''); + c.innerHTML = x.responseText; + b.insertBefore(c, b.childNodes[0]); + } + + // Timeout for IE9 + setTimeout(function () { + x.send(); + }, 0); + }); + })(); + </script> + + <!-- Plyr core script --> + <script src="../src/js/plyr.js"></script> + + <!-- Docs script --> + <script src="dist/docs.js"></script> + + <!-- Rangetouch to fix <input type="range"> on touch devices (see https://rangetouch.com) --> + <script src="https://cdn.rangetouch.com/0.0.9/rangetouch.js"></script> + + <!-- Sharing libary (https://shr.one) --> + <script src="https://cdn.shr.one/0.1.9/shr.js"></script> + <script>if(window.shr) { window.shr.setup({ count: { classname: 'btn__count' } }); }</script> + </body> +</html> diff --git a/src/js/plyr.js b/src/js/plyr.js index 957276aa..0d8884f4 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -42,6 +42,7 @@ iconUrl: '', clickToPlay: true, hideControls: true, + showPosterOnEnd: true, tooltips: { controls: false, seek: true @@ -1827,9 +1828,9 @@ // Seek to time // The input parameter can be an event or a number function _seek(input) { - var targetTime = 0, - paused = plyr.media.paused, - duration = _getDuration(); + var targetTime = 0, + paused = plyr.media.paused, + duration = _getDuration(); // Explicit position if (typeof input === 'number') { @@ -1850,10 +1851,8 @@ targetTime = duration; } - // Update progress - if (plyr.progress && plyr.progress.played) { - plyr.progress.played.value = ((100 / duration) * targetTime); - } + // Update seek range and progress + _updateSeekDisplay(targetTime); // Set the current time // Try/catch incase the media isn't set and we're calling seek() from source() and IE moans @@ -1901,10 +1900,18 @@ // Get the duration (or custom if set) function _getDuration() { // It should be a number, but parse it just incase - var duration = parseInt(config.duration); + var duration = parseInt(config.duration), + + // True duration + mediaDuration = 0; + + // Only if duration available + if(plyr.media.duration !== null && !isNaN(plyr.media.duration)) { + mediaDuration = plyr.media.duration; + } // If custom duration is funky, use regular duration - return (isNaN(duration) ? plyr.media.duration : duration); + return (isNaN(duration) ? mediaDuration : duration); } // Check playing state @@ -2271,10 +2278,33 @@ _updateProgress(event); } + // Update seek range and progress + function _updateSeekDisplay(time) { + // Default to 0 + if (typeof time !== 'number') { + time = 0; + } + + var duration = _getDuration(), + value = _getPercentage(time, duration); + + // Update progress + if (plyr.progress && plyr.progress.played) { + plyr.progress.played.value = value; + } + + // Update seek range input + if (plyr.buttons && plyr.buttons.seek) { + plyr.buttons.seek.value = value; + } + } + // Update hover tooltip for seeking function _updateSeekTooltip(event) { + var duration = _getDuration(); + // Bail if setting not true - if (!config.tooltips.seek || plyr.browser.touch || !plyr.progress.container) { + if (!config.tooltips.seek || !plyr.progress.container || duration === 0) { return; } @@ -2305,7 +2335,7 @@ } // Display the time a click would seek to - _updateTimeDisplay(((_getDuration() / 100) * percent), plyr.progress.tooltip); + _updateTimeDisplay(((duration / 100) * percent), plyr.progress.tooltip); // Set position plyr.progress.tooltip.style.left = percent + "%"; @@ -2423,13 +2453,8 @@ // Pause playback _pause(); - // Set seek input to 0 - if (plyr.buttons && plyr.buttons.seek) { - plyr.buttons.seek.value = 0; - } - if (plyr.progress && plyr.progress.played) { - plyr.progress.played.value = 0; - } + // Update seek range and progress + _updateSeekDisplay(); // Cancel current network requests _cancelRequests(); @@ -2722,6 +2747,15 @@ // Reset UI _checkPlaying(); + + // Show poster on end + if(config.showPosterOnEnd) { + // Seek to 0 + _seek(0); + + // Re-load media + plyr.media.load(); + } }); // Check for buffer progress diff --git a/src/less/plyr.less b/src/less/plyr.less index c2b5e55b..779f5eea 100644 --- a/src/less/plyr.less +++ b/src/less/plyr.less @@ -206,7 +206,6 @@ font-size: @plyr-font-size-captions-base; text-align: center; font-weight: 400; - -webkit-font-smoothing: subpixel-antialiased; span { border-radius: 2px; @@ -436,7 +435,6 @@ color: @plyr-tooltip-color; font-size: @plyr-font-size-small; line-height: 1.3; - -webkit-font-smoothing: subpixel-antialiased; transform: translate(-50%, 10px) scale(.8); transform-origin: 50% 100%; @@ -498,9 +496,9 @@ } } -.plyr__progress--buffer[value], -.plyr__progress--played[value], -.plyr__volume--display[value] { +.plyr__progress--buffer, +.plyr__progress--played, +.plyr__volume--display { position: absolute; left: 0; top: 50%; @@ -530,8 +528,8 @@ border-radius: 100px; } } -.plyr__progress--played[value], -.plyr__volume--display[value] { +.plyr__progress--played, +.plyr__volume--display { z-index: 1; color: @plyr-range-selected-bg; background: transparent; @@ -553,7 +551,7 @@ display: none; } } -.plyr__progress--buffer[value] { +.plyr__progress--buffer { &::-webkit-progress-value { transition: width .2s ease; } @@ -564,18 +562,18 @@ transition: width .2s ease; } } -.plyr--video .plyr__progress--buffer[value], -.plyr--video .plyr__volume--display[value] { +.plyr--video .plyr__progress--buffer, +.plyr--video .plyr__volume--display { background: @plyr-video-range-track-bg; } -.plyr--video .plyr__progress--buffer[value] { +.plyr--video .plyr__progress--buffer { color: @plyr-video-progress-buffered-bg; } -.plyr--audio .plyr__progress--buffer[value], -.plyr--audio .plyr__volume--display[value] { +.plyr--audio .plyr__progress--buffer, +.plyr--audio .plyr__volume--display { background: @plyr-audio-range-track-bg; } -.plyr--audio .plyr__progress--buffer[value] { +.plyr--audio .plyr__progress--buffer { color: @plyr-audio-progress-buffered-bg; } @@ -609,7 +607,6 @@ vertical-align: middle; font-size: @plyr-font-size-small; line-height: .95; - -webkit-font-smoothing: subpixel-antialiased; } // Media duration hidden on small screens .plyr__time + .plyr__time { diff --git a/src/scss/plyr.scss b/src/scss/plyr.scss index 465df084..79703bde 100644 --- a/src/scss/plyr.scss +++ b/src/scss/plyr.scss @@ -206,7 +206,6 @@ font-size: $plyr-font-size-captions-base; text-align: center; font-weight: 400; - -webkit-font-smoothing: subpixel-antialiased; span { border-radius: 2px; @@ -436,7 +435,6 @@ color: $plyr-tooltip-color; font-size: $plyr-font-size-small; line-height: 1.3; - -webkit-font-smoothing: subpixel-antialiased; transform: translate(-50%, 10px) scale(.8); transform-origin: 50% 100%; @@ -498,9 +496,9 @@ } } -.plyr__progress--buffer[value], -.plyr__progress--played[value], -.plyr__volume--display[value] { +.plyr__progress--buffer, +.plyr__progress--played, +.plyr__volume--display { position: absolute; left: 0; top: 50%; @@ -530,8 +528,8 @@ border-radius: 100px; } } -.plyr__progress--played[value], -.plyr__volume--display[value] { +.plyr__progress--played, +.plyr__volume--display { z-index: 1; color: $plyr-range-selected-bg; background: transparent; @@ -553,7 +551,7 @@ display: none; } } -.plyr__progress--buffer[value] { +.plyr__progress--buffer { &::-webkit-progress-value { transition: width .2s ease; } @@ -564,18 +562,18 @@ transition: width .2s ease; } } -.plyr--video .plyr__progress--buffer[value], -.plyr--video .plyr__volume--display[value] { +.plyr--video .plyr__progress--buffer, +.plyr--video .plyr__volume--display { background: $plyr-video-range-track-bg; } -.plyr--video .plyr__progress--buffer[value] { +.plyr--video .plyr__progress--buffer { color: $plyr-video-progress-buffered-bg; } -.plyr--audio .plyr__progress--buffer[value], -.plyr--audio .plyr__volume--display[value] { +.plyr--audio .plyr__progress--buffer, +.plyr--audio .plyr__volume--display { background: $plyr-audio-range-track-bg; } -.plyr--audio .plyr__progress--buffer[value] { +.plyr--audio .plyr__progress--buffer { color: $plyr-audio-progress-buffered-bg; } @@ -609,7 +607,6 @@ vertical-align: middle; font-size: $plyr-font-size-small; line-height: .95; - -webkit-font-smoothing: subpixel-antialiased; } // Media duration hidden on small screens .plyr__time + .plyr__time { |