diff --git a/packages/xgplayer/browser/index.js b/packages/xgplayer/browser/index.js index 1914afdb7..7dc5aead6 100644 --- a/packages/xgplayer/browser/index.js +++ b/packages/xgplayer/browser/index.js @@ -1,4 +1,4 @@ -window.Player=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:this.config.url,n=this.root,r=this;"String"===a.default.typeOf(t)?this.video.src=t:t.forEach(function(t){e.video.appendChild(a.default.createDom("source","",{src:""+t.src,type:""+(t.type||"")}))}),n.insertBefore(this.video,n.firstChild),r.userTimer=setTimeout(function(){r.emit("blur")},r.config.inactive),setTimeout(function(){e.emit("complete")},1)}},{key:"reload",value:function(){this.video.load(),this.once("loadeddata",function(){this.play()})}},{key:"destroy",value:function(){var e=this,t=this.root.parentNode;this.paused?(this.emit("destroy"),t.removeChild(this.root),t.appendChild(this.rootBackup)):(this.pause(),this.once("pause",function(){e.emit("destroy"),t.removeChild(e.root),t.appendChild(e.rootBackup)})),setTimeout(function(){for(var e in this)"config"!==e&&delete this[e]},200)}},{key:"replay",value:function(){var e=this._replay;a.default.removeClass(this.root,"xgplayer-ended"),e&&e instanceof Function?e():(this.currentTime=0,this.play())}},{key:"onFocus",value:function(){var e=this;a.default.removeClass(this.root,"xgplayer-inactive"),e.userTimer&&clearTimeout(e.userTimer),e.userTimer=setTimeout(function(){e.emit("blur")},e.config.inactive)}},{key:"onBlur",value:function(){this.paused||this.ended||a.default.addClass(this.root,"xgplayer-inactive")}},{key:"onPlay",value:function(){a.default.addClass(this.root,"xgplayer-playing"),a.default.removeClass(this.root,"xgplayer-pause")}},{key:"onPause",value:function(){a.default.addClass(this.root,"xgplayer-pause"),this.userTimer&&clearTimeout(this.userTimer),this.emit("focus")}},{key:"onEnded",value:function(){a.default.addClass(this.root,"xgplayer-ended"),a.default.removeClass(this.root,"xgplayer-playing")}},{key:"onSeeking",value:function(){}},{key:"onSeeked",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),a.default.removeClass(this.root,"xgplayer-isloading")}},{key:"onWaiting",value:function(){var e=this;e.waitTimer&&clearTimeout(e.waitTimer),e.waitTimer=setTimeout(function(){a.default.addClass(e.root,"xgplayer-isloading")},500)}},{key:"onPlaying",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),a.default.removeClass(this.root,"xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay"),a.default.addClass(this.root,"xgplayer-playing")}}],[{key:"install",value:function(e,n){t.plugins||(t.plugins={}),t.plugins[e]=n}}]),t}();p.util=a.default,p.sniffer=i.default,p.Errors=l.default,t.default=p,e.exports=t.default},function(e,t,n){"use strict";var r=n(17)();e.exports=function(e){return e!==r&&null!==e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.from=t.from,this.to=t.to,this.easing=t.easing||function(e){return e*e},this.duration=t.duration||150,this.curPath="",this.progress=t.progress,this.state=0}return r(e,[{key:"animate",value:function(){var e=this,t=new Date,n=e.duration,r=null,o=e.path2shapes(e.from),a=e.path2shapes(e.to),i=e._preprocessing(o,a);e.state=1;!function o(){var l=new Date-t;if(l>=n||2===e.state)return r=a,e.progress(r,1),window.cancelAnimationFrame(e.tickId),void(e.state=0);var s=e.easing(l/n);r=e._lerp(i[0],i[1],s),e.progress(r,s),e.tickId=window.requestAnimationFrame(o)}()}},{key:"toSVGString",value:function(e){return e.map(function(e){return e.forEach(function(e,t){t?e.splice(0,2,"C"):(e.splice(2,0,"C"),e.unshift("M"))}),e.map(function(e){return e.join(" ")}).join("")}).join("")}},{key:"start",value:function(){self.animate()}},{key:"stop",value:function(){0!==this.state&&(this.state=2),window.cancelAnimationFrame(self.tickId),this.state=0}},{key:"reverse",value:function(){0!==this.state&&this.stop();var e=this.from;this.from=this.to,this.to=e,this.animate()}},{key:"reset",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.from;0!==this.state&&this.stop(),this.from=t,this.to=e,this.animate()}}]),e}();for(var i in o.default)o.default[i]instanceof Function&&!a.prototype[i]&&(a.prototype[i]=o.default[i]);t.default=a,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={createDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=document.createElement(e);return o.className=r,o.innerHTML=t,Object.keys(n).forEach(function(t){var r=t,a=n[t];"video"===e||"audio"===e?a&&o.setAttribute(r,a):o.setAttribute(r,a)}),o},hasClass:function(e,t){return e.classList?Array.prototype.some.call(e.classList,function(e){return e===t}):!!e.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))},addClass:function(e,t){e.classList?t.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach(function(t){t&&e.classList.add(t)}):r.hasClass(e,t)||(e.className+=" "+t)},removeClass:function(e,t){e.classList?t.split(/\s+/g).forEach(function(t){e.classList.remove(t)}):r.hasClass(e,t)&&t.split(/\s+/g).forEach(function(t){var n=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className=e.className.replace(n," ")})},toggleClass:function(e,t){t.split(/\s+/g).forEach(function(t){r.hasClass(e,t)?r.removeClass(e,t):r.addClass(e,t)})},findDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=arguments[1];return e.querySelector(t)},padStart:function(e,t,n){for(var r=String(n),o=t>>0,a=Math.ceil(o/r.length),i=[],l=String(e);a--;)i.push(r);return i.join("").substring(0,o-l.length)+l},format:function(e){if(window.isNaN(e))return"";var t=r.padStart(Math.floor(e/3600),2,0),n=r.padStart(Math.floor((e-3600*t)/60),2,0),o=r.padStart(Math.floor(e-3600*t-60*n),2,0);return("00"===t?[n,o]:[t,n,o]).join(":")},event:function(e){if(e.touches){var t=e.touches[0]||e.changedTouches[0];e.clientX=t.clientX||0,e.clientY=t.clientY||0,e.offsetX=t.pageX-t.target.offsetLeft,e.offsetY=t.pageY-t.target.offsetTop}e._target=e.target||e.srcElement},typeOf:function(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]},deepCopy:function(e,t){if("Object"===r.typeOf(t)&&"Object"===r.typeOf(e))return Object.keys(t).forEach(function(n){"Object"!==r.typeOf(t[n])||t[n]instanceof Node?e[n]=t[n]:e[n]?r.deepCopy(e[n],t[n]):e[n]=t[n]}),e},getBgImage:function(e){var t=document.createElement("a"),n=(e.currentStyle||window.getComputedStyle(e,null)).backgroundImage;return t.href=n.replace(/url\("|"\)/g,""),t.href},copyDom:function(e){if(e&&1===e.nodeType){var t=document.createElement(e.tagName);return Array.prototype.forEach.call(e.attributes,function(e){t.setAttribute(e.name,e.value)}),t}return""}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);var o={network:{code:1,msg:"视频下载错误",remark:"只要视频下载错误就使用此类型,无论是video本身的超时还是xhr的分段请求超时或者资源不存在"},mse:{code:2,msg:"流追加错误",remark:"追加流的时候如果类型不对、无法被正确解码则会触发此类错误"},parse:{code:3,msg:"解析错误",remark:"mp4、hls、flv我们都是使用js进行格式解析,如果解析失败则会触发此类错误"},format:{code:4,msg:"格式错误",remark:"如果浏览器不支持的格式导致播放错误"},decoder:{code:5,msg:"解码错误",remark:"浏览器解码异常会抛出此类型错误"},runtime:{code:6,msg:"语法错误",remark:"播放器语法错误"},timeout:{code:7,msg:"播放超时",remark:"播放过程中无法正常请求下一个分段导致播放中断"},other:{code:8,msg:"其他错误",remark:"不可知的错误或被忽略的错误类型"}};t.default=function e(t,n,a,i,l,s,u,c){var p=arguments.length>8&&void 0!==arguments[8]?arguments[8]:{line:"",handle:"",msg:"",version:""};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var f={};return f.playerVersion=r.version,f.errorType=t,f.domain=document.domain,f.duration=a,f.currentTime=n,f.networkState=i,f.readyState=l,f.currentSrc=u,f.src=s,f.ended=c,f.errd=p,f.ex=(o[t]||{}).msg,f},e.exports=t.default},function(e){e.exports={name:"xgplayer",version:"1.0.7",description:"video player",main:"./dist/index.js",scripts:{prepare:"npm run build",build:"webpack --progress --display-chunks -p",watch:"webpack --progress --display-chunks -p --watch"},keywords:["video","player"],babel:{presets:["es2015"],plugins:["add-module-exports","babel-plugin-bulk-import"]},repository:{type:"git",url:"git+https://github.com/bytedance/xgplayer.git"},author:"yinguohui@bytedance.com",license:"MIT",dependencies:{"babel-plugin-add-module-exports":"^0.2.1",deepmerge:"^1.5.0","event-emitter":"^0.3.5",pasition:"^1.0.1","request-frame":"^1.5.3"},browserslist:["> 5%","IE 9","iOS 7","Firefox > 20"],devDependencies:{"babel-loader":"^7.1.4","babel-plugin-bulk-import":"^1.0.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","core-js":"^2.5.4","css-loader":"^0.28.11","json-loader":"^0.5.7","node-sass":"^4.8.3","postcss-cssnext":"^3.1.0","postcss-loader":"^2.1.5","sass-loader":"^6.0.7","style-loader":"^0.20.3",sugarss:"^1.0.1",webpack:"^4.8.1","webpack-cli":"^2.1.3",zlib:"^1.0.5"}}},function(e,t,n){e.exports=n(7)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=w(n(0)),o=w(n(26)),a=w(n(29)),i=w(n(30)),l=w(n(31)),s=w(n(32)),u=w(n(33)),c=w(n(34)),p=w(n(35)),f=w(n(36)),d=w(n(37)),h=w(n(38)),g=w(n(41)),y=w(n(42)),v=w(n(43)),m=w(n(44)),x=w(n(45)),b=w(n(46));function w(e){return e&&e.__esModule?e:{default:e}}n(47);var k={};function E(e,t,n){var r=e;t.map(function(e,o){r[e]=o==t.length-1?n:r[e]||{},r=r[e]})}E(k,["control","definition"],b.default),E(k,["control","error"],x.default),E(k,["control","flex"],m.default),E(k,["control","fullscreen"],v.default),E(k,["control","i18n"],y.default),E(k,["control","loading"],g.default),E(k,["control","makeBullet"],h.default),E(k,["control","mobile"],d.default),E(k,["control","pc"],f.default),E(k,["control","play"],p.default),E(k,["control","playbackRate"],c.default),E(k,["control","poster"],u.default),E(k,["control","progress"],s.default),E(k,["control","replay"],l.default),E(k,["control","textTrack"],i.default),E(k,["control","time"],a.default),E(k,["control","volume"],o.default),t.default=r.default,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n",!0}),r.crossorigin="anonymous"),t.textTrackStyle){var s=document.createElement("style");document.head.appendChild(s);var u="";for(var c in t.textTrackStyle)u+=c+": "+t.textTrackStyle[c]+";";var p=t.id?"#"+t.id:t.el.id?"#"+t.el.id:"."+t.el.className;s.sheet.addRule(p+" video::cue",u),s.sheet.insertRule(p+" video::cue { "+u+" }",0)}this.video=a.default.createDom(r.mediaType,l,r,""),this.ev=["play","playing","pause","ended","error","seeking","seeked","timeupdate","waiting","canplay","canplaythrough","durationchange","volumechange","loadeddata"].map(function(e){return function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},e,"on"+e.charAt(0).toUpperCase()+e.slice(1))}),(0,o.default)(this),this.ev.forEach(function(e){var t=n,r=Object.keys(e)[0];t.video.addEventListener(r,function(){"play"===r&&(t.hasStart=!0),"error"===r?t.video.error&&t.emit(r,new i.default("other",t.currentTime,t.duration,t.networkState,t.readyState,t.currentSrc,t.src,t.ended,{line:41,msg:t.error,handle:"Constructor"})):t.emit(r,t)},!1)})}return r(e,[{key:"play",value:function(){this.video.play()}},{key:"pause",value:function(){this.video.pause()}},{key:"canPlayType",value:function(){this.video.canPlayType()}},{key:"getBufferedRange",value:function(){var e=[0,0],t=this.video,n=t.buffered,r=t.currentTime;if(n)for(var o=0,a=n.length;o-1}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={get device(){var e=r.os;return e.isPc?"pc":e.isTablet?"tablet":"mobile"},get browser(){var e=navigator.userAgent.toLowerCase(),t={ie:/rv:([\d.]+)\) like gecko/,firfox:/firefox\/([\d.]+)/,chrome:/chrome\/([\d.]+)/,opera:/opera.([\d.]+)/,safari:/version\/([\d.]+).*safari/};return[].concat(Object.keys(t).filter(function(n){return t[n].test(e)}))[0]},get os(){var e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),n=/(?:SymbianOS)/.test(e)||t,r=/(?:Android)/.test(e),o=/(?:Firefox)/.test(e),a=/(?:iPad|PlayBook)/.test(e)||r&&!/(?:Mobile)/.test(e)||o&&/(?:Tablet)/.test(e),i=/(?:iPhone)/.test(e)&&!a;return{isTablet:a,isPhone:i,isAndroid:r,isPc:!i&&!r&&!n,isSymbian:n,isWindowsPhone:t,isFireFox:o}}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("volume",function(){var e=this,t=r.default.util,n=e.config.volume,a={muted:"M920.4 439.808l-108.544-109.056-72.704 72.704 109.568 108.544-109.056 108.544 72.704 72.704 108.032-109.568 108.544 109.056 72.704-72.704-109.568-108.032 109.056-108.544-72.704-72.704-108.032 109.568z",small:"M795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z",large:"M940.632 837.632l-72.192-72.192c65.114-64.745 105.412-154.386 105.412-253.44s-40.299-188.695-105.396-253.424l-0.016-0.016 72.192-72.192c83.639 83.197 135.401 198.37 135.401 325.632s-51.762 242.434-135.381 325.612l-0.020 0.020zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z"},i=function(e){return 0===e?"muted":e<.5?"small":"large"},l=a[i(n)],s=a[i(n)],u=t.createDom("xg-volume",'\n \n \n \n \n \n \n \n \n \n ',{},"xgplayer-volume"),c=e.controls;c.appendChild(u);var p=void 0,f=u.querySelector(".xgplayer-slider"),d=u.querySelector(".xgplayer-bar"),h=u.querySelector(".xgplayer-drag"),g=u.querySelector(".xgplayer-icon");h.style.height=100*e.config.volume+"%";var y=c.querySelectorAll("path")[1],v=new o.default({progress:function(e,t){var n=v.toSVGString(e);y.setAttribute("d",n),l=n},from:l,to:a.large}),m=null;f.volume=e.config.volume,["touchstart","mousedown"].forEach(function(n){d.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),f.focus(),t.event(n),p=d.getBoundingClientRect().height,n.clientX;var r=n.clientY,o=h.getBoundingClientRect().height,a=!1,i=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),a=!0;var i=o-n.clientY+r,l=i/p;h.style.height=i+"px",e.volume=Math.max(Math.min(l,1),.01)},l=function n(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",i),window.removeEventListener("mouseup",n),window.removeEventListener("touchend",n),m||(m=d.getBoundingClientRect()),!a){var o=m.height-(r.clientY-m.top),l=o/m.height;h.style.height=o+"px",l<=0&&(e.volume>0?h.volume=e.video.volume:l=h.volume),e.volume=Math.max(Math.min(l,1),.01)}f.volume=e.volume,a=!1};return window.addEventListener("mousemove",i),window.addEventListener("touchmove",i),window.addEventListener("mouseup",l),window.addEventListener("touchend",l),!1})}),["touchstart","mousedown"].forEach(function(n){g.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),t.hasClass(f,"xgplayer-none")?(t.removeClass(f,"xgplayer-none"),f.focus()):0===e.volume?e.volume=f.volume:e.volume=0})}),f.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.addClass(f,"xgplayer-none")});var x=null;e.on("volumechange",function(){x&&clearTimeout(x),x=setTimeout(function(){v.reset(a[i(e.volume)],l),l=a[i[e.volume]],p||(p=d.getBoundingClientRect().height||76),h.style.height=e.volume*p+"px"},50)}),e.once("canplay",function(){e.volume=e.config.volume}),e.once("destroy",function(){u=null,h=null})})},function(e,t,n){"use strict";var r,o,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(i,l){"object"===a(t)&&void 0!==e?e.exports=l():void 0===(o="function"==typeof(r=l)?r.call(t,n,t,e):r)||(e.exports=o)}(0,function(){var e=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),t=2*Math.PI,n=function(e,t,n,r,o,a,i){var l=e.x,s=e.y;return{x:r*(l*=t)-o*(s*=n)+a,y:o*l+r*s+i}},r=function(e,t){var n=4/3*Math.tan(t/4),r=Math.cos(e),o=Math.sin(e),a=Math.cos(e+t),i=Math.sin(e+t);return[{x:r-o*n,y:o+r*n},{x:a+i*n,y:i-a*n},{x:a,y:i}]},o=function(e,t,n,r){var o=e*r-t*n<0?-1:1,a=(e*n+t*r)/(Math.sqrt(e*e+t*t)*Math.sqrt(e*e+t*t));return a>1&&(a=1),a<-1&&(a=-1),o*Math.acos(a)},a=function(a){var i=a.px,l=a.py,s=a.cx,u=a.cy,c=a.rx,p=a.ry,f=a.xAxisRotation,d=void 0===f?0:f,h=a.largeArcFlag,g=void 0===h?0:h,y=a.sweepFlag,v=void 0===y?0:y,m=[];if(0===c||0===p)return[];var x=Math.sin(d*t/360),b=Math.cos(d*t/360),w=b*(i-s)/2+x*(l-u)/2,k=-x*(i-s)/2+b*(l-u)/2;if(0===w&&0===k)return[];c=Math.abs(c),p=Math.abs(p);var E=Math.pow(w,2)/Math.pow(c,2)+Math.pow(k,2)/Math.pow(p,2);E>1&&(c*=Math.sqrt(E),p*=Math.sqrt(E));var C=function(e,n,r,a,i,l,s,u,c,p,f,d){var h=Math.pow(i,2),g=Math.pow(l,2),y=Math.pow(f,2),v=Math.pow(d,2),m=h*g-h*v-g*y;m<0&&(m=0),m/=h*v+g*y;var x=(m=Math.sqrt(m)*(s===u?-1:1))*i/l*d,b=m*-l/i*f,w=p*x-c*b+(e+r)/2,k=c*x+p*b+(n+a)/2,E=(f-x)/i,C=(d-b)/l,_=(-f-x)/i,T=(-d-b)/l,M=o(1,0,E,C),S=o(E,C,_,T);return 0===u&&S>0&&(S-=t),1===u&&S<0&&(S+=t),[w,k,M,S]}(i,l,s,u,c,p,g,v,x,b,w,k),_=e(C,4),T=_[0],M=_[1],S=_[2],R=_[3],A=Math.max(Math.ceil(Math.abs(R)/(t/4)),1);R/=A;for(var L=0;Le-1&&(a-=e),r[a]=o}t.push(r)}return t})(e.length).forEach(function(r){var o=0,a=0;r.forEach(function(n){o+=function(e,t){var n=e[0],r=e[2],o=e[4],a=e[6],i=e[1],l=e[3],s=e[5],u=e[7],c=t[0],p=t[2],f=t[4],d=t[6],h=t[1],g=t[3],y=t[5],v=t[7];return Math.sqrt(Math.pow(c-n,2)+Math.pow(h-i,2))+Math.sqrt(Math.pow(p-r,2)+Math.pow(g-l,2))+Math.sqrt(Math.pow(f-o,2)+Math.pow(y-s,2))+Math.sqrt(Math.pow(d-a,2)+Math.pow(v-u,2))}(e[n],t[a++])}),n.push({index:r,distance:o})}),n.sort(function(e,t){return e.distance-t.distance});var r=[];return n[0].index.forEach(function(t){r.push(e[t])}),r}function p(e,t){var n=[];(function(e){for(var t=[],n=0;n2&&(t.push([n].concat(r.splice(0,2))),o="l",n="m"==n?"l":"L");;){if(r.length==i[o])return r.unshift(n),t.push(r);if(r.lengtho-1&&(r-=o)},f._splitCurves=function(e,t){for(var n=0,r=0;n=e.length-1&&(r=0)}},f._upShapes=function(e,t){for(var n=function(t){var n=[];e[e.length-1].forEach(function(e){n.push(e.slice(0))}),e.push(n)},r=0;rr?f._subShapes(o,a,n-r):nr?n=p)return i(c=n,1),a(c),void cancelAnimationFrame(u);var l=s(t/p);c=f._lerp(r[0],r[1],l),i(c,l),u=requestAnimationFrame(e)}()},f})},function(e,t,n){"use strict";!function(){for(var e=0,t=["webkit","moz"],n=0;n"+(e.currentTime||n(0))+""+(e.duration||n(0))+"",{},"xgplayer-time");e.controls.appendChild(o);var a=function(){o.innerHTML=""+n(e.currentTime||0)+""+n(e.duration)};e.on("durationchange",a),e.on("timeupdate",a),e.once("destroy",function(){e.off("durationchange",a),e.off("timeupdate",a),o=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("textTrack",function(){var e=this,t=r.default.util,n=(r.default.sniffer,t.createDom("xg-textTrack","",{tabindex:7},"xgplayer-textTrack")),o=e.controls,a=e.config.textTrack;a&&a instanceof Array&&a.length>1&&(t.addClass(e.root,"xgplayer-is-textTrack"),e.on("canplay",function(){var t=["
    "];t.push("
  • 关闭
  • "),a.forEach(function(e){t.push("
  • "+e.label+"
  • ")});var r=e.config.lang&&"zh-cn"===e.config.lang?"字幕":"Caption";t.push('

'+r+"

");var i=o.querySelector(".xgplayer-textTrack");i?i.innerHTML=t.join(""):(n.innerHTML=t.join(""),o.appendChild(n))})),["touchstart","click"].forEach(function(r){n.addEventListener(r,function(r){r.preventDefault(),r.stopPropagation();var o=r.target||r.srcElement;if(o&&"li"===o.tagName.toLocaleLowerCase()){Array.prototype.forEach.call(o.parentNode.childNodes,function(e){t.removeClass(e,"textTrack")}),t.addClass(o,"textTrack");var i=e.root.getElementsByTagName("Track");"关闭"===o.innerHTML?i[0].track.mode="hidden":(i[0].track.mode="showing",a.some(function(e){if(e.label===o.innerHTML)return i[0].src=e.src,e.kind&&(i[0].kind=e.kind),i[0].label=e.label,e.srclang&&(i[0].srclang=e.srclang),!0}),e.emit("textTrackChange",o.innerHTML))}else!o||"p"!==o.tagName.toLocaleLowerCase()&&"em"!==o.tagName.toLocaleLowerCase()||(t.addClass(n,"xgplayer-textTrack-active"),n.focus())},!1)}),n.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.removeClass(n,"xgplayer-textTrack-active")}),e.once("destroy",function(){n=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("replay",function(){var e=this,t=r.default.util,n=t.createDom("xg-replay",'\n \n \n \n 重播\n ',{},"xgplayer-replay"),o=e.root,a=n.querySelector(".xgplayer-replay-svg");o.appendChild(n),e.on("ended",function(){n.querySelector(".xgplayer-replay-txt").textContent=e.lang.REPLAY,e.config.loop||t.addClass(o,"replay")}),a.addEventListener("click",function(n){n.preventDefault(),t.removeClass(o,"replay"),e.replay()}),e.once("destroy",function(){a=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("progress",function(){var e=this,t=r.default.util,n=t.createDom("xg-progress",'',{tabindex:1},"xgplayer-progress"),o=void 0;e.controls.appendChild(n);var a=n.querySelector(".xgplayer-progress-played"),i=n.querySelector(".xgplayer-progress-cache"),l=n.querySelector(".xgplayer-progress-point"),s=n.querySelector(".xgplayer-progress-thumbnail"),u=0,c=0,p=0,f=0,d=0,h=0,g=[];e.config.thumbnail&&(u=e.config.thumbnail.pic_num,c=e.config.thumbnail.width,p=e.config.thumbnail.height,f=e.config.thumbnail.col,d=e.config.thumbnail.row,g=e.config.thumbnail.urls,s.style.width=c+"px",s.style.height=p+"px"),["touchstart","mousedown"].forEach(function(r){n.addEventListener(r,function(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),r._target===l||e.ended)return!1;n.focus(),o=n.getBoundingClientRect().width;var i=a.getBoundingClientRect().left,s=!1,u=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),s=!0;var r=n.clientX-i,l=r/o*e.duration;a.style.width=100*r/o+"%",e.currentTime=Number(l).toFixed(1)},c=function r(l){if(l.preventDefault(),l.stopPropagation(),t.event(l),window.removeEventListener("mousemove",u),window.removeEventListener("touchmove",u),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),n.blur(),!s){var c=l.clientX-i,p=c/o*e.duration;a.style.width=100*c/o+"%",e.currentTime=Number(p).toFixed(1)}s=!1};return window.addEventListener("mousemove",u),window.addEventListener("touchmove",u),window.addEventListener("mouseup",c),window.addEventListener("touchend",c),!1})}),n.addEventListener("mouseenter",function(r){if(e.ended)return!1;var o=n.getBoundingClientRect().left,a=n.getBoundingClientRect().width,i=function(n){var r=(n.clientX-o)/a*e.duration;l.textContent=t.format(r);var i=l.getBoundingClientRect().width;if(e.config.thumbnail){h=e.duration/u;var y=Math.floor(r/h);s.style.backgroundImage="url("+g[Math.ceil((y+1)/(f*d))-1]+")";var v=y+1-f*d*(Math.ceil((y+1)/(f*d))-1),m=Math.ceil(v/d)-1,x=v-m*d-1;s.style["background-position"]="-"+x*c+"px -"+m*p+"px";var b=n.clientX-o-c/2;b=(b=b>0?b:0)0?w:0)>a-i?a-i:w,l.style.left=w+"px"}l.style.display="block"},y=function(e){i(e)};n.addEventListener("mousemove",y,!1),n.addEventListener("mouseleave",function e(t){n.removeEventListener("mousemove",y,!1),n.removeEventListener("mouseleave",e,!1),i(t),l.style.display="none",s.style.display="none"},!1),i(r)},!1),e.on("timeupdate",function(){!o&&n&&(o=n.getBoundingClientRect().width),a.style.width=100*e.currentTime/e.duration+"%"}),["cacheupdate","ended","timeupdate"].forEach(function(t){e.on(t,function(){var t=e.buffered;if(t&&t.length>0){var n=t.end(t.length-1);i.style.width=n/e.duration*100+"%"}})}),e.once("destroy",function(){n=null,a=null,l=null,s=null,i=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("poster",function(){var e=r.default.util.createDom("xg-poster","",{},"xgplayer-poster"),t=this.root;this.config.poster&&(e.style.backgroundImage="url("+this.config.poster+")",t.appendChild(e)),this.on("play",function(){e.style.display="none"}),this.once("destroy",function(){e=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("playbackRate",function(){var e=this,t=r.default.util,n=0,o=[];if(!e.config.playbackRate)return!1;e.config.playbackRate.sort(function(e,t){return e-t}),e.config.playbackRate.forEach(function(e,t){1!==e&&"1"!==e||(n=t),o.push(e+"x")});var a=e.config.lang&&"zh-cn"===e.config.lang?"倍速":"Speed",i=t.createDom("xg-playback",'

1x

',{},"xgplayer-playback"),l=e.controls,s=t.createDom("xg-tips",a,{},"xgplayer-tips");i.appendChild(s),l.appendChild(i),["touchstart","click"].forEach(function(t){i.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation();var r=t.target||t.srcElement;(r&&"p"===r.tagName.toLocaleLowerCase()||"span"===r.tagName.toLocaleLowerCase())&&(n=n+1===o.length?0:n+1,i.querySelector("p").innerHTML=""+o[n]+"",e.video.playbackRate=1*o[n].replace(/x$/g,""))},!1)}),i.addEventListener("mouseenter",function(t){t.preventDefault(),t.stopPropagation(),s.style.left="50%";var n=s.getBoundingClientRect(),r=e.root.getBoundingClientRect();n.right>r.right&&(s.style.left=-n.right+r.right+16+"px")}),e.once("destroy",function(){i=null})})},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("play",function(){var e=this,t=e.controls,n=r.default.util,a=e.config.iconScale||.0320625,i="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",l="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",s=n.createDom("xg-play",'\n \n '),u=e.config.lang&&"zh-cn"===e.config.lang?"播放":"Play",c=e.config.lang&&"zh-cn"===e.config.lang?"暂停":"Pause",p=n.createDom("xg-tips",u,{},"xgplayer-tips"),f=s.querySelector("path");s.appendChild(p);var d=new o.default({progress:function(e,t){f.setAttribute("d",d.toSVGString(e))},from:l,to:i});s.className="xgplayer-play",t.appendChild(s),["click","touchstart"].forEach(function(t){s.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.ended||(e.paused?e.play():e.pause())},!1)}),e.on("play",function(){p.textContent=c,d.to!==l&&d.reset(l,i)}),e.on("pause",function(){p.textContent=u,d.to!==i&&d.reset(i,l)}),e.once("destroy",function(){s=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("pc",function(){var e=this,t=r.default.util,n=e.controls,o=e.root,a=0,i=void 0,l="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",s="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",u=t.createDom("xg-start",'\n \n \n ',{},"xgplayer-start"),c=t.createDom("xg-enter",'',{},"xgplayer-enter"),p=c.querySelector(".xgplayer-enter-logo");o.appendChild(u),o.appendChild(c);var f=u.querySelector("path"),d=new Image;d.onload=function(){c.querySelector(".xgplayer-enter-tips").style.display="block"},e.config.enterLogo?(d.src=e.config.enterLogo,p.style.backgroundImage='url("'+e.config.enterLogo+'")'):d.src=t.getBgImage(p),["click","touchstart"].forEach(function(n){u.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.config.url&&(t.hasClass(o,"xgplayer-nostart")?(t.removeClass(o,"xgplayer-nostart"),t.addClass(o,"xgplayer-is-enter"),o.querySelector("video")||e.start(),e.on("canplay",function(){t.removeClass(o,"xgplayer-is-enter")}),e.once("playing",function(){t.removeClass(o,"xgplayer-is-enter")}),e.play(),setTimeout(function(){e.play()},10)):e.paused&&(t.removeClass(o,"xgplayer-nostart xgplayer-isloading"),setTimeout(function(){e.play()},10)))})}),u.addEventListener("animationend",function(e){e.preventDefault(),t.removeClass(u,"xgplayer-start-interact"),u.style.display="none"}),e.on("play",function(){f.setAttribute("d",l),u.style.display="inline-block",t.addClass(u,"xgplayer-start-interact")}),e.on("pause",function(){f.setAttribute("d",s),u.style.display="inline-block",t.addClass(u,"xgplayer-start-interact")}),e.video.addEventListener("click",function(n){n.preventDefault(),n.stopPropagation(),document.activeElement===e.video?(a++,i&&clearTimeout(i),1===a?i=setTimeout(function(){if(t.hasClass(e.root,"xgplayer-nostart"))return!1;e.ended||(e.paused?e.play():e.pause()),a=0},200):a=0):e.video.focus()},!1),e.video.addEventListener("dblclick",function(t){if(t.preventDefault(),t.stopPropagation(),document.activeElement===e.video){var r=n.querySelector(".xgplayer-fullscreen");if(r){var o=void 0;document.createEvent?(o=document.createEvent("Event")).initEvent("click",!0,!0):o=new Event("click"),r.dispatchEvent(o)}}else e.video.focus()},!1),o.addEventListener("mouseenter",function(t){e.emit("focus",e)},!1),o.addEventListener("mouseleave",function(t){e.emit("blur",e)},!1),n.addEventListener("mouseenter",function(t){e.userTimer&&clearTimeout(e.userTimer)},!1),n.addEventListener("mouseleave",function(t){e.emit("focus",e)},!1)})},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("mobile",function(){var e=this,t=r.default.util,n=e.root;e.config.autoplay=!1;var a=function(e){var t=r.default.util;return e.some(function(e){return"Function"===t.typeOf(e)?e.call(navigator.userAgent):"RegExp"===t.typeOf(e)?e.test(navigator.userAgent):"String"===t.typeOf(e)&&navigator.userAgent.indexOf(e)>-1})}(e.config.whitelist);e.mobilePass=a;var i="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",l="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",s=t.createDom("xg-start",'\n \n \n ',{},"xgplayer-start"),u=t.createDom("xg-enter",'',{},"xgplayer-enter"),c=u.querySelector(".xgplayer-enter-logo");n.appendChild(s),n.appendChild(u);var p=s.querySelector("path"),f=new Image,d=new o.default({from:l,to:i,progress:function(e,t){p.setAttribute("d",d.toSVGString(e))}});u.querySelector(".xgplayer-enter-tips").style.display="block",e.start(),a?(e.config.enterLogo?(f.src=e.config.enterLogo,c.style.backgroundImage='url("'+e.config.enterLogo+'")'):f.src=t.getBgImage(c),e.video.addEventListener("touchstart",function(t){t.preventDefault(),e.emit("focus")},!1),s.addEventListener("touchend",function(r){r.preventDefault(),t.hasClass(n,"xgplayer-nostart")?(t.removeClass(n,"xgplayer-nostart"),t.addClass(n,"xgplayer-is-enter"),e.on("canplay",function(){t.removeClass(n,"xgplayer-is-enter")}),e.once("playing",function(){t.removeClass(n,"xgplayer-is-enter")}),e.play()):e.paused?e.play():e.pause()}),e.on("play",function(){d.reset(l,i)}),e.on("pause",function(){d.reset(i,l)})):(t.addClass(n,"xgplayer-mobile-npassed"),e.once("ready",function(){e.video.controls=e.config.controls,e.video.controlsList=e.config.controlsList.join(" "),e.config.poster&&(e.video.poster=e.config.poster)})),e.config.debug&&function(e){var t={};Object.assign(t,{host:"127.0.0.1",port:9090},e);var n=document.createElement("script"),r=document.createElement("h4");r.style.cssText="position:fixed;bottom:0;padding:10px;width:100%;background-color:#fff;text-align:center",r.textContent="weinre --boundHost "+t.host+" --httpPort "+t.port+"\r\n 启动服务后,刷新页面",n.anonymous=!0,n.async=!0,n.src="http://"+t.host+":"+t.port+"/target/target-script-min.js#anonymous",n.onload=function(){r.parentNode.removeChild(r)},document.body.appendChild(n),document.body.appendChild(r)}(e.config.debug)})},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;ni.length){for(var c=function(e){i[e]={id:e,queue:[],step:t.channels[e].step,surplus:t.channels[e].surplus},t.channels[e].queue.forEach(function(t){return i[e].queue.push(t)})},p=0;pn.length)return{result:!1,message:"exceed channels.length, occupy="+o+",channelsSize="+n.length};for(var a=!0,i=void 0,l=-1,s=0,u=n.length;s-1&&(r.queue.splice(i,1),0===i&&(r.step=9999,r.surplus=0))}}},{key:"update",value:function(){var e=this.channels,t=this.width;e.forEach(function(e){var n=e.queue[0];n?e.surplus=t-n.left-n.width:(e.step=9999,e.surplus=0)})}},{key:"reset",value:function(){var e=this.player.root,t=this;setTimeout(function(){var n=e.querySelector(".xgplayer-bullet"),r=n.getBoundingClientRect();t.width=r.width,t.height=r.height,t.container=n;for(var o=/mobile/gi.test(navigator.userAgent)?10:12,a=Math.floor(t.height/o),i=[],l=0;l0?e.map(function(e){return{id:e.danmaku_id,txt:e.text.slice(0,40),duration:1*e.duration,color:e.text_color.replace("0x","#"),scale:1*e.text_scale,start:1*e.offset_time}}):[]}},n),t.on("dataIncoming",this.dataHandle.bind(this)),t.on("seeked",this.seekHandle.bind(this)),t.on("bullet_remove",this.updateQueue.bind(this)),t.on("ended",this.stop.bind(this)),t.on("pause",this.pause.bind(this)),t.on("play",this.play.bind(this))}return r(e,[{key:"updateQueue",value:function(e){var t=this;t.queue.some(function(n,r){if(n.id===e.bullet.id)return t.queue.splice(r,1),!0})}},{key:"init",value:function(){var e=this;if(e.data)return e.player.paused?void(e.status="paused"):e.player.ended?void(e.status="ended"):(e.readData(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3),void e.player.emit("dataIncoming"));fetch(e.options.url,{method:e.options.method,headers:{Accept:"application/json"}}).then(function(t){t.ok&&t.json().then(function(t){var n=e.options.dataMap.call(null,t.data);if(n.length){e.data=n;var r=document.createElement("span");r.style.padding=e.options.padding+"||'0px'",r.style.position="absolute",r.style.left="-99999px",document.body.appendChild(r);var o=void 0;if(e.data.forEach(function(e){r.textContent=e.txt,r.style.fontSize=20*e.scale+"px",o=r.getBoundingClientRect(),e.width=o.width,e.height=o.height}),e.data.sort(function(e,t){return e.start-t.start}),document.body.removeChild(r),e.player.paused)return void(e.status="paused");if(e.player.ended)return void(e.status="ended");e.readData(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3),e.player.emit("dataIncoming")}})}).catch(function(e){console.log("Fetch错误:"+e)})}},{key:"start",value:function(){this.status="playing",this.channel.reset(),this.init()}},{key:"stop",value:function(){this.status="closed",clearTimeout(this.retryTimer),(0,a.default)("cancel")(this.timer),this.queue.length=0,this.container.innerHTML=""}},{key:"play",value:function(){var e=this,t=o.default.util;"idle"===e.status||"ended"===e.status?t.hasClass(e.container,"xgplayer-has-bullet")&&e.start():"paused"===e.status&&t.hasClass(e.container,"xgplayer-has-bullet")&&(e.status="playing",e.dataHandle(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3))}},{key:"pause",value:function(){"playing"===this.status?(this.status="paused",clearTimeout(this.retryTimer),(0,a.default)("cancel")(this.timer)):"ended"===this.status&&this.stop()}},{key:"dataHandle",value:function(){var e=(0,a.default)("cancel");if(e(this.timer),this.queue.length){this.queue.forEach(function(e){"waiting"!==e.status&&"start"!==e.status||(e.status="start",e.move())});var t=(0,a.default)("request");this.timer=t(this.dataHandle.bind(this))}else e(this.timer)}},{key:"readData",value:function(){var e=this,t=this.player,n=this.formatTime(t.currentTime),r=void 0,o=e.interval,a=e.channel,i=e.container,l=e.data.filter(function(e){return e.start<=n&&n<=e.start+o});l.length>0&&l.forEach(function(n){r=new c(t,i,n),a.addBullet(r).result&&(e.queue.push(r),r.reset(),r.attach())})}},{key:"seekHandle",value:function(){o.default.util;this.stop(),this.player.paused?this.status="idle":(this.status="playing",this.channel.resetWithCb(),this.init())}},{key:"formatTime",value:function(e){var t=Math.floor(e);return 1e3*t+(e-t)}}]),e}(),f=function(){function e(t,n){s(this,e);var r=this;this.player=t,this.el_=this.createEl(),this.onceFlag=!1;["click","touchstart"].forEach(function(e){r.el_.addEventListener(e,function(e){e.preventDefault(),e.stopPropagation(),r.onClick()},!1)}),this.main=new p(t,n),"on"===n.switch&&this.player.once("play",function(){r.onChange(!0)})}return r(e,[{key:"createEl",value:function(){return o.default.util.createDom("xg-bullet-btn",'',{},"xgplayer-bullet-btn "+("on"===this.player.config.bullet.switch?"xgplayer-bullet-btn-active":""))}},{key:"onClick",value:function(){var e=this,t=o.default.util;t.toggleClass(e.el_,"xgplayer-bullet-btn-active");var n=!!t.hasClass(e.el_,"xgplayer-bullet-btn-active");function r(){e.onceFlag=!1,e.main.channel.resetWithCb(e.onChange.bind(e))}n?e.player.paused||e.player.ended?this.onceFlag||(this.onceFlag=!0,this.player.once("play",r)):r():(this.player.off("play",r),this.onChange(n))}},{key:"onChange",value:function(e){var t=o.default.util,n=this.player.root.querySelector(".xgplayer-bullet");e?(t.addClass(n,"xgplayer-has-bullet"),this.main.start()):(t.removeClass(n,"xgplayer-has-bullet"),this.main.stop())}}]),e}();o.default.install("makeBullet",function(){var e=this,t=o.default.util;if(e.config.bullet){var n=t.createDom("xg-bullet","",{},"xgplayer-bullet");e.root.appendChild(n);var r=new f(e,e.config.bullet);["touchstart","click"].forEach(function(t){n.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.paused?e.play():e.pause()},!1)}),e.controls.appendChild(r.el_)}})},function(e,t,n){"use strict";var r,o,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}; +window.Player=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:this.config.url,n=this.root,r=this;"String"===a.default.typeOf(t)?this.video.src=t:t.forEach(function(t){e.video.appendChild(a.default.createDom("source","",{src:""+t.src,type:""+(t.type||"")}))}),n.insertBefore(this.video,n.firstChild),r.userTimer=setTimeout(function(){r.emit("blur")},r.config.inactive),setTimeout(function(){e.emit("complete")},1)}},{key:"reload",value:function(){this.video.load(),this.once("loadeddata",function(){this.play()})}},{key:"destroy",value:function(){var e=this,t=this.root.parentNode;this.paused?(this.emit("destroy"),t.removeChild(this.root),t.appendChild(this.rootBackup)):(this.pause(),this.once("pause",function(){e.emit("destroy"),t.removeChild(e.root),t.appendChild(e.rootBackup)})),setTimeout(function(){for(var e in this)"config"!==e&&delete this[e]},200)}},{key:"replay",value:function(){var e=this._replay;a.default.removeClass(this.root,"xgplayer-ended"),e&&e instanceof Function?e():(this.currentTime=0,this.play())}},{key:"onFocus",value:function(){var e=this;a.default.removeClass(this.root,"xgplayer-inactive"),e.userTimer&&clearTimeout(e.userTimer),e.userTimer=setTimeout(function(){e.emit("blur")},e.config.inactive)}},{key:"onBlur",value:function(){this.paused||this.ended||a.default.addClass(this.root,"xgplayer-inactive")}},{key:"onPlay",value:function(){a.default.addClass(this.root,"xgplayer-playing"),a.default.removeClass(this.root,"xgplayer-pause")}},{key:"onPause",value:function(){a.default.addClass(this.root,"xgplayer-pause"),this.userTimer&&clearTimeout(this.userTimer),this.emit("focus")}},{key:"onEnded",value:function(){a.default.addClass(this.root,"xgplayer-ended"),a.default.removeClass(this.root,"xgplayer-playing")}},{key:"onSeeking",value:function(){}},{key:"onSeeked",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),a.default.removeClass(this.root,"xgplayer-isloading")}},{key:"onWaiting",value:function(){var e=this;e.waitTimer&&clearTimeout(e.waitTimer),e.waitTimer=setTimeout(function(){a.default.addClass(e.root,"xgplayer-isloading")},500)}},{key:"onPlaying",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),a.default.removeClass(this.root,"xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay"),a.default.addClass(this.root,"xgplayer-playing")}}],[{key:"install",value:function(e,n){t.plugins||(t.plugins={}),t.plugins[e]=n}}]),t}();p.util=a.default,p.sniffer=i.default,p.Errors=l.default,t.default=p,e.exports=t.default},function(e,t,n){"use strict";var r=n(17)();e.exports=function(e){return e!==r&&null!==e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.from=t.from,this.to=t.to,this.easing=t.easing||function(e){return e*e},this.duration=t.duration||150,this.curPath="",this.progress=t.progress,this.state=0}return r(e,[{key:"animate",value:function(){var e=this,t=new Date,n=e.duration,r=null,o=e.path2shapes(e.from),a=e.path2shapes(e.to),i=e._preprocessing(o,a);e.state=1;!function o(){var l=new Date-t;if(l>=n||2===e.state)return r=a,e.progress(r,1),window.cancelAnimationFrame(e.tickId),void(e.state=0);var s=e.easing(l/n);r=e._lerp(i[0],i[1],s),e.progress(r,s),e.tickId=window.requestAnimationFrame(o)}()}},{key:"toSVGString",value:function(e){return e.map(function(e){return e.forEach(function(e,t){t?e.splice(0,2,"C"):(e.splice(2,0,"C"),e.unshift("M"))}),e.map(function(e){return e.join(" ")}).join("")}).join("")}},{key:"start",value:function(){self.animate()}},{key:"stop",value:function(){0!==this.state&&(this.state=2),window.cancelAnimationFrame(self.tickId),this.state=0}},{key:"reverse",value:function(){0!==this.state&&this.stop();var e=this.from;this.from=this.to,this.to=e,this.animate()}},{key:"reset",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.from;0!==this.state&&this.stop(),this.from=t,this.to=e,this.animate()}}]),e}();for(var i in o.default)o.default[i]instanceof Function&&!a.prototype[i]&&(a.prototype[i]=o.default[i]);t.default=a,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={createDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=document.createElement(e);return o.className=r,o.innerHTML=t,Object.keys(n).forEach(function(t){var r=t,a=n[t];"video"===e||"audio"===e?a&&o.setAttribute(r,a):o.setAttribute(r,a)}),o},hasClass:function(e,t){return e.classList?Array.prototype.some.call(e.classList,function(e){return e===t}):!!e.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))},addClass:function(e,t){e.classList?t.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach(function(t){t&&e.classList.add(t)}):r.hasClass(e,t)||(e.className+=" "+t)},removeClass:function(e,t){e.classList?t.split(/\s+/g).forEach(function(t){e.classList.remove(t)}):r.hasClass(e,t)&&t.split(/\s+/g).forEach(function(t){var n=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className=e.className.replace(n," ")})},toggleClass:function(e,t){t.split(/\s+/g).forEach(function(t){r.hasClass(e,t)?r.removeClass(e,t):r.addClass(e,t)})},findDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=arguments[1];return e.querySelector(t)},padStart:function(e,t,n){for(var r=String(n),o=t>>0,a=Math.ceil(o/r.length),i=[],l=String(e);a--;)i.push(r);return i.join("").substring(0,o-l.length)+l},format:function(e){if(window.isNaN(e))return"";var t=r.padStart(Math.floor(e/3600),2,0),n=r.padStart(Math.floor((e-3600*t)/60),2,0),o=r.padStart(Math.floor(e-3600*t-60*n),2,0);return("00"===t?[n,o]:[t,n,o]).join(":")},event:function(e){if(e.touches){var t=e.touches[0]||e.changedTouches[0];e.clientX=t.clientX||0,e.clientY=t.clientY||0,e.offsetX=t.pageX-t.target.offsetLeft,e.offsetY=t.pageY-t.target.offsetTop}e._target=e.target||e.srcElement},typeOf:function(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]},deepCopy:function(e,t){if("Object"===r.typeOf(t)&&"Object"===r.typeOf(e))return Object.keys(t).forEach(function(n){"Object"!==r.typeOf(t[n])||t[n]instanceof Node?e[n]=t[n]:e[n]?r.deepCopy(e[n],t[n]):e[n]=t[n]}),e},getBgImage:function(e){var t=document.createElement("a"),n=(e.currentStyle||window.getComputedStyle(e,null)).backgroundImage;return t.href=n.replace(/url\("|"\)/g,""),t.href},copyDom:function(e){if(e&&1===e.nodeType){var t=document.createElement(e.tagName);return Array.prototype.forEach.call(e.attributes,function(e){t.setAttribute(e.name,e.value)}),t}return""}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);var o={network:{code:1,msg:"视频下载错误",remark:"只要视频下载错误就使用此类型,无论是video本身的超时还是xhr的分段请求超时或者资源不存在"},mse:{code:2,msg:"流追加错误",remark:"追加流的时候如果类型不对、无法被正确解码则会触发此类错误"},parse:{code:3,msg:"解析错误",remark:"mp4、hls、flv我们都是使用js进行格式解析,如果解析失败则会触发此类错误"},format:{code:4,msg:"格式错误",remark:"如果浏览器不支持的格式导致播放错误"},decoder:{code:5,msg:"解码错误",remark:"浏览器解码异常会抛出此类型错误"},runtime:{code:6,msg:"语法错误",remark:"播放器语法错误"},timeout:{code:7,msg:"播放超时",remark:"播放过程中无法正常请求下一个分段导致播放中断"},other:{code:8,msg:"其他错误",remark:"不可知的错误或被忽略的错误类型"}};t.default=function e(t,n,a,i,l,s,u,c){var p=arguments.length>8&&void 0!==arguments[8]?arguments[8]:{line:"",handle:"",msg:"",version:""};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var f={};return f.playerVersion=r.version,f.errorType=t,f.domain=document.domain,f.duration=a,f.currentTime=n,f.networkState=i,f.readyState=l,f.currentSrc=u,f.src=s,f.ended=c,f.errd=p,f.ex=(o[t]||{}).msg,f},e.exports=t.default},function(e){e.exports={name:"xgplayer",version:"1.0.7",description:"video player",main:"./dist/index.js",scripts:{prepare:"npm run build",build:"webpack --progress --display-chunks -p",watch:"webpack --progress --display-chunks -p --watch"},keywords:["video","player"],babel:{presets:["es2015"],plugins:["add-module-exports","babel-plugin-bulk-import"]},repository:{type:"git",url:"git+https://github.com/bytedance/xgplayer.git"},author:"yinguohui@bytedance.com",license:"MIT",dependencies:{"babel-plugin-add-module-exports":"^0.2.1",deepmerge:"^1.5.0","event-emitter":"^0.3.5",pasition:"^1.0.1","request-frame":"^1.5.3"},browserslist:["> 5%","IE 9","iOS 7","Firefox > 20"],devDependencies:{"babel-loader":"^7.1.4","babel-plugin-bulk-import":"^1.0.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","core-js":"^2.5.4","css-loader":"^0.28.11","json-loader":"^0.5.7","node-sass":"^4.8.3","postcss-cssnext":"^3.1.0","postcss-loader":"^2.1.5","sass-loader":"^6.0.7","style-loader":"^0.20.3",sugarss:"^1.0.1",webpack:"^4.8.1","webpack-cli":"^2.1.3",zlib:"^1.0.5"}}},function(e,t,n){e.exports=n(7)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=w(n(0)),o=w(n(26)),a=w(n(29)),i=w(n(30)),l=w(n(31)),s=w(n(32)),u=w(n(33)),c=w(n(34)),p=w(n(35)),f=w(n(36)),d=w(n(37)),h=w(n(38)),g=w(n(41)),y=w(n(42)),v=w(n(43)),m=w(n(44)),x=w(n(45)),b=w(n(46));function w(e){return e&&e.__esModule?e:{default:e}}n(47);var k={};function E(e,t,n){var r=e;t.map(function(e,o){r[e]=o==t.length-1?n:r[e]||{},r=r[e]})}E(k,["control","definition"],b.default),E(k,["control","error"],x.default),E(k,["control","flex"],m.default),E(k,["control","fullscreen"],v.default),E(k,["control","i18n"],y.default),E(k,["control","loading"],g.default),E(k,["control","makeBullet"],h.default),E(k,["control","mobile"],d.default),E(k,["control","pc"],f.default),E(k,["control","play"],p.default),E(k,["control","playbackRate"],c.default),E(k,["control","poster"],u.default),E(k,["control","progress"],s.default),E(k,["control","replay"],l.default),E(k,["control","textTrack"],i.default),E(k,["control","time"],a.default),E(k,["control","volume"],o.default),t.default=r.default,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n-1||navigator.userAgent.indexOf("Firefox")>-1)&&(t.textTrack.some(function(e){if(e.src&&e.label&&e.default)return l+='",!0}),r.crossorigin="anonymous"),t.textTrackStyle){var s=document.createElement("style");document.head.appendChild(s);var u="";for(var c in t.textTrackStyle)u+=c+": "+t.textTrackStyle[c]+";";var p=t.id?"#"+t.id:t.el.id?"#"+t.el.id:"."+t.el.className;s.sheet.insertRule?s.sheet.insertRule(p+" video::cue { "+u+" }",0):s.sheet.addRule&&s.sheet.addRule(p+" video::cue",u)}this.video=a.default.createDom(r.mediaType,l,r,""),this.ev=["play","playing","pause","ended","error","seeking","seeked","timeupdate","waiting","canplay","canplaythrough","durationchange","volumechange","loadeddata"].map(function(e){return function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},e,"on"+e.charAt(0).toUpperCase()+e.slice(1))}),(0,o.default)(this),this.ev.forEach(function(e){var t=n,r=Object.keys(e)[0];t.video.addEventListener(r,function(){"play"===r&&(t.hasStart=!0),"error"===r?t.video.error&&t.emit(r,new i.default("other",t.currentTime,t.duration,t.networkState,t.readyState,t.currentSrc,t.src,t.ended,{line:41,msg:t.error,handle:"Constructor"})):t.emit(r,t)},!1)})}return r(e,[{key:"play",value:function(){this.video.play()}},{key:"pause",value:function(){this.video.pause()}},{key:"canPlayType",value:function(){this.video.canPlayType()}},{key:"getBufferedRange",value:function(){var e=[0,0],t=this.video,n=t.buffered,r=t.currentTime;if(n)for(var o=0,a=n.length;o-1}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={get device(){var e=r.os;return e.isPc?"pc":e.isTablet?"tablet":"mobile"},get browser(){var e=navigator.userAgent.toLowerCase(),t={ie:/rv:([\d.]+)\) like gecko/,firfox:/firefox\/([\d.]+)/,chrome:/chrome\/([\d.]+)/,opera:/opera.([\d.]+)/,safari:/version\/([\d.]+).*safari/};return[].concat(Object.keys(t).filter(function(n){return t[n].test(e)}))[0]},get os(){var e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),n=/(?:SymbianOS)/.test(e)||t,r=/(?:Android)/.test(e),o=/(?:Firefox)/.test(e),a=/(?:iPad|PlayBook)/.test(e)||r&&!/(?:Mobile)/.test(e)||o&&/(?:Tablet)/.test(e),i=/(?:iPhone)/.test(e)&&!a;return{isTablet:a,isPhone:i,isAndroid:r,isPc:!i&&!r&&!n,isSymbian:n,isWindowsPhone:t,isFireFox:o}}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("volume",function(){var e=this,t=r.default.util,n=e.config.volume,a={muted:"M920.4 439.808l-108.544-109.056-72.704 72.704 109.568 108.544-109.056 108.544 72.704 72.704 108.032-109.568 108.544 109.056 72.704-72.704-109.568-108.032 109.056-108.544-72.704-72.704-108.032 109.568z",small:"M795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z",large:"M940.632 837.632l-72.192-72.192c65.114-64.745 105.412-154.386 105.412-253.44s-40.299-188.695-105.396-253.424l-0.016-0.016 72.192-72.192c83.639 83.197 135.401 198.37 135.401 325.632s-51.762 242.434-135.381 325.612l-0.020 0.020zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z"},i=function(e){return 0===e?"muted":e<.5?"small":"large"},l=a[i(n)],s=a[i(n)],u=t.createDom("xg-volume",'\n \n \n \n \n \n \n \n \n \n ',{},"xgplayer-volume"),c=e.controls;c.appendChild(u);var p=void 0,f=u.querySelector(".xgplayer-slider"),d=u.querySelector(".xgplayer-bar"),h=u.querySelector(".xgplayer-drag"),g=u.querySelector(".xgplayer-icon");h.style.height=100*e.config.volume+"%";var y=c.querySelectorAll("path")[1],v=new o.default({progress:function(e,t){var n=v.toSVGString(e);y.setAttribute("d",n),l=n},from:l,to:a.large}),m=null;f.volume=e.config.volume,["touchstart","mousedown"].forEach(function(n){d.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),f.focus(),t.event(n),p=d.getBoundingClientRect().height,n.clientX;var r=n.clientY,o=h.getBoundingClientRect().height,a=!1,i=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),a=!0;var i=o-n.clientY+r,l=i/p;h.style.height=i+"px",e.volume=Math.max(Math.min(l,1),.01)},l=function n(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",i),window.removeEventListener("mouseup",n),window.removeEventListener("touchend",n),m||(m=d.getBoundingClientRect()),!a){var o=m.height-(r.clientY-m.top),l=o/m.height;h.style.height=o+"px",l<=0&&(e.volume>0?h.volume=e.video.volume:l=h.volume),e.volume=Math.max(Math.min(l,1),.01)}f.volume=e.volume,a=!1};return window.addEventListener("mousemove",i),window.addEventListener("touchmove",i),window.addEventListener("mouseup",l),window.addEventListener("touchend",l),!1})}),["touchstart","mousedown"].forEach(function(n){g.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),t.hasClass(f,"xgplayer-none")?(t.removeClass(f,"xgplayer-none"),f.focus()):0===e.volume?e.volume=f.volume:e.volume=0})}),f.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.addClass(f,"xgplayer-none")});var x=null;e.on("volumechange",function(){x&&clearTimeout(x),x=setTimeout(function(){v.reset(a[i(e.volume)],l),l=a[i[e.volume]],p||(p=d.getBoundingClientRect().height||76),h.style.height=e.volume*p+"px"},50)}),e.once("canplay",function(){e.volume=e.config.volume}),e.once("destroy",function(){u=null,h=null})})},function(e,t,n){"use strict";var r,o,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(i,l){"object"===a(t)&&void 0!==e?e.exports=l():void 0===(o="function"==typeof(r=l)?r.call(t,n,t,e):r)||(e.exports=o)}(0,function(){var e=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),t=2*Math.PI,n=function(e,t,n,r,o,a,i){var l=e.x,s=e.y;return{x:r*(l*=t)-o*(s*=n)+a,y:o*l+r*s+i}},r=function(e,t){var n=4/3*Math.tan(t/4),r=Math.cos(e),o=Math.sin(e),a=Math.cos(e+t),i=Math.sin(e+t);return[{x:r-o*n,y:o+r*n},{x:a+i*n,y:i-a*n},{x:a,y:i}]},o=function(e,t,n,r){var o=e*r-t*n<0?-1:1,a=(e*n+t*r)/(Math.sqrt(e*e+t*t)*Math.sqrt(e*e+t*t));return a>1&&(a=1),a<-1&&(a=-1),o*Math.acos(a)},a=function(a){var i=a.px,l=a.py,s=a.cx,u=a.cy,c=a.rx,p=a.ry,f=a.xAxisRotation,d=void 0===f?0:f,h=a.largeArcFlag,g=void 0===h?0:h,y=a.sweepFlag,v=void 0===y?0:y,m=[];if(0===c||0===p)return[];var x=Math.sin(d*t/360),b=Math.cos(d*t/360),w=b*(i-s)/2+x*(l-u)/2,k=-x*(i-s)/2+b*(l-u)/2;if(0===w&&0===k)return[];c=Math.abs(c),p=Math.abs(p);var E=Math.pow(w,2)/Math.pow(c,2)+Math.pow(k,2)/Math.pow(p,2);E>1&&(c*=Math.sqrt(E),p*=Math.sqrt(E));var C=function(e,n,r,a,i,l,s,u,c,p,f,d){var h=Math.pow(i,2),g=Math.pow(l,2),y=Math.pow(f,2),v=Math.pow(d,2),m=h*g-h*v-g*y;m<0&&(m=0),m/=h*v+g*y;var x=(m=Math.sqrt(m)*(s===u?-1:1))*i/l*d,b=m*-l/i*f,w=p*x-c*b+(e+r)/2,k=c*x+p*b+(n+a)/2,E=(f-x)/i,C=(d-b)/l,_=(-f-x)/i,T=(-d-b)/l,M=o(1,0,E,C),S=o(E,C,_,T);return 0===u&&S>0&&(S-=t),1===u&&S<0&&(S+=t),[w,k,M,S]}(i,l,s,u,c,p,g,v,x,b,w,k),_=e(C,4),T=_[0],M=_[1],S=_[2],A=_[3],R=Math.max(Math.ceil(Math.abs(A)/(t/4)),1);A/=R;for(var L=0;Le-1&&(a-=e),r[a]=o}t.push(r)}return t})(e.length).forEach(function(r){var o=0,a=0;r.forEach(function(n){o+=function(e,t){var n=e[0],r=e[2],o=e[4],a=e[6],i=e[1],l=e[3],s=e[5],u=e[7],c=t[0],p=t[2],f=t[4],d=t[6],h=t[1],g=t[3],y=t[5],v=t[7];return Math.sqrt(Math.pow(c-n,2)+Math.pow(h-i,2))+Math.sqrt(Math.pow(p-r,2)+Math.pow(g-l,2))+Math.sqrt(Math.pow(f-o,2)+Math.pow(y-s,2))+Math.sqrt(Math.pow(d-a,2)+Math.pow(v-u,2))}(e[n],t[a++])}),n.push({index:r,distance:o})}),n.sort(function(e,t){return e.distance-t.distance});var r=[];return n[0].index.forEach(function(t){r.push(e[t])}),r}function p(e,t){var n=[];(function(e){for(var t=[],n=0;n2&&(t.push([n].concat(r.splice(0,2))),o="l",n="m"==n?"l":"L");;){if(r.length==i[o])return r.unshift(n),t.push(r);if(r.lengtho-1&&(r-=o)},f._splitCurves=function(e,t){for(var n=0,r=0;n=e.length-1&&(r=0)}},f._upShapes=function(e,t){for(var n=function(t){var n=[];e[e.length-1].forEach(function(e){n.push(e.slice(0))}),e.push(n)},r=0;rr?f._subShapes(o,a,n-r):nr?n=p)return i(c=n,1),a(c),void cancelAnimationFrame(u);var l=s(t/p);c=f._lerp(r[0],r[1],l),i(c,l),u=requestAnimationFrame(e)}()},f})},function(e,t,n){"use strict";!function(){for(var e=0,t=["webkit","moz"],n=0;n"+(e.currentTime||n(0))+""+(e.duration||n(0))+"",{},"xgplayer-time");e.controls.appendChild(o);var a=function(){o.innerHTML=""+n(e.currentTime||0)+""+n(e.duration)};e.on("durationchange",a),e.on("timeupdate",a),e.once("destroy",function(){e.off("durationchange",a),e.off("timeupdate",a),o=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("textTrack",function(){if(-1!==navigator.userAgent.indexOf("Chrome")){var e=this,t=r.default.util,n=(r.default.sniffer,t.createDom("xg-textTrack","",{tabindex:7},"xgplayer-textTrack")),o=e.controls,a=e.config.textTrack;a&&Array.isArray(a)&&a.length>1&&(t.addClass(e.root,"xgplayer-is-textTrack"),e.on("canplay",function(){var t=["
    "];t.push("
  • 关闭
  • "),a.forEach(function(e){t.push("
  • "+e.label+"
  • ")});var r=e.config.lang&&"zh-cn"===e.config.lang?"字幕":"Caption";t.push('

'+r+"

");var i=o.querySelector(".xgplayer-textTrack");i?i.innerHTML=t.join(""):(n.innerHTML=t.join(""),o.appendChild(n))})),["touchstart","click"].forEach(function(r){n.addEventListener(r,function(r){r.preventDefault(),r.stopPropagation();var o=r.target||r.srcElement;if(o&&"li"===o.tagName.toLocaleLowerCase()){Array.prototype.forEach.call(o.parentNode.childNodes,function(e){t.removeClass(e,"textTrack")}),t.addClass(o,"textTrack");var i=e.root.getElementsByTagName("Track");"关闭"===o.innerHTML?i[0].track.mode="hidden":(i[0].track.mode="showing",a.some(function(e){if(e.label===o.innerHTML)return i[0].src=e.src,e.kind&&(i[0].kind=e.kind),i[0].label=e.label,e.srclang&&(i[0].srclang=e.srclang),!0}),e.emit("textTrackChange",o.innerHTML))}else!o||"p"!==o.tagName.toLocaleLowerCase()&&"em"!==o.tagName.toLocaleLowerCase()||(t.addClass(n,"xgplayer-textTrack-active"),n.focus())},!1)}),n.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.removeClass(n,"xgplayer-textTrack-active")}),e.once("destroy",function(){n=null})}})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("replay",function(){var e=this,t=r.default.util,n=t.createDom("xg-replay",'\n \n \n \n 重播\n ',{},"xgplayer-replay"),o=e.root,a=n.querySelector(".xgplayer-replay-svg");o.appendChild(n),e.on("ended",function(){n.querySelector(".xgplayer-replay-txt").textContent=e.lang.REPLAY,e.config.loop||t.addClass(o,"replay")}),a.addEventListener("click",function(n){n.preventDefault(),t.removeClass(o,"replay"),e.replay()}),e.once("destroy",function(){a=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("progress",function(){var e=this,t=r.default.util,n=t.createDom("xg-progress",'',{tabindex:1},"xgplayer-progress"),o=void 0;e.controls.appendChild(n);var a=n.querySelector(".xgplayer-progress-played"),i=n.querySelector(".xgplayer-progress-cache"),l=n.querySelector(".xgplayer-progress-point"),s=n.querySelector(".xgplayer-progress-thumbnail"),u=0,c=0,p=0,f=0,d=0,h=0,g=[];e.config.thumbnail&&(u=e.config.thumbnail.pic_num,c=e.config.thumbnail.width,p=e.config.thumbnail.height,f=e.config.thumbnail.col,d=e.config.thumbnail.row,g=e.config.thumbnail.urls,s.style.width=c+"px",s.style.height=p+"px"),["touchstart","mousedown"].forEach(function(r){n.addEventListener(r,function(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),r._target===l||e.ended)return!1;n.focus(),o=n.getBoundingClientRect().width;var i=a.getBoundingClientRect().left,s=!1,u=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),s=!0;var r=n.clientX-i,l=r/o*e.duration;a.style.width=100*r/o+"%",e.currentTime=Number(l).toFixed(1)},c=function r(l){if(l.preventDefault(),l.stopPropagation(),t.event(l),window.removeEventListener("mousemove",u),window.removeEventListener("touchmove",u),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),n.blur(),!s){var c=l.clientX-i,p=c/o*e.duration;a.style.width=100*c/o+"%",e.currentTime=Number(p).toFixed(1)}s=!1};return window.addEventListener("mousemove",u),window.addEventListener("touchmove",u),window.addEventListener("mouseup",c),window.addEventListener("touchend",c),!1})}),n.addEventListener("mouseenter",function(r){if(e.ended)return!1;var o=n.getBoundingClientRect().left,a=n.getBoundingClientRect().width,i=function(n){var r=(n.clientX-o)/a*e.duration;l.textContent=t.format(r);var i=l.getBoundingClientRect().width;if(e.config.thumbnail){h=e.duration/u;var y=Math.floor(r/h);s.style.backgroundImage="url("+g[Math.ceil((y+1)/(f*d))-1]+")";var v=y+1-f*d*(Math.ceil((y+1)/(f*d))-1),m=Math.ceil(v/d)-1,x=v-m*d-1;s.style["background-position"]="-"+x*c+"px -"+m*p+"px";var b=n.clientX-o-c/2;b=(b=b>0?b:0)0?w:0)>a-i?a-i:w,l.style.left=w+"px"}l.style.display="block"},y=function(e){i(e)};n.addEventListener("mousemove",y,!1),n.addEventListener("mouseleave",function e(t){n.removeEventListener("mousemove",y,!1),n.removeEventListener("mouseleave",e,!1),i(t),l.style.display="none",s.style.display="none"},!1),i(r)},!1),e.on("timeupdate",function(){!o&&n&&(o=n.getBoundingClientRect().width),a.style.width=100*e.currentTime/e.duration+"%"}),["cacheupdate","ended","timeupdate"].forEach(function(t){e.on(t,function(){var t=e.buffered;if(t&&t.length>0){var n=t.end(t.length-1);i.style.width=n/e.duration*100+"%"}})}),e.once("destroy",function(){n=null,a=null,l=null,s=null,i=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("poster",function(){var e=r.default.util.createDom("xg-poster","",{},"xgplayer-poster"),t=this.root;this.config.poster&&(e.style.backgroundImage="url("+this.config.poster+")",t.appendChild(e)),this.on("play",function(){e.style.display="none"}),this.once("destroy",function(){e=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("playbackRate",function(){var e=this,t=r.default.util,n=0,o=[];if(!e.config.playbackRate)return!1;e.config.playbackRate.sort(function(e,t){return e-t}),e.config.playbackRate.forEach(function(e,t){1!==e&&"1"!==e||(n=t),o.push(e+"x")});var a=e.config.lang&&"zh-cn"===e.config.lang?"倍速":"Speed",i=t.createDom("xg-playback",'

1x

',{},"xgplayer-playback"),l=e.controls,s=t.createDom("xg-tips",a,{},"xgplayer-tips");i.appendChild(s),l.appendChild(i),["touchstart","click"].forEach(function(t){i.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation();var r=t.target||t.srcElement;(r&&"p"===r.tagName.toLocaleLowerCase()||"span"===r.tagName.toLocaleLowerCase())&&(n=n+1===o.length?0:n+1,i.querySelector("p").innerHTML=""+o[n]+"",e.video.playbackRate=1*o[n].replace(/x$/g,""))},!1)}),i.addEventListener("mouseenter",function(t){t.preventDefault(),t.stopPropagation(),s.style.left="50%";var n=s.getBoundingClientRect(),r=e.root.getBoundingClientRect();n.right>r.right&&(s.style.left=-n.right+r.right+16+"px")}),e.once("destroy",function(){i=null})})},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("play",function(){var e=this,t=e.controls,n=r.default.util,a=e.config.iconScale||.0320625,i="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",l="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",s=n.createDom("xg-play",'\n \n '),u=e.config.lang&&"zh-cn"===e.config.lang?"播放":"Play",c=e.config.lang&&"zh-cn"===e.config.lang?"暂停":"Pause",p=n.createDom("xg-tips",u,{},"xgplayer-tips"),f=s.querySelector("path");s.appendChild(p);var d=new o.default({progress:function(e,t){f.setAttribute("d",d.toSVGString(e))},from:l,to:i});s.className="xgplayer-play",t.appendChild(s),["click","touchstart"].forEach(function(t){s.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.ended||(e.paused?e.play():e.pause())},!1)}),e.on("play",function(){p.textContent=c,d.to!==l&&d.reset(l,i)}),e.on("pause",function(){p.textContent=u,d.to!==i&&d.reset(i,l)}),e.once("destroy",function(){s=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("pc",function(){var e=this,t=r.default.util,n=e.controls,o=e.root,a=0,i=void 0,l="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",s="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",u=t.createDom("xg-start",'\n \n \n ',{},"xgplayer-start"),c=t.createDom("xg-enter",'',{},"xgplayer-enter"),p=c.querySelector(".xgplayer-enter-logo");o.appendChild(u),o.appendChild(c);var f=u.querySelector("path"),d=new Image;d.onload=function(){c.querySelector(".xgplayer-enter-tips").style.display="block"},e.config.enterLogo?(d.src=e.config.enterLogo,p.style.backgroundImage='url("'+e.config.enterLogo+'")'):d.src=t.getBgImage(p),["click","touchstart"].forEach(function(n){u.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.config.url&&(t.hasClass(o,"xgplayer-nostart")?(t.removeClass(o,"xgplayer-nostart"),t.addClass(o,"xgplayer-is-enter"),o.querySelector("video")||e.start(),e.on("canplay",function(){t.removeClass(o,"xgplayer-is-enter")}),e.once("playing",function(){t.removeClass(o,"xgplayer-is-enter")}),e.play(),setTimeout(function(){e.play()},10)):e.paused&&(t.removeClass(o,"xgplayer-nostart xgplayer-isloading"),setTimeout(function(){e.play()},10)))})}),u.addEventListener("animationend",function(e){e.preventDefault(),t.removeClass(u,"xgplayer-start-interact"),u.style.display="none"}),e.on("play",function(){f.setAttribute("d",l),u.style.display="inline-block",t.addClass(u,"xgplayer-start-interact")}),e.on("pause",function(){f.setAttribute("d",s),u.style.display="inline-block",t.addClass(u,"xgplayer-start-interact")}),e.video.addEventListener("click",function(n){n.preventDefault(),n.stopPropagation(),document.activeElement===e.video?(a++,i&&clearTimeout(i),1===a?i=setTimeout(function(){if(t.hasClass(e.root,"xgplayer-nostart"))return!1;e.ended||(e.paused?e.play():e.pause()),a=0},200):a=0):e.video.focus()},!1),e.video.addEventListener("dblclick",function(t){if(t.preventDefault(),t.stopPropagation(),document.activeElement===e.video){var r=n.querySelector(".xgplayer-fullscreen");if(r){var o=void 0;document.createEvent?(o=document.createEvent("Event")).initEvent("click",!0,!0):o=new Event("click"),r.dispatchEvent(o)}}else e.video.focus()},!1),o.addEventListener("mouseenter",function(t){e.emit("focus",e)},!1),o.addEventListener("mouseleave",function(t){e.emit("blur",e)},!1),n.addEventListener("mouseenter",function(t){e.userTimer&&clearTimeout(e.userTimer)},!1),n.addEventListener("mouseleave",function(t){e.emit("focus",e)},!1)})},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("mobile",function(){var e=this,t=r.default.util,n=e.root;e.config.autoplay=!1;var a=function(e){var t=r.default.util;return e.some(function(e){return"Function"===t.typeOf(e)?e.call(navigator.userAgent):"RegExp"===t.typeOf(e)?e.test(navigator.userAgent):"String"===t.typeOf(e)&&navigator.userAgent.indexOf(e)>-1})}(e.config.whitelist);e.mobilePass=a;var i="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",l="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",s=t.createDom("xg-start",'\n \n \n ',{},"xgplayer-start"),u=t.createDom("xg-enter",'',{},"xgplayer-enter"),c=u.querySelector(".xgplayer-enter-logo");n.appendChild(s),n.appendChild(u);var p=s.querySelector("path"),f=new Image,d=new o.default({from:l,to:i,progress:function(e,t){p.setAttribute("d",d.toSVGString(e))}});u.querySelector(".xgplayer-enter-tips").style.display="block",e.start(),a?(e.config.enterLogo?(f.src=e.config.enterLogo,c.style.backgroundImage='url("'+e.config.enterLogo+'")'):f.src=t.getBgImage(c),e.video.addEventListener("touchstart",function(t){t.preventDefault(),e.emit("focus")},!1),s.addEventListener("touchend",function(r){r.preventDefault(),t.hasClass(n,"xgplayer-nostart")?(t.removeClass(n,"xgplayer-nostart"),t.addClass(n,"xgplayer-is-enter"),e.on("canplay",function(){t.removeClass(n,"xgplayer-is-enter")}),e.once("playing",function(){t.removeClass(n,"xgplayer-is-enter")}),e.play()):e.paused?e.play():e.pause()}),e.on("play",function(){d.reset(l,i)}),e.on("pause",function(){d.reset(i,l)})):(t.addClass(n,"xgplayer-mobile-npassed"),e.once("ready",function(){e.video.controls=e.config.controls,e.video.controlsList=e.config.controlsList.join(" "),e.config.poster&&(e.video.poster=e.config.poster)})),e.config.debug&&function(e){var t={};Object.assign(t,{host:"127.0.0.1",port:9090},e);var n=document.createElement("script"),r=document.createElement("h4");r.style.cssText="position:fixed;bottom:0;padding:10px;width:100%;background-color:#fff;text-align:center",r.textContent="weinre --boundHost "+t.host+" --httpPort "+t.port+"\r\n 启动服务后,刷新页面",n.anonymous=!0,n.async=!0,n.src="http://"+t.host+":"+t.port+"/target/target-script-min.js#anonymous",n.onload=function(){r.parentNode.removeChild(r)},document.body.appendChild(n),document.body.appendChild(r)}(e.config.debug)})},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;ni.length){for(var c=function(e){i[e]={id:e,queue:[],step:t.channels[e].step,surplus:t.channels[e].surplus},t.channels[e].queue.forEach(function(t){return i[e].queue.push(t)})},p=0;pn.length)return{result:!1,message:"exceed channels.length, occupy="+o+",channelsSize="+n.length};for(var a=!0,i=void 0,l=-1,s=0,u=n.length;s-1&&(r.queue.splice(i,1),0===i&&(r.step=9999,r.surplus=0))}}},{key:"update",value:function(){var e=this.channels,t=this.width;e.forEach(function(e){var n=e.queue[0];n?e.surplus=t-n.left-n.width:(e.step=9999,e.surplus=0)})}},{key:"reset",value:function(){var e=this.player.root,t=this;setTimeout(function(){var n=e.querySelector(".xgplayer-bullet"),r=n.getBoundingClientRect();t.width=r.width,t.height=r.height,t.container=n;for(var o=/mobile/gi.test(navigator.userAgent)?10:12,a=Math.floor(t.height/o),i=[],l=0;l0?e.map(function(e){return{id:e.danmaku_id,txt:e.text.slice(0,40),duration:1*e.duration,color:e.text_color.replace("0x","#"),scale:1*e.text_scale,start:1*e.offset_time}}):[]}},n),t.on("dataIncoming",this.dataHandle.bind(this)),t.on("seeked",this.seekHandle.bind(this)),t.on("bullet_remove",this.updateQueue.bind(this)),t.on("ended",this.stop.bind(this)),t.on("pause",this.pause.bind(this)),t.on("play",this.play.bind(this))}return r(e,[{key:"updateQueue",value:function(e){var t=this;t.queue.some(function(n,r){if(n.id===e.bullet.id)return t.queue.splice(r,1),!0})}},{key:"init",value:function(){var e=this;if(e.data)return e.player.paused?void(e.status="paused"):e.player.ended?void(e.status="ended"):(e.readData(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3),void e.player.emit("dataIncoming"));fetch(e.options.url,{method:e.options.method,headers:{Accept:"application/json"}}).then(function(t){t.ok&&t.json().then(function(t){var n=e.options.dataMap.call(null,t.data);if(n.length){e.data=n;var r=document.createElement("span");r.style.padding=e.options.padding+"||'0px'",r.style.position="absolute",r.style.left="-99999px",document.body.appendChild(r);var o=void 0;if(e.data.forEach(function(e){r.textContent=e.txt,r.style.fontSize=20*e.scale+"px",o=r.getBoundingClientRect(),e.width=o.width,e.height=o.height}),e.data.sort(function(e,t){return e.start-t.start}),document.body.removeChild(r),e.player.paused)return void(e.status="paused");if(e.player.ended)return void(e.status="ended");e.readData(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3),e.player.emit("dataIncoming")}})}).catch(function(e){console.log("Fetch错误:"+e)})}},{key:"start",value:function(){this.status="playing",this.channel.reset(),this.init()}},{key:"stop",value:function(){this.status="closed",clearTimeout(this.retryTimer),(0,a.default)("cancel")(this.timer),this.queue.length=0,this.container.innerHTML=""}},{key:"play",value:function(){var e=this,t=o.default.util;"idle"===e.status||"ended"===e.status?t.hasClass(e.container,"xgplayer-has-bullet")&&e.start():"paused"===e.status&&t.hasClass(e.container,"xgplayer-has-bullet")&&(e.status="playing",e.dataHandle(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3))}},{key:"pause",value:function(){"playing"===this.status?(this.status="paused",clearTimeout(this.retryTimer),(0,a.default)("cancel")(this.timer)):"ended"===this.status&&this.stop()}},{key:"dataHandle",value:function(){var e=(0,a.default)("cancel");if(e(this.timer),this.queue.length){this.queue.forEach(function(e){"waiting"!==e.status&&"start"!==e.status||(e.status="start",e.move())});var t=(0,a.default)("request");this.timer=t(this.dataHandle.bind(this))}else e(this.timer)}},{key:"readData",value:function(){var e=this,t=this.player,n=this.formatTime(t.currentTime),r=void 0,o=e.interval,a=e.channel,i=e.container,l=e.data.filter(function(e){return e.start<=n&&n<=e.start+o});l.length>0&&l.forEach(function(n){r=new c(t,i,n),a.addBullet(r).result&&(e.queue.push(r),r.reset(),r.attach())})}},{key:"seekHandle",value:function(){o.default.util;this.stop(),this.player.paused?this.status="idle":(this.status="playing",this.channel.resetWithCb(),this.init())}},{key:"formatTime",value:function(e){var t=Math.floor(e);return 1e3*t+(e-t)}}]),e}(),f=function(){function e(t,n){s(this,e);var r=this;this.player=t,this.el_=this.createEl(),this.onceFlag=!1;["click","touchstart"].forEach(function(e){r.el_.addEventListener(e,function(e){e.preventDefault(),e.stopPropagation(),r.onClick()},!1)}),this.main=new p(t,n),"on"===n.switch&&this.player.once("play",function(){r.onChange(!0)})}return r(e,[{key:"createEl",value:function(){return o.default.util.createDom("xg-bullet-btn",'',{},"xgplayer-bullet-btn "+("on"===this.player.config.bullet.switch?"xgplayer-bullet-btn-active":""))}},{key:"onClick",value:function(){var e=this,t=o.default.util;t.toggleClass(e.el_,"xgplayer-bullet-btn-active");var n=!!t.hasClass(e.el_,"xgplayer-bullet-btn-active");function r(){e.onceFlag=!1,e.main.channel.resetWithCb(e.onChange.bind(e))}n?e.player.paused||e.player.ended?this.onceFlag||(this.onceFlag=!0,this.player.once("play",r)):r():(this.player.off("play",r),this.onChange(n))}},{key:"onChange",value:function(e){var t=o.default.util,n=this.player.root.querySelector(".xgplayer-bullet");e?(t.addClass(n,"xgplayer-has-bullet"),this.main.start()):(t.removeClass(n,"xgplayer-has-bullet"),this.main.stop())}}]),e}();o.default.install("makeBullet",function(){var e=this,t=o.default.util;if(e.config.bullet){var n=t.createDom("xg-bullet","",{},"xgplayer-bullet");e.root.appendChild(n);var r=new f(e,e.config.bullet);["touchstart","click"].forEach(function(t){n.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.paused?e.play():e.pause()},!1)}),e.controls.appendChild(r.el_)}})},function(e,t,n){"use strict";var r,o,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}; /** * request-frame - requestAnimationFrame & cancelAnimationFrame polyfill for optimal cross-browser development. * @version v1.5.3 diff --git a/packages/xgplayer/dist/index.js b/packages/xgplayer/dist/index.js index b6f212085..e0465d860 100644 --- a/packages/xgplayer/dist/index.js +++ b/packages/xgplayer/dist/index.js @@ -1,4 +1,4 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.xgplayer=t():e.xgplayer=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:this.config.url,n=this.root,r=this;"String"===a.default.typeOf(t)?this.video.src=t:t.forEach(function(t){e.video.appendChild(a.default.createDom("source","",{src:""+t.src,type:""+(t.type||"")}))}),n.insertBefore(this.video,n.firstChild),r.userTimer=setTimeout(function(){r.emit("blur")},r.config.inactive),setTimeout(function(){e.emit("complete")},1)}},{key:"reload",value:function(){this.video.load(),this.once("loadeddata",function(){this.play()})}},{key:"destroy",value:function(){var e=this,t=this.root.parentNode;this.paused?(this.emit("destroy"),t.removeChild(this.root),t.appendChild(this.rootBackup)):(this.pause(),this.once("pause",function(){e.emit("destroy"),t.removeChild(e.root),t.appendChild(e.rootBackup)})),setTimeout(function(){for(var e in this)"config"!==e&&delete this[e]},200)}},{key:"replay",value:function(){var e=this._replay;a.default.removeClass(this.root,"xgplayer-ended"),e&&e instanceof Function?e():(this.currentTime=0,this.play())}},{key:"onFocus",value:function(){var e=this;a.default.removeClass(this.root,"xgplayer-inactive"),e.userTimer&&clearTimeout(e.userTimer),e.userTimer=setTimeout(function(){e.emit("blur")},e.config.inactive)}},{key:"onBlur",value:function(){this.paused||this.ended||a.default.addClass(this.root,"xgplayer-inactive")}},{key:"onPlay",value:function(){a.default.addClass(this.root,"xgplayer-playing"),a.default.removeClass(this.root,"xgplayer-pause")}},{key:"onPause",value:function(){a.default.addClass(this.root,"xgplayer-pause"),this.userTimer&&clearTimeout(this.userTimer),this.emit("focus")}},{key:"onEnded",value:function(){a.default.addClass(this.root,"xgplayer-ended"),a.default.removeClass(this.root,"xgplayer-playing")}},{key:"onSeeking",value:function(){}},{key:"onSeeked",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),a.default.removeClass(this.root,"xgplayer-isloading")}},{key:"onWaiting",value:function(){var e=this;e.waitTimer&&clearTimeout(e.waitTimer),e.waitTimer=setTimeout(function(){a.default.addClass(e.root,"xgplayer-isloading")},500)}},{key:"onPlaying",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),a.default.removeClass(this.root,"xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay"),a.default.addClass(this.root,"xgplayer-playing")}}],[{key:"install",value:function(e,n){t.plugins||(t.plugins={}),t.plugins[e]=n}}]),t}();p.util=a.default,p.sniffer=i.default,p.Errors=l.default,t.default=p,e.exports=t.default},function(e,t,n){"use strict";var r=n(17)();e.exports=function(e){return e!==r&&null!==e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.from=t.from,this.to=t.to,this.easing=t.easing||function(e){return e*e},this.duration=t.duration||150,this.curPath="",this.progress=t.progress,this.state=0}return r(e,[{key:"animate",value:function(){var e=this,t=new Date,n=e.duration,r=null,o=e.path2shapes(e.from),a=e.path2shapes(e.to),i=e._preprocessing(o,a);e.state=1;!function o(){var l=new Date-t;if(l>=n||2===e.state)return r=a,e.progress(r,1),window.cancelAnimationFrame(e.tickId),void(e.state=0);var s=e.easing(l/n);r=e._lerp(i[0],i[1],s),e.progress(r,s),e.tickId=window.requestAnimationFrame(o)}()}},{key:"toSVGString",value:function(e){return e.map(function(e){return e.forEach(function(e,t){t?e.splice(0,2,"C"):(e.splice(2,0,"C"),e.unshift("M"))}),e.map(function(e){return e.join(" ")}).join("")}).join("")}},{key:"start",value:function(){self.animate()}},{key:"stop",value:function(){0!==this.state&&(this.state=2),window.cancelAnimationFrame(self.tickId),this.state=0}},{key:"reverse",value:function(){0!==this.state&&this.stop();var e=this.from;this.from=this.to,this.to=e,this.animate()}},{key:"reset",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.from;0!==this.state&&this.stop(),this.from=t,this.to=e,this.animate()}}]),e}();for(var i in o.default)o.default[i]instanceof Function&&!a.prototype[i]&&(a.prototype[i]=o.default[i]);t.default=a,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={createDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=document.createElement(e);return o.className=r,o.innerHTML=t,Object.keys(n).forEach(function(t){var r=t,a=n[t];"video"===e||"audio"===e?a&&o.setAttribute(r,a):o.setAttribute(r,a)}),o},hasClass:function(e,t){return e.classList?Array.prototype.some.call(e.classList,function(e){return e===t}):!!e.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))},addClass:function(e,t){e.classList?t.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach(function(t){t&&e.classList.add(t)}):r.hasClass(e,t)||(e.className+=" "+t)},removeClass:function(e,t){e.classList?t.split(/\s+/g).forEach(function(t){e.classList.remove(t)}):r.hasClass(e,t)&&t.split(/\s+/g).forEach(function(t){var n=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className=e.className.replace(n," ")})},toggleClass:function(e,t){t.split(/\s+/g).forEach(function(t){r.hasClass(e,t)?r.removeClass(e,t):r.addClass(e,t)})},findDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=arguments[1];return e.querySelector(t)},padStart:function(e,t,n){for(var r=String(n),o=t>>0,a=Math.ceil(o/r.length),i=[],l=String(e);a--;)i.push(r);return i.join("").substring(0,o-l.length)+l},format:function(e){if(window.isNaN(e))return"";var t=r.padStart(Math.floor(e/3600),2,0),n=r.padStart(Math.floor((e-3600*t)/60),2,0),o=r.padStart(Math.floor(e-3600*t-60*n),2,0);return("00"===t?[n,o]:[t,n,o]).join(":")},event:function(e){if(e.touches){var t=e.touches[0]||e.changedTouches[0];e.clientX=t.clientX||0,e.clientY=t.clientY||0,e.offsetX=t.pageX-t.target.offsetLeft,e.offsetY=t.pageY-t.target.offsetTop}e._target=e.target||e.srcElement},typeOf:function(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]},deepCopy:function(e,t){if("Object"===r.typeOf(t)&&"Object"===r.typeOf(e))return Object.keys(t).forEach(function(n){"Object"!==r.typeOf(t[n])||t[n]instanceof Node?e[n]=t[n]:e[n]?r.deepCopy(e[n],t[n]):e[n]=t[n]}),e},getBgImage:function(e){var t=document.createElement("a"),n=(e.currentStyle||window.getComputedStyle(e,null)).backgroundImage;return t.href=n.replace(/url\("|"\)/g,""),t.href},copyDom:function(e){if(e&&1===e.nodeType){var t=document.createElement(e.tagName);return Array.prototype.forEach.call(e.attributes,function(e){t.setAttribute(e.name,e.value)}),t}return""}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);var o={network:{code:1,msg:"视频下载错误",remark:"只要视频下载错误就使用此类型,无论是video本身的超时还是xhr的分段请求超时或者资源不存在"},mse:{code:2,msg:"流追加错误",remark:"追加流的时候如果类型不对、无法被正确解码则会触发此类错误"},parse:{code:3,msg:"解析错误",remark:"mp4、hls、flv我们都是使用js进行格式解析,如果解析失败则会触发此类错误"},format:{code:4,msg:"格式错误",remark:"如果浏览器不支持的格式导致播放错误"},decoder:{code:5,msg:"解码错误",remark:"浏览器解码异常会抛出此类型错误"},runtime:{code:6,msg:"语法错误",remark:"播放器语法错误"},timeout:{code:7,msg:"播放超时",remark:"播放过程中无法正常请求下一个分段导致播放中断"},other:{code:8,msg:"其他错误",remark:"不可知的错误或被忽略的错误类型"}};t.default=function e(t,n,a,i,l,s,u,c){var p=arguments.length>8&&void 0!==arguments[8]?arguments[8]:{line:"",handle:"",msg:"",version:""};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var f={};return f.playerVersion=r.version,f.errorType=t,f.domain=document.domain,f.duration=a,f.currentTime=n,f.networkState=i,f.readyState=l,f.currentSrc=u,f.src=s,f.ended=c,f.errd=p,f.ex=(o[t]||{}).msg,f},e.exports=t.default},function(e){e.exports={name:"xgplayer",version:"1.0.7",description:"video player",main:"./dist/index.js",scripts:{prepare:"npm run build",build:"webpack --progress --display-chunks -p",watch:"webpack --progress --display-chunks -p --watch"},keywords:["video","player"],babel:{presets:["es2015"],plugins:["add-module-exports","babel-plugin-bulk-import"]},repository:{type:"git",url:"git+https://github.com/bytedance/xgplayer.git"},author:"yinguohui@bytedance.com",license:"MIT",dependencies:{"babel-plugin-add-module-exports":"^0.2.1",deepmerge:"^1.5.0","event-emitter":"^0.3.5",pasition:"^1.0.1","request-frame":"^1.5.3"},browserslist:["> 5%","IE 9","iOS 7","Firefox > 20"],devDependencies:{"babel-loader":"^7.1.4","babel-plugin-bulk-import":"^1.0.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","core-js":"^2.5.4","css-loader":"^0.28.11","json-loader":"^0.5.7","node-sass":"^4.8.3","postcss-cssnext":"^3.1.0","postcss-loader":"^2.1.5","sass-loader":"^6.0.7","style-loader":"^0.20.3",sugarss:"^1.0.1",webpack:"^4.8.1","webpack-cli":"^2.1.3",zlib:"^1.0.5"}}},function(e,t,n){e.exports=n(7)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=w(n(0)),o=w(n(26)),a=w(n(29)),i=w(n(30)),l=w(n(31)),s=w(n(32)),u=w(n(33)),c=w(n(34)),p=w(n(35)),f=w(n(36)),d=w(n(37)),h=w(n(38)),g=w(n(41)),y=w(n(42)),v=w(n(43)),m=w(n(44)),x=w(n(45)),b=w(n(46));function w(e){return e&&e.__esModule?e:{default:e}}n(47);var k={};function E(e,t,n){var r=e;t.map(function(e,o){r[e]=o==t.length-1?n:r[e]||{},r=r[e]})}E(k,["control","definition"],b.default),E(k,["control","error"],x.default),E(k,["control","flex"],m.default),E(k,["control","fullscreen"],v.default),E(k,["control","i18n"],y.default),E(k,["control","loading"],g.default),E(k,["control","makeBullet"],h.default),E(k,["control","mobile"],d.default),E(k,["control","pc"],f.default),E(k,["control","play"],p.default),E(k,["control","playbackRate"],c.default),E(k,["control","poster"],u.default),E(k,["control","progress"],s.default),E(k,["control","replay"],l.default),E(k,["control","textTrack"],i.default),E(k,["control","time"],a.default),E(k,["control","volume"],o.default),t.default=r.default,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n",!0}),r.crossorigin="anonymous"),t.textTrackStyle){var s=document.createElement("style");document.head.appendChild(s);var u="";for(var c in t.textTrackStyle)u+=c+": "+t.textTrackStyle[c]+";";var p=t.id?"#"+t.id:t.el.id?"#"+t.el.id:"."+t.el.className;s.sheet.addRule(p+" video::cue",u),s.sheet.insertRule(p+" video::cue { "+u+" }",0)}this.video=a.default.createDom(r.mediaType,l,r,""),this.ev=["play","playing","pause","ended","error","seeking","seeked","timeupdate","waiting","canplay","canplaythrough","durationchange","volumechange","loadeddata"].map(function(e){return function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},e,"on"+e.charAt(0).toUpperCase()+e.slice(1))}),(0,o.default)(this),this.ev.forEach(function(e){var t=n,r=Object.keys(e)[0];t.video.addEventListener(r,function(){"play"===r&&(t.hasStart=!0),"error"===r?t.video.error&&t.emit(r,new i.default("other",t.currentTime,t.duration,t.networkState,t.readyState,t.currentSrc,t.src,t.ended,{line:41,msg:t.error,handle:"Constructor"})):t.emit(r,t)},!1)})}return r(e,[{key:"play",value:function(){this.video.play()}},{key:"pause",value:function(){this.video.pause()}},{key:"canPlayType",value:function(){this.video.canPlayType()}},{key:"getBufferedRange",value:function(){var e=[0,0],t=this.video,n=t.buffered,r=t.currentTime;if(n)for(var o=0,a=n.length;o-1}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={get device(){var e=r.os;return e.isPc?"pc":e.isTablet?"tablet":"mobile"},get browser(){var e=navigator.userAgent.toLowerCase(),t={ie:/rv:([\d.]+)\) like gecko/,firfox:/firefox\/([\d.]+)/,chrome:/chrome\/([\d.]+)/,opera:/opera.([\d.]+)/,safari:/version\/([\d.]+).*safari/};return[].concat(Object.keys(t).filter(function(n){return t[n].test(e)}))[0]},get os(){var e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),n=/(?:SymbianOS)/.test(e)||t,r=/(?:Android)/.test(e),o=/(?:Firefox)/.test(e),a=/(?:iPad|PlayBook)/.test(e)||r&&!/(?:Mobile)/.test(e)||o&&/(?:Tablet)/.test(e),i=/(?:iPhone)/.test(e)&&!a;return{isTablet:a,isPhone:i,isAndroid:r,isPc:!i&&!r&&!n,isSymbian:n,isWindowsPhone:t,isFireFox:o}}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("volume",function(){var e=this,t=r.default.util,n=e.config.volume,a={muted:"M920.4 439.808l-108.544-109.056-72.704 72.704 109.568 108.544-109.056 108.544 72.704 72.704 108.032-109.568 108.544 109.056 72.704-72.704-109.568-108.032 109.056-108.544-72.704-72.704-108.032 109.568z",small:"M795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z",large:"M940.632 837.632l-72.192-72.192c65.114-64.745 105.412-154.386 105.412-253.44s-40.299-188.695-105.396-253.424l-0.016-0.016 72.192-72.192c83.639 83.197 135.401 198.37 135.401 325.632s-51.762 242.434-135.381 325.612l-0.020 0.020zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z"},i=function(e){return 0===e?"muted":e<.5?"small":"large"},l=a[i(n)],s=a[i(n)],u=t.createDom("xg-volume",'\n \n \n \n \n \n \n \n \n \n ',{},"xgplayer-volume"),c=e.controls;c.appendChild(u);var p=void 0,f=u.querySelector(".xgplayer-slider"),d=u.querySelector(".xgplayer-bar"),h=u.querySelector(".xgplayer-drag"),g=u.querySelector(".xgplayer-icon");h.style.height=100*e.config.volume+"%";var y=c.querySelectorAll("path")[1],v=new o.default({progress:function(e,t){var n=v.toSVGString(e);y.setAttribute("d",n),l=n},from:l,to:a.large}),m=null;f.volume=e.config.volume,["touchstart","mousedown"].forEach(function(n){d.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),f.focus(),t.event(n),p=d.getBoundingClientRect().height,n.clientX;var r=n.clientY,o=h.getBoundingClientRect().height,a=!1,i=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),a=!0;var i=o-n.clientY+r,l=i/p;h.style.height=i+"px",e.volume=Math.max(Math.min(l,1),.01)},l=function n(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",i),window.removeEventListener("mouseup",n),window.removeEventListener("touchend",n),m||(m=d.getBoundingClientRect()),!a){var o=m.height-(r.clientY-m.top),l=o/m.height;h.style.height=o+"px",l<=0&&(e.volume>0?h.volume=e.video.volume:l=h.volume),e.volume=Math.max(Math.min(l,1),.01)}f.volume=e.volume,a=!1};return window.addEventListener("mousemove",i),window.addEventListener("touchmove",i),window.addEventListener("mouseup",l),window.addEventListener("touchend",l),!1})}),["touchstart","mousedown"].forEach(function(n){g.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),t.hasClass(f,"xgplayer-none")?(t.removeClass(f,"xgplayer-none"),f.focus()):0===e.volume?e.volume=f.volume:e.volume=0})}),f.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.addClass(f,"xgplayer-none")});var x=null;e.on("volumechange",function(){x&&clearTimeout(x),x=setTimeout(function(){v.reset(a[i(e.volume)],l),l=a[i[e.volume]],p||(p=d.getBoundingClientRect().height||76),h.style.height=e.volume*p+"px"},50)}),e.once("canplay",function(){e.volume=e.config.volume}),e.once("destroy",function(){u=null,h=null})})},function(e,t,n){"use strict";var r,o,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(i,l){"object"===a(t)&&void 0!==e?e.exports=l():void 0===(o="function"==typeof(r=l)?r.call(t,n,t,e):r)||(e.exports=o)}(0,function(){var e=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),t=2*Math.PI,n=function(e,t,n,r,o,a,i){var l=e.x,s=e.y;return{x:r*(l*=t)-o*(s*=n)+a,y:o*l+r*s+i}},r=function(e,t){var n=4/3*Math.tan(t/4),r=Math.cos(e),o=Math.sin(e),a=Math.cos(e+t),i=Math.sin(e+t);return[{x:r-o*n,y:o+r*n},{x:a+i*n,y:i-a*n},{x:a,y:i}]},o=function(e,t,n,r){var o=e*r-t*n<0?-1:1,a=(e*n+t*r)/(Math.sqrt(e*e+t*t)*Math.sqrt(e*e+t*t));return a>1&&(a=1),a<-1&&(a=-1),o*Math.acos(a)},a=function(a){var i=a.px,l=a.py,s=a.cx,u=a.cy,c=a.rx,p=a.ry,f=a.xAxisRotation,d=void 0===f?0:f,h=a.largeArcFlag,g=void 0===h?0:h,y=a.sweepFlag,v=void 0===y?0:y,m=[];if(0===c||0===p)return[];var x=Math.sin(d*t/360),b=Math.cos(d*t/360),w=b*(i-s)/2+x*(l-u)/2,k=-x*(i-s)/2+b*(l-u)/2;if(0===w&&0===k)return[];c=Math.abs(c),p=Math.abs(p);var E=Math.pow(w,2)/Math.pow(c,2)+Math.pow(k,2)/Math.pow(p,2);E>1&&(c*=Math.sqrt(E),p*=Math.sqrt(E));var C=function(e,n,r,a,i,l,s,u,c,p,f,d){var h=Math.pow(i,2),g=Math.pow(l,2),y=Math.pow(f,2),v=Math.pow(d,2),m=h*g-h*v-g*y;m<0&&(m=0),m/=h*v+g*y;var x=(m=Math.sqrt(m)*(s===u?-1:1))*i/l*d,b=m*-l/i*f,w=p*x-c*b+(e+r)/2,k=c*x+p*b+(n+a)/2,E=(f-x)/i,C=(d-b)/l,_=(-f-x)/i,T=(-d-b)/l,M=o(1,0,E,C),S=o(E,C,_,T);return 0===u&&S>0&&(S-=t),1===u&&S<0&&(S+=t),[w,k,M,S]}(i,l,s,u,c,p,g,v,x,b,w,k),_=e(C,4),T=_[0],M=_[1],S=_[2],R=_[3],A=Math.max(Math.ceil(Math.abs(R)/(t/4)),1);R/=A;for(var L=0;Le-1&&(a-=e),r[a]=o}t.push(r)}return t})(e.length).forEach(function(r){var o=0,a=0;r.forEach(function(n){o+=function(e,t){var n=e[0],r=e[2],o=e[4],a=e[6],i=e[1],l=e[3],s=e[5],u=e[7],c=t[0],p=t[2],f=t[4],d=t[6],h=t[1],g=t[3],y=t[5],v=t[7];return Math.sqrt(Math.pow(c-n,2)+Math.pow(h-i,2))+Math.sqrt(Math.pow(p-r,2)+Math.pow(g-l,2))+Math.sqrt(Math.pow(f-o,2)+Math.pow(y-s,2))+Math.sqrt(Math.pow(d-a,2)+Math.pow(v-u,2))}(e[n],t[a++])}),n.push({index:r,distance:o})}),n.sort(function(e,t){return e.distance-t.distance});var r=[];return n[0].index.forEach(function(t){r.push(e[t])}),r}function p(e,t){var n=[];(function(e){for(var t=[],n=0;n2&&(t.push([n].concat(r.splice(0,2))),o="l",n="m"==n?"l":"L");;){if(r.length==i[o])return r.unshift(n),t.push(r);if(r.lengtho-1&&(r-=o)},f._splitCurves=function(e,t){for(var n=0,r=0;n=e.length-1&&(r=0)}},f._upShapes=function(e,t){for(var n=function(t){var n=[];e[e.length-1].forEach(function(e){n.push(e.slice(0))}),e.push(n)},r=0;rr?f._subShapes(o,a,n-r):nr?n=p)return i(c=n,1),a(c),void cancelAnimationFrame(u);var l=s(t/p);c=f._lerp(r[0],r[1],l),i(c,l),u=requestAnimationFrame(e)}()},f})},function(e,t,n){"use strict";!function(){for(var e=0,t=["webkit","moz"],n=0;n"+(e.currentTime||n(0))+""+(e.duration||n(0))+"",{},"xgplayer-time");e.controls.appendChild(o);var a=function(){o.innerHTML=""+n(e.currentTime||0)+""+n(e.duration)};e.on("durationchange",a),e.on("timeupdate",a),e.once("destroy",function(){e.off("durationchange",a),e.off("timeupdate",a),o=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("textTrack",function(){var e=this,t=r.default.util,n=(r.default.sniffer,t.createDom("xg-textTrack","",{tabindex:7},"xgplayer-textTrack")),o=e.controls,a=e.config.textTrack;a&&a instanceof Array&&a.length>1&&(t.addClass(e.root,"xgplayer-is-textTrack"),e.on("canplay",function(){var t=["
    "];t.push("
  • 关闭
  • "),a.forEach(function(e){t.push("
  • "+e.label+"
  • ")});var r=e.config.lang&&"zh-cn"===e.config.lang?"字幕":"Caption";t.push('

'+r+"

");var i=o.querySelector(".xgplayer-textTrack");i?i.innerHTML=t.join(""):(n.innerHTML=t.join(""),o.appendChild(n))})),["touchstart","click"].forEach(function(r){n.addEventListener(r,function(r){r.preventDefault(),r.stopPropagation();var o=r.target||r.srcElement;if(o&&"li"===o.tagName.toLocaleLowerCase()){Array.prototype.forEach.call(o.parentNode.childNodes,function(e){t.removeClass(e,"textTrack")}),t.addClass(o,"textTrack");var i=e.root.getElementsByTagName("Track");"关闭"===o.innerHTML?i[0].track.mode="hidden":(i[0].track.mode="showing",a.some(function(e){if(e.label===o.innerHTML)return i[0].src=e.src,e.kind&&(i[0].kind=e.kind),i[0].label=e.label,e.srclang&&(i[0].srclang=e.srclang),!0}),e.emit("textTrackChange",o.innerHTML))}else!o||"p"!==o.tagName.toLocaleLowerCase()&&"em"!==o.tagName.toLocaleLowerCase()||(t.addClass(n,"xgplayer-textTrack-active"),n.focus())},!1)}),n.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.removeClass(n,"xgplayer-textTrack-active")}),e.once("destroy",function(){n=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("replay",function(){var e=this,t=r.default.util,n=t.createDom("xg-replay",'\n \n \n \n 重播\n ',{},"xgplayer-replay"),o=e.root,a=n.querySelector(".xgplayer-replay-svg");o.appendChild(n),e.on("ended",function(){n.querySelector(".xgplayer-replay-txt").textContent=e.lang.REPLAY,e.config.loop||t.addClass(o,"replay")}),a.addEventListener("click",function(n){n.preventDefault(),t.removeClass(o,"replay"),e.replay()}),e.once("destroy",function(){a=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("progress",function(){var e=this,t=r.default.util,n=t.createDom("xg-progress",'',{tabindex:1},"xgplayer-progress"),o=void 0;e.controls.appendChild(n);var a=n.querySelector(".xgplayer-progress-played"),i=n.querySelector(".xgplayer-progress-cache"),l=n.querySelector(".xgplayer-progress-point"),s=n.querySelector(".xgplayer-progress-thumbnail"),u=0,c=0,p=0,f=0,d=0,h=0,g=[];e.config.thumbnail&&(u=e.config.thumbnail.pic_num,c=e.config.thumbnail.width,p=e.config.thumbnail.height,f=e.config.thumbnail.col,d=e.config.thumbnail.row,g=e.config.thumbnail.urls,s.style.width=c+"px",s.style.height=p+"px"),["touchstart","mousedown"].forEach(function(r){n.addEventListener(r,function(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),r._target===l||e.ended)return!1;n.focus(),o=n.getBoundingClientRect().width;var i=a.getBoundingClientRect().left,s=!1,u=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),s=!0;var r=n.clientX-i,l=r/o*e.duration;a.style.width=100*r/o+"%",e.currentTime=Number(l).toFixed(1)},c=function r(l){if(l.preventDefault(),l.stopPropagation(),t.event(l),window.removeEventListener("mousemove",u),window.removeEventListener("touchmove",u),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),n.blur(),!s){var c=l.clientX-i,p=c/o*e.duration;a.style.width=100*c/o+"%",e.currentTime=Number(p).toFixed(1)}s=!1};return window.addEventListener("mousemove",u),window.addEventListener("touchmove",u),window.addEventListener("mouseup",c),window.addEventListener("touchend",c),!1})}),n.addEventListener("mouseenter",function(r){if(e.ended)return!1;var o=n.getBoundingClientRect().left,a=n.getBoundingClientRect().width,i=function(n){var r=(n.clientX-o)/a*e.duration;l.textContent=t.format(r);var i=l.getBoundingClientRect().width;if(e.config.thumbnail){h=e.duration/u;var y=Math.floor(r/h);s.style.backgroundImage="url("+g[Math.ceil((y+1)/(f*d))-1]+")";var v=y+1-f*d*(Math.ceil((y+1)/(f*d))-1),m=Math.ceil(v/d)-1,x=v-m*d-1;s.style["background-position"]="-"+x*c+"px -"+m*p+"px";var b=n.clientX-o-c/2;b=(b=b>0?b:0)0?w:0)>a-i?a-i:w,l.style.left=w+"px"}l.style.display="block"},y=function(e){i(e)};n.addEventListener("mousemove",y,!1),n.addEventListener("mouseleave",function e(t){n.removeEventListener("mousemove",y,!1),n.removeEventListener("mouseleave",e,!1),i(t),l.style.display="none",s.style.display="none"},!1),i(r)},!1),e.on("timeupdate",function(){!o&&n&&(o=n.getBoundingClientRect().width),a.style.width=100*e.currentTime/e.duration+"%"}),["cacheupdate","ended","timeupdate"].forEach(function(t){e.on(t,function(){var t=e.buffered;if(t&&t.length>0){var n=t.end(t.length-1);i.style.width=n/e.duration*100+"%"}})}),e.once("destroy",function(){n=null,a=null,l=null,s=null,i=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("poster",function(){var e=r.default.util.createDom("xg-poster","",{},"xgplayer-poster"),t=this.root;this.config.poster&&(e.style.backgroundImage="url("+this.config.poster+")",t.appendChild(e)),this.on("play",function(){e.style.display="none"}),this.once("destroy",function(){e=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("playbackRate",function(){var e=this,t=r.default.util,n=0,o=[];if(!e.config.playbackRate)return!1;e.config.playbackRate.sort(function(e,t){return e-t}),e.config.playbackRate.forEach(function(e,t){1!==e&&"1"!==e||(n=t),o.push(e+"x")});var a=e.config.lang&&"zh-cn"===e.config.lang?"倍速":"Speed",i=t.createDom("xg-playback",'

1x

',{},"xgplayer-playback"),l=e.controls,s=t.createDom("xg-tips",a,{},"xgplayer-tips");i.appendChild(s),l.appendChild(i),["touchstart","click"].forEach(function(t){i.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation();var r=t.target||t.srcElement;(r&&"p"===r.tagName.toLocaleLowerCase()||"span"===r.tagName.toLocaleLowerCase())&&(n=n+1===o.length?0:n+1,i.querySelector("p").innerHTML=""+o[n]+"",e.video.playbackRate=1*o[n].replace(/x$/g,""))},!1)}),i.addEventListener("mouseenter",function(t){t.preventDefault(),t.stopPropagation(),s.style.left="50%";var n=s.getBoundingClientRect(),r=e.root.getBoundingClientRect();n.right>r.right&&(s.style.left=-n.right+r.right+16+"px")}),e.once("destroy",function(){i=null})})},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("play",function(){var e=this,t=e.controls,n=r.default.util,a=e.config.iconScale||.0320625,i="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",l="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",s=n.createDom("xg-play",'\n \n '),u=e.config.lang&&"zh-cn"===e.config.lang?"播放":"Play",c=e.config.lang&&"zh-cn"===e.config.lang?"暂停":"Pause",p=n.createDom("xg-tips",u,{},"xgplayer-tips"),f=s.querySelector("path");s.appendChild(p);var d=new o.default({progress:function(e,t){f.setAttribute("d",d.toSVGString(e))},from:l,to:i});s.className="xgplayer-play",t.appendChild(s),["click","touchstart"].forEach(function(t){s.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.ended||(e.paused?e.play():e.pause())},!1)}),e.on("play",function(){p.textContent=c,d.to!==l&&d.reset(l,i)}),e.on("pause",function(){p.textContent=u,d.to!==i&&d.reset(i,l)}),e.once("destroy",function(){s=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("pc",function(){var e=this,t=r.default.util,n=e.controls,o=e.root,a=0,i=void 0,l="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",s="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",u=t.createDom("xg-start",'\n \n \n ',{},"xgplayer-start"),c=t.createDom("xg-enter",'',{},"xgplayer-enter"),p=c.querySelector(".xgplayer-enter-logo");o.appendChild(u),o.appendChild(c);var f=u.querySelector("path"),d=new Image;d.onload=function(){c.querySelector(".xgplayer-enter-tips").style.display="block"},e.config.enterLogo?(d.src=e.config.enterLogo,p.style.backgroundImage='url("'+e.config.enterLogo+'")'):d.src=t.getBgImage(p),["click","touchstart"].forEach(function(n){u.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.config.url&&(t.hasClass(o,"xgplayer-nostart")?(t.removeClass(o,"xgplayer-nostart"),t.addClass(o,"xgplayer-is-enter"),o.querySelector("video")||e.start(),e.on("canplay",function(){t.removeClass(o,"xgplayer-is-enter")}),e.once("playing",function(){t.removeClass(o,"xgplayer-is-enter")}),e.play(),setTimeout(function(){e.play()},10)):e.paused&&(t.removeClass(o,"xgplayer-nostart xgplayer-isloading"),setTimeout(function(){e.play()},10)))})}),u.addEventListener("animationend",function(e){e.preventDefault(),t.removeClass(u,"xgplayer-start-interact"),u.style.display="none"}),e.on("play",function(){f.setAttribute("d",l),u.style.display="inline-block",t.addClass(u,"xgplayer-start-interact")}),e.on("pause",function(){f.setAttribute("d",s),u.style.display="inline-block",t.addClass(u,"xgplayer-start-interact")}),e.video.addEventListener("click",function(n){n.preventDefault(),n.stopPropagation(),document.activeElement===e.video?(a++,i&&clearTimeout(i),1===a?i=setTimeout(function(){if(t.hasClass(e.root,"xgplayer-nostart"))return!1;e.ended||(e.paused?e.play():e.pause()),a=0},200):a=0):e.video.focus()},!1),e.video.addEventListener("dblclick",function(t){if(t.preventDefault(),t.stopPropagation(),document.activeElement===e.video){var r=n.querySelector(".xgplayer-fullscreen");if(r){var o=void 0;document.createEvent?(o=document.createEvent("Event")).initEvent("click",!0,!0):o=new Event("click"),r.dispatchEvent(o)}}else e.video.focus()},!1),o.addEventListener("mouseenter",function(t){e.emit("focus",e)},!1),o.addEventListener("mouseleave",function(t){e.emit("blur",e)},!1),n.addEventListener("mouseenter",function(t){e.userTimer&&clearTimeout(e.userTimer)},!1),n.addEventListener("mouseleave",function(t){e.emit("focus",e)},!1)})},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("mobile",function(){var e=this,t=r.default.util,n=e.root;e.config.autoplay=!1;var a=function(e){var t=r.default.util;return e.some(function(e){return"Function"===t.typeOf(e)?e.call(navigator.userAgent):"RegExp"===t.typeOf(e)?e.test(navigator.userAgent):"String"===t.typeOf(e)&&navigator.userAgent.indexOf(e)>-1})}(e.config.whitelist);e.mobilePass=a;var i="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",l="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",s=t.createDom("xg-start",'\n \n \n ',{},"xgplayer-start"),u=t.createDom("xg-enter",'',{},"xgplayer-enter"),c=u.querySelector(".xgplayer-enter-logo");n.appendChild(s),n.appendChild(u);var p=s.querySelector("path"),f=new Image,d=new o.default({from:l,to:i,progress:function(e,t){p.setAttribute("d",d.toSVGString(e))}});u.querySelector(".xgplayer-enter-tips").style.display="block",e.start(),a?(e.config.enterLogo?(f.src=e.config.enterLogo,c.style.backgroundImage='url("'+e.config.enterLogo+'")'):f.src=t.getBgImage(c),e.video.addEventListener("touchstart",function(t){t.preventDefault(),e.emit("focus")},!1),s.addEventListener("touchend",function(r){r.preventDefault(),t.hasClass(n,"xgplayer-nostart")?(t.removeClass(n,"xgplayer-nostart"),t.addClass(n,"xgplayer-is-enter"),e.on("canplay",function(){t.removeClass(n,"xgplayer-is-enter")}),e.once("playing",function(){t.removeClass(n,"xgplayer-is-enter")}),e.play()):e.paused?e.play():e.pause()}),e.on("play",function(){d.reset(l,i)}),e.on("pause",function(){d.reset(i,l)})):(t.addClass(n,"xgplayer-mobile-npassed"),e.once("ready",function(){e.video.controls=e.config.controls,e.video.controlsList=e.config.controlsList.join(" "),e.config.poster&&(e.video.poster=e.config.poster)})),e.config.debug&&function(e){var t={};Object.assign(t,{host:"127.0.0.1",port:9090},e);var n=document.createElement("script"),r=document.createElement("h4");r.style.cssText="position:fixed;bottom:0;padding:10px;width:100%;background-color:#fff;text-align:center",r.textContent="weinre --boundHost "+t.host+" --httpPort "+t.port+"\r\n 启动服务后,刷新页面",n.anonymous=!0,n.async=!0,n.src="http://"+t.host+":"+t.port+"/target/target-script-min.js#anonymous",n.onload=function(){r.parentNode.removeChild(r)},document.body.appendChild(n),document.body.appendChild(r)}(e.config.debug)})},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;ni.length){for(var c=function(e){i[e]={id:e,queue:[],step:t.channels[e].step,surplus:t.channels[e].surplus},t.channels[e].queue.forEach(function(t){return i[e].queue.push(t)})},p=0;pn.length)return{result:!1,message:"exceed channels.length, occupy="+o+",channelsSize="+n.length};for(var a=!0,i=void 0,l=-1,s=0,u=n.length;s-1&&(r.queue.splice(i,1),0===i&&(r.step=9999,r.surplus=0))}}},{key:"update",value:function(){var e=this.channels,t=this.width;e.forEach(function(e){var n=e.queue[0];n?e.surplus=t-n.left-n.width:(e.step=9999,e.surplus=0)})}},{key:"reset",value:function(){var e=this.player.root,t=this;setTimeout(function(){var n=e.querySelector(".xgplayer-bullet"),r=n.getBoundingClientRect();t.width=r.width,t.height=r.height,t.container=n;for(var o=/mobile/gi.test(navigator.userAgent)?10:12,a=Math.floor(t.height/o),i=[],l=0;l0?e.map(function(e){return{id:e.danmaku_id,txt:e.text.slice(0,40),duration:1*e.duration,color:e.text_color.replace("0x","#"),scale:1*e.text_scale,start:1*e.offset_time}}):[]}},n),t.on("dataIncoming",this.dataHandle.bind(this)),t.on("seeked",this.seekHandle.bind(this)),t.on("bullet_remove",this.updateQueue.bind(this)),t.on("ended",this.stop.bind(this)),t.on("pause",this.pause.bind(this)),t.on("play",this.play.bind(this))}return r(e,[{key:"updateQueue",value:function(e){var t=this;t.queue.some(function(n,r){if(n.id===e.bullet.id)return t.queue.splice(r,1),!0})}},{key:"init",value:function(){var e=this;if(e.data)return e.player.paused?void(e.status="paused"):e.player.ended?void(e.status="ended"):(e.readData(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3),void e.player.emit("dataIncoming"));fetch(e.options.url,{method:e.options.method,headers:{Accept:"application/json"}}).then(function(t){t.ok&&t.json().then(function(t){var n=e.options.dataMap.call(null,t.data);if(n.length){e.data=n;var r=document.createElement("span");r.style.padding=e.options.padding+"||'0px'",r.style.position="absolute",r.style.left="-99999px",document.body.appendChild(r);var o=void 0;if(e.data.forEach(function(e){r.textContent=e.txt,r.style.fontSize=20*e.scale+"px",o=r.getBoundingClientRect(),e.width=o.width,e.height=o.height}),e.data.sort(function(e,t){return e.start-t.start}),document.body.removeChild(r),e.player.paused)return void(e.status="paused");if(e.player.ended)return void(e.status="ended");e.readData(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3),e.player.emit("dataIncoming")}})}).catch(function(e){console.log("Fetch错误:"+e)})}},{key:"start",value:function(){this.status="playing",this.channel.reset(),this.init()}},{key:"stop",value:function(){this.status="closed",clearTimeout(this.retryTimer),(0,a.default)("cancel")(this.timer),this.queue.length=0,this.container.innerHTML=""}},{key:"play",value:function(){var e=this,t=o.default.util;"idle"===e.status||"ended"===e.status?t.hasClass(e.container,"xgplayer-has-bullet")&&e.start():"paused"===e.status&&t.hasClass(e.container,"xgplayer-has-bullet")&&(e.status="playing",e.dataHandle(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3))}},{key:"pause",value:function(){"playing"===this.status?(this.status="paused",clearTimeout(this.retryTimer),(0,a.default)("cancel")(this.timer)):"ended"===this.status&&this.stop()}},{key:"dataHandle",value:function(){var e=(0,a.default)("cancel");if(e(this.timer),this.queue.length){this.queue.forEach(function(e){"waiting"!==e.status&&"start"!==e.status||(e.status="start",e.move())});var t=(0,a.default)("request");this.timer=t(this.dataHandle.bind(this))}else e(this.timer)}},{key:"readData",value:function(){var e=this,t=this.player,n=this.formatTime(t.currentTime),r=void 0,o=e.interval,a=e.channel,i=e.container,l=e.data.filter(function(e){return e.start<=n&&n<=e.start+o});l.length>0&&l.forEach(function(n){r=new c(t,i,n),a.addBullet(r).result&&(e.queue.push(r),r.reset(),r.attach())})}},{key:"seekHandle",value:function(){o.default.util;this.stop(),this.player.paused?this.status="idle":(this.status="playing",this.channel.resetWithCb(),this.init())}},{key:"formatTime",value:function(e){var t=Math.floor(e);return 1e3*t+(e-t)}}]),e}(),f=function(){function e(t,n){s(this,e);var r=this;this.player=t,this.el_=this.createEl(),this.onceFlag=!1;["click","touchstart"].forEach(function(e){r.el_.addEventListener(e,function(e){e.preventDefault(),e.stopPropagation(),r.onClick()},!1)}),this.main=new p(t,n),"on"===n.switch&&this.player.once("play",function(){r.onChange(!0)})}return r(e,[{key:"createEl",value:function(){return o.default.util.createDom("xg-bullet-btn",'',{},"xgplayer-bullet-btn "+("on"===this.player.config.bullet.switch?"xgplayer-bullet-btn-active":""))}},{key:"onClick",value:function(){var e=this,t=o.default.util;t.toggleClass(e.el_,"xgplayer-bullet-btn-active");var n=!!t.hasClass(e.el_,"xgplayer-bullet-btn-active");function r(){e.onceFlag=!1,e.main.channel.resetWithCb(e.onChange.bind(e))}n?e.player.paused||e.player.ended?this.onceFlag||(this.onceFlag=!0,this.player.once("play",r)):r():(this.player.off("play",r),this.onChange(n))}},{key:"onChange",value:function(e){var t=o.default.util,n=this.player.root.querySelector(".xgplayer-bullet");e?(t.addClass(n,"xgplayer-has-bullet"),this.main.start()):(t.removeClass(n,"xgplayer-has-bullet"),this.main.stop())}}]),e}();o.default.install("makeBullet",function(){var e=this,t=o.default.util;if(e.config.bullet){var n=t.createDom("xg-bullet","",{},"xgplayer-bullet");e.root.appendChild(n);var r=new f(e,e.config.bullet);["touchstart","click"].forEach(function(t){n.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.paused?e.play():e.pause()},!1)}),e.controls.appendChild(r.el_)}})},function(e,t,n){"use strict";var r,o,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}; +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.xgplayer=t():e.xgplayer=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:this.config.url,n=this.root,r=this;"String"===a.default.typeOf(t)?this.video.src=t:t.forEach(function(t){e.video.appendChild(a.default.createDom("source","",{src:""+t.src,type:""+(t.type||"")}))}),n.insertBefore(this.video,n.firstChild),r.userTimer=setTimeout(function(){r.emit("blur")},r.config.inactive),setTimeout(function(){e.emit("complete")},1)}},{key:"reload",value:function(){this.video.load(),this.once("loadeddata",function(){this.play()})}},{key:"destroy",value:function(){var e=this,t=this.root.parentNode;this.paused?(this.emit("destroy"),t.removeChild(this.root),t.appendChild(this.rootBackup)):(this.pause(),this.once("pause",function(){e.emit("destroy"),t.removeChild(e.root),t.appendChild(e.rootBackup)})),setTimeout(function(){for(var e in this)"config"!==e&&delete this[e]},200)}},{key:"replay",value:function(){var e=this._replay;a.default.removeClass(this.root,"xgplayer-ended"),e&&e instanceof Function?e():(this.currentTime=0,this.play())}},{key:"onFocus",value:function(){var e=this;a.default.removeClass(this.root,"xgplayer-inactive"),e.userTimer&&clearTimeout(e.userTimer),e.userTimer=setTimeout(function(){e.emit("blur")},e.config.inactive)}},{key:"onBlur",value:function(){this.paused||this.ended||a.default.addClass(this.root,"xgplayer-inactive")}},{key:"onPlay",value:function(){a.default.addClass(this.root,"xgplayer-playing"),a.default.removeClass(this.root,"xgplayer-pause")}},{key:"onPause",value:function(){a.default.addClass(this.root,"xgplayer-pause"),this.userTimer&&clearTimeout(this.userTimer),this.emit("focus")}},{key:"onEnded",value:function(){a.default.addClass(this.root,"xgplayer-ended"),a.default.removeClass(this.root,"xgplayer-playing")}},{key:"onSeeking",value:function(){}},{key:"onSeeked",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),a.default.removeClass(this.root,"xgplayer-isloading")}},{key:"onWaiting",value:function(){var e=this;e.waitTimer&&clearTimeout(e.waitTimer),e.waitTimer=setTimeout(function(){a.default.addClass(e.root,"xgplayer-isloading")},500)}},{key:"onPlaying",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),a.default.removeClass(this.root,"xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay"),a.default.addClass(this.root,"xgplayer-playing")}}],[{key:"install",value:function(e,n){t.plugins||(t.plugins={}),t.plugins[e]=n}}]),t}();p.util=a.default,p.sniffer=i.default,p.Errors=l.default,t.default=p,e.exports=t.default},function(e,t,n){"use strict";var r=n(17)();e.exports=function(e){return e!==r&&null!==e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.from=t.from,this.to=t.to,this.easing=t.easing||function(e){return e*e},this.duration=t.duration||150,this.curPath="",this.progress=t.progress,this.state=0}return r(e,[{key:"animate",value:function(){var e=this,t=new Date,n=e.duration,r=null,o=e.path2shapes(e.from),a=e.path2shapes(e.to),i=e._preprocessing(o,a);e.state=1;!function o(){var l=new Date-t;if(l>=n||2===e.state)return r=a,e.progress(r,1),window.cancelAnimationFrame(e.tickId),void(e.state=0);var s=e.easing(l/n);r=e._lerp(i[0],i[1],s),e.progress(r,s),e.tickId=window.requestAnimationFrame(o)}()}},{key:"toSVGString",value:function(e){return e.map(function(e){return e.forEach(function(e,t){t?e.splice(0,2,"C"):(e.splice(2,0,"C"),e.unshift("M"))}),e.map(function(e){return e.join(" ")}).join("")}).join("")}},{key:"start",value:function(){self.animate()}},{key:"stop",value:function(){0!==this.state&&(this.state=2),window.cancelAnimationFrame(self.tickId),this.state=0}},{key:"reverse",value:function(){0!==this.state&&this.stop();var e=this.from;this.from=this.to,this.to=e,this.animate()}},{key:"reset",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.from;0!==this.state&&this.stop(),this.from=t,this.to=e,this.animate()}}]),e}();for(var i in o.default)o.default[i]instanceof Function&&!a.prototype[i]&&(a.prototype[i]=o.default[i]);t.default=a,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={createDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=document.createElement(e);return o.className=r,o.innerHTML=t,Object.keys(n).forEach(function(t){var r=t,a=n[t];"video"===e||"audio"===e?a&&o.setAttribute(r,a):o.setAttribute(r,a)}),o},hasClass:function(e,t){return e.classList?Array.prototype.some.call(e.classList,function(e){return e===t}):!!e.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))},addClass:function(e,t){e.classList?t.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach(function(t){t&&e.classList.add(t)}):r.hasClass(e,t)||(e.className+=" "+t)},removeClass:function(e,t){e.classList?t.split(/\s+/g).forEach(function(t){e.classList.remove(t)}):r.hasClass(e,t)&&t.split(/\s+/g).forEach(function(t){var n=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className=e.className.replace(n," ")})},toggleClass:function(e,t){t.split(/\s+/g).forEach(function(t){r.hasClass(e,t)?r.removeClass(e,t):r.addClass(e,t)})},findDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=arguments[1];return e.querySelector(t)},padStart:function(e,t,n){for(var r=String(n),o=t>>0,a=Math.ceil(o/r.length),i=[],l=String(e);a--;)i.push(r);return i.join("").substring(0,o-l.length)+l},format:function(e){if(window.isNaN(e))return"";var t=r.padStart(Math.floor(e/3600),2,0),n=r.padStart(Math.floor((e-3600*t)/60),2,0),o=r.padStart(Math.floor(e-3600*t-60*n),2,0);return("00"===t?[n,o]:[t,n,o]).join(":")},event:function(e){if(e.touches){var t=e.touches[0]||e.changedTouches[0];e.clientX=t.clientX||0,e.clientY=t.clientY||0,e.offsetX=t.pageX-t.target.offsetLeft,e.offsetY=t.pageY-t.target.offsetTop}e._target=e.target||e.srcElement},typeOf:function(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]},deepCopy:function(e,t){if("Object"===r.typeOf(t)&&"Object"===r.typeOf(e))return Object.keys(t).forEach(function(n){"Object"!==r.typeOf(t[n])||t[n]instanceof Node?e[n]=t[n]:e[n]?r.deepCopy(e[n],t[n]):e[n]=t[n]}),e},getBgImage:function(e){var t=document.createElement("a"),n=(e.currentStyle||window.getComputedStyle(e,null)).backgroundImage;return t.href=n.replace(/url\("|"\)/g,""),t.href},copyDom:function(e){if(e&&1===e.nodeType){var t=document.createElement(e.tagName);return Array.prototype.forEach.call(e.attributes,function(e){t.setAttribute(e.name,e.value)}),t}return""}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);var o={network:{code:1,msg:"视频下载错误",remark:"只要视频下载错误就使用此类型,无论是video本身的超时还是xhr的分段请求超时或者资源不存在"},mse:{code:2,msg:"流追加错误",remark:"追加流的时候如果类型不对、无法被正确解码则会触发此类错误"},parse:{code:3,msg:"解析错误",remark:"mp4、hls、flv我们都是使用js进行格式解析,如果解析失败则会触发此类错误"},format:{code:4,msg:"格式错误",remark:"如果浏览器不支持的格式导致播放错误"},decoder:{code:5,msg:"解码错误",remark:"浏览器解码异常会抛出此类型错误"},runtime:{code:6,msg:"语法错误",remark:"播放器语法错误"},timeout:{code:7,msg:"播放超时",remark:"播放过程中无法正常请求下一个分段导致播放中断"},other:{code:8,msg:"其他错误",remark:"不可知的错误或被忽略的错误类型"}};t.default=function e(t,n,a,i,l,s,u,c){var p=arguments.length>8&&void 0!==arguments[8]?arguments[8]:{line:"",handle:"",msg:"",version:""};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var f={};return f.playerVersion=r.version,f.errorType=t,f.domain=document.domain,f.duration=a,f.currentTime=n,f.networkState=i,f.readyState=l,f.currentSrc=u,f.src=s,f.ended=c,f.errd=p,f.ex=(o[t]||{}).msg,f},e.exports=t.default},function(e){e.exports={name:"xgplayer",version:"1.0.7",description:"video player",main:"./dist/index.js",scripts:{prepare:"npm run build",build:"webpack --progress --display-chunks -p",watch:"webpack --progress --display-chunks -p --watch"},keywords:["video","player"],babel:{presets:["es2015"],plugins:["add-module-exports","babel-plugin-bulk-import"]},repository:{type:"git",url:"git+https://github.com/bytedance/xgplayer.git"},author:"yinguohui@bytedance.com",license:"MIT",dependencies:{"babel-plugin-add-module-exports":"^0.2.1",deepmerge:"^1.5.0","event-emitter":"^0.3.5",pasition:"^1.0.1","request-frame":"^1.5.3"},browserslist:["> 5%","IE 9","iOS 7","Firefox > 20"],devDependencies:{"babel-loader":"^7.1.4","babel-plugin-bulk-import":"^1.0.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","core-js":"^2.5.4","css-loader":"^0.28.11","json-loader":"^0.5.7","node-sass":"^4.8.3","postcss-cssnext":"^3.1.0","postcss-loader":"^2.1.5","sass-loader":"^6.0.7","style-loader":"^0.20.3",sugarss:"^1.0.1",webpack:"^4.8.1","webpack-cli":"^2.1.3",zlib:"^1.0.5"}}},function(e,t,n){e.exports=n(7)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=w(n(0)),o=w(n(26)),a=w(n(29)),i=w(n(30)),l=w(n(31)),s=w(n(32)),u=w(n(33)),c=w(n(34)),p=w(n(35)),f=w(n(36)),d=w(n(37)),h=w(n(38)),g=w(n(41)),y=w(n(42)),v=w(n(43)),m=w(n(44)),x=w(n(45)),b=w(n(46));function w(e){return e&&e.__esModule?e:{default:e}}n(47);var k={};function E(e,t,n){var r=e;t.map(function(e,o){r[e]=o==t.length-1?n:r[e]||{},r=r[e]})}E(k,["control","definition"],b.default),E(k,["control","error"],x.default),E(k,["control","flex"],m.default),E(k,["control","fullscreen"],v.default),E(k,["control","i18n"],y.default),E(k,["control","loading"],g.default),E(k,["control","makeBullet"],h.default),E(k,["control","mobile"],d.default),E(k,["control","pc"],f.default),E(k,["control","play"],p.default),E(k,["control","playbackRate"],c.default),E(k,["control","poster"],u.default),E(k,["control","progress"],s.default),E(k,["control","replay"],l.default),E(k,["control","textTrack"],i.default),E(k,["control","time"],a.default),E(k,["control","volume"],o.default),t.default=r.default,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n-1||navigator.userAgent.indexOf("Firefox")>-1)&&(t.textTrack.some(function(e){if(e.src&&e.label&&e.default)return l+='",!0}),r.crossorigin="anonymous"),t.textTrackStyle){var s=document.createElement("style");document.head.appendChild(s);var u="";for(var c in t.textTrackStyle)u+=c+": "+t.textTrackStyle[c]+";";var p=t.id?"#"+t.id:t.el.id?"#"+t.el.id:"."+t.el.className;s.sheet.insertRule?s.sheet.insertRule(p+" video::cue { "+u+" }",0):s.sheet.addRule&&s.sheet.addRule(p+" video::cue",u)}this.video=a.default.createDom(r.mediaType,l,r,""),this.ev=["play","playing","pause","ended","error","seeking","seeked","timeupdate","waiting","canplay","canplaythrough","durationchange","volumechange","loadeddata"].map(function(e){return function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},e,"on"+e.charAt(0).toUpperCase()+e.slice(1))}),(0,o.default)(this),this.ev.forEach(function(e){var t=n,r=Object.keys(e)[0];t.video.addEventListener(r,function(){"play"===r&&(t.hasStart=!0),"error"===r?t.video.error&&t.emit(r,new i.default("other",t.currentTime,t.duration,t.networkState,t.readyState,t.currentSrc,t.src,t.ended,{line:41,msg:t.error,handle:"Constructor"})):t.emit(r,t)},!1)})}return r(e,[{key:"play",value:function(){this.video.play()}},{key:"pause",value:function(){this.video.pause()}},{key:"canPlayType",value:function(){this.video.canPlayType()}},{key:"getBufferedRange",value:function(){var e=[0,0],t=this.video,n=t.buffered,r=t.currentTime;if(n)for(var o=0,a=n.length;o-1}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={get device(){var e=r.os;return e.isPc?"pc":e.isTablet?"tablet":"mobile"},get browser(){var e=navigator.userAgent.toLowerCase(),t={ie:/rv:([\d.]+)\) like gecko/,firfox:/firefox\/([\d.]+)/,chrome:/chrome\/([\d.]+)/,opera:/opera.([\d.]+)/,safari:/version\/([\d.]+).*safari/};return[].concat(Object.keys(t).filter(function(n){return t[n].test(e)}))[0]},get os(){var e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),n=/(?:SymbianOS)/.test(e)||t,r=/(?:Android)/.test(e),o=/(?:Firefox)/.test(e),a=/(?:iPad|PlayBook)/.test(e)||r&&!/(?:Mobile)/.test(e)||o&&/(?:Tablet)/.test(e),i=/(?:iPhone)/.test(e)&&!a;return{isTablet:a,isPhone:i,isAndroid:r,isPc:!i&&!r&&!n,isSymbian:n,isWindowsPhone:t,isFireFox:o}}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("volume",function(){var e=this,t=r.default.util,n=e.config.volume,a={muted:"M920.4 439.808l-108.544-109.056-72.704 72.704 109.568 108.544-109.056 108.544 72.704 72.704 108.032-109.568 108.544 109.056 72.704-72.704-109.568-108.032 109.056-108.544-72.704-72.704-108.032 109.568z",small:"M795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z",large:"M940.632 837.632l-72.192-72.192c65.114-64.745 105.412-154.386 105.412-253.44s-40.299-188.695-105.396-253.424l-0.016-0.016 72.192-72.192c83.639 83.197 135.401 198.37 135.401 325.632s-51.762 242.434-135.381 325.612l-0.020 0.020zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z"},i=function(e){return 0===e?"muted":e<.5?"small":"large"},l=a[i(n)],s=a[i(n)],u=t.createDom("xg-volume",'\n \n \n \n \n \n \n \n \n \n ',{},"xgplayer-volume"),c=e.controls;c.appendChild(u);var p=void 0,f=u.querySelector(".xgplayer-slider"),d=u.querySelector(".xgplayer-bar"),h=u.querySelector(".xgplayer-drag"),g=u.querySelector(".xgplayer-icon");h.style.height=100*e.config.volume+"%";var y=c.querySelectorAll("path")[1],v=new o.default({progress:function(e,t){var n=v.toSVGString(e);y.setAttribute("d",n),l=n},from:l,to:a.large}),m=null;f.volume=e.config.volume,["touchstart","mousedown"].forEach(function(n){d.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),f.focus(),t.event(n),p=d.getBoundingClientRect().height,n.clientX;var r=n.clientY,o=h.getBoundingClientRect().height,a=!1,i=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),a=!0;var i=o-n.clientY+r,l=i/p;h.style.height=i+"px",e.volume=Math.max(Math.min(l,1),.01)},l=function n(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",i),window.removeEventListener("mouseup",n),window.removeEventListener("touchend",n),m||(m=d.getBoundingClientRect()),!a){var o=m.height-(r.clientY-m.top),l=o/m.height;h.style.height=o+"px",l<=0&&(e.volume>0?h.volume=e.video.volume:l=h.volume),e.volume=Math.max(Math.min(l,1),.01)}f.volume=e.volume,a=!1};return window.addEventListener("mousemove",i),window.addEventListener("touchmove",i),window.addEventListener("mouseup",l),window.addEventListener("touchend",l),!1})}),["touchstart","mousedown"].forEach(function(n){g.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),t.hasClass(f,"xgplayer-none")?(t.removeClass(f,"xgplayer-none"),f.focus()):0===e.volume?e.volume=f.volume:e.volume=0})}),f.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.addClass(f,"xgplayer-none")});var x=null;e.on("volumechange",function(){x&&clearTimeout(x),x=setTimeout(function(){v.reset(a[i(e.volume)],l),l=a[i[e.volume]],p||(p=d.getBoundingClientRect().height||76),h.style.height=e.volume*p+"px"},50)}),e.once("canplay",function(){e.volume=e.config.volume}),e.once("destroy",function(){u=null,h=null})})},function(e,t,n){"use strict";var r,o,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(i,l){"object"===a(t)&&void 0!==e?e.exports=l():void 0===(o="function"==typeof(r=l)?r.call(t,n,t,e):r)||(e.exports=o)}(0,function(){var e=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),t=2*Math.PI,n=function(e,t,n,r,o,a,i){var l=e.x,s=e.y;return{x:r*(l*=t)-o*(s*=n)+a,y:o*l+r*s+i}},r=function(e,t){var n=4/3*Math.tan(t/4),r=Math.cos(e),o=Math.sin(e),a=Math.cos(e+t),i=Math.sin(e+t);return[{x:r-o*n,y:o+r*n},{x:a+i*n,y:i-a*n},{x:a,y:i}]},o=function(e,t,n,r){var o=e*r-t*n<0?-1:1,a=(e*n+t*r)/(Math.sqrt(e*e+t*t)*Math.sqrt(e*e+t*t));return a>1&&(a=1),a<-1&&(a=-1),o*Math.acos(a)},a=function(a){var i=a.px,l=a.py,s=a.cx,u=a.cy,c=a.rx,p=a.ry,f=a.xAxisRotation,d=void 0===f?0:f,h=a.largeArcFlag,g=void 0===h?0:h,y=a.sweepFlag,v=void 0===y?0:y,m=[];if(0===c||0===p)return[];var x=Math.sin(d*t/360),b=Math.cos(d*t/360),w=b*(i-s)/2+x*(l-u)/2,k=-x*(i-s)/2+b*(l-u)/2;if(0===w&&0===k)return[];c=Math.abs(c),p=Math.abs(p);var E=Math.pow(w,2)/Math.pow(c,2)+Math.pow(k,2)/Math.pow(p,2);E>1&&(c*=Math.sqrt(E),p*=Math.sqrt(E));var C=function(e,n,r,a,i,l,s,u,c,p,f,d){var h=Math.pow(i,2),g=Math.pow(l,2),y=Math.pow(f,2),v=Math.pow(d,2),m=h*g-h*v-g*y;m<0&&(m=0),m/=h*v+g*y;var x=(m=Math.sqrt(m)*(s===u?-1:1))*i/l*d,b=m*-l/i*f,w=p*x-c*b+(e+r)/2,k=c*x+p*b+(n+a)/2,E=(f-x)/i,C=(d-b)/l,_=(-f-x)/i,T=(-d-b)/l,M=o(1,0,E,C),S=o(E,C,_,T);return 0===u&&S>0&&(S-=t),1===u&&S<0&&(S+=t),[w,k,M,S]}(i,l,s,u,c,p,g,v,x,b,w,k),_=e(C,4),T=_[0],M=_[1],S=_[2],A=_[3],R=Math.max(Math.ceil(Math.abs(A)/(t/4)),1);A/=R;for(var L=0;Le-1&&(a-=e),r[a]=o}t.push(r)}return t})(e.length).forEach(function(r){var o=0,a=0;r.forEach(function(n){o+=function(e,t){var n=e[0],r=e[2],o=e[4],a=e[6],i=e[1],l=e[3],s=e[5],u=e[7],c=t[0],p=t[2],f=t[4],d=t[6],h=t[1],g=t[3],y=t[5],v=t[7];return Math.sqrt(Math.pow(c-n,2)+Math.pow(h-i,2))+Math.sqrt(Math.pow(p-r,2)+Math.pow(g-l,2))+Math.sqrt(Math.pow(f-o,2)+Math.pow(y-s,2))+Math.sqrt(Math.pow(d-a,2)+Math.pow(v-u,2))}(e[n],t[a++])}),n.push({index:r,distance:o})}),n.sort(function(e,t){return e.distance-t.distance});var r=[];return n[0].index.forEach(function(t){r.push(e[t])}),r}function p(e,t){var n=[];(function(e){for(var t=[],n=0;n2&&(t.push([n].concat(r.splice(0,2))),o="l",n="m"==n?"l":"L");;){if(r.length==i[o])return r.unshift(n),t.push(r);if(r.lengtho-1&&(r-=o)},f._splitCurves=function(e,t){for(var n=0,r=0;n=e.length-1&&(r=0)}},f._upShapes=function(e,t){for(var n=function(t){var n=[];e[e.length-1].forEach(function(e){n.push(e.slice(0))}),e.push(n)},r=0;rr?f._subShapes(o,a,n-r):nr?n=p)return i(c=n,1),a(c),void cancelAnimationFrame(u);var l=s(t/p);c=f._lerp(r[0],r[1],l),i(c,l),u=requestAnimationFrame(e)}()},f})},function(e,t,n){"use strict";!function(){for(var e=0,t=["webkit","moz"],n=0;n"+(e.currentTime||n(0))+""+(e.duration||n(0))+"",{},"xgplayer-time");e.controls.appendChild(o);var a=function(){o.innerHTML=""+n(e.currentTime||0)+""+n(e.duration)};e.on("durationchange",a),e.on("timeupdate",a),e.once("destroy",function(){e.off("durationchange",a),e.off("timeupdate",a),o=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("textTrack",function(){if(-1!==navigator.userAgent.indexOf("Chrome")){var e=this,t=r.default.util,n=(r.default.sniffer,t.createDom("xg-textTrack","",{tabindex:7},"xgplayer-textTrack")),o=e.controls,a=e.config.textTrack;a&&Array.isArray(a)&&a.length>1&&(t.addClass(e.root,"xgplayer-is-textTrack"),e.on("canplay",function(){var t=["
    "];t.push("
  • 关闭
  • "),a.forEach(function(e){t.push("
  • "+e.label+"
  • ")});var r=e.config.lang&&"zh-cn"===e.config.lang?"字幕":"Caption";t.push('

'+r+"

");var i=o.querySelector(".xgplayer-textTrack");i?i.innerHTML=t.join(""):(n.innerHTML=t.join(""),o.appendChild(n))})),["touchstart","click"].forEach(function(r){n.addEventListener(r,function(r){r.preventDefault(),r.stopPropagation();var o=r.target||r.srcElement;if(o&&"li"===o.tagName.toLocaleLowerCase()){Array.prototype.forEach.call(o.parentNode.childNodes,function(e){t.removeClass(e,"textTrack")}),t.addClass(o,"textTrack");var i=e.root.getElementsByTagName("Track");"关闭"===o.innerHTML?i[0].track.mode="hidden":(i[0].track.mode="showing",a.some(function(e){if(e.label===o.innerHTML)return i[0].src=e.src,e.kind&&(i[0].kind=e.kind),i[0].label=e.label,e.srclang&&(i[0].srclang=e.srclang),!0}),e.emit("textTrackChange",o.innerHTML))}else!o||"p"!==o.tagName.toLocaleLowerCase()&&"em"!==o.tagName.toLocaleLowerCase()||(t.addClass(n,"xgplayer-textTrack-active"),n.focus())},!1)}),n.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.removeClass(n,"xgplayer-textTrack-active")}),e.once("destroy",function(){n=null})}})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("replay",function(){var e=this,t=r.default.util,n=t.createDom("xg-replay",'\n \n \n \n 重播\n ',{},"xgplayer-replay"),o=e.root,a=n.querySelector(".xgplayer-replay-svg");o.appendChild(n),e.on("ended",function(){n.querySelector(".xgplayer-replay-txt").textContent=e.lang.REPLAY,e.config.loop||t.addClass(o,"replay")}),a.addEventListener("click",function(n){n.preventDefault(),t.removeClass(o,"replay"),e.replay()}),e.once("destroy",function(){a=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("progress",function(){var e=this,t=r.default.util,n=t.createDom("xg-progress",'',{tabindex:1},"xgplayer-progress"),o=void 0;e.controls.appendChild(n);var a=n.querySelector(".xgplayer-progress-played"),i=n.querySelector(".xgplayer-progress-cache"),l=n.querySelector(".xgplayer-progress-point"),s=n.querySelector(".xgplayer-progress-thumbnail"),u=0,c=0,p=0,f=0,d=0,h=0,g=[];e.config.thumbnail&&(u=e.config.thumbnail.pic_num,c=e.config.thumbnail.width,p=e.config.thumbnail.height,f=e.config.thumbnail.col,d=e.config.thumbnail.row,g=e.config.thumbnail.urls,s.style.width=c+"px",s.style.height=p+"px"),["touchstart","mousedown"].forEach(function(r){n.addEventListener(r,function(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),r._target===l||e.ended)return!1;n.focus(),o=n.getBoundingClientRect().width;var i=a.getBoundingClientRect().left,s=!1,u=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),s=!0;var r=n.clientX-i,l=r/o*e.duration;a.style.width=100*r/o+"%",e.currentTime=Number(l).toFixed(1)},c=function r(l){if(l.preventDefault(),l.stopPropagation(),t.event(l),window.removeEventListener("mousemove",u),window.removeEventListener("touchmove",u),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),n.blur(),!s){var c=l.clientX-i,p=c/o*e.duration;a.style.width=100*c/o+"%",e.currentTime=Number(p).toFixed(1)}s=!1};return window.addEventListener("mousemove",u),window.addEventListener("touchmove",u),window.addEventListener("mouseup",c),window.addEventListener("touchend",c),!1})}),n.addEventListener("mouseenter",function(r){if(e.ended)return!1;var o=n.getBoundingClientRect().left,a=n.getBoundingClientRect().width,i=function(n){var r=(n.clientX-o)/a*e.duration;l.textContent=t.format(r);var i=l.getBoundingClientRect().width;if(e.config.thumbnail){h=e.duration/u;var y=Math.floor(r/h);s.style.backgroundImage="url("+g[Math.ceil((y+1)/(f*d))-1]+")";var v=y+1-f*d*(Math.ceil((y+1)/(f*d))-1),m=Math.ceil(v/d)-1,x=v-m*d-1;s.style["background-position"]="-"+x*c+"px -"+m*p+"px";var b=n.clientX-o-c/2;b=(b=b>0?b:0)0?w:0)>a-i?a-i:w,l.style.left=w+"px"}l.style.display="block"},y=function(e){i(e)};n.addEventListener("mousemove",y,!1),n.addEventListener("mouseleave",function e(t){n.removeEventListener("mousemove",y,!1),n.removeEventListener("mouseleave",e,!1),i(t),l.style.display="none",s.style.display="none"},!1),i(r)},!1),e.on("timeupdate",function(){!o&&n&&(o=n.getBoundingClientRect().width),a.style.width=100*e.currentTime/e.duration+"%"}),["cacheupdate","ended","timeupdate"].forEach(function(t){e.on(t,function(){var t=e.buffered;if(t&&t.length>0){var n=t.end(t.length-1);i.style.width=n/e.duration*100+"%"}})}),e.once("destroy",function(){n=null,a=null,l=null,s=null,i=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("poster",function(){var e=r.default.util.createDom("xg-poster","",{},"xgplayer-poster"),t=this.root;this.config.poster&&(e.style.backgroundImage="url("+this.config.poster+")",t.appendChild(e)),this.on("play",function(){e.style.display="none"}),this.once("destroy",function(){e=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("playbackRate",function(){var e=this,t=r.default.util,n=0,o=[];if(!e.config.playbackRate)return!1;e.config.playbackRate.sort(function(e,t){return e-t}),e.config.playbackRate.forEach(function(e,t){1!==e&&"1"!==e||(n=t),o.push(e+"x")});var a=e.config.lang&&"zh-cn"===e.config.lang?"倍速":"Speed",i=t.createDom("xg-playback",'

1x

',{},"xgplayer-playback"),l=e.controls,s=t.createDom("xg-tips",a,{},"xgplayer-tips");i.appendChild(s),l.appendChild(i),["touchstart","click"].forEach(function(t){i.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation();var r=t.target||t.srcElement;(r&&"p"===r.tagName.toLocaleLowerCase()||"span"===r.tagName.toLocaleLowerCase())&&(n=n+1===o.length?0:n+1,i.querySelector("p").innerHTML=""+o[n]+"",e.video.playbackRate=1*o[n].replace(/x$/g,""))},!1)}),i.addEventListener("mouseenter",function(t){t.preventDefault(),t.stopPropagation(),s.style.left="50%";var n=s.getBoundingClientRect(),r=e.root.getBoundingClientRect();n.right>r.right&&(s.style.left=-n.right+r.right+16+"px")}),e.once("destroy",function(){i=null})})},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("play",function(){var e=this,t=e.controls,n=r.default.util,a=e.config.iconScale||.0320625,i="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",l="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",s=n.createDom("xg-play",'\n \n '),u=e.config.lang&&"zh-cn"===e.config.lang?"播放":"Play",c=e.config.lang&&"zh-cn"===e.config.lang?"暂停":"Pause",p=n.createDom("xg-tips",u,{},"xgplayer-tips"),f=s.querySelector("path");s.appendChild(p);var d=new o.default({progress:function(e,t){f.setAttribute("d",d.toSVGString(e))},from:l,to:i});s.className="xgplayer-play",t.appendChild(s),["click","touchstart"].forEach(function(t){s.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.ended||(e.paused?e.play():e.pause())},!1)}),e.on("play",function(){p.textContent=c,d.to!==l&&d.reset(l,i)}),e.on("pause",function(){p.textContent=u,d.to!==i&&d.reset(i,l)}),e.once("destroy",function(){s=null})})},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}}(n(0));r.default.install("pc",function(){var e=this,t=r.default.util,n=e.controls,o=e.root,a=0,i=void 0,l="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",s="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",u=t.createDom("xg-start",'\n \n \n ',{},"xgplayer-start"),c=t.createDom("xg-enter",'',{},"xgplayer-enter"),p=c.querySelector(".xgplayer-enter-logo");o.appendChild(u),o.appendChild(c);var f=u.querySelector("path"),d=new Image;d.onload=function(){c.querySelector(".xgplayer-enter-tips").style.display="block"},e.config.enterLogo?(d.src=e.config.enterLogo,p.style.backgroundImage='url("'+e.config.enterLogo+'")'):d.src=t.getBgImage(p),["click","touchstart"].forEach(function(n){u.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.config.url&&(t.hasClass(o,"xgplayer-nostart")?(t.removeClass(o,"xgplayer-nostart"),t.addClass(o,"xgplayer-is-enter"),o.querySelector("video")||e.start(),e.on("canplay",function(){t.removeClass(o,"xgplayer-is-enter")}),e.once("playing",function(){t.removeClass(o,"xgplayer-is-enter")}),e.play(),setTimeout(function(){e.play()},10)):e.paused&&(t.removeClass(o,"xgplayer-nostart xgplayer-isloading"),setTimeout(function(){e.play()},10)))})}),u.addEventListener("animationend",function(e){e.preventDefault(),t.removeClass(u,"xgplayer-start-interact"),u.style.display="none"}),e.on("play",function(){f.setAttribute("d",l),u.style.display="inline-block",t.addClass(u,"xgplayer-start-interact")}),e.on("pause",function(){f.setAttribute("d",s),u.style.display="inline-block",t.addClass(u,"xgplayer-start-interact")}),e.video.addEventListener("click",function(n){n.preventDefault(),n.stopPropagation(),document.activeElement===e.video?(a++,i&&clearTimeout(i),1===a?i=setTimeout(function(){if(t.hasClass(e.root,"xgplayer-nostart"))return!1;e.ended||(e.paused?e.play():e.pause()),a=0},200):a=0):e.video.focus()},!1),e.video.addEventListener("dblclick",function(t){if(t.preventDefault(),t.stopPropagation(),document.activeElement===e.video){var r=n.querySelector(".xgplayer-fullscreen");if(r){var o=void 0;document.createEvent?(o=document.createEvent("Event")).initEvent("click",!0,!0):o=new Event("click"),r.dispatchEvent(o)}}else e.video.focus()},!1),o.addEventListener("mouseenter",function(t){e.emit("focus",e)},!1),o.addEventListener("mouseleave",function(t){e.emit("blur",e)},!1),n.addEventListener("mouseenter",function(t){e.userTimer&&clearTimeout(e.userTimer)},!1),n.addEventListener("mouseleave",function(t){e.emit("focus",e)},!1)})},function(e,t,n){"use strict";var r=a(n(0)),o=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}r.default.install("mobile",function(){var e=this,t=r.default.util,n=e.root;e.config.autoplay=!1;var a=function(e){var t=r.default.util;return e.some(function(e){return"Function"===t.typeOf(e)?e.call(navigator.userAgent):"RegExp"===t.typeOf(e)?e.test(navigator.userAgent):"String"===t.typeOf(e)&&navigator.userAgent.indexOf(e)>-1})}(e.config.whitelist);e.mobilePass=a;var i="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",l="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",s=t.createDom("xg-start",'\n \n \n ',{},"xgplayer-start"),u=t.createDom("xg-enter",'',{},"xgplayer-enter"),c=u.querySelector(".xgplayer-enter-logo");n.appendChild(s),n.appendChild(u);var p=s.querySelector("path"),f=new Image,d=new o.default({from:l,to:i,progress:function(e,t){p.setAttribute("d",d.toSVGString(e))}});u.querySelector(".xgplayer-enter-tips").style.display="block",e.start(),a?(e.config.enterLogo?(f.src=e.config.enterLogo,c.style.backgroundImage='url("'+e.config.enterLogo+'")'):f.src=t.getBgImage(c),e.video.addEventListener("touchstart",function(t){t.preventDefault(),e.emit("focus")},!1),s.addEventListener("touchend",function(r){r.preventDefault(),t.hasClass(n,"xgplayer-nostart")?(t.removeClass(n,"xgplayer-nostart"),t.addClass(n,"xgplayer-is-enter"),e.on("canplay",function(){t.removeClass(n,"xgplayer-is-enter")}),e.once("playing",function(){t.removeClass(n,"xgplayer-is-enter")}),e.play()):e.paused?e.play():e.pause()}),e.on("play",function(){d.reset(l,i)}),e.on("pause",function(){d.reset(i,l)})):(t.addClass(n,"xgplayer-mobile-npassed"),e.once("ready",function(){e.video.controls=e.config.controls,e.video.controlsList=e.config.controlsList.join(" "),e.config.poster&&(e.video.poster=e.config.poster)})),e.config.debug&&function(e){var t={};Object.assign(t,{host:"127.0.0.1",port:9090},e);var n=document.createElement("script"),r=document.createElement("h4");r.style.cssText="position:fixed;bottom:0;padding:10px;width:100%;background-color:#fff;text-align:center",r.textContent="weinre --boundHost "+t.host+" --httpPort "+t.port+"\r\n 启动服务后,刷新页面",n.anonymous=!0,n.async=!0,n.src="http://"+t.host+":"+t.port+"/target/target-script-min.js#anonymous",n.onload=function(){r.parentNode.removeChild(r)},document.body.appendChild(n),document.body.appendChild(r)}(e.config.debug)})},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;ni.length){for(var c=function(e){i[e]={id:e,queue:[],step:t.channels[e].step,surplus:t.channels[e].surplus},t.channels[e].queue.forEach(function(t){return i[e].queue.push(t)})},p=0;pn.length)return{result:!1,message:"exceed channels.length, occupy="+o+",channelsSize="+n.length};for(var a=!0,i=void 0,l=-1,s=0,u=n.length;s-1&&(r.queue.splice(i,1),0===i&&(r.step=9999,r.surplus=0))}}},{key:"update",value:function(){var e=this.channels,t=this.width;e.forEach(function(e){var n=e.queue[0];n?e.surplus=t-n.left-n.width:(e.step=9999,e.surplus=0)})}},{key:"reset",value:function(){var e=this.player.root,t=this;setTimeout(function(){var n=e.querySelector(".xgplayer-bullet"),r=n.getBoundingClientRect();t.width=r.width,t.height=r.height,t.container=n;for(var o=/mobile/gi.test(navigator.userAgent)?10:12,a=Math.floor(t.height/o),i=[],l=0;l0?e.map(function(e){return{id:e.danmaku_id,txt:e.text.slice(0,40),duration:1*e.duration,color:e.text_color.replace("0x","#"),scale:1*e.text_scale,start:1*e.offset_time}}):[]}},n),t.on("dataIncoming",this.dataHandle.bind(this)),t.on("seeked",this.seekHandle.bind(this)),t.on("bullet_remove",this.updateQueue.bind(this)),t.on("ended",this.stop.bind(this)),t.on("pause",this.pause.bind(this)),t.on("play",this.play.bind(this))}return r(e,[{key:"updateQueue",value:function(e){var t=this;t.queue.some(function(n,r){if(n.id===e.bullet.id)return t.queue.splice(r,1),!0})}},{key:"init",value:function(){var e=this;if(e.data)return e.player.paused?void(e.status="paused"):e.player.ended?void(e.status="ended"):(e.readData(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3),void e.player.emit("dataIncoming"));fetch(e.options.url,{method:e.options.method,headers:{Accept:"application/json"}}).then(function(t){t.ok&&t.json().then(function(t){var n=e.options.dataMap.call(null,t.data);if(n.length){e.data=n;var r=document.createElement("span");r.style.padding=e.options.padding+"||'0px'",r.style.position="absolute",r.style.left="-99999px",document.body.appendChild(r);var o=void 0;if(e.data.forEach(function(e){r.textContent=e.txt,r.style.fontSize=20*e.scale+"px",o=r.getBoundingClientRect(),e.width=o.width,e.height=o.height}),e.data.sort(function(e,t){return e.start-t.start}),document.body.removeChild(r),e.player.paused)return void(e.status="paused");if(e.player.ended)return void(e.status="ended");e.readData(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3),e.player.emit("dataIncoming")}})}).catch(function(e){console.log("Fetch错误:"+e)})}},{key:"start",value:function(){this.status="playing",this.channel.reset(),this.init()}},{key:"stop",value:function(){this.status="closed",clearTimeout(this.retryTimer),(0,a.default)("cancel")(this.timer),this.queue.length=0,this.container.innerHTML=""}},{key:"play",value:function(){var e=this,t=o.default.util;"idle"===e.status||"ended"===e.status?t.hasClass(e.container,"xgplayer-has-bullet")&&e.start():"paused"===e.status&&t.hasClass(e.container,"xgplayer-has-bullet")&&(e.status="playing",e.dataHandle(),e.retryTimer=setInterval(function(){e.readData(),e.dataHandle()},e.interval-1e3))}},{key:"pause",value:function(){"playing"===this.status?(this.status="paused",clearTimeout(this.retryTimer),(0,a.default)("cancel")(this.timer)):"ended"===this.status&&this.stop()}},{key:"dataHandle",value:function(){var e=(0,a.default)("cancel");if(e(this.timer),this.queue.length){this.queue.forEach(function(e){"waiting"!==e.status&&"start"!==e.status||(e.status="start",e.move())});var t=(0,a.default)("request");this.timer=t(this.dataHandle.bind(this))}else e(this.timer)}},{key:"readData",value:function(){var e=this,t=this.player,n=this.formatTime(t.currentTime),r=void 0,o=e.interval,a=e.channel,i=e.container,l=e.data.filter(function(e){return e.start<=n&&n<=e.start+o});l.length>0&&l.forEach(function(n){r=new c(t,i,n),a.addBullet(r).result&&(e.queue.push(r),r.reset(),r.attach())})}},{key:"seekHandle",value:function(){o.default.util;this.stop(),this.player.paused?this.status="idle":(this.status="playing",this.channel.resetWithCb(),this.init())}},{key:"formatTime",value:function(e){var t=Math.floor(e);return 1e3*t+(e-t)}}]),e}(),f=function(){function e(t,n){s(this,e);var r=this;this.player=t,this.el_=this.createEl(),this.onceFlag=!1;["click","touchstart"].forEach(function(e){r.el_.addEventListener(e,function(e){e.preventDefault(),e.stopPropagation(),r.onClick()},!1)}),this.main=new p(t,n),"on"===n.switch&&this.player.once("play",function(){r.onChange(!0)})}return r(e,[{key:"createEl",value:function(){return o.default.util.createDom("xg-bullet-btn",'',{},"xgplayer-bullet-btn "+("on"===this.player.config.bullet.switch?"xgplayer-bullet-btn-active":""))}},{key:"onClick",value:function(){var e=this,t=o.default.util;t.toggleClass(e.el_,"xgplayer-bullet-btn-active");var n=!!t.hasClass(e.el_,"xgplayer-bullet-btn-active");function r(){e.onceFlag=!1,e.main.channel.resetWithCb(e.onChange.bind(e))}n?e.player.paused||e.player.ended?this.onceFlag||(this.onceFlag=!0,this.player.once("play",r)):r():(this.player.off("play",r),this.onChange(n))}},{key:"onChange",value:function(e){var t=o.default.util,n=this.player.root.querySelector(".xgplayer-bullet");e?(t.addClass(n,"xgplayer-has-bullet"),this.main.start()):(t.removeClass(n,"xgplayer-has-bullet"),this.main.stop())}}]),e}();o.default.install("makeBullet",function(){var e=this,t=o.default.util;if(e.config.bullet){var n=t.createDom("xg-bullet","",{},"xgplayer-bullet");e.root.appendChild(n);var r=new f(e,e.config.bullet);["touchstart","click"].forEach(function(t){n.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.paused?e.play():e.pause()},!1)}),e.controls.appendChild(r.el_)}})},function(e,t,n){"use strict";var r,o,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}; /** * request-frame - requestAnimationFrame & cancelAnimationFrame polyfill for optimal cross-browser development. * @version v1.5.3 diff --git a/packages/xgplayer/src/control/textTrack.js b/packages/xgplayer/src/control/textTrack.js index 79d8ce3ad..c36a10792 100644 --- a/packages/xgplayer/src/control/textTrack.js +++ b/packages/xgplayer/src/control/textTrack.js @@ -1,10 +1,13 @@ import Player from '../player'; let textTrack = function () { + if(navigator.userAgent.indexOf('Chrome') === -1) { + return + } let player = this, util = Player.util, sniffer = Player.sniffer; let ul = util.createDom('xg-textTrack', '', {tabindex: 7}, 'xgplayer-textTrack'), root = player.controls; let list = player.config.textTrack - if (list && list instanceof Array && list.length > 1) { + if (list && Array.isArray(list) && list.length > 1) { util.addClass(player.root, 'xgplayer-is-textTrack'); player.on('canplay', function () { let tmp = ['
    ']; @@ -14,7 +17,6 @@ let textTrack = function () { }); let controlText = player.config.lang && player.config.lang === "zh-cn" ? "字幕" : "Caption" tmp.push(`

${controlText}

`); - let urlInRoot = root.querySelector('.xgplayer-textTrack'); if (urlInRoot) { urlInRoot.innerHTML = tmp.join(''); @@ -40,7 +42,7 @@ let textTrack = function () { trackDoms[0].track.mode = 'hidden' } else { trackDoms[0].track.mode = 'showing' - + list.some(item => { if(item.label === li.innerHTML) { trackDoms[0].src = item.src; diff --git a/packages/xgplayer/src/proxy.js b/packages/xgplayer/src/proxy.js index 4d65c5b44..c434605ae 100755 --- a/packages/xgplayer/src/proxy.js +++ b/packages/xgplayer/src/proxy.js @@ -22,7 +22,7 @@ class Proxy { videoConfig.loop = 'loop' } let textTrackDom = '' - if (options.textTrack && options.textTrack instanceof Array) { + if (options.textTrack && Array.isArray(options.textTrack) && (navigator.userAgent.indexOf('Chrome') > -1 || navigator.userAgent.indexOf('Firefox') > -1)) { options.textTrack.some(track => { if (track.src && track.label && track.default) { textTrackDom += `