diff --git a/docs/css/artplayer.css b/docs/css/artplayer.css index 78cfea26a..31a06c7d0 100644 --- a/docs/css/artplayer.css +++ b/docs/css/artplayer.css @@ -1,2 +1,2 @@ -.artplayer-video-player{position:relative;width:100%;height:100%;overflow:hidden;outline:0;font-family:Roboto,Arial,Helvetica,sans-serif;color:#eee;text-align:left;direction:ltr;font-size:14px;line-height:1.3;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:manipulation;-ms-high-contrast-adjust:none}.artplayer-video-player *{box-sizing:border-box}.artplayer-video-player .art-icon svg{fill:#fff}.artplayer-video-player .artplayer-video{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;width:100%;height:100%;background-color:#000;outline:0}.artplayer-video-player .artplayer-subtitle{position:absolute;z-index:20;bottom:40px;width:100%;padding:0 20px;text-align:center;color:#fff;text-shadow:.5px .5px .5px rgba(0,0,0,.5);font-size:20px;box-sizing:border-box}.artplayer-video-player .artplayer-layers{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;width:100%;height:100%}.artplayer-video-player .artplayer-mask{display:none;position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%;align-items:center;justify-content:center;cursor:pointer}.artplayer-video-player .artplayer-mask .art-icon-play{opacity:.8;display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50px}.artplayer-video-player .artplayer-loading{display:none;position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%;align-items:center;justify-content:center}.artplayer-video-player .artplayer-bottom{position:absolute;z-index:50;left:0;right:0;bottom:0;height:100px;padding:50px 10px 0;opacity:0;visibility:hidden;transition:all .2s ease-in-out;box-sizing:border-box;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.artplayer-video-player .artplayer-bottom .art-control-progress{position:relative;height:5px;padding:1px 0;cursor:pointer}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner{position:relative;height:100%;background:hsla(0,0%,100%,.2)}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-loaded{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:0;background:hsla(0,0%,100%,.4)}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-played{position:absolute;z-index:20;left:0;top:0;right:0;bottom:0;height:100%;width:0}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-highlight{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;height:0}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-highlight span{display:inline-block;position:absolute;left:0;top:0;width:7px;height:3px;background:#fff;border-radius:3px}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-indicator{display:none;position:absolute;z-index:40;top:-5px;left:-6.5px;width:13px;height:13px;border-radius:50%}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-indicator.show-indicator{display:block}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-tip{display:none;position:absolute;z-index:50;top:-25px;left:0;height:20px;padding:0 5px;line-height:20px;color:#fff;font-size:12px;text-align:center;background:rgba(0,0,0,.7);border-radius:3px;font-weight:700}.artplayer-video-player .artplayer-bottom .art-control-progress:hover .art-progress-indicator,.artplayer-video-player .artplayer-bottom .art-control-progress:hover .art-progress-tip{display:block}.artplayer-video-player.controls-show .artplayer-bottom,.artplayer-video-player:hover .artplayer-bottom{opacity:1;visibility:visible}.artplayer-video-player .artplayer-notice{display:none;font-size:13px;position:absolute;z-index:60;left:10px;top:10px;height:30px;line-height:30px;padding:0 10px;color:#fff;background:rgba(0,0,0,.6)}.artplayer-video-player .artplayer-contextmenu{position:absolute;z-index:70;left:0;top:0;width:200px;padding:5px 0;background:rgba(0,0,0,.8)}.artplayer-video-player .artplayer-contextmenu a{font-size:13px;display:block;color:#fff;padding:7px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;text-shadow:0 0 2px rgba(0,0,0,.5)}.artplayer-video-player .artplayer-contextmenu a:hover{background-color:hsla(0,0%,100%,.1)} +.artplayer-video-player{position:relative;width:100%;height:100%;overflow:hidden;outline:0;font-family:Roboto,Arial,Helvetica,sans-serif;color:#eee;text-align:left;direction:ltr;font-size:14px;line-height:1.3;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:manipulation;-ms-high-contrast-adjust:none}.artplayer-video-player *{box-sizing:border-box}.artplayer-video-player .art-icon svg{fill:#fff}.artplayer-video-player .artplayer-video{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;width:100%;height:100%;background-color:#000;outline:0}.artplayer-video-player .artplayer-subtitle{position:absolute;z-index:20;bottom:40px;width:100%;padding:0 20px;text-align:center;color:#fff;text-shadow:.5px .5px .5px rgba(0,0,0,.5);font-size:20px;box-sizing:border-box}.artplayer-video-player .artplayer-layers{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;width:100%;height:100%}.artplayer-video-player .artplayer-mask{display:none;position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%;align-items:center;justify-content:center;cursor:pointer}.artplayer-video-player .artplayer-mask .art-icon-play{opacity:.8;display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50px}.artplayer-video-player .artplayer-loading{display:none;position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%;align-items:center;justify-content:center}.artplayer-video-player .artplayer-bottom{position:absolute;z-index:50;left:0;right:0;bottom:0;height:100px;padding:50px 10px 0;opacity:0;visibility:hidden;transition:all .2s ease-in-out;box-sizing:border-box;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.artplayer-video-player .artplayer-bottom .art-control-progress{position:relative;height:5px;padding:1px 0;cursor:pointer}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner{position:relative;height:100%;background:hsla(0,0%,100%,.2)}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-loaded{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:0;background:hsla(0,0%,100%,.4)}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-played{position:absolute;z-index:20;left:0;top:0;right:0;bottom:0;height:100%;width:0}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-highlight{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;height:0}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-highlight span{display:inline-block;position:absolute;left:0;top:0;width:7px;height:3px;background:#fff;border-radius:3px}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-thumbnails{position:absolute;z-index:50;top:-95px;left:0;pointer-events:none;background-color:rgba(0,0,0,.7)}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-indicator{display:none;position:absolute;z-index:40;top:-5px;left:-6.5px;width:13px;height:13px;border-radius:50%}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-indicator.show-indicator{display:block}.artplayer-video-player .artplayer-bottom .art-control-progress .art-control-progress-inner .art-progress-tip{display:none;position:absolute;z-index:50;top:-25px;left:0;height:20px;padding:0 5px;line-height:20px;color:#fff;font-size:12px;text-align:center;background:rgba(0,0,0,.7);border-radius:3px;font-weight:700}.artplayer-video-player .artplayer-bottom .art-control-progress:hover .art-progress-indicator,.artplayer-video-player .artplayer-bottom .art-control-progress:hover .art-progress-tip{display:block}.artplayer-video-player.controls-show .artplayer-bottom,.artplayer-video-player:hover .artplayer-bottom{opacity:1;visibility:visible}.artplayer-video-player .artplayer-notice{display:none;font-size:13px;position:absolute;z-index:60;left:10px;top:10px;height:30px;line-height:30px;padding:0 10px;color:#fff;background:rgba(0,0,0,.6)}.artplayer-video-player .artplayer-contextmenu{position:absolute;z-index:70;left:0;top:0;width:200px;padding:5px 0;background:rgba(0,0,0,.8)}.artplayer-video-player .artplayer-contextmenu a{font-size:13px;display:block;color:#fff;padding:7px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;text-shadow:0 0 2px rgba(0,0,0,.5)}.artplayer-video-player .artplayer-contextmenu a:hover{background-color:hsla(0,0%,100%,.1)} button[data-balloon]{overflow:visible}[data-balloon]{position:relative;cursor:pointer}[data-balloon]:after{font-family:sans-serif!important;font-weight:400!important;font-style:normal!important;text-shadow:none!important;font-size:12px!important;background:rgba(17,17,17,.9);border-radius:4px;color:#fff;content:attr(data-balloon);padding:.5em 1em;white-space:nowrap}[data-balloon]:after,[data-balloon]:before{filter:alpha(opactiy=0);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-moz-opacity:0;-khtml-opacity:0;opacity:0;pointer-events:none;transition:all .18s ease-out .18s;position:absolute;z-index:10}[data-balloon]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M2.658 0h32.004c-6 0-11.627 12.002-16.002 12.002C14.285 12.002 8.594 0 2.658 0z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;content:""}[data-balloon]:hover:after,[data-balloon]:hover:before,[data-balloon][data-balloon-visible]:after,[data-balloon][data-balloon-visible]:before{filter:alpha(opactiy=100);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";-moz-opacity:1;-khtml-opacity:1;opacity:1;pointer-events:auto}[data-balloon].font-awesome:after{font-family:FontAwesome}[data-balloon][data-balloon-break]:after{white-space:pre}[data-balloon][data-balloon-blunt]:after,[data-balloon][data-balloon-blunt]:before{transition:none}[data-balloon][data-balloon-pos=up]:after{margin-bottom:11px}[data-balloon][data-balloon-pos=up]:after,[data-balloon][data-balloon-pos=up]:before{bottom:100%;left:50%;-webkit-transform:translate(-50%,10px);transform:translate(-50%,10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up]:before{margin-bottom:5px}[data-balloon][data-balloon-pos=up]:hover:after,[data-balloon][data-balloon-pos=up]:hover:before,[data-balloon][data-balloon-pos=up][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=up-left]:after{left:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-left]:after,[data-balloon][data-balloon-pos=up-left]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-left]:before{left:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-left]:hover:after,[data-balloon][data-balloon-pos=up-left]:hover:before,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=up-right]:after{right:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-right]:after,[data-balloon][data-balloon-pos=up-right]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-right]:before{right:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-right]:hover:after,[data-balloon][data-balloon-pos=up-right]:hover:before,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down]:after{margin-top:11px}[data-balloon][data-balloon-pos=down]:after,[data-balloon][data-balloon-pos=down]:before{left:50%;top:100%;-webkit-transform:translate(-50%,-10px);transform:translate(-50%,-10px)}[data-balloon][data-balloon-pos=down]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;margin-top:5px}[data-balloon][data-balloon-pos=down]:hover:after,[data-balloon][data-balloon-pos=down]:hover:before,[data-balloon][data-balloon-pos=down][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=down-left]:after{left:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;left:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:hover:after,[data-balloon][data-balloon-pos=down-left]:hover:before,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down-right]:after{right:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;right:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:hover:after,[data-balloon][data-balloon-pos=down-right]:hover:before,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=left]:after{margin-right:11px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M0 33.342V1.338c0 6 12.002 11.627 12.002 16.002C12.002 21.715 0 27.406 0 33.342z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;margin-right:5px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:hover:after,[data-balloon][data-balloon-pos=left]:hover:before,[data-balloon][data-balloon-pos=left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=left][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-pos=right]:after{left:100%;margin-left:11px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M12 2.658v32.004c0-6-12.002-11.627-12.002-16.002C-.002 14.285 12 8.594 12 2.658z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;left:100%;margin-left:5px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:hover:after,[data-balloon][data-balloon-pos=right]:hover:before,[data-balloon][data-balloon-pos=right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=right][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-length=small]:after{white-space:normal;width:80px}[data-balloon][data-balloon-length=medium]:after{white-space:normal;width:150px}[data-balloon][data-balloon-length=large]:after{white-space:normal;width:260px}[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:380px}@media screen and (max-width:768px){[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:90vw}}[data-balloon][data-balloon-length=fit]:after{white-space:normal;width:100%} \ No newline at end of file diff --git a/docs/img/thumbnails.jpg b/docs/img/thumbnails.jpg new file mode 100644 index 000000000..d1e93b727 Binary files /dev/null and b/docs/img/thumbnails.jpg differ diff --git a/docs/index.html b/docs/index.html index 056a79034..20949bf14 100644 --- a/docs/index.html +++ b/docs/index.html @@ -32,6 +32,12 @@ subtitle: { url: './subtitle/dw_trailer_low.vtt' }, + thumbnails: { + url: './img/thumbnails.jpg', + number: 100, + width: 160, + height: 90 + }, highlight: [ { time: 20, diff --git a/docs/js/artplayer.js b/docs/js/artplayer.js index c56d418c9..cc8129670 100644 --- a/docs/js/artplayer.js +++ b/docs/js/artplayer.js @@ -267,6 +267,7 @@ errorHandle(typeof option.container === 'string' || option.container instanceof Element, "'container' option require 'string' or 'Element' type, but got '".concat(_typeof_1(option.container), "'.")); errorHandle(typeof option.url === 'string', "'url' option require 'string' type, but got '".concat(_typeof_1(option.url), "'.")); errorHandle(typeof option.poster === 'string', "'poster' option require 'string' type, but got '".concat(_typeof_1(option.poster), "'.")); + errorHandle(Object.prototype.toString.call(option.thumbnails) === '[object Object]', "'thumbnails' option require 'object' type, but got '".concat(_typeof_1(option.thumbnails), "'.")); errorHandle(typeof option.volume === 'number', "'volume' option require 'number' type, but got '".concat(_typeof_1(option.volume), "'.")); errorHandle(typeof option.autoplay === 'boolean', "'autoplay' option require 'boolean' type, but got '".concat(_typeof_1(option.autoplay), "'.")); errorHandle(['none', 'metadata', 'auto'].indexOf(option.preload) > -1, "'preload' option require one of 'none\u3001metadata\u3001auto', but got '".concat(option.preload, ".")); @@ -820,11 +821,11 @@ proxy = _this$art.events.proxy, $video = _this$art.refs.$video, player = _this$art.player; - append(this.option.ref, "\n
\n
\n
\n
\n
\n
\n
\n
\n ")); + append(this.option.ref, "\n
\n
\n
\n
\n
\n
\n
\n
\n ")); this.$loaded = this.option.ref.querySelector('.art-progress-loaded'); this.$played = this.option.ref.querySelector('.art-progress-played'); this.$highlight = this.option.ref.querySelector('.art-progress-highlight'); - this.$screenshot = this.option.ref.querySelector('.art-progress-screenshot'); + this.$thumbnails = this.option.ref.querySelector('.art-progress-thumbnails'); this.$indicator = this.option.ref.querySelector('.art-progress-indicator'); this.$tip = this.option.ref.querySelector('.art-progress-tip'); this.art.on('video:canplay', function () { @@ -852,9 +853,19 @@ } else { _this.showTime(event); } + + if (_this.art.option.thumbnails.url) { + _this.$thumbnails.style.display = 'block'; + + _this.showThumbnails(event); + } }); proxy(this.option.ref, 'mouseout', function () { _this.$tip.style.display = 'none'; + + if (_this.art.option.thumbnails.url) { + _this.$thumbnails.style.display = 'none'; + } }); proxy(this.option.ref, 'click', function (event) { if (event.target !== _this.$indicator) { @@ -909,19 +920,43 @@ width = _this$getPos3.width, time = _this$getPos3.time; + var tipWidth = this.$tip.clientWidth; this.$tip.innerHTML = time; - if (width <= 20) { + if (width <= tipWidth / 2) { this.$tip.style.left = 0; - } else if (width > this.option.ref.clientWidth - 20) { - this.$tip.style.left = "".concat(this.option.ref.clientWidth - 40, "px"); + } else if (width > this.option.ref.clientWidth - tipWidth / 2) { + this.$tip.style.left = "".concat(this.option.ref.clientWidth - tipWidth, "px"); } else { - this.$tip.style.left = "".concat(width - 20, "px"); + this.$tip.style.left = "".concat(width - tipWidth / 2, "px"); } } }, { - key: "showScreenshot", - value: function showScreenshot() {// + key: "showThumbnails", + value: function showThumbnails(event) { + var _this$getPos4 = this.getPos(event), + posWidth = _this$getPos4.width; + + var _this$art$option$thum = this.art.option.thumbnails, + url = _this$art$option$thum.url, + height = _this$art$option$thum.height, + width = _this$art$option$thum.width, + number = _this$art$option$thum.number; + this.$thumbnails.style.backgroundImage = "url(".concat(url, ")"); + this.$thumbnails.style.height = "".concat(height, "px"); + this.$thumbnails.style.width = "".concat(width, "px"); + + if (posWidth <= width / 2) { + this.$thumbnails.style.left = 0; + } else if (posWidth > this.option.ref.clientWidth - width / 2) { + this.$thumbnails.style.left = "".concat(this.option.ref.clientWidth - width, "px"); + } else { + this.$thumbnails.style.left = "".concat(posWidth - width / 2, "px"); + } + + var perWidth = this.option.ref.clientWidth / number; + var index = Math.ceil(posWidth / perWidth); + this.$thumbnails.style.backgroundPosition = "-".concat(index * width, "px 0"); } }, { key: "getPos", @@ -1917,6 +1952,12 @@ container: '.artplayer', url: '', poster: '', + thumbnails: { + url: '', + number: 100, + width: 160, + height: 90 + }, volume: 0.7, autoplay: false, preload: 'auto', diff --git a/docs/js/artplayer.js.map b/docs/js/artplayer.js.map index 99e529739..1005a0a72 100644 --- a/docs/js/artplayer.js.map +++ b/docs/js/artplayer.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../src/utils/ArtPlayerError.js","../../src/utils/index.js","../../src/verification/player.js","../../src/config/mimeCodec.js","../../src/config/mse.js","../../src/config/video.js","../../src/config/index.js","../../node_modules/tiny-emitter/index.js","../../src/template.js","../../src/i18n.js","../../src/player.js","../../src/mse.js","../../src/verification/control.js","../../src/controls/danmu.js","../../src/controls/fullscreen.js","../../src/controls/pip.js","../../src/controls/playAndPause.js","../../src/controls/progress.js","../../src/controls/subtitle.js","../../src/controls/time.js","../../src/controls/volume.js","../../src/controls/setting.js","../../src/controls/index.js","../../src/contextmenu.js","../../src/danmu.js","../../src/info.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/icons/index.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/index.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","export default class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n","import ArtPlayerError from './ArtPlayerError';\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n}\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url\n .trim()\n .toLowerCase()\n .split('.')\n .pop();\n}\n\nexport function append(parent, child) {\n if (child instanceof Element) {\n parent.appendChild(child);\n } else {\n parent.insertAdjacentHTML('beforeend', child);\n }\n return parent;\n}\n\nexport function setStyle(element, styles) {\n Object.keys(styles).forEach(key => {\n element.style[key] = styles[key];\n });\n return element;\n}\n\nexport function secondToTime(second) {\n const add0 = num => num < 10 ? `0${num}` : String(num);\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n","import { errorHandle } from '../utils';\n\nexport default function validOption(option) {\n errorHandle(\n option.container,\n '\\'container\\' option is required.'\n );\n\n errorHandle(\n option.url,\n '\\'url\\' option is required.'\n );\n\n errorHandle(\n typeof option.container === 'string' || option.container instanceof Element,\n `'container' option require 'string' or 'Element' type, but got '${typeof option.container}'.`\n );\n\n errorHandle(\n typeof option.url === 'string',\n `'url' option require 'string' type, but got '${typeof option.url}'.`\n );\n\n errorHandle(\n typeof option.poster === 'string',\n `'poster' option require 'string' type, but got '${typeof option.poster}'.`\n );\n\n errorHandle(\n typeof option.volume === 'number',\n `'volume' option require 'number' type, but got '${typeof option.volume}'.`\n );\n\n errorHandle(\n typeof option.autoplay === 'boolean',\n `'autoplay' option require 'boolean' type, but got '${typeof option.autoplay}'.`\n );\n\n errorHandle(\n ['none', 'metadata', 'auto'].indexOf(option.preload) > -1,\n `'preload' option require one of 'none、metadata、auto', but got '${option.preload}.`\n );\n\n errorHandle(\n typeof option.lang === 'string',\n `'lang' option require 'string' type, but got '${typeof option.lang}'.`\n );\n\n errorHandle(\n typeof option.type === 'string',\n `'type' option require 'string' type, but got '${typeof option.type}'.`\n );\n\n errorHandle(\n typeof option.mimeCodec === 'string',\n `'mimeCodec' option require 'string' type, but got '${typeof option.mimeCodec}'.`\n );\n\n errorHandle(\n Array.isArray(option.layers),\n `'layers' option require 'array' type, but got '${typeof option.layers}'.`\n );\n\n errorHandle(\n Array.isArray(option.contextmenu),\n `'contextmenu' option require 'array' type, but got '${typeof option.contextmenu}'.`\n );\n\n errorHandle(\n typeof option.loading === 'string' || option.loading instanceof Element,\n `'loading' option require 'string' type, but got '${typeof option.loading}'.`\n );\n\n errorHandle(\n typeof option.theme === 'string',\n `'theme' option require 'string' type, but got '${typeof option.theme}'.`\n );\n\n errorHandle(\n typeof option.hotkey === 'boolean',\n `'hotkey' option require 'boolean' type, but got '${typeof option.hotkey}'.`\n );\n\n errorHandle(\n Object.prototype.toString.call(option.subtitle) === '[object Object]',\n `'subtitle' option require 'object' type, but got '${typeof option.subtitle}'.`\n );\n\n errorHandle(\n Array.isArray(option.controls),\n `'controls' option require 'array' type, but got '${typeof option.controls}'.`\n );\n\n errorHandle(\n Array.isArray(option.highlight),\n `'highlight' option require 'array' type, but got '${typeof option.highlight}'.`\n );\n}\n","export default {\n mp4: 'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"',\n webm: 'video/webm; codecs=\"vorbis, vp8\"',\n ts: 'video/mp2t; codecs=\"avc1.42E01E, mp4a.40.2\"'\n};\n","export default {\n mediaSource: {\n propertys: [\n 'activeSourceBuffers',\n 'duration',\n 'readyState',\n 'sourceBuffers'\n ],\n methods: [\n 'addSourceBuffer',\n 'endOfStream',\n 'removeSourceBuffer',\n 'clearLiveSeekableRange',\n 'setLiveSeekableRange'\n ],\n events: [\n 'sourceclose',\n 'sourceended',\n 'sourceopen'\n ]\n },\n sourceBuffer: {\n propertys: [\n 'mode',\n 'updating',\n 'buffered',\n 'timestampOffset',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'appendWindowStart',\n 'appendWindowEnd',\n 'trackDefaults'\n ],\n methods: [\n 'appendBuffer',\n 'appendStream',\n 'abort',\n 'remove'\n ],\n events: [\n 'abort',\n 'error',\n 'update',\n 'updateend',\n 'updatestart'\n ]\n },\n sourceBufferList: {\n propertys: [\n 'length'\n ],\n events: [\n 'addsourcebuffer',\n 'removesourcebuffer'\n ]\n }\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume'\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ]\n};\n","import mimeCodec from './mimeCodec';\nimport mse from './mse';\nimport video from './video';\n\nexport default {\n mimeCodec,\n mse,\n video\n};\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","export default class Template {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs } = this.art;\n refs.$container.innerHTML = `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n `;\n refs.$player = refs.$container.querySelector('.artplayer-video-player');\n refs.$video = refs.$container.querySelector('.artplayer-video');\n refs.$subtitle = refs.$container.querySelector('.artplayer-subtitle');\n refs.$bottom = refs.$container.querySelector('.artplayer-bottom');\n refs.$progress = refs.$container.querySelector('.artplayer-progress');\n refs.$controls = refs.$container.querySelector('.artplayer-controls');\n refs.$controlsLeft = refs.$container.querySelector('.artplayer-controls-left');\n refs.$controlsRight = refs.$container.querySelector('.artplayer-controls-right');\n refs.$layers = refs.$container.querySelector('.artplayer-layers');\n refs.$loading = refs.$container.querySelector('.artplayer-loading');\n refs.$notice = refs.$container.querySelector('.artplayer-notice');\n refs.$mask = refs.$container.querySelector('.artplayer-mask');\n }\n}\n","const i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Fast forward 10 seconds': '快进10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量减少10%'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Fast forward 10 seconds': '快進10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量減少10%'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.language = i18nMap[option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n}\n","import { clamp } from './utils';\nimport config from './config';\n\nexport default class Player {\n constructor(art) {\n this.art = art;\n this.init();\n this.eventBind();\n }\n\n init() {\n const { option } = this.art;\n const { $video } = this.art.refs;\n $video.controls = false;\n $video.poster = option.poster;\n $video.volume = clamp(option.volume, 0, 1);\n $video.autoplay = option.autoplay;\n $video.preload = option.preload;\n $video.src = option.url;\n }\n\n eventBind() {\n const { events: { proxy }, refs: { $video } } = this.art;\n\n config.video.events.forEach(eventName => {\n proxy($video, eventName, event => {\n this.art.emit(`video:${event.type}`, event);\n });\n });\n\n this.art.on('video:loadstart', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:loadeddata', () => {\n this.art.loading.hide();\n });\n\n this.art.on('video:waiting', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:seeking', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:canplay', () => {\n this.art.controls.show();\n this.art.mask.show();\n this.art.loading.hide();\n if (this.art.option.autoplay) {\n const promise = this.play();\n if (promise !== undefined) {\n promise.then().catch(err => {\n console.warn(err);\n });\n }\n }\n });\n\n this.art.on('video:playing', () => {\n this.art.isPlaying = true;\n this.art.controls.hide();\n this.art.mask.hide();\n });\n\n this.art.on('video:pause', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:ended', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:error', () => {\n this.art.isPlaying = false;\n });\n }\n\n play() {\n const { $video } = this.art.refs;\n const promise = $video.play();\n this.art.emit('play', $video);\n return promise;\n }\n\n pause() {\n const { $video } = this.art.refs;\n $video.pause();\n this.art.emit('pause', $video);\n }\n\n toggle() {\n if (this.art.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n seek(time) {\n const { $video } = this.art.refs;\n let newTime = Math.max(time, 0);\n if ($video.duration) {\n newTime = Math.min(newTime, $video.duration);\n }\n\n $video.currentTime = newTime;\n this.art.emit('seek', newTime);\n }\n\n volume(percentage) {\n const { $video } = this.art.refs;\n if (percentage) {\n $video.volume = clamp(percentage, 0, 1);\n }\n this.art.emit('volume', $video.volume);\n }\n\n switchVolumeIcon() {\n //\n }\n\n switchVideo() {\n //\n }\n\n switchQuality() {\n //\n }\n\n resize() {\n //\n }\n\n speed(rate) {\n const { $video } = this.art.refs;\n $video.playbackRate = rate;\n this.art.emit('speed', rate);\n }\n}\n","import ArtPlayerError from './utils/ArtPlayerError';\nimport { errorHandle, getExt } from './utils';\nimport config from './config';\n\nexport default class Mse {\n constructor(art) {\n this.art = art;\n this.setMimeCodec();\n this.init();\n this.eventBind();\n this.eventStart();\n this.repeat = 0;\n this.maxRepeat = 5;\n }\n\n setMimeCodec() {\n const { option } = this.art;\n if (!option.type) {\n const type = getExt(option.url);\n errorHandle(\n Object.keys(config.mimeCodec).includes(type),\n `Can't find video's type '${type}' from '${option.url}'`\n );\n option.type = type;\n }\n\n if (!option.mimeCodec) {\n const mimeCodec = config.mimeCodec[option.type];\n errorHandle(\n mimeCodec,\n `Can't find video's mimeCodec from ${option.type}`\n );\n option.mimeCodec = mimeCodec;\n }\n }\n\n init() {\n const {\n option,\n refs: { $video }\n } = this.art;\n errorHandle(\n MediaSource.isTypeSupported(option.mimeCodec),\n `Unsupported MIME type or codec: ${option.mimeCodec}`\n );\n this.mediaSource = new MediaSource();\n $video.src = URL.createObjectURL(this.mediaSource);\n this.art.events.destroyEvents.push(() => {\n URL.revokeObjectURL($video.src);\n });\n }\n\n eventBind() {\n const { proxy } = this.art.events;\n const { mediaSource, sourceBufferList } = config.mse;\n\n mediaSource.events.forEach(eventName => {\n proxy(this.mediaSource, eventName, event => {\n this.art.emit(`mediaSource:${event.type}`, event);\n });\n });\n\n sourceBufferList.events.forEach(eventName => {\n proxy(this.mediaSource.sourceBuffers, eventName, event => {\n this.art.emit(`sourceBuffers:${event.type}`, event);\n });\n proxy(this.mediaSource.activeSourceBuffers, eventName, event => {\n this.art.emit(`activeSourceBuffers:${event.type}`, event);\n });\n });\n }\n\n eventStart() {\n const { option } = this.art;\n const { proxy } = this.art.events;\n const { sourceBuffer } = config.mse;\n\n this.art.on('mediaSource:sourceopen', () => {\n this.sourceBuffer = this.mediaSource.addSourceBuffer(option.mimeCodec);\n sourceBuffer.events.forEach(eventName => {\n proxy(this.sourceBuffer, eventName, event => {\n this.art.emit(`sourceBuffer:${event.type}`, event);\n });\n });\n });\n\n this.art.on('sourceBuffer:updateend', () => {\n this.mediaSource.endOfStream();\n });\n\n this.fetchUrl();\n }\n\n fetchUrl() {\n const { option: { url }, notice, i18n, loading } = this.art;\n this.art.emit('player:fetch:start', url);\n this.request(url)\n .then(response => {\n this.sourceBuffer.appendBuffer(response);\n this.art.emit('player:fetch:success', url);\n })\n .catch(err => {\n if (this.repeat++ < this.maxRepeat) {\n this.fetchUrl();\n } else {\n notice.show(i18n.get('Video load failed'));\n console.warn(err);\n loading.hide();\n this.art.emit('player:fetch:failure', url);\n }\n });\n }\n\n request(url) {\n return fetch(url)\n .then(response => response.arrayBuffer())\n .catch(err => {\n throw new ArtPlayerError(err.message);\n });\n }\n}\n","import { errorHandle } from '../utils';\n\nexport default function validControl(option) {\n errorHandle(\n typeof option.control === 'function',\n `'control' option require 'function' type, but got '${typeof option.control}'.`\n );\n\n errorHandle(\n typeof option.disable === 'boolean',\n `'disable' option require 'boolean' type, but got '${typeof option.disable}'.`\n );\n\n errorHandle(\n ['top', 'left', 'right'].indexOf(option.position) > -1,\n `'position' option require one of 'top、left、right', but got '${option.position}'.`\n );\n\n errorHandle(\n typeof option.index === 'number',\n `'index' option require 'number' type, but got '${typeof option.index}'.`\n );\n}\n","export default class Danmu {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Fullscreen {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Pip {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class PlayAndPause {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","import { append, secondToTime, clamp } from '../utils';\n\nexport default class Progress {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n this.isDroging = false;\n this.getLoaded = this.getLoaded.bind(this);\n this.getPlayed = this.getPlayed.bind(this);\n this.getPos = this.getPos.bind(this);\n this.set = this.set.bind(this);\n this.init();\n }\n\n init() {\n const {\n option: { highlight, theme },\n events: { proxy },\n refs: { $video },\n player\n } = this.art;\n\n append(\n this.option.ref,\n `\n
\n
\n
\n
\n
\n
\n
\n
\n `\n );\n\n this.$loaded = this.option.ref.querySelector('.art-progress-loaded');\n this.$played = this.option.ref.querySelector('.art-progress-played');\n this.$highlight = this.option.ref.querySelector('.art-progress-highlight');\n this.$screenshot = this.option.ref.querySelector(\n '.art-progress-screenshot'\n );\n this.$indicator = this.option.ref.querySelector('.art-progress-indicator');\n this.$tip = this.option.ref.querySelector('.art-progress-tip');\n\n this.art.on('video:canplay', () => {\n this.set('loaded', this.getLoaded());\n highlight.forEach(item => {\n const left = Number(item.time) / $video.duration;\n append(this.$highlight, `\n \n `\n );\n });\n });\n\n this.art.on('video:progress', () => {\n this.set('loaded', this.getLoaded());\n });\n\n this.art.on('video:timeupdate', () => {\n this.set('played', this.getPlayed());\n });\n\n this.art.on('video:ended', () => {\n this.set('played', 1);\n });\n\n proxy(this.option.ref, 'mousemove', event => {\n this.$tip.style.display = 'block';\n if (event.path.indexOf(this.$highlight) > -1) {\n this.showHighlight(event);\n } else {\n this.showTime(event);\n }\n });\n\n proxy(this.option.ref, 'mouseout', () => {\n this.$tip.style.display = 'none';\n });\n\n proxy(this.option.ref, 'click', event => {\n if (event.target !== this.$indicator) {\n const { second, percentage } = this.getPos(event);\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(this.$indicator, 'mousedown', () => {\n this.isDroging = true;\n });\n\n proxy(document, 'mousemove', event => {\n if (this.isDroging) {\n const { second, percentage } = this.getPos(event);\n this.$indicator.classList.add('show-indicator');\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (this.isDroging) {\n this.isDroging = false;\n this.$indicator.classList.remove('show-indicator');\n }\n });\n }\n\n showHighlight(event) {\n const { $video } = this.art.refs;\n const { text, time } = event.target.dataset;\n this.$tip.innerHTML = text;\n const left =\n Number(time) / $video.duration * this.option.ref.clientWidth +\n event.target.clientWidth / 2 -\n this.$tip.clientWidth / 2;\n this.$tip.style.left = `${left}px`;\n }\n\n showTime(event) {\n const { width, time } = this.getPos(event);\n this.$tip.innerHTML = time;\n if (width <= 20) {\n this.$tip.style.left = 0;\n } else if (width > this.option.ref.clientWidth - 20) {\n this.$tip.style.left = `${this.option.ref.clientWidth - 40}px`;\n } else {\n this.$tip.style.left = `${width - 20}px`;\n }\n }\n\n showScreenshot() {\n //\n }\n\n getPos(event) {\n const { $video } = this.art.refs;\n const { left } = this.option.ref.getBoundingClientRect();\n const width = clamp(event.x - left, 0, this.option.ref.clientWidth);\n const second = width / this.option.ref.clientWidth * $video.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / this.option.ref.clientWidth, 0, 1);\n return { second, time, width, percentage };\n }\n\n getPlayed() {\n const { $video } = this.art.refs;\n return $video.currentTime / $video.duration;\n }\n\n getLoaded() {\n const { $video } = this.art.refs;\n return $video.buffered.length\n ? $video.buffered.end($video.buffered.length - 1) / $video.duration\n : 0;\n }\n\n set(type, percentage) {\n this[`$${type}`].style.width = `${percentage * 100}%`;\n if (type === 'played') {\n this.$indicator.style.left = `calc(${percentage * 100}% - 6.5px)`;\n }\n }\n}\n","export default class Subtitle {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Time {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Volume {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Setting {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","import validControl from '../verification/control';\nimport Danmu from './danmu';\nimport Fullscreen from './fullscreen';\nimport Pip from './pip';\nimport PlayAndPause from './playAndPause';\nimport Progress from './progress';\nimport Subtitle from './subtitle';\nimport Time from './time';\nimport Volume from './volume';\nimport Setting from './setting';\n\nlet id = 0;\nexport default class Controls {\n constructor(art) {\n this.art = art;\n this.$map = {\n top: [],\n left: [],\n right: []\n };\n this.init();\n this.mount();\n }\n\n init() {\n this.add({\n control: Progress,\n disable: false,\n position: 'top',\n index: 10\n });\n\n this.add({\n control: PlayAndPause,\n disable: false,\n position: 'left',\n index: 10\n });\n\n this.add({\n control: Volume,\n disable: false,\n tooltip: 'Volume',\n position: 'left',\n index: 20\n });\n\n this.add({\n control: Time,\n disable: false,\n tooltip: 'Volume',\n position: 'left',\n index: 30\n });\n\n this.add({\n control: Danmu,\n disable: false,\n tooltip: 'Danmu',\n position: 'right',\n index: 10\n });\n\n this.add({\n control: Subtitle,\n disable: false,\n tooltip: 'Subtitle',\n position: 'right',\n index: 20\n });\n\n this.add({\n control: Setting,\n disable: false,\n tooltip: 'Setting',\n position: 'right',\n index: 30\n });\n\n this.add({\n control: Pip,\n disable: false,\n tooltip: 'Pip',\n position: 'right',\n index: 40\n });\n\n this.add({\n control: Fullscreen,\n disable: false,\n tooltip: 'Fullscreen',\n position: 'right',\n index: 50\n });\n\n this.art.option.controls.forEach(item => {\n this.add(item);\n });\n }\n\n add(option) {\n validControl(option);\n if (!option.disable) {\n id++;\n const name = option.control.name.toLowerCase() || `control${id}`;\n const $control = document.createElement('div');\n $control.setAttribute('class', `art-control art-control-${name}`);\n $control.setAttribute('data-control-index', String(option.index) || id);\n option.ref = $control;\n this.commonMethod(option);\n this[name] = new option.control(this.art, option);\n this.$map[option.position].push($control);\n }\n }\n\n mount() {\n const { $progress, $controlsLeft, $controlsRight } = this.art.refs;\n Object.keys(this.$map).forEach(key => {\n this.$map[key]\n .sort(\n (a, b) =>\n Number(a.dataset.controlIndex) - Number(b.dataset.controlIndex)\n )\n .forEach($control => {\n switch (key) {\n case 'top':\n $progress.appendChild($control);\n break;\n case 'left':\n $controlsLeft.appendChild($control);\n break;\n case 'right':\n $controlsRight.appendChild($control);\n break;\n default:\n break;\n }\n });\n });\n }\n\n commonMethod(option) {\n Object.defineProperty(option.control.prototype, 'hide', {\n value: () => {\n option.ref.style.display = 'none';\n this.art.emit('control:hide', option.ref);\n }\n });\n\n Object.defineProperty(option.control.prototype, 'show', {\n value: () => {\n option.ref.style.display =\n option.position === 'top' ? 'block' : 'inline-block';\n this.art.emit('control:show', option.ref);\n }\n });\n\n Object.defineProperty(option.control.prototype, 'addMenu', {\n value: menus => {\n console.log(menus);\n }\n });\n }\n\n show() {\n const { $player } = this.art.refs;\n $player.classList.add('controls-show');\n }\n\n hide() {\n const { $player } = this.art.refs;\n $player.classList.remove('controls-show');\n }\n}\n","import { append } from './utils';\n\nexport default class Contextmenu {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n option,\n i18n,\n refs,\n events: { proxy }\n } = this.art;\n\n option.contextmenu.push(\n {\n text: i18n.get('Video info'),\n click: () => {\n this.art.info.show();\n }\n },\n {\n text: i18n.get('About author'),\n link: 'https://github.com/zhw2590582'\n },\n {\n text: 'ArtPlayer __VERSION__',\n link: 'https://github.com/zhw2590582/artplayer'\n },\n {\n text: i18n.get('Close'),\n click: () => {\n this.hide();\n }\n }\n );\n\n proxy(refs.$player, 'contextmenu', event => {\n event.preventDefault();\n this.art.isFocus = true;\n if (!refs.$contextmenu) {\n this.creatMenu();\n }\n this.show();\n this.setPos(event);\n });\n\n proxy(refs.$player, 'click', event => {\n if (refs.$contextmenu && !event.path.includes(refs.$contextmenu)) {\n this.hide();\n }\n });\n }\n\n creatMenu() {\n const {\n option,\n refs,\n events: { proxy }\n } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu.forEach(item => {\n const $menu = document.createElement('a');\n $menu.innerHTML = item.text;\n $menu.classList.add('art-menu');\n if (item.link) {\n $menu.target = '_blank';\n $menu.href = item.link;\n } else if (item.click) {\n $menu.href = '#';\n proxy($menu, 'click', event => {\n event.preventDefault();\n item.click(this.art, event);\n this.hide();\n });\n }\n append(refs.$contextmenu, $menu);\n });\n append(refs.$player, refs.$contextmenu);\n }\n\n setPos(event) {\n const { refs } = this.art;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = refs.$player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = refs.$contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n refs.$contextmenu.style.left = `${menuLeft}px`;\n refs.$contextmenu.style.top = `${menuTop}px`;\n }\n\n hide() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'none';\n this.art.emit('contextmenu:hide', $contextmenu);\n }\n }\n\n show() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'block';\n this.art.emit('contextmenu:show', $contextmenu);\n }\n }\n}\n","export default class Danmu {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Info {\n constructor(art) {\n this.art = art;\n }\n\n show() {\n console.log('info show');\n }\n\n hide() {\n console.log('info hide');\n }\n}\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","import { errorHandle, getExt, setStyle } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n if (this.art.option.subtitle) {\n errorHandle(\n getExt(this.art.option.subtitle.url) === 'vtt',\n `'url' option require 'vtt' format, but got '${getExt(this.art.option.subtitle.url)}'.`\n );\n this.init();\n }\n }\n\n init() {\n const {\n events: { proxy },\n option: { subtitle },\n refs: { $video, $subtitle }\n } = this.art;\n\n setStyle($subtitle, subtitle.style || {});\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $track.src = subtitle.url;\n $video.appendChild($track);\n this.art.refs.$track = $track;\n\n if ($video.textTracks && $video.textTracks[0]) {\n const [track] = $video.textTracks;\n proxy(track, 'cuechange', () => {\n const [cue] = track.activeCues;\n $subtitle.innerHTML = '';\n if (cue) {\n const template = document.createElement('div');\n template.appendChild(cue.getCueAsHTML());\n $subtitle.innerHTML = template.innerHTML\n .split(/\\r?\\n/)\n .map(item => `

${item}

`)\n .join('');\n }\n this.art.emit('subtitle:update', $subtitle);\n });\n }\n }\n\n show() {\n const { $subtitle } = this.art.refs;\n $subtitle.style.display = 'block';\n this.art.emit('subtitle:show', $subtitle);\n }\n\n hide() {\n const { $subtitle } = this.art.refs;\n $subtitle.style.display = 'none';\n this.art.emit('subtitle:hide', $subtitle);\n }\n\n switch(url) {\n const { $track } = this.art.refs;\n errorHandle(\n getExt(url) === 'vtt',\n `'url' option require 'vtt' format, but got '${getExt(url)}'.`\n );\n errorHandle(\n $track,\n 'You need to initialize the subtitle option first.'\n );\n $track.src = url;\n this.art.emit('subtitle:switch', url);\n }\n}\n","export default class Events {\n constructor(art) {\n this.art = art;\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n name.forEach(item => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n\n const destroy = () => {\n target.removeEventListener(name, callback, option);\n };\n\n this.destroyEvents.push(destroy);\n\n return destroy;\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.art = art;\n if (this.art.option.hotkey) {\n this.init();\n }\n }\n\n init() {\n const {\n player,\n notice,\n i18n,\n refs: { $player },\n events: { proxy }\n } = this.art;\n\n proxy(document, 'click', event => {\n this.art.isFocus = event.path.indexOf($player) > -1;\n });\n\n proxy(window, 'keydown', event => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true'\n ) {\n let percentage;\n switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n notice.show(i18n.get('Fast forward 10 seconds'), true);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n notice.show(i18n.get('Rewind 10 seconds'), true);\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% increase in volume'), true);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% reduction in volume'), true);\n break;\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n default:\n break;\n }\n }\n }\n });\n }\n}\n","import { append, setStyle } from './utils';\n\nlet id = 0;\nexport default class Layers {\n constructor(art) {\n this.art = art;\n this.add = this.add.bind(this);\n this.art.option.layers.forEach(this.add);\n this.init();\n }\n\n init() {\n const { refs, player, events: { proxy } } = this.art;\n proxy(refs.$layers, 'click', event => {\n if (event.path[0] === refs.$layers) {\n player.pause();\n }\n });\n }\n\n add(option, callback) {\n const { refs } = this.art;\n id++;\n\n const $layer = document.createElement('div');\n $layer.setAttribute('data-art-layer-id', id);\n $layer.setAttribute('class', `art-layer art-layer-${option.name || id}`);\n $layer.style.zIndex = option.index || id;\n append($layer, option.html);\n setStyle($layer, option.style || {});\n refs.$layers.appendChild($layer);\n this.art.emit('layers:add', $layer);\n callback && callback($layer);\n }\n\n show() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'block';\n this.art.emit('layers:show', $layers);\n }\n\n hide() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'none';\n this.art.emit('layers:hide', $layers);\n }\n}\n","import loading from './loading.svg';\nimport play from './play.svg';\n\nconst icons = {\n loading,\n play\n};\n\nfunction creatDomFromSvg(map) {\n const result = {};\n Object.keys(map).forEach(name => {\n const tmp = document.createElement('div');\n tmp.innerHTML = `${map[name]}`;\n [result[name]] = tmp.childNodes;\n });\n return result;\n}\n\nexport default creatDomFromSvg(icons);\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Loading {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs: { $loading } } = this.art;\n append($loading, option.loading || icons.loading);\n }\n\n hide() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'none';\n this.art.emit('loading:hide', $loading);\n }\n\n show() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'flex';\n this.art.emit('loading:show', $loading);\n }\n}\n","export default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide) {\n const { $notice } = this.art.refs;\n $notice.style.display = 'block';\n $notice.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, 1000);\n }\n this.art.emit('notice:show', $notice);\n }\n\n hide() {\n const { $notice } = this.art.refs;\n $notice.style.display = 'none';\n this.art.emit('notice:hide', $notice);\n }\n}\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n player,\n option,\n refs,\n events: { proxy }\n } = this.art;\n\n const playClone = icons.play.cloneNode(true);\n playClone.style.backgroundColor = option.theme;\n append(refs.$mask, playClone);\n\n proxy(refs.$mask, 'click', () => {\n player.play();\n this.hide();\n });\n }\n\n show() {\n const { $mask } = this.art.refs;\n $mask.style.display = 'flex';\n this.art.emit('mask:show', $mask);\n }\n\n hide() {\n const { $mask } = this.art.refs;\n $mask.style.display = 'none';\n this.art.emit('mask:show', $mask);\n }\n}\n","import './style/index.scss';\nimport 'balloon-css/balloon.min.css';\nimport validOption from './verification/player';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Mse from './mse';\nimport Controls from './controls';\nimport Contextmenu from './contextmenu';\nimport Danmu from './danmu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layers from './layers';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\n\nlet id = 0;\nexport const instances = [];\n\nclass Artplayer extends Emitter {\n constructor(option) {\n super();\n this.emit('init:start');\n this.option = Object.assign({}, Artplayer.DEFAULTS, option);\n validOption(this.option);\n this.init();\n this.emit('init:end');\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get DEFAULTS() {\n return {\n container: '.artplayer',\n url: '',\n poster: '',\n volume: 0.7,\n autoplay: false,\n preload: 'auto',\n type: '',\n mimeCodec: '',\n layers: [],\n contextmenu: [],\n loading: '',\n theme: '#f00',\n hotkey: true,\n subtitle: {\n url: '',\n style: {}\n },\n controls: [],\n highlight: [],\n lang: navigator.language.toLowerCase()\n };\n }\n\n static use(plugin) {\n const installedPlugins = this.plugins || (this.plugins = []);\n if (installedPlugins.indexOf(plugin) > -1) {\n return this;\n }\n\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this;\n }\n\n init() {\n this.isFocus = false;\n this.isPlaying = false;\n this.refs = {};\n\n if (this.option.container instanceof Element) {\n this.refs.$container = this.option.container;\n } else {\n this.refs.$container = document.querySelector(this.option.container);\n }\n\n this.template = new Template(this);\n this.i18n = new I18n(this);\n this.events = new Events(this);\n this.player = new Player(this);\n // this.mse = new Mse(this);\n this.layers = new Layers(this);\n this.controls = new Controls(this);\n this.contextmenu = new Contextmenu(this);\n this.danmu = new Danmu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.notice = new Notice(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n\n this.id = id++;\n instances.push(this);\n return this;\n }\n\n destroy() {\n this.events.destroy();\n this.refs.$container.innerHTML = '';\n instances.splice(instances.indexOf(this), 1);\n this.emit('destroy');\n }\n}\n\nwindow.Artplayer = Artplayer;\nexport default Artplayer;\n"],"names":["_typeof","ArtPlayerError","message","context","Error","captureStackTrace","constructor","name","errorHandle","condition","msg","clamp","num","a","b","Math","max","min","getExt","url","includes","split","trim","toLowerCase","pop","append","parent","child","Element","appendChild","insertAdjacentHTML","setStyle","element","styles","Object","keys","forEach","key","style","secondToTime","second","add0","String","hour","floor","sec","map","join","validOption","option","container","poster","volume","autoplay","indexOf","preload","lang","type","mimeCodec","Array","isArray","layers","contextmenu","loading","theme","hotkey","prototype","toString","call","subtitle","controls","highlight","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mse","video","Template","art","init","refs","$container","innerHTML","$player","querySelector","$video","$subtitle","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layers","$loading","$notice","$mask","i18nMap","I18n","language","Player","eventBind","src","proxy","config","eventName","event","emit","on","show","hide","mask","promise","play","undefined","then","catch","err","console","warn","isPlaying","pause","time","newTime","duration","currentTime","percentage","rate","playbackRate","Mse","setMimeCodec","eventStart","repeat","maxRepeat","MediaSource","isTypeSupported","URL","createObjectURL","destroyEvents","push","revokeObjectURL","sourceBuffers","activeSourceBuffers","addSourceBuffer","endOfStream","fetchUrl","notice","i18n","request","response","appendBuffer","get","fetch","arrayBuffer","validControl","control","disable","position","index","Danmu","Fullscreen","Pip","PlayAndPause","Progress","isDroging","getLoaded","bind","getPlayed","getPos","set","player","ref","$loaded","$played","$highlight","$screenshot","$indicator","$tip","item","left","Number","text","display","path","showHighlight","showTime","target","seek","document","classList","add","remove","dataset","clientWidth","width","getBoundingClientRect","x","buffered","length","end","Subtitle","Time","Volume","Setting","id","Controls","$map","top","right","mount","tooltip","$control","createElement","setAttribute","commonMethod","sort","controlIndex","defineProperty","value","menus","log","Contextmenu","click","info","link","preventDefault","isFocus","$contextmenu","creatMenu","setPos","$menu","href","mouseX","clientX","mouseY","clientY","cHeight","height","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","$track","default","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","Events","callback","addEventListener","destroy","removeEventListener","Hotkey","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","toggle","Layers","$layer","zIndex","html","icons","creatDomFromSvg","result","tmp","childNodes","Loading","Notice","timer","autoHide","clearTimeout","setTimeout","Mask","playClone","cloneNode","backgroundColor","instances","Artplayer","assign","DEFAULTS","danmu","splice","plugin","installedPlugins","plugins","args","from","arguments","slice","unshift","install","apply","navigator","Emitter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../src/utils/ArtPlayerError.js","../../src/utils/index.js","../../src/verification/player.js","../../src/config/mimeCodec.js","../../src/config/mse.js","../../src/config/video.js","../../src/config/index.js","../../node_modules/tiny-emitter/index.js","../../src/template.js","../../src/i18n.js","../../src/player.js","../../src/mse.js","../../src/verification/control.js","../../src/controls/danmu.js","../../src/controls/fullscreen.js","../../src/controls/pip.js","../../src/controls/playAndPause.js","../../src/controls/progress.js","../../src/controls/subtitle.js","../../src/controls/time.js","../../src/controls/volume.js","../../src/controls/setting.js","../../src/controls/index.js","../../src/contextmenu.js","../../src/danmu.js","../../src/info.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/icons/index.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/index.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","export default class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n","import ArtPlayerError from './ArtPlayerError';\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n}\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url\n .trim()\n .toLowerCase()\n .split('.')\n .pop();\n}\n\nexport function append(parent, child) {\n if (child instanceof Element) {\n parent.appendChild(child);\n } else {\n parent.insertAdjacentHTML('beforeend', child);\n }\n return parent;\n}\n\nexport function setStyle(element, styles) {\n Object.keys(styles).forEach(key => {\n element.style[key] = styles[key];\n });\n return element;\n}\n\nexport function secondToTime(second) {\n const add0 = num => num < 10 ? `0${num}` : String(num);\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n","import { errorHandle } from '../utils';\n\nexport default function validOption(option) {\n errorHandle(\n option.container,\n '\\'container\\' option is required.'\n );\n\n errorHandle(\n option.url,\n '\\'url\\' option is required.'\n );\n\n errorHandle(\n typeof option.container === 'string' || option.container instanceof Element,\n `'container' option require 'string' or 'Element' type, but got '${typeof option.container}'.`\n );\n\n errorHandle(\n typeof option.url === 'string',\n `'url' option require 'string' type, but got '${typeof option.url}'.`\n );\n\n errorHandle(\n typeof option.poster === 'string',\n `'poster' option require 'string' type, but got '${typeof option.poster}'.`\n );\n\n errorHandle(\n Object.prototype.toString.call(option.thumbnails) === '[object Object]',\n `'thumbnails' option require 'object' type, but got '${typeof option.thumbnails}'.`\n );\n\n errorHandle(\n typeof option.volume === 'number',\n `'volume' option require 'number' type, but got '${typeof option.volume}'.`\n );\n\n errorHandle(\n typeof option.autoplay === 'boolean',\n `'autoplay' option require 'boolean' type, but got '${typeof option.autoplay}'.`\n );\n\n errorHandle(\n ['none', 'metadata', 'auto'].indexOf(option.preload) > -1,\n `'preload' option require one of 'none、metadata、auto', but got '${option.preload}.`\n );\n\n errorHandle(\n typeof option.lang === 'string',\n `'lang' option require 'string' type, but got '${typeof option.lang}'.`\n );\n\n errorHandle(\n typeof option.type === 'string',\n `'type' option require 'string' type, but got '${typeof option.type}'.`\n );\n\n errorHandle(\n typeof option.mimeCodec === 'string',\n `'mimeCodec' option require 'string' type, but got '${typeof option.mimeCodec}'.`\n );\n\n errorHandle(\n Array.isArray(option.layers),\n `'layers' option require 'array' type, but got '${typeof option.layers}'.`\n );\n\n errorHandle(\n Array.isArray(option.contextmenu),\n `'contextmenu' option require 'array' type, but got '${typeof option.contextmenu}'.`\n );\n\n errorHandle(\n typeof option.loading === 'string' || option.loading instanceof Element,\n `'loading' option require 'string' type, but got '${typeof option.loading}'.`\n );\n\n errorHandle(\n typeof option.theme === 'string',\n `'theme' option require 'string' type, but got '${typeof option.theme}'.`\n );\n\n errorHandle(\n typeof option.hotkey === 'boolean',\n `'hotkey' option require 'boolean' type, but got '${typeof option.hotkey}'.`\n );\n\n errorHandle(\n Object.prototype.toString.call(option.subtitle) === '[object Object]',\n `'subtitle' option require 'object' type, but got '${typeof option.subtitle}'.`\n );\n\n errorHandle(\n Array.isArray(option.controls),\n `'controls' option require 'array' type, but got '${typeof option.controls}'.`\n );\n\n errorHandle(\n Array.isArray(option.highlight),\n `'highlight' option require 'array' type, but got '${typeof option.highlight}'.`\n );\n}\n","export default {\n mp4: 'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"',\n webm: 'video/webm; codecs=\"vorbis, vp8\"',\n ts: 'video/mp2t; codecs=\"avc1.42E01E, mp4a.40.2\"'\n};\n","export default {\n mediaSource: {\n propertys: [\n 'activeSourceBuffers',\n 'duration',\n 'readyState',\n 'sourceBuffers'\n ],\n methods: [\n 'addSourceBuffer',\n 'endOfStream',\n 'removeSourceBuffer',\n 'clearLiveSeekableRange',\n 'setLiveSeekableRange'\n ],\n events: [\n 'sourceclose',\n 'sourceended',\n 'sourceopen'\n ]\n },\n sourceBuffer: {\n propertys: [\n 'mode',\n 'updating',\n 'buffered',\n 'timestampOffset',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'appendWindowStart',\n 'appendWindowEnd',\n 'trackDefaults'\n ],\n methods: [\n 'appendBuffer',\n 'appendStream',\n 'abort',\n 'remove'\n ],\n events: [\n 'abort',\n 'error',\n 'update',\n 'updateend',\n 'updatestart'\n ]\n },\n sourceBufferList: {\n propertys: [\n 'length'\n ],\n events: [\n 'addsourcebuffer',\n 'removesourcebuffer'\n ]\n }\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume'\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ]\n};\n","import mimeCodec from './mimeCodec';\nimport mse from './mse';\nimport video from './video';\n\nexport default {\n mimeCodec,\n mse,\n video\n};\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","export default class Template {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs } = this.art;\n refs.$container.innerHTML = `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n `;\n refs.$player = refs.$container.querySelector('.artplayer-video-player');\n refs.$video = refs.$container.querySelector('.artplayer-video');\n refs.$subtitle = refs.$container.querySelector('.artplayer-subtitle');\n refs.$bottom = refs.$container.querySelector('.artplayer-bottom');\n refs.$progress = refs.$container.querySelector('.artplayer-progress');\n refs.$controls = refs.$container.querySelector('.artplayer-controls');\n refs.$controlsLeft = refs.$container.querySelector('.artplayer-controls-left');\n refs.$controlsRight = refs.$container.querySelector('.artplayer-controls-right');\n refs.$layers = refs.$container.querySelector('.artplayer-layers');\n refs.$loading = refs.$container.querySelector('.artplayer-loading');\n refs.$notice = refs.$container.querySelector('.artplayer-notice');\n refs.$mask = refs.$container.querySelector('.artplayer-mask');\n }\n}\n","const i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Fast forward 10 seconds': '快进10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量减少10%'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Fast forward 10 seconds': '快進10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量減少10%'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.language = i18nMap[option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n}\n","import { clamp } from './utils';\nimport config from './config';\n\nexport default class Player {\n constructor(art) {\n this.art = art;\n this.init();\n this.eventBind();\n }\n\n init() {\n const { option } = this.art;\n const { $video } = this.art.refs;\n $video.controls = false;\n $video.poster = option.poster;\n $video.volume = clamp(option.volume, 0, 1);\n $video.autoplay = option.autoplay;\n $video.preload = option.preload;\n $video.src = option.url;\n }\n\n eventBind() {\n const { events: { proxy }, refs: { $video } } = this.art;\n\n config.video.events.forEach(eventName => {\n proxy($video, eventName, event => {\n this.art.emit(`video:${event.type}`, event);\n });\n });\n\n this.art.on('video:loadstart', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:loadeddata', () => {\n this.art.loading.hide();\n });\n\n this.art.on('video:waiting', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:seeking', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:canplay', () => {\n this.art.controls.show();\n this.art.mask.show();\n this.art.loading.hide();\n if (this.art.option.autoplay) {\n const promise = this.play();\n if (promise !== undefined) {\n promise.then().catch(err => {\n console.warn(err);\n });\n }\n }\n });\n\n this.art.on('video:playing', () => {\n this.art.isPlaying = true;\n this.art.controls.hide();\n this.art.mask.hide();\n });\n\n this.art.on('video:pause', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:ended', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:error', () => {\n this.art.isPlaying = false;\n });\n }\n\n play() {\n const { $video } = this.art.refs;\n const promise = $video.play();\n this.art.emit('play', $video);\n return promise;\n }\n\n pause() {\n const { $video } = this.art.refs;\n $video.pause();\n this.art.emit('pause', $video);\n }\n\n toggle() {\n if (this.art.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n seek(time) {\n const { $video } = this.art.refs;\n let newTime = Math.max(time, 0);\n if ($video.duration) {\n newTime = Math.min(newTime, $video.duration);\n }\n\n $video.currentTime = newTime;\n this.art.emit('seek', newTime);\n }\n\n volume(percentage) {\n const { $video } = this.art.refs;\n if (percentage) {\n $video.volume = clamp(percentage, 0, 1);\n }\n this.art.emit('volume', $video.volume);\n }\n\n switchVolumeIcon() {\n //\n }\n\n switchVideo() {\n //\n }\n\n switchQuality() {\n //\n }\n\n resize() {\n //\n }\n\n speed(rate) {\n const { $video } = this.art.refs;\n $video.playbackRate = rate;\n this.art.emit('speed', rate);\n }\n}\n","import ArtPlayerError from './utils/ArtPlayerError';\nimport { errorHandle, getExt } from './utils';\nimport config from './config';\n\nexport default class Mse {\n constructor(art) {\n this.art = art;\n this.setMimeCodec();\n this.init();\n this.eventBind();\n this.eventStart();\n this.repeat = 0;\n this.maxRepeat = 5;\n }\n\n setMimeCodec() {\n const { option } = this.art;\n if (!option.type) {\n const type = getExt(option.url);\n errorHandle(\n Object.keys(config.mimeCodec).includes(type),\n `Can't find video's type '${type}' from '${option.url}'`\n );\n option.type = type;\n }\n\n if (!option.mimeCodec) {\n const mimeCodec = config.mimeCodec[option.type];\n errorHandle(\n mimeCodec,\n `Can't find video's mimeCodec from ${option.type}`\n );\n option.mimeCodec = mimeCodec;\n }\n }\n\n init() {\n const {\n option,\n refs: { $video }\n } = this.art;\n errorHandle(\n MediaSource.isTypeSupported(option.mimeCodec),\n `Unsupported MIME type or codec: ${option.mimeCodec}`\n );\n this.mediaSource = new MediaSource();\n $video.src = URL.createObjectURL(this.mediaSource);\n this.art.events.destroyEvents.push(() => {\n URL.revokeObjectURL($video.src);\n });\n }\n\n eventBind() {\n const { proxy } = this.art.events;\n const { mediaSource, sourceBufferList } = config.mse;\n\n mediaSource.events.forEach(eventName => {\n proxy(this.mediaSource, eventName, event => {\n this.art.emit(`mediaSource:${event.type}`, event);\n });\n });\n\n sourceBufferList.events.forEach(eventName => {\n proxy(this.mediaSource.sourceBuffers, eventName, event => {\n this.art.emit(`sourceBuffers:${event.type}`, event);\n });\n proxy(this.mediaSource.activeSourceBuffers, eventName, event => {\n this.art.emit(`activeSourceBuffers:${event.type}`, event);\n });\n });\n }\n\n eventStart() {\n const { option } = this.art;\n const { proxy } = this.art.events;\n const { sourceBuffer } = config.mse;\n\n this.art.on('mediaSource:sourceopen', () => {\n this.sourceBuffer = this.mediaSource.addSourceBuffer(option.mimeCodec);\n sourceBuffer.events.forEach(eventName => {\n proxy(this.sourceBuffer, eventName, event => {\n this.art.emit(`sourceBuffer:${event.type}`, event);\n });\n });\n });\n\n this.art.on('sourceBuffer:updateend', () => {\n this.mediaSource.endOfStream();\n });\n\n this.fetchUrl();\n }\n\n fetchUrl() {\n const { option: { url }, notice, i18n, loading } = this.art;\n this.art.emit('player:fetch:start', url);\n this.request(url)\n .then(response => {\n this.sourceBuffer.appendBuffer(response);\n this.art.emit('player:fetch:success', url);\n })\n .catch(err => {\n if (this.repeat++ < this.maxRepeat) {\n this.fetchUrl();\n } else {\n notice.show(i18n.get('Video load failed'));\n console.warn(err);\n loading.hide();\n this.art.emit('player:fetch:failure', url);\n }\n });\n }\n\n request(url) {\n return fetch(url)\n .then(response => response.arrayBuffer())\n .catch(err => {\n throw new ArtPlayerError(err.message);\n });\n }\n}\n","import { errorHandle } from '../utils';\n\nexport default function validControl(option) {\n errorHandle(\n typeof option.control === 'function',\n `'control' option require 'function' type, but got '${typeof option.control}'.`\n );\n\n errorHandle(\n typeof option.disable === 'boolean',\n `'disable' option require 'boolean' type, but got '${typeof option.disable}'.`\n );\n\n errorHandle(\n ['top', 'left', 'right'].indexOf(option.position) > -1,\n `'position' option require one of 'top、left、right', but got '${option.position}'.`\n );\n\n errorHandle(\n typeof option.index === 'number',\n `'index' option require 'number' type, but got '${typeof option.index}'.`\n );\n}\n","export default class Danmu {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Fullscreen {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Pip {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class PlayAndPause {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","import { append, secondToTime, clamp } from '../utils';\n\nexport default class Progress {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n this.isDroging = false;\n this.getLoaded = this.getLoaded.bind(this);\n this.getPlayed = this.getPlayed.bind(this);\n this.getPos = this.getPos.bind(this);\n this.set = this.set.bind(this);\n this.init();\n }\n\n init() {\n const {\n option: { highlight, theme },\n events: { proxy },\n refs: { $video },\n player\n } = this.art;\n\n append(\n this.option.ref,\n `\n
\n
\n
\n
\n
\n
\n
\n
\n `\n );\n\n this.$loaded = this.option.ref.querySelector('.art-progress-loaded');\n this.$played = this.option.ref.querySelector('.art-progress-played');\n this.$highlight = this.option.ref.querySelector('.art-progress-highlight');\n this.$thumbnails = this.option.ref.querySelector('.art-progress-thumbnails');\n this.$indicator = this.option.ref.querySelector('.art-progress-indicator');\n this.$tip = this.option.ref.querySelector('.art-progress-tip');\n\n this.art.on('video:canplay', () => {\n this.set('loaded', this.getLoaded());\n highlight.forEach(item => {\n const left = Number(item.time) / $video.duration;\n append(this.$highlight, `\n \n `\n );\n });\n });\n\n this.art.on('video:progress', () => {\n this.set('loaded', this.getLoaded());\n });\n\n this.art.on('video:timeupdate', () => {\n this.set('played', this.getPlayed());\n });\n\n this.art.on('video:ended', () => {\n this.set('played', 1);\n });\n\n proxy(this.option.ref, 'mousemove', event => {\n this.$tip.style.display = 'block';\n if (event.path.indexOf(this.$highlight) > -1) {\n this.showHighlight(event);\n } else {\n this.showTime(event);\n }\n\n if (this.art.option.thumbnails.url) {\n this.$thumbnails.style.display = 'block';\n this.showThumbnails(event);\n }\n });\n\n proxy(this.option.ref, 'mouseout', () => {\n this.$tip.style.display = 'none';\n if (this.art.option.thumbnails.url) {\n this.$thumbnails.style.display = 'none';\n }\n });\n\n proxy(this.option.ref, 'click', event => {\n if (event.target !== this.$indicator) {\n const { second, percentage } = this.getPos(event);\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(this.$indicator, 'mousedown', () => {\n this.isDroging = true;\n });\n\n proxy(document, 'mousemove', event => {\n if (this.isDroging) {\n const { second, percentage } = this.getPos(event);\n this.$indicator.classList.add('show-indicator');\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (this.isDroging) {\n this.isDroging = false;\n this.$indicator.classList.remove('show-indicator');\n }\n });\n }\n\n showHighlight(event) {\n const { $video } = this.art.refs;\n const { text, time } = event.target.dataset;\n this.$tip.innerHTML = text;\n const left =\n Number(time) / $video.duration * this.option.ref.clientWidth +\n event.target.clientWidth / 2 -\n this.$tip.clientWidth / 2;\n this.$tip.style.left = `${left}px`;\n }\n\n showTime(event) {\n const { width, time } = this.getPos(event);\n const tipWidth = this.$tip.clientWidth;\n this.$tip.innerHTML = time;\n if (width <= tipWidth / 2) {\n this.$tip.style.left = 0;\n } else if (width > this.option.ref.clientWidth - tipWidth / 2) {\n this.$tip.style.left = `${this.option.ref.clientWidth - tipWidth}px`;\n } else {\n this.$tip.style.left = `${width - tipWidth / 2}px`;\n }\n }\n\n showThumbnails(event) {\n const { width: posWidth } = this.getPos(event);\n const { url, height, width, number } = this.art.option.thumbnails;\n this.$thumbnails.style.backgroundImage = `url(${url})`;\n this.$thumbnails.style.height = `${height}px`;\n this.$thumbnails.style.width = `${width}px`;\n\n if (posWidth <= width / 2) {\n this.$thumbnails.style.left = 0;\n } else if (posWidth > this.option.ref.clientWidth - width / 2) {\n this.$thumbnails.style.left = `${this.option.ref.clientWidth - width}px`;\n } else {\n this.$thumbnails.style.left = `${posWidth - width / 2}px`;\n }\n\n const perWidth = this.option.ref.clientWidth / number;\n const index = Math.ceil(posWidth / perWidth);\n this.$thumbnails.style.backgroundPosition = `-${index * width}px 0`;\n }\n\n getPos(event) {\n const { $video } = this.art.refs;\n const { left } = this.option.ref.getBoundingClientRect();\n const width = clamp(event.x - left, 0, this.option.ref.clientWidth);\n const second = width / this.option.ref.clientWidth * $video.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / this.option.ref.clientWidth, 0, 1);\n return { second, time, width, percentage };\n }\n\n getPlayed() {\n const { $video } = this.art.refs;\n return $video.currentTime / $video.duration;\n }\n\n getLoaded() {\n const { $video } = this.art.refs;\n return $video.buffered.length\n ? $video.buffered.end($video.buffered.length - 1) / $video.duration\n : 0;\n }\n\n set(type, percentage) {\n this[`$${type}`].style.width = `${percentage * 100}%`;\n if (type === 'played') {\n this.$indicator.style.left = `calc(${percentage * 100}% - 6.5px)`;\n }\n }\n}\n","export default class Subtitle {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Time {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Volume {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Setting {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","import validControl from '../verification/control';\nimport Danmu from './danmu';\nimport Fullscreen from './fullscreen';\nimport Pip from './pip';\nimport PlayAndPause from './playAndPause';\nimport Progress from './progress';\nimport Subtitle from './subtitle';\nimport Time from './time';\nimport Volume from './volume';\nimport Setting from './setting';\n\nlet id = 0;\nexport default class Controls {\n constructor(art) {\n this.art = art;\n this.$map = {\n top: [],\n left: [],\n right: []\n };\n this.init();\n this.mount();\n }\n\n init() {\n this.add({\n control: Progress,\n disable: false,\n position: 'top',\n index: 10\n });\n\n this.add({\n control: PlayAndPause,\n disable: false,\n position: 'left',\n index: 10\n });\n\n this.add({\n control: Volume,\n disable: false,\n tooltip: 'Volume',\n position: 'left',\n index: 20\n });\n\n this.add({\n control: Time,\n disable: false,\n tooltip: 'Volume',\n position: 'left',\n index: 30\n });\n\n this.add({\n control: Danmu,\n disable: false,\n tooltip: 'Danmu',\n position: 'right',\n index: 10\n });\n\n this.add({\n control: Subtitle,\n disable: false,\n tooltip: 'Subtitle',\n position: 'right',\n index: 20\n });\n\n this.add({\n control: Setting,\n disable: false,\n tooltip: 'Setting',\n position: 'right',\n index: 30\n });\n\n this.add({\n control: Pip,\n disable: false,\n tooltip: 'Pip',\n position: 'right',\n index: 40\n });\n\n this.add({\n control: Fullscreen,\n disable: false,\n tooltip: 'Fullscreen',\n position: 'right',\n index: 50\n });\n\n this.art.option.controls.forEach(item => {\n this.add(item);\n });\n }\n\n add(option) {\n validControl(option);\n if (!option.disable) {\n id++;\n const name = option.control.name.toLowerCase() || `control${id}`;\n const $control = document.createElement('div');\n $control.setAttribute('class', `art-control art-control-${name}`);\n $control.setAttribute('data-control-index', String(option.index) || id);\n option.ref = $control;\n this.commonMethod(option);\n this[name] = new option.control(this.art, option);\n this.$map[option.position].push($control);\n }\n }\n\n mount() {\n const { $progress, $controlsLeft, $controlsRight } = this.art.refs;\n Object.keys(this.$map).forEach(key => {\n this.$map[key]\n .sort(\n (a, b) =>\n Number(a.dataset.controlIndex) - Number(b.dataset.controlIndex)\n )\n .forEach($control => {\n switch (key) {\n case 'top':\n $progress.appendChild($control);\n break;\n case 'left':\n $controlsLeft.appendChild($control);\n break;\n case 'right':\n $controlsRight.appendChild($control);\n break;\n default:\n break;\n }\n });\n });\n }\n\n commonMethod(option) {\n Object.defineProperty(option.control.prototype, 'hide', {\n value: () => {\n option.ref.style.display = 'none';\n this.art.emit('control:hide', option.ref);\n }\n });\n\n Object.defineProperty(option.control.prototype, 'show', {\n value: () => {\n option.ref.style.display =\n option.position === 'top' ? 'block' : 'inline-block';\n this.art.emit('control:show', option.ref);\n }\n });\n\n Object.defineProperty(option.control.prototype, 'addMenu', {\n value: menus => {\n console.log(menus);\n }\n });\n }\n\n show() {\n const { $player } = this.art.refs;\n $player.classList.add('controls-show');\n }\n\n hide() {\n const { $player } = this.art.refs;\n $player.classList.remove('controls-show');\n }\n}\n","import { append } from './utils';\n\nexport default class Contextmenu {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n option,\n i18n,\n refs,\n events: { proxy }\n } = this.art;\n\n option.contextmenu.push(\n {\n text: i18n.get('Video info'),\n click: () => {\n this.art.info.show();\n }\n },\n {\n text: i18n.get('About author'),\n link: 'https://github.com/zhw2590582'\n },\n {\n text: 'ArtPlayer __VERSION__',\n link: 'https://github.com/zhw2590582/artplayer'\n },\n {\n text: i18n.get('Close'),\n click: () => {\n this.hide();\n }\n }\n );\n\n proxy(refs.$player, 'contextmenu', event => {\n event.preventDefault();\n this.art.isFocus = true;\n if (!refs.$contextmenu) {\n this.creatMenu();\n }\n this.show();\n this.setPos(event);\n });\n\n proxy(refs.$player, 'click', event => {\n if (refs.$contextmenu && !event.path.includes(refs.$contextmenu)) {\n this.hide();\n }\n });\n }\n\n creatMenu() {\n const {\n option,\n refs,\n events: { proxy }\n } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu.forEach(item => {\n const $menu = document.createElement('a');\n $menu.innerHTML = item.text;\n $menu.classList.add('art-menu');\n if (item.link) {\n $menu.target = '_blank';\n $menu.href = item.link;\n } else if (item.click) {\n $menu.href = '#';\n proxy($menu, 'click', event => {\n event.preventDefault();\n item.click(this.art, event);\n this.hide();\n });\n }\n append(refs.$contextmenu, $menu);\n });\n append(refs.$player, refs.$contextmenu);\n }\n\n setPos(event) {\n const { refs } = this.art;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = refs.$player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = refs.$contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n refs.$contextmenu.style.left = `${menuLeft}px`;\n refs.$contextmenu.style.top = `${menuTop}px`;\n }\n\n hide() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'none';\n this.art.emit('contextmenu:hide', $contextmenu);\n }\n }\n\n show() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'block';\n this.art.emit('contextmenu:show', $contextmenu);\n }\n }\n}\n","export default class Danmu {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Info {\n constructor(art) {\n this.art = art;\n }\n\n show() {\n console.log('info show');\n }\n\n hide() {\n console.log('info hide');\n }\n}\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","import { errorHandle, getExt, setStyle } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n if (this.art.option.subtitle) {\n errorHandle(\n getExt(this.art.option.subtitle.url) === 'vtt',\n `'url' option require 'vtt' format, but got '${getExt(this.art.option.subtitle.url)}'.`\n );\n this.init();\n }\n }\n\n init() {\n const {\n events: { proxy },\n option: { subtitle },\n refs: { $video, $subtitle }\n } = this.art;\n\n setStyle($subtitle, subtitle.style || {});\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $track.src = subtitle.url;\n $video.appendChild($track);\n this.art.refs.$track = $track;\n\n if ($video.textTracks && $video.textTracks[0]) {\n const [track] = $video.textTracks;\n proxy(track, 'cuechange', () => {\n const [cue] = track.activeCues;\n $subtitle.innerHTML = '';\n if (cue) {\n const template = document.createElement('div');\n template.appendChild(cue.getCueAsHTML());\n $subtitle.innerHTML = template.innerHTML\n .split(/\\r?\\n/)\n .map(item => `

${item}

`)\n .join('');\n }\n this.art.emit('subtitle:update', $subtitle);\n });\n }\n }\n\n show() {\n const { $subtitle } = this.art.refs;\n $subtitle.style.display = 'block';\n this.art.emit('subtitle:show', $subtitle);\n }\n\n hide() {\n const { $subtitle } = this.art.refs;\n $subtitle.style.display = 'none';\n this.art.emit('subtitle:hide', $subtitle);\n }\n\n switch(url) {\n const { $track } = this.art.refs;\n errorHandle(\n getExt(url) === 'vtt',\n `'url' option require 'vtt' format, but got '${getExt(url)}'.`\n );\n errorHandle(\n $track,\n 'You need to initialize the subtitle option first.'\n );\n $track.src = url;\n this.art.emit('subtitle:switch', url);\n }\n}\n","export default class Events {\n constructor(art) {\n this.art = art;\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n name.forEach(item => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n\n const destroy = () => {\n target.removeEventListener(name, callback, option);\n };\n\n this.destroyEvents.push(destroy);\n\n return destroy;\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.art = art;\n if (this.art.option.hotkey) {\n this.init();\n }\n }\n\n init() {\n const {\n player,\n notice,\n i18n,\n refs: { $player },\n events: { proxy }\n } = this.art;\n\n proxy(document, 'click', event => {\n this.art.isFocus = event.path.indexOf($player) > -1;\n });\n\n proxy(window, 'keydown', event => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true'\n ) {\n let percentage;\n switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n notice.show(i18n.get('Fast forward 10 seconds'), true);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n notice.show(i18n.get('Rewind 10 seconds'), true);\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% increase in volume'), true);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% reduction in volume'), true);\n break;\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n default:\n break;\n }\n }\n }\n });\n }\n}\n","import { append, setStyle } from './utils';\n\nlet id = 0;\nexport default class Layers {\n constructor(art) {\n this.art = art;\n this.add = this.add.bind(this);\n this.art.option.layers.forEach(this.add);\n this.init();\n }\n\n init() {\n const { refs, player, events: { proxy } } = this.art;\n proxy(refs.$layers, 'click', event => {\n if (event.path[0] === refs.$layers) {\n player.pause();\n }\n });\n }\n\n add(option, callback) {\n const { refs } = this.art;\n id++;\n\n const $layer = document.createElement('div');\n $layer.setAttribute('data-art-layer-id', id);\n $layer.setAttribute('class', `art-layer art-layer-${option.name || id}`);\n $layer.style.zIndex = option.index || id;\n append($layer, option.html);\n setStyle($layer, option.style || {});\n refs.$layers.appendChild($layer);\n this.art.emit('layers:add', $layer);\n callback && callback($layer);\n }\n\n show() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'block';\n this.art.emit('layers:show', $layers);\n }\n\n hide() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'none';\n this.art.emit('layers:hide', $layers);\n }\n}\n","import loading from './loading.svg';\nimport play from './play.svg';\n\nconst icons = {\n loading,\n play\n};\n\nfunction creatDomFromSvg(map) {\n const result = {};\n Object.keys(map).forEach(name => {\n const tmp = document.createElement('div');\n tmp.innerHTML = `${map[name]}`;\n [result[name]] = tmp.childNodes;\n });\n return result;\n}\n\nexport default creatDomFromSvg(icons);\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Loading {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs: { $loading } } = this.art;\n append($loading, option.loading || icons.loading);\n }\n\n hide() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'none';\n this.art.emit('loading:hide', $loading);\n }\n\n show() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'flex';\n this.art.emit('loading:show', $loading);\n }\n}\n","export default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide) {\n const { $notice } = this.art.refs;\n $notice.style.display = 'block';\n $notice.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, 1000);\n }\n this.art.emit('notice:show', $notice);\n }\n\n hide() {\n const { $notice } = this.art.refs;\n $notice.style.display = 'none';\n this.art.emit('notice:hide', $notice);\n }\n}\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n player,\n option,\n refs,\n events: { proxy }\n } = this.art;\n\n const playClone = icons.play.cloneNode(true);\n playClone.style.backgroundColor = option.theme;\n append(refs.$mask, playClone);\n\n proxy(refs.$mask, 'click', () => {\n player.play();\n this.hide();\n });\n }\n\n show() {\n const { $mask } = this.art.refs;\n $mask.style.display = 'flex';\n this.art.emit('mask:show', $mask);\n }\n\n hide() {\n const { $mask } = this.art.refs;\n $mask.style.display = 'none';\n this.art.emit('mask:show', $mask);\n }\n}\n","import './style/index.scss';\nimport 'balloon-css/balloon.min.css';\nimport validOption from './verification/player';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Mse from './mse';\nimport Controls from './controls';\nimport Contextmenu from './contextmenu';\nimport Danmu from './danmu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layers from './layers';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\n\nlet id = 0;\nexport const instances = [];\n\nclass Artplayer extends Emitter {\n constructor(option) {\n super();\n this.emit('init:start');\n this.option = Object.assign({}, Artplayer.DEFAULTS, option);\n validOption(this.option);\n this.init();\n this.emit('init:end');\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get DEFAULTS() {\n return {\n container: '.artplayer',\n url: '',\n poster: '',\n thumbnails: {\n url: '',\n number: 100,\n width: 160,\n height: 90\n },\n volume: 0.7,\n autoplay: false,\n preload: 'auto',\n type: '',\n mimeCodec: '',\n layers: [],\n contextmenu: [],\n loading: '',\n theme: '#f00',\n hotkey: true,\n subtitle: {\n url: '',\n style: {}\n },\n controls: [],\n highlight: [],\n lang: navigator.language.toLowerCase()\n };\n }\n\n static use(plugin) {\n const installedPlugins = this.plugins || (this.plugins = []);\n if (installedPlugins.indexOf(plugin) > -1) {\n return this;\n }\n\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this;\n }\n\n init() {\n this.isFocus = false;\n this.isPlaying = false;\n this.refs = {};\n\n if (this.option.container instanceof Element) {\n this.refs.$container = this.option.container;\n } else {\n this.refs.$container = document.querySelector(this.option.container);\n }\n\n this.template = new Template(this);\n this.i18n = new I18n(this);\n this.events = new Events(this);\n this.player = new Player(this);\n // this.mse = new Mse(this);\n this.layers = new Layers(this);\n this.controls = new Controls(this);\n this.contextmenu = new Contextmenu(this);\n this.danmu = new Danmu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.notice = new Notice(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n\n this.id = id++;\n instances.push(this);\n return this;\n }\n\n destroy() {\n this.events.destroy();\n this.refs.$container.innerHTML = '';\n instances.splice(instances.indexOf(this), 1);\n this.emit('destroy');\n }\n}\n\nwindow.Artplayer = Artplayer;\nexport default Artplayer;\n"],"names":["_typeof","ArtPlayerError","message","context","Error","captureStackTrace","constructor","name","errorHandle","condition","msg","clamp","num","a","b","Math","max","min","getExt","url","includes","split","trim","toLowerCase","pop","append","parent","child","Element","appendChild","insertAdjacentHTML","setStyle","element","styles","Object","keys","forEach","key","style","secondToTime","second","add0","String","hour","floor","sec","map","join","validOption","option","container","poster","prototype","toString","call","thumbnails","volume","autoplay","indexOf","preload","lang","type","mimeCodec","Array","isArray","layers","contextmenu","loading","theme","hotkey","subtitle","controls","highlight","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mse","video","Template","art","init","refs","$container","innerHTML","$player","querySelector","$video","$subtitle","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layers","$loading","$notice","$mask","i18nMap","I18n","language","Player","eventBind","src","proxy","config","eventName","event","emit","on","show","hide","mask","promise","play","undefined","then","catch","err","console","warn","isPlaying","pause","time","newTime","duration","currentTime","percentage","rate","playbackRate","Mse","setMimeCodec","eventStart","repeat","maxRepeat","MediaSource","isTypeSupported","URL","createObjectURL","destroyEvents","push","revokeObjectURL","sourceBuffers","activeSourceBuffers","addSourceBuffer","endOfStream","fetchUrl","notice","i18n","request","response","appendBuffer","get","fetch","arrayBuffer","validControl","control","disable","position","index","Danmu","Fullscreen","Pip","PlayAndPause","Progress","isDroging","getLoaded","bind","getPlayed","getPos","set","player","ref","$loaded","$played","$highlight","$thumbnails","$indicator","$tip","item","left","Number","text","display","path","showHighlight","showTime","showThumbnails","target","seek","document","classList","add","remove","dataset","clientWidth","width","tipWidth","posWidth","height","number","backgroundImage","perWidth","ceil","backgroundPosition","getBoundingClientRect","x","buffered","length","end","Subtitle","Time","Volume","Setting","id","Controls","$map","top","right","mount","tooltip","$control","createElement","setAttribute","commonMethod","sort","controlIndex","defineProperty","value","menus","log","Contextmenu","click","info","link","preventDefault","isFocus","$contextmenu","creatMenu","setPos","$menu","href","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","$track","default","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","Events","callback","addEventListener","destroy","removeEventListener","Hotkey","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","toggle","Layers","$layer","zIndex","html","icons","creatDomFromSvg","result","tmp","childNodes","Loading","Notice","timer","autoHide","clearTimeout","setTimeout","Mask","playClone","cloneNode","backgroundColor","instances","Artplayer","assign","DEFAULTS","danmu","splice","plugin","installedPlugins","plugins","args","from","arguments","slice","unshift","install","apply","navigator","Emitter"],"mappings":"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"} \ No newline at end of file diff --git a/src/controls/progress.js b/src/controls/progress.js index ddcd31d51..5d2c9a3f7 100644 --- a/src/controls/progress.js +++ b/src/controls/progress.js @@ -27,7 +27,7 @@ export default class Progress {
-
+
@@ -37,9 +37,7 @@ export default class Progress { this.$loaded = this.option.ref.querySelector('.art-progress-loaded'); this.$played = this.option.ref.querySelector('.art-progress-played'); this.$highlight = this.option.ref.querySelector('.art-progress-highlight'); - this.$screenshot = this.option.ref.querySelector( - '.art-progress-screenshot' - ); + this.$thumbnails = this.option.ref.querySelector('.art-progress-thumbnails'); this.$indicator = this.option.ref.querySelector('.art-progress-indicator'); this.$tip = this.option.ref.querySelector('.art-progress-tip'); @@ -73,10 +71,18 @@ export default class Progress { } else { this.showTime(event); } + + if (this.art.option.thumbnails.url) { + this.$thumbnails.style.display = 'block'; + this.showThumbnails(event); + } }); proxy(this.option.ref, 'mouseout', () => { this.$tip.style.display = 'none'; + if (this.art.option.thumbnails.url) { + this.$thumbnails.style.display = 'none'; + } }); proxy(this.option.ref, 'click', event => { @@ -121,18 +127,35 @@ export default class Progress { showTime(event) { const { width, time } = this.getPos(event); + const tipWidth = this.$tip.clientWidth; this.$tip.innerHTML = time; - if (width <= 20) { + if (width <= tipWidth / 2) { this.$tip.style.left = 0; - } else if (width > this.option.ref.clientWidth - 20) { - this.$tip.style.left = `${this.option.ref.clientWidth - 40}px`; + } else if (width > this.option.ref.clientWidth - tipWidth / 2) { + this.$tip.style.left = `${this.option.ref.clientWidth - tipWidth}px`; } else { - this.$tip.style.left = `${width - 20}px`; + this.$tip.style.left = `${width - tipWidth / 2}px`; } } - showScreenshot() { - // + showThumbnails(event) { + const { width: posWidth } = this.getPos(event); + const { url, height, width, number } = this.art.option.thumbnails; + this.$thumbnails.style.backgroundImage = `url(${url})`; + this.$thumbnails.style.height = `${height}px`; + this.$thumbnails.style.width = `${width}px`; + + if (posWidth <= width / 2) { + this.$thumbnails.style.left = 0; + } else if (posWidth > this.option.ref.clientWidth - width / 2) { + this.$thumbnails.style.left = `${this.option.ref.clientWidth - width}px`; + } else { + this.$thumbnails.style.left = `${posWidth - width / 2}px`; + } + + const perWidth = this.option.ref.clientWidth / number; + const index = Math.ceil(posWidth / perWidth); + this.$thumbnails.style.backgroundPosition = `-${index * width}px 0`; } getPos(event) { diff --git a/src/index.js b/src/index.js index f979cc669..f38fa7980 100644 --- a/src/index.js +++ b/src/index.js @@ -45,6 +45,12 @@ class Artplayer extends Emitter { container: '.artplayer', url: '', poster: '', + thumbnails: { + url: '', + number: 100, + width: 160, + height: 90 + }, volume: 0.7, autoplay: false, preload: 'auto', diff --git a/src/style/index.scss b/src/style/index.scss index d311c232f..c248c46a4 100644 --- a/src/style/index.scss +++ b/src/style/index.scss @@ -171,6 +171,16 @@ border-radius: 3px; } } + + .art-progress-thumbnails { + // display: none; + position: absolute; + z-index: 50; + top: -95px; + left: 0; + pointer-events: none; + background-color: rgba(0,0,0,.7); + } .art-progress-indicator { display: none; diff --git a/src/verification/player.js b/src/verification/player.js index d9c312ee8..8d8dd59e9 100644 --- a/src/verification/player.js +++ b/src/verification/player.js @@ -26,6 +26,11 @@ export default function validOption(option) { `'poster' option require 'string' type, but got '${typeof option.poster}'.` ); + errorHandle( + Object.prototype.toString.call(option.thumbnails) === '[object Object]', + `'thumbnails' option require 'object' type, but got '${typeof option.thumbnails}'.` + ); + errorHandle( typeof option.volume === 'number', `'volume' option require 'number' type, but got '${typeof option.volume}'.`