From 256a8e684e37a93083395f874a3019c62cc7827b Mon Sep 17 00:00:00 2001 From: zhw2590582 Date: Fri, 7 Jan 2022 23:40:58 +0800 Subject: [PATCH] update danmuku --- dist/artplayer-plugin-danmuku.js | 4 +- dist/artplayer.js | 4 +- docs/uncompiled/artplayer-plugin-danmuku.js | 74 +++++++------------ .../artplayer-plugin-danmuku.js.map | 2 +- docs/uncompiled/artplayer.js | 10 +-- .../dist/artplayer-plugin-danmuku.js | 4 +- .../artplayer-plugin-danmuku/package.json | 2 +- .../artplayer-plugin-danmuku/src/danmuku.js | 20 +++-- packages/artplayer/dist/artplayer.js | 4 +- 9 files changed, 52 insertions(+), 72 deletions(-) diff --git a/dist/artplayer-plugin-danmuku.js b/dist/artplayer-plugin-danmuku.js index aefcf3957..740f0b4f5 100644 --- a/dist/artplayer-plugin-danmuku.js +++ b/dist/artplayer-plugin-danmuku.js @@ -1,8 +1,8 @@ /*! - * artplayer-plugin-danmuku.js v4.0.0 + * artplayer-plugin-danmuku.js v4.1.0 * Github: https://github.com/zhw2590582/ArtPlayer#readme * (c) 2017-2022 Harvey Zack * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).artplayerPluginDanmuku=e()}(this,(function(){"use strict";function t(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function e(t,e){for(var n=0;n'.concat(e.get("Danmu opacity"),': 100%
'),mounted:function(e){var i=e.querySelector("input[type=range]"),r=e.querySelector(".art-value");n(i,"change",(function(){var e=i.value;r.innerText=100*Number(e),t.plugins.artplayerPluginDanmuku.config({opacity:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){i.value!==t.opacity&&(i.value=t.opacity,r.innerText=100*t.opacity)}))}}}function r(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-size",index:11,html:'
'.concat(e.get("Danmu size"),': 25px
'),mounted:function(e){var i=e.querySelector("input[type=range]"),r=e.querySelector(".art-value");n(i,"change",(function(){var e=i.value;r.innerText=e,t.plugins.artplayerPluginDanmuku.config({fontSize:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){i.value!==t.fontSize&&(i.value=t.fontSize,r.innerText=t.fontSize)}))}}}function a(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-speed",index:12,html:'
'.concat(e.get("Danmu speed"),': 5s
'),mounted:function(e){var i=e.querySelector("input[type=range]"),r=e.querySelector(".art-value");n(i,"change",(function(){var e=i.value;r.innerText=e,t.plugins.artplayerPluginDanmuku.config({speed:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){i.value!==t.speed&&(i.value=t.speed,r.innerText=t.speed)}))}}}function o(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-synchronousPlayback",index:13,html:'"),mounted:function(e){var i=e.querySelector("input[type=checkbox]");n(i,"change",(function(){t.plugins.artplayerPluginDanmuku.config({synchronousPlayback:i.checked})})),t.on("artplayerPluginDanmuku:config",(function(t){i.checked!==t.synchronousPlayback&&(i.checked=t.synchronousPlayback)}))}}}function u(t,e,n){return t.filter((function(t){return t.$state===e})).map(n)}function s(t,e){var n=t.getBoundingClientRect();return e?n[e]:n}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n[\S ]*?)<\/d>/gi);return e&&e.length?e.map((function(t){var e=c(t.match(/(.+)<\/d>/),3),n=e[1],i=e[2],r=n.split(",");return 8===r.length&&i.trim()?{text:i,time:Number(r[0]),mode:p(Number(r[1])),fontSize:Number(r[2]),color:"#".concat(Number(r[3]).toString(16)),timestamp:Number(r[4]),pool:Number(r[5]),userID:r[6],rowID:Number(r[7])}:null})):[]}(t)}))}function h(t,e){var n=c(t.option.margin,2),i=n[0],r=n[1],a=s(t.art.template.$player),o=t.queue.filter((function(t){return t.mode===e.mode&&"emit"===t.$state&&t.$ref&&t.$ref.style.fontSize===e.$ref.style.fontSize&&parseFloat(t.$ref.style.top)<=a.height-r})).map((function(t){var e=s(t.$ref),n=e.width,i=e.height,r=e.top-a.top,o=e.left-a.left;return{top:r,left:o,height:i,width:n,right:a.width-o-n}})).sort((function(t,e){return t.top-e.top}));return 0===o.length?i:(o.unshift({top:0,left:0,right:0,height:i,width:a.width}),o.push({top:a.height-r,left:0,right:0,height:r,width:a.width}),function(t){for(var e=0,n={},i=0;io&&(e=p,o=f)}if(0===e)for(var h=0,m=0;mh&&(h=d,e=c(g,1)[0].top)}if(0===e){var x=a.filter((function(t,e){return 0!==e&&e!==a.length-1})).sort((function(t,e){return n[t].length-n[e].length}));e=c(x,1)[0]}return e}(o))}function m(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function d(e){for(var n=1;n=t.time&&t.time>=n.currentTime-.1&&"wait"===t.$state})).forEach((function(i){i.$ref=function(t){var e=t.find((function(t){return t.$ref&&"wait"===t.$state}));if(e){var n=e.$ref;return e.$ref=null,n}var i=document.createElement("div");return i.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif;\n font-weight: normal;\n line-height: 1.125;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',i}(t.queue),t.$danmuku.appendChild(i.$ref),i.$ref.style.opacity=t.option.opacity,i.$ref.style.fontSize="".concat(t.option.fontSize,"px"),i.$ref.innerText=i.text,i.$ref.style.color=i.color||"#fff",i.$ref.style.border=i.border?"1px solid ".concat(i.color||"#fff"):"none",i.$restTime=t.option.synchronousPlayback&&n.playbackRate?t.option.speed/Number(n.playbackRate):t.option.speed,i.$lastStartTime=Date.now();var r=s(i.$ref,"width"),a=h(t,i);switch(i.$state="emit",i.mode){case 0:i.$restWidth=e+r+5,i.$ref.style.left="".concat(e,"px"),i.$ref.style.top="".concat(a,"px"),i.$ref.style.transform="translateX(".concat(-i.$restWidth,"px) translateY(0px) translateZ(0px)"),i.$ref.style.transition="transform ".concat(i.$restTime,"s linear 0s");break;case 1:i.$ref.style.top="".concat(a,"px"),i.$ref.style.left="50%",i.$ref.style.marginLeft="-".concat(r/2,"px")}}))}t.isStop||t.update()})),this}},{key:"stop",value:function(){return this.isStop=!0,this.suspend(),window.cancelAnimationFrame(this.animationFrameTimer),this.art.emit("artplayerPluginDanmuku:stop"),this}},{key:"start",value:function(){return this.isStop=!1,this.continue(),this.update(),this.art.emit("artplayerPluginDanmuku:start"),this}},{key:"show",value:function(){return this.isHide=!1,this.$danmuku.style.display="block",this.art.emit("artplayerPluginDanmuku:show"),this}},{key:"hide",value:function(){return this.isHide=!0,this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}},{key:"emit",value:function(t){var e=this.art,n=e.notice,i=e.player,r=e.i18n,a=this.art.constructor,o=a.utils.clamp;return(0,a.validator)(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()?t.text.length>this.option.maxlength?(n.show="".concat(r.get("The length of the danmu does not exceed")," ").concat(this.option.maxlength),this):(t.time?t.time=o(t.time,0,1/0):t.time=i.currentTime+.5,this.queue.push(d(d({mode:0},t),{},{$state:"wait",$ref:null,$restTime:0,$lastStartTime:0,$restWidth:0})),this):(n.show=r.get("Danmu text cannot be empty"),this)}}],p=[{key:"option",get:function(){return{danmuku:[],speed:5,maxlength:50,margin:[10,100],opacity:1,fontSize:25,synchronousPlayback:!1}}},{key:"scheme",get:function(){return{danmuku:"array|function|string",speed:"number",maxlength:"number",margin:"array",opacity:"number",fontSize:"number",synchronousPlayback:"boolean"}}}],c&&e(l.prototype,c),p&&e(l,p),t}();return function(t){return function(e){var n=new y(e,t);return{name:"artplayerPluginDanmuku",emit:n.emit.bind(n),config:n.config.bind(n),hide:n.hide.bind(n),show:n.show.bind(n),get isHide(){return n.isHide}}}}})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).artplayerPluginDanmuku=e()}(this,(function(){"use strict";function t(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function e(t,e){for(var n=0;n'.concat(e.get("Danmu opacity"),': 100%
'),mounted:function(e){var r=e.querySelector("input[type=range]"),i=e.querySelector(".art-value");n(r,"change",(function(){var e=r.value;i.innerText=100*Number(e),t.plugins.artplayerPluginDanmuku.config({opacity:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){r.value!==t.opacity&&(r.value=t.opacity,i.innerText=100*t.opacity)}))}}}function i(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-size",index:11,html:'
'.concat(e.get("Danmu size"),': 25px
'),mounted:function(e){var r=e.querySelector("input[type=range]"),i=e.querySelector(".art-value");n(r,"change",(function(){var e=r.value;i.innerText=e,t.plugins.artplayerPluginDanmuku.config({fontSize:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){r.value!==t.fontSize&&(r.value=t.fontSize,i.innerText=t.fontSize)}))}}}function a(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-speed",index:12,html:'
'.concat(e.get("Danmu speed"),': 5s
'),mounted:function(e){var r=e.querySelector("input[type=range]"),i=e.querySelector(".art-value");n(r,"change",(function(){var e=r.value;i.innerText=e,t.plugins.artplayerPluginDanmuku.config({speed:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){r.value!==t.speed&&(r.value=t.speed,i.innerText=t.speed)}))}}}function o(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-synchronousPlayback",index:13,html:'"),mounted:function(e){var r=e.querySelector("input[type=checkbox]");n(r,"change",(function(){t.plugins.artplayerPluginDanmuku.config({synchronousPlayback:r.checked})})),t.on("artplayerPluginDanmuku:config",(function(t){r.checked!==t.synchronousPlayback&&(r.checked=t.synchronousPlayback)}))}}}function u(t,e,n){return t.filter((function(t){return t.$state===e})).map(n)}function s(t,e){var n=t.getBoundingClientRect();return e?n[e]:n}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n[\S ]*?)<\/d>/gi);return e&&e.length?e.map((function(t){var e=c(t.match(/(.+)<\/d>/),3),n=e[1],r=e[2],i=n.split(",");return 8===i.length&&r.trim()?{text:r,time:Number(i[0]),mode:p(Number(i[1])),fontSize:Number(i[2]),color:"#".concat(Number(i[3]).toString(16)),timestamp:Number(i[4]),pool:Number(i[5]),userID:i[6],rowID:Number(i[7])}:null})):[]}(t)}))}function h(t,e){var n=c(t.option.margin,2),r=n[0],i=n[1],a=s(t.art.template.$player),o=t.queue.filter((function(t){return t.mode===e.mode&&"emit"===t.$state&&t.$ref&&t.$ref.style.fontSize===e.$ref.style.fontSize&&parseFloat(t.$ref.style.top)<=a.height-i})).map((function(t){var e=s(t.$ref),n=e.width,r=e.height,i=e.top-a.top,o=e.left-a.left;return{top:i,left:o,height:r,width:n,right:a.width-o-n}})).sort((function(t,e){return t.top-e.top}));return 0===o.length?r:(o.unshift({top:0,left:0,right:0,height:r,width:a.width}),o.push({top:a.height-i,left:0,right:0,height:i,width:a.width}),function(t){for(var e=0,n={},r=0;ro&&(e=p,o=f)}if(0===e)for(var h=0,m=0;mh&&(h=d,e=c(g,1)[0].top)}if(0===e){var x=a.filter((function(t,e){return 0!==e&&e!==a.length-1})).sort((function(t,e){return n[t].length-n[e].length}));e=c(x,1)[0]}return e}(o))}function m(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var n=1;n=e.time&&e.time>=t.art.currentTime-.1&&"wait"===e.$state})).forEach((function(e){e.$ref=function(t){var e=t.find((function(t){return t.$ref&&"wait"===t.$state}));if(e){var n=e.$ref;return e.$ref=null,n}var r=document.createElement("div");return r.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif;\n font-weight: normal;\n line-height: 1.125;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',r}(t.queue),t.$danmuku.appendChild(e.$ref),e.$ref.style.opacity=t.option.opacity,e.$ref.style.fontSize="".concat(t.option.fontSize,"px"),e.$ref.innerText=e.text,e.$ref.style.color=e.color||"#fff",e.$ref.style.border=e.border?"1px solid ".concat(e.color||"#fff"):"none",e.$restTime=t.option.synchronousPlayback&&t.art.playbackRate?t.option.speed/Number(t.art.playbackRate):t.option.speed,e.$lastStartTime=Date.now();var r=s(e.$ref,"width"),i=h(t,e);switch(e.$state="emit",e.mode){case 0:e.$restWidth=n+r+5,e.$ref.style.left="".concat(n,"px"),e.$ref.style.top="".concat(i,"px"),e.$ref.style.transform="translateX(".concat(-e.$restWidth,"px) translateY(0px) translateZ(0px)"),e.$ref.style.transition="transform ".concat(e.$restTime,"s linear 0s");break;case 1:e.$ref.style.top="".concat(i,"px"),e.$ref.style.left="50%",e.$ref.style.marginLeft="-".concat(r/2,"px")}}))}t.isStop||t.update()})),this}},{key:"stop",value:function(){return this.isStop=!0,this.suspend(),window.cancelAnimationFrame(this.animationFrameTimer),this.art.emit("artplayerPluginDanmuku:stop"),this}},{key:"start",value:function(){return this.isStop=!1,this.continue(),this.update(),this.art.emit("artplayerPluginDanmuku:start"),this}},{key:"show",value:function(){return this.isHide=!1,this.$danmuku.style.display="block",this.art.emit("artplayerPluginDanmuku:show"),this}},{key:"hide",value:function(){return this.isHide=!0,this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}},{key:"emit",value:function(t){var e=this.art,n=e.notice,r=e.i18n,i=this.art.constructor,a=i.utils.clamp;return(0,i.validator)(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()?t.text.length>this.option.maxlength?(n.show="".concat(r.get("The length of the danmu does not exceed")," ").concat(this.option.maxlength),this):(t.time?t.time=a(t.time,0,1/0):t.time=this.art.currentTime+.5,this.queue.push(d(d({mode:0},t),{},{$state:"wait",$ref:null,$restTime:0,$lastStartTime:0,$restWidth:0})),this):(n.show=r.get("Danmu text cannot be empty"),this)}}],p=[{key:"option",get:function(){return{danmuku:[],speed:5,maxlength:50,margin:[10,100],opacity:1,fontSize:25,synchronousPlayback:!1}}},{key:"scheme",get:function(){return{danmuku:"array|function|string",speed:"number",maxlength:"number",margin:"array",opacity:"number",fontSize:"number",synchronousPlayback:"boolean"}}}],c&&e(l.prototype,c),p&&e(l,p),t}();return function(t){return function(e){var n=new y(e,t);return{name:"artplayerPluginDanmuku",emit:n.emit.bind(n),config:n.config.bind(n),hide:n.hide.bind(n),show:n.show.bind(n),get isHide(){return n.isHide}}}}})); diff --git a/dist/artplayer.js b/dist/artplayer.js index 89db30f86..8bf57212b 100644 --- a/dist/artplayer.js +++ b/dist/artplayer.js @@ -1,8 +1,8 @@ /*! - * artplayer.js v4.2.1 + * artplayer.js v4.2.2 * Github: https://github.com/zhw2590582/ArtPlayer#readme * (c) 2017-2022 Harvey Zack * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Artplayer=e()}(this,(function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;r1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function m(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function b(t,e){return t.classList.add(e)}function w(t,e){return t.classList.remove(e)}function x(t,e){return t.classList.contains(e)}function O(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function k(t,e,r){return t.style[e]=r,t}function j(t,e){return Object.keys(e).forEach((function(r){k(t,r,e[r])})),t}function P(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function S(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function R(t,e){S(t).forEach((function(t){return w(t,e)})),b(t,e)}function E(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";d||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function $(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function D(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}function z(t,e){return e.parentNode.replaceChild(t,e),t}function T(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function C(t,e,r){return C=T()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&o(i,r.prototype),i},C.apply(null,arguments)}function A(t){var e="function"==typeof Map?new Map:void 0;return A=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return C(t,arguments,s(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),o(n,t)},A(t)}function L(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=s(t);if(e){var o=s(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var M=function(e){i(o,e);var r=L(o);function o(e,i){var a;return t(this,o),a=r.call(this,e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n(a),i||a.constructor),a.name="ArtPlayerError",a}return o}(A(Error));function q(t,e){if(!t)throw new M(e);return t}function F(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").concat("\r\n\r\n"))}function B(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function I(t){var e=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);return n?{start:r(n[1].trim()),end:r(n[2].trim()),text:n[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map((function(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function V(t){return t.includes("?")?V(t.split("?")[0]):t.includes("#")?V(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function W(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function H(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function J(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),s=0;s0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function tt(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var et=Object.freeze({__proto__:null,query:g,queryAll:m,addClass:b,removeClass:w,hasClass:x,append:O,remove:function(t){return t.parentNode.removeChild(t)},setStyle:k,setStyles:j,getStyle:P,sublings:S,inverseClass:R,tooltip:E,isInViewport:$,includeFromEvent:D,replaceElement:z,ArtPlayerError:M,errorHandle:q,srtToVtt:F,vttToBlob:B,assToVtt:I,getExt:V,download:W,def:U,has:X,get:Q,mergeDeep:Y,sleep:Z,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(f);case"regexp":return t.test(f);default:return!1}}))}}]),e}(),vt=function(){function e(r){var n=this;t(this,e),this.art=r;var o=r.option,i=r.constructor,a=r.whitelist;o.container instanceof Element?this.$container=o.container:(this.$container=g(o.container),q(this.$container,"No container element found by ".concat(o.container)));var c=this.$container.tagName.toLowerCase();q("div"===c,"Unsupported container element type, only support 'div' but got '".concat(c,"'")),q(i.instances.every((function(t){return t.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=r.id,this.$original=this.$container.cloneNode(!0),a.state?this.desktop():this.mobile()}return r(e,[{key:"query",value:function(t){return g(t,this.$container)}},{key:"desktop",value:function(){var t=this.art.option;t.useSSR||(this.$container.innerHTML=e.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),t.backdrop&&(b(this.$settingInner,"art-backdrop-filter"),b(this.$contextmenu,"art-backdrop-filter"),b(this.$info,"art-backdrop-filter")),d&&b(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?z(this.$original,this.$container):b(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
4.2.1
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),e}(),yt={"Video info":"统计信息",Close:"关闭","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","Show setting":"显示设置","Hide setting":"隐藏设置",Screenshot:"截图","Play speed":"播放速度","Aspect ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch video":"切换","Switch subtitle":"切换字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"网页全屏","Exit web fullscreen":"退出网页全屏","Mini player":"迷你播放器","PIP mode":"画中画模式","Exit PIP mode":"退出画中画模式","PIP not supported":"不支持画中画模式","Fullscreen not supported":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},gt={"Video info":"統計訊息",Close:"關閉","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","Show setting":"顯示设置","Hide setting":"隱藏设置",Screenshot:"截圖","Play speed":"播放速度","Aspect ratio":"畫面比例",Default:"默認",Normal:"正常",Open:"打開","Switch video":"切換","Switch subtitle":"切換字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"網頁全屏","Exit web fullscreen":"退出網頁全屏","Mini player":"迷你播放器","PIP mode":"畫中畫模式","Exit PIP mode":"退出畫中畫模式","PIP not supported":"不支持畫中畫模式","Fullscreen not supported":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},mt=function(){function e(r){t(this,e),this.art=r,this.languages={"zh-cn":yt,"zh-tw":gt},this.init()}return r(e,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=Y(this.languages,t),this.init()}}]),e}();var bt={exports:{}};!function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n=0,o=r.length,i={};nd){var h=d*l/s;k(r,"width","".concat(100*h,"%")),k(r,"height","100%"),k(r,"padding","0 ".concat((u-u*h)/2,"px"))}else{var v=s/d/l;k(r,"width","100%"),k(r,"height","".concat(100*v,"%")),k(r,"padding","".concat((p-p*v)/2,"px 0"))}n.dataset.aspectRatio=e}i.show="".concat(o.get("Aspect ratio"),": ").concat("default"===e?o.get("Default"):e),t.emit("aspectRatio",e)}}),U(t,"aspectRatioReset",{set:function(e){if(e&&t.aspectRatio){var r=t.aspectRatio;t.aspectRatio=r}}})}(r),function(t){var e=t.option,r=t.notice,n=t.template.$video,o=document.createElement("canvas");U(t,"getDataURL",{value:function(){return new Promise((function(t,e){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),t(o.toDataURL("image/png"))}catch(t){r.show=t,e(t)}}))}}),U(t,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),o.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){r.show=t,e(t)}}))}}),U(t,"screenshot",{value:function(){return t.getDataURL().then((function(r){return W(r,"".concat(e.title||"artplayer","_").concat(K(n.currentTime),".png")),t.emit("screenshot",r),r}))}})}(r),xt(r),function(t){var e=t.template.$player;U(t,"fullscreenWeb",{get:function(){return x(e,"art-fullscreen-web")},set:function(r){r?(b(e,"art-fullscreen-web"),t.aspectRatioReset=!0,t.autoSize=!1,t.emit("resize"),t.emit("fullscreenWeb",!0)):(w(e,"art-fullscreen-web"),t.aspectRatioReset=!0,t.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}})}(r),Ot(r),function(t){var e=t.template.$video;U(t,"loaded",{get:function(){return t.loadedTime/e.duration}}),U(t,"loadedTime",{get:function(){return e.buffered.length?e.buffered.end(e.buffered.length-1):0}})}(r),function(t){U(t,"played",{get:function(){return t.currentTime/t.duration}})}(r),function(t){var e=t.template.$video;U(t,"playing",{get:function(){return!!(e.currentTime>0&&!e.paused&&!e.ended&&e.readyState>2)}})}(r),function(t){var e=t.template,r=e.$container,n=e.$player,o=e.$video;U(t,"autoSize",{get:function(){return x(r,"art-auto-size")},set:function(e){if(e){var i=o.videoWidth,a=o.videoHeight,c=r.getBoundingClientRect(),s=c.width,l=c.height,u=i/a,p=s/l;if(b(r,"art-auto-size"),p>u)k(n,"width","".concat(l*u/s*100,"%")),k(n,"height","100%");else{var f=s/u/l*100;k(n,"width","100%"),k(n,"height","".concat(f,"%"))}t.emit("autoSize",{width:t.width,height:t.height})}else w(r,"art-auto-size"),k(n,"width",null),k(n,"height",null),t.emit("autoSize")}})}(r),function(t){U(t,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}});for(var e=["bottom","height","left","right","top","width"],r=function(r){var n=e[r];U(t,n,{get:function(){return t.rect[n]}})},n=0;n=1?(e=[n,o],t.emit("loop",e)):(e=[],t.emit("loop"))}else e=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){e.length&&(t.currentTimee[1])&&(t.seek=e[0])}))}(r),function(t){var e=t.template,r=e.$video,n=e.$player,o=t.i18n,i=t.notice;U(t,"rotate",{get:function(){return Number(n.dataset.rotate)||0},set:function(e){e||(e=0);var a=[-270,-180,-90,0,90,180,270];if(q(a.includes(e),"'rotate' only accept ".concat(a.toString()," as parameters")),0===e)delete n.dataset.rotate,k(r,"transform",null);else{t.flip=!1,t.autoSize=!0,n.dataset.rotate=e;var c=function(){var t=r.videoWidth,e=r.videoHeight;return t>e?e/t:t/e},s=0,l=1;switch(e){case-270:s=90,l=c();break;case-180:s=180;break;case-90:s=270,l=c();break;case 90:s=90,l=c();break;case 180:s=180;break;case 270:s=270,l=c()}k(r,"transform","rotate(".concat(s,"deg) scale(").concat(l,")"))}i.show="".concat(o.get("Rotate"),": ").concat(e,"°"),t.emit("rotate",e)}}),U(t,"rotateReset",{set:function(e){if(e&&t.rotate){var r=t.rotate;t.rotate=r}}})}(r),function(t){var e=t.option,r=t.template.$poster;U(t,"poster",{get:function(){return e.poster},set:function(t){e.poster=t,k(r,"backgroundImage","url(".concat(t,")"))}})}(r),function(t){var e=t.option,r=t.template,n=r.$container,o=r.$video,i=n.style.height;U(t,"autoHeight",{get:function(){return x(n,"art-auto-height")},set:function(r){if(r){var a=n.clientWidth,c=o.videoHeight*(a/o.videoWidth);k(n,"height",c+"px"),b(n,"art-auto-height"),t.autoSize=e.autoSize,t.emit("autoHeight",c)}else k(n,"height",i),w(n,"art-auto-height"),t.autoSize=e.autoSize,t.emit("autoHeight")}})}(r),function(t){var e=t.option,r=t.template.$player;U(t,"theme",{get:function(){return getComputedStyle(r).getPropertyValue("--theme")},set:function(t){e.theme=t,r.style.setProperty("--theme",t)}})}(r),function(t){U(t,"title",{get:function(){return t.option.title},set:function(e){t.option.title=e}})}(r),function(t){var e=["mini","pip","fullscreen","fullscreenWeb"];!function(e){for(var r=function(r){var n=e[r];t.on(n,(function(){t[n]&&e.filter((function(t){return t!==n})).forEach((function(e){t[e]&&(t[e]=!1)}))}))},n=0;n=Number(o.dataset.index)}));return a?a.insertAdjacentElement("beforebegin",o):O(this.$parent,o),r.html&&O(o,r.html),r.style&&j(o,r.style),r.tooltip&&E(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&b(o,"art-control-onlyText"),U(this,n,{value:o}),o}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;b(e,"art-control-selector");var a=document.createElement("div");b(a,"art-selector-value"),O(a,t.html),e.innerText="",O(e,a);var c=t.selector.map((function(t,e){return'
').concat(t.html,"
")})).join(""),s=document.createElement("div");b(s,"art-selector-list"),O(s,c),O(e,s);var l=function(){var t=P(e,"width")/2-P(s,"width")/2;s.style.left="".concat(t,"px")};o(e,l),i(s,"click",(function(e){var n=(e.composedPath()||[]).find((function(t){return x(t,"art-selector-item")}));if(n){R(n,"art-current");var o=Number(n.dataset.index),i=t.selector[o]||{};if(a.innerText=n.innerText,t.onSelect){var c=t.onSelect.call(r.art,i,n);"string"==typeof c&&(a.innerHTML=c)}l(),r.art.emit("selector",i,n)}}))}}]),e}();function Rt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Et(t){for(var e=1;e
',mounted:function(t){var i=!1,a=g(".art-progress-loaded",t),c=g(".art-progress-played",t),s=g(".art-progress-highlight",t),l=g(".art-progress-indicator",t),u=g(".art-progress-tip",t);k(c,"backgroundColor","var(--theme)");var p=14;function f(t,e){"loaded"===t&&k(a,"width","".concat(100*e,"%")),"played"===t&&(k(c,"width","".concat(100*e,"%")),k(l,"left","calc(".concat(100*e,"% - ").concat(p/2,"px)")))}r.indicator?(p=16,O(l,r.indicator)):j(l,{backgroundColor:"var(--theme)"}),j(l,{left:"-".concat(p/2,"px"),width:"".concat(p,"px"),height:"".concat(p,"px")});for(var d=0;d'))}f("loaded",e.loaded),e.on("video:progress",(function(){f("loaded",e.loaded)})),e.on("video:timeupdate",(function(){f("played",e.played)})),e.on("video:ended",(function(){f("played",1)})),o(t,"mousemove",(function(r){k(u,"display","block"),D(r,s)?function(r){var n=qt(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?k(u,"left",0):n>t.clientWidth-i/2?k(u,"left","".concat(t.clientWidth-i,"px")):k(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=qt(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?k(u,"left",0):o>t.clientWidth-a/2?k(u,"left","".concat(t.clientWidth-a,"px")):k(u,"left","".concat(o-a/2,"px"))}(r)})),o(t,"mouseout",(function(){k(u,"display","none")})),o(t,"click",(function(t){if(t.target!==l){var r=qt(e,t),n=r.second;f("played",r.percentage),e.seek=n}})),o(l,"mousedown",(function(){i=!0})),o(document,"mousemove",(function(t){if(i){var r=qt(e,t),n=r.second;f("played",r.percentage),e.seek=n}})),o(document,"mouseup",(function(){i&&(i=!1)}))}})}}function Bt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function It(t){for(var e=1;en.clientWidth-l/2?k(t,"left","".concat(n.clientWidth-l,"px")):k(t,"left","".concat(i-l/2,"px"))}(o))})),i(n,"mouseout",(function(){k(t,"display","none")}))}})}}function Zt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Jt(t){for(var e=1;e=3e3&&(r.show=!1,b(a,"art-hide-cursor"),w(a,"art-hover"))})),e.once("ready",(function(){r.add(Ft({name:"progress",disable:i.isLive,position:"top",index:10})),r.add(Yt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),r.add(function(t){return function(e){return ee(ee({},t),{},{mounted:function(t){var r=O(t,''),n=O(t,'');e.on("loop",(function(o){o?(k(t,"display","block"),k(r,"left","calc(".concat(o[0]/e.duration*100,"% - ").concat(r.clientWidth,"px)")),k(n,"left","".concat(o[1]/e.duration*100,"%"))):k(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),r.add(function(t){return function(e){return At(At({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=O(t,n.play),a=O(t,n.pause);function c(){k(i,"display","flex"),k(a,"display","none")}function s(){k(i,"display","none"),k(a,"display","flex")}E(i,o.get("Play")),E(a,o.get("Pause")),r(i,"click",(function(){e.play()})),r(a,"click",(function(){e.pause()})),e.playing?s():c(),e.on("video:playing",(function(){s()})),e.on("video:pause",(function(){c()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),r.add(function(t){return function(e){return Nt(Nt({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=!1,a=O(t,n.volume),c=O(t,n.volumeClose),s=O(t,'
'),l=O(s,'
');function u(t){var e=s.getBoundingClientRect().left;return G(t.pageX-e-6,0,54)/48}function p(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(e.muted||0===t)k(a,"display","none"),k(c,"display","flex"),k(l,"left","0");else{var r=48*t;k(a,"display","flex"),k(c,"display","none"),k(l,"left","".concat(r,"px"))}}E(a,o.get("Mute")),k(c,"display","none"),d&&k(s,"display","none"),p(e.volume),e.on("video:volumechange",(function(){p(e.volume)})),r(a,"click",(function(){e.muted=!0})),r(c,"click",(function(){e.muted=!1})),r(s,"click",(function(t){e.muted=!1,e.volume=u(t)})),r(l,"mousedown",(function(){i=!0})),r(t,"mousemove",(function(t){i&&(e.muted=!1,e.volume=u(t))})),r(document,"mouseup",(function(){i&&(i=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),r.add(function(t){return function(e){return Wt(Wt({},t),{},{mounted:function(t){function r(){var r="".concat(K(e.currentTime)," / ").concat(K(e.duration));r!==t.innerText&&(t.innerText=r)}r();for(var n=["video:loadedmetadata","video:timeupdate","video:progress"],o=0;o0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,r){var n=r.target.dataset.rate;n&&(e.playbackRate=Number(n),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=m("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&R(r,"art-current")}))}})}}({disable:!i.playbackRate,name:"playbackRate",index:10})),o.add(function(t){return function(e){var r=e.i18n;return ce(ce({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,r){var n=r.target.dataset.ratio;n&&(e.aspectRatio=n,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("span",t).find((function(t){return t.dataset.ratio===e}));r&&R(r,"art-current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio",index:20})),o.add(function(t){return function(e){return le(le({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),o.add(function(t){return pe(pe({},t),{},{html:'ArtPlayer 4.2.1'})}({disable:!1,name:"version",index:40})),o.add(function(t){return function(e){return de(de({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60}));for(var t=0;tl+a&&(h=a-d),r+f>u+i&&(v=i-f),j(s,{top:"".concat(v,"px"),left:"".concat(h,"px")})})),l(c,"click",(function(t){D(t,s)||(o.show=!1)})),e.on("blur",(function(){o.show=!1}))})),o}return n}(St);function ye(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=s(t);if(e){var o=s(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var ge=function(e){i(o,e);var n=ye(o);function o(e){var r;return t(this,o),(r=n.call(this,e)).name="info",e.once("ready",(function(){r.init()})),r}return r(o,[{key:"init",value:function(){var t=this,e=this.art,r=e.events.proxy,n=e.template,o=n.$infoPanel,i=n.$infoClose,a=n.$video;r(i,"click",(function(){t.show=!1}));var c=null,s=m("[data-video]",o)||[];this.art.on("destroy",(function(){clearTimeout(c)})),function t(){for(var e=0;e".concat(tt(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.art,n=r.i18n,o=r.notice,i=r.option,a=be(be(be({},i.subtitle),e),{},{url:t});return this.init(a).then((function(t){return e.name&&(o.show="".concat(n.get("Switch subtitle"),": ").concat(e.name)),t}))}},{key:"init",value:function(t){var e=this;if(u(t,ft.subtitle),t.url){var r=this.art,n=r.notice,o=r.events.proxy,i=r.template,a=i.$subtitle,c=i.$video;if(!i.$track){var s=document.createElement("track");s.default=!0,s.kind="metadata",c.appendChild(s),this.art.template.$track=s,o(this.textTrack,"cuechange",this.update.bind(this))}return this.style(t.style),this.bilingual=t.bilingual,q(window.fetch,"fetch not support"),fetch(t.url).then((function(t){return t.arrayBuffer()})).then((function(r){q(window.TextDecoder,"TextDecoder not support");var n=new TextDecoder(t.encoding).decode(r);switch(e.art.emit("subtitleLoad",t.url),t.type||V(t.url)){case"srt":return B(F(n));case"ass":return B(I(n));case"vtt":return B(n);default:return t.url}})).then((function(t){return a.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t,e.art.emit("subtitleSwitch",t)),t})).catch((function(t){throw n.show=t,t}))}}}]),o}(St);var Oe=function(){function e(r){var n=this;t(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),r.whitelist.state&&r.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){D(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(r,n),function(t,e){var r=t.template.$player;e.hover(r,(function(){b(r,"art-hover"),t.emit("hover",!0)}),(function(){w(r,"art-hover"),t.emit("hover")}))}(r,n),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(r,n),function(t,e){var r=t.option,n=J((function(){t.normalSize&&(t.autoSize=r.autoSize),t.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){n()})),screen&&screen.orientation&&screen.orientation.onchange&&e.proxy(screen.orientation,"change",(function(){n()}))}(r,n),function(t,e){if(d&&!t.option.isLive){var r=t.notice,n=t.template.$video,o=!1,i=0,a=0;e.proxy(n,"touchstart",(function(t){1===t.touches.length&&(o=!0,i=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(e){if(1===e.touches.length&&o){var c=G((e.touches[0].clientX-i)/n.clientWidth,-1,1);a=G(t.currentTime+60*c,0,t.duration),r.show="".concat(K(a)," / ").concat(K(t.duration))}})),e.proxy(document,"touchend",(function(){o&&a&&(t.seek=a),o=!1,i=0,a=0}))}}(r,n),function(t,e){var r=t.option,n=t.template.$container,o=J((function(){t.emit("view",$(n,50))}),200);e.proxy(window,"scroll",(function(){o()})),t.on("view",(function(e){r.autoMini&&(t.mini=!e)}))}(r,n)}))}return r(e,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new M("Unable to get Image"));(o=new Image).src=t}if(o.complete)return r(o);e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new M("Failed to load Image: ".concat(o.src)))}))}))}},{key:"destroy",value:function(){for(var t=0;t',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},r.option.icons);Object.keys(o).forEach((function(t){U(n,t,{get:function(){var e=document.createElement("i");return b(e,"art-icon"),b(e,"art-icon-".concat(t)),O(e,o[t]),e}})}))};function Ce(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ae(t){for(var e=1;e'.concat(r.get("Flip"),'
"),click:function(t,r){var n=r.target.dataset.value;n&&(e.flip=n)},mounted:function(t){e.on("flip",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.flip,name:"flip"})),o.add(function(t){return function(e){var r=e.i18n;return Me(Me({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,r){var n=r.target.dataset.value;if(n){var o=e.rotate+Number(n);e.rotate=360===o||-360===o?0:o}else e.rotate=0},mounted:function(t){var r=g(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!i.rotate,name:"rotate"})),o.add(function(t){return function(e){var r=e.i18n;return Fe(Fe({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,r){var n=r.target.dataset.value;n&&(e.aspectRatio=n)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio"})),o.add(function(t){return function(e){var r=e.i18n,n=e.events.proxy;return Ie(Ie({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=g(".art-setting-range input",t),o=g(".art-subtitle-value",t);n(r,"change",(function(){var t=r.value;o.innerText=t,e.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,o.innerText=t)}))}})}}({disable:!i.playbackRate,name:"playbackRate"}));for(var t=0;t'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=g(".art-setting-range input",e),i=g(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Ue(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n;r.add(Ne);var a=[];return t.on("subtitle:switch",(function(){a=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){for(var c=Array.from(o.$track.track.cues),s=e(r,-5,5),l=0;l');k(t,"position","relative"),j(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){s(r.files[0])}))}return e(o,"dragover",(function(t){t.preventDefault()})),e(o,"drop",(function(t){t.preventDefault(),s(t.dataTransfer.files[0])})),t.once("ready",(function(){a.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(c.get("Local Video"),'
').concat(c.get("Open"),'
'),mounted:function(e){var r=g(".art-upload-btn",e),n=g(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),l(r)}})})),{name:"localVideo",attach:l}}function Xe(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=O(n,'');k(n,"position","relative"),j(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=V(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):q(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=g(".art-upload-btn",e),n=g(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Qe(t){return t.layers.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",backgroundColor:"var(--theme)"},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*t.played,"%")}))}}),{name:"miniProgressBar"}}var Ye=function(){function e(r){t(this,e),this.art=r,this.id=0;var n=r.option;n.subtitle.url&&n.subtitleOffset&&this.add(Ue),!n.isLive&&n.miniProgressBar&&this.add(Qe),n.localVideo&&this.add(_e),n.localSubtitle&&this.add(Xe);for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:{};this.isEnd||(this.art.switchUrl(e.url),this.art.once("video:timeupdate",(function(){t.art.emit("ads:start",e)})),this.art.once("video:ended",(function(){var e=t.next;e?(t.index+=1,t.play(e)):t.end()})))}},{key:"end",value:function(){this.isEnd||(this.isEnd=!0,this.playing=!1,this.art.option.url=this.urlCache,this.art.switchUrl(this.urlCache),this.art.emit("ads:end"))}}]),e}(),Je=function e(r){t(this,e);for(var n=r.option,o=r.events.proxy,i=r.template.$video,a=0;a0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),tr.splice(tr.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return tr}},{key:"version",get:function(){return"4.2.1"}},{key:"env",get:function(){return"production"}},{key:"build",get:function(){return"1641565691228"}},{key:"config",get:function(){return dt}},{key:"utils",get:function(){return et}},{key:"scheme",get:function(){return ft}},{key:"Emitter",get:function(){return p}},{key:"validator",get:function(){return u}},{key:"kindOf",get:function(){return u.kindOf}},{key:"html",get:function(){return vt.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,useSSR:!1,ads:[],layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",type:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:h?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),a}(p);return console.log("%c ArtPlayer %c 4.2.1 %c https://artplayer.org","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),er})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Artplayer=e()}(this,(function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;r1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function m(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function b(t,e){return t.classList.add(e)}function w(t,e){return t.classList.remove(e)}function x(t,e){return t.classList.contains(e)}function O(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function k(t,e,r){return t.style[e]=r,t}function j(t,e){return Object.keys(e).forEach((function(r){k(t,r,e[r])})),t}function P(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function S(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function R(t,e){S(t).forEach((function(t){return w(t,e)})),b(t,e)}function E(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";d||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function $(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function D(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}function z(t,e){return e.parentNode.replaceChild(t,e),t}function T(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function C(t,e,r){return C=T()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&o(i,r.prototype),i},C.apply(null,arguments)}function A(t){var e="function"==typeof Map?new Map:void 0;return A=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return C(t,arguments,s(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),o(n,t)},A(t)}function L(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=s(t);if(e){var o=s(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var M=function(e){i(o,e);var r=L(o);function o(e,i){var a;return t(this,o),a=r.call(this,e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n(a),i||a.constructor),a.name="ArtPlayerError",a}return o}(A(Error));function q(t,e){if(!t)throw new M(e);return t}function F(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").concat("\r\n\r\n"))}function B(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function I(t){var e=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);return n?{start:r(n[1].trim()),end:r(n[2].trim()),text:n[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map((function(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function V(t){return t.includes("?")?V(t.split("?")[0]):t.includes("#")?V(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function W(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function H(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function J(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),s=0;s0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function tt(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var et=Object.freeze({__proto__:null,query:g,queryAll:m,addClass:b,removeClass:w,hasClass:x,append:O,remove:function(t){return t.parentNode.removeChild(t)},setStyle:k,setStyles:j,getStyle:P,sublings:S,inverseClass:R,tooltip:E,isInViewport:$,includeFromEvent:D,replaceElement:z,ArtPlayerError:M,errorHandle:q,srtToVtt:F,vttToBlob:B,assToVtt:I,getExt:V,download:W,def:U,has:X,get:Q,mergeDeep:Y,sleep:Z,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(f);case"regexp":return t.test(f);default:return!1}}))}}]),e}(),vt=function(){function e(r){var n=this;t(this,e),this.art=r;var o=r.option,i=r.constructor,a=r.whitelist;o.container instanceof Element?this.$container=o.container:(this.$container=g(o.container),q(this.$container,"No container element found by ".concat(o.container)));var c=this.$container.tagName.toLowerCase();q("div"===c,"Unsupported container element type, only support 'div' but got '".concat(c,"'")),q(i.instances.every((function(t){return t.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=r.id,this.$original=this.$container.cloneNode(!0),a.state?this.desktop():this.mobile()}return r(e,[{key:"query",value:function(t){return g(t,this.$container)}},{key:"desktop",value:function(){var t=this.art.option;t.useSSR||(this.$container.innerHTML=e.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),t.backdrop&&(b(this.$settingInner,"art-backdrop-filter"),b(this.$contextmenu,"art-backdrop-filter"),b(this.$info,"art-backdrop-filter")),d&&b(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?z(this.$original,this.$container):b(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
4.2.2
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),e}(),yt={"Video info":"统计信息",Close:"关闭","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","Show setting":"显示设置","Hide setting":"隐藏设置",Screenshot:"截图","Play speed":"播放速度","Aspect ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch video":"切换","Switch subtitle":"切换字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"网页全屏","Exit web fullscreen":"退出网页全屏","Mini player":"迷你播放器","PIP mode":"画中画模式","Exit PIP mode":"退出画中画模式","PIP not supported":"不支持画中画模式","Fullscreen not supported":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},gt={"Video info":"統計訊息",Close:"關閉","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","Show setting":"顯示设置","Hide setting":"隱藏设置",Screenshot:"截圖","Play speed":"播放速度","Aspect ratio":"畫面比例",Default:"默認",Normal:"正常",Open:"打開","Switch video":"切換","Switch subtitle":"切換字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"網頁全屏","Exit web fullscreen":"退出網頁全屏","Mini player":"迷你播放器","PIP mode":"畫中畫模式","Exit PIP mode":"退出畫中畫模式","PIP not supported":"不支持畫中畫模式","Fullscreen not supported":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},mt=function(){function e(r){t(this,e),this.art=r,this.languages={"zh-cn":yt,"zh-tw":gt},this.init()}return r(e,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=Y(this.languages,t),this.init()}}]),e}();var bt={exports:{}};!function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n=0,o=r.length,i={};nd){var h=d*l/s;k(r,"width","".concat(100*h,"%")),k(r,"height","100%"),k(r,"padding","0 ".concat((u-u*h)/2,"px"))}else{var v=s/d/l;k(r,"width","100%"),k(r,"height","".concat(100*v,"%")),k(r,"padding","".concat((p-p*v)/2,"px 0"))}n.dataset.aspectRatio=e}i.show="".concat(o.get("Aspect ratio"),": ").concat("default"===e?o.get("Default"):e),t.emit("aspectRatio",e)}}),U(t,"aspectRatioReset",{set:function(e){if(e&&t.aspectRatio){var r=t.aspectRatio;t.aspectRatio=r}}})}(r),function(t){var e=t.option,r=t.notice,n=t.template.$video,o=document.createElement("canvas");U(t,"getDataURL",{value:function(){return new Promise((function(t,e){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),t(o.toDataURL("image/png"))}catch(t){r.show=t,e(t)}}))}}),U(t,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),o.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){r.show=t,e(t)}}))}}),U(t,"screenshot",{value:function(){return t.getDataURL().then((function(r){return W(r,"".concat(e.title||"artplayer","_").concat(K(n.currentTime),".png")),t.emit("screenshot",r),r}))}})}(r),xt(r),function(t){var e=t.template.$player;U(t,"fullscreenWeb",{get:function(){return x(e,"art-fullscreen-web")},set:function(r){r?(b(e,"art-fullscreen-web"),t.aspectRatioReset=!0,t.autoSize=!1,t.emit("resize"),t.emit("fullscreenWeb",!0)):(w(e,"art-fullscreen-web"),t.aspectRatioReset=!0,t.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}})}(r),Ot(r),function(t){var e=t.template.$video;U(t,"loaded",{get:function(){return t.loadedTime/e.duration}}),U(t,"loadedTime",{get:function(){return e.buffered.length?e.buffered.end(e.buffered.length-1):0}})}(r),function(t){U(t,"played",{get:function(){return t.currentTime/t.duration}})}(r),function(t){var e=t.template.$video;U(t,"playing",{get:function(){return!!(e.currentTime>0&&!e.paused&&!e.ended&&e.readyState>2)}})}(r),function(t){var e=t.template,r=e.$container,n=e.$player,o=e.$video;U(t,"autoSize",{get:function(){return x(r,"art-auto-size")},set:function(e){if(e){var i=o.videoWidth,a=o.videoHeight,c=r.getBoundingClientRect(),s=c.width,l=c.height,u=i/a,p=s/l;if(b(r,"art-auto-size"),p>u)k(n,"width","".concat(l*u/s*100,"%")),k(n,"height","100%");else{var f=s/u/l*100;k(n,"width","100%"),k(n,"height","".concat(f,"%"))}t.emit("autoSize",{width:t.width,height:t.height})}else w(r,"art-auto-size"),k(n,"width",null),k(n,"height",null),t.emit("autoSize")}})}(r),function(t){U(t,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}});for(var e=["bottom","height","left","right","top","width"],r=function(r){var n=e[r];U(t,n,{get:function(){return t.rect[n]}})},n=0;n=1?(e=[n,o],t.emit("loop",e)):(e=[],t.emit("loop"))}else e=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){e.length&&(t.currentTimee[1])&&(t.seek=e[0])}))}(r),function(t){var e=t.template,r=e.$video,n=e.$player,o=t.i18n,i=t.notice;U(t,"rotate",{get:function(){return Number(n.dataset.rotate)||0},set:function(e){e||(e=0);var a=[-270,-180,-90,0,90,180,270];if(q(a.includes(e),"'rotate' only accept ".concat(a.toString()," as parameters")),0===e)delete n.dataset.rotate,k(r,"transform",null);else{t.flip=!1,t.autoSize=!0,n.dataset.rotate=e;var c=function(){var t=r.videoWidth,e=r.videoHeight;return t>e?e/t:t/e},s=0,l=1;switch(e){case-270:s=90,l=c();break;case-180:s=180;break;case-90:s=270,l=c();break;case 90:s=90,l=c();break;case 180:s=180;break;case 270:s=270,l=c()}k(r,"transform","rotate(".concat(s,"deg) scale(").concat(l,")"))}i.show="".concat(o.get("Rotate"),": ").concat(e,"°"),t.emit("rotate",e)}}),U(t,"rotateReset",{set:function(e){if(e&&t.rotate){var r=t.rotate;t.rotate=r}}})}(r),function(t){var e=t.option,r=t.template.$poster;U(t,"poster",{get:function(){return e.poster},set:function(t){e.poster=t,k(r,"backgroundImage","url(".concat(t,")"))}})}(r),function(t){var e=t.option,r=t.template,n=r.$container,o=r.$video,i=n.style.height;U(t,"autoHeight",{get:function(){return x(n,"art-auto-height")},set:function(r){if(r){var a=n.clientWidth,c=o.videoHeight*(a/o.videoWidth);k(n,"height",c+"px"),b(n,"art-auto-height"),t.autoSize=e.autoSize,t.emit("autoHeight",c)}else k(n,"height",i),w(n,"art-auto-height"),t.autoSize=e.autoSize,t.emit("autoHeight")}})}(r),function(t){var e=t.option,r=t.template.$player;U(t,"theme",{get:function(){return getComputedStyle(r).getPropertyValue("--theme")},set:function(t){e.theme=t,r.style.setProperty("--theme",t)}})}(r),function(t){U(t,"title",{get:function(){return t.option.title},set:function(e){t.option.title=e}})}(r),function(t){var e=["mini","pip","fullscreen","fullscreenWeb"];!function(e){for(var r=function(r){var n=e[r];t.on(n,(function(){t[n]&&e.filter((function(t){return t!==n})).forEach((function(e){t[e]&&(t[e]=!1)}))}))},n=0;n=Number(o.dataset.index)}));return a?a.insertAdjacentElement("beforebegin",o):O(this.$parent,o),r.html&&O(o,r.html),r.style&&j(o,r.style),r.tooltip&&E(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&b(o,"art-control-onlyText"),U(this,n,{value:o}),o}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;b(e,"art-control-selector");var a=document.createElement("div");b(a,"art-selector-value"),O(a,t.html),e.innerText="",O(e,a);var c=t.selector.map((function(t,e){return'
').concat(t.html,"
")})).join(""),s=document.createElement("div");b(s,"art-selector-list"),O(s,c),O(e,s);var l=function(){var t=P(e,"width")/2-P(s,"width")/2;s.style.left="".concat(t,"px")};o(e,l),i(s,"click",(function(e){var n=(e.composedPath()||[]).find((function(t){return x(t,"art-selector-item")}));if(n){R(n,"art-current");var o=Number(n.dataset.index),i=t.selector[o]||{};if(a.innerText=n.innerText,t.onSelect){var c=t.onSelect.call(r.art,i,n);"string"==typeof c&&(a.innerHTML=c)}l(),r.art.emit("selector",i,n)}}))}}]),e}();function Rt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Et(t){for(var e=1;e
',mounted:function(t){var i=!1,a=g(".art-progress-loaded",t),c=g(".art-progress-played",t),s=g(".art-progress-highlight",t),l=g(".art-progress-indicator",t),u=g(".art-progress-tip",t);k(c,"backgroundColor","var(--theme)");var p=14;function f(t,e){"loaded"===t&&k(a,"width","".concat(100*e,"%")),"played"===t&&(k(c,"width","".concat(100*e,"%")),k(l,"left","calc(".concat(100*e,"% - ").concat(p/2,"px)")))}r.indicator?(p=16,O(l,r.indicator)):j(l,{backgroundColor:"var(--theme)"}),j(l,{left:"-".concat(p/2,"px"),width:"".concat(p,"px"),height:"".concat(p,"px")});for(var d=0;d'))}f("loaded",e.loaded),e.on("video:progress",(function(){f("loaded",e.loaded)})),e.on("video:timeupdate",(function(){f("played",e.played)})),e.on("video:ended",(function(){f("played",1)})),o(t,"mousemove",(function(r){k(u,"display","block"),D(r,s)?function(r){var n=qt(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?k(u,"left",0):n>t.clientWidth-i/2?k(u,"left","".concat(t.clientWidth-i,"px")):k(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=qt(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?k(u,"left",0):o>t.clientWidth-a/2?k(u,"left","".concat(t.clientWidth-a,"px")):k(u,"left","".concat(o-a/2,"px"))}(r)})),o(t,"mouseout",(function(){k(u,"display","none")})),o(t,"click",(function(t){if(t.target!==l){var r=qt(e,t),n=r.second;f("played",r.percentage),e.seek=n}})),o(l,"mousedown",(function(){i=!0})),o(document,"mousemove",(function(t){if(i){var r=qt(e,t),n=r.second;f("played",r.percentage),e.seek=n}})),o(document,"mouseup",(function(){i&&(i=!1)}))}})}}function Bt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function It(t){for(var e=1;en.clientWidth-l/2?k(t,"left","".concat(n.clientWidth-l,"px")):k(t,"left","".concat(i-l/2,"px"))}(o))})),i(n,"mouseout",(function(){k(t,"display","none")}))}})}}function Zt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Jt(t){for(var e=1;e=3e3&&(r.show=!1,b(a,"art-hide-cursor"),w(a,"art-hover"))})),e.once("ready",(function(){r.add(Ft({name:"progress",disable:i.isLive,position:"top",index:10})),r.add(Yt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),r.add(function(t){return function(e){return ee(ee({},t),{},{mounted:function(t){var r=O(t,''),n=O(t,'');e.on("loop",(function(o){o?(k(t,"display","block"),k(r,"left","calc(".concat(o[0]/e.duration*100,"% - ").concat(r.clientWidth,"px)")),k(n,"left","".concat(o[1]/e.duration*100,"%"))):k(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),r.add(function(t){return function(e){return At(At({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=O(t,n.play),a=O(t,n.pause);function c(){k(i,"display","flex"),k(a,"display","none")}function s(){k(i,"display","none"),k(a,"display","flex")}E(i,o.get("Play")),E(a,o.get("Pause")),r(i,"click",(function(){e.play()})),r(a,"click",(function(){e.pause()})),e.playing?s():c(),e.on("video:playing",(function(){s()})),e.on("video:pause",(function(){c()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),r.add(function(t){return function(e){return Nt(Nt({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=!1,a=O(t,n.volume),c=O(t,n.volumeClose),s=O(t,'
'),l=O(s,'
');function u(t){var e=s.getBoundingClientRect().left;return G(t.pageX-e-6,0,54)/48}function p(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(e.muted||0===t)k(a,"display","none"),k(c,"display","flex"),k(l,"left","0");else{var r=48*t;k(a,"display","flex"),k(c,"display","none"),k(l,"left","".concat(r,"px"))}}E(a,o.get("Mute")),k(c,"display","none"),d&&k(s,"display","none"),p(e.volume),e.on("video:volumechange",(function(){p(e.volume)})),r(a,"click",(function(){e.muted=!0})),r(c,"click",(function(){e.muted=!1})),r(s,"click",(function(t){e.muted=!1,e.volume=u(t)})),r(l,"mousedown",(function(){i=!0})),r(t,"mousemove",(function(t){i&&(e.muted=!1,e.volume=u(t))})),r(document,"mouseup",(function(){i&&(i=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),r.add(function(t){return function(e){return Wt(Wt({},t),{},{mounted:function(t){function r(){var r="".concat(K(e.currentTime)," / ").concat(K(e.duration));r!==t.innerText&&(t.innerText=r)}r();for(var n=["video:loadedmetadata","video:timeupdate","video:progress"],o=0;o0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,r){var n=r.target.dataset.rate;n&&(e.playbackRate=Number(n),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=m("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&R(r,"art-current")}))}})}}({disable:!i.playbackRate,name:"playbackRate",index:10})),o.add(function(t){return function(e){var r=e.i18n;return ce(ce({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,r){var n=r.target.dataset.ratio;n&&(e.aspectRatio=n,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("span",t).find((function(t){return t.dataset.ratio===e}));r&&R(r,"art-current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio",index:20})),o.add(function(t){return function(e){return le(le({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),o.add(function(t){return pe(pe({},t),{},{html:'ArtPlayer 4.2.2'})}({disable:!1,name:"version",index:40})),o.add(function(t){return function(e){return de(de({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60}));for(var t=0;tl+a&&(h=a-d),r+f>u+i&&(v=i-f),j(s,{top:"".concat(v,"px"),left:"".concat(h,"px")})})),l(c,"click",(function(t){D(t,s)||(o.show=!1)})),e.on("blur",(function(){o.show=!1}))})),o}return n}(St);function ye(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=s(t);if(e){var o=s(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var ge=function(e){i(o,e);var n=ye(o);function o(e){var r;return t(this,o),(r=n.call(this,e)).name="info",e.once("ready",(function(){r.init()})),r}return r(o,[{key:"init",value:function(){var t=this,e=this.art,r=e.events.proxy,n=e.template,o=n.$infoPanel,i=n.$infoClose,a=n.$video;r(i,"click",(function(){t.show=!1}));var c=null,s=m("[data-video]",o)||[];this.art.on("destroy",(function(){clearTimeout(c)})),function t(){for(var e=0;e".concat(tt(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.art,n=r.i18n,o=r.notice,i=r.option,a=be(be(be({},i.subtitle),e),{},{url:t});return this.init(a).then((function(t){return e.name&&(o.show="".concat(n.get("Switch subtitle"),": ").concat(e.name)),t}))}},{key:"init",value:function(t){var e=this;if(u(t,ft.subtitle),t.url){var r=this.art,n=r.notice,o=r.events.proxy,i=r.template,a=i.$subtitle,c=i.$video;if(!i.$track){var s=document.createElement("track");s.default=!0,s.kind="metadata",c.appendChild(s),this.art.template.$track=s,o(this.textTrack,"cuechange",this.update.bind(this))}return this.style(t.style),this.bilingual=t.bilingual,q(window.fetch,"fetch not support"),fetch(t.url).then((function(t){return t.arrayBuffer()})).then((function(r){q(window.TextDecoder,"TextDecoder not support");var n=new TextDecoder(t.encoding).decode(r);switch(e.art.emit("subtitleLoad",t.url),t.type||V(t.url)){case"srt":return B(F(n));case"ass":return B(I(n));case"vtt":return B(n);default:return t.url}})).then((function(t){return a.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t,e.art.emit("subtitleSwitch",t)),t})).catch((function(t){throw n.show=t,t}))}}}]),o}(St);var Oe=function(){function e(r){var n=this;t(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),r.whitelist.state&&r.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){D(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(r,n),function(t,e){var r=t.template.$player;e.hover(r,(function(){b(r,"art-hover"),t.emit("hover",!0)}),(function(){w(r,"art-hover"),t.emit("hover")}))}(r,n),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(r,n),function(t,e){var r=t.option,n=J((function(){t.normalSize&&(t.autoSize=r.autoSize),t.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){n()})),screen&&screen.orientation&&screen.orientation.onchange&&e.proxy(screen.orientation,"change",(function(){n()}))}(r,n),function(t,e){if(d&&!t.option.isLive){var r=t.notice,n=t.template.$video,o=!1,i=0,a=0;e.proxy(n,"touchstart",(function(t){1===t.touches.length&&(o=!0,i=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(e){if(1===e.touches.length&&o){var c=G((e.touches[0].clientX-i)/n.clientWidth,-1,1);a=G(t.currentTime+60*c,0,t.duration),r.show="".concat(K(a)," / ").concat(K(t.duration))}})),e.proxy(document,"touchend",(function(){o&&a&&(t.seek=a),o=!1,i=0,a=0}))}}(r,n),function(t,e){var r=t.option,n=t.template.$container,o=J((function(){t.emit("view",$(n,50))}),200);e.proxy(window,"scroll",(function(){o()})),t.on("view",(function(e){r.autoMini&&(t.mini=!e)}))}(r,n)}))}return r(e,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new M("Unable to get Image"));(o=new Image).src=t}if(o.complete)return r(o);e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new M("Failed to load Image: ".concat(o.src)))}))}))}},{key:"destroy",value:function(){for(var t=0;t',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},r.option.icons);Object.keys(o).forEach((function(t){U(n,t,{get:function(){var e=document.createElement("i");return b(e,"art-icon"),b(e,"art-icon-".concat(t)),O(e,o[t]),e}})}))};function Ce(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ae(t){for(var e=1;e'.concat(r.get("Flip"),'
"),click:function(t,r){var n=r.target.dataset.value;n&&(e.flip=n)},mounted:function(t){e.on("flip",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.flip,name:"flip"})),o.add(function(t){return function(e){var r=e.i18n;return Me(Me({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,r){var n=r.target.dataset.value;if(n){var o=e.rotate+Number(n);e.rotate=360===o||-360===o?0:o}else e.rotate=0},mounted:function(t){var r=g(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!i.rotate,name:"rotate"})),o.add(function(t){return function(e){var r=e.i18n;return Fe(Fe({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,r){var n=r.target.dataset.value;n&&(e.aspectRatio=n)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio"})),o.add(function(t){return function(e){var r=e.i18n,n=e.events.proxy;return Ie(Ie({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=g(".art-setting-range input",t),o=g(".art-subtitle-value",t);n(r,"change",(function(){var t=r.value;o.innerText=t,e.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,o.innerText=t)}))}})}}({disable:!i.playbackRate,name:"playbackRate"}));for(var t=0;t'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=g(".art-setting-range input",e),i=g(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Ue(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n;r.add(Ne);var a=[];return t.on("subtitle:switch",(function(){a=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){for(var c=Array.from(o.$track.track.cues),s=e(r,-5,5),l=0;l');k(t,"position","relative"),j(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){s(r.files[0])}))}return e(o,"dragover",(function(t){t.preventDefault()})),e(o,"drop",(function(t){t.preventDefault(),s(t.dataTransfer.files[0])})),t.once("ready",(function(){a.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(c.get("Local Video"),'
').concat(c.get("Open"),'
'),mounted:function(e){var r=g(".art-upload-btn",e),n=g(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),l(r)}})})),{name:"localVideo",attach:l}}function Xe(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=O(n,'');k(n,"position","relative"),j(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=V(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):q(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=g(".art-upload-btn",e),n=g(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Qe(t){return t.layers.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",backgroundColor:"var(--theme)"},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*t.played,"%")}))}}),{name:"miniProgressBar"}}var Ye=function(){function e(r){t(this,e),this.art=r,this.id=0;var n=r.option;n.subtitle.url&&n.subtitleOffset&&this.add(Ue),!n.isLive&&n.miniProgressBar&&this.add(Qe),n.localVideo&&this.add(_e),n.localSubtitle&&this.add(Xe);for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:{};this.isEnd||(this.art.switchUrl(e.url),this.art.once("video:timeupdate",(function(){t.art.emit("ads:start",e)})),this.art.once("video:ended",(function(){var e=t.next;e?(t.index+=1,t.play(e)):t.end()})))}},{key:"end",value:function(){this.isEnd||(this.isEnd=!0,this.playing=!1,this.art.option.url=this.urlCache,this.art.switchUrl(this.urlCache),this.art.emit("ads:end"))}}]),e}(),Je=function e(r){t(this,e);for(var n=r.option,o=r.events.proxy,i=r.template.$video,a=0;a0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),tr.splice(tr.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return tr}},{key:"version",get:function(){return"4.2.2"}},{key:"env",get:function(){return"production"}},{key:"build",get:function(){return"1641570020821"}},{key:"config",get:function(){return dt}},{key:"utils",get:function(){return et}},{key:"scheme",get:function(){return ft}},{key:"Emitter",get:function(){return p}},{key:"validator",get:function(){return u}},{key:"kindOf",get:function(){return u.kindOf}},{key:"html",get:function(){return vt.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,useSSR:!1,ads:[],layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",type:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:h?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),a}(p);return console.log("%c ArtPlayer %c 4.2.2 %c https://artplayer.org","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),er})); diff --git a/docs/uncompiled/artplayer-plugin-danmuku.js b/docs/uncompiled/artplayer-plugin-danmuku.js index d684b0c8f..c76f2f260 100644 --- a/docs/uncompiled/artplayer-plugin-danmuku.js +++ b/docs/uncompiled/artplayer-plugin-danmuku.js @@ -2,7 +2,7 @@ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.artplayerPluginDanmuku = factory()); -}(this, (function () { 'use strict'; +})(this, (function () { 'use strict'; function _defineProperty(obj, key, value) { if (key in obj) { @@ -19,16 +19,12 @@ return obj; } - var defineProperty = _defineProperty; - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - var classCallCheck = _classCallCheck; - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; @@ -45,8 +41,6 @@ return Constructor; } - var createClass = _createClass; - var i18n = { 'zh-cn': { 'Danmu opacity': '弹幕透明度', @@ -196,17 +190,18 @@ if (Array.isArray(arr)) return arr; } - var arrayWithHoles = _arrayWithHoles; - function _iterableToArrayLimit(arr, i) { - if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + + if (_i == null) return; var _arr = []; var _n = true; var _d = false; - var _e = undefined; + + var _s, _e; try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; @@ -225,8 +220,6 @@ return _arr; } - var iterableToArrayLimit = _iterableToArrayLimit; - function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; @@ -237,31 +230,23 @@ return arr2; } - var arrayLikeToArray = _arrayLikeToArray; - function _unsupportedIterableToArray(o, minLen) { if (!o) return; - if (typeof o === "string") return arrayLikeToArray(o, minLen); + if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - var unsupportedIterableToArray = _unsupportedIterableToArray; - function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - var nonIterableRest = _nonIterableRest; - function _slicedToArray(arr, i) { - return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - var slicedToArray = _slicedToArray; - function getMode(key) { switch (key) { case 1: @@ -280,9 +265,9 @@ function bilibiliDanmuParseFromXml(xmlString) { if (typeof xmlString !== 'string') return []; var srtList = xmlString.match(/[\S ]*?)<\/d>/gi); - return srtList.length ? srtList.map(function (item) { + return srtList && srtList.length ? srtList.map(function (item) { var _item$match = item.match(/(.+)<\/d>/), - _item$match2 = slicedToArray(_item$match, 3), + _item$match2 = _slicedToArray(_item$match, 3), attrStr = _item$match2[1], text = _item$match2[2]; @@ -356,7 +341,7 @@ if (minRight > maxRight) { maxRight = minRight; - var _danmuArr = slicedToArray(danmuArr, 1); + var _danmuArr = _slicedToArray(danmuArr, 1); top = _danmuArr[0].top; } @@ -370,7 +355,7 @@ return topMap[prev].length - topMap[next].length; }); - var _topMapKeys$filter$so2 = slicedToArray(_topMapKeys$filter$so, 1); + var _topMapKeys$filter$so2 = _slicedToArray(_topMapKeys$filter$so, 1); top = _topMapKeys$filter$so2[0]; } @@ -379,7 +364,7 @@ } function getDanmuTop(ins, danmu) { - var _ins$option$margin = slicedToArray(ins.option.margin, 2), + var _ins$option$margin = _slicedToArray(ins.option.margin, 2), marginTop = _ins$option$margin[0], marginBottom = _ins$option$margin[1]; @@ -425,13 +410,13 @@ return calculatedTop(danmus); } - function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var Danmuku = /*#__PURE__*/function () { function Danmuku(art, option) { - classCallCheck(this, Danmuku); + _classCallCheck(this, Danmuku); art.i18n.update(i18n); art.setting.add(opacity); @@ -455,7 +440,7 @@ this.load(); } - createClass(Danmuku, [{ + _createClass(Danmuku, [{ key: "load", value: function load() { var _this = this; @@ -565,11 +550,9 @@ value: function update() { var _this2 = this; - var _this$art = this.art, - player = _this$art.player, - $player = _this$art.template.$player; + var $player = this.art.template.$player; this.animationFrameTimer = window.requestAnimationFrame(function () { - if (player.playing && !_this2.isHide) { + if (_this2.art.playing && !_this2.isHide) { var danmuLeft = getRect($player, 'width'); filter(_this2.queue, 'emit', function (danmu) { danmu.$restTime -= (Date.now() - danmu.$lastStartTime) / 1000; @@ -586,7 +569,7 @@ }); _this2.queue.filter(function (danmu) { - return player.currentTime + 0.1 >= danmu.time && danmu.time >= player.currentTime - 0.1 && danmu.$state === 'wait'; + return _this2.art.currentTime + 0.1 >= danmu.time && danmu.time >= _this2.art.currentTime - 0.1 && danmu.$state === 'wait'; }).forEach(function (danmu) { danmu.$ref = getDanmuRef(_this2.queue); @@ -597,7 +580,7 @@ danmu.$ref.innerText = danmu.text; danmu.$ref.style.color = danmu.color || '#fff'; danmu.$ref.style.border = danmu.border ? "1px solid ".concat(danmu.color || '#fff') : 'none'; - danmu.$restTime = _this2.option.synchronousPlayback && player.playbackRate ? _this2.option.speed / Number(player.playbackRate) : _this2.option.speed; + danmu.$restTime = _this2.option.synchronousPlayback && _this2.art.playbackRate ? _this2.option.speed / Number(_this2.art.playbackRate) : _this2.option.speed; danmu.$lastStartTime = Date.now(); var danmuWidth = getRect(danmu.$ref, 'width'); var danmuTop = getDanmuTop(_this2, danmu); @@ -666,10 +649,9 @@ }, { key: "emit", value: function emit(danmu) { - var _this$art2 = this.art, - notice = _this$art2.notice, - player = _this$art2.player, - i18n = _this$art2.i18n; + var _this$art = this.art, + notice = _this$art.notice, + i18n = _this$art.i18n; var _this$art$constructor2 = this.art.constructor, clamp = _this$art$constructor2.utils.clamp, validator = _this$art$constructor2.validator; @@ -694,7 +676,7 @@ if (danmu.time) { danmu.time = clamp(danmu.time, 0, Infinity); } else { - danmu.time = player.currentTime + 0.5; + danmu.time = this.art.currentTime + 0.5; } this.queue.push(_objectSpread(_objectSpread({ @@ -759,5 +741,5 @@ return artplayerPluginDanmuku; -}))); +})); //# sourceMappingURL=artplayer-plugin-danmuku.js.map diff --git a/docs/uncompiled/artplayer-plugin-danmuku.js.map b/docs/uncompiled/artplayer-plugin-danmuku.js.map index 2ee5e0563..647ab49b4 100644 --- a/docs/uncompiled/artplayer-plugin-danmuku.js.map +++ b/docs/uncompiled/artplayer-plugin-danmuku.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer-plugin-danmuku.js","sources":["../../node_modules/_@babel_runtime@7.11.2@@babel/runtime/helpers/defineProperty.js","../../node_modules/_@babel_runtime@7.11.2@@babel/runtime/helpers/classCallCheck.js","../../node_modules/_@babel_runtime@7.11.2@@babel/runtime/helpers/createClass.js","../../packages/artplayer-plugin-danmuku/src/i18n.js","../../packages/artplayer-plugin-danmuku/src/setting.js","../../packages/artplayer-plugin-danmuku/src/utils.js","../../node_modules/_@babel_runtime@7.11.2@@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/_@babel_runtime@7.11.2@@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/_@babel_runtime@7.11.2@@babel/runtime/helpers/arrayLikeToArray.js","../../node_modules/_@babel_runtime@7.11.2@@babel/runtime/helpers/unsupportedIterableToArray.js","../../node_modules/_@babel_runtime@7.11.2@@babel/runtime/helpers/nonIterableRest.js","../../node_modules/_@babel_runtime@7.11.2@@babel/runtime/helpers/slicedToArray.js","../../packages/artplayer-plugin-danmuku/src/bilibili.js","../../packages/artplayer-plugin-danmuku/src/getDanmuTop.js","../../packages/artplayer-plugin-danmuku/src/danmuku.js","../../packages/artplayer-plugin-danmuku/src/index.js"],"sourcesContent":["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;","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;","export default {\n 'zh-cn': {\n 'Danmu opacity': '弹幕透明度',\n 'Danmu speed': '弹幕速度',\n 'Danmu size': '弹幕大小',\n 'Danmu text cannot be empty': '弹幕文本不能为空',\n 'The length of the danmu does not exceed': '弹幕文本字数不能超过',\n 'Danmu speed synchronous playback multiple': '弹幕速度同步播放倍数',\n },\n 'zh-tw': {\n 'Danmu opacity': '彈幕透明度',\n 'Danmu speed': '彈幕速度',\n 'Danmu size': '弹幕大小',\n 'Danmu text cannot be empty': '彈幕文本不能為空',\n 'The length of the danmu does not exceed': '彈幕文本字數不能超過',\n 'Danmu speed synchronous playback multiple': '彈幕速度同步播放倍數',\n },\n};","export function opacity(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-opacity',\n index: 10,\n html: `\n
\n ${i18n.get('Danmu opacity')}: 100%\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = Number(value) * 100;\n\n art.plugins.artplayerPluginDanmuku.config({\n opacity: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.opacity) {\n $range.value = config.opacity;\n $value.innerText = config.opacity * 100;\n }\n });\n },\n };\n}\n\nexport function size(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-size',\n index: 11,\n html: `\n
\n ${i18n.get('Danmu size')}: 25px\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n\n art.plugins.artplayerPluginDanmuku.config({\n fontSize: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.fontSize) {\n $range.value = config.fontSize;\n $value.innerText = config.fontSize;\n }\n });\n },\n };\n}\n\nexport function speed(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-speed',\n index: 12,\n html: `\n
\n ${i18n.get('Danmu speed')}: 5s\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n\n art.plugins.artplayerPluginDanmuku.config({\n speed: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.speed) {\n $range.value = config.speed;\n $value.innerText = config.speed;\n }\n });\n },\n };\n}\n\nexport function synchronousPlayback(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n return {\n name: 'danmuku-synchronousPlayback',\n index: 13,\n html: `\n \n `,\n mounted: $setting => {\n const $checkbox = $setting.querySelector('input[type=checkbox]');\n proxy($checkbox, 'change', () => {\n art.plugins.artplayerPluginDanmuku.config({\n synchronousPlayback: $checkbox.checked,\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($checkbox.checked !== config.synchronousPlayback) {\n $checkbox.checked = config.synchronousPlayback;\n }\n });\n },\n };\n}\n","export function filter(queue, state, callback) {\n return queue.filter(danmu => danmu.$state === state).map(callback);\n}\n\nexport function getRect(ref, key) {\n const result = ref.getBoundingClientRect();\n return key ? result[key] : result;\n}\n\nexport function getDanmuRef(queue) {\n const result = queue.find(danmu => {\n return danmu.$ref && danmu.$state === 'wait';\n });\n\n if (result) {\n const { $ref } = result;\n result.$ref = null;\n return $ref;\n }\n\n const $ref = document.createElement('div');\n $ref.style.cssText = `\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-family: SimHei, \"Microsoft JhengHei\", Arial, Helvetica, sans-serif;\n font-weight: normal;\n line-height: 1.125;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n `;\n\n return $ref;\n}","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\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 _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","export function getMode(key) {\n switch (key) {\n case 1:\n case 2:\n case 3:\n return 0;\n case 4:\n case 5:\n return 1;\n default:\n return 0;\n }\n}\n\nexport function bilibiliDanmuParseFromXml(xmlString) {\n if (typeof xmlString !== 'string') return [];\n const srtList = xmlString.match(/[\\S ]*?)<\\/d>/gi);\n return srtList.length\n ? srtList.map(item => {\n const [, attrStr, text] = item.match(/(.+)<\\/d>/);\n const attr = attrStr.split(',');\n return attr.length === 8 && text.trim()\n ? {\n text,\n time: Number(attr[0]),\n mode: getMode(Number(attr[1])),\n fontSize: Number(attr[2]),\n color: `#${Number(attr[3]).toString(16)}`,\n timestamp: Number(attr[4]),\n pool: Number(attr[5]),\n userID: attr[6],\n rowID: Number(attr[7]),\n }\n : null;\n })\n : [];\n}\n\nexport function bilibiliDanmuParseFromUrl(url) {\n return fetch(url)\n .then(res => res.text())\n .then(xmlString => bilibiliDanmuParseFromXml(xmlString));\n}\n","import { getRect } from './utils';\n\nfunction calculatedTop(danmus) {\n let top = 0;\n const topMap = {};\n for (let index = 0; index < danmus.length; index += 1) {\n const item = danmus[index];\n if (topMap[item.top]) {\n topMap[item.top].push(item);\n } else {\n topMap[item.top] = [item];\n }\n }\n const topMapKeys = Object.keys(topMap);\n\n let maxDiff = 0;\n for (let index = 1; index < danmus.length; index += 1) {\n const item = danmus[index];\n const prev = danmus[index - 1];\n const prevTop = prev.top + prev.height;\n const diff = item.top - prevTop;\n if (diff > maxDiff) {\n top = prevTop;\n maxDiff = diff;\n }\n }\n\n if (top === 0) {\n let maxRight = 0;\n for (let index = 0; index < topMapKeys.length; index += 1) {\n let minRight = danmus[0].width;\n const topKey = topMapKeys[index];\n const danmuArr = topMap[topKey];\n for (let index = 0; index < danmuArr.length; index += 1) {\n const danmu = danmuArr[index];\n if (danmu.right < minRight) {\n minRight = danmu.right;\n }\n }\n\n if (minRight > maxRight) {\n maxRight = minRight;\n [{ top }] = danmuArr;\n }\n }\n }\n\n if (top === 0) {\n [top] = topMapKeys\n .filter((item, index) => {\n return index !== 0 && index !== topMapKeys.length - 1;\n })\n .sort((prev, next) => {\n return topMap[prev].length - topMap[next].length;\n });\n }\n\n return top;\n}\n\nexport default function getDanmuTop(ins, danmu) {\n const [marginTop, marginBottom] = ins.option.margin;\n const playerData = getRect(ins.art.template.$player);\n const danmus = ins.queue\n .filter(\n item =>\n item.mode === danmu.mode &&\n item.$state === 'emit' &&\n item.$ref &&\n item.$ref.style.fontSize === danmu.$ref.style.fontSize &&\n parseFloat(item.$ref.style.top) <= playerData.height - marginBottom,\n )\n .map(item => {\n const danmuData = getRect(item.$ref);\n const { width, height } = danmuData;\n const top = danmuData.top - playerData.top;\n const left = danmuData.left - playerData.left;\n const right = playerData.width - left - width;\n return { top, left, height, width, right };\n })\n .sort((prev, next) => prev.top - next.top);\n\n if (danmus.length === 0) {\n return marginTop;\n }\n\n danmus.unshift({\n top: 0,\n left: 0,\n right: 0,\n height: marginTop,\n width: playerData.width,\n });\n\n danmus.push({\n top: playerData.height - marginBottom,\n left: 0,\n right: 0,\n height: marginBottom,\n width: playerData.width,\n });\n\n return calculatedTop(danmus);\n}\n","import i18n from './i18n';\nimport { opacity, size, speed, synchronousPlayback } from './setting';\nimport { filter, getRect, getDanmuRef } from './utils';\nimport { bilibiliDanmuParseFromUrl } from './bilibili';\nimport getDanmuTop from './getDanmuTop';\n\nexport default class Danmuku {\n constructor(art, option) {\n art.i18n.update(i18n);\n art.setting.add(opacity);\n art.setting.add(size);\n art.setting.add(speed);\n art.setting.add(synchronousPlayback);\n this.art = art;\n this.queue = [];\n this.option = {};\n this.config(option);\n this.isStop = false;\n this.isHide = false;\n this.animationFrameTimer = null;\n this.$danmuku = art.template.$danmuku;\n art.on('video:play', this.start.bind(this));\n art.on('video:playing', this.start.bind(this));\n art.on('video:pause', this.stop.bind(this));\n art.on('video:waiting', this.stop.bind(this));\n art.on('resize', this.resize.bind(this));\n art.on('destroy', this.stop.bind(this));\n this.load();\n }\n\n static get option() {\n return {\n danmuku: [],\n speed: 5,\n maxlength: 50,\n margin: [10, 100],\n opacity: 1,\n fontSize: 25,\n synchronousPlayback: false,\n };\n }\n\n static get scheme() {\n return {\n danmuku: 'array|function|string',\n speed: 'number',\n maxlength: 'number',\n margin: 'array',\n opacity: 'number',\n fontSize: 'number',\n synchronousPlayback: 'boolean',\n };\n }\n\n load() {\n if (typeof this.option.danmuku === 'function') {\n this.option.danmuku().then((danmus) => {\n this.queue = [];\n this.$danmuku.innerText = '';\n danmus.forEach(this.emit.bind(this));\n this.art.emit('artplayerPluginDanmuku:loaded');\n });\n } else if (typeof this.option.danmuku === 'string') {\n bilibiliDanmuParseFromUrl(this.option.danmuku).then((danmus) => {\n this.queue = [];\n this.$danmuku.innerText = '';\n danmus.forEach(this.emit.bind(this));\n this.art.emit('artplayerPluginDanmuku:loaded');\n });\n } else {\n this.queue = [];\n this.$danmuku.innerText = '';\n this.option.danmuku.forEach(this.emit.bind(this));\n this.art.emit('artplayerPluginDanmuku:loaded');\n }\n return this;\n }\n\n config(option) {\n const {\n utils: { clamp },\n validator,\n } = this.art.constructor;\n this.option = Object.assign({}, Danmuku.option, this.option, option);\n validator(this.option, Danmuku.scheme);\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.maxlength = clamp(this.option.maxlength, 10, 100);\n this.option.margin[0] = clamp(this.option.margin[0], 0, 100);\n this.option.margin[1] = clamp(this.option.margin[1], 0, 100);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n this.option.fontSize = clamp(this.option.fontSize, 12, 30);\n this.art.emit('artplayerPluginDanmuku:config', this.option);\n return this;\n }\n\n continue() {\n filter(this.queue, 'stop', (danmu) => {\n danmu.$state = 'emit';\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n case 0:\n danmu.$ref.style.transform = `translateX(${-danmu.$restWidth}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n default:\n break;\n }\n });\n return this;\n }\n\n suspend() {\n const { $player } = this.art.template;\n filter(this.queue, 'emit', (danmu) => {\n danmu.$state = 'stop';\n switch (danmu.mode) {\n case 0: {\n const { left: playerLeft, width: playerWidth } = getRect($player);\n const { left: danmuLeft } = getRect(danmu.$ref);\n const translateX = playerWidth - (danmuLeft - playerLeft) + 5;\n danmu.$ref.style.transform = `translateX(${-translateX}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n break;\n }\n default:\n break;\n }\n });\n return this;\n }\n\n resize() {\n const { $player } = this.art.template;\n const danmuLeft = getRect($player, 'width');\n filter(this.queue, 'wait', (danmu) => {\n if (danmu.$ref) {\n danmu.$ref.style.border = 'none';\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px) translateY(0px) translateZ(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n }\n });\n return this;\n }\n\n update() {\n const {\n player,\n template: { $player },\n } = this.art;\n this.animationFrameTimer = window.requestAnimationFrame(() => {\n if (player.playing && !this.isHide) {\n const danmuLeft = getRect($player, 'width');\n\n filter(this.queue, 'emit', (danmu) => {\n danmu.$restTime -= (Date.now() - danmu.$lastStartTime) / 1000;\n danmu.$lastStartTime = Date.now();\n if (danmu.$restTime <= 0) {\n danmu.$state = 'wait';\n danmu.$ref.style.border = 'none';\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px) translateY(0px) translateZ(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n }\n });\n\n this.queue\n .filter(\n (danmu) =>\n player.currentTime + 0.1 >= danmu.time &&\n danmu.time >= player.currentTime - 0.1 &&\n danmu.$state === 'wait',\n )\n .forEach((danmu) => {\n danmu.$ref = getDanmuRef(this.queue);\n this.$danmuku.appendChild(danmu.$ref);\n danmu.$ref.style.opacity = this.option.opacity;\n danmu.$ref.style.fontSize = `${this.option.fontSize}px`;\n danmu.$ref.innerText = danmu.text;\n danmu.$ref.style.color = danmu.color || '#fff';\n danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color || '#fff'}` : 'none';\n danmu.$restTime =\n this.option.synchronousPlayback && player.playbackRate\n ? this.option.speed / Number(player.playbackRate)\n : this.option.speed;\n danmu.$lastStartTime = Date.now();\n const danmuWidth = getRect(danmu.$ref, 'width');\n const danmuTop = getDanmuTop(this, danmu);\n danmu.$state = 'emit';\n switch (danmu.mode) {\n case 0: {\n danmu.$restWidth = danmuLeft + danmuWidth + 5;\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.top = `${danmuTop}px`;\n danmu.$ref.style.transform = `translateX(${-danmu.$restWidth}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n case 1:\n danmu.$ref.style.top = `${danmuTop}px`;\n danmu.$ref.style.left = '50%';\n danmu.$ref.style.marginLeft = `-${danmuWidth / 2}px`;\n break;\n default:\n break;\n }\n });\n }\n\n if (!this.isStop) {\n this.update();\n }\n });\n return this;\n }\n\n stop() {\n this.isStop = true;\n this.suspend();\n window.cancelAnimationFrame(this.animationFrameTimer);\n this.art.emit('artplayerPluginDanmuku:stop');\n return this;\n }\n\n start() {\n this.isStop = false;\n this.continue();\n this.update();\n this.art.emit('artplayerPluginDanmuku:start');\n return this;\n }\n\n show() {\n this.isHide = false;\n this.$danmuku.style.display = 'block';\n this.art.emit('artplayerPluginDanmuku:show');\n return this;\n }\n\n hide() {\n this.isHide = true;\n this.$danmuku.style.display = 'none';\n this.art.emit('artplayerPluginDanmuku:hide');\n return this;\n }\n\n emit(danmu) {\n const { notice, player, i18n } = this.art;\n const {\n utils: { clamp },\n validator,\n } = this.art.constructor;\n\n validator(danmu, {\n text: 'string',\n mode: 'number|undefined',\n color: 'string|undefined',\n time: 'number|undefined',\n border: 'boolean|undefined',\n });\n\n if (!danmu.text.trim()) {\n notice.show = i18n.get('Danmu text cannot be empty');\n return this;\n }\n\n if (danmu.text.length > this.option.maxlength) {\n notice.show = `${i18n.get('The length of the danmu does not exceed')} ${this.option.maxlength}`;\n return this;\n }\n\n if (danmu.time) {\n danmu.time = clamp(danmu.time, 0, Infinity);\n } else {\n danmu.time = player.currentTime + 0.5;\n }\n\n this.queue.push({\n mode: 0,\n ...danmu,\n $state: 'wait',\n $ref: null,\n $restTime: 0,\n $lastStartTime: 0,\n $restWidth: 0,\n });\n return this;\n }\n}\n","import Danmuku from './danmuku';\n\nexport default function artplayerPluginDanmuku(option) {\n return (art) => {\n const danmuku = new Danmuku(art, option);\n return {\n name: 'artplayerPluginDanmuku',\n emit: danmuku.emit.bind(danmuku),\n config: danmuku.config.bind(danmuku),\n hide: danmuku.hide.bind(danmuku),\n show: danmuku.show.bind(danmuku),\n get isHide() {\n return danmuku.isHide;\n },\n };\n };\n}\n"],"names":["opacity","art","i18n","proxy","events","name","index","html","get","mounted","$setting","$range","querySelector","$value","value","innerText","Number","plugins","artplayerPluginDanmuku","config","on","size","fontSize","speed","synchronousPlayback","$checkbox","checked","filter","queue","state","callback","danmu","$state","map","getRect","ref","key","result","getBoundingClientRect","getDanmuRef","find","$ref","document","createElement","style","cssText","getMode","bilibiliDanmuParseFromXml","xmlString","srtList","match","length","item","attrStr","text","attr","split","trim","time","mode","color","toString","timestamp","pool","userID","rowID","bilibiliDanmuParseFromUrl","url","fetch","then","res","calculatedTop","danmus","top","topMap","push","topMapKeys","Object","keys","maxDiff","prev","prevTop","height","diff","maxRight","minRight","width","topKey","danmuArr","right","sort","next","getDanmuTop","ins","option","margin","marginTop","marginBottom","playerData","template","$player","parseFloat","danmuData","left","unshift","Danmuku","update","setting","add","isStop","isHide","animationFrameTimer","$danmuku","start","bind","stop","resize","load","danmuku","forEach","emit","constructor","clamp","utils","validator","assign","scheme","maxlength","$lastStartTime","Date","now","transform","$restWidth","transition","$restTime","playerLeft","playerWidth","danmuLeft","translateX","border","marginLeft","player","window","requestAnimationFrame","playing","currentTime","appendChild","playbackRate","danmuWidth","danmuTop","suspend","cancelAnimationFrame","continue","display","notice","show","Infinity","hide"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer-plugin-danmuku.js","sources":["../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/defineProperty.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/createClass.js","../../packages/artplayer-plugin-danmuku/src/i18n.js","../../packages/artplayer-plugin-danmuku/src/setting.js","../../packages/artplayer-plugin-danmuku/src/utils.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayWithHoles.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/nonIterableRest.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/slicedToArray.js","../../packages/artplayer-plugin-danmuku/src/bilibili.js","../../packages/artplayer-plugin-danmuku/src/getDanmuTop.js","../../packages/artplayer-plugin-danmuku/src/danmuku.js","../../packages/artplayer-plugin-danmuku/src/index.js"],"sourcesContent":["export default 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}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default {\n 'zh-cn': {\n 'Danmu opacity': '弹幕透明度',\n 'Danmu speed': '弹幕速度',\n 'Danmu size': '弹幕大小',\n 'Danmu text cannot be empty': '弹幕文本不能为空',\n 'The length of the danmu does not exceed': '弹幕文本字数不能超过',\n 'Danmu speed synchronous playback multiple': '弹幕速度同步播放倍数',\n },\n 'zh-tw': {\n 'Danmu opacity': '彈幕透明度',\n 'Danmu speed': '彈幕速度',\n 'Danmu size': '弹幕大小',\n 'Danmu text cannot be empty': '彈幕文本不能為空',\n 'The length of the danmu does not exceed': '彈幕文本字數不能超過',\n 'Danmu speed synchronous playback multiple': '彈幕速度同步播放倍數',\n },\n};","export function opacity(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-opacity',\n index: 10,\n html: `\n
\n ${i18n.get('Danmu opacity')}: 100%\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = Number(value) * 100;\n\n art.plugins.artplayerPluginDanmuku.config({\n opacity: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.opacity) {\n $range.value = config.opacity;\n $value.innerText = config.opacity * 100;\n }\n });\n },\n };\n}\n\nexport function size(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-size',\n index: 11,\n html: `\n
\n ${i18n.get('Danmu size')}: 25px\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n\n art.plugins.artplayerPluginDanmuku.config({\n fontSize: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.fontSize) {\n $range.value = config.fontSize;\n $value.innerText = config.fontSize;\n }\n });\n },\n };\n}\n\nexport function speed(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-speed',\n index: 12,\n html: `\n
\n ${i18n.get('Danmu speed')}: 5s\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n\n art.plugins.artplayerPluginDanmuku.config({\n speed: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.speed) {\n $range.value = config.speed;\n $value.innerText = config.speed;\n }\n });\n },\n };\n}\n\nexport function synchronousPlayback(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n return {\n name: 'danmuku-synchronousPlayback',\n index: 13,\n html: `\n \n `,\n mounted: $setting => {\n const $checkbox = $setting.querySelector('input[type=checkbox]');\n proxy($checkbox, 'change', () => {\n art.plugins.artplayerPluginDanmuku.config({\n synchronousPlayback: $checkbox.checked,\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($checkbox.checked !== config.synchronousPlayback) {\n $checkbox.checked = config.synchronousPlayback;\n }\n });\n },\n };\n}\n","export function filter(queue, state, callback) {\n return queue.filter(danmu => danmu.$state === state).map(callback);\n}\n\nexport function getRect(ref, key) {\n const result = ref.getBoundingClientRect();\n return key ? result[key] : result;\n}\n\nexport function getDanmuRef(queue) {\n const result = queue.find(danmu => {\n return danmu.$ref && danmu.$state === 'wait';\n });\n\n if (result) {\n const { $ref } = result;\n result.$ref = null;\n return $ref;\n }\n\n const $ref = document.createElement('div');\n $ref.style.cssText = `\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-family: SimHei, \"Microsoft JhengHei\", Arial, Helvetica, sans-serif;\n font-weight: normal;\n line-height: 1.125;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n `;\n\n return $ref;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_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}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export function getMode(key) {\n switch (key) {\n case 1:\n case 2:\n case 3:\n return 0;\n case 4:\n case 5:\n return 1;\n default:\n return 0;\n }\n}\n\nexport function bilibiliDanmuParseFromXml(xmlString) {\n if (typeof xmlString !== 'string') return [];\n const srtList = xmlString.match(/[\\S ]*?)<\\/d>/gi);\n return srtList && srtList.length\n ? srtList.map((item) => {\n const [, attrStr, text] = item.match(/(.+)<\\/d>/);\n const attr = attrStr.split(',');\n return attr.length === 8 && text.trim()\n ? {\n text,\n time: Number(attr[0]),\n mode: getMode(Number(attr[1])),\n fontSize: Number(attr[2]),\n color: `#${Number(attr[3]).toString(16)}`,\n timestamp: Number(attr[4]),\n pool: Number(attr[5]),\n userID: attr[6],\n rowID: Number(attr[7]),\n }\n : null;\n })\n : [];\n}\n\nexport function bilibiliDanmuParseFromUrl(url) {\n return fetch(url)\n .then((res) => res.text())\n .then((xmlString) => bilibiliDanmuParseFromXml(xmlString));\n}\n","import { getRect } from './utils';\n\nfunction calculatedTop(danmus) {\n let top = 0;\n const topMap = {};\n for (let index = 0; index < danmus.length; index += 1) {\n const item = danmus[index];\n if (topMap[item.top]) {\n topMap[item.top].push(item);\n } else {\n topMap[item.top] = [item];\n }\n }\n const topMapKeys = Object.keys(topMap);\n\n let maxDiff = 0;\n for (let index = 1; index < danmus.length; index += 1) {\n const item = danmus[index];\n const prev = danmus[index - 1];\n const prevTop = prev.top + prev.height;\n const diff = item.top - prevTop;\n if (diff > maxDiff) {\n top = prevTop;\n maxDiff = diff;\n }\n }\n\n if (top === 0) {\n let maxRight = 0;\n for (let index = 0; index < topMapKeys.length; index += 1) {\n let minRight = danmus[0].width;\n const topKey = topMapKeys[index];\n const danmuArr = topMap[topKey];\n for (let index = 0; index < danmuArr.length; index += 1) {\n const danmu = danmuArr[index];\n if (danmu.right < minRight) {\n minRight = danmu.right;\n }\n }\n\n if (minRight > maxRight) {\n maxRight = minRight;\n [{ top }] = danmuArr;\n }\n }\n }\n\n if (top === 0) {\n [top] = topMapKeys\n .filter((item, index) => {\n return index !== 0 && index !== topMapKeys.length - 1;\n })\n .sort((prev, next) => {\n return topMap[prev].length - topMap[next].length;\n });\n }\n\n return top;\n}\n\nexport default function getDanmuTop(ins, danmu) {\n const [marginTop, marginBottom] = ins.option.margin;\n const playerData = getRect(ins.art.template.$player);\n const danmus = ins.queue\n .filter(\n item =>\n item.mode === danmu.mode &&\n item.$state === 'emit' &&\n item.$ref &&\n item.$ref.style.fontSize === danmu.$ref.style.fontSize &&\n parseFloat(item.$ref.style.top) <= playerData.height - marginBottom,\n )\n .map(item => {\n const danmuData = getRect(item.$ref);\n const { width, height } = danmuData;\n const top = danmuData.top - playerData.top;\n const left = danmuData.left - playerData.left;\n const right = playerData.width - left - width;\n return { top, left, height, width, right };\n })\n .sort((prev, next) => prev.top - next.top);\n\n if (danmus.length === 0) {\n return marginTop;\n }\n\n danmus.unshift({\n top: 0,\n left: 0,\n right: 0,\n height: marginTop,\n width: playerData.width,\n });\n\n danmus.push({\n top: playerData.height - marginBottom,\n left: 0,\n right: 0,\n height: marginBottom,\n width: playerData.width,\n });\n\n return calculatedTop(danmus);\n}\n","import i18n from './i18n';\nimport { opacity, size, speed, synchronousPlayback } from './setting';\nimport { filter, getRect, getDanmuRef } from './utils';\nimport { bilibiliDanmuParseFromUrl } from './bilibili';\nimport getDanmuTop from './getDanmuTop';\n\nexport default class Danmuku {\n constructor(art, option) {\n art.i18n.update(i18n);\n art.setting.add(opacity);\n art.setting.add(size);\n art.setting.add(speed);\n art.setting.add(synchronousPlayback);\n this.art = art;\n this.queue = [];\n this.option = {};\n this.config(option);\n this.isStop = false;\n this.isHide = false;\n this.animationFrameTimer = null;\n this.$danmuku = art.template.$danmuku;\n art.on('video:play', this.start.bind(this));\n art.on('video:playing', this.start.bind(this));\n art.on('video:pause', this.stop.bind(this));\n art.on('video:waiting', this.stop.bind(this));\n art.on('resize', this.resize.bind(this));\n art.on('destroy', this.stop.bind(this));\n this.load();\n }\n\n static get option() {\n return {\n danmuku: [],\n speed: 5,\n maxlength: 50,\n margin: [10, 100],\n opacity: 1,\n fontSize: 25,\n synchronousPlayback: false,\n };\n }\n\n static get scheme() {\n return {\n danmuku: 'array|function|string',\n speed: 'number',\n maxlength: 'number',\n margin: 'array',\n opacity: 'number',\n fontSize: 'number',\n synchronousPlayback: 'boolean',\n };\n }\n\n load() {\n if (typeof this.option.danmuku === 'function') {\n this.option.danmuku().then((danmus) => {\n this.queue = [];\n this.$danmuku.innerText = '';\n danmus.forEach(this.emit.bind(this));\n this.art.emit('artplayerPluginDanmuku:loaded');\n });\n } else if (typeof this.option.danmuku === 'string') {\n bilibiliDanmuParseFromUrl(this.option.danmuku).then((danmus) => {\n this.queue = [];\n this.$danmuku.innerText = '';\n danmus.forEach(this.emit.bind(this));\n this.art.emit('artplayerPluginDanmuku:loaded');\n });\n } else {\n this.queue = [];\n this.$danmuku.innerText = '';\n this.option.danmuku.forEach(this.emit.bind(this));\n this.art.emit('artplayerPluginDanmuku:loaded');\n }\n return this;\n }\n\n config(option) {\n const {\n utils: { clamp },\n validator,\n } = this.art.constructor;\n this.option = Object.assign({}, Danmuku.option, this.option, option);\n validator(this.option, Danmuku.scheme);\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.maxlength = clamp(this.option.maxlength, 10, 100);\n this.option.margin[0] = clamp(this.option.margin[0], 0, 100);\n this.option.margin[1] = clamp(this.option.margin[1], 0, 100);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n this.option.fontSize = clamp(this.option.fontSize, 12, 30);\n this.art.emit('artplayerPluginDanmuku:config', this.option);\n return this;\n }\n\n continue() {\n filter(this.queue, 'stop', (danmu) => {\n danmu.$state = 'emit';\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n case 0:\n danmu.$ref.style.transform = `translateX(${-danmu.$restWidth}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n default:\n break;\n }\n });\n return this;\n }\n\n suspend() {\n const { $player } = this.art.template;\n filter(this.queue, 'emit', (danmu) => {\n danmu.$state = 'stop';\n switch (danmu.mode) {\n case 0: {\n const { left: playerLeft, width: playerWidth } = getRect($player);\n const { left: danmuLeft } = getRect(danmu.$ref);\n const translateX = playerWidth - (danmuLeft - playerLeft) + 5;\n danmu.$ref.style.transform = `translateX(${-translateX}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n break;\n }\n default:\n break;\n }\n });\n return this;\n }\n\n resize() {\n const { $player } = this.art.template;\n const danmuLeft = getRect($player, 'width');\n filter(this.queue, 'wait', (danmu) => {\n if (danmu.$ref) {\n danmu.$ref.style.border = 'none';\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px) translateY(0px) translateZ(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n }\n });\n return this;\n }\n\n update() {\n const { $player } = this.art.template;\n this.animationFrameTimer = window.requestAnimationFrame(() => {\n if (this.art.playing && !this.isHide) {\n const danmuLeft = getRect($player, 'width');\n\n filter(this.queue, 'emit', (danmu) => {\n danmu.$restTime -= (Date.now() - danmu.$lastStartTime) / 1000;\n danmu.$lastStartTime = Date.now();\n if (danmu.$restTime <= 0) {\n danmu.$state = 'wait';\n danmu.$ref.style.border = 'none';\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px) translateY(0px) translateZ(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n }\n });\n\n this.queue\n .filter(\n (danmu) =>\n this.art.currentTime + 0.1 >= danmu.time &&\n danmu.time >= this.art.currentTime - 0.1 &&\n danmu.$state === 'wait',\n )\n .forEach((danmu) => {\n danmu.$ref = getDanmuRef(this.queue);\n this.$danmuku.appendChild(danmu.$ref);\n danmu.$ref.style.opacity = this.option.opacity;\n danmu.$ref.style.fontSize = `${this.option.fontSize}px`;\n danmu.$ref.innerText = danmu.text;\n danmu.$ref.style.color = danmu.color || '#fff';\n danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color || '#fff'}` : 'none';\n danmu.$restTime =\n this.option.synchronousPlayback && this.art.playbackRate\n ? this.option.speed / Number(this.art.playbackRate)\n : this.option.speed;\n danmu.$lastStartTime = Date.now();\n const danmuWidth = getRect(danmu.$ref, 'width');\n const danmuTop = getDanmuTop(this, danmu);\n danmu.$state = 'emit';\n switch (danmu.mode) {\n case 0: {\n danmu.$restWidth = danmuLeft + danmuWidth + 5;\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.top = `${danmuTop}px`;\n danmu.$ref.style.transform = `translateX(${-danmu.$restWidth}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n case 1:\n danmu.$ref.style.top = `${danmuTop}px`;\n danmu.$ref.style.left = '50%';\n danmu.$ref.style.marginLeft = `-${danmuWidth / 2}px`;\n break;\n default:\n break;\n }\n });\n }\n\n if (!this.isStop) {\n this.update();\n }\n });\n return this;\n }\n\n stop() {\n this.isStop = true;\n this.suspend();\n window.cancelAnimationFrame(this.animationFrameTimer);\n this.art.emit('artplayerPluginDanmuku:stop');\n return this;\n }\n\n start() {\n this.isStop = false;\n this.continue();\n this.update();\n this.art.emit('artplayerPluginDanmuku:start');\n return this;\n }\n\n show() {\n this.isHide = false;\n this.$danmuku.style.display = 'block';\n this.art.emit('artplayerPluginDanmuku:show');\n return this;\n }\n\n hide() {\n this.isHide = true;\n this.$danmuku.style.display = 'none';\n this.art.emit('artplayerPluginDanmuku:hide');\n return this;\n }\n\n emit(danmu) {\n const { notice, i18n } = this.art;\n\n const {\n utils: { clamp },\n validator,\n } = this.art.constructor;\n\n validator(danmu, {\n text: 'string',\n mode: 'number|undefined',\n color: 'string|undefined',\n time: 'number|undefined',\n border: 'boolean|undefined',\n });\n\n if (!danmu.text.trim()) {\n notice.show = i18n.get('Danmu text cannot be empty');\n return this;\n }\n\n if (danmu.text.length > this.option.maxlength) {\n notice.show = `${i18n.get('The length of the danmu does not exceed')} ${this.option.maxlength}`;\n return this;\n }\n\n if (danmu.time) {\n danmu.time = clamp(danmu.time, 0, Infinity);\n } else {\n danmu.time = this.art.currentTime + 0.5;\n }\n\n this.queue.push({\n mode: 0,\n ...danmu,\n $state: 'wait',\n $ref: null,\n $restTime: 0,\n $lastStartTime: 0,\n $restWidth: 0,\n });\n return this;\n }\n}\n","import Danmuku from './danmuku';\n\nexport default function artplayerPluginDanmuku(option) {\n return (art) => {\n const danmuku = new Danmuku(art, option);\n return {\n name: 'artplayerPluginDanmuku',\n emit: danmuku.emit.bind(danmuku),\n config: danmuku.config.bind(danmuku),\n hide: danmuku.hide.bind(danmuku),\n show: danmuku.show.bind(danmuku),\n get isHide() {\n return danmuku.isHide;\n },\n };\n };\n}\n"],"names":["opacity","art","i18n","proxy","events","name","index","html","get","mounted","$setting","$range","querySelector","$value","value","innerText","Number","plugins","artplayerPluginDanmuku","config","on","size","fontSize","speed","synchronousPlayback","$checkbox","checked","filter","queue","state","callback","danmu","$state","map","getRect","ref","key","result","getBoundingClientRect","getDanmuRef","find","$ref","document","createElement","style","cssText","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","getMode","bilibiliDanmuParseFromXml","xmlString","srtList","match","length","item","attrStr","text","attr","split","trim","time","mode","color","toString","timestamp","pool","userID","rowID","bilibiliDanmuParseFromUrl","url","fetch","then","res","calculatedTop","danmus","top","topMap","push","topMapKeys","Object","keys","maxDiff","prev","prevTop","height","diff","maxRight","minRight","width","topKey","danmuArr","right","sort","next","getDanmuTop","ins","option","margin","marginTop","marginBottom","playerData","template","$player","parseFloat","danmuData","left","unshift","Danmuku","update","setting","add","isStop","isHide","animationFrameTimer","$danmuku","start","bind","stop","resize","load","danmuku","forEach","emit","constructor","clamp","utils","validator","assign","scheme","maxlength","$lastStartTime","Date","now","transform","$restWidth","transition","$restTime","playerLeft","playerWidth","danmuLeft","translateX","border","marginLeft","window","requestAnimationFrame","playing","currentTime","appendChild","playbackRate","danmuWidth","danmuTop","suspend","cancelAnimationFrame","continue","display","notice","show","Infinity","hide"],"mappings":"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"} \ No newline at end of file diff --git a/docs/uncompiled/artplayer.js b/docs/uncompiled/artplayer.js index a7b9e75b3..cd91404d5 100644 --- a/docs/uncompiled/artplayer.js +++ b/docs/uncompiled/artplayer.js @@ -924,7 +924,7 @@ }], [{ key: "html", get: function get() { - return "\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
4.2.0
\n
\n
\n
Video url:
\n
\n
\n
\n
Video volume:
\n
\n
\n
\n
Video time:
\n
\n
\n
\n
Video duration:
\n
\n
\n
\n
Video resolution:
\n
\n x \n
\n
\n
\n
[x]
\n
\n
\n
\n
\xD7
\n
\n
\n
\n "; + return "\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
4.2.2
\n
\n
\n
Video url:
\n
\n
\n
\n
Video volume:
\n
\n
\n
\n
Video time:
\n
\n
\n
\n
Video duration:
\n
\n
\n
\n
Video resolution:
\n
\n x \n
\n
\n
\n
[x]
\n
\n
\n
\n
\xD7
\n
\n
\n
\n "; } }]); @@ -3459,7 +3459,7 @@ function version(option) { return _objectSpread$7(_objectSpread$7({}, option), {}, { - html: 'ArtPlayer 4.2.0' + html: 'ArtPlayer 4.2.2' }); } @@ -4999,7 +4999,7 @@ }, { key: "version", get: function get() { - return '4.2.0'; + return '4.2.2'; } }, { key: "env", @@ -5009,7 +5009,7 @@ }, { key: "build", get: function get() { - return '1641558632300'; + return '1641568645931'; } }, { key: "config", @@ -5116,7 +5116,7 @@ return Artplayer; }(Emitter); // eslint-disable-next-line no-console - console.log('%c ArtPlayer %c 4.2.0 %c https://artplayer.org', 'color: #fff; background: #5f5f5f', 'color: #fff; background: #4bc729', ''); + console.log('%c ArtPlayer %c 4.2.2 %c https://artplayer.org', 'color: #fff; background: #5f5f5f', 'color: #fff; background: #4bc729', ''); return Artplayer; diff --git a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js index aefcf3957..740f0b4f5 100644 --- a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js +++ b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js @@ -1,8 +1,8 @@ /*! - * artplayer-plugin-danmuku.js v4.0.0 + * artplayer-plugin-danmuku.js v4.1.0 * Github: https://github.com/zhw2590582/ArtPlayer#readme * (c) 2017-2022 Harvey Zack * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).artplayerPluginDanmuku=e()}(this,(function(){"use strict";function t(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function e(t,e){for(var n=0;n'.concat(e.get("Danmu opacity"),': 100%
'),mounted:function(e){var i=e.querySelector("input[type=range]"),r=e.querySelector(".art-value");n(i,"change",(function(){var e=i.value;r.innerText=100*Number(e),t.plugins.artplayerPluginDanmuku.config({opacity:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){i.value!==t.opacity&&(i.value=t.opacity,r.innerText=100*t.opacity)}))}}}function r(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-size",index:11,html:'
'.concat(e.get("Danmu size"),': 25px
'),mounted:function(e){var i=e.querySelector("input[type=range]"),r=e.querySelector(".art-value");n(i,"change",(function(){var e=i.value;r.innerText=e,t.plugins.artplayerPluginDanmuku.config({fontSize:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){i.value!==t.fontSize&&(i.value=t.fontSize,r.innerText=t.fontSize)}))}}}function a(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-speed",index:12,html:'
'.concat(e.get("Danmu speed"),': 5s
'),mounted:function(e){var i=e.querySelector("input[type=range]"),r=e.querySelector(".art-value");n(i,"change",(function(){var e=i.value;r.innerText=e,t.plugins.artplayerPluginDanmuku.config({speed:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){i.value!==t.speed&&(i.value=t.speed,r.innerText=t.speed)}))}}}function o(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-synchronousPlayback",index:13,html:'"),mounted:function(e){var i=e.querySelector("input[type=checkbox]");n(i,"change",(function(){t.plugins.artplayerPluginDanmuku.config({synchronousPlayback:i.checked})})),t.on("artplayerPluginDanmuku:config",(function(t){i.checked!==t.synchronousPlayback&&(i.checked=t.synchronousPlayback)}))}}}function u(t,e,n){return t.filter((function(t){return t.$state===e})).map(n)}function s(t,e){var n=t.getBoundingClientRect();return e?n[e]:n}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n[\S ]*?)<\/d>/gi);return e&&e.length?e.map((function(t){var e=c(t.match(/(.+)<\/d>/),3),n=e[1],i=e[2],r=n.split(",");return 8===r.length&&i.trim()?{text:i,time:Number(r[0]),mode:p(Number(r[1])),fontSize:Number(r[2]),color:"#".concat(Number(r[3]).toString(16)),timestamp:Number(r[4]),pool:Number(r[5]),userID:r[6],rowID:Number(r[7])}:null})):[]}(t)}))}function h(t,e){var n=c(t.option.margin,2),i=n[0],r=n[1],a=s(t.art.template.$player),o=t.queue.filter((function(t){return t.mode===e.mode&&"emit"===t.$state&&t.$ref&&t.$ref.style.fontSize===e.$ref.style.fontSize&&parseFloat(t.$ref.style.top)<=a.height-r})).map((function(t){var e=s(t.$ref),n=e.width,i=e.height,r=e.top-a.top,o=e.left-a.left;return{top:r,left:o,height:i,width:n,right:a.width-o-n}})).sort((function(t,e){return t.top-e.top}));return 0===o.length?i:(o.unshift({top:0,left:0,right:0,height:i,width:a.width}),o.push({top:a.height-r,left:0,right:0,height:r,width:a.width}),function(t){for(var e=0,n={},i=0;io&&(e=p,o=f)}if(0===e)for(var h=0,m=0;mh&&(h=d,e=c(g,1)[0].top)}if(0===e){var x=a.filter((function(t,e){return 0!==e&&e!==a.length-1})).sort((function(t,e){return n[t].length-n[e].length}));e=c(x,1)[0]}return e}(o))}function m(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function d(e){for(var n=1;n=t.time&&t.time>=n.currentTime-.1&&"wait"===t.$state})).forEach((function(i){i.$ref=function(t){var e=t.find((function(t){return t.$ref&&"wait"===t.$state}));if(e){var n=e.$ref;return e.$ref=null,n}var i=document.createElement("div");return i.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif;\n font-weight: normal;\n line-height: 1.125;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',i}(t.queue),t.$danmuku.appendChild(i.$ref),i.$ref.style.opacity=t.option.opacity,i.$ref.style.fontSize="".concat(t.option.fontSize,"px"),i.$ref.innerText=i.text,i.$ref.style.color=i.color||"#fff",i.$ref.style.border=i.border?"1px solid ".concat(i.color||"#fff"):"none",i.$restTime=t.option.synchronousPlayback&&n.playbackRate?t.option.speed/Number(n.playbackRate):t.option.speed,i.$lastStartTime=Date.now();var r=s(i.$ref,"width"),a=h(t,i);switch(i.$state="emit",i.mode){case 0:i.$restWidth=e+r+5,i.$ref.style.left="".concat(e,"px"),i.$ref.style.top="".concat(a,"px"),i.$ref.style.transform="translateX(".concat(-i.$restWidth,"px) translateY(0px) translateZ(0px)"),i.$ref.style.transition="transform ".concat(i.$restTime,"s linear 0s");break;case 1:i.$ref.style.top="".concat(a,"px"),i.$ref.style.left="50%",i.$ref.style.marginLeft="-".concat(r/2,"px")}}))}t.isStop||t.update()})),this}},{key:"stop",value:function(){return this.isStop=!0,this.suspend(),window.cancelAnimationFrame(this.animationFrameTimer),this.art.emit("artplayerPluginDanmuku:stop"),this}},{key:"start",value:function(){return this.isStop=!1,this.continue(),this.update(),this.art.emit("artplayerPluginDanmuku:start"),this}},{key:"show",value:function(){return this.isHide=!1,this.$danmuku.style.display="block",this.art.emit("artplayerPluginDanmuku:show"),this}},{key:"hide",value:function(){return this.isHide=!0,this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}},{key:"emit",value:function(t){var e=this.art,n=e.notice,i=e.player,r=e.i18n,a=this.art.constructor,o=a.utils.clamp;return(0,a.validator)(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()?t.text.length>this.option.maxlength?(n.show="".concat(r.get("The length of the danmu does not exceed")," ").concat(this.option.maxlength),this):(t.time?t.time=o(t.time,0,1/0):t.time=i.currentTime+.5,this.queue.push(d(d({mode:0},t),{},{$state:"wait",$ref:null,$restTime:0,$lastStartTime:0,$restWidth:0})),this):(n.show=r.get("Danmu text cannot be empty"),this)}}],p=[{key:"option",get:function(){return{danmuku:[],speed:5,maxlength:50,margin:[10,100],opacity:1,fontSize:25,synchronousPlayback:!1}}},{key:"scheme",get:function(){return{danmuku:"array|function|string",speed:"number",maxlength:"number",margin:"array",opacity:"number",fontSize:"number",synchronousPlayback:"boolean"}}}],c&&e(l.prototype,c),p&&e(l,p),t}();return function(t){return function(e){var n=new y(e,t);return{name:"artplayerPluginDanmuku",emit:n.emit.bind(n),config:n.config.bind(n),hide:n.hide.bind(n),show:n.show.bind(n),get isHide(){return n.isHide}}}}})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).artplayerPluginDanmuku=e()}(this,(function(){"use strict";function t(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function e(t,e){for(var n=0;n'.concat(e.get("Danmu opacity"),': 100%
'),mounted:function(e){var r=e.querySelector("input[type=range]"),i=e.querySelector(".art-value");n(r,"change",(function(){var e=r.value;i.innerText=100*Number(e),t.plugins.artplayerPluginDanmuku.config({opacity:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){r.value!==t.opacity&&(r.value=t.opacity,i.innerText=100*t.opacity)}))}}}function i(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-size",index:11,html:'
'.concat(e.get("Danmu size"),': 25px
'),mounted:function(e){var r=e.querySelector("input[type=range]"),i=e.querySelector(".art-value");n(r,"change",(function(){var e=r.value;i.innerText=e,t.plugins.artplayerPluginDanmuku.config({fontSize:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){r.value!==t.fontSize&&(r.value=t.fontSize,i.innerText=t.fontSize)}))}}}function a(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-speed",index:12,html:'
'.concat(e.get("Danmu speed"),': 5s
'),mounted:function(e){var r=e.querySelector("input[type=range]"),i=e.querySelector(".art-value");n(r,"change",(function(){var e=r.value;i.innerText=e,t.plugins.artplayerPluginDanmuku.config({speed:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){r.value!==t.speed&&(r.value=t.speed,i.innerText=t.speed)}))}}}function o(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-synchronousPlayback",index:13,html:'"),mounted:function(e){var r=e.querySelector("input[type=checkbox]");n(r,"change",(function(){t.plugins.artplayerPluginDanmuku.config({synchronousPlayback:r.checked})})),t.on("artplayerPluginDanmuku:config",(function(t){r.checked!==t.synchronousPlayback&&(r.checked=t.synchronousPlayback)}))}}}function u(t,e,n){return t.filter((function(t){return t.$state===e})).map(n)}function s(t,e){var n=t.getBoundingClientRect();return e?n[e]:n}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n[\S ]*?)<\/d>/gi);return e&&e.length?e.map((function(t){var e=c(t.match(/(.+)<\/d>/),3),n=e[1],r=e[2],i=n.split(",");return 8===i.length&&r.trim()?{text:r,time:Number(i[0]),mode:p(Number(i[1])),fontSize:Number(i[2]),color:"#".concat(Number(i[3]).toString(16)),timestamp:Number(i[4]),pool:Number(i[5]),userID:i[6],rowID:Number(i[7])}:null})):[]}(t)}))}function h(t,e){var n=c(t.option.margin,2),r=n[0],i=n[1],a=s(t.art.template.$player),o=t.queue.filter((function(t){return t.mode===e.mode&&"emit"===t.$state&&t.$ref&&t.$ref.style.fontSize===e.$ref.style.fontSize&&parseFloat(t.$ref.style.top)<=a.height-i})).map((function(t){var e=s(t.$ref),n=e.width,r=e.height,i=e.top-a.top,o=e.left-a.left;return{top:i,left:o,height:r,width:n,right:a.width-o-n}})).sort((function(t,e){return t.top-e.top}));return 0===o.length?r:(o.unshift({top:0,left:0,right:0,height:r,width:a.width}),o.push({top:a.height-i,left:0,right:0,height:i,width:a.width}),function(t){for(var e=0,n={},r=0;ro&&(e=p,o=f)}if(0===e)for(var h=0,m=0;mh&&(h=d,e=c(g,1)[0].top)}if(0===e){var x=a.filter((function(t,e){return 0!==e&&e!==a.length-1})).sort((function(t,e){return n[t].length-n[e].length}));e=c(x,1)[0]}return e}(o))}function m(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var n=1;n=e.time&&e.time>=t.art.currentTime-.1&&"wait"===e.$state})).forEach((function(e){e.$ref=function(t){var e=t.find((function(t){return t.$ref&&"wait"===t.$state}));if(e){var n=e.$ref;return e.$ref=null,n}var r=document.createElement("div");return r.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif;\n font-weight: normal;\n line-height: 1.125;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',r}(t.queue),t.$danmuku.appendChild(e.$ref),e.$ref.style.opacity=t.option.opacity,e.$ref.style.fontSize="".concat(t.option.fontSize,"px"),e.$ref.innerText=e.text,e.$ref.style.color=e.color||"#fff",e.$ref.style.border=e.border?"1px solid ".concat(e.color||"#fff"):"none",e.$restTime=t.option.synchronousPlayback&&t.art.playbackRate?t.option.speed/Number(t.art.playbackRate):t.option.speed,e.$lastStartTime=Date.now();var r=s(e.$ref,"width"),i=h(t,e);switch(e.$state="emit",e.mode){case 0:e.$restWidth=n+r+5,e.$ref.style.left="".concat(n,"px"),e.$ref.style.top="".concat(i,"px"),e.$ref.style.transform="translateX(".concat(-e.$restWidth,"px) translateY(0px) translateZ(0px)"),e.$ref.style.transition="transform ".concat(e.$restTime,"s linear 0s");break;case 1:e.$ref.style.top="".concat(i,"px"),e.$ref.style.left="50%",e.$ref.style.marginLeft="-".concat(r/2,"px")}}))}t.isStop||t.update()})),this}},{key:"stop",value:function(){return this.isStop=!0,this.suspend(),window.cancelAnimationFrame(this.animationFrameTimer),this.art.emit("artplayerPluginDanmuku:stop"),this}},{key:"start",value:function(){return this.isStop=!1,this.continue(),this.update(),this.art.emit("artplayerPluginDanmuku:start"),this}},{key:"show",value:function(){return this.isHide=!1,this.$danmuku.style.display="block",this.art.emit("artplayerPluginDanmuku:show"),this}},{key:"hide",value:function(){return this.isHide=!0,this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}},{key:"emit",value:function(t){var e=this.art,n=e.notice,r=e.i18n,i=this.art.constructor,a=i.utils.clamp;return(0,i.validator)(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()?t.text.length>this.option.maxlength?(n.show="".concat(r.get("The length of the danmu does not exceed")," ").concat(this.option.maxlength),this):(t.time?t.time=a(t.time,0,1/0):t.time=this.art.currentTime+.5,this.queue.push(d(d({mode:0},t),{},{$state:"wait",$ref:null,$restTime:0,$lastStartTime:0,$restWidth:0})),this):(n.show=r.get("Danmu text cannot be empty"),this)}}],p=[{key:"option",get:function(){return{danmuku:[],speed:5,maxlength:50,margin:[10,100],opacity:1,fontSize:25,synchronousPlayback:!1}}},{key:"scheme",get:function(){return{danmuku:"array|function|string",speed:"number",maxlength:"number",margin:"array",opacity:"number",fontSize:"number",synchronousPlayback:"boolean"}}}],c&&e(l.prototype,c),p&&e(l,p),t}();return function(t){return function(e){var n=new y(e,t);return{name:"artplayerPluginDanmuku",emit:n.emit.bind(n),config:n.config.bind(n),hide:n.hide.bind(n),show:n.show.bind(n),get isHide(){return n.isHide}}}}})); diff --git a/packages/artplayer-plugin-danmuku/package.json b/packages/artplayer-plugin-danmuku/package.json index 969129677..79c226d1d 100644 --- a/packages/artplayer-plugin-danmuku/package.json +++ b/packages/artplayer-plugin-danmuku/package.json @@ -1,6 +1,6 @@ { "name": "artplayer-plugin-danmuku", - "version": "4.0.0", + "version": "4.1.0", "expose": "artplayerPluginDanmuku", "description": "Danmuku plugin for ArtPlayer", "main": "dist/artplayer-plugin-danmuku.js", diff --git a/packages/artplayer-plugin-danmuku/src/danmuku.js b/packages/artplayer-plugin-danmuku/src/danmuku.js index 8c0d54125..842118a34 100644 --- a/packages/artplayer-plugin-danmuku/src/danmuku.js +++ b/packages/artplayer-plugin-danmuku/src/danmuku.js @@ -145,12 +145,9 @@ export default class Danmuku { } update() { - const { - player, - template: { $player }, - } = this.art; + const { $player } = this.art.template; this.animationFrameTimer = window.requestAnimationFrame(() => { - if (player.playing && !this.isHide) { + if (this.art.playing && !this.isHide) { const danmuLeft = getRect($player, 'width'); filter(this.queue, 'emit', (danmu) => { @@ -169,8 +166,8 @@ export default class Danmuku { this.queue .filter( (danmu) => - player.currentTime + 0.1 >= danmu.time && - danmu.time >= player.currentTime - 0.1 && + this.art.currentTime + 0.1 >= danmu.time && + danmu.time >= this.art.currentTime - 0.1 && danmu.$state === 'wait', ) .forEach((danmu) => { @@ -182,8 +179,8 @@ export default class Danmuku { danmu.$ref.style.color = danmu.color || '#fff'; danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color || '#fff'}` : 'none'; danmu.$restTime = - this.option.synchronousPlayback && player.playbackRate - ? this.option.speed / Number(player.playbackRate) + this.option.synchronousPlayback && this.art.playbackRate + ? this.option.speed / Number(this.art.playbackRate) : this.option.speed; danmu.$lastStartTime = Date.now(); const danmuWidth = getRect(danmu.$ref, 'width'); @@ -247,7 +244,8 @@ export default class Danmuku { } emit(danmu) { - const { notice, player, i18n } = this.art; + const { notice, i18n } = this.art; + const { utils: { clamp }, validator, @@ -274,7 +272,7 @@ export default class Danmuku { if (danmu.time) { danmu.time = clamp(danmu.time, 0, Infinity); } else { - danmu.time = player.currentTime + 0.5; + danmu.time = this.art.currentTime + 0.5; } this.queue.push({ diff --git a/packages/artplayer/dist/artplayer.js b/packages/artplayer/dist/artplayer.js index 89db30f86..8bf57212b 100644 --- a/packages/artplayer/dist/artplayer.js +++ b/packages/artplayer/dist/artplayer.js @@ -1,8 +1,8 @@ /*! - * artplayer.js v4.2.1 + * artplayer.js v4.2.2 * Github: https://github.com/zhw2590582/ArtPlayer#readme * (c) 2017-2022 Harvey Zack * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Artplayer=e()}(this,(function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;r1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function m(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function b(t,e){return t.classList.add(e)}function w(t,e){return t.classList.remove(e)}function x(t,e){return t.classList.contains(e)}function O(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function k(t,e,r){return t.style[e]=r,t}function j(t,e){return Object.keys(e).forEach((function(r){k(t,r,e[r])})),t}function P(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function S(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function R(t,e){S(t).forEach((function(t){return w(t,e)})),b(t,e)}function E(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";d||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function $(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function D(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}function z(t,e){return e.parentNode.replaceChild(t,e),t}function T(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function C(t,e,r){return C=T()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&o(i,r.prototype),i},C.apply(null,arguments)}function A(t){var e="function"==typeof Map?new Map:void 0;return A=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return C(t,arguments,s(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),o(n,t)},A(t)}function L(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=s(t);if(e){var o=s(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var M=function(e){i(o,e);var r=L(o);function o(e,i){var a;return t(this,o),a=r.call(this,e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n(a),i||a.constructor),a.name="ArtPlayerError",a}return o}(A(Error));function q(t,e){if(!t)throw new M(e);return t}function F(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").concat("\r\n\r\n"))}function B(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function I(t){var e=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);return n?{start:r(n[1].trim()),end:r(n[2].trim()),text:n[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map((function(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function V(t){return t.includes("?")?V(t.split("?")[0]):t.includes("#")?V(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function W(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function H(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function J(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),s=0;s0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function tt(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var et=Object.freeze({__proto__:null,query:g,queryAll:m,addClass:b,removeClass:w,hasClass:x,append:O,remove:function(t){return t.parentNode.removeChild(t)},setStyle:k,setStyles:j,getStyle:P,sublings:S,inverseClass:R,tooltip:E,isInViewport:$,includeFromEvent:D,replaceElement:z,ArtPlayerError:M,errorHandle:q,srtToVtt:F,vttToBlob:B,assToVtt:I,getExt:V,download:W,def:U,has:X,get:Q,mergeDeep:Y,sleep:Z,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(f);case"regexp":return t.test(f);default:return!1}}))}}]),e}(),vt=function(){function e(r){var n=this;t(this,e),this.art=r;var o=r.option,i=r.constructor,a=r.whitelist;o.container instanceof Element?this.$container=o.container:(this.$container=g(o.container),q(this.$container,"No container element found by ".concat(o.container)));var c=this.$container.tagName.toLowerCase();q("div"===c,"Unsupported container element type, only support 'div' but got '".concat(c,"'")),q(i.instances.every((function(t){return t.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=r.id,this.$original=this.$container.cloneNode(!0),a.state?this.desktop():this.mobile()}return r(e,[{key:"query",value:function(t){return g(t,this.$container)}},{key:"desktop",value:function(){var t=this.art.option;t.useSSR||(this.$container.innerHTML=e.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),t.backdrop&&(b(this.$settingInner,"art-backdrop-filter"),b(this.$contextmenu,"art-backdrop-filter"),b(this.$info,"art-backdrop-filter")),d&&b(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?z(this.$original,this.$container):b(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
4.2.1
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),e}(),yt={"Video info":"统计信息",Close:"关闭","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","Show setting":"显示设置","Hide setting":"隐藏设置",Screenshot:"截图","Play speed":"播放速度","Aspect ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch video":"切换","Switch subtitle":"切换字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"网页全屏","Exit web fullscreen":"退出网页全屏","Mini player":"迷你播放器","PIP mode":"画中画模式","Exit PIP mode":"退出画中画模式","PIP not supported":"不支持画中画模式","Fullscreen not supported":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},gt={"Video info":"統計訊息",Close:"關閉","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","Show setting":"顯示设置","Hide setting":"隱藏设置",Screenshot:"截圖","Play speed":"播放速度","Aspect ratio":"畫面比例",Default:"默認",Normal:"正常",Open:"打開","Switch video":"切換","Switch subtitle":"切換字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"網頁全屏","Exit web fullscreen":"退出網頁全屏","Mini player":"迷你播放器","PIP mode":"畫中畫模式","Exit PIP mode":"退出畫中畫模式","PIP not supported":"不支持畫中畫模式","Fullscreen not supported":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},mt=function(){function e(r){t(this,e),this.art=r,this.languages={"zh-cn":yt,"zh-tw":gt},this.init()}return r(e,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=Y(this.languages,t),this.init()}}]),e}();var bt={exports:{}};!function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n=0,o=r.length,i={};nd){var h=d*l/s;k(r,"width","".concat(100*h,"%")),k(r,"height","100%"),k(r,"padding","0 ".concat((u-u*h)/2,"px"))}else{var v=s/d/l;k(r,"width","100%"),k(r,"height","".concat(100*v,"%")),k(r,"padding","".concat((p-p*v)/2,"px 0"))}n.dataset.aspectRatio=e}i.show="".concat(o.get("Aspect ratio"),": ").concat("default"===e?o.get("Default"):e),t.emit("aspectRatio",e)}}),U(t,"aspectRatioReset",{set:function(e){if(e&&t.aspectRatio){var r=t.aspectRatio;t.aspectRatio=r}}})}(r),function(t){var e=t.option,r=t.notice,n=t.template.$video,o=document.createElement("canvas");U(t,"getDataURL",{value:function(){return new Promise((function(t,e){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),t(o.toDataURL("image/png"))}catch(t){r.show=t,e(t)}}))}}),U(t,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),o.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){r.show=t,e(t)}}))}}),U(t,"screenshot",{value:function(){return t.getDataURL().then((function(r){return W(r,"".concat(e.title||"artplayer","_").concat(K(n.currentTime),".png")),t.emit("screenshot",r),r}))}})}(r),xt(r),function(t){var e=t.template.$player;U(t,"fullscreenWeb",{get:function(){return x(e,"art-fullscreen-web")},set:function(r){r?(b(e,"art-fullscreen-web"),t.aspectRatioReset=!0,t.autoSize=!1,t.emit("resize"),t.emit("fullscreenWeb",!0)):(w(e,"art-fullscreen-web"),t.aspectRatioReset=!0,t.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}})}(r),Ot(r),function(t){var e=t.template.$video;U(t,"loaded",{get:function(){return t.loadedTime/e.duration}}),U(t,"loadedTime",{get:function(){return e.buffered.length?e.buffered.end(e.buffered.length-1):0}})}(r),function(t){U(t,"played",{get:function(){return t.currentTime/t.duration}})}(r),function(t){var e=t.template.$video;U(t,"playing",{get:function(){return!!(e.currentTime>0&&!e.paused&&!e.ended&&e.readyState>2)}})}(r),function(t){var e=t.template,r=e.$container,n=e.$player,o=e.$video;U(t,"autoSize",{get:function(){return x(r,"art-auto-size")},set:function(e){if(e){var i=o.videoWidth,a=o.videoHeight,c=r.getBoundingClientRect(),s=c.width,l=c.height,u=i/a,p=s/l;if(b(r,"art-auto-size"),p>u)k(n,"width","".concat(l*u/s*100,"%")),k(n,"height","100%");else{var f=s/u/l*100;k(n,"width","100%"),k(n,"height","".concat(f,"%"))}t.emit("autoSize",{width:t.width,height:t.height})}else w(r,"art-auto-size"),k(n,"width",null),k(n,"height",null),t.emit("autoSize")}})}(r),function(t){U(t,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}});for(var e=["bottom","height","left","right","top","width"],r=function(r){var n=e[r];U(t,n,{get:function(){return t.rect[n]}})},n=0;n=1?(e=[n,o],t.emit("loop",e)):(e=[],t.emit("loop"))}else e=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){e.length&&(t.currentTimee[1])&&(t.seek=e[0])}))}(r),function(t){var e=t.template,r=e.$video,n=e.$player,o=t.i18n,i=t.notice;U(t,"rotate",{get:function(){return Number(n.dataset.rotate)||0},set:function(e){e||(e=0);var a=[-270,-180,-90,0,90,180,270];if(q(a.includes(e),"'rotate' only accept ".concat(a.toString()," as parameters")),0===e)delete n.dataset.rotate,k(r,"transform",null);else{t.flip=!1,t.autoSize=!0,n.dataset.rotate=e;var c=function(){var t=r.videoWidth,e=r.videoHeight;return t>e?e/t:t/e},s=0,l=1;switch(e){case-270:s=90,l=c();break;case-180:s=180;break;case-90:s=270,l=c();break;case 90:s=90,l=c();break;case 180:s=180;break;case 270:s=270,l=c()}k(r,"transform","rotate(".concat(s,"deg) scale(").concat(l,")"))}i.show="".concat(o.get("Rotate"),": ").concat(e,"°"),t.emit("rotate",e)}}),U(t,"rotateReset",{set:function(e){if(e&&t.rotate){var r=t.rotate;t.rotate=r}}})}(r),function(t){var e=t.option,r=t.template.$poster;U(t,"poster",{get:function(){return e.poster},set:function(t){e.poster=t,k(r,"backgroundImage","url(".concat(t,")"))}})}(r),function(t){var e=t.option,r=t.template,n=r.$container,o=r.$video,i=n.style.height;U(t,"autoHeight",{get:function(){return x(n,"art-auto-height")},set:function(r){if(r){var a=n.clientWidth,c=o.videoHeight*(a/o.videoWidth);k(n,"height",c+"px"),b(n,"art-auto-height"),t.autoSize=e.autoSize,t.emit("autoHeight",c)}else k(n,"height",i),w(n,"art-auto-height"),t.autoSize=e.autoSize,t.emit("autoHeight")}})}(r),function(t){var e=t.option,r=t.template.$player;U(t,"theme",{get:function(){return getComputedStyle(r).getPropertyValue("--theme")},set:function(t){e.theme=t,r.style.setProperty("--theme",t)}})}(r),function(t){U(t,"title",{get:function(){return t.option.title},set:function(e){t.option.title=e}})}(r),function(t){var e=["mini","pip","fullscreen","fullscreenWeb"];!function(e){for(var r=function(r){var n=e[r];t.on(n,(function(){t[n]&&e.filter((function(t){return t!==n})).forEach((function(e){t[e]&&(t[e]=!1)}))}))},n=0;n=Number(o.dataset.index)}));return a?a.insertAdjacentElement("beforebegin",o):O(this.$parent,o),r.html&&O(o,r.html),r.style&&j(o,r.style),r.tooltip&&E(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&b(o,"art-control-onlyText"),U(this,n,{value:o}),o}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;b(e,"art-control-selector");var a=document.createElement("div");b(a,"art-selector-value"),O(a,t.html),e.innerText="",O(e,a);var c=t.selector.map((function(t,e){return'
').concat(t.html,"
")})).join(""),s=document.createElement("div");b(s,"art-selector-list"),O(s,c),O(e,s);var l=function(){var t=P(e,"width")/2-P(s,"width")/2;s.style.left="".concat(t,"px")};o(e,l),i(s,"click",(function(e){var n=(e.composedPath()||[]).find((function(t){return x(t,"art-selector-item")}));if(n){R(n,"art-current");var o=Number(n.dataset.index),i=t.selector[o]||{};if(a.innerText=n.innerText,t.onSelect){var c=t.onSelect.call(r.art,i,n);"string"==typeof c&&(a.innerHTML=c)}l(),r.art.emit("selector",i,n)}}))}}]),e}();function Rt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Et(t){for(var e=1;e
',mounted:function(t){var i=!1,a=g(".art-progress-loaded",t),c=g(".art-progress-played",t),s=g(".art-progress-highlight",t),l=g(".art-progress-indicator",t),u=g(".art-progress-tip",t);k(c,"backgroundColor","var(--theme)");var p=14;function f(t,e){"loaded"===t&&k(a,"width","".concat(100*e,"%")),"played"===t&&(k(c,"width","".concat(100*e,"%")),k(l,"left","calc(".concat(100*e,"% - ").concat(p/2,"px)")))}r.indicator?(p=16,O(l,r.indicator)):j(l,{backgroundColor:"var(--theme)"}),j(l,{left:"-".concat(p/2,"px"),width:"".concat(p,"px"),height:"".concat(p,"px")});for(var d=0;d'))}f("loaded",e.loaded),e.on("video:progress",(function(){f("loaded",e.loaded)})),e.on("video:timeupdate",(function(){f("played",e.played)})),e.on("video:ended",(function(){f("played",1)})),o(t,"mousemove",(function(r){k(u,"display","block"),D(r,s)?function(r){var n=qt(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?k(u,"left",0):n>t.clientWidth-i/2?k(u,"left","".concat(t.clientWidth-i,"px")):k(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=qt(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?k(u,"left",0):o>t.clientWidth-a/2?k(u,"left","".concat(t.clientWidth-a,"px")):k(u,"left","".concat(o-a/2,"px"))}(r)})),o(t,"mouseout",(function(){k(u,"display","none")})),o(t,"click",(function(t){if(t.target!==l){var r=qt(e,t),n=r.second;f("played",r.percentage),e.seek=n}})),o(l,"mousedown",(function(){i=!0})),o(document,"mousemove",(function(t){if(i){var r=qt(e,t),n=r.second;f("played",r.percentage),e.seek=n}})),o(document,"mouseup",(function(){i&&(i=!1)}))}})}}function Bt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function It(t){for(var e=1;en.clientWidth-l/2?k(t,"left","".concat(n.clientWidth-l,"px")):k(t,"left","".concat(i-l/2,"px"))}(o))})),i(n,"mouseout",(function(){k(t,"display","none")}))}})}}function Zt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Jt(t){for(var e=1;e=3e3&&(r.show=!1,b(a,"art-hide-cursor"),w(a,"art-hover"))})),e.once("ready",(function(){r.add(Ft({name:"progress",disable:i.isLive,position:"top",index:10})),r.add(Yt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),r.add(function(t){return function(e){return ee(ee({},t),{},{mounted:function(t){var r=O(t,''),n=O(t,'');e.on("loop",(function(o){o?(k(t,"display","block"),k(r,"left","calc(".concat(o[0]/e.duration*100,"% - ").concat(r.clientWidth,"px)")),k(n,"left","".concat(o[1]/e.duration*100,"%"))):k(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),r.add(function(t){return function(e){return At(At({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=O(t,n.play),a=O(t,n.pause);function c(){k(i,"display","flex"),k(a,"display","none")}function s(){k(i,"display","none"),k(a,"display","flex")}E(i,o.get("Play")),E(a,o.get("Pause")),r(i,"click",(function(){e.play()})),r(a,"click",(function(){e.pause()})),e.playing?s():c(),e.on("video:playing",(function(){s()})),e.on("video:pause",(function(){c()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),r.add(function(t){return function(e){return Nt(Nt({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=!1,a=O(t,n.volume),c=O(t,n.volumeClose),s=O(t,'
'),l=O(s,'
');function u(t){var e=s.getBoundingClientRect().left;return G(t.pageX-e-6,0,54)/48}function p(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(e.muted||0===t)k(a,"display","none"),k(c,"display","flex"),k(l,"left","0");else{var r=48*t;k(a,"display","flex"),k(c,"display","none"),k(l,"left","".concat(r,"px"))}}E(a,o.get("Mute")),k(c,"display","none"),d&&k(s,"display","none"),p(e.volume),e.on("video:volumechange",(function(){p(e.volume)})),r(a,"click",(function(){e.muted=!0})),r(c,"click",(function(){e.muted=!1})),r(s,"click",(function(t){e.muted=!1,e.volume=u(t)})),r(l,"mousedown",(function(){i=!0})),r(t,"mousemove",(function(t){i&&(e.muted=!1,e.volume=u(t))})),r(document,"mouseup",(function(){i&&(i=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),r.add(function(t){return function(e){return Wt(Wt({},t),{},{mounted:function(t){function r(){var r="".concat(K(e.currentTime)," / ").concat(K(e.duration));r!==t.innerText&&(t.innerText=r)}r();for(var n=["video:loadedmetadata","video:timeupdate","video:progress"],o=0;o0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,r){var n=r.target.dataset.rate;n&&(e.playbackRate=Number(n),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=m("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&R(r,"art-current")}))}})}}({disable:!i.playbackRate,name:"playbackRate",index:10})),o.add(function(t){return function(e){var r=e.i18n;return ce(ce({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,r){var n=r.target.dataset.ratio;n&&(e.aspectRatio=n,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("span",t).find((function(t){return t.dataset.ratio===e}));r&&R(r,"art-current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio",index:20})),o.add(function(t){return function(e){return le(le({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),o.add(function(t){return pe(pe({},t),{},{html:'ArtPlayer 4.2.1'})}({disable:!1,name:"version",index:40})),o.add(function(t){return function(e){return de(de({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60}));for(var t=0;tl+a&&(h=a-d),r+f>u+i&&(v=i-f),j(s,{top:"".concat(v,"px"),left:"".concat(h,"px")})})),l(c,"click",(function(t){D(t,s)||(o.show=!1)})),e.on("blur",(function(){o.show=!1}))})),o}return n}(St);function ye(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=s(t);if(e){var o=s(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var ge=function(e){i(o,e);var n=ye(o);function o(e){var r;return t(this,o),(r=n.call(this,e)).name="info",e.once("ready",(function(){r.init()})),r}return r(o,[{key:"init",value:function(){var t=this,e=this.art,r=e.events.proxy,n=e.template,o=n.$infoPanel,i=n.$infoClose,a=n.$video;r(i,"click",(function(){t.show=!1}));var c=null,s=m("[data-video]",o)||[];this.art.on("destroy",(function(){clearTimeout(c)})),function t(){for(var e=0;e".concat(tt(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.art,n=r.i18n,o=r.notice,i=r.option,a=be(be(be({},i.subtitle),e),{},{url:t});return this.init(a).then((function(t){return e.name&&(o.show="".concat(n.get("Switch subtitle"),": ").concat(e.name)),t}))}},{key:"init",value:function(t){var e=this;if(u(t,ft.subtitle),t.url){var r=this.art,n=r.notice,o=r.events.proxy,i=r.template,a=i.$subtitle,c=i.$video;if(!i.$track){var s=document.createElement("track");s.default=!0,s.kind="metadata",c.appendChild(s),this.art.template.$track=s,o(this.textTrack,"cuechange",this.update.bind(this))}return this.style(t.style),this.bilingual=t.bilingual,q(window.fetch,"fetch not support"),fetch(t.url).then((function(t){return t.arrayBuffer()})).then((function(r){q(window.TextDecoder,"TextDecoder not support");var n=new TextDecoder(t.encoding).decode(r);switch(e.art.emit("subtitleLoad",t.url),t.type||V(t.url)){case"srt":return B(F(n));case"ass":return B(I(n));case"vtt":return B(n);default:return t.url}})).then((function(t){return a.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t,e.art.emit("subtitleSwitch",t)),t})).catch((function(t){throw n.show=t,t}))}}}]),o}(St);var Oe=function(){function e(r){var n=this;t(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),r.whitelist.state&&r.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){D(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(r,n),function(t,e){var r=t.template.$player;e.hover(r,(function(){b(r,"art-hover"),t.emit("hover",!0)}),(function(){w(r,"art-hover"),t.emit("hover")}))}(r,n),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(r,n),function(t,e){var r=t.option,n=J((function(){t.normalSize&&(t.autoSize=r.autoSize),t.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){n()})),screen&&screen.orientation&&screen.orientation.onchange&&e.proxy(screen.orientation,"change",(function(){n()}))}(r,n),function(t,e){if(d&&!t.option.isLive){var r=t.notice,n=t.template.$video,o=!1,i=0,a=0;e.proxy(n,"touchstart",(function(t){1===t.touches.length&&(o=!0,i=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(e){if(1===e.touches.length&&o){var c=G((e.touches[0].clientX-i)/n.clientWidth,-1,1);a=G(t.currentTime+60*c,0,t.duration),r.show="".concat(K(a)," / ").concat(K(t.duration))}})),e.proxy(document,"touchend",(function(){o&&a&&(t.seek=a),o=!1,i=0,a=0}))}}(r,n),function(t,e){var r=t.option,n=t.template.$container,o=J((function(){t.emit("view",$(n,50))}),200);e.proxy(window,"scroll",(function(){o()})),t.on("view",(function(e){r.autoMini&&(t.mini=!e)}))}(r,n)}))}return r(e,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new M("Unable to get Image"));(o=new Image).src=t}if(o.complete)return r(o);e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new M("Failed to load Image: ".concat(o.src)))}))}))}},{key:"destroy",value:function(){for(var t=0;t',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},r.option.icons);Object.keys(o).forEach((function(t){U(n,t,{get:function(){var e=document.createElement("i");return b(e,"art-icon"),b(e,"art-icon-".concat(t)),O(e,o[t]),e}})}))};function Ce(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ae(t){for(var e=1;e'.concat(r.get("Flip"),'
"),click:function(t,r){var n=r.target.dataset.value;n&&(e.flip=n)},mounted:function(t){e.on("flip",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.flip,name:"flip"})),o.add(function(t){return function(e){var r=e.i18n;return Me(Me({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,r){var n=r.target.dataset.value;if(n){var o=e.rotate+Number(n);e.rotate=360===o||-360===o?0:o}else e.rotate=0},mounted:function(t){var r=g(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!i.rotate,name:"rotate"})),o.add(function(t){return function(e){var r=e.i18n;return Fe(Fe({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,r){var n=r.target.dataset.value;n&&(e.aspectRatio=n)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio"})),o.add(function(t){return function(e){var r=e.i18n,n=e.events.proxy;return Ie(Ie({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=g(".art-setting-range input",t),o=g(".art-subtitle-value",t);n(r,"change",(function(){var t=r.value;o.innerText=t,e.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,o.innerText=t)}))}})}}({disable:!i.playbackRate,name:"playbackRate"}));for(var t=0;t'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=g(".art-setting-range input",e),i=g(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Ue(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n;r.add(Ne);var a=[];return t.on("subtitle:switch",(function(){a=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){for(var c=Array.from(o.$track.track.cues),s=e(r,-5,5),l=0;l');k(t,"position","relative"),j(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){s(r.files[0])}))}return e(o,"dragover",(function(t){t.preventDefault()})),e(o,"drop",(function(t){t.preventDefault(),s(t.dataTransfer.files[0])})),t.once("ready",(function(){a.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(c.get("Local Video"),'
').concat(c.get("Open"),'
'),mounted:function(e){var r=g(".art-upload-btn",e),n=g(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),l(r)}})})),{name:"localVideo",attach:l}}function Xe(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=O(n,'');k(n,"position","relative"),j(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=V(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):q(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=g(".art-upload-btn",e),n=g(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Qe(t){return t.layers.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",backgroundColor:"var(--theme)"},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*t.played,"%")}))}}),{name:"miniProgressBar"}}var Ye=function(){function e(r){t(this,e),this.art=r,this.id=0;var n=r.option;n.subtitle.url&&n.subtitleOffset&&this.add(Ue),!n.isLive&&n.miniProgressBar&&this.add(Qe),n.localVideo&&this.add(_e),n.localSubtitle&&this.add(Xe);for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:{};this.isEnd||(this.art.switchUrl(e.url),this.art.once("video:timeupdate",(function(){t.art.emit("ads:start",e)})),this.art.once("video:ended",(function(){var e=t.next;e?(t.index+=1,t.play(e)):t.end()})))}},{key:"end",value:function(){this.isEnd||(this.isEnd=!0,this.playing=!1,this.art.option.url=this.urlCache,this.art.switchUrl(this.urlCache),this.art.emit("ads:end"))}}]),e}(),Je=function e(r){t(this,e);for(var n=r.option,o=r.events.proxy,i=r.template.$video,a=0;a0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),tr.splice(tr.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return tr}},{key:"version",get:function(){return"4.2.1"}},{key:"env",get:function(){return"production"}},{key:"build",get:function(){return"1641565691228"}},{key:"config",get:function(){return dt}},{key:"utils",get:function(){return et}},{key:"scheme",get:function(){return ft}},{key:"Emitter",get:function(){return p}},{key:"validator",get:function(){return u}},{key:"kindOf",get:function(){return u.kindOf}},{key:"html",get:function(){return vt.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,useSSR:!1,ads:[],layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",type:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:h?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),a}(p);return console.log("%c ArtPlayer %c 4.2.1 %c https://artplayer.org","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),er})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Artplayer=e()}(this,(function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;r1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function m(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function b(t,e){return t.classList.add(e)}function w(t,e){return t.classList.remove(e)}function x(t,e){return t.classList.contains(e)}function O(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function k(t,e,r){return t.style[e]=r,t}function j(t,e){return Object.keys(e).forEach((function(r){k(t,r,e[r])})),t}function P(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function S(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function R(t,e){S(t).forEach((function(t){return w(t,e)})),b(t,e)}function E(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";d||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function $(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function D(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}function z(t,e){return e.parentNode.replaceChild(t,e),t}function T(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function C(t,e,r){return C=T()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&o(i,r.prototype),i},C.apply(null,arguments)}function A(t){var e="function"==typeof Map?new Map:void 0;return A=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return C(t,arguments,s(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),o(n,t)},A(t)}function L(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=s(t);if(e){var o=s(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var M=function(e){i(o,e);var r=L(o);function o(e,i){var a;return t(this,o),a=r.call(this,e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n(a),i||a.constructor),a.name="ArtPlayerError",a}return o}(A(Error));function q(t,e){if(!t)throw new M(e);return t}function F(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").concat("\r\n\r\n"))}function B(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function I(t){var e=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);return n?{start:r(n[1].trim()),end:r(n[2].trim()),text:n[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map((function(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function V(t){return t.includes("?")?V(t.split("?")[0]):t.includes("#")?V(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function W(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function H(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function J(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),s=0;s0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function tt(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var et=Object.freeze({__proto__:null,query:g,queryAll:m,addClass:b,removeClass:w,hasClass:x,append:O,remove:function(t){return t.parentNode.removeChild(t)},setStyle:k,setStyles:j,getStyle:P,sublings:S,inverseClass:R,tooltip:E,isInViewport:$,includeFromEvent:D,replaceElement:z,ArtPlayerError:M,errorHandle:q,srtToVtt:F,vttToBlob:B,assToVtt:I,getExt:V,download:W,def:U,has:X,get:Q,mergeDeep:Y,sleep:Z,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(f);case"regexp":return t.test(f);default:return!1}}))}}]),e}(),vt=function(){function e(r){var n=this;t(this,e),this.art=r;var o=r.option,i=r.constructor,a=r.whitelist;o.container instanceof Element?this.$container=o.container:(this.$container=g(o.container),q(this.$container,"No container element found by ".concat(o.container)));var c=this.$container.tagName.toLowerCase();q("div"===c,"Unsupported container element type, only support 'div' but got '".concat(c,"'")),q(i.instances.every((function(t){return t.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=r.id,this.$original=this.$container.cloneNode(!0),a.state?this.desktop():this.mobile()}return r(e,[{key:"query",value:function(t){return g(t,this.$container)}},{key:"desktop",value:function(){var t=this.art.option;t.useSSR||(this.$container.innerHTML=e.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),t.backdrop&&(b(this.$settingInner,"art-backdrop-filter"),b(this.$contextmenu,"art-backdrop-filter"),b(this.$info,"art-backdrop-filter")),d&&b(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?z(this.$original,this.$container):b(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
4.2.2
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),e}(),yt={"Video info":"统计信息",Close:"关闭","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","Show setting":"显示设置","Hide setting":"隐藏设置",Screenshot:"截图","Play speed":"播放速度","Aspect ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch video":"切换","Switch subtitle":"切换字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"网页全屏","Exit web fullscreen":"退出网页全屏","Mini player":"迷你播放器","PIP mode":"画中画模式","Exit PIP mode":"退出画中画模式","PIP not supported":"不支持画中画模式","Fullscreen not supported":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},gt={"Video info":"統計訊息",Close:"關閉","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","Show setting":"顯示设置","Hide setting":"隱藏设置",Screenshot:"截圖","Play speed":"播放速度","Aspect ratio":"畫面比例",Default:"默認",Normal:"正常",Open:"打開","Switch video":"切換","Switch subtitle":"切換字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"網頁全屏","Exit web fullscreen":"退出網頁全屏","Mini player":"迷你播放器","PIP mode":"畫中畫模式","Exit PIP mode":"退出畫中畫模式","PIP not supported":"不支持畫中畫模式","Fullscreen not supported":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},mt=function(){function e(r){t(this,e),this.art=r,this.languages={"zh-cn":yt,"zh-tw":gt},this.init()}return r(e,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=Y(this.languages,t),this.init()}}]),e}();var bt={exports:{}};!function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n=0,o=r.length,i={};nd){var h=d*l/s;k(r,"width","".concat(100*h,"%")),k(r,"height","100%"),k(r,"padding","0 ".concat((u-u*h)/2,"px"))}else{var v=s/d/l;k(r,"width","100%"),k(r,"height","".concat(100*v,"%")),k(r,"padding","".concat((p-p*v)/2,"px 0"))}n.dataset.aspectRatio=e}i.show="".concat(o.get("Aspect ratio"),": ").concat("default"===e?o.get("Default"):e),t.emit("aspectRatio",e)}}),U(t,"aspectRatioReset",{set:function(e){if(e&&t.aspectRatio){var r=t.aspectRatio;t.aspectRatio=r}}})}(r),function(t){var e=t.option,r=t.notice,n=t.template.$video,o=document.createElement("canvas");U(t,"getDataURL",{value:function(){return new Promise((function(t,e){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),t(o.toDataURL("image/png"))}catch(t){r.show=t,e(t)}}))}}),U(t,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),o.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){r.show=t,e(t)}}))}}),U(t,"screenshot",{value:function(){return t.getDataURL().then((function(r){return W(r,"".concat(e.title||"artplayer","_").concat(K(n.currentTime),".png")),t.emit("screenshot",r),r}))}})}(r),xt(r),function(t){var e=t.template.$player;U(t,"fullscreenWeb",{get:function(){return x(e,"art-fullscreen-web")},set:function(r){r?(b(e,"art-fullscreen-web"),t.aspectRatioReset=!0,t.autoSize=!1,t.emit("resize"),t.emit("fullscreenWeb",!0)):(w(e,"art-fullscreen-web"),t.aspectRatioReset=!0,t.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}})}(r),Ot(r),function(t){var e=t.template.$video;U(t,"loaded",{get:function(){return t.loadedTime/e.duration}}),U(t,"loadedTime",{get:function(){return e.buffered.length?e.buffered.end(e.buffered.length-1):0}})}(r),function(t){U(t,"played",{get:function(){return t.currentTime/t.duration}})}(r),function(t){var e=t.template.$video;U(t,"playing",{get:function(){return!!(e.currentTime>0&&!e.paused&&!e.ended&&e.readyState>2)}})}(r),function(t){var e=t.template,r=e.$container,n=e.$player,o=e.$video;U(t,"autoSize",{get:function(){return x(r,"art-auto-size")},set:function(e){if(e){var i=o.videoWidth,a=o.videoHeight,c=r.getBoundingClientRect(),s=c.width,l=c.height,u=i/a,p=s/l;if(b(r,"art-auto-size"),p>u)k(n,"width","".concat(l*u/s*100,"%")),k(n,"height","100%");else{var f=s/u/l*100;k(n,"width","100%"),k(n,"height","".concat(f,"%"))}t.emit("autoSize",{width:t.width,height:t.height})}else w(r,"art-auto-size"),k(n,"width",null),k(n,"height",null),t.emit("autoSize")}})}(r),function(t){U(t,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}});for(var e=["bottom","height","left","right","top","width"],r=function(r){var n=e[r];U(t,n,{get:function(){return t.rect[n]}})},n=0;n=1?(e=[n,o],t.emit("loop",e)):(e=[],t.emit("loop"))}else e=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){e.length&&(t.currentTimee[1])&&(t.seek=e[0])}))}(r),function(t){var e=t.template,r=e.$video,n=e.$player,o=t.i18n,i=t.notice;U(t,"rotate",{get:function(){return Number(n.dataset.rotate)||0},set:function(e){e||(e=0);var a=[-270,-180,-90,0,90,180,270];if(q(a.includes(e),"'rotate' only accept ".concat(a.toString()," as parameters")),0===e)delete n.dataset.rotate,k(r,"transform",null);else{t.flip=!1,t.autoSize=!0,n.dataset.rotate=e;var c=function(){var t=r.videoWidth,e=r.videoHeight;return t>e?e/t:t/e},s=0,l=1;switch(e){case-270:s=90,l=c();break;case-180:s=180;break;case-90:s=270,l=c();break;case 90:s=90,l=c();break;case 180:s=180;break;case 270:s=270,l=c()}k(r,"transform","rotate(".concat(s,"deg) scale(").concat(l,")"))}i.show="".concat(o.get("Rotate"),": ").concat(e,"°"),t.emit("rotate",e)}}),U(t,"rotateReset",{set:function(e){if(e&&t.rotate){var r=t.rotate;t.rotate=r}}})}(r),function(t){var e=t.option,r=t.template.$poster;U(t,"poster",{get:function(){return e.poster},set:function(t){e.poster=t,k(r,"backgroundImage","url(".concat(t,")"))}})}(r),function(t){var e=t.option,r=t.template,n=r.$container,o=r.$video,i=n.style.height;U(t,"autoHeight",{get:function(){return x(n,"art-auto-height")},set:function(r){if(r){var a=n.clientWidth,c=o.videoHeight*(a/o.videoWidth);k(n,"height",c+"px"),b(n,"art-auto-height"),t.autoSize=e.autoSize,t.emit("autoHeight",c)}else k(n,"height",i),w(n,"art-auto-height"),t.autoSize=e.autoSize,t.emit("autoHeight")}})}(r),function(t){var e=t.option,r=t.template.$player;U(t,"theme",{get:function(){return getComputedStyle(r).getPropertyValue("--theme")},set:function(t){e.theme=t,r.style.setProperty("--theme",t)}})}(r),function(t){U(t,"title",{get:function(){return t.option.title},set:function(e){t.option.title=e}})}(r),function(t){var e=["mini","pip","fullscreen","fullscreenWeb"];!function(e){for(var r=function(r){var n=e[r];t.on(n,(function(){t[n]&&e.filter((function(t){return t!==n})).forEach((function(e){t[e]&&(t[e]=!1)}))}))},n=0;n=Number(o.dataset.index)}));return a?a.insertAdjacentElement("beforebegin",o):O(this.$parent,o),r.html&&O(o,r.html),r.style&&j(o,r.style),r.tooltip&&E(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&b(o,"art-control-onlyText"),U(this,n,{value:o}),o}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;b(e,"art-control-selector");var a=document.createElement("div");b(a,"art-selector-value"),O(a,t.html),e.innerText="",O(e,a);var c=t.selector.map((function(t,e){return'
').concat(t.html,"
")})).join(""),s=document.createElement("div");b(s,"art-selector-list"),O(s,c),O(e,s);var l=function(){var t=P(e,"width")/2-P(s,"width")/2;s.style.left="".concat(t,"px")};o(e,l),i(s,"click",(function(e){var n=(e.composedPath()||[]).find((function(t){return x(t,"art-selector-item")}));if(n){R(n,"art-current");var o=Number(n.dataset.index),i=t.selector[o]||{};if(a.innerText=n.innerText,t.onSelect){var c=t.onSelect.call(r.art,i,n);"string"==typeof c&&(a.innerHTML=c)}l(),r.art.emit("selector",i,n)}}))}}]),e}();function Rt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Et(t){for(var e=1;e
',mounted:function(t){var i=!1,a=g(".art-progress-loaded",t),c=g(".art-progress-played",t),s=g(".art-progress-highlight",t),l=g(".art-progress-indicator",t),u=g(".art-progress-tip",t);k(c,"backgroundColor","var(--theme)");var p=14;function f(t,e){"loaded"===t&&k(a,"width","".concat(100*e,"%")),"played"===t&&(k(c,"width","".concat(100*e,"%")),k(l,"left","calc(".concat(100*e,"% - ").concat(p/2,"px)")))}r.indicator?(p=16,O(l,r.indicator)):j(l,{backgroundColor:"var(--theme)"}),j(l,{left:"-".concat(p/2,"px"),width:"".concat(p,"px"),height:"".concat(p,"px")});for(var d=0;d'))}f("loaded",e.loaded),e.on("video:progress",(function(){f("loaded",e.loaded)})),e.on("video:timeupdate",(function(){f("played",e.played)})),e.on("video:ended",(function(){f("played",1)})),o(t,"mousemove",(function(r){k(u,"display","block"),D(r,s)?function(r){var n=qt(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?k(u,"left",0):n>t.clientWidth-i/2?k(u,"left","".concat(t.clientWidth-i,"px")):k(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=qt(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?k(u,"left",0):o>t.clientWidth-a/2?k(u,"left","".concat(t.clientWidth-a,"px")):k(u,"left","".concat(o-a/2,"px"))}(r)})),o(t,"mouseout",(function(){k(u,"display","none")})),o(t,"click",(function(t){if(t.target!==l){var r=qt(e,t),n=r.second;f("played",r.percentage),e.seek=n}})),o(l,"mousedown",(function(){i=!0})),o(document,"mousemove",(function(t){if(i){var r=qt(e,t),n=r.second;f("played",r.percentage),e.seek=n}})),o(document,"mouseup",(function(){i&&(i=!1)}))}})}}function Bt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function It(t){for(var e=1;en.clientWidth-l/2?k(t,"left","".concat(n.clientWidth-l,"px")):k(t,"left","".concat(i-l/2,"px"))}(o))})),i(n,"mouseout",(function(){k(t,"display","none")}))}})}}function Zt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Jt(t){for(var e=1;e=3e3&&(r.show=!1,b(a,"art-hide-cursor"),w(a,"art-hover"))})),e.once("ready",(function(){r.add(Ft({name:"progress",disable:i.isLive,position:"top",index:10})),r.add(Yt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),r.add(function(t){return function(e){return ee(ee({},t),{},{mounted:function(t){var r=O(t,''),n=O(t,'');e.on("loop",(function(o){o?(k(t,"display","block"),k(r,"left","calc(".concat(o[0]/e.duration*100,"% - ").concat(r.clientWidth,"px)")),k(n,"left","".concat(o[1]/e.duration*100,"%"))):k(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),r.add(function(t){return function(e){return At(At({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=O(t,n.play),a=O(t,n.pause);function c(){k(i,"display","flex"),k(a,"display","none")}function s(){k(i,"display","none"),k(a,"display","flex")}E(i,o.get("Play")),E(a,o.get("Pause")),r(i,"click",(function(){e.play()})),r(a,"click",(function(){e.pause()})),e.playing?s():c(),e.on("video:playing",(function(){s()})),e.on("video:pause",(function(){c()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),r.add(function(t){return function(e){return Nt(Nt({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=!1,a=O(t,n.volume),c=O(t,n.volumeClose),s=O(t,'
'),l=O(s,'
');function u(t){var e=s.getBoundingClientRect().left;return G(t.pageX-e-6,0,54)/48}function p(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(e.muted||0===t)k(a,"display","none"),k(c,"display","flex"),k(l,"left","0");else{var r=48*t;k(a,"display","flex"),k(c,"display","none"),k(l,"left","".concat(r,"px"))}}E(a,o.get("Mute")),k(c,"display","none"),d&&k(s,"display","none"),p(e.volume),e.on("video:volumechange",(function(){p(e.volume)})),r(a,"click",(function(){e.muted=!0})),r(c,"click",(function(){e.muted=!1})),r(s,"click",(function(t){e.muted=!1,e.volume=u(t)})),r(l,"mousedown",(function(){i=!0})),r(t,"mousemove",(function(t){i&&(e.muted=!1,e.volume=u(t))})),r(document,"mouseup",(function(){i&&(i=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),r.add(function(t){return function(e){return Wt(Wt({},t),{},{mounted:function(t){function r(){var r="".concat(K(e.currentTime)," / ").concat(K(e.duration));r!==t.innerText&&(t.innerText=r)}r();for(var n=["video:loadedmetadata","video:timeupdate","video:progress"],o=0;o0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,r){var n=r.target.dataset.rate;n&&(e.playbackRate=Number(n),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=m("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&R(r,"art-current")}))}})}}({disable:!i.playbackRate,name:"playbackRate",index:10})),o.add(function(t){return function(e){var r=e.i18n;return ce(ce({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,r){var n=r.target.dataset.ratio;n&&(e.aspectRatio=n,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("span",t).find((function(t){return t.dataset.ratio===e}));r&&R(r,"art-current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio",index:20})),o.add(function(t){return function(e){return le(le({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),o.add(function(t){return pe(pe({},t),{},{html:'ArtPlayer 4.2.2'})}({disable:!1,name:"version",index:40})),o.add(function(t){return function(e){return de(de({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60}));for(var t=0;tl+a&&(h=a-d),r+f>u+i&&(v=i-f),j(s,{top:"".concat(v,"px"),left:"".concat(h,"px")})})),l(c,"click",(function(t){D(t,s)||(o.show=!1)})),e.on("blur",(function(){o.show=!1}))})),o}return n}(St);function ye(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=s(t);if(e){var o=s(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var ge=function(e){i(o,e);var n=ye(o);function o(e){var r;return t(this,o),(r=n.call(this,e)).name="info",e.once("ready",(function(){r.init()})),r}return r(o,[{key:"init",value:function(){var t=this,e=this.art,r=e.events.proxy,n=e.template,o=n.$infoPanel,i=n.$infoClose,a=n.$video;r(i,"click",(function(){t.show=!1}));var c=null,s=m("[data-video]",o)||[];this.art.on("destroy",(function(){clearTimeout(c)})),function t(){for(var e=0;e".concat(tt(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.art,n=r.i18n,o=r.notice,i=r.option,a=be(be(be({},i.subtitle),e),{},{url:t});return this.init(a).then((function(t){return e.name&&(o.show="".concat(n.get("Switch subtitle"),": ").concat(e.name)),t}))}},{key:"init",value:function(t){var e=this;if(u(t,ft.subtitle),t.url){var r=this.art,n=r.notice,o=r.events.proxy,i=r.template,a=i.$subtitle,c=i.$video;if(!i.$track){var s=document.createElement("track");s.default=!0,s.kind="metadata",c.appendChild(s),this.art.template.$track=s,o(this.textTrack,"cuechange",this.update.bind(this))}return this.style(t.style),this.bilingual=t.bilingual,q(window.fetch,"fetch not support"),fetch(t.url).then((function(t){return t.arrayBuffer()})).then((function(r){q(window.TextDecoder,"TextDecoder not support");var n=new TextDecoder(t.encoding).decode(r);switch(e.art.emit("subtitleLoad",t.url),t.type||V(t.url)){case"srt":return B(F(n));case"ass":return B(I(n));case"vtt":return B(n);default:return t.url}})).then((function(t){return a.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t,e.art.emit("subtitleSwitch",t)),t})).catch((function(t){throw n.show=t,t}))}}}]),o}(St);var Oe=function(){function e(r){var n=this;t(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),r.whitelist.state&&r.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){D(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(r,n),function(t,e){var r=t.template.$player;e.hover(r,(function(){b(r,"art-hover"),t.emit("hover",!0)}),(function(){w(r,"art-hover"),t.emit("hover")}))}(r,n),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(r,n),function(t,e){var r=t.option,n=J((function(){t.normalSize&&(t.autoSize=r.autoSize),t.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){n()})),screen&&screen.orientation&&screen.orientation.onchange&&e.proxy(screen.orientation,"change",(function(){n()}))}(r,n),function(t,e){if(d&&!t.option.isLive){var r=t.notice,n=t.template.$video,o=!1,i=0,a=0;e.proxy(n,"touchstart",(function(t){1===t.touches.length&&(o=!0,i=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(e){if(1===e.touches.length&&o){var c=G((e.touches[0].clientX-i)/n.clientWidth,-1,1);a=G(t.currentTime+60*c,0,t.duration),r.show="".concat(K(a)," / ").concat(K(t.duration))}})),e.proxy(document,"touchend",(function(){o&&a&&(t.seek=a),o=!1,i=0,a=0}))}}(r,n),function(t,e){var r=t.option,n=t.template.$container,o=J((function(){t.emit("view",$(n,50))}),200);e.proxy(window,"scroll",(function(){o()})),t.on("view",(function(e){r.autoMini&&(t.mini=!e)}))}(r,n)}))}return r(e,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new M("Unable to get Image"));(o=new Image).src=t}if(o.complete)return r(o);e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new M("Failed to load Image: ".concat(o.src)))}))}))}},{key:"destroy",value:function(){for(var t=0;t',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},r.option.icons);Object.keys(o).forEach((function(t){U(n,t,{get:function(){var e=document.createElement("i");return b(e,"art-icon"),b(e,"art-icon-".concat(t)),O(e,o[t]),e}})}))};function Ce(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ae(t){for(var e=1;e'.concat(r.get("Flip"),'
"),click:function(t,r){var n=r.target.dataset.value;n&&(e.flip=n)},mounted:function(t){e.on("flip",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.flip,name:"flip"})),o.add(function(t){return function(e){var r=e.i18n;return Me(Me({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,r){var n=r.target.dataset.value;if(n){var o=e.rotate+Number(n);e.rotate=360===o||-360===o?0:o}else e.rotate=0},mounted:function(t){var r=g(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!i.rotate,name:"rotate"})),o.add(function(t){return function(e){var r=e.i18n;return Fe(Fe({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,r){var n=r.target.dataset.value;n&&(e.aspectRatio=n)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio"})),o.add(function(t){return function(e){var r=e.i18n,n=e.events.proxy;return Ie(Ie({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=g(".art-setting-range input",t),o=g(".art-subtitle-value",t);n(r,"change",(function(){var t=r.value;o.innerText=t,e.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,o.innerText=t)}))}})}}({disable:!i.playbackRate,name:"playbackRate"}));for(var t=0;t'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=g(".art-setting-range input",e),i=g(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Ue(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n;r.add(Ne);var a=[];return t.on("subtitle:switch",(function(){a=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){for(var c=Array.from(o.$track.track.cues),s=e(r,-5,5),l=0;l');k(t,"position","relative"),j(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){s(r.files[0])}))}return e(o,"dragover",(function(t){t.preventDefault()})),e(o,"drop",(function(t){t.preventDefault(),s(t.dataTransfer.files[0])})),t.once("ready",(function(){a.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(c.get("Local Video"),'
').concat(c.get("Open"),'
'),mounted:function(e){var r=g(".art-upload-btn",e),n=g(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),l(r)}})})),{name:"localVideo",attach:l}}function Xe(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=O(n,'');k(n,"position","relative"),j(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=V(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):q(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=g(".art-upload-btn",e),n=g(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Qe(t){return t.layers.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",backgroundColor:"var(--theme)"},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*t.played,"%")}))}}),{name:"miniProgressBar"}}var Ye=function(){function e(r){t(this,e),this.art=r,this.id=0;var n=r.option;n.subtitle.url&&n.subtitleOffset&&this.add(Ue),!n.isLive&&n.miniProgressBar&&this.add(Qe),n.localVideo&&this.add(_e),n.localSubtitle&&this.add(Xe);for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:{};this.isEnd||(this.art.switchUrl(e.url),this.art.once("video:timeupdate",(function(){t.art.emit("ads:start",e)})),this.art.once("video:ended",(function(){var e=t.next;e?(t.index+=1,t.play(e)):t.end()})))}},{key:"end",value:function(){this.isEnd||(this.isEnd=!0,this.playing=!1,this.art.option.url=this.urlCache,this.art.switchUrl(this.urlCache),this.art.emit("ads:end"))}}]),e}(),Je=function e(r){t(this,e);for(var n=r.option,o=r.events.proxy,i=r.template.$video,a=0;a0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),tr.splice(tr.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return tr}},{key:"version",get:function(){return"4.2.2"}},{key:"env",get:function(){return"production"}},{key:"build",get:function(){return"1641570020821"}},{key:"config",get:function(){return dt}},{key:"utils",get:function(){return et}},{key:"scheme",get:function(){return ft}},{key:"Emitter",get:function(){return p}},{key:"validator",get:function(){return u}},{key:"kindOf",get:function(){return u.kindOf}},{key:"html",get:function(){return vt.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,useSSR:!1,ads:[],layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",type:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:h?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),a}(p);return console.log("%c ArtPlayer %c 4.2.2 %c https://artplayer.org","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),er}));