!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.artplayer={})}(this,function(t){"use strict";var o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function n(t,e){for(var i=0;i\n \n
\n
\n
\n \n
\n
\n \n ',t.$player=t.$container.querySelector(".artplayer-video-player"),t.$video=t.$container.querySelector(".artplayer-video"),t.$subtitle=t.$container.querySelector(".artplayer-subtitle"),t.$bottom=t.$container.querySelector(".artplayer-bottom"),t.$progress=t.$container.querySelector(".artplayer-progress"),t.$controls=t.$container.querySelector(".artplayer-controls"),t.$controlsLeft=t.$container.querySelector(".artplayer-controls-left"),t.$controlsRight=t.$container.querySelector(".artplayer-controls-right"),t.$layers=t.$container.querySelector(".artplayer-layers"),t.$loading=t.$container.querySelector(".artplayer-loading"),t.$notice=t.$container.querySelector(".artplayer-notice"),t.$mask=t.$container.querySelector(".artplayer-mask")}}]),e}(),$={"zh-cn":{"About author":"关于作者","Video info":"视频统计信息",Close:"关闭","Video load failed":"视频加载失败","Fast forward 10 seconds":"快进10秒","Rewind 10 seconds":"快退10秒","10% increase in volume":"音量增加10%","10% reduction in volume":"音量减少10%"},"zh-tw":{"About author":"關於作者","Video info":"影片統計訊息",Close:"關閉","Video load failed":"影片載入失敗","Fast forward 10 seconds":"快進10秒","Rewind 10 seconds":"快退10秒","10% increase in volume":"音量增加10%","10% reduction in volume":"音量減少10%"}},S=function(){function i(t){var e=t.option;o(this,i),this.language=$[e.lang.toLowerCase()]||{}}return r(i,[{key:"get",value:function(t){return this.language[t]||t}}]),i}(),T=function(){function e(t){o(this,e),this.art=t,this.init(),this.eventBind()}return r(e,[{key:"init",value:function(){var t=this.art.option,e=this.art.refs.$video;e.controls=!1,e.poster=t.poster,e.volume=y(t.volume,0,1),e.autoplay=t.autoplay,e.preload=t.preload,e.src=t.url}},{key:"eventBind",value:function(){var e=this,t=this.art,i=t.events.proxy,n=t.refs.$video;b.video.events.forEach(function(t){i(n,t,function(t){e.art.emit("video:".concat(t.type),t)})}),this.art.on("video:loadstart",function(){e.art.loading.show()}),this.art.on("video:loadeddata",function(){e.art.loading.hide()}),this.art.on("video:waiting",function(){e.art.loading.show()}),this.art.on("video:seeking",function(){e.art.loading.show()}),this.art.on("video:canplay",function(){if(e.art.controls.show(),e.art.mask.show(),e.art.loading.hide(),e.art.option.autoplay){var t=e.play();void 0!==t&&t.then().catch(function(t){console.warn(t)})}}),this.art.on("video:playing",function(){e.art.isPlaying=!0,e.art.controls.hide(),e.art.mask.hide()}),this.art.on("video:pause",function(){e.art.isPlaying=!1,e.art.controls.show(),e.art.mask.show()}),this.art.on("video:ended",function(){e.art.isPlaying=!1,e.art.controls.show(),e.art.mask.show()}),this.art.on("video:error",function(){e.art.isPlaying=!1})}},{key:"play",value:function(){var t=this.art.refs.$video,e=t.play();return this.art.emit("play",t),e}},{key:"pause",value:function(){var t=this.art.refs.$video;t.pause(),this.art.emit("pause",t)}},{key:"toggle",value:function(){this.art.isPlaying?this.pause():this.play()}},{key:"seek",value:function(t){var e=this.art.refs.$video,i=Math.max(t,0);e.duration&&(i=Math.min(i,e.duration)),e.currentTime=i,this.art.emit("seek",i)}},{key:"volume",value:function(t){var e=this.art.refs.$video;t&&(e.volume=y(t,0,1)),this.art.emit("volume",e.volume)}},{key:"switchVolumeIcon",value:function(){}},{key:"switchVideo",value:function(){}},{key:"switchQuality",value:function(){}},{key:"resize",value:function(){}},{key:"speed",value:function(t){this.art.refs.$video.playbackRate=t,this.art.emit("speed",t)}}]),e}();var E=function t(e,i){o(this,t),this.art=e,this.option=i},q=function t(e,i){o(this,t),this.art=e,this.option=i},C=function t(e,i){o(this,t),this.art=e,this.option=i},L=function t(e,i){o(this,t),this.art=e,this.option=i},P=function(){function i(t,e){o(this,i),this.art=t,this.option=e,this.isDroging=!1,this.getLoaded=this.getLoaded.bind(this),this.getPlayed=this.getPlayed.bind(this),this.getPos=this.getPos.bind(this),this.set=this.set.bind(this),this.init()}return r(i,[{key:"init",value:function(){var o=this,t=this.art,e=t.option,i=e.highlight,n=e.theme,r=t.events.proxy,a=t.refs.$video,s=t.player;m(this.option.ref,'\n \n
\n
\n
\n
\n
\n
00:00
\n
\n ')),this.$loaded=this.option.ref.querySelector(".art-progress-loaded"),this.$played=this.option.ref.querySelector(".art-progress-played"),this.$highlight=this.option.ref.querySelector(".art-progress-highlight"),this.$screenshot=this.option.ref.querySelector(".art-progress-screenshot"),this.$indicator=this.option.ref.querySelector(".art-progress-indicator"),this.$timer=this.option.ref.querySelector(".art-progress-timer"),this.art.on("video:canplay",function(){o.set("loaded",o.getLoaded()),i.forEach(function(t){var e=Number(t.time)/a.duration;m(o.$highlight,'\n \n '))})}),this.art.on("video:progress",function(){o.set("loaded",o.getLoaded())}),this.art.on("video:timeupdate",function(){o.set("played",o.getPlayed())}),this.art.on("video:ended",function(){o.set("played",1)}),r(this.option.ref,"mousemove",function(t){-1this.option.ref.clientWidth-20?this.$timer.style.left="".concat(this.option.ref.clientWidth-40,"px"):this.$timer.style.left="".concat(i-20,"px"),this.$timer.innerHTML=n}},{key:"showScreenshot",value:function(){}},{key:"getPos",value:function(t){var e,i,n,o,r=this.art.refs.$video,a=this.option.ref.getBoundingClientRect().left,s=y(t.x-a,0,this.option.ref.clientWidth),c=s/this.option.ref.clientWidth*r.duration;return{second:c,time:(e=c,i=Math.floor(e/3600),n=Math.floor((e-3600*i)/60),o=Math.floor(e-3600*i-60*n),(0".concat(t,"
")}).join("")}i.art.emit("subtitle:update",a)})}}},{key:"show",value:function(){var t=this.art.refs.$subtitle;t.style.display="block",this.art.emit("subtitle:show",t)}},{key:"hide",value:function(){var t=this.art.refs.$subtitle;t.style.display="none",this.art.emit("subtitle:hide",t)}},{key:"switch",value:function(t){var e=this.art.refs.$track;p("vtt"===v(t),"'url' option require 'vtt' format, but got '".concat(v(t),"'.")),p(e,"You need to initialize the subtitle option first."),e.src=t,this.art.emit("subtitle:switch",t)}}]),e}(),I=function(){function e(t){o(this,e),this.art=t,this.destroyEvents=[],this.proxy=this.proxy.bind(this)}return r(e,[{key:"proxy",value:function(e,t,i){var n=this,o=3\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n',play:'\n \n \n'},Q={},Object.keys(G).forEach(function(t){var e=document.createElement("div");e.innerHTML='').concat(G[t]," ");var i=z(e.childNodes,1);Q[t]=i[0]}),Q),K=function(){function e(t){o(this,e),this.art=t,this.init()}return r(e,[{key:"init",value:function(){var t=this.art,e=t.option;m(t.refs.$loading,e.loading||J.loading)}},{key:"hide",value:function(){var t=this.art.refs.$loading;t.style.display="none",this.art.emit("loading:hide",t)}},{key:"show",value:function(){var t=this.art.refs.$loading;t.style.display="flex",this.art.emit("loading:show",t)}}]),e}(),Z=function(){function e(t){o(this,e),this.art=t,this.timer=null}return r(e,[{key:"show",value:function(t,e){var i=this,n=this.art.refs.$notice;n.style.display="block",n.innerHTML=t instanceof Error?t.message.trim():t,e&&(clearTimeout(this.timer),this.timer=setTimeout(function(){i.hide()},1e3)),this.art.emit("notice:show",n)}},{key:"hide",value:function(){var t=this.art.refs.$notice;t.style.display="none",this.art.emit("notice:hide",t)}}]),e}(),tt=function(){function e(t){o(this,e),this.art=t,this.init()}return r(e,[{key:"init",value:function(){var t=this,e=this.art,i=e.player,n=e.option,o=e.refs,r=e.events.proxy,a=J.play.cloneNode(!0);a.style.backgroundColor=n.theme,m(o.$mask,a),r(o.$mask,"click",function(){i.play(),t.hide()})}},{key:"show",value:function(){var t=this.art.refs.$mask;t.style.display="flex",this.art.emit("mask:show",t)}},{key:"hide",value:function(){var t=this.art.refs.$mask;t.style.display="none",this.art.emit("mask:show",t)}}]),e}(),et=0,it=[],nt=function(t){function n(t){var e,i;return o(this,n),(e=c(this,u(n).call(this))).emit("init:start"),e.option=Object.assign({},n.DEFAULTS,t),p((i=e.option).container,"'container' option is required."),p(i.url,"'url' option is required."),p("string"==typeof i.container||i.container instanceof Element,"'container' option require 'string' or 'Element' type, but got '".concat(a(i.container),"'.")),p("string"==typeof i.url,"'url' option require 'string' type, but got '".concat(a(i.url),"'.")),p("string"==typeof i.poster,"'poster' option require 'string' type, but got '".concat(a(i.poster),"'.")),p("number"==typeof i.volume,"'volume' option require 'number' type, but got '".concat(a(i.volume),"'.")),p("boolean"==typeof i.autoplay,"'autoplay' option require 'boolean' type, but got '".concat(a(i.autoplay),"'.")),p(-1<["none","metadata","auto"].indexOf(i.preload),"'preload' option require one of 'none、metadata、auto', but got '".concat(i.preload,".")),p("string"==typeof i.lang,"'lang' option require 'string' type, but got '".concat(a(i.lang),"'.")),p("string"==typeof i.type,"'type' option require 'string' type, but got '".concat(a(i.type),"'.")),p("string"==typeof i.mimeCodec,"'mimeCodec' option require 'string' type, but got '".concat(a(i.mimeCodec),"'.")),p(Array.isArray(i.layers),"'layers' option require 'array' type, but got '".concat(a(i.layers),"'.")),p(Array.isArray(i.contextmenu),"'contextmenu' option require 'array' type, but got '".concat(a(i.contextmenu),"'.")),p("string"==typeof i.loading||i.loading instanceof Element,"'loading' option require 'string' type, but got '".concat(a(i.loading),"'.")),p("string"==typeof i.theme,"'theme' option require 'string' type, but got '".concat(a(i.theme),"'.")),p("boolean"==typeof i.hotkey,"'hotkey' option require 'boolean' type, but got '".concat(a(i.hotkey),"'.")),p("[object Object]"===Object.prototype.toString.call(i.subtitle),"'subtitle' option require 'object' type, but got '".concat(a(i.subtitle),"'.")),p(Array.isArray(i.controls),"'controls' option require 'array' type, but got '".concat(a(i.controls),"'.")),p(Array.isArray(i.highlight),"'highlight' option require 'array' type, but got '".concat(a(i.highlight),"'.")),e.init(),e.emit("init:end"),e}return i(n,x),r(n,[{key:"init",value:function(){return this.isFocus=!1,this.isPlaying=!1,this.refs={},this.option.container instanceof Element?this.refs.$container=this.option.container:this.refs.$container=document.querySelector(this.option.container),this.template=new w(this),this.i18n=new S(this),this.events=new I(this),this.player=new T(this),this.layers=new X(this),this.controls=new D(this),this.contextmenu=new N(this),this.danmu=new H(this),this.subtitle=new W(this),this.info=new B(this),this.loading=new K(this),this.notice=new Z(this),this.hotkey=new U(this),this.mask=new tt(this),this.id=et++,it.push(this),this}},{key:"destroy",value:function(){this.events.destroy(),this.refs.$container.innerHTML="",it.splice(it.indexOf(this),1),this.emit("destroy")}}],[{key:"use",value:function(t){var e=this.plugins||(this.plugins=[]);if(-1