From c69c3a42ed8356b94b5ee2382e5755f679a95e1d Mon Sep 17 00:00:00 2001 From: Harvey Zack Date: Tue, 23 Oct 2018 13:21:39 +0800 Subject: [PATCH] add volume --- docs/css/artplayer.css | 2 +- docs/img/yourName.png | Bin 58338 -> 32543 bytes docs/index.html | 10 +--- docs/js/artplayer.js | 87 ++++++++++++++++++++++++++++++----- docs/js/artplayer.js.map | 2 +- src/controls/playAndPause.js | 4 +- src/controls/volume.js | 42 +++++++++++++++++ src/icons/index.js | 6 ++- src/icons/volume-close.svg | 4 ++ src/icons/volume.svg | 3 ++ src/info.js | 6 ++- src/player.js | 4 +- src/style/index.scss | 13 ++---- src/utils/index.js | 12 +++++ 14 files changed, 157 insertions(+), 38 deletions(-) create mode 100644 src/icons/volume-close.svg create mode 100644 src/icons/volume.svg diff --git a/docs/css/artplayer.css b/docs/css/artplayer.css index 6ede48297..9ffa4dce7 100644 --- a/docs/css/artplayer.css +++ b/docs/css/artplayer.css @@ -1 +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-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{display:inline-block}.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}.artplayer-video-player .artplayer-subtitle p{margin:5px 0}.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-layers .art-layer{position:absolute}.artplayer-video-player .artplayer-mask{display:none;position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%;cursor:pointer}.artplayer-video-player .artplayer-mask .art-icon-playBig{position:absolute;right:30px;bottom:65px;opacity:.6}.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:55px 10px 0;opacity:0;visibility:hidden;transition:all .2s ease-in-out;pointer-events:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.artplayer-video-player .artplayer-bottom .artplayer-progress{position:relative;pointer-events:all}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress{position:relative;height:5px;padding:1px 0;cursor:pointer}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner{position:relative;height:100%;background:hsla(0,0%,100%,.2)}.artplayer-video-player .artplayer-bottom .artplayer-progress .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 .artplayer-progress .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 .artplayer-progress .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 .artplayer-progress .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 .artplayer-progress .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 .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.show-indicator{display:block}.artplayer-video-player .artplayer-bottom .artplayer-progress .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 .artplayer-progress .art-control-progress:hover .art-progress-indicator,.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress:hover .art-progress-tip{display:block}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-thumbnails{display:none;position:absolute;bottom:8px;left:0;pointer-events:none;background-color:rgba(0,0,0,.7)}.artplayer-video-player .artplayer-bottom .artplayer-controls{position:relative;pointer-events:all;display:flex;align-items:center;height:40px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control{height:22px;line-height:22px;float:left;cursor:pointer;font-size:12px}.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:14px;position:absolute;z-index:60;left:10px;top:10px;height:30px;line-height:30px;padding:0 10px;border-radius:3px;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 .artplayer-info{display:none;position:absolute;left:10px;top:10px;z-index:80;width:350px;min-height:150px;padding:10px;color:#fff;font-size:12px;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;background:rgba(0,0,0,.7)}.artplayer-video-player .artplayer-info .art-info-item{display:flex;margin-bottom:5px}.artplayer-video-player .artplayer-info .art-info-item .art-info-title{width:100px;text-align:right}.artplayer-video-player .artplayer-info .art-info-item .art-info-content{flex:1;padding-left:5px}.artplayer-video-player .artplayer-info .artplayer-info-close{position:absolute;top:5px;right:5px;cursor:pointer}.artplayer-video-player.artplayer-error .art-progress-indicator,.artplayer-video-player.artplayer-error .art-progress-tip{display:none!important} \ No newline at end of file +.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-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{display:inline-block}.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}.artplayer-video-player .artplayer-subtitle p{margin:5px 0}.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-layers .art-layer{position:absolute}.artplayer-video-player .artplayer-mask{display:none;position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%;cursor:pointer}.artplayer-video-player .artplayer-mask .art-icon-playBig{position:absolute;right:30px;bottom:65px;opacity:.6}.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:55px 10px 0;opacity:0;visibility:hidden;transition:all .2s ease-in-out;pointer-events:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.artplayer-video-player .artplayer-bottom .artplayer-progress{position:relative;pointer-events:all}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress{position:relative;height:5px;padding:1px 0;cursor:pointer}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner{position:relative;height:100%;background:hsla(0,0%,100%,.2)}.artplayer-video-player .artplayer-bottom .artplayer-progress .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 .artplayer-progress .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 .artplayer-progress .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 .artplayer-progress .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 .artplayer-progress .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 .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.show-indicator{display:block}.artplayer-video-player .artplayer-bottom .artplayer-progress .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 .artplayer-progress .art-control-progress:hover .art-progress-indicator,.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress:hover .art-progress-tip{display:block}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-thumbnails{display:none;position:absolute;bottom:8px;left:0;pointer-events:none;background-color:rgba(0,0,0,.7)}.artplayer-video-player .artplayer-bottom .artplayer-controls{position:relative;pointer-events:all;display:flex;align-items:center;justify-content:space-between;height:40px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control{float:left;font-size:12px;height:22px;line-height:22px;cursor:pointer}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-time{padding:0 10px}.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:14px;position:absolute;z-index:60;left:10px;top:10px;height:30px;line-height:30px;padding:0 10px;border-radius:3px;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 .artplayer-info{display:none;position:absolute;left:10px;top:10px;z-index:80;width:350px;min-height:150px;padding:10px;color:#fff;font-size:12px;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;background:rgba(0,0,0,.7)}.artplayer-video-player .artplayer-info .art-info-item{display:flex;margin-bottom:5px}.artplayer-video-player .artplayer-info .art-info-item .art-info-title{width:100px;text-align:right}.artplayer-video-player .artplayer-info .art-info-item .art-info-content{flex:1;padding-left:5px}.artplayer-video-player .artplayer-info .artplayer-info-close{position:absolute;top:5px;right:5px;cursor:pointer}.artplayer-video-player.artplayer-error .art-progress-indicator,.artplayer-video-player.artplayer-error .art-progress-tip{display:none!important} \ No newline at end of file diff --git a/docs/img/yourName.png b/docs/img/yourName.png index de5054df62565c1a272129a5faeecc002616e5cd..bda42feaa1b04d3750f4f3d8e9ffc3312ef0eb4f 100644 GIT binary patch literal 32543 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%0DvN9@Yf*3qJ(A&$yQFq)N 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 - -

点击关闭

- - `, + html: '', style: { - 'font-size': '12px', - 'text-shadow': '0.5px 0.5px 0.5px rgba(0,0,0,.5)', 'top': '20px', 'right': '20px', - 'text-align': 'center', 'opacity': '.9' } }, dom => { diff --git a/docs/js/artplayer.js b/docs/js/artplayer.js index 19cbb4d45..221595f9b 100644 --- a/docs/js/artplayer.js +++ b/docs/js/artplayer.js @@ -414,6 +414,14 @@ return returnValue; } + function getStorage(key) { + var storage = JSON.parse(localStorage.getItem('artplayer_settings')) || {}; + return key ? storage[key] : storage; + } + function setStorage(key, value) { + var storage = Object.assign({}, getStorage(), defineProperty({}, key, value)); + localStorage.setItem('artplayer_settings', JSON.stringify(storage)); + } function validOption(option) { errorHandle(option.container, '\'container\' option is required.'); @@ -798,13 +806,13 @@ i18n = _this$art5.i18n, notice = _this$art5.notice; - if (percentage) { + if (percentage !== undefined) { $video.volume = clamp(percentage, 0, 1); notice.show("".concat(i18n.get('Volume'), ": ").concat(parseInt($video.volume * 100))); this.art.emit('volume', $video.volume); } - return $video.volume; + return $video.volume || 0; } }, { key: "currentTime", @@ -869,11 +877,17 @@ var pause = "\n \n"; + var volume = "\n \n"; + + var volumeClose = "\n \n \n"; + var icons = { loading: loading, playBig: playBig, play: play, - pause: pause + pause: pause, + volume: volume, + volumeClose: volumeClose }; function creatDomFromSvg(map) { @@ -921,10 +935,10 @@ }); this.art.on('video:playing', function () { _this.$play.style.display = 'none'; - _this.$pause.style.display = 'inline-block'; + _this.$pause.style.display = 'block'; }); this.art.on('video:pause', function () { - _this.$play.style.display = 'inline-block'; + _this.$play.style.display = 'block'; _this.$pause.style.display = 'none'; }); } @@ -1130,12 +1144,59 @@ return Time; }(); - var Volume = function Volume(art, option) { - classCallCheck(this, Volume); + var Volume = + /*#__PURE__*/ + function () { + function Volume(art, option) { + classCallCheck(this, Volume); - this.art = art; - this.option = option; - }; + this.art = art; + this.option = option; + this.init(); + } + + createClass(Volume, [{ + key: "init", + value: function init() { + var _this = this; + + var _this$art = this.art, + proxy = _this$art.events.proxy, + player = _this$art.player; + this.$volume = append(this.option.ref, icons$1.volume); + this.$volumeClose = append(this.option.ref, icons$1.volumeClose); + this.$volumeClose.style.display = 'none'; + proxy(this.$volume, 'click', function () { + _this.$volume.style.display = 'none'; + _this.$volumeClose.style.display = 'block'; + setStorage('volume', player.volume()); + player.volume(0); + }); + proxy(this.$volumeClose, 'click', function () { + _this.$volume.style.display = 'block'; + _this.$volumeClose.style.display = 'none'; + player.volume(getStorage('volume') || 0.7); + }); + proxy(this.option.ref, 'mouseenter', function () { + console.log('mouseenter'); + }); + proxy(this.option.ref, 'mouseleave', function () { + console.log('mouseleave'); + }); + this.art.on('video:volumechange', function () { + if (player.volume() === 0) { + _this.$volume.style.display = 'none'; + _this.$volumeClose.style.display = 'block'; + } else { + _this.$volume.style.display = 'block'; + _this.$volumeClose.style.display = 'none'; + } + }); + } + }]); + + return Volume; + }(); var Setting = function Setting(art, option) { classCallCheck(this, Setting); @@ -1620,7 +1681,8 @@ method: 'HEAD' }).then(function (data) { types.forEach(function (item) { - item.innerHTML = data.headers.get(item.dataset.head) || 'unknown'; + var value = data.headers.get(item.dataset.head); + item.innerHTML = value !== undefined ? value : 'unknown'; }); }).catch(function () { types.forEach(function (item) { @@ -1639,7 +1701,8 @@ this.timer = setTimeout(function () { var types = Array.from($infoPanel.querySelectorAll('[data-video]')); types.forEach(function (item) { - item.innerHTML = $video[item.dataset.video] || 'unknown'; + var value = $video[item.dataset.video]; + item.innerHTML = value !== undefined ? value : 'unknown'; }); _this2.loop(); diff --git a/docs/js/artplayer.js.map b/docs/js/artplayer.js.map index 49ef115e3..38cb4c660 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/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../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/inherits.js","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/objectSpread.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","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.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/verification/control.js","../../src/controls/danmu.js","../../src/controls/fullscreen.js","../../src/controls/pip.js","../../src/icons/index.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/thumbnails.js","../../src/controls/index.js","../../src/contextmenu.js","../../src/danmu.js","../../src/info.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/index.js"],"sourcesContent":["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 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;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","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;","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 _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","var defineProperty = require(\"./defineProperty\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;","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;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","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 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\nexport function errorHandle(condition, msg) {\n const isFun = typeof condition === 'function';\n if (isFun ? !isFun() : !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 child;\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\nexport function deepMerge(...sources) {\n const isObject = value => value !== null && typeof value === 'object';\n let returnValue = {};\n for (const source of sources) {\n if (Array.isArray(source)) {\n if (!Array.isArray(returnValue)) {\n returnValue = [];\n }\n returnValue = [...returnValue, ...source];\n } else if (isObject(source)) {\n for (let [key, value] of Object.entries(source)) {\n if (isObject(value) && Reflect.has(returnValue, key)) {\n value = deepMerge(returnValue[key], value);\n }\n returnValue = { ...returnValue, [key]: value };\n }\n }\n }\n return returnValue;\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 typeof option.loop === 'boolean',\n `'loop' option require 'boolean' type, but got '${typeof option.loop}'.`\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
[x]
\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 refs.$info = refs.$container.querySelector('.artplayer-info');\n refs.$infoPanel = refs.$container.querySelector('.artplayer-info-panel');\n refs.$infoClose = refs.$container.querySelector('.artplayer-info-close');\n }\n}\n","let i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Volume': '音量',\n 'Start': '开始',\n 'Pause': '暂停',\n 'Rate': '速度'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Volume': '音量',\n 'Start': '開始',\n 'Pause': '暫停',\n 'Rate': '速度'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.option = option;\n this.init();\n }\n\n init() {\n this.language = i18nMap[this.option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(callback) {\n i18nMap = callback(i18nMap);\n this.init();\n }\n}\n","import { clamp, secondToTime } 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: { $player, $video }, i18n, notice } = 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 if (this.art.option.loop) {\n this.seek(0);\n this.play();\n }\n });\n\n this.art.on('video:error', () => {\n this.art.isError = true;\n this.art.isPlaying = false;\n this.art.loading.hide();\n this.art.controls.hide();\n $player.classList.add('artplayer-error');\n notice.show(i18n.get('Video load failed'), false);\n this.art.destroy();\n });\n }\n\n play() {\n const { refs: { $video }, i18n, notice } = this.art;\n const promise = $video.play();\n notice.show(i18n.get('Start'));\n this.art.emit('play', $video);\n return promise;\n }\n\n pause() {\n const { refs: { $video }, i18n, notice } = this.art;\n $video.pause();\n notice.show(i18n.get('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 { refs: { $video }, notice } = this.art;\n let newTime = Math.max(time, 0);\n if ($video.duration) {\n newTime = Math.min(newTime, $video.duration);\n }\n $video.currentTime = newTime;\n notice.show(`${secondToTime(newTime)} / ${secondToTime($video.duration)}`);\n this.art.emit('seek', newTime);\n }\n\n volume(percentage) {\n const { refs: { $video }, i18n, notice } = this.art;\n if (percentage) {\n $video.volume = clamp(percentage, 0, 1);\n notice.show(`${i18n.get('Volume')}: ${parseInt($video.volume * 100)}`);\n this.art.emit('volume', $video.volume);\n }\n return $video.volume;\n }\n\n currentTime() {\n return this.art.refs.$video.currentTime || 0;\n }\n\n duration() {\n return this.art.refs.$video.duration || 0;\n }\n\n playbackRate(rate) {\n const { refs: { $video }, i18n, notice } = this.art;\n const newRate = clamp(rate, 0.1, 10);\n $video.playbackRate = newRate;\n notice.show(`${i18n.get('Rate')}: ${newRate}x`);\n this.art.emit('playbackRate', newRate);\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","import loading from './loading.svg';\nimport playBig from './play-big.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\n\nconst icons = {\n loading,\n playBig,\n play,\n pause\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 { append } from '../utils';\nimport icons from '../icons';\n\nexport default class PlayAndPause {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n this.init();\n }\n\n init() {\n const { events: { proxy }, player } = this.art;\n\n this.$play = append(this.option.ref, icons.play);\n this.$pause = append(this.option.ref, icons.pause);\n this.$pause.style.display = 'none';\n\n proxy(this.$play, 'click', () => {\n player.play();\n });\n\n proxy(this.$pause, 'click', () => {\n player.pause();\n });\n\n this.art.on('video:playing', () => {\n this.$play.style.display = 'none';\n this.$pause.style.display = 'inline-block';\n });\n\n this.art.on('video:pause', () => {\n this.$play.style.display = 'inline-block';\n this.$pause.style.display = 'none';\n });\n }\n}\n","import { append } 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.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 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.$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.getPosFromEvent(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.getPosFromEvent(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.getPosFromEvent(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 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","import { secondToTime } from '../utils';\n\nexport default class Time {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n this.init();\n }\n\n init() {\n this.option.ref.innerHTML = '00:00 / 00:00';\n\n this.art.on('video:canplay', () => {\n this.option.ref.innerHTML = this.getTime();\n });\n\n this.art.on('video:timeupdate', () => {\n this.option.ref.innerHTML = this.getTime();\n });\n\n this.art.on('video:seeking', () => {\n this.option.ref.innerHTML = this.getTime();\n });\n }\n\n getTime() {\n const { player } = this.art;\n return `${secondToTime(player.currentTime())} / ${secondToTime(player.duration())}`;\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","export default class Thumbnails {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n this.init();\n }\n\n init() {\n const {\n refs: { $progress },\n events: { proxy }\n } = this.art;\n\n proxy($progress, 'mousemove', event => {\n this.option.ref.style.display = 'block';\n this.showThumbnails(event);\n });\n\n proxy($progress, 'mouseout', () => {\n this.option.ref.style.display = 'none';\n });\n }\n\n showThumbnails(event) {\n const { $progress } = this.art.refs;\n const { width: posWidth } = this.getPosFromEvent(event);\n const { url, height, width, number, column } = this.art.option.thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.ceil(posWidth / perWidth);\n let yIndex = Math.ceil(perIndex / column);\n let xIndex = perIndex % column || column;\n\n this.option.ref.style.backgroundImage = `url(${url})`;\n this.option.ref.style.height = `${height}px`;\n this.option.ref.style.width = `${width}px`;\n this.option.ref.style.backgroundPosition = `-${--xIndex * width}px -${--yIndex * height}px`;\n\n if (posWidth <= width / 2) {\n this.option.ref.style.left = 0;\n } else if (posWidth > $progress.clientWidth - width / 2) {\n this.option.ref.style.left = `${$progress.clientWidth - width}px`;\n } else {\n this.option.ref.style.left = `${posWidth - width / 2}px`;\n }\n }\n}\n","import { secondToTime, clamp } from '../utils';\nimport 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';\nimport Thumbnails from './thumbnails';\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: Thumbnails,\n disable: !this.art.option.thumbnails.url,\n position: 'top',\n index: 20\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, 'getPosFromEvent', {\n value: event => {\n const { $video, $progress } = this.art.refs;\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.x - left, 0, $progress.clientWidth);\n const second = width / $progress.clientWidth * $video.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\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: '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","import { append } from './utils';\n\nexport default class Info {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs: { $infoClose }, events: { proxy } } = this.art;\n proxy($infoClose, 'click', () => {\n this.hide();\n });\n }\n\n show() {\n const { $info, $infoPanel } = this.art.refs;\n $info.style.display = 'block';\n if (!$infoPanel.innerHTML) {\n append($infoPanel, this.creatInfo());\n this.getHeader();\n }\n clearTimeout(this.timer);\n this.loop();\n this.art.emit('info:show', $info);\n }\n\n creatInfo() {\n const infoHtml = [];\n\n infoHtml.push(`\n
\n
Player version:
\n
__VERSION__
\n
\n `);\n\n infoHtml.push(`\n
\n
Video url:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video type:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video size:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video volume:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video time:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video duration:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video resolution:
\n
\n x \n
\n
\n `);\n\n return infoHtml.join('');\n }\n\n getHeader() {\n const { option: { url }, refs: { $infoPanel } } = this.art;\n const types = Array.from($infoPanel.querySelectorAll('[data-head]'));\n fetch(url, {\n method: 'HEAD'\n }).then(data => {\n types.forEach(item => {\n item.innerHTML = data.headers.get(item.dataset.head) || 'unknown';\n });\n }).catch(() => {\n types.forEach(item => {\n item.innerHTML = 'unknown';\n });\n });\n }\n\n loop() {\n const { $infoPanel, $video } = this.art.refs;\n this.timer = setTimeout(() => {\n const types = Array.from($infoPanel.querySelectorAll('[data-video]'));\n types.forEach(item => {\n item.innerHTML = $video[item.dataset.video] || 'unknown';\n });\n this.loop();\n }, 1000);\n }\n\n hide() {\n const { $info } = this.art.refs;\n $info.style.display = 'none';\n clearTimeout(this.timer);\n this.art.emit('info:hide', $info);\n }\n}\n","import { errorHandle, getExt, setStyle } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n this.checkExt(this.art.option.subtitle.url);\n this.init();\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\n this.load(subtitle.url).then(data => {\n $track.src = data;\n $video.appendChild($track);\n this.art.refs.$track = $track;\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\n load(url) {\n let type;\n return fetch(url)\n .then(response => {\n type = response.headers.get('Content-Type');\n return response.text();\n })\n .then(text => {\n if ((/x-subrip/gi).test(type)) {\n return this.srtToVtt(text);\n }\n return url;\n })\n .catch(err => {\n throw err;\n });\n }\n\n srtToVtt(text) {\n const vttText = 'WEBVTT \\r\\n\\r\\n'.concat(\n text\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .concat('\\r\\n\\r\\n')\n );\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt'\n })\n );\n }\n\n checkExt(url) {\n const ext = getExt(url);\n errorHandle(\n ext === 'vtt' || ext === 'srt',\n `'subtitle.url' option require 'vtt' or 'srt' format, but got '${ext}'.`\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 this.checkExt(url);\n errorHandle($track, 'You need to initialize the subtitle option first.');\n this.load(url).then(data => {\n if (url !== data) {\n $track.src = data;\n this.art.emit('subtitle:switch', url);\n }\n });\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 this.destroyEvents.push(() => {\n target.removeEventListener(name, callback, option);\n });\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 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 switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n break;\n case 38:\n event.preventDefault();\n player.volume(player.volume() + 0.05);\n break;\n case 40:\n event.preventDefault();\n player.volume(player.volume() - 0.05);\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 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 = true, time = 1000) {\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 }, time);\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 refs,\n events: { proxy }\n } = this.art;\n\n append(refs.$mask, icons.playBig);\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 = 'block';\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 { deepMerge } from './utils';\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 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 = deepMerge({}, 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: 60,\n width: 160,\n height: 90,\n column: 10\n },\n volume: 0.7,\n autoplay: false,\n loop: 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 name = Plugin.name.toLowerCase();\n const installedPlugins = this.plugins || (this.plugins = {});\n if (!installedPlugins[name]) {\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n installedPlugins[name] = new Plugin(...args);\n this.prototype.emit('use', Plugin);\n }\n return this;\n }\n\n init() {\n this.isError = false;\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.notice = new Notice(this);\n this.events = new Events(this);\n this.player = new Player(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.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(removeHtml = false) {\n this.events.destroy();\n instances.splice(instances.indexOf(this), 1);\n if (removeHtml) {\n this.refs.$container.innerHTML = '';\n }\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","isFun","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","deepMerge","isObject","value","returnValue","sources","source","Array","isArray","entries","Reflect","has","validOption","option","container","poster","prototype","toString","call","thumbnails","volume","autoplay","loop","indexOf","preload","lang","type","mimeCodec","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","$info","$infoPanel","$infoClose","i18nMap","I18n","language","callback","Player","eventBind","src","proxy","i18n","notice","config","eventName","event","emit","on","show","hide","mask","promise","play","undefined","then","catch","err","console","warn","isPlaying","seek","isError","classList","add","get","destroy","pause","time","newTime","duration","currentTime","percentage","parseInt","rate","newRate","playbackRate","validControl","control","disable","position","index","Danmu","Fullscreen","Pip","icons","playBig","creatDomFromSvg","result","tmp","document","createElement","childNodes","PlayAndPause","player","$play","ref","$pause","display","Progress","isDroging","getLoaded","bind","getPlayed","set","$loaded","$played","$highlight","$indicator","$tip","item","left","Number","text","path","showHighlight","showTime","target","getPosFromEvent","remove","dataset","clientWidth","width","tipWidth","buffered","length","end","Subtitle","Time","getTime","Volume","Setting","Thumbnails","showThumbnails","posWidth","height","number","column","perWidth","perIndex","ceil","yIndex","xIndex","backgroundImage","backgroundPosition","id","Controls","$map","top","right","mount","tooltip","$control","setAttribute","commonMethod","push","sort","controlIndex","defineProperty","getBoundingClientRect","x","Contextmenu","click","info","link","preventDefault","isFocus","$contextmenu","creatMenu","setPos","$menu","href","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","creatInfo","getHeader","clearTimeout","timer","infoHtml","types","from","querySelectorAll","fetch","method","data","headers","head","setTimeout","checkExt","$track","default","kind","load","textTracks","track","activeCues","cue","template","getCueAsHTML","response","test","srtToVtt","vttText","concat","replace","URL","createObjectURL","Blob","ext","Events","destroyEvents","addEventListener","removeEventListener","Hotkey","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","toggle","Layers","$layer","zIndex","html","Loading","Notice","autoHide","Mask","instances","Artplayer","DEFAULTS","danmu","removeHtml","splice","Plugin","installedPlugins","plugins","args","arguments","slice","unshift","navigator","Emitter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../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/inherits.js","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/objectSpread.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","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.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/verification/control.js","../../src/controls/danmu.js","../../src/controls/fullscreen.js","../../src/controls/pip.js","../../src/icons/index.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/thumbnails.js","../../src/controls/index.js","../../src/contextmenu.js","../../src/danmu.js","../../src/info.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/index.js"],"sourcesContent":["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 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;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","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;","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 _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","var defineProperty = require(\"./defineProperty\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;","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;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","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 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\nexport function errorHandle(condition, msg) {\n const isFun = typeof condition === 'function';\n if (isFun ? !isFun() : !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 child;\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\nexport function deepMerge(...sources) {\n const isObject = value => value !== null && typeof value === 'object';\n let returnValue = {};\n for (const source of sources) {\n if (Array.isArray(source)) {\n if (!Array.isArray(returnValue)) {\n returnValue = [];\n }\n returnValue = [...returnValue, ...source];\n } else if (isObject(source)) {\n for (let [key, value] of Object.entries(source)) {\n if (isObject(value) && Reflect.has(returnValue, key)) {\n value = deepMerge(returnValue[key], value);\n }\n returnValue = { ...returnValue, [key]: value };\n }\n }\n }\n return returnValue;\n}\n\nexport function getStorage(key) {\n const storage = JSON.parse(localStorage.getItem('artplayer_settings')) || {};\n return key ? storage[key] : storage;\n}\n\nexport function setStorage(key, value) {\n const storage = Object.assign({}, getStorage(), {\n [key]: value\n });\n localStorage.setItem('artplayer_settings', JSON.stringify(storage));\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 typeof option.loop === 'boolean',\n `'loop' option require 'boolean' type, but got '${typeof option.loop}'.`\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
[x]
\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 refs.$info = refs.$container.querySelector('.artplayer-info');\n refs.$infoPanel = refs.$container.querySelector('.artplayer-info-panel');\n refs.$infoClose = refs.$container.querySelector('.artplayer-info-close');\n }\n}\n","let i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Volume': '音量',\n 'Start': '开始',\n 'Pause': '暂停',\n 'Rate': '速度'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Volume': '音量',\n 'Start': '開始',\n 'Pause': '暫停',\n 'Rate': '速度'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.option = option;\n this.init();\n }\n\n init() {\n this.language = i18nMap[this.option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(callback) {\n i18nMap = callback(i18nMap);\n this.init();\n }\n}\n","import { clamp, secondToTime } 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: { $player, $video }, i18n, notice } = 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 if (this.art.option.loop) {\n this.seek(0);\n this.play();\n }\n });\n\n this.art.on('video:error', () => {\n this.art.isError = true;\n this.art.isPlaying = false;\n this.art.loading.hide();\n this.art.controls.hide();\n $player.classList.add('artplayer-error');\n notice.show(i18n.get('Video load failed'), false);\n this.art.destroy();\n });\n }\n\n play() {\n const { refs: { $video }, i18n, notice } = this.art;\n const promise = $video.play();\n notice.show(i18n.get('Start'));\n this.art.emit('play', $video);\n return promise;\n }\n\n pause() {\n const { refs: { $video }, i18n, notice } = this.art;\n $video.pause();\n notice.show(i18n.get('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 { refs: { $video }, notice } = this.art;\n let newTime = Math.max(time, 0);\n if ($video.duration) {\n newTime = Math.min(newTime, $video.duration);\n }\n $video.currentTime = newTime;\n notice.show(`${secondToTime(newTime)} / ${secondToTime($video.duration)}`);\n this.art.emit('seek', newTime);\n }\n\n volume(percentage) {\n const { refs: { $video }, i18n, notice } = this.art;\n if (percentage !== undefined) {\n $video.volume = clamp(percentage, 0, 1);\n notice.show(`${i18n.get('Volume')}: ${parseInt($video.volume * 100)}`);\n this.art.emit('volume', $video.volume);\n }\n return $video.volume || 0;\n }\n\n currentTime() {\n return this.art.refs.$video.currentTime || 0;\n }\n\n duration() {\n return this.art.refs.$video.duration || 0;\n }\n\n playbackRate(rate) {\n const { refs: { $video }, i18n, notice } = this.art;\n const newRate = clamp(rate, 0.1, 10);\n $video.playbackRate = newRate;\n notice.show(`${i18n.get('Rate')}: ${newRate}x`);\n this.art.emit('playbackRate', newRate);\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","import loading from './loading.svg';\nimport playBig from './play-big.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\n\nconst icons = {\n loading,\n playBig,\n play,\n pause,\n volume,\n volumeClose\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 { append } from '../utils';\nimport icons from '../icons';\n\nexport default class PlayAndPause {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n this.init();\n }\n\n init() {\n const { events: { proxy }, player } = this.art;\n\n this.$play = append(this.option.ref, icons.play);\n this.$pause = append(this.option.ref, icons.pause);\n this.$pause.style.display = 'none';\n\n proxy(this.$play, 'click', () => {\n player.play();\n });\n\n proxy(this.$pause, 'click', () => {\n player.pause();\n });\n\n this.art.on('video:playing', () => {\n this.$play.style.display = 'none';\n this.$pause.style.display = 'block';\n });\n\n this.art.on('video:pause', () => {\n this.$play.style.display = 'block';\n this.$pause.style.display = 'none';\n });\n }\n}\n","import { append } 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.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 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.$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.getPosFromEvent(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.getPosFromEvent(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.getPosFromEvent(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 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","import { secondToTime } from '../utils';\n\nexport default class Time {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n this.init();\n }\n\n init() {\n this.option.ref.innerHTML = '00:00 / 00:00';\n\n this.art.on('video:canplay', () => {\n this.option.ref.innerHTML = this.getTime();\n });\n\n this.art.on('video:timeupdate', () => {\n this.option.ref.innerHTML = this.getTime();\n });\n\n this.art.on('video:seeking', () => {\n this.option.ref.innerHTML = this.getTime();\n });\n }\n\n getTime() {\n const { player } = this.art;\n return `${secondToTime(player.currentTime())} / ${secondToTime(player.duration())}`;\n }\n}\n","import { append, setStorage, getStorage } from '../utils';\nimport icons from '../icons';\n\nexport default class Volume {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n this.init();\n }\n\n init() {\n const { events: { proxy }, player } = this.art;\n this.$volume = append(this.option.ref, icons.volume);\n this.$volumeClose = append(this.option.ref, icons.volumeClose);\n this.$volumeClose.style.display = 'none';\n\n proxy(this.$volume, 'click', () => {\n this.$volume.style.display = 'none';\n this.$volumeClose.style.display = 'block';\n setStorage('volume', player.volume());\n player.volume(0);\n });\n\n proxy(this.$volumeClose, 'click', () => {\n this.$volume.style.display = 'block';\n this.$volumeClose.style.display = 'none';\n player.volume(getStorage('volume') || 0.7);\n });\n\n proxy(this.option.ref, 'mouseenter', () => {\n console.log('mouseenter');\n });\n\n proxy(this.option.ref, 'mouseleave', () => {\n console.log('mouseleave');\n });\n\n this.art.on('video:volumechange', () => {\n if (player.volume() === 0) {\n this.$volume.style.display = 'none';\n this.$volumeClose.style.display = 'block';\n } else {\n this.$volume.style.display = 'block';\n this.$volumeClose.style.display = 'none';\n }\n });\n }\n}\n","export default class Setting {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Thumbnails {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n this.init();\n }\n\n init() {\n const {\n refs: { $progress },\n events: { proxy }\n } = this.art;\n\n proxy($progress, 'mousemove', event => {\n this.option.ref.style.display = 'block';\n this.showThumbnails(event);\n });\n\n proxy($progress, 'mouseout', () => {\n this.option.ref.style.display = 'none';\n });\n }\n\n showThumbnails(event) {\n const { $progress } = this.art.refs;\n const { width: posWidth } = this.getPosFromEvent(event);\n const { url, height, width, number, column } = this.art.option.thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.ceil(posWidth / perWidth);\n let yIndex = Math.ceil(perIndex / column);\n let xIndex = perIndex % column || column;\n\n this.option.ref.style.backgroundImage = `url(${url})`;\n this.option.ref.style.height = `${height}px`;\n this.option.ref.style.width = `${width}px`;\n this.option.ref.style.backgroundPosition = `-${--xIndex * width}px -${--yIndex * height}px`;\n\n if (posWidth <= width / 2) {\n this.option.ref.style.left = 0;\n } else if (posWidth > $progress.clientWidth - width / 2) {\n this.option.ref.style.left = `${$progress.clientWidth - width}px`;\n } else {\n this.option.ref.style.left = `${posWidth - width / 2}px`;\n }\n }\n}\n","import { secondToTime, clamp } from '../utils';\nimport 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';\nimport Thumbnails from './thumbnails';\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: Thumbnails,\n disable: !this.art.option.thumbnails.url,\n position: 'top',\n index: 20\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, 'getPosFromEvent', {\n value: event => {\n const { $video, $progress } = this.art.refs;\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.x - left, 0, $progress.clientWidth);\n const second = width / $progress.clientWidth * $video.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\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: '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","import { append } from './utils';\n\nexport default class Info {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs: { $infoClose }, events: { proxy } } = this.art;\n proxy($infoClose, 'click', () => {\n this.hide();\n });\n }\n\n show() {\n const { $info, $infoPanel } = this.art.refs;\n $info.style.display = 'block';\n if (!$infoPanel.innerHTML) {\n append($infoPanel, this.creatInfo());\n this.getHeader();\n }\n clearTimeout(this.timer);\n this.loop();\n this.art.emit('info:show', $info);\n }\n\n creatInfo() {\n const infoHtml = [];\n\n infoHtml.push(`\n
\n
Player version:
\n
__VERSION__
\n
\n `);\n\n infoHtml.push(`\n
\n
Video url:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video type:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video size:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video volume:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video time:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video duration:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video resolution:
\n
\n x \n
\n
\n `);\n\n return infoHtml.join('');\n }\n\n getHeader() {\n const { option: { url }, refs: { $infoPanel } } = this.art;\n const types = Array.from($infoPanel.querySelectorAll('[data-head]'));\n fetch(url, {\n method: 'HEAD'\n }).then(data => {\n types.forEach(item => {\n const value = data.headers.get(item.dataset.head);\n item.innerHTML = value !== undefined ? value : 'unknown';\n });\n }).catch(() => {\n types.forEach(item => {\n item.innerHTML = 'unknown';\n });\n });\n }\n\n loop() {\n const { $infoPanel, $video } = this.art.refs;\n this.timer = setTimeout(() => {\n const types = Array.from($infoPanel.querySelectorAll('[data-video]'));\n types.forEach(item => {\n const value = $video[item.dataset.video];\n item.innerHTML = value !== undefined ? value : 'unknown';\n });\n this.loop();\n }, 1000);\n }\n\n hide() {\n const { $info } = this.art.refs;\n $info.style.display = 'none';\n clearTimeout(this.timer);\n this.art.emit('info:hide', $info);\n }\n}\n","import { errorHandle, getExt, setStyle } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n this.checkExt(this.art.option.subtitle.url);\n this.init();\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\n this.load(subtitle.url).then(data => {\n $track.src = data;\n $video.appendChild($track);\n this.art.refs.$track = $track;\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\n load(url) {\n let type;\n return fetch(url)\n .then(response => {\n type = response.headers.get('Content-Type');\n return response.text();\n })\n .then(text => {\n if ((/x-subrip/gi).test(type)) {\n return this.srtToVtt(text);\n }\n return url;\n })\n .catch(err => {\n throw err;\n });\n }\n\n srtToVtt(text) {\n const vttText = 'WEBVTT \\r\\n\\r\\n'.concat(\n text\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .concat('\\r\\n\\r\\n')\n );\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt'\n })\n );\n }\n\n checkExt(url) {\n const ext = getExt(url);\n errorHandle(\n ext === 'vtt' || ext === 'srt',\n `'subtitle.url' option require 'vtt' or 'srt' format, but got '${ext}'.`\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 this.checkExt(url);\n errorHandle($track, 'You need to initialize the subtitle option first.');\n this.load(url).then(data => {\n if (url !== data) {\n $track.src = data;\n this.art.emit('subtitle:switch', url);\n }\n });\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 this.destroyEvents.push(() => {\n target.removeEventListener(name, callback, option);\n });\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 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 switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n break;\n case 38:\n event.preventDefault();\n player.volume(player.volume() + 0.05);\n break;\n case 40:\n event.preventDefault();\n player.volume(player.volume() - 0.05);\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 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 = true, time = 1000) {\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 }, time);\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 refs,\n events: { proxy }\n } = this.art;\n\n append(refs.$mask, icons.playBig);\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 = 'block';\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 { deepMerge } from './utils';\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 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 = deepMerge({}, 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: 60,\n width: 160,\n height: 90,\n column: 10\n },\n volume: 0.7,\n autoplay: false,\n loop: 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 name = Plugin.name.toLowerCase();\n const installedPlugins = this.plugins || (this.plugins = {});\n if (!installedPlugins[name]) {\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n installedPlugins[name] = new Plugin(...args);\n this.prototype.emit('use', Plugin);\n }\n return this;\n }\n\n init() {\n this.isError = false;\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.notice = new Notice(this);\n this.events = new Events(this);\n this.player = new Player(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.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(removeHtml = false) {\n this.events.destroy();\n instances.splice(instances.indexOf(this), 1);\n if (removeHtml) {\n this.refs.$container.innerHTML = '';\n }\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","isFun","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","deepMerge","isObject","value","returnValue","sources","source","Array","isArray","entries","Reflect","has","getStorage","storage","JSON","parse","localStorage","getItem","setStorage","assign","setItem","stringify","validOption","option","container","poster","prototype","toString","call","thumbnails","volume","autoplay","loop","indexOf","preload","lang","type","mimeCodec","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","$info","$infoPanel","$infoClose","i18nMap","I18n","language","callback","Player","eventBind","src","proxy","i18n","notice","config","eventName","event","emit","on","show","hide","mask","promise","play","undefined","then","catch","err","console","warn","isPlaying","seek","isError","classList","add","get","destroy","pause","time","newTime","duration","currentTime","percentage","parseInt","rate","newRate","playbackRate","validControl","control","disable","position","index","Danmu","Fullscreen","Pip","icons","playBig","volumeClose","creatDomFromSvg","result","tmp","document","createElement","childNodes","PlayAndPause","player","$play","ref","$pause","display","Progress","isDroging","getLoaded","bind","getPlayed","set","$loaded","$played","$highlight","$indicator","$tip","item","left","Number","text","path","showHighlight","showTime","target","getPosFromEvent","remove","dataset","clientWidth","width","tipWidth","buffered","length","end","Subtitle","Time","getTime","Volume","$volume","$volumeClose","log","Setting","Thumbnails","showThumbnails","posWidth","height","number","column","perWidth","perIndex","ceil","yIndex","xIndex","backgroundImage","backgroundPosition","id","Controls","$map","top","right","mount","tooltip","$control","setAttribute","commonMethod","push","sort","controlIndex","defineProperty","getBoundingClientRect","x","Contextmenu","click","info","link","preventDefault","isFocus","$contextmenu","creatMenu","setPos","$menu","href","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","creatInfo","getHeader","clearTimeout","timer","infoHtml","types","from","querySelectorAll","fetch","method","data","headers","head","setTimeout","checkExt","$track","default","kind","load","textTracks","track","activeCues","cue","template","getCueAsHTML","response","test","srtToVtt","vttText","concat","replace","URL","createObjectURL","Blob","ext","Events","destroyEvents","addEventListener","removeEventListener","Hotkey","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","toggle","Layers","$layer","zIndex","html","Loading","Notice","autoHide","Mask","instances","Artplayer","DEFAULTS","danmu","removeHtml","splice","Plugin","installedPlugins","plugins","args","arguments","slice","unshift","navigator","Emitter"],"mappings":"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"} \ No newline at end of file diff --git a/src/controls/playAndPause.js b/src/controls/playAndPause.js index b895b8933..3c7e3d9a3 100644 --- a/src/controls/playAndPause.js +++ b/src/controls/playAndPause.js @@ -25,11 +25,11 @@ export default class PlayAndPause { this.art.on('video:playing', () => { this.$play.style.display = 'none'; - this.$pause.style.display = 'inline-block'; + this.$pause.style.display = 'block'; }); this.art.on('video:pause', () => { - this.$play.style.display = 'inline-block'; + this.$play.style.display = 'block'; this.$pause.style.display = 'none'; }); } diff --git a/src/controls/volume.js b/src/controls/volume.js index 85f68810b..5d464b406 100644 --- a/src/controls/volume.js +++ b/src/controls/volume.js @@ -1,6 +1,48 @@ +import { append, setStorage, getStorage } from '../utils'; +import icons from '../icons'; + export default class Volume { constructor(art, option) { this.art = art; this.option = option; + this.init(); + } + + init() { + const { events: { proxy }, player } = this.art; + this.$volume = append(this.option.ref, icons.volume); + this.$volumeClose = append(this.option.ref, icons.volumeClose); + this.$volumeClose.style.display = 'none'; + + proxy(this.$volume, 'click', () => { + this.$volume.style.display = 'none'; + this.$volumeClose.style.display = 'block'; + setStorage('volume', player.volume()); + player.volume(0); + }); + + proxy(this.$volumeClose, 'click', () => { + this.$volume.style.display = 'block'; + this.$volumeClose.style.display = 'none'; + player.volume(getStorage('volume') || 0.7); + }); + + proxy(this.option.ref, 'mouseenter', () => { + console.log('mouseenter'); + }); + + proxy(this.option.ref, 'mouseleave', () => { + console.log('mouseleave'); + }); + + this.art.on('video:volumechange', () => { + if (player.volume() === 0) { + this.$volume.style.display = 'none'; + this.$volumeClose.style.display = 'block'; + } else { + this.$volume.style.display = 'block'; + this.$volumeClose.style.display = 'none'; + } + }); } } diff --git a/src/icons/index.js b/src/icons/index.js index d5c87de75..e47176589 100644 --- a/src/icons/index.js +++ b/src/icons/index.js @@ -2,12 +2,16 @@ import loading from './loading.svg'; import playBig from './play-big.svg'; import play from './play.svg'; import pause from './pause.svg'; +import volume from './volume.svg'; +import volumeClose from './volume-close.svg'; const icons = { loading, playBig, play, - pause + pause, + volume, + volumeClose }; function creatDomFromSvg(map) { diff --git a/src/icons/volume-close.svg b/src/icons/volume-close.svg new file mode 100644 index 000000000..965395c2a --- /dev/null +++ b/src/icons/volume-close.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/icons/volume.svg b/src/icons/volume.svg new file mode 100644 index 000000000..bd3625905 --- /dev/null +++ b/src/icons/volume.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/info.js b/src/info.js index 22d507ed2..5c7493e80 100644 --- a/src/info.js +++ b/src/info.js @@ -96,7 +96,8 @@ export default class Info { method: 'HEAD' }).then(data => { types.forEach(item => { - item.innerHTML = data.headers.get(item.dataset.head) || 'unknown'; + const value = data.headers.get(item.dataset.head); + item.innerHTML = value !== undefined ? value : 'unknown'; }); }).catch(() => { types.forEach(item => { @@ -110,7 +111,8 @@ export default class Info { this.timer = setTimeout(() => { const types = Array.from($infoPanel.querySelectorAll('[data-video]')); types.forEach(item => { - item.innerHTML = $video[item.dataset.video] || 'unknown'; + const value = $video[item.dataset.video]; + item.innerHTML = value !== undefined ? value : 'unknown'; }); this.loop(); }, 1000); diff --git a/src/player.js b/src/player.js index dcfd9ac4d..ff8c0a2d8 100644 --- a/src/player.js +++ b/src/player.js @@ -127,12 +127,12 @@ export default class Player { volume(percentage) { const { refs: { $video }, i18n, notice } = this.art; - if (percentage) { + if (percentage !== undefined) { $video.volume = clamp(percentage, 0, 1); notice.show(`${i18n.get('Volume')}: ${parseInt($video.volume * 100)}`); this.art.emit('volume', $video.volume); } - return $video.volume; + return $video.volume || 0; } currentTime() { diff --git a/src/style/index.scss b/src/style/index.scss index 1a9eb7f54..3cc1b7f1d 100644 --- a/src/style/index.scss +++ b/src/style/index.scss @@ -232,22 +232,19 @@ pointer-events: all; display: flex; align-items: center; + justify-content: space-between; height: 40px; .art-control { + float: left; + font-size: 12px; height: 22px; line-height: 22px; - float: left; cursor: pointer; - font-size: 12px; } - .artplayer-controls-left { - - } - - .artplayer-controls-right { - + .art-control-time { + padding: 0 10px; } } } diff --git a/src/utils/index.js b/src/utils/index.js index d2aa697d0..1349e6e8b 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -79,3 +79,15 @@ export function deepMerge(...sources) { } return returnValue; } + +export function getStorage(key) { + const storage = JSON.parse(localStorage.getItem('artplayer_settings')) || {}; + return key ? storage[key] : storage; +} + +export function setStorage(key, value) { + const storage = Object.assign({}, getStorage(), { + [key]: value + }); + localStorage.setItem('artplayer_settings', JSON.stringify(storage)); +}