From e5565f0671ee59f47c106e65022d5d4d634b67b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=91=AB?= Date: Mon, 8 Oct 2018 14:59:28 +0800 Subject: [PATCH] feat(xgplayer): add controlStyle config --- packages/xgplayer/browser/index.js | 2 +- packages/xgplayer/dist/index.js | 2 +- packages/xgplayer/src/player.js | 49 +++++++++++++++++++++++------- 3 files changed, 40 insertions(+), 13 deletions(-) diff --git a/packages/xgplayer/browser/index.js b/packages/xgplayer/browser/index.js index ab6e1e75f..9d054160f 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 i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.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 i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));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;n=0?c.currentTime-=10:c.currentTime=0):t&&38===t.keyCode?c.volume+.1<=1?c.volume+=.1:c.volume=1:t&&39===t.keyCode?(c.onFocus(),c.currentTime+10<=c.duration?c.currentTime+=10:c.currentTime=c.duration-1):t&&40===t.keyCode?c.volume-.1>=0?c.volume-=.1:c.volume=0:t&&32===t.keyCode&&(c.paused?c.play():c.pause())}),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.default),r(t,[{key:"start",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.url,n=this.root,r=this;"String"===o.default.typeOf(t)?this.video.src=t:t.forEach(function(t){e.video.appendChild(o.default.createDom("source","",{src:""+t.src,type:""+(t.type||"")}))}),r.config.autoplay&&this.video.addEventListener("canplay",function e(){r.video.play().then(function(){}),r.video.removeEventListener("canplay",e)}),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;for(var n in this._interval)clearInterval(this._interval[n]),this._interval[n]=null;if(this.ev.forEach(function(t){var n=Object.keys(t)[0],r=e[t[n]];r&&e.off(n,r)}),["focus","blur"].forEach(function(t){e.off(t,e["on"+t.charAt(0).toUpperCase()+t.slice(1)])}),this.paused)for(var r in this.emit("destroy"),this.root.id=this.root.id+"_del",t.insertBefore(this.rootBackup,this.root),t.removeChild(this.root),this)"config"!==r&&delete this[r];else this.pause(),this.once("pause",function(){for(var n in e.emit("destroy"),e.root.id=e.root.id+"_del",t.insertBefore(e.rootBackup,e.root),t.removeChild(e.root),e)"config"!==n&&delete e[n]})}},{key:"replay",value:function(){var e=this._replay;o.default.removeClass(this.root,"xgplayer-ended"),e&&e instanceof Function?e():(this.currentTime=0,this.play())}},{key:"onFocus",value:function(){var e=this;o.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||o.default.addClass(this.root,"xgplayer-inactive")}},{key:"onPlay",value:function(){o.default.addClass(this.root,"xgplayer-playing"),o.default.removeClass(this.root,"xgplayer-pause")}},{key:"onPause",value:function(){o.default.addClass(this.root,"xgplayer-pause"),this.userTimer&&clearTimeout(this.userTimer),this.emit("focus")}},{key:"onEnded",value:function(){o.default.addClass(this.root,"xgplayer-ended"),o.default.removeClass(this.root,"xgplayer-playing")}},{key:"onSeeking",value:function(){}},{key:"onSeeked",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),o.default.removeClass(this.root,"xgplayer-isloading")}},{key:"onWaiting",value:function(){var e=this;e.waitTimer&&clearTimeout(e.waitTimer),e.waitTimer=setTimeout(function(){o.default.addClass(e.root,"xgplayer-isloading")},500)}},{key:"onPlaying",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),o.default.removeClass(this.root,"xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay"),o.default.addClass(this.root,"xgplayer-playing")}}],[{key:"install",value:function(e,n){t.plugins||(t.plugins={}),t.plugins[e]=n}}]),t}();d.util=o.default,d.sniffer=s.default,d.Errors=l.default,t.default=d,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,i=e.path2shapes(e.from),o=e.path2shapes(e.to),a=e._preprocessing(i,o);e.state=1;!function i(){var s=new Date-t;if(s>=n||2===e.state)return r=o,e.progress(r,1),window.cancelAnimationFrame(e.tickId),void(e.state=0);var l=e.easing(s/n);r=e._lerp(a[0],a[1],l),e.progress(r,l),e.tickId=window.requestAnimationFrame(i)}()}},{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(){this.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 a in i.default)i.default[a]instanceof Function&&!o.prototype[a]&&(o.prototype[a]=i.default[a]);t.default=o,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]:"",i=document.createElement(e);return i.className=r,i.innerHTML=t,Object.keys(n).forEach(function(t){var r=t,o=n[t];"video"===e||"audio"===e?o&&i.setAttribute(r,o):i.setAttribute(r,o)}),i},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),i=t>>0,o=Math.ceil(i/r.length),a=[],s=String(e);o--;)a.push(r);return a.join("").substring(0,i-s.length)+s},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),i=r.padStart(Math.floor(e-3600*t-60*n),2,0);return("00"===t?[n,i]:[t,n,i]).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?"Array"===r.typeOf(t[n])?e[n]="Array"===r.typeOf(e[n])?e[n].concat(t[n]):t[n]: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""},setInterval:function(e,t,n,r){e._interval[t]||(e._interval[t]=setInterval(n.bind(e),r))},clearInterval:function(e,t){clearInterval(e._interval[t]),e._interval[t]=null}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);var i={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,o,a,s,l,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 d={};return d.playerVersion=r.version,d.errorType=t,d.domain=document.domain,d.duration=o,d.currentTime=n,d.networkState=a,d.readyState=s,d.currentSrc=u,d.src=l,d.ended=c,d.errd=p,d.ex=(i[t]||{}).msg,d},e.exports=t.default},function(e){e.exports={name:"xgplayer",version:"1.1.3-alpha-1",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",test:"karma start --single-run","test:watch":"karma start"},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",draggabilly:"^2.2.0","event-emitter":"^0.3.5",pasition:"^1.0.1","request-frame":"^1.5.3"},browserslist:["> 5%","IE 9","iOS 7","Firefox > 20"],devDependencies:{autoprefixer:"^9.1.5","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",chai:"^4.1.2","core-js":"^2.5.4","css-loader":"^0.28.11","json-loader":"^0.5.7",karma:"^3.0.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-spec-reporter":"0.0.32","karma-webpack":"^4.0.0-rc.1",mocha:"^5.2.0","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.11.0","webpack-cli":"^3.0.2",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=k(n(0)),i=k(n(27)),o=k(n(30)),a=k(n(31)),s=k(n(32)),l=k(n(33)),u=k(n(34)),c=k(n(35)),p=k(n(36)),d=k(n(37)),f=k(n(43)),h=k(n(44)),g=k(n(45)),y=k(n(48)),v=k(n(49)),m=k(n(50)),x=k(n(51)),b=k(n(52)),w=k(n(53));function k(e){return e&&e.__esModule?e:{default:e}}n(54);var E={};function C(e,t,n){var r=e;t.map(function(e,i){r[e]=i==t.length-1?n:r[e]||{},r=r[e]})}C(E,["control","definition"],w.default),C(E,["control","error"],b.default),C(E,["control","flex"],x.default),C(E,["control","fullscreen"],m.default),C(E,["control","i18n"],v.default),C(E,["control","loading"],y.default),C(E,["control","makeBullet"],g.default),C(E,["control","mobile"],h.default),C(E,["control","pc"],f.default),C(E,["control","pip"],d.default),C(E,["control","play"],p.default),C(E,["control","playbackRate"],c.default),C(E,["control","poster"],u.default),C(E,["control","progress"],l.default),C(E,["control","replay"],s.default),C(E,["control","textTrack"],a.default),C(E,["control","time"],o.default),C(E,["control","volume"],i.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 r+='",!0}),this.videoConfig.crossorigin="anonymous"),t.textTrackStyle){var s=document.createElement("style");document.head.appendChild(s);var l="";for(var u in t.textTrackStyle)l+=u+": "+t.textTrackStyle[u]+";";var c=t.id?"#"+t.id:t.el.id?"#"+t.el.id:"."+t.el.className;s.sheet.insertRule?s.sheet.insertRule(c+" video::cue { "+l+" }",0):s.sheet.addRule&&s.sheet.addRule(c+" video::cue",l)}this.video=o.default.createDom(this.videoConfig.mediaType,r,this.videoConfig,""),t.autoplay&&(this.video.autoplay=!0,t.autoplayMuted&&(this.video.muted=!0)),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,i.default)(this),this._interval={};var p="0,0";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 a.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),t.hasOwnProperty("_interval")&&(["ended","error","timeupdate"].indexOf(r)<0?o.default.setInterval(t,"bufferedChange",function(){for(var e=[],t=0,n=this.video.buffered.length;t-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=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{name:"xgplayer",version:1,db:null,ojstore:{name:"xg-m4a",keypath:"vid"}};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.indexedDB=window.indexedDB||window.webkitindexedDB,this.IDBKeyRange=window.IDBKeyRange||window.webkitIDBKeyRange,this.myDB=t}return r(e,[{key:"openDB",value:function(e){var t=this,n=this,r=this.myDB.version||1,i=n.indexedDB.open(n.myDB.name,r);i.onerror=function(e){},i.onsuccess=function(r){t.myDB.db=r.target.result,e.call(n)},i.onupgradeneeded=function(e){var t=e.target.result;e.target.transaction;t.objectStoreNames.contains(n.myDB.ojstore.name)||t.createObjectStore(n.myDB.ojstore.name,{keyPath:n.myDB.ojstore.keypath})}}},{key:"deletedb",value:function(){this.indexedDB.deleteDatabase(this.myDB.name)}},{key:"closeDB",value:function(){this.myDB.db.close()}},{key:"addData",value:function(e,t){for(var n=this.myDB.db.transaction(e,"readwrite").objectStore(e),r=void 0,i=0;i\n \n \n \n \n \n \n \n \n \n ',{},"xgplayer-volume");e.controls.appendChild(u);var c=void 0,p=u.querySelector(".xgplayer-slider"),d=u.querySelector(".xgplayer-bar"),f=u.querySelector(".xgplayer-drag"),h=u.querySelector(".xgplayer-icon");f.style.height=100*e.config.volume+"%";var g=u.querySelectorAll("path")[1],y=new i.default({progress:function(e,t){var n=y.toSVGString(e);g.setAttribute("d",n),s=n},from:s,to:o.large}),v=null;p.volume=e.config.volume,["touchend","mousedown"].forEach(function(n){d.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.video.muted=!1,p.focus(),t.event(n),c=d.getBoundingClientRect().height,n.clientX;var r=n.clientY,i=f.getBoundingClientRect().height,o=!1,a=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),o=!0;var a=i-n.clientY+r,s=a/c;f.style.height=a+"px",e.volume=Math.max(Math.min(s,1),.01)},s=function n(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),window.removeEventListener("mousemove",a),window.removeEventListener("touchmove",a),window.removeEventListener("mouseup",n),window.removeEventListener("touchend",n),v||(v=d.getBoundingClientRect()),!o){var i=v.height-(r.clientY-v.top),s=i/v.height;f.style.height=i+"px",s<=0&&(e.volume>0?f.volume=e.video.volume:s=f.volume),e.volume=Math.max(Math.min(s,1),.01)}p.volume=e.volume,o=!1};return window.addEventListener("mousemove",a),window.addEventListener("touchmove",a),window.addEventListener("mouseup",s),window.addEventListener("touchend",s),!1})}),["touchend","mousedown"].forEach(function(n){h.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.video.muted=!1,t.hasClass(p,"xgplayer-none")?(t.removeClass(p,"xgplayer-none"),p.focus()):0===e.volume?e.volume=p.volume:e.volume=0})}),p.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.addClass(p,"xgplayer-none")});var m=null;e.on("volumechange",function(){m&&clearTimeout(m),m=setTimeout(function(){y.reset(o[a(e.volume)],s),s=o[a[e.volume]],c||(c=d.getBoundingClientRect().height||76),f.style.height=e.volume*c+"px"},50)}),e.once("canplay",function(){e.config.autoplay&&e.config.autoplayMuted?e.volume=0:e.volume=e.config.volume}),e.once("destroy",function(){u=null,f=null})}})},function(e,t,n){"use strict";var r,i,o="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(a,s){"object"===o(t)&&void 0!==e?e.exports=s():void 0===(i="function"==typeof(r=s)?r.call(t,n,t,e):r)||(e.exports=i)}(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,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),t=2*Math.PI,n=function(e,t,n,r,i,o,a){var s=e.x,l=e.y;return{x:r*(s*=t)-i*(l*=n)+o,y:i*s+r*l+a}},r=function(e,t){var n=4/3*Math.tan(t/4),r=Math.cos(e),i=Math.sin(e),o=Math.cos(e+t),a=Math.sin(e+t);return[{x:r-i*n,y:i+r*n},{x:o+a*n,y:a-o*n},{x:o,y:a}]},i=function(e,t,n,r){var i=e*r-t*n<0?-1:1,o=(e*n+t*r)/(Math.sqrt(e*e+t*t)*Math.sqrt(e*e+t*t));return o>1&&(o=1),o<-1&&(o=-1),i*Math.acos(o)},o=function(o){var a=o.px,s=o.py,l=o.cx,u=o.cy,c=o.rx,p=o.ry,d=o.xAxisRotation,f=void 0===d?0:d,h=o.largeArcFlag,g=void 0===h?0:h,y=o.sweepFlag,v=void 0===y?0:y,m=[];if(0===c||0===p)return[];var x=Math.sin(f*t/360),b=Math.cos(f*t/360),w=b*(a-l)/2+x*(s-u)/2,k=-x*(a-l)/2+b*(s-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,o,a,s,l,u,c,p,d,f){var h=Math.pow(a,2),g=Math.pow(s,2),y=Math.pow(d,2),v=Math.pow(f,2),m=h*g-h*v-g*y;m<0&&(m=0),m/=h*v+g*y;var x=(m=Math.sqrt(m)*(l===u?-1:1))*a/s*f,b=m*-s/a*d,w=p*x-c*b+(e+r)/2,k=c*x+p*b+(n+o)/2,E=(d-x)/a,C=(f-b)/s,_=(-d-x)/a,T=(-f-b)/s,S=i(1,0,E,C),M=i(E,C,_,T);return 0===u&&M>0&&(M-=t),1===u&&M<0&&(M+=t),[w,k,S,M]}(a,s,l,u,c,p,g,v,x,b,w,k),_=e(C,4),T=_[0],S=_[1],M=_[2],D=_[3],L=Math.max(Math.ceil(Math.abs(D)/(t/4)),1);D/=L;for(var R=0;Re-1&&(o-=e),r[o]=i}t.push(r)}return t})(e.length).forEach(function(r){var i=0,o=0;r.forEach(function(n){i+=function(e,t){var n=e[0],r=e[2],i=e[4],o=e[6],a=e[1],s=e[3],l=e[5],u=e[7],c=t[0],p=t[2],d=t[4],f=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-a,2))+Math.sqrt(Math.pow(p-r,2)+Math.pow(g-s,2))+Math.sqrt(Math.pow(d-i,2)+Math.pow(y-l,2))+Math.sqrt(Math.pow(f-o,2)+Math.pow(v-u,2))}(e[n],t[o++])}),n.push({index:r,distance:i})}),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))),i="l",n="m"==n?"l":"L");;){if(r.length==a[i])return r.unshift(n),t.push(r);if(r.lengthi-1&&(r-=i)},d._splitCurves=function(e,t){for(var n=0,r=0;n=e.length-1&&(r=0)}},d._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?d._subShapes(i,o,n-r):nr?n=p)return a(c=n,1),o(c),void cancelAnimationFrame(u);var s=l(t/p);c=d._lerp(r[0],r[1],s),a(c,s),u=requestAnimationFrame(e)}()},d})},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(i);var o=function(){"audio"===e.videoConfig.mediaType&&e.isProgressMoving||(i.innerHTML=""+n(e.currentTime||0)+""+n(e.duration))};e.on("durationchange",o),e.on("timeupdate",o),e.once("destroy",function(){e.off("durationchange",o),e.off("timeupdate",o),i=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")),i=e.controls,o=e.config.textTrack;o&&Array.isArray(o)&&o.length>1&&(t.addClass(e.root,"xgplayer-is-textTrack"),e.on("canplay",function(){var t=["
    "];t.push("
  • 关闭
  • "),o.forEach(function(e){t.push("
  • "+e.label+"
  • ")});var r=e.config.lang&&"zh-cn"===e.config.lang?"字幕":"Caption";t.push('

'+r+"

");var a=i.querySelector(".xgplayer-textTrack");a?a.innerHTML=t.join(""):(n.innerHTML=t.join(""),i.appendChild(n))})),["touchstart","click"].forEach(function(r){n.addEventListener(r,function(r){r.preventDefault(),r.stopPropagation();var i=r.target||r.srcElement;if(i&&"li"===i.tagName.toLocaleLowerCase()){Array.prototype.forEach.call(i.parentNode.childNodes,function(e){t.removeClass(e,"textTrack")}),t.addClass(i,"textTrack");var a=e.root.getElementsByTagName("Track");"关闭"===i.innerHTML?(a[0].track.mode="hidden",t.removeClass(e.root,"xgplayer-is-textTrack")):(t.hasClass(e.root,"xgplayer-is-textTrack")||t.addClass(e.root,"xgplayer-is-textTrack"),a[0].track.mode="showing",o.some(function(e){if(e.label===i.innerHTML)return a[0].src=e.src,e.kind&&(a[0].kind=e.kind),a[0].label=e.label,e.srclang&&(a[0].srclang=e.srclang),!0}),e.emit("textTrackChange",i.innerHTML))}else!i||"p"!==i.tagName.toLocaleLowerCase()&&"em"!==i.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=e.config.centerBtn?e.config.centerBtn:{},i=n.replayPath?n.replayPath:"M8.22708362,13.8757234 L11.2677371,12.6472196 C11.7798067,12.4403301 12.3626381,12.6877273 12.5695276,13.1997969 L12.9441342,14.1269807 C13.1510237,14.6390502 12.9036264,15.2218816 12.3915569,15.4287712 L6.8284538,17.6764107 L5.90126995,18.0510173 C5.38920044,18.2579068 4.80636901,18.0105096 4.5994795,17.49844 L1.97723335,11.0081531 C1.77034384,10.4960836 2.0177411,9.91325213 2.52981061,9.70636262 L3.45699446,9.33175602 C3.96906396,9.12486652 4.5518954,9.37226378 4.75878491,9.88433329 L5.67885163,12.1615783 C7.99551726,6.6766934 13.3983951,3 19.5,3 C27.7842712,3 34.5,9.71572875 34.5,18 C34.5,26.2842712 27.7842712,33 19.5,33 C15.4573596,33 11.6658607,31.3912946 8.87004692,28.5831991 C8.28554571,27.9961303 8.28762719,27.0463851 8.87469603,26.4618839 C9.46176488,25.8773827 10.4115101,25.8794641 10.9960113,26.466533 C13.2344327,28.7147875 16.263503,30 19.5,30 C26.127417,30 31.5,24.627417 31.5,18 C31.5,11.372583 26.127417,6 19.5,6 C14.4183772,6 9.94214483,9.18783811 8.22708362,13.8757234 Z",o=t.createDom("xg-replay",'\n \n \n \n 重播\n ',{},"xgplayer-replay"),a=e.root,s=o.querySelector(".xgplayer-replay-svg");a.appendChild(o),e.on("ended",function(){o.querySelector(".xgplayer-replay-txt").textContent=e.lang.REPLAY;var n=o.querySelector("path"),r=window.getComputedStyle(n).getPropertyValue("transform");"none"!==r&&n.setAttribute("transform",r),e.config.loop||t.addClass(a,"replay")}),s.addEventListener("click",function(n){n.preventDefault(),t.removeClass(a,"replay"),e.replay()}),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));var i;i=function(){var e=this,t=r.default.util,n=t.createDom("xg-progress",'',{tabindex:1},"xgplayer-progress"),i=e.controls,o=void 0;i.appendChild(n);var a=n.querySelector(".xgplayer-progress-played"),s=n.querySelector(".xgplayer-progress-cache"),l=n.querySelector(".xgplayer-progress-point"),u=n.querySelector(".xgplayer-progress-thumbnail"),c=0,p=0,d=0,f=0,h=0,g=0,y=[];e.config.thumbnail&&(c=e.config.thumbnail.pic_num,p=e.config.thumbnail.width,d=e.config.thumbnail.height,f=e.config.thumbnail.col,h=e.config.thumbnail.row,y=e.config.thumbnail.urls,u.style.width=p+"px",u.style.height=d+"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 s=a.getBoundingClientRect().left,u=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),e.isProgressMoving=!0;var r=n.clientX-s>o?o:n.clientX-s,l=r/o*e.duration;if(a.style.width=100*r/o+"%","video"===e.videoConfig.mediaType)e.currentTime=Number(l).toFixed(1);else{var u=t.findDom(i,".xgplayer-time");u&&(u.innerHTML=""+t.format(l||0)+""+t.format(e.duration))}},c=function r(i){if(i.preventDefault(),i.stopPropagation(),t.event(i),window.removeEventListener("mousemove",u),window.removeEventListener("touchmove",u),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),n.blur(),!e.isProgressMoving||"audio"===e.videoConfig.mediaType){var l=i.clientX-s,c=l/o*e.duration;a.style.width=100*l/o+"%",e.currentTime=Number(c).toFixed(1)}e.isProgressMoving=!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 i=n.getBoundingClientRect().left,o=n.getBoundingClientRect().width,a=function(n){var r=(n.clientX-i)/o*e.duration;l.textContent=t.format(r);var a=l.getBoundingClientRect().width;if(e.config.thumbnail){g=e.duration/c;var s=Math.floor(r/g);u.style.backgroundImage="url("+y[Math.ceil((s+1)/(f*h))-1]+")";var v=s+1-f*h*(Math.ceil((s+1)/(f*h))-1),m=Math.ceil(v/h)-1,x=v-m*h-1;u.style["background-position"]="-"+x*p+"px -"+m*d+"px";var b=n.clientX-i-p/2;b=(b=b>0?b:0)0?w:0)>o-a?o-a:w,l.style.left=w+"px"}l.style.display="block"},s=function(e){a(e)};n.addEventListener("mousemove",s,!1),n.addEventListener("mouseleave",function e(t){n.removeEventListener("mousemove",s,!1),n.removeEventListener("mouseleave",e,!1),a(t),l.style.display="none",u.style.display="none"},!1),a(r)},!1);var v=function(){!o&&n&&(o=n.getBoundingClientRect().width),"audio"===e.videoConfig.mediaType&&e.isProgressMoving||(a.style.width=100*e.currentTime/e.duration+"%")};e.on("timeupdate",v);var m=function(){var t=e.buffered;if(t&&t.length>0){for(var n=t.end(t.length-1),r=0,i=t.length;r=t.start(r)&&e.currentTime<=t.end(r)){n=t.end(r);for(var o=r+1;o=2){n=t.end(o-1);break}break}s.style.width=n/e.duration*100+"%"}},x=["bufferedChange","cacheupdate","ended","timeupdate"];x.forEach(function(t){e.on(t,m)}),e.once("destroy",function(){x.forEach(function(t){e.off(t,m)}),e.off("timeupdate",v),n=null,a=null,l=null,u=null,s=null})},r.default.install("progress",i)},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,i=[];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),i.push(e+"x")});var o=e.config.lang&&"zh-cn"===e.config.lang?"倍速":"Speed",a=t.createDom("xg-playback","

1x

",{},"xgplayer-playback"),s=e.controls,l=t.createDom("xg-tips",o,{},"xgplayer-tips");a.appendChild(l),s.appendChild(a),["touchstart","click"].forEach(function(t){a.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===i.length?0:n+1,a.querySelector("p").innerHTML=""+i[n]+"",e.video.playbackRate=1*i[n].replace(/x$/g,""))},!1)}),a.addEventListener("mouseenter",function(t){t.preventDefault(),t.stopPropagation(),l.style.left="50%";var n=l.getBoundingClientRect(),r=e.root.getBoundingClientRect();n.right>r.right&&(l.style.left=-n.right+r.right+16+"px")}),e.once("destroy",function(){a=null})})},function(e,t,n){"use strict";var r=o(n(0)),i=o(n(2));function o(e){return e&&e.__esModule?e:{default:e}}r.default.install("play",function(){var e=this,t=e.controls,n=r.default.util,o=e.config.iconScale||.0320625,a="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",s="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",l=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"),d=l.querySelector("path");l.appendChild(p);var f=new i.default({progress:function(e,t){d.setAttribute("d",f.toSVGString(e))},from:s,to:a,duration:50});l.className="xgplayer-play",t.appendChild(l),["click","touchstart"].forEach(function(t){l.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.ended||(e.paused?e.play():e.pause())},!1)}),e.on("play",function(){p.textContent=c,f.to!==s&&f.reset(s,a)}),e.on("pause",function(){p.textContent=u,f.to!==a&&f.reset(a,s)}),e.once("destroy",function(){l=null})})},function(e,t,n){"use strict";var r=o(n(0)),i=o(n(38));function o(e){return e&&e.__esModule?e:{default:e}}r.default.install("pip",function(){var e=this,t=r.default.util;if(e.config.pip){var n=t.createDom("xg-pip",'

画中画

',{tabindex:9},"xgplayer-pip"),o=t.createDom("xg-pip-lay","
",{},"xgplayer-pip-lay"),a=t.createDom("xg-pip-drag",'
点击按住可拖动视频
',{tabindex:9},"xgplayer-pip-drag"),s=e.controls,l=e.root;s.appendChild(n),l.appendChild(a),l.appendChild(o),new i.default(".xgplayer",{handle:".drag-handle"});var u=function(n){t.removeClass(n,"xgplayer-pip-active"),e.config.fluid&&(e.root.style["padding-top"]=100*e.config.height/e.config.width+"%")};["click","touchstart"].forEach(function(r){n.addEventListener(r,function(n){n.preventDefault(),n.stopPropagation(),t.hasClass(l,"xgplayer-pip-active")?u(l):function(n){var r=e.root.getBoundingClientRect(),i=r.top,a=r.left;t.addClass(n,"xgplayer-pip-active"),e.root.style.right=0,e.root.style.bottom="200px",e.root.style.top="",e.root.style.left="",e.config.fluid&&(e.root.style["padding-top"]=""),["click","touchstart"].forEach(function(t){o.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),u(l),e.root.style.top=i+"px",e.root.style.left=a+"px"})})}(l)})})}})},function(e,t,n){"use strict";var r,i;"function"==typeof Symbol&&Symbol.iterator; +window.Player=function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.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 i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));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;n=0?c.currentTime-=10:c.currentTime=0):t&&38===t.keyCode?c.volume+.1<=1?c.volume+=.1:c.volume=1:t&&39===t.keyCode?(c.onFocus(),c.currentTime+10<=c.duration?c.currentTime+=10:c.currentTime=c.duration-1):t&&40===t.keyCode?c.volume-.1>=0?c.volume-=.1:c.volume=0:t&&32===t.keyCode&&(c.paused?c.play():c.pause())}),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.default),r(t,[{key:"start",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.url,n=this.root,r=this;"String"===o.default.typeOf(t)?this.video.src=t:t.forEach(function(t){e.video.appendChild(o.default.createDom("source","",{src:""+t.src,type:""+(t.type||"")}))}),r.config.autoplay&&this.video.addEventListener("canplay",function e(){r.video.play().then(function(){}),r.video.removeEventListener("canplay",e)}),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;for(var n in this._interval)clearInterval(this._interval[n]),this._interval[n]=null;if(this.ev.forEach(function(t){var n=Object.keys(t)[0],r=e[t[n]];r&&e.off(n,r)}),["focus","blur"].forEach(function(t){e.off(t,e["on"+t.charAt(0).toUpperCase()+t.slice(1)])}),this.paused)for(var r in this.emit("destroy"),this.root.id=this.root.id+"_del",t.insertBefore(this.rootBackup,this.root),t.removeChild(this.root),this)"config"!==r&&delete this[r];else this.pause(),this.once("pause",function(){for(var n in e.emit("destroy"),e.root.id=e.root.id+"_del",t.insertBefore(e.rootBackup,e.root),t.removeChild(e.root),e)"config"!==n&&delete e[n]})}},{key:"replay",value:function(){var e=this._replay;o.default.removeClass(this.root,"xgplayer-ended"),e&&e instanceof Function?e():(this.currentTime=0,this.play())}},{key:"pluginsCall",value:function(){var e=this;if(t.plugins){var n=this.config.ignores;Object.keys(t.plugins).forEach(function(r){var i=t.plugins[r];n.some(function(e){return r===e})||(["pc","tablet","mobile"].some(function(e){return e===r})?r===s.default.device&&i.call(e,e):i.call(e,e))})}}},{key:"onFocus",value:function(){var e=this;o.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||o.default.addClass(this.root,"xgplayer-inactive")}},{key:"onPlay",value:function(){o.default.addClass(this.root,"xgplayer-playing"),o.default.removeClass(this.root,"xgplayer-pause")}},{key:"onPause",value:function(){o.default.addClass(this.root,"xgplayer-pause"),this.userTimer&&clearTimeout(this.userTimer),this.emit("focus")}},{key:"onEnded",value:function(){o.default.addClass(this.root,"xgplayer-ended"),o.default.removeClass(this.root,"xgplayer-playing")}},{key:"onSeeking",value:function(){}},{key:"onSeeked",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),o.default.removeClass(this.root,"xgplayer-isloading")}},{key:"onWaiting",value:function(){var e=this;e.waitTimer&&clearTimeout(e.waitTimer),e.waitTimer=setTimeout(function(){o.default.addClass(e.root,"xgplayer-isloading")},500)}},{key:"onPlaying",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),o.default.removeClass(this.root,"xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay"),o.default.addClass(this.root,"xgplayer-playing")}}],[{key:"install",value:function(e,n){t.plugins||(t.plugins={}),t.plugins[e]=n}}]),t}();d.util=o.default,d.sniffer=s.default,d.Errors=l.default,t.default=d,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,i=e.path2shapes(e.from),o=e.path2shapes(e.to),a=e._preprocessing(i,o);e.state=1;!function i(){var s=new Date-t;if(s>=n||2===e.state)return r=o,e.progress(r,1),window.cancelAnimationFrame(e.tickId),void(e.state=0);var l=e.easing(s/n);r=e._lerp(a[0],a[1],l),e.progress(r,l),e.tickId=window.requestAnimationFrame(i)}()}},{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(){this.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 a in i.default)i.default[a]instanceof Function&&!o.prototype[a]&&(o.prototype[a]=i.default[a]);t.default=o,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]:"",i=document.createElement(e);return i.className=r,i.innerHTML=t,Object.keys(n).forEach(function(t){var r=t,o=n[t];"video"===e||"audio"===e?o&&i.setAttribute(r,o):i.setAttribute(r,o)}),i},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),i=t>>0,o=Math.ceil(i/r.length),a=[],s=String(e);o--;)a.push(r);return a.join("").substring(0,i-s.length)+s},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),i=r.padStart(Math.floor(e-3600*t-60*n),2,0);return("00"===t?[n,i]:[t,n,i]).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?"Array"===r.typeOf(t[n])?e[n]="Array"===r.typeOf(e[n])?e[n].concat(t[n]):t[n]: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""},setInterval:function(e,t,n,r){e._interval[t]||(e._interval[t]=setInterval(n.bind(e),r))},clearInterval:function(e,t){clearInterval(e._interval[t]),e._interval[t]=null}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);var i={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,o,a,s,l,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 d={};return d.playerVersion=r.version,d.errorType=t,d.domain=document.domain,d.duration=o,d.currentTime=n,d.networkState=a,d.readyState=s,d.currentSrc=u,d.src=l,d.ended=c,d.errd=p,d.ex=(i[t]||{}).msg,d},e.exports=t.default},function(e){e.exports={name:"xgplayer",version:"1.1.3-alpha-1",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",test:"karma start --single-run","test:watch":"karma start"},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",draggabilly:"^2.2.0","event-emitter":"^0.3.5",pasition:"^1.0.1","request-frame":"^1.5.3"},browserslist:["> 5%","IE 9","iOS 7","Firefox > 20"],devDependencies:{autoprefixer:"^9.1.5","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",chai:"^4.1.2","core-js":"^2.5.4","css-loader":"^0.28.11","json-loader":"^0.5.7",karma:"^3.0.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-spec-reporter":"0.0.32","karma-webpack":"^4.0.0-rc.1",mocha:"^5.2.0","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.11.0","webpack-cli":"^3.0.2",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=k(n(0)),i=k(n(27)),o=k(n(30)),a=k(n(31)),s=k(n(32)),l=k(n(33)),u=k(n(34)),c=k(n(35)),p=k(n(36)),d=k(n(37)),f=k(n(43)),h=k(n(44)),g=k(n(45)),y=k(n(48)),v=k(n(49)),m=k(n(50)),x=k(n(51)),b=k(n(52)),w=k(n(53));function k(e){return e&&e.__esModule?e:{default:e}}n(54);var E={};function C(e,t,n){var r=e;t.map(function(e,i){r[e]=i==t.length-1?n:r[e]||{},r=r[e]})}C(E,["control","definition"],w.default),C(E,["control","error"],b.default),C(E,["control","flex"],x.default),C(E,["control","fullscreen"],m.default),C(E,["control","i18n"],v.default),C(E,["control","loading"],y.default),C(E,["control","makeBullet"],g.default),C(E,["control","mobile"],h.default),C(E,["control","pc"],f.default),C(E,["control","pip"],d.default),C(E,["control","play"],p.default),C(E,["control","playbackRate"],c.default),C(E,["control","poster"],u.default),C(E,["control","progress"],l.default),C(E,["control","replay"],s.default),C(E,["control","textTrack"],a.default),C(E,["control","time"],o.default),C(E,["control","volume"],i.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 r+='",!0}),this.videoConfig.crossorigin="anonymous"),t.textTrackStyle){var s=document.createElement("style");document.head.appendChild(s);var l="";for(var u in t.textTrackStyle)l+=u+": "+t.textTrackStyle[u]+";";var c=t.id?"#"+t.id:t.el.id?"#"+t.el.id:"."+t.el.className;s.sheet.insertRule?s.sheet.insertRule(c+" video::cue { "+l+" }",0):s.sheet.addRule&&s.sheet.addRule(c+" video::cue",l)}this.video=o.default.createDom(this.videoConfig.mediaType,r,this.videoConfig,""),t.autoplay&&(this.video.autoplay=!0,t.autoplayMuted&&(this.video.muted=!0)),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,i.default)(this),this._interval={};var p="0,0";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 a.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),t.hasOwnProperty("_interval")&&(["ended","error","timeupdate"].indexOf(r)<0?o.default.setInterval(t,"bufferedChange",function(){for(var e=[],t=0,n=this.video.buffered.length;t-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=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{name:"xgplayer",version:1,db:null,ojstore:{name:"xg-m4a",keypath:"vid"}};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.indexedDB=window.indexedDB||window.webkitindexedDB,this.IDBKeyRange=window.IDBKeyRange||window.webkitIDBKeyRange,this.myDB=t}return r(e,[{key:"openDB",value:function(e){var t=this,n=this,r=this.myDB.version||1,i=n.indexedDB.open(n.myDB.name,r);i.onerror=function(e){},i.onsuccess=function(r){t.myDB.db=r.target.result,e.call(n)},i.onupgradeneeded=function(e){var t=e.target.result;e.target.transaction;t.objectStoreNames.contains(n.myDB.ojstore.name)||t.createObjectStore(n.myDB.ojstore.name,{keyPath:n.myDB.ojstore.keypath})}}},{key:"deletedb",value:function(){this.indexedDB.deleteDatabase(this.myDB.name)}},{key:"closeDB",value:function(){this.myDB.db.close()}},{key:"addData",value:function(e,t){for(var n=this.myDB.db.transaction(e,"readwrite").objectStore(e),r=void 0,i=0;i\n \n \n \n \n \n \n \n \n \n ',{},"xgplayer-volume");e.controls.appendChild(u);var c=void 0,p=u.querySelector(".xgplayer-slider"),d=u.querySelector(".xgplayer-bar"),f=u.querySelector(".xgplayer-drag"),h=u.querySelector(".xgplayer-icon");f.style.height=100*e.config.volume+"%";var g=u.querySelectorAll("path")[1],y=new i.default({progress:function(e,t){var n=y.toSVGString(e);g.setAttribute("d",n),s=n},from:s,to:o.large}),v=null;p.volume=e.config.volume,["touchend","mousedown"].forEach(function(n){d.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.video.muted=!1,p.focus(),t.event(n),c=d.getBoundingClientRect().height,n.clientX;var r=n.clientY,i=f.getBoundingClientRect().height,o=!1,a=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),o=!0;var a=i-n.clientY+r,s=a/c;f.style.height=a+"px",e.volume=Math.max(Math.min(s,1),.01)},s=function n(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),window.removeEventListener("mousemove",a),window.removeEventListener("touchmove",a),window.removeEventListener("mouseup",n),window.removeEventListener("touchend",n),v||(v=d.getBoundingClientRect()),!o){var i=v.height-(r.clientY-v.top),s=i/v.height;f.style.height=i+"px",s<=0&&(e.volume>0?f.volume=e.video.volume:s=f.volume),e.volume=Math.max(Math.min(s,1),.01)}p.volume=e.volume,o=!1};return window.addEventListener("mousemove",a),window.addEventListener("touchmove",a),window.addEventListener("mouseup",s),window.addEventListener("touchend",s),!1})}),["touchend","mousedown"].forEach(function(n){h.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.video.muted=!1,t.hasClass(p,"xgplayer-none")?(t.removeClass(p,"xgplayer-none"),p.focus()):0===e.volume?e.volume=p.volume:e.volume=0})}),p.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.addClass(p,"xgplayer-none")});var m=null;e.on("volumechange",function(){m&&clearTimeout(m),m=setTimeout(function(){y.reset(o[a(e.volume)],s),s=o[a[e.volume]],c||(c=d.getBoundingClientRect().height||76),f.style.height=e.volume*c+"px"},50)}),e.once("canplay",function(){e.config.autoplay&&e.config.autoplayMuted?e.volume=0:e.volume=e.config.volume}),e.once("destroy",function(){u=null,f=null})}})},function(e,t,n){"use strict";var r,i,o="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(a,s){"object"===o(t)&&void 0!==e?e.exports=s():void 0===(i="function"==typeof(r=s)?r.call(t,n,t,e):r)||(e.exports=i)}(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,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),t=2*Math.PI,n=function(e,t,n,r,i,o,a){var s=e.x,l=e.y;return{x:r*(s*=t)-i*(l*=n)+o,y:i*s+r*l+a}},r=function(e,t){var n=4/3*Math.tan(t/4),r=Math.cos(e),i=Math.sin(e),o=Math.cos(e+t),a=Math.sin(e+t);return[{x:r-i*n,y:i+r*n},{x:o+a*n,y:a-o*n},{x:o,y:a}]},i=function(e,t,n,r){var i=e*r-t*n<0?-1:1,o=(e*n+t*r)/(Math.sqrt(e*e+t*t)*Math.sqrt(e*e+t*t));return o>1&&(o=1),o<-1&&(o=-1),i*Math.acos(o)},o=function(o){var a=o.px,s=o.py,l=o.cx,u=o.cy,c=o.rx,p=o.ry,d=o.xAxisRotation,f=void 0===d?0:d,h=o.largeArcFlag,g=void 0===h?0:h,y=o.sweepFlag,v=void 0===y?0:y,m=[];if(0===c||0===p)return[];var x=Math.sin(f*t/360),b=Math.cos(f*t/360),w=b*(a-l)/2+x*(s-u)/2,k=-x*(a-l)/2+b*(s-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,o,a,s,l,u,c,p,d,f){var h=Math.pow(a,2),g=Math.pow(s,2),y=Math.pow(d,2),v=Math.pow(f,2),m=h*g-h*v-g*y;m<0&&(m=0),m/=h*v+g*y;var x=(m=Math.sqrt(m)*(l===u?-1:1))*a/s*f,b=m*-s/a*d,w=p*x-c*b+(e+r)/2,k=c*x+p*b+(n+o)/2,E=(d-x)/a,C=(f-b)/s,_=(-d-x)/a,T=(-f-b)/s,S=i(1,0,E,C),M=i(E,C,_,T);return 0===u&&M>0&&(M-=t),1===u&&M<0&&(M+=t),[w,k,S,M]}(a,s,l,u,c,p,g,v,x,b,w,k),_=e(C,4),T=_[0],S=_[1],M=_[2],D=_[3],L=Math.max(Math.ceil(Math.abs(D)/(t/4)),1);D/=L;for(var R=0;Re-1&&(o-=e),r[o]=i}t.push(r)}return t})(e.length).forEach(function(r){var i=0,o=0;r.forEach(function(n){i+=function(e,t){var n=e[0],r=e[2],i=e[4],o=e[6],a=e[1],s=e[3],l=e[5],u=e[7],c=t[0],p=t[2],d=t[4],f=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-a,2))+Math.sqrt(Math.pow(p-r,2)+Math.pow(g-s,2))+Math.sqrt(Math.pow(d-i,2)+Math.pow(y-l,2))+Math.sqrt(Math.pow(f-o,2)+Math.pow(v-u,2))}(e[n],t[o++])}),n.push({index:r,distance:i})}),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))),i="l",n="m"==n?"l":"L");;){if(r.length==a[i])return r.unshift(n),t.push(r);if(r.lengthi-1&&(r-=i)},d._splitCurves=function(e,t){for(var n=0,r=0;n=e.length-1&&(r=0)}},d._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?d._subShapes(i,o,n-r):nr?n=p)return a(c=n,1),o(c),void cancelAnimationFrame(u);var s=l(t/p);c=d._lerp(r[0],r[1],s),a(c,s),u=requestAnimationFrame(e)}()},d})},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(i);var o=function(){"audio"===e.videoConfig.mediaType&&e.isProgressMoving||(i.innerHTML=""+n(e.currentTime||0)+""+n(e.duration))};e.on("durationchange",o),e.on("timeupdate",o),e.once("destroy",function(){e.off("durationchange",o),e.off("timeupdate",o),i=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")),i=e.controls,o=e.config.textTrack;o&&Array.isArray(o)&&o.length>1&&(t.addClass(e.root,"xgplayer-is-textTrack"),e.on("canplay",function(){var t=["
    "];t.push("
  • 关闭
  • "),o.forEach(function(e){t.push("
  • "+e.label+"
  • ")});var r=e.config.lang&&"zh-cn"===e.config.lang?"字幕":"Caption";t.push('

'+r+"

");var a=i.querySelector(".xgplayer-textTrack");a?a.innerHTML=t.join(""):(n.innerHTML=t.join(""),i.appendChild(n))})),["touchstart","click"].forEach(function(r){n.addEventListener(r,function(r){r.preventDefault(),r.stopPropagation();var i=r.target||r.srcElement;if(i&&"li"===i.tagName.toLocaleLowerCase()){Array.prototype.forEach.call(i.parentNode.childNodes,function(e){t.removeClass(e,"textTrack")}),t.addClass(i,"textTrack");var a=e.root.getElementsByTagName("Track");"关闭"===i.innerHTML?(a[0].track.mode="hidden",t.removeClass(e.root,"xgplayer-is-textTrack")):(t.hasClass(e.root,"xgplayer-is-textTrack")||t.addClass(e.root,"xgplayer-is-textTrack"),a[0].track.mode="showing",o.some(function(e){if(e.label===i.innerHTML)return a[0].src=e.src,e.kind&&(a[0].kind=e.kind),a[0].label=e.label,e.srclang&&(a[0].srclang=e.srclang),!0}),e.emit("textTrackChange",i.innerHTML))}else!i||"p"!==i.tagName.toLocaleLowerCase()&&"em"!==i.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=e.config.centerBtn?e.config.centerBtn:{};console.log(n);var i=n.replayPath?n.replayPath:"M8.22708362,13.8757234 L11.2677371,12.6472196 C11.7798067,12.4403301 12.3626381,12.6877273 12.5695276,13.1997969 L12.9441342,14.1269807 C13.1510237,14.6390502 12.9036264,15.2218816 12.3915569,15.4287712 L6.8284538,17.6764107 L5.90126995,18.0510173 C5.38920044,18.2579068 4.80636901,18.0105096 4.5994795,17.49844 L1.97723335,11.0081531 C1.77034384,10.4960836 2.0177411,9.91325213 2.52981061,9.70636262 L3.45699446,9.33175602 C3.96906396,9.12486652 4.5518954,9.37226378 4.75878491,9.88433329 L5.67885163,12.1615783 C7.99551726,6.6766934 13.3983951,3 19.5,3 C27.7842712,3 34.5,9.71572875 34.5,18 C34.5,26.2842712 27.7842712,33 19.5,33 C15.4573596,33 11.6658607,31.3912946 8.87004692,28.5831991 C8.28554571,27.9961303 8.28762719,27.0463851 8.87469603,26.4618839 C9.46176488,25.8773827 10.4115101,25.8794641 10.9960113,26.466533 C13.2344327,28.7147875 16.263503,30 19.5,30 C26.127417,30 31.5,24.627417 31.5,18 C31.5,11.372583 26.127417,6 19.5,6 C14.4183772,6 9.94214483,9.18783811 8.22708362,13.8757234 Z",o=t.createDom("xg-replay",'\n \n \n \n 重播\n ',{},"xgplayer-replay"),a=e.root,s=o.querySelector(".xgplayer-replay-svg");a.appendChild(o),e.on("ended",function(){o.querySelector(".xgplayer-replay-txt").textContent=e.lang.REPLAY;var n=o.querySelector("path"),r=window.getComputedStyle(n).getPropertyValue("transform");"none"!==r&&n.setAttribute("transform",r),e.config.loop||t.addClass(a,"replay")}),s.addEventListener("click",function(n){n.preventDefault(),t.removeClass(a,"replay"),e.replay()}),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));var i;i=function(){var e=this,t=r.default.util,n=t.createDom("xg-progress",'',{tabindex:1},"xgplayer-progress"),i=e.controls,o=void 0;i.appendChild(n);var a=n.querySelector(".xgplayer-progress-played"),s=n.querySelector(".xgplayer-progress-cache"),l=n.querySelector(".xgplayer-progress-point"),u=n.querySelector(".xgplayer-progress-thumbnail"),c=0,p=0,d=0,f=0,h=0,g=0,y=[];e.config.thumbnail&&(c=e.config.thumbnail.pic_num,p=e.config.thumbnail.width,d=e.config.thumbnail.height,f=e.config.thumbnail.col,h=e.config.thumbnail.row,y=e.config.thumbnail.urls,u.style.width=p+"px",u.style.height=d+"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 s=a.getBoundingClientRect().left,u=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),e.isProgressMoving=!0;var r=n.clientX-s>o?o:n.clientX-s,l=r/o*e.duration;if(a.style.width=100*r/o+"%","video"===e.videoConfig.mediaType)e.currentTime=Number(l).toFixed(1);else{var u=t.findDom(i,".xgplayer-time");u&&(u.innerHTML=""+t.format(l||0)+""+t.format(e.duration))}},c=function r(i){if(i.preventDefault(),i.stopPropagation(),t.event(i),window.removeEventListener("mousemove",u),window.removeEventListener("touchmove",u),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),n.blur(),!e.isProgressMoving||"audio"===e.videoConfig.mediaType){var l=i.clientX-s,c=l/o*e.duration;a.style.width=100*l/o+"%",e.currentTime=Number(c).toFixed(1)}e.isProgressMoving=!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 i=n.getBoundingClientRect().left,o=n.getBoundingClientRect().width,a=function(n){var r=(n.clientX-i)/o*e.duration;l.textContent=t.format(r);var a=l.getBoundingClientRect().width;if(e.config.thumbnail){g=e.duration/c;var s=Math.floor(r/g);u.style.backgroundImage="url("+y[Math.ceil((s+1)/(f*h))-1]+")";var v=s+1-f*h*(Math.ceil((s+1)/(f*h))-1),m=Math.ceil(v/h)-1,x=v-m*h-1;u.style["background-position"]="-"+x*p+"px -"+m*d+"px";var b=n.clientX-i-p/2;b=(b=b>0?b:0)0?w:0)>o-a?o-a:w,l.style.left=w+"px"}l.style.display="block"},s=function(e){a(e)};n.addEventListener("mousemove",s,!1),n.addEventListener("mouseleave",function e(t){n.removeEventListener("mousemove",s,!1),n.removeEventListener("mouseleave",e,!1),a(t),l.style.display="none",u.style.display="none"},!1),a(r)},!1);var v=function(){!o&&n&&(o=n.getBoundingClientRect().width),"audio"===e.videoConfig.mediaType&&e.isProgressMoving||(a.style.width=100*e.currentTime/e.duration+"%")};e.on("timeupdate",v);var m=function(){var t=e.buffered;if(t&&t.length>0){for(var n=t.end(t.length-1),r=0,i=t.length;r=t.start(r)&&e.currentTime<=t.end(r)){n=t.end(r);for(var o=r+1;o=2){n=t.end(o-1);break}break}s.style.width=n/e.duration*100+"%"}},x=["bufferedChange","cacheupdate","ended","timeupdate"];x.forEach(function(t){e.on(t,m)}),e.once("destroy",function(){x.forEach(function(t){e.off(t,m)}),e.off("timeupdate",v),n=null,a=null,l=null,u=null,s=null})},r.default.install("progress",i)},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,i=[];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),i.push(e+"x")});var o=e.config.lang&&"zh-cn"===e.config.lang?"倍速":"Speed",a=t.createDom("xg-playback","

1x

",{},"xgplayer-playback"),s=e.controls,l=t.createDom("xg-tips",o,{},"xgplayer-tips");a.appendChild(l),s.appendChild(a),["touchstart","click"].forEach(function(t){a.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===i.length?0:n+1,a.querySelector("p").innerHTML=""+i[n]+"",e.video.playbackRate=1*i[n].replace(/x$/g,""))},!1)}),a.addEventListener("mouseenter",function(t){t.preventDefault(),t.stopPropagation(),l.style.left="50%";var n=l.getBoundingClientRect(),r=e.root.getBoundingClientRect();n.right>r.right&&(l.style.left=-n.right+r.right+16+"px")}),e.once("destroy",function(){a=null})})},function(e,t,n){"use strict";var r=o(n(0)),i=o(n(2));function o(e){return e&&e.__esModule?e:{default:e}}r.default.install("play",function(){var e=this,t=e.controls,n=r.default.util,o=e.config.iconScale||.0320625,a="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",s="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",l=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"),d=l.querySelector("path");l.appendChild(p);var f=new i.default({progress:function(e,t){d.setAttribute("d",f.toSVGString(e))},from:s,to:a,duration:50});l.className="xgplayer-play",t.appendChild(l),["click","touchstart"].forEach(function(t){l.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.ended||(e.paused?e.play():e.pause())},!1)}),e.on("play",function(){p.textContent=c,f.to!==s&&f.reset(s,a)}),e.on("pause",function(){p.textContent=u,f.to!==a&&f.reset(a,s)}),e.once("destroy",function(){l=null})})},function(e,t,n){"use strict";var r=o(n(0)),i=o(n(38));function o(e){return e&&e.__esModule?e:{default:e}}r.default.install("pip",function(){var e=this,t=r.default.util;if(e.config.pip){var n=t.createDom("xg-pip",'

画中画

',{tabindex:9},"xgplayer-pip"),o=t.createDom("xg-pip-lay","
",{},"xgplayer-pip-lay"),a=t.createDom("xg-pip-drag",'
点击按住可拖动视频
',{tabindex:9},"xgplayer-pip-drag"),s=e.controls,l=e.root;s.appendChild(n),l.appendChild(a),l.appendChild(o),new i.default(".xgplayer",{handle:".drag-handle"});var u=function(n){t.removeClass(n,"xgplayer-pip-active"),e.config.fluid&&(e.root.style["padding-top"]=100*e.config.height/e.config.width+"%")};["click","touchstart"].forEach(function(r){n.addEventListener(r,function(n){n.preventDefault(),n.stopPropagation(),t.hasClass(l,"xgplayer-pip-active")?u(l):function(n){var r=e.root.getBoundingClientRect(),i=r.top,a=r.left;t.addClass(n,"xgplayer-pip-active"),e.root.style.right=0,e.root.style.bottom="200px",e.root.style.top="",e.root.style.left="",e.config.fluid&&(e.root.style["padding-top"]=""),["click","touchstart"].forEach(function(t){o.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),u(l),e.root.style.top=i+"px",e.root.style.left=a+"px"})})}(l)})})}})},function(e,t,n){"use strict";var r,i;"function"==typeof Symbol&&Symbol.iterator; /*! * Draggabilly v2.2.0 * Make that shiz draggable diff --git a/packages/xgplayer/dist/index.js b/packages/xgplayer/dist/index.js index 3b50527f1..1a4a19ddb 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 i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.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 i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));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;n=0?c.currentTime-=10:c.currentTime=0):t&&38===t.keyCode?c.volume+.1<=1?c.volume+=.1:c.volume=1:t&&39===t.keyCode?(c.onFocus(),c.currentTime+10<=c.duration?c.currentTime+=10:c.currentTime=c.duration-1):t&&40===t.keyCode?c.volume-.1>=0?c.volume-=.1:c.volume=0:t&&32===t.keyCode&&(c.paused?c.play():c.pause())}),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.default),r(t,[{key:"start",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.url,n=this.root,r=this;"String"===o.default.typeOf(t)?this.video.src=t:t.forEach(function(t){e.video.appendChild(o.default.createDom("source","",{src:""+t.src,type:""+(t.type||"")}))}),r.config.autoplay&&this.video.addEventListener("canplay",function e(){r.video.play().then(function(){}),r.video.removeEventListener("canplay",e)}),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;for(var n in this._interval)clearInterval(this._interval[n]),this._interval[n]=null;if(this.ev.forEach(function(t){var n=Object.keys(t)[0],r=e[t[n]];r&&e.off(n,r)}),["focus","blur"].forEach(function(t){e.off(t,e["on"+t.charAt(0).toUpperCase()+t.slice(1)])}),this.paused)for(var r in this.emit("destroy"),this.root.id=this.root.id+"_del",t.insertBefore(this.rootBackup,this.root),t.removeChild(this.root),this)"config"!==r&&delete this[r];else this.pause(),this.once("pause",function(){for(var n in e.emit("destroy"),e.root.id=e.root.id+"_del",t.insertBefore(e.rootBackup,e.root),t.removeChild(e.root),e)"config"!==n&&delete e[n]})}},{key:"replay",value:function(){var e=this._replay;o.default.removeClass(this.root,"xgplayer-ended"),e&&e instanceof Function?e():(this.currentTime=0,this.play())}},{key:"onFocus",value:function(){var e=this;o.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||o.default.addClass(this.root,"xgplayer-inactive")}},{key:"onPlay",value:function(){o.default.addClass(this.root,"xgplayer-playing"),o.default.removeClass(this.root,"xgplayer-pause")}},{key:"onPause",value:function(){o.default.addClass(this.root,"xgplayer-pause"),this.userTimer&&clearTimeout(this.userTimer),this.emit("focus")}},{key:"onEnded",value:function(){o.default.addClass(this.root,"xgplayer-ended"),o.default.removeClass(this.root,"xgplayer-playing")}},{key:"onSeeking",value:function(){}},{key:"onSeeked",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),o.default.removeClass(this.root,"xgplayer-isloading")}},{key:"onWaiting",value:function(){var e=this;e.waitTimer&&clearTimeout(e.waitTimer),e.waitTimer=setTimeout(function(){o.default.addClass(e.root,"xgplayer-isloading")},500)}},{key:"onPlaying",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),o.default.removeClass(this.root,"xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay"),o.default.addClass(this.root,"xgplayer-playing")}}],[{key:"install",value:function(e,n){t.plugins||(t.plugins={}),t.plugins[e]=n}}]),t}();d.util=o.default,d.sniffer=s.default,d.Errors=l.default,t.default=d,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,i=e.path2shapes(e.from),o=e.path2shapes(e.to),a=e._preprocessing(i,o);e.state=1;!function i(){var s=new Date-t;if(s>=n||2===e.state)return r=o,e.progress(r,1),window.cancelAnimationFrame(e.tickId),void(e.state=0);var l=e.easing(s/n);r=e._lerp(a[0],a[1],l),e.progress(r,l),e.tickId=window.requestAnimationFrame(i)}()}},{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(){this.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 a in i.default)i.default[a]instanceof Function&&!o.prototype[a]&&(o.prototype[a]=i.default[a]);t.default=o,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]:"",i=document.createElement(e);return i.className=r,i.innerHTML=t,Object.keys(n).forEach(function(t){var r=t,o=n[t];"video"===e||"audio"===e?o&&i.setAttribute(r,o):i.setAttribute(r,o)}),i},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),i=t>>0,o=Math.ceil(i/r.length),a=[],s=String(e);o--;)a.push(r);return a.join("").substring(0,i-s.length)+s},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),i=r.padStart(Math.floor(e-3600*t-60*n),2,0);return("00"===t?[n,i]:[t,n,i]).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?"Array"===r.typeOf(t[n])?e[n]="Array"===r.typeOf(e[n])?e[n].concat(t[n]):t[n]: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""},setInterval:function(e,t,n,r){e._interval[t]||(e._interval[t]=setInterval(n.bind(e),r))},clearInterval:function(e,t){clearInterval(e._interval[t]),e._interval[t]=null}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);var i={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,o,a,s,l,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 d={};return d.playerVersion=r.version,d.errorType=t,d.domain=document.domain,d.duration=o,d.currentTime=n,d.networkState=a,d.readyState=s,d.currentSrc=u,d.src=l,d.ended=c,d.errd=p,d.ex=(i[t]||{}).msg,d},e.exports=t.default},function(e){e.exports={name:"xgplayer",version:"1.1.3-alpha-1",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",test:"karma start --single-run","test:watch":"karma start"},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",draggabilly:"^2.2.0","event-emitter":"^0.3.5",pasition:"^1.0.1","request-frame":"^1.5.3"},browserslist:["> 5%","IE 9","iOS 7","Firefox > 20"],devDependencies:{autoprefixer:"^9.1.5","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",chai:"^4.1.2","core-js":"^2.5.4","css-loader":"^0.28.11","json-loader":"^0.5.7",karma:"^3.0.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-spec-reporter":"0.0.32","karma-webpack":"^4.0.0-rc.1",mocha:"^5.2.0","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.11.0","webpack-cli":"^3.0.2",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=k(n(0)),i=k(n(27)),o=k(n(30)),a=k(n(31)),s=k(n(32)),l=k(n(33)),u=k(n(34)),c=k(n(35)),p=k(n(36)),d=k(n(37)),f=k(n(43)),h=k(n(44)),g=k(n(45)),y=k(n(48)),v=k(n(49)),m=k(n(50)),x=k(n(51)),b=k(n(52)),w=k(n(53));function k(e){return e&&e.__esModule?e:{default:e}}n(54);var E={};function C(e,t,n){var r=e;t.map(function(e,i){r[e]=i==t.length-1?n:r[e]||{},r=r[e]})}C(E,["control","definition"],w.default),C(E,["control","error"],b.default),C(E,["control","flex"],x.default),C(E,["control","fullscreen"],m.default),C(E,["control","i18n"],v.default),C(E,["control","loading"],y.default),C(E,["control","makeBullet"],g.default),C(E,["control","mobile"],h.default),C(E,["control","pc"],f.default),C(E,["control","pip"],d.default),C(E,["control","play"],p.default),C(E,["control","playbackRate"],c.default),C(E,["control","poster"],u.default),C(E,["control","progress"],l.default),C(E,["control","replay"],s.default),C(E,["control","textTrack"],a.default),C(E,["control","time"],o.default),C(E,["control","volume"],i.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 r+='",!0}),this.videoConfig.crossorigin="anonymous"),t.textTrackStyle){var s=document.createElement("style");document.head.appendChild(s);var l="";for(var u in t.textTrackStyle)l+=u+": "+t.textTrackStyle[u]+";";var c=t.id?"#"+t.id:t.el.id?"#"+t.el.id:"."+t.el.className;s.sheet.insertRule?s.sheet.insertRule(c+" video::cue { "+l+" }",0):s.sheet.addRule&&s.sheet.addRule(c+" video::cue",l)}this.video=o.default.createDom(this.videoConfig.mediaType,r,this.videoConfig,""),t.autoplay&&(this.video.autoplay=!0,t.autoplayMuted&&(this.video.muted=!0)),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,i.default)(this),this._interval={};var p="0,0";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 a.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),t.hasOwnProperty("_interval")&&(["ended","error","timeupdate"].indexOf(r)<0?o.default.setInterval(t,"bufferedChange",function(){for(var e=[],t=0,n=this.video.buffered.length;t-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=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{name:"xgplayer",version:1,db:null,ojstore:{name:"xg-m4a",keypath:"vid"}};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.indexedDB=window.indexedDB||window.webkitindexedDB,this.IDBKeyRange=window.IDBKeyRange||window.webkitIDBKeyRange,this.myDB=t}return r(e,[{key:"openDB",value:function(e){var t=this,n=this,r=this.myDB.version||1,i=n.indexedDB.open(n.myDB.name,r);i.onerror=function(e){},i.onsuccess=function(r){t.myDB.db=r.target.result,e.call(n)},i.onupgradeneeded=function(e){var t=e.target.result;e.target.transaction;t.objectStoreNames.contains(n.myDB.ojstore.name)||t.createObjectStore(n.myDB.ojstore.name,{keyPath:n.myDB.ojstore.keypath})}}},{key:"deletedb",value:function(){this.indexedDB.deleteDatabase(this.myDB.name)}},{key:"closeDB",value:function(){this.myDB.db.close()}},{key:"addData",value:function(e,t){for(var n=this.myDB.db.transaction(e,"readwrite").objectStore(e),r=void 0,i=0;i\n \n \n \n \n \n \n \n \n \n ',{},"xgplayer-volume");e.controls.appendChild(u);var c=void 0,p=u.querySelector(".xgplayer-slider"),d=u.querySelector(".xgplayer-bar"),f=u.querySelector(".xgplayer-drag"),h=u.querySelector(".xgplayer-icon");f.style.height=100*e.config.volume+"%";var g=u.querySelectorAll("path")[1],y=new i.default({progress:function(e,t){var n=y.toSVGString(e);g.setAttribute("d",n),s=n},from:s,to:o.large}),v=null;p.volume=e.config.volume,["touchend","mousedown"].forEach(function(n){d.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.video.muted=!1,p.focus(),t.event(n),c=d.getBoundingClientRect().height,n.clientX;var r=n.clientY,i=f.getBoundingClientRect().height,o=!1,a=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),o=!0;var a=i-n.clientY+r,s=a/c;f.style.height=a+"px",e.volume=Math.max(Math.min(s,1),.01)},s=function n(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),window.removeEventListener("mousemove",a),window.removeEventListener("touchmove",a),window.removeEventListener("mouseup",n),window.removeEventListener("touchend",n),v||(v=d.getBoundingClientRect()),!o){var i=v.height-(r.clientY-v.top),s=i/v.height;f.style.height=i+"px",s<=0&&(e.volume>0?f.volume=e.video.volume:s=f.volume),e.volume=Math.max(Math.min(s,1),.01)}p.volume=e.volume,o=!1};return window.addEventListener("mousemove",a),window.addEventListener("touchmove",a),window.addEventListener("mouseup",s),window.addEventListener("touchend",s),!1})}),["touchend","mousedown"].forEach(function(n){h.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.video.muted=!1,t.hasClass(p,"xgplayer-none")?(t.removeClass(p,"xgplayer-none"),p.focus()):0===e.volume?e.volume=p.volume:e.volume=0})}),p.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.addClass(p,"xgplayer-none")});var m=null;e.on("volumechange",function(){m&&clearTimeout(m),m=setTimeout(function(){y.reset(o[a(e.volume)],s),s=o[a[e.volume]],c||(c=d.getBoundingClientRect().height||76),f.style.height=e.volume*c+"px"},50)}),e.once("canplay",function(){e.config.autoplay&&e.config.autoplayMuted?e.volume=0:e.volume=e.config.volume}),e.once("destroy",function(){u=null,f=null})}})},function(e,t,n){"use strict";var r,i,o="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(a,s){"object"===o(t)&&void 0!==e?e.exports=s():void 0===(i="function"==typeof(r=s)?r.call(t,n,t,e):r)||(e.exports=i)}(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,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),t=2*Math.PI,n=function(e,t,n,r,i,o,a){var s=e.x,l=e.y;return{x:r*(s*=t)-i*(l*=n)+o,y:i*s+r*l+a}},r=function(e,t){var n=4/3*Math.tan(t/4),r=Math.cos(e),i=Math.sin(e),o=Math.cos(e+t),a=Math.sin(e+t);return[{x:r-i*n,y:i+r*n},{x:o+a*n,y:a-o*n},{x:o,y:a}]},i=function(e,t,n,r){var i=e*r-t*n<0?-1:1,o=(e*n+t*r)/(Math.sqrt(e*e+t*t)*Math.sqrt(e*e+t*t));return o>1&&(o=1),o<-1&&(o=-1),i*Math.acos(o)},o=function(o){var a=o.px,s=o.py,l=o.cx,u=o.cy,c=o.rx,p=o.ry,d=o.xAxisRotation,f=void 0===d?0:d,h=o.largeArcFlag,g=void 0===h?0:h,y=o.sweepFlag,v=void 0===y?0:y,m=[];if(0===c||0===p)return[];var x=Math.sin(f*t/360),b=Math.cos(f*t/360),w=b*(a-l)/2+x*(s-u)/2,k=-x*(a-l)/2+b*(s-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,o,a,s,l,u,c,p,d,f){var h=Math.pow(a,2),g=Math.pow(s,2),y=Math.pow(d,2),v=Math.pow(f,2),m=h*g-h*v-g*y;m<0&&(m=0),m/=h*v+g*y;var x=(m=Math.sqrt(m)*(l===u?-1:1))*a/s*f,b=m*-s/a*d,w=p*x-c*b+(e+r)/2,k=c*x+p*b+(n+o)/2,E=(d-x)/a,C=(f-b)/s,_=(-d-x)/a,T=(-f-b)/s,S=i(1,0,E,C),M=i(E,C,_,T);return 0===u&&M>0&&(M-=t),1===u&&M<0&&(M+=t),[w,k,S,M]}(a,s,l,u,c,p,g,v,x,b,w,k),_=e(C,4),T=_[0],S=_[1],M=_[2],D=_[3],L=Math.max(Math.ceil(Math.abs(D)/(t/4)),1);D/=L;for(var R=0;Re-1&&(o-=e),r[o]=i}t.push(r)}return t})(e.length).forEach(function(r){var i=0,o=0;r.forEach(function(n){i+=function(e,t){var n=e[0],r=e[2],i=e[4],o=e[6],a=e[1],s=e[3],l=e[5],u=e[7],c=t[0],p=t[2],d=t[4],f=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-a,2))+Math.sqrt(Math.pow(p-r,2)+Math.pow(g-s,2))+Math.sqrt(Math.pow(d-i,2)+Math.pow(y-l,2))+Math.sqrt(Math.pow(f-o,2)+Math.pow(v-u,2))}(e[n],t[o++])}),n.push({index:r,distance:i})}),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))),i="l",n="m"==n?"l":"L");;){if(r.length==a[i])return r.unshift(n),t.push(r);if(r.lengthi-1&&(r-=i)},d._splitCurves=function(e,t){for(var n=0,r=0;n=e.length-1&&(r=0)}},d._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?d._subShapes(i,o,n-r):nr?n=p)return a(c=n,1),o(c),void cancelAnimationFrame(u);var s=l(t/p);c=d._lerp(r[0],r[1],s),a(c,s),u=requestAnimationFrame(e)}()},d})},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(i);var o=function(){"audio"===e.videoConfig.mediaType&&e.isProgressMoving||(i.innerHTML=""+n(e.currentTime||0)+""+n(e.duration))};e.on("durationchange",o),e.on("timeupdate",o),e.once("destroy",function(){e.off("durationchange",o),e.off("timeupdate",o),i=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")),i=e.controls,o=e.config.textTrack;o&&Array.isArray(o)&&o.length>1&&(t.addClass(e.root,"xgplayer-is-textTrack"),e.on("canplay",function(){var t=["
    "];t.push("
  • 关闭
  • "),o.forEach(function(e){t.push("
  • "+e.label+"
  • ")});var r=e.config.lang&&"zh-cn"===e.config.lang?"字幕":"Caption";t.push('

'+r+"

");var a=i.querySelector(".xgplayer-textTrack");a?a.innerHTML=t.join(""):(n.innerHTML=t.join(""),i.appendChild(n))})),["touchstart","click"].forEach(function(r){n.addEventListener(r,function(r){r.preventDefault(),r.stopPropagation();var i=r.target||r.srcElement;if(i&&"li"===i.tagName.toLocaleLowerCase()){Array.prototype.forEach.call(i.parentNode.childNodes,function(e){t.removeClass(e,"textTrack")}),t.addClass(i,"textTrack");var a=e.root.getElementsByTagName("Track");"关闭"===i.innerHTML?(a[0].track.mode="hidden",t.removeClass(e.root,"xgplayer-is-textTrack")):(t.hasClass(e.root,"xgplayer-is-textTrack")||t.addClass(e.root,"xgplayer-is-textTrack"),a[0].track.mode="showing",o.some(function(e){if(e.label===i.innerHTML)return a[0].src=e.src,e.kind&&(a[0].kind=e.kind),a[0].label=e.label,e.srclang&&(a[0].srclang=e.srclang),!0}),e.emit("textTrackChange",i.innerHTML))}else!i||"p"!==i.tagName.toLocaleLowerCase()&&"em"!==i.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=e.config.centerBtn?e.config.centerBtn:{},i=n.replayPath?n.replayPath:"M8.22708362,13.8757234 L11.2677371,12.6472196 C11.7798067,12.4403301 12.3626381,12.6877273 12.5695276,13.1997969 L12.9441342,14.1269807 C13.1510237,14.6390502 12.9036264,15.2218816 12.3915569,15.4287712 L6.8284538,17.6764107 L5.90126995,18.0510173 C5.38920044,18.2579068 4.80636901,18.0105096 4.5994795,17.49844 L1.97723335,11.0081531 C1.77034384,10.4960836 2.0177411,9.91325213 2.52981061,9.70636262 L3.45699446,9.33175602 C3.96906396,9.12486652 4.5518954,9.37226378 4.75878491,9.88433329 L5.67885163,12.1615783 C7.99551726,6.6766934 13.3983951,3 19.5,3 C27.7842712,3 34.5,9.71572875 34.5,18 C34.5,26.2842712 27.7842712,33 19.5,33 C15.4573596,33 11.6658607,31.3912946 8.87004692,28.5831991 C8.28554571,27.9961303 8.28762719,27.0463851 8.87469603,26.4618839 C9.46176488,25.8773827 10.4115101,25.8794641 10.9960113,26.466533 C13.2344327,28.7147875 16.263503,30 19.5,30 C26.127417,30 31.5,24.627417 31.5,18 C31.5,11.372583 26.127417,6 19.5,6 C14.4183772,6 9.94214483,9.18783811 8.22708362,13.8757234 Z",o=t.createDom("xg-replay",'\n \n \n \n 重播\n ',{},"xgplayer-replay"),a=e.root,s=o.querySelector(".xgplayer-replay-svg");a.appendChild(o),e.on("ended",function(){o.querySelector(".xgplayer-replay-txt").textContent=e.lang.REPLAY;var n=o.querySelector("path"),r=window.getComputedStyle(n).getPropertyValue("transform");"none"!==r&&n.setAttribute("transform",r),e.config.loop||t.addClass(a,"replay")}),s.addEventListener("click",function(n){n.preventDefault(),t.removeClass(a,"replay"),e.replay()}),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));var i;i=function(){var e=this,t=r.default.util,n=t.createDom("xg-progress",'',{tabindex:1},"xgplayer-progress"),i=e.controls,o=void 0;i.appendChild(n);var a=n.querySelector(".xgplayer-progress-played"),s=n.querySelector(".xgplayer-progress-cache"),l=n.querySelector(".xgplayer-progress-point"),u=n.querySelector(".xgplayer-progress-thumbnail"),c=0,p=0,d=0,f=0,h=0,g=0,y=[];e.config.thumbnail&&(c=e.config.thumbnail.pic_num,p=e.config.thumbnail.width,d=e.config.thumbnail.height,f=e.config.thumbnail.col,h=e.config.thumbnail.row,y=e.config.thumbnail.urls,u.style.width=p+"px",u.style.height=d+"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 s=a.getBoundingClientRect().left,u=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),e.isProgressMoving=!0;var r=n.clientX-s>o?o:n.clientX-s,l=r/o*e.duration;if(a.style.width=100*r/o+"%","video"===e.videoConfig.mediaType)e.currentTime=Number(l).toFixed(1);else{var u=t.findDom(i,".xgplayer-time");u&&(u.innerHTML=""+t.format(l||0)+""+t.format(e.duration))}},c=function r(i){if(i.preventDefault(),i.stopPropagation(),t.event(i),window.removeEventListener("mousemove",u),window.removeEventListener("touchmove",u),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),n.blur(),!e.isProgressMoving||"audio"===e.videoConfig.mediaType){var l=i.clientX-s,c=l/o*e.duration;a.style.width=100*l/o+"%",e.currentTime=Number(c).toFixed(1)}e.isProgressMoving=!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 i=n.getBoundingClientRect().left,o=n.getBoundingClientRect().width,a=function(n){var r=(n.clientX-i)/o*e.duration;l.textContent=t.format(r);var a=l.getBoundingClientRect().width;if(e.config.thumbnail){g=e.duration/c;var s=Math.floor(r/g);u.style.backgroundImage="url("+y[Math.ceil((s+1)/(f*h))-1]+")";var v=s+1-f*h*(Math.ceil((s+1)/(f*h))-1),m=Math.ceil(v/h)-1,x=v-m*h-1;u.style["background-position"]="-"+x*p+"px -"+m*d+"px";var b=n.clientX-i-p/2;b=(b=b>0?b:0)0?w:0)>o-a?o-a:w,l.style.left=w+"px"}l.style.display="block"},s=function(e){a(e)};n.addEventListener("mousemove",s,!1),n.addEventListener("mouseleave",function e(t){n.removeEventListener("mousemove",s,!1),n.removeEventListener("mouseleave",e,!1),a(t),l.style.display="none",u.style.display="none"},!1),a(r)},!1);var v=function(){!o&&n&&(o=n.getBoundingClientRect().width),"audio"===e.videoConfig.mediaType&&e.isProgressMoving||(a.style.width=100*e.currentTime/e.duration+"%")};e.on("timeupdate",v);var m=function(){var t=e.buffered;if(t&&t.length>0){for(var n=t.end(t.length-1),r=0,i=t.length;r=t.start(r)&&e.currentTime<=t.end(r)){n=t.end(r);for(var o=r+1;o=2){n=t.end(o-1);break}break}s.style.width=n/e.duration*100+"%"}},x=["bufferedChange","cacheupdate","ended","timeupdate"];x.forEach(function(t){e.on(t,m)}),e.once("destroy",function(){x.forEach(function(t){e.off(t,m)}),e.off("timeupdate",v),n=null,a=null,l=null,u=null,s=null})},r.default.install("progress",i)},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,i=[];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),i.push(e+"x")});var o=e.config.lang&&"zh-cn"===e.config.lang?"倍速":"Speed",a=t.createDom("xg-playback","

1x

",{},"xgplayer-playback"),s=e.controls,l=t.createDom("xg-tips",o,{},"xgplayer-tips");a.appendChild(l),s.appendChild(a),["touchstart","click"].forEach(function(t){a.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===i.length?0:n+1,a.querySelector("p").innerHTML=""+i[n]+"",e.video.playbackRate=1*i[n].replace(/x$/g,""))},!1)}),a.addEventListener("mouseenter",function(t){t.preventDefault(),t.stopPropagation(),l.style.left="50%";var n=l.getBoundingClientRect(),r=e.root.getBoundingClientRect();n.right>r.right&&(l.style.left=-n.right+r.right+16+"px")}),e.once("destroy",function(){a=null})})},function(e,t,n){"use strict";var r=o(n(0)),i=o(n(2));function o(e){return e&&e.__esModule?e:{default:e}}r.default.install("play",function(){var e=this,t=e.controls,n=r.default.util,o=e.config.iconScale||.0320625,a="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",s="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",l=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"),d=l.querySelector("path");l.appendChild(p);var f=new i.default({progress:function(e,t){d.setAttribute("d",f.toSVGString(e))},from:s,to:a,duration:50});l.className="xgplayer-play",t.appendChild(l),["click","touchstart"].forEach(function(t){l.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.ended||(e.paused?e.play():e.pause())},!1)}),e.on("play",function(){p.textContent=c,f.to!==s&&f.reset(s,a)}),e.on("pause",function(){p.textContent=u,f.to!==a&&f.reset(a,s)}),e.once("destroy",function(){l=null})})},function(e,t,n){"use strict";var r=o(n(0)),i=o(n(38));function o(e){return e&&e.__esModule?e:{default:e}}r.default.install("pip",function(){var e=this,t=r.default.util;if(e.config.pip){var n=t.createDom("xg-pip",'

画中画

',{tabindex:9},"xgplayer-pip"),o=t.createDom("xg-pip-lay","
",{},"xgplayer-pip-lay"),a=t.createDom("xg-pip-drag",'
点击按住可拖动视频
',{tabindex:9},"xgplayer-pip-drag"),s=e.controls,l=e.root;s.appendChild(n),l.appendChild(a),l.appendChild(o),new i.default(".xgplayer",{handle:".drag-handle"});var u=function(n){t.removeClass(n,"xgplayer-pip-active"),e.config.fluid&&(e.root.style["padding-top"]=100*e.config.height/e.config.width+"%")};["click","touchstart"].forEach(function(r){n.addEventListener(r,function(n){n.preventDefault(),n.stopPropagation(),t.hasClass(l,"xgplayer-pip-active")?u(l):function(n){var r=e.root.getBoundingClientRect(),i=r.top,a=r.left;t.addClass(n,"xgplayer-pip-active"),e.root.style.right=0,e.root.style.bottom="200px",e.root.style.top="",e.root.style.left="",e.config.fluid&&(e.root.style["padding-top"]=""),["click","touchstart"].forEach(function(t){o.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),u(l),e.root.style.top=i+"px",e.root.style.left=a+"px"})})}(l)})})}})},function(e,t,n){"use strict";var r,i;"function"==typeof Symbol&&Symbol.iterator; +!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 i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.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 i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));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;n=0?c.currentTime-=10:c.currentTime=0):t&&38===t.keyCode?c.volume+.1<=1?c.volume+=.1:c.volume=1:t&&39===t.keyCode?(c.onFocus(),c.currentTime+10<=c.duration?c.currentTime+=10:c.currentTime=c.duration-1):t&&40===t.keyCode?c.volume-.1>=0?c.volume-=.1:c.volume=0:t&&32===t.keyCode&&(c.paused?c.play():c.pause())}),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.default),r(t,[{key:"start",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.url,n=this.root,r=this;"String"===o.default.typeOf(t)?this.video.src=t:t.forEach(function(t){e.video.appendChild(o.default.createDom("source","",{src:""+t.src,type:""+(t.type||"")}))}),r.config.autoplay&&this.video.addEventListener("canplay",function e(){r.video.play().then(function(){}),r.video.removeEventListener("canplay",e)}),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;for(var n in this._interval)clearInterval(this._interval[n]),this._interval[n]=null;if(this.ev.forEach(function(t){var n=Object.keys(t)[0],r=e[t[n]];r&&e.off(n,r)}),["focus","blur"].forEach(function(t){e.off(t,e["on"+t.charAt(0).toUpperCase()+t.slice(1)])}),this.paused)for(var r in this.emit("destroy"),this.root.id=this.root.id+"_del",t.insertBefore(this.rootBackup,this.root),t.removeChild(this.root),this)"config"!==r&&delete this[r];else this.pause(),this.once("pause",function(){for(var n in e.emit("destroy"),e.root.id=e.root.id+"_del",t.insertBefore(e.rootBackup,e.root),t.removeChild(e.root),e)"config"!==n&&delete e[n]})}},{key:"replay",value:function(){var e=this._replay;o.default.removeClass(this.root,"xgplayer-ended"),e&&e instanceof Function?e():(this.currentTime=0,this.play())}},{key:"pluginsCall",value:function(){var e=this;if(t.plugins){var n=this.config.ignores;Object.keys(t.plugins).forEach(function(r){var i=t.plugins[r];n.some(function(e){return r===e})||(["pc","tablet","mobile"].some(function(e){return e===r})?r===s.default.device&&i.call(e,e):i.call(e,e))})}}},{key:"onFocus",value:function(){var e=this;o.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||o.default.addClass(this.root,"xgplayer-inactive")}},{key:"onPlay",value:function(){o.default.addClass(this.root,"xgplayer-playing"),o.default.removeClass(this.root,"xgplayer-pause")}},{key:"onPause",value:function(){o.default.addClass(this.root,"xgplayer-pause"),this.userTimer&&clearTimeout(this.userTimer),this.emit("focus")}},{key:"onEnded",value:function(){o.default.addClass(this.root,"xgplayer-ended"),o.default.removeClass(this.root,"xgplayer-playing")}},{key:"onSeeking",value:function(){}},{key:"onSeeked",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),o.default.removeClass(this.root,"xgplayer-isloading")}},{key:"onWaiting",value:function(){var e=this;e.waitTimer&&clearTimeout(e.waitTimer),e.waitTimer=setTimeout(function(){o.default.addClass(e.root,"xgplayer-isloading")},500)}},{key:"onPlaying",value:function(){this.waitTimer&&clearTimeout(this.waitTimer),o.default.removeClass(this.root,"xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay"),o.default.addClass(this.root,"xgplayer-playing")}}],[{key:"install",value:function(e,n){t.plugins||(t.plugins={}),t.plugins[e]=n}}]),t}();d.util=o.default,d.sniffer=s.default,d.Errors=l.default,t.default=d,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,i=e.path2shapes(e.from),o=e.path2shapes(e.to),a=e._preprocessing(i,o);e.state=1;!function i(){var s=new Date-t;if(s>=n||2===e.state)return r=o,e.progress(r,1),window.cancelAnimationFrame(e.tickId),void(e.state=0);var l=e.easing(s/n);r=e._lerp(a[0],a[1],l),e.progress(r,l),e.tickId=window.requestAnimationFrame(i)}()}},{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(){this.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 a in i.default)i.default[a]instanceof Function&&!o.prototype[a]&&(o.prototype[a]=i.default[a]);t.default=o,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]:"",i=document.createElement(e);return i.className=r,i.innerHTML=t,Object.keys(n).forEach(function(t){var r=t,o=n[t];"video"===e||"audio"===e?o&&i.setAttribute(r,o):i.setAttribute(r,o)}),i},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),i=t>>0,o=Math.ceil(i/r.length),a=[],s=String(e);o--;)a.push(r);return a.join("").substring(0,i-s.length)+s},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),i=r.padStart(Math.floor(e-3600*t-60*n),2,0);return("00"===t?[n,i]:[t,n,i]).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?"Array"===r.typeOf(t[n])?e[n]="Array"===r.typeOf(e[n])?e[n].concat(t[n]):t[n]: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""},setInterval:function(e,t,n,r){e._interval[t]||(e._interval[t]=setInterval(n.bind(e),r))},clearInterval:function(e,t){clearInterval(e._interval[t]),e._interval[t]=null}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);var i={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,o,a,s,l,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 d={};return d.playerVersion=r.version,d.errorType=t,d.domain=document.domain,d.duration=o,d.currentTime=n,d.networkState=a,d.readyState=s,d.currentSrc=u,d.src=l,d.ended=c,d.errd=p,d.ex=(i[t]||{}).msg,d},e.exports=t.default},function(e){e.exports={name:"xgplayer",version:"1.1.3-alpha-1",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",test:"karma start --single-run","test:watch":"karma start"},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",draggabilly:"^2.2.0","event-emitter":"^0.3.5",pasition:"^1.0.1","request-frame":"^1.5.3"},browserslist:["> 5%","IE 9","iOS 7","Firefox > 20"],devDependencies:{autoprefixer:"^9.1.5","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",chai:"^4.1.2","core-js":"^2.5.4","css-loader":"^0.28.11","json-loader":"^0.5.7",karma:"^3.0.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-spec-reporter":"0.0.32","karma-webpack":"^4.0.0-rc.1",mocha:"^5.2.0","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.11.0","webpack-cli":"^3.0.2",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=k(n(0)),i=k(n(27)),o=k(n(30)),a=k(n(31)),s=k(n(32)),l=k(n(33)),u=k(n(34)),c=k(n(35)),p=k(n(36)),d=k(n(37)),f=k(n(43)),h=k(n(44)),g=k(n(45)),y=k(n(48)),v=k(n(49)),m=k(n(50)),x=k(n(51)),b=k(n(52)),w=k(n(53));function k(e){return e&&e.__esModule?e:{default:e}}n(54);var E={};function C(e,t,n){var r=e;t.map(function(e,i){r[e]=i==t.length-1?n:r[e]||{},r=r[e]})}C(E,["control","definition"],w.default),C(E,["control","error"],b.default),C(E,["control","flex"],x.default),C(E,["control","fullscreen"],m.default),C(E,["control","i18n"],v.default),C(E,["control","loading"],y.default),C(E,["control","makeBullet"],g.default),C(E,["control","mobile"],h.default),C(E,["control","pc"],f.default),C(E,["control","pip"],d.default),C(E,["control","play"],p.default),C(E,["control","playbackRate"],c.default),C(E,["control","poster"],u.default),C(E,["control","progress"],l.default),C(E,["control","replay"],s.default),C(E,["control","textTrack"],a.default),C(E,["control","time"],o.default),C(E,["control","volume"],i.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 r+='",!0}),this.videoConfig.crossorigin="anonymous"),t.textTrackStyle){var s=document.createElement("style");document.head.appendChild(s);var l="";for(var u in t.textTrackStyle)l+=u+": "+t.textTrackStyle[u]+";";var c=t.id?"#"+t.id:t.el.id?"#"+t.el.id:"."+t.el.className;s.sheet.insertRule?s.sheet.insertRule(c+" video::cue { "+l+" }",0):s.sheet.addRule&&s.sheet.addRule(c+" video::cue",l)}this.video=o.default.createDom(this.videoConfig.mediaType,r,this.videoConfig,""),t.autoplay&&(this.video.autoplay=!0,t.autoplayMuted&&(this.video.muted=!0)),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,i.default)(this),this._interval={};var p="0,0";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 a.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),t.hasOwnProperty("_interval")&&(["ended","error","timeupdate"].indexOf(r)<0?o.default.setInterval(t,"bufferedChange",function(){for(var e=[],t=0,n=this.video.buffered.length;t-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=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{name:"xgplayer",version:1,db:null,ojstore:{name:"xg-m4a",keypath:"vid"}};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.indexedDB=window.indexedDB||window.webkitindexedDB,this.IDBKeyRange=window.IDBKeyRange||window.webkitIDBKeyRange,this.myDB=t}return r(e,[{key:"openDB",value:function(e){var t=this,n=this,r=this.myDB.version||1,i=n.indexedDB.open(n.myDB.name,r);i.onerror=function(e){},i.onsuccess=function(r){t.myDB.db=r.target.result,e.call(n)},i.onupgradeneeded=function(e){var t=e.target.result;e.target.transaction;t.objectStoreNames.contains(n.myDB.ojstore.name)||t.createObjectStore(n.myDB.ojstore.name,{keyPath:n.myDB.ojstore.keypath})}}},{key:"deletedb",value:function(){this.indexedDB.deleteDatabase(this.myDB.name)}},{key:"closeDB",value:function(){this.myDB.db.close()}},{key:"addData",value:function(e,t){for(var n=this.myDB.db.transaction(e,"readwrite").objectStore(e),r=void 0,i=0;i\n \n \n \n \n \n \n \n \n \n ',{},"xgplayer-volume");e.controls.appendChild(u);var c=void 0,p=u.querySelector(".xgplayer-slider"),d=u.querySelector(".xgplayer-bar"),f=u.querySelector(".xgplayer-drag"),h=u.querySelector(".xgplayer-icon");f.style.height=100*e.config.volume+"%";var g=u.querySelectorAll("path")[1],y=new i.default({progress:function(e,t){var n=y.toSVGString(e);g.setAttribute("d",n),s=n},from:s,to:o.large}),v=null;p.volume=e.config.volume,["touchend","mousedown"].forEach(function(n){d.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.video.muted=!1,p.focus(),t.event(n),c=d.getBoundingClientRect().height,n.clientX;var r=n.clientY,i=f.getBoundingClientRect().height,o=!1,a=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),o=!0;var a=i-n.clientY+r,s=a/c;f.style.height=a+"px",e.volume=Math.max(Math.min(s,1),.01)},s=function n(r){if(r.preventDefault(),r.stopPropagation(),t.event(r),window.removeEventListener("mousemove",a),window.removeEventListener("touchmove",a),window.removeEventListener("mouseup",n),window.removeEventListener("touchend",n),v||(v=d.getBoundingClientRect()),!o){var i=v.height-(r.clientY-v.top),s=i/v.height;f.style.height=i+"px",s<=0&&(e.volume>0?f.volume=e.video.volume:s=f.volume),e.volume=Math.max(Math.min(s,1),.01)}p.volume=e.volume,o=!1};return window.addEventListener("mousemove",a),window.addEventListener("touchmove",a),window.addEventListener("mouseup",s),window.addEventListener("touchend",s),!1})}),["touchend","mousedown"].forEach(function(n){h.addEventListener(n,function(n){n.preventDefault(),n.stopPropagation(),e.video.muted=!1,t.hasClass(p,"xgplayer-none")?(t.removeClass(p,"xgplayer-none"),p.focus()):0===e.volume?e.volume=p.volume:e.volume=0})}),p.addEventListener("blur",function(e){e.preventDefault(),e.stopPropagation(),t.addClass(p,"xgplayer-none")});var m=null;e.on("volumechange",function(){m&&clearTimeout(m),m=setTimeout(function(){y.reset(o[a(e.volume)],s),s=o[a[e.volume]],c||(c=d.getBoundingClientRect().height||76),f.style.height=e.volume*c+"px"},50)}),e.once("canplay",function(){e.config.autoplay&&e.config.autoplayMuted?e.volume=0:e.volume=e.config.volume}),e.once("destroy",function(){u=null,f=null})}})},function(e,t,n){"use strict";var r,i,o="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(a,s){"object"===o(t)&&void 0!==e?e.exports=s():void 0===(i="function"==typeof(r=s)?r.call(t,n,t,e):r)||(e.exports=i)}(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,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),t=2*Math.PI,n=function(e,t,n,r,i,o,a){var s=e.x,l=e.y;return{x:r*(s*=t)-i*(l*=n)+o,y:i*s+r*l+a}},r=function(e,t){var n=4/3*Math.tan(t/4),r=Math.cos(e),i=Math.sin(e),o=Math.cos(e+t),a=Math.sin(e+t);return[{x:r-i*n,y:i+r*n},{x:o+a*n,y:a-o*n},{x:o,y:a}]},i=function(e,t,n,r){var i=e*r-t*n<0?-1:1,o=(e*n+t*r)/(Math.sqrt(e*e+t*t)*Math.sqrt(e*e+t*t));return o>1&&(o=1),o<-1&&(o=-1),i*Math.acos(o)},o=function(o){var a=o.px,s=o.py,l=o.cx,u=o.cy,c=o.rx,p=o.ry,d=o.xAxisRotation,f=void 0===d?0:d,h=o.largeArcFlag,g=void 0===h?0:h,y=o.sweepFlag,v=void 0===y?0:y,m=[];if(0===c||0===p)return[];var x=Math.sin(f*t/360),b=Math.cos(f*t/360),w=b*(a-l)/2+x*(s-u)/2,k=-x*(a-l)/2+b*(s-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,o,a,s,l,u,c,p,d,f){var h=Math.pow(a,2),g=Math.pow(s,2),y=Math.pow(d,2),v=Math.pow(f,2),m=h*g-h*v-g*y;m<0&&(m=0),m/=h*v+g*y;var x=(m=Math.sqrt(m)*(l===u?-1:1))*a/s*f,b=m*-s/a*d,w=p*x-c*b+(e+r)/2,k=c*x+p*b+(n+o)/2,E=(d-x)/a,C=(f-b)/s,_=(-d-x)/a,T=(-f-b)/s,S=i(1,0,E,C),M=i(E,C,_,T);return 0===u&&M>0&&(M-=t),1===u&&M<0&&(M+=t),[w,k,S,M]}(a,s,l,u,c,p,g,v,x,b,w,k),_=e(C,4),T=_[0],S=_[1],M=_[2],D=_[3],L=Math.max(Math.ceil(Math.abs(D)/(t/4)),1);D/=L;for(var R=0;Re-1&&(o-=e),r[o]=i}t.push(r)}return t})(e.length).forEach(function(r){var i=0,o=0;r.forEach(function(n){i+=function(e,t){var n=e[0],r=e[2],i=e[4],o=e[6],a=e[1],s=e[3],l=e[5],u=e[7],c=t[0],p=t[2],d=t[4],f=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-a,2))+Math.sqrt(Math.pow(p-r,2)+Math.pow(g-s,2))+Math.sqrt(Math.pow(d-i,2)+Math.pow(y-l,2))+Math.sqrt(Math.pow(f-o,2)+Math.pow(v-u,2))}(e[n],t[o++])}),n.push({index:r,distance:i})}),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))),i="l",n="m"==n?"l":"L");;){if(r.length==a[i])return r.unshift(n),t.push(r);if(r.lengthi-1&&(r-=i)},d._splitCurves=function(e,t){for(var n=0,r=0;n=e.length-1&&(r=0)}},d._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?d._subShapes(i,o,n-r):nr?n=p)return a(c=n,1),o(c),void cancelAnimationFrame(u);var s=l(t/p);c=d._lerp(r[0],r[1],s),a(c,s),u=requestAnimationFrame(e)}()},d})},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(i);var o=function(){"audio"===e.videoConfig.mediaType&&e.isProgressMoving||(i.innerHTML=""+n(e.currentTime||0)+""+n(e.duration))};e.on("durationchange",o),e.on("timeupdate",o),e.once("destroy",function(){e.off("durationchange",o),e.off("timeupdate",o),i=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")),i=e.controls,o=e.config.textTrack;o&&Array.isArray(o)&&o.length>1&&(t.addClass(e.root,"xgplayer-is-textTrack"),e.on("canplay",function(){var t=["
    "];t.push("
  • 关闭
  • "),o.forEach(function(e){t.push("
  • "+e.label+"
  • ")});var r=e.config.lang&&"zh-cn"===e.config.lang?"字幕":"Caption";t.push('

'+r+"

");var a=i.querySelector(".xgplayer-textTrack");a?a.innerHTML=t.join(""):(n.innerHTML=t.join(""),i.appendChild(n))})),["touchstart","click"].forEach(function(r){n.addEventListener(r,function(r){r.preventDefault(),r.stopPropagation();var i=r.target||r.srcElement;if(i&&"li"===i.tagName.toLocaleLowerCase()){Array.prototype.forEach.call(i.parentNode.childNodes,function(e){t.removeClass(e,"textTrack")}),t.addClass(i,"textTrack");var a=e.root.getElementsByTagName("Track");"关闭"===i.innerHTML?(a[0].track.mode="hidden",t.removeClass(e.root,"xgplayer-is-textTrack")):(t.hasClass(e.root,"xgplayer-is-textTrack")||t.addClass(e.root,"xgplayer-is-textTrack"),a[0].track.mode="showing",o.some(function(e){if(e.label===i.innerHTML)return a[0].src=e.src,e.kind&&(a[0].kind=e.kind),a[0].label=e.label,e.srclang&&(a[0].srclang=e.srclang),!0}),e.emit("textTrackChange",i.innerHTML))}else!i||"p"!==i.tagName.toLocaleLowerCase()&&"em"!==i.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=e.config.centerBtn?e.config.centerBtn:{};console.log(n);var i=n.replayPath?n.replayPath:"M8.22708362,13.8757234 L11.2677371,12.6472196 C11.7798067,12.4403301 12.3626381,12.6877273 12.5695276,13.1997969 L12.9441342,14.1269807 C13.1510237,14.6390502 12.9036264,15.2218816 12.3915569,15.4287712 L6.8284538,17.6764107 L5.90126995,18.0510173 C5.38920044,18.2579068 4.80636901,18.0105096 4.5994795,17.49844 L1.97723335,11.0081531 C1.77034384,10.4960836 2.0177411,9.91325213 2.52981061,9.70636262 L3.45699446,9.33175602 C3.96906396,9.12486652 4.5518954,9.37226378 4.75878491,9.88433329 L5.67885163,12.1615783 C7.99551726,6.6766934 13.3983951,3 19.5,3 C27.7842712,3 34.5,9.71572875 34.5,18 C34.5,26.2842712 27.7842712,33 19.5,33 C15.4573596,33 11.6658607,31.3912946 8.87004692,28.5831991 C8.28554571,27.9961303 8.28762719,27.0463851 8.87469603,26.4618839 C9.46176488,25.8773827 10.4115101,25.8794641 10.9960113,26.466533 C13.2344327,28.7147875 16.263503,30 19.5,30 C26.127417,30 31.5,24.627417 31.5,18 C31.5,11.372583 26.127417,6 19.5,6 C14.4183772,6 9.94214483,9.18783811 8.22708362,13.8757234 Z",o=t.createDom("xg-replay",'\n \n \n \n 重播\n ',{},"xgplayer-replay"),a=e.root,s=o.querySelector(".xgplayer-replay-svg");a.appendChild(o),e.on("ended",function(){o.querySelector(".xgplayer-replay-txt").textContent=e.lang.REPLAY;var n=o.querySelector("path"),r=window.getComputedStyle(n).getPropertyValue("transform");"none"!==r&&n.setAttribute("transform",r),e.config.loop||t.addClass(a,"replay")}),s.addEventListener("click",function(n){n.preventDefault(),t.removeClass(a,"replay"),e.replay()}),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));var i;i=function(){var e=this,t=r.default.util,n=t.createDom("xg-progress",'',{tabindex:1},"xgplayer-progress"),i=e.controls,o=void 0;i.appendChild(n);var a=n.querySelector(".xgplayer-progress-played"),s=n.querySelector(".xgplayer-progress-cache"),l=n.querySelector(".xgplayer-progress-point"),u=n.querySelector(".xgplayer-progress-thumbnail"),c=0,p=0,d=0,f=0,h=0,g=0,y=[];e.config.thumbnail&&(c=e.config.thumbnail.pic_num,p=e.config.thumbnail.width,d=e.config.thumbnail.height,f=e.config.thumbnail.col,h=e.config.thumbnail.row,y=e.config.thumbnail.urls,u.style.width=p+"px",u.style.height=d+"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 s=a.getBoundingClientRect().left,u=function(n){n.preventDefault(),n.stopPropagation(),t.event(n),e.isProgressMoving=!0;var r=n.clientX-s>o?o:n.clientX-s,l=r/o*e.duration;if(a.style.width=100*r/o+"%","video"===e.videoConfig.mediaType)e.currentTime=Number(l).toFixed(1);else{var u=t.findDom(i,".xgplayer-time");u&&(u.innerHTML=""+t.format(l||0)+""+t.format(e.duration))}},c=function r(i){if(i.preventDefault(),i.stopPropagation(),t.event(i),window.removeEventListener("mousemove",u),window.removeEventListener("touchmove",u),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),n.blur(),!e.isProgressMoving||"audio"===e.videoConfig.mediaType){var l=i.clientX-s,c=l/o*e.duration;a.style.width=100*l/o+"%",e.currentTime=Number(c).toFixed(1)}e.isProgressMoving=!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 i=n.getBoundingClientRect().left,o=n.getBoundingClientRect().width,a=function(n){var r=(n.clientX-i)/o*e.duration;l.textContent=t.format(r);var a=l.getBoundingClientRect().width;if(e.config.thumbnail){g=e.duration/c;var s=Math.floor(r/g);u.style.backgroundImage="url("+y[Math.ceil((s+1)/(f*h))-1]+")";var v=s+1-f*h*(Math.ceil((s+1)/(f*h))-1),m=Math.ceil(v/h)-1,x=v-m*h-1;u.style["background-position"]="-"+x*p+"px -"+m*d+"px";var b=n.clientX-i-p/2;b=(b=b>0?b:0)0?w:0)>o-a?o-a:w,l.style.left=w+"px"}l.style.display="block"},s=function(e){a(e)};n.addEventListener("mousemove",s,!1),n.addEventListener("mouseleave",function e(t){n.removeEventListener("mousemove",s,!1),n.removeEventListener("mouseleave",e,!1),a(t),l.style.display="none",u.style.display="none"},!1),a(r)},!1);var v=function(){!o&&n&&(o=n.getBoundingClientRect().width),"audio"===e.videoConfig.mediaType&&e.isProgressMoving||(a.style.width=100*e.currentTime/e.duration+"%")};e.on("timeupdate",v);var m=function(){var t=e.buffered;if(t&&t.length>0){for(var n=t.end(t.length-1),r=0,i=t.length;r=t.start(r)&&e.currentTime<=t.end(r)){n=t.end(r);for(var o=r+1;o=2){n=t.end(o-1);break}break}s.style.width=n/e.duration*100+"%"}},x=["bufferedChange","cacheupdate","ended","timeupdate"];x.forEach(function(t){e.on(t,m)}),e.once("destroy",function(){x.forEach(function(t){e.off(t,m)}),e.off("timeupdate",v),n=null,a=null,l=null,u=null,s=null})},r.default.install("progress",i)},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,i=[];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),i.push(e+"x")});var o=e.config.lang&&"zh-cn"===e.config.lang?"倍速":"Speed",a=t.createDom("xg-playback","

1x

",{},"xgplayer-playback"),s=e.controls,l=t.createDom("xg-tips",o,{},"xgplayer-tips");a.appendChild(l),s.appendChild(a),["touchstart","click"].forEach(function(t){a.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===i.length?0:n+1,a.querySelector("p").innerHTML=""+i[n]+"",e.video.playbackRate=1*i[n].replace(/x$/g,""))},!1)}),a.addEventListener("mouseenter",function(t){t.preventDefault(),t.stopPropagation(),l.style.left="50%";var n=l.getBoundingClientRect(),r=e.root.getBoundingClientRect();n.right>r.right&&(l.style.left=-n.right+r.right+16+"px")}),e.once("destroy",function(){a=null})})},function(e,t,n){"use strict";var r=o(n(0)),i=o(n(2));function o(e){return e&&e.__esModule?e:{default:e}}r.default.install("play",function(){var e=this,t=e.controls,n=r.default.util,o=e.config.iconScale||.0320625,a="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z",s="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z",l=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"),d=l.querySelector("path");l.appendChild(p);var f=new i.default({progress:function(e,t){d.setAttribute("d",f.toSVGString(e))},from:s,to:a,duration:50});l.className="xgplayer-play",t.appendChild(l),["click","touchstart"].forEach(function(t){l.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.ended||(e.paused?e.play():e.pause())},!1)}),e.on("play",function(){p.textContent=c,f.to!==s&&f.reset(s,a)}),e.on("pause",function(){p.textContent=u,f.to!==a&&f.reset(a,s)}),e.once("destroy",function(){l=null})})},function(e,t,n){"use strict";var r=o(n(0)),i=o(n(38));function o(e){return e&&e.__esModule?e:{default:e}}r.default.install("pip",function(){var e=this,t=r.default.util;if(e.config.pip){var n=t.createDom("xg-pip",'

画中画

',{tabindex:9},"xgplayer-pip"),o=t.createDom("xg-pip-lay","
",{},"xgplayer-pip-lay"),a=t.createDom("xg-pip-drag",'
点击按住可拖动视频
',{tabindex:9},"xgplayer-pip-drag"),s=e.controls,l=e.root;s.appendChild(n),l.appendChild(a),l.appendChild(o),new i.default(".xgplayer",{handle:".drag-handle"});var u=function(n){t.removeClass(n,"xgplayer-pip-active"),e.config.fluid&&(e.root.style["padding-top"]=100*e.config.height/e.config.width+"%")};["click","touchstart"].forEach(function(r){n.addEventListener(r,function(n){n.preventDefault(),n.stopPropagation(),t.hasClass(l,"xgplayer-pip-active")?u(l):function(n){var r=e.root.getBoundingClientRect(),i=r.top,a=r.left;t.addClass(n,"xgplayer-pip-active"),e.root.style.right=0,e.root.style.bottom="200px",e.root.style.top="",e.root.style.left="",e.config.fluid&&(e.root.style["padding-top"]=""),["click","touchstart"].forEach(function(t){o.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),u(l),e.root.style.top=i+"px",e.root.style.left=a+"px"})})}(l)})})}})},function(e,t,n){"use strict";var r,i;"function"==typeof Symbol&&Symbol.iterator; /*! * Draggabilly v2.2.0 * Make that shiz draggable diff --git a/packages/xgplayer/src/player.js b/packages/xgplayer/src/player.js index 33737fa79..e8dad4499 100755 --- a/packages/xgplayer/src/player.js +++ b/packages/xgplayer/src/player.js @@ -60,20 +60,29 @@ class Player extends Proxy { this.root.style.width = `${this.config.width}px` this.root.style.height = `${this.config.height}px` } - if (Player.plugins) { - let ignores = this.config.ignores - Object.keys(Player.plugins).forEach(name => { - let descriptor = Player.plugins[name] - if (!ignores.some(item => name === item)) { - if (['pc', 'tablet', 'mobile'].some(type => type === name)) { - if (name === sniffer.device) { - descriptor.call(this, this) + if (this.config.controlStyle && util.typeOf(this.config.controlStyle) === 'String') { + let self = this + fetch(self.config.controlStyle, { + method: 'GET', + headers: { + Accept: 'application/json' + } + }).then(function (res) { + if (res.ok) { + res.json().then(function (obj) { + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + self.config[prop] = obj[prop] + } } - } else { - descriptor.call(this, this) - } + self.pluginsCall() + }) } + }).catch(function (err) { + console.log('Fetch错误:' + err) }) + } else { + this.pluginsCall() } this.ev.forEach((item) => { let evName = Object.keys(item)[0] @@ -228,6 +237,24 @@ class Player extends Proxy { } } + pluginsCall () { + if (Player.plugins) { + let ignores = this.config.ignores + Object.keys(Player.plugins).forEach(name => { + let descriptor = Player.plugins[name] + if (!ignores.some(item => name === item)) { + if (['pc', 'tablet', 'mobile'].some(type => type === name)) { + if (name === sniffer.device) { + descriptor.call(this, this) + } + } else { + descriptor.call(this, this) + } + } + }) + } + } + onFocus () { let player = this util.removeClass(this.root, 'xgplayer-inactive')