mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-27 01:21:20 -08:00
1 parent
e4196f53d9
commit
02953257f7
27 files changed
+1544
-1254
No files matched your search
Vendored
+549
-410
File diff suppressed because it is too large.
Load diff
@@ -4,4 +4,4 @@
|
|||||||
* (c) 2017-2022 Harvey Zack
|
* (c) 2017-2022 Harvey Zack
|
||||||
* Released under the MIT License.
|
* Released under the MIT License.
|
||||||
*/
|
*/
|
||||||
!function(e,n,l,t,i){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},r="function"==typeof a.parcelRequirea5da&&a.parcelRequirea5da,o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(n,l){if(!o[n]){if(!e[n]){var t="function"==typeof a.parcelRequirea5da&&a.parcelRequirea5da;if(!l&&t)return t(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}u.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},u.cache={};var s=o[n]=new p.Module(n);e[n][0].call(s.exports,u,s,s.exports,this)}return o[n].exports;function u(e){var n=u.resolve(e);return!1===n?{}:p(n)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=o,p.parent=r,p.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(p,"root",{get:function(){return a.parcelRequirea5da}}),a.parcelRequirea5da=p;for(var s=0;s<n.length;s++)p(n[s]);var u=p(l);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define((function(){return u}))}({E13ST:[function(e,n,l){var t=e("@parcel/transformer-js/src/esmodule-helpers.js");t.defineInteropFlag(l);var i=e("bundle-text:./style.less"),a=t.interopDefault(i);function r(e){return n=>{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:p,append:s,setStyle:u}}}=n;e=d({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let c=null,y=null,f=null,g=null,m=null,v=null,x=0,h=null,b=!1,w=!1,D=!1;function j(e,n){return n.replace("%s",e)}function k(){b=!0,n.play(),e.video&&c.pause(),u(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function O(){b||(h=setTimeout((()=>{x+=1;const n=e.playDuration-x;n>=1?f.innerHTML=j(n,e.i18n.canBeClosed):(f.innerHTML=e.i18n.close,D||(D=!0)),g.innerHTML=j(e.totalDuration-x,e.i18n.countdown),x>=e.totalDuration?k():O()}),1e3))}function $(){b||clearTimeout(h)}function P(){w||(w=!0,function(){n.template.$ads=s(l,'<div class="artplayer-plugin-ads"></div>'),c=s(n.template.$ads,e.video?`<video class="artplayer-plugin-ads-video" src="${e.video}" loop playsInline></video>`:`<div class="artplayer-plugin-ads-html">${e.html}</div>`),v=s(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),s(v,o),y=s(n.template.$ads,`<div class="artplayer-plugin-ads-timer"><div class="artplayer-plugin-ads-close">${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}</div><div class="artplayer-plugin-ads-countdown">${j(e.totalDuration,e.i18n.countdown)}</div></div>`),f=p(".artplayer-plugin-ads-close",y),g=p(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=s(n.template.$ads,`<div class="artplayer-plugin-ads-control"><div class="artplayer-plugin-ads-detail">${e.i18n.detail}</div><div class="artplayer-plugin-ads-muted"></div><div class="artplayer-plugin-ads-fullscreen"></div></div>`);const d=p(".artplayer-plugin-ads-detail",m),x=p(".artplayer-plugin-ads-muted",m),h=p(".artplayer-plugin-ads-fullscreen",m);if(e.url?n.proxy(d,"click",(()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)})):u(d,"display","none"),e.video){const l=s(x,t),a=s(x,i);u(a,"display","none"),e.muted&&(c.muted=!0,u(l,"display","none"),u(a,"display","inline-flex")),n.proxy(x,"click",(()=>{c.muted=!c.muted,c.muted?(u(l,"display","none"),u(a,"display","inline-flex")):(u(l,"display","inline-flex"),u(a,"display","none"))}))}else u(x,"display","none");const b=s(h,a),w=s(h,r);u(w,"display","none"),n.proxy(h,"click",(()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(u(b,"display","inline-flex"),u(w,"display","none")):(u(b,"display","none"),u(w,"display","inline-flex"))})),n.proxy(c,"click",(()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)}))}(),n.pause(),e.video?(n.proxy(c,"error",k),n.proxy(c,"loadedmetadata",(()=>{O(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):(O(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")),n.proxy(document,"visibilitychange",(()=>{document.hidden?$():O()})))}return n.on("ready",(()=>{n.once("play",P),n.once("video:playing",P)})),{name:"artplayerPluginAds",skip:k,pause:$,play:O}}}if(l.default=r,r.env="production",r.version="1.0.6",r.build="2022-10-08 09:50:34","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("stylLine truncated
|
!function(e,n,l,t,i){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},r="function"==typeof a.parcelRequirea5da&&a.parcelRequirea5da,o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(n,l){if(!o[n]){if(!e[n]){var t="function"==typeof a.parcelRequirea5da&&a.parcelRequirea5da;if(!l&&t)return t(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}u.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},u.cache={};var s=o[n]=new p.Module(n);e[n][0].call(s.exports,u,s,s.exports,this)}return o[n].exports;function u(e){var n=u.resolve(e);return!1===n?{}:p(n)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=o,p.parent=r,p.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(p,"root",{get:function(){return a.parcelRequirea5da}}),a.parcelRequirea5da=p;for(var s=0;s<n.length;s++)p(n[s]);var u=p(l);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define((function(){return u}))}({E13ST:[function(e,n,l){var t=e("@parcel/transformer-js/src/esmodule-helpers.js");t.defineInteropFlag(l);var i=e("bundle-text:./style.less"),a=t.interopDefault(i);function r(e){return n=>{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:p,append:s,setStyle:u}}}=n;e=d({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let c=null,y=null,f=null,g=null,m=null,v=null,x=0,h=null,b=!1,w=!1,D=!1;function j(e,n){return n.replace("%s",e)}function k(){b=!0,n.play(),e.video&&c.pause(),u(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function O(){b||(h=setTimeout((()=>{x+=1;const n=e.playDuration-x;n>=1?f.innerHTML=j(n,e.i18n.canBeClosed):(f.innerHTML=e.i18n.close,D||(D=!0)),g.innerHTML=j(e.totalDuration-x,e.i18n.countdown),x>=e.totalDuration?k():O()}),1e3))}function $(){b||clearTimeout(h)}function P(){w||(w=!0,function(){n.template.$ads=s(l,'<div class="artplayer-plugin-ads"></div>'),c=s(n.template.$ads,e.video?`<video class="artplayer-plugin-ads-video" src="${e.video}" loop playsInline></video>`:`<div class="artplayer-plugin-ads-html">${e.html}</div>`),v=s(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),s(v,o),y=s(n.template.$ads,`<div class="artplayer-plugin-ads-timer"><div class="artplayer-plugin-ads-close">${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}</div><div class="artplayer-plugin-ads-countdown">${j(e.totalDuration,e.i18n.countdown)}</div></div>`),f=p(".artplayer-plugin-ads-close",y),g=p(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=s(n.template.$ads,`<div class="artplayer-plugin-ads-control"><div class="artplayer-plugin-ads-detail">${e.i18n.detail}</div><div class="artplayer-plugin-ads-muted"></div><div class="artplayer-plugin-ads-fullscreen"></div></div>`);const d=p(".artplayer-plugin-ads-detail",m),x=p(".artplayer-plugin-ads-muted",m),h=p(".artplayer-plugin-ads-fullscreen",m);if(e.url?n.proxy(d,"click",(()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)})):u(d,"display","none"),e.video){const l=s(x,t),a=s(x,i);u(a,"display","none"),e.muted&&(c.muted=!0,u(l,"display","none"),u(a,"display","inline-flex")),n.proxy(x,"click",(()=>{c.muted=!c.muted,c.muted?(u(l,"display","none"),u(a,"display","inline-flex")):(u(l,"display","inline-flex"),u(a,"display","none"))}))}else u(x,"display","none");const b=s(h,a),w=s(h,r);u(w,"display","none"),n.proxy(h,"click",(()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(u(b,"display","inline-flex"),u(w,"display","none")):(u(b,"display","none"),u(w,"display","inline-flex"))})),n.proxy(c,"click",(()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)}))}(),n.pause(),e.video?(n.proxy(c,"error",k),n.proxy(c,"loadedmetadata",(()=>{O(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):(O(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")),n.proxy(document,"visibilitychange",(()=>{document.hidden?$():O()})))}return n.on("ready",(()=>{n.once("play",P),n.once("video:playing",P)})),{name:"artplayerPluginAds",skip:k,pause:$,play:O}}}if(l.default=r,r.env="production",r.version="1.0.6",r.build="2022-10-09 15:14:25","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("stylLine truncated
|
||||||
@@ -4,4 +4,4 @@
|
|||||||
* (c) 2017-2022 Harvey Zack
|
* (c) 2017-2022 Harvey Zack
|
||||||
* Released under the MIT License.
|
* Released under the MIT License.
|
||||||
*/
|
*/
|
||||||
!function(t,e,n,i,r){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof a.parcelRequire93cf&&a.parcelRequire93cf,s=o.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(e,n){if(!s[e]){if(!t[e]){var i="function"==typeof a.parcelRequire93cf&&a.parcelRequire93cf;if(!n&&i)return i(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}m.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},m.cache={};var d=s[e]=new u.Module(e);t[e][0].call(d.exports,m,d,d.exports,this)}return s[e].exports;function m(t){var e=m.resolve(t);return!1===e?{}:u(e)}}u.isParcelRequire=!0,u.Module=function(t){this.id=t,this.bundle=u,this.exports={}},u.modules=t,u.cache=s,u.parent=o,u.register=function(e,n){t[e]=[function(t,e){e.exports=n},{}]},Object.defineProperty(u,"root",{get:function(){return a.parcelRequire93cf}}),a.parcelRequire93cf=u;for(var d=0;d<e.length;d++)u(e[d]);var m=u(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define((function(){return m}))}({E13ST:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("./danmuku"),a=i.interopDefault(r),o=t("./setting"),s=i.interopDefault(o);function l(t){return e=>{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=4.04,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 4.4.x 版本以上`)}(e);const n=new(0,a.default)(e,t);return(0,s.default)(e,n),{name:"artplayerPluginDanmuku",emit:n.emit.bind(n),load:n.load.bind(n),config:n.config.bind(n),hide:n.hide.bind(n),show:n.show.bind(n),reset:n.reset.bind(n),get option(){return n.option},get isHide(){return n.isHide},get isStop(){return n.isStop}}}}n.default=l,l.env="production",l.version="4.4.10",l.build="2022-10-08 09:50:35","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"8Gtnh","./setting":"jAkJm","@parcel/transformer-js/src/esmodule-helpers.js":"9v6Cv"}],"8Gtnh":[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("./bilibili"),a=t("./getDanmuTop"),o=i.interopDefault(a);class s{constructor(e,n){const{constructor:i,template:r}=e;if(this.utils=i.utils,this.validator=i.validator,this.$danmuku=r.$danmuku,this.$player=r.$player,this.art=e,this.queue=[],this.option={},this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.config(n),this.option.useWorker)try{this.worker=new Worker(t("27c3930ee158179a"))}catch(t){}this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.destroy=this.destroy.bind(this),e.on("video:play",this.start),e.on("video:playing",this.start),e.on("video:pause",this.stop),e.on("video:waiting",this.stop),e.on("fullscreen",this.reset),e.on("fullscreenWeb",this.reset),e.on("destroy",this.destroy),this.load()}static get option(){return{danmuku:[],speed:5,margin:["2%","25%"],opacity:1,color:"#FFFFFF",mode:0,fontSize:25,filter:()=>!0,antiOverlap:!0,useWorker:!0,synchronousPlayback:!1,lockTime:5,maxLength:100,minWidth:200,maxWidth:400,mount:void 0,theme:"dark",beforeEmit:()=>!0}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",color:"string",mode:"number",fontSize:"number|string",filter:"function",antiOverlap:"boolean",useWorker:"boolean",synchronousPlayback:"boolean",lockTime:"number",maxLength:"number",minWidth:"number",maxWidth:"number",mount:"undefined|htmldivelement",theme:"string",beforeEmit:"function"}}get isRotate(){return this.art.plugins.autoOrientation&&this.art.plugins.autoOrientation.state}get marginTop(){const{clamp:t}=this.utils,e=this.option.margin[0],{clientHeight:n}=this.$player;if("number"==typeof e)return t(e,0,n);if("string"==typeof e&&e.endsWith("%")){return t(n*(parseFloat(e)/100),0,n)}return s.option.margin[0]}get marginBottom(){const{clamp:t}=this.utils,e=this.option.margin[1],{clientHeight:n}=this.$player;if("number"==typeof e)return t(e,0,n);if("string"==typeof e&&e.endsWith("%")){return t(n*(parseFloat(e)/100),0,n)}return s.option.margin[1]}filter(t,e){return this.queue.filter((e=>e.$state===t)).map(e)}getLeft(t){const e=t.getBoundingClientRect();return this.isRotate?e.top:e.left}getRef(){const t=this.$refs.pop();if(t)return t;const e=document.createElement("div");return e.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, "Microsoft JhenLine truncated
|
!function(t,e,n,i,r){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof a.parcelRequire93cf&&a.parcelRequire93cf,s=o.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(e,n){if(!s[e]){if(!t[e]){var i="function"==typeof a.parcelRequire93cf&&a.parcelRequire93cf;if(!n&&i)return i(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}m.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},m.cache={};var d=s[e]=new u.Module(e);t[e][0].call(d.exports,m,d,d.exports,this)}return s[e].exports;function m(t){var e=m.resolve(t);return!1===e?{}:u(e)}}u.isParcelRequire=!0,u.Module=function(t){this.id=t,this.bundle=u,this.exports={}},u.modules=t,u.cache=s,u.parent=o,u.register=function(e,n){t[e]=[function(t,e){e.exports=n},{}]},Object.defineProperty(u,"root",{get:function(){return a.parcelRequire93cf}}),a.parcelRequire93cf=u;for(var d=0;d<e.length;d++)u(e[d]);var m=u(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define((function(){return m}))}({E13ST:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("./danmuku"),a=i.interopDefault(r),o=t("./setting"),s=i.interopDefault(o);function l(t){return e=>{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=4.04,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 4.4.x 版本以上`)}(e);const n=new(0,a.default)(e,t);return(0,s.default)(e,n),{name:"artplayerPluginDanmuku",emit:n.emit.bind(n),load:n.load.bind(n),config:n.config.bind(n),hide:n.hide.bind(n),show:n.show.bind(n),reset:n.reset.bind(n),get option(){return n.option},get isHide(){return n.isHide},get isStop(){return n.isStop}}}}n.default=l,l.env="production",l.version="4.4.10",l.build="2022-10-09 15:14:27","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"8Gtnh","./setting":"jAkJm","@parcel/transformer-js/src/esmodule-helpers.js":"9v6Cv"}],"8Gtnh":[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("./bilibili"),a=t("./getDanmuTop"),o=i.interopDefault(a);class s{constructor(e,n){const{constructor:i,template:r}=e;if(this.utils=i.utils,this.validator=i.validator,this.$danmuku=r.$danmuku,this.$player=r.$player,this.art=e,this.queue=[],this.option={},this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.config(n),this.option.useWorker)try{this.worker=new Worker(t("27c3930ee158179a"))}catch(t){}this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.destroy=this.destroy.bind(this),e.on("video:play",this.start),e.on("video:playing",this.start),e.on("video:pause",this.stop),e.on("video:waiting",this.stop),e.on("fullscreen",this.reset),e.on("fullscreenWeb",this.reset),e.on("destroy",this.destroy),this.load()}static get option(){return{danmuku:[],speed:5,margin:["2%","25%"],opacity:1,color:"#FFFFFF",mode:0,fontSize:25,filter:()=>!0,antiOverlap:!0,useWorker:!0,synchronousPlayback:!1,lockTime:5,maxLength:100,minWidth:200,maxWidth:400,mount:void 0,theme:"dark",beforeEmit:()=>!0}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",color:"string",mode:"number",fontSize:"number|string",filter:"function",antiOverlap:"boolean",useWorker:"boolean",synchronousPlayback:"boolean",lockTime:"number",maxLength:"number",minWidth:"number",maxWidth:"number",mount:"undefined|htmldivelement",theme:"string",beforeEmit:"function"}}get isRotate(){return this.art.plugins.autoOrientation&&this.art.plugins.autoOrientation.state}get marginTop(){const{clamp:t}=this.utils,e=this.option.margin[0],{clientHeight:n}=this.$player;if("number"==typeof e)return t(e,0,n);if("string"==typeof e&&e.endsWith("%")){return t(n*(parseFloat(e)/100),0,n)}return s.option.margin[0]}get marginBottom(){const{clamp:t}=this.utils,e=this.option.margin[1],{clientHeight:n}=this.$player;if("number"==typeof e)return t(e,0,n);if("string"==typeof e&&e.endsWith("%")){return t(n*(parseFloat(e)/100),0,n)}return s.option.margin[1]}filter(t,e){return this.queue.filter((e=>e.$state===t)).map(e)}getLeft(t){const e=t.getBoundingClientRect();return this.isRotate?e.top:e.left}getRef(){const t=this.$refs.pop();if(t)return t;const e=document.createElement("div");return e.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, "Microsoft JhenLine truncated
|
||||||
@@ -4,4 +4,4 @@
|
|||||||
* (c) 2017-2022 Harvey Zack
|
* (c) 2017-2022 Harvey Zack
|
||||||
* Released under the MIT License.
|
* Released under the MIT License.
|
||||||
*/
|
*/
|
||||||
!function(e,t,r,o,i){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},n="function"==typeof a.parcelRequireb749&&a.parcelRequireb749,s=n.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(t,r){if(!s[t]){if(!e[t]){var o="function"==typeof a.parcelRequireb749&&a.parcelRequireb749;if(!r&&o)return o(t,!0);if(n)return n(t,!0);if(l&&"string"==typeof t)return l(t);var i=new Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}u.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},u.cache={};var p=s[t]=new c.Module(t);e[t][0].call(p.exports,u,p,p.exports,this)}return s[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:c(t)}}c.isParcelRequire=!0,c.Module=function(e){this.id=e,this.bundle=c,this.exports={}},c.modules=e,c.cache=s,c.parent=n,c.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(c,"root",{get:function(){return a.parcelRequireb749}}),a.parcelRequireb749=c;for(var p=0;p<t.length;p++)c(t[p]);var u=c(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define((function(){return u}))}({E13ST:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("bundle-text:./style/index.less"),a=o.interopDefault(i),n=e("option-validator"),s=o.interopDefault(n),l=e("./utils/emitter"),c=o.interopDefault(l),p=e("./utils"),u=e("./scheme"),d=o.interopDefault(u),f=e("./config"),h=o.interopDefault(f),m=e("./whitelist"),g=o.interopDefault(m),v=e("./template"),y=o.interopDefault(v),b=e("./i18n"),x=o.interopDefault(b),w=e("./player"),j=o.interopDefault(w),k=e("./control"),S=o.interopDefault(k),I=e("./contextmenu"),C=o.interopDefault(I),F=e("./info"),$=o.interopDefault(F),M=e("./subtitle"),E=o.interopDefault(M),P=e("./events"),T=o.interopDefault(P),z=e("./hotkey"),D=o.interopDefault(z),A=e("./layer"),R=o.interopDefault(A),O=e("./loading"),L=o.interopDefault(O),N=e("./notice"),H=o.interopDefault(N),V=e("./mask"),Y=o.interopDefault(V),_=e("./icons"),q=o.interopDefault(_),W=e("./setting"),B=o.interopDefault(W),U=e("./storage"),Z=o.interopDefault(U),X=e("./plugins"),G=o.interopDefault(X),K=e("./mobile"),J=o.interopDefault(K);let Q=0;const ee=[];class te extends c.default{constructor(e,t){super(),this.id=++Q;const r=p.mergeDeep(te.option,e);if(this.option=(0,s.default)(r,d.default),this.isLock=!1,this.isReady=!1,this.isFocus=!1,this.isInput=!1,this.isRotate=!1,this.isDestroy=!1,this.whitelist=new(0,g.default)(this),this.template=new(0,y.default)(this),this.events=new(0,T.default)(this),this.whitelist.state?(this.storage=new(0,Z.default)(this),this.icons=new(0,q.default)(this),this.i18n=new(0,x.default)(this),this.notice=new(0,H.default)(this),this.player=new(0,j.default)(this),this.layers=new(0,R.default)(this),this.controls=new(0,S.default)(this),this.contextmenu=new(0,C.default)(this),this.subtitle=new(0,E.default)(this),this.info=new(0,$.default)(this),this.loading=new(0,L.default)(this),this.hotkey=new(0,D.default)(this),this.mask=new(0,Y.default)(this),this.setting=new(0,B.default)(this),this.plugins=new(0,G.default)(this)):this.mobile=new(0,J.default)(this),"function"==typeof t&&this.on("ready",(()=>t.call(this))),te.DEGUG){const e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+te.version),e("Env@"+te.env),e("Build@"+te.build);for(let t=0;t<h.default.events.length;t++)this.on("video:"+h.default.events[t],(t=>e("Event@"+t.type)))}ee.push(this)}static get instances(){return ee}static get version(){return"4.5.8"}static get env(){return"production"}static get build(){return"2022-10-08 09:50:31"}static get config(){return h.default}static get utils(){return p}static get scheme(){return d.default}static get Emitter(){return c.default}static get validator(){return s.default}static get kindOf(){return s.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",title:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,column:10,width:0,height:0},subtitle:{url:"",type:"",style:{},encoding:"utf-8"},moreVideoAttr:{controls:!1,preload:p.isSafari?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}destroy(e=!0){this.events.destroy(),this.template.destroy(e),ee.splice(ee.indexOf(this),1),this.isDestroy=!0,this.eLine truncated
|
!function(e,t,r,o,i){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},n="function"==typeof a.parcelRequireb749&&a.parcelRequireb749,s=n.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(t,r){if(!s[t]){if(!e[t]){var o="function"==typeof a.parcelRequireb749&&a.parcelRequireb749;if(!r&&o)return o(t,!0);if(n)return n(t,!0);if(l&&"string"==typeof t)return l(t);var i=new Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}u.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},u.cache={};var p=s[t]=new c.Module(t);e[t][0].call(p.exports,u,p,p.exports,this)}return s[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:c(t)}}c.isParcelRequire=!0,c.Module=function(e){this.id=e,this.bundle=c,this.exports={}},c.modules=e,c.cache=s,c.parent=n,c.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(c,"root",{get:function(){return a.parcelRequireb749}}),a.parcelRequireb749=c;for(var p=0;p<t.length;p++)c(t[p]);var u=c(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define((function(){return u}))}({E13ST:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("bundle-text:./style/index.less"),a=o.interopDefault(i),n=e("option-validator"),s=o.interopDefault(n),l=e("./utils/emitter"),c=o.interopDefault(l),p=e("./utils"),u=e("./scheme"),d=o.interopDefault(u),f=e("./config"),h=o.interopDefault(f),m=e("./whitelist"),g=o.interopDefault(m),v=e("./template"),y=o.interopDefault(v),b=e("./i18n"),x=o.interopDefault(b),w=e("./player"),j=o.interopDefault(w),k=e("./control"),S=o.interopDefault(k),I=e("./contextmenu"),C=o.interopDefault(I),F=e("./info"),$=o.interopDefault(F),M=e("./subtitle"),E=o.interopDefault(M),P=e("./events"),T=o.interopDefault(P),z=e("./hotkey"),D=o.interopDefault(z),A=e("./layer"),R=o.interopDefault(A),O=e("./loading"),L=o.interopDefault(O),N=e("./notice"),H=o.interopDefault(N),V=e("./mask"),Y=o.interopDefault(V),_=e("./icons"),q=o.interopDefault(_),W=e("./setting"),B=o.interopDefault(W),U=e("./storage"),Z=o.interopDefault(U),X=e("./plugins"),G=o.interopDefault(X),K=e("./mobile"),J=o.interopDefault(K);let Q=0;const ee=[];class te extends c.default{constructor(e,t){super(),this.id=++Q;const r=p.mergeDeep(te.option,e);if(this.option=(0,s.default)(r,d.default),this.isLock=!1,this.isReady=!1,this.isFocus=!1,this.isInput=!1,this.isRotate=!1,this.isDestroy=!1,this.whitelist=new(0,g.default)(this),this.template=new(0,y.default)(this),this.events=new(0,T.default)(this),this.whitelist.state?(this.storage=new(0,Z.default)(this),this.icons=new(0,q.default)(this),this.i18n=new(0,x.default)(this),this.notice=new(0,H.default)(this),this.player=new(0,j.default)(this),this.layers=new(0,R.default)(this),this.controls=new(0,S.default)(this),this.contextmenu=new(0,C.default)(this),this.subtitle=new(0,E.default)(this),this.info=new(0,$.default)(this),this.loading=new(0,L.default)(this),this.hotkey=new(0,D.default)(this),this.mask=new(0,Y.default)(this),this.setting=new(0,B.default)(this),this.plugins=new(0,G.default)(this)):this.mobile=new(0,J.default)(this),"function"==typeof t&&this.on("ready",(()=>t.call(this))),te.DEGUG){const e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+te.version),e("Env@"+te.env),e("Build@"+te.build);for(let t=0;t<h.default.events.length;t++)this.on("video:"+h.default.events[t],(t=>e("Event@"+t.type)))}ee.push(this)}static get instances(){return ee}static get version(){return"4.5.8"}static get env(){return"production"}static get build(){return"2022-10-09 15:14:22"}static get config(){return h.default}static get utils(){return p}static get scheme(){return d.default}static get Emitter(){return c.default}static get validator(){return s.default}static get kindOf(){return s.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",title:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,column:10,width:0,height:0},subtitle:{url:"",type:"",style:{},encoding:"utf-8"},moreVideoAttr:{controls:!1,preload:p.isSafari?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}destroy(e=!0){this.events.destroy(),this.template.destroy(e),ee.splice(ee.indexOf(this),1),this.isDestroy=!0,this.eLine truncated
|
||||||
@@ -248,7 +248,7 @@ class Artplayer extends (0, _emitterDefault.default) {
|
|||||||
return "development";
|
return "development";
|
||||||
}
|
}
|
||||||
static get build() {
|
static get build() {
|
||||||
return "2022-10-09 08:34:12";
|
return "2022-10-09 14:08:18";
|
||||||
}
|
}
|
||||||
static get config() {
|
static get config() {
|
||||||
return 0, _configDefault.default;
|
return 0, _configDefault.default;
|
||||||
|
|||||||
+3
-2
@@ -4,10 +4,11 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "ArtPlayer.js is a modern and full featured HTML5 video player",
|
"description": "ArtPlayer.js is a modern and full featured HTML5 video player",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build:all": "npm run build all",
|
"build:all": "npm run build all && npm run build:sw && npm run build:ts",
|
||||||
"bootstrap": "npx lerna bootstrap --hoist",
|
"bootstrap": "npx lerna bootstrap --hoist",
|
||||||
"lint": "npx eslint packages/*/src",
|
"lint": "npx eslint packages/*/src",
|
||||||
"build:sw": "node ./scripts/build-sw.js",
|
"build:sw": "node ./scripts/build-sw.js",
|
||||||
|
"build:ts": "node ./scripts/build-ts.js",
|
||||||
"test:create": "node ./scripts/createTests.js",
|
"test:create": "node ./scripts/createTests.js",
|
||||||
"dev": "npx cross-env NODE_ENV=development node ./scripts/dev.js",
|
"dev": "npx cross-env NODE_ENV=development node ./scripts/dev.js",
|
||||||
"build": "npx cross-env NODE_ENV=production node ./scripts/build.js",
|
"build": "npx cross-env NODE_ENV=production node ./scripts/build.js",
|
||||||
@@ -57,4 +58,4 @@
|
|||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16.0.0"
|
"node": ">= 16.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,4 +4,4 @@
|
|||||||
* (c) 2017-2022 Harvey Zack
|
* (c) 2017-2022 Harvey Zack
|
||||||
* Released under the MIT License.
|
* Released under the MIT License.
|
||||||
*/
|
*/
|
||||||
!function(e,n,l,t,i){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},r="function"==typeof a.parcelRequirea5da&&a.parcelRequirea5da,o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(n,l){if(!o[n]){if(!e[n]){var t="function"==typeof a.parcelRequirea5da&&a.parcelRequirea5da;if(!l&&t)return t(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}u.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},u.cache={};var s=o[n]=new p.Module(n);e[n][0].call(s.exports,u,s,s.exports,this)}return o[n].exports;function u(e){var n=u.resolve(e);return!1===n?{}:p(n)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=o,p.parent=r,p.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(p,"root",{get:function(){return a.parcelRequirea5da}}),a.parcelRequirea5da=p;for(var s=0;s<n.length;s++)p(n[s]);var u=p(l);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define((function(){return u}))}({E13ST:[function(e,n,l){var t=e("@parcel/transformer-js/src/esmodule-helpers.js");t.defineInteropFlag(l);var i=e("bundle-text:./style.less"),a=t.interopDefault(i);function r(e){return n=>{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:p,append:s,setStyle:u}}}=n;e=d({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let c=null,y=null,f=null,g=null,m=null,v=null,x=0,h=null,b=!1,w=!1,D=!1;function j(e,n){return n.replace("%s",e)}function k(){b=!0,n.play(),e.video&&c.pause(),u(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function O(){b||(h=setTimeout((()=>{x+=1;const n=e.playDuration-x;n>=1?f.innerHTML=j(n,e.i18n.canBeClosed):(f.innerHTML=e.i18n.close,D||(D=!0)),g.innerHTML=j(e.totalDuration-x,e.i18n.countdown),x>=e.totalDuration?k():O()}),1e3))}function $(){b||clearTimeout(h)}function P(){w||(w=!0,function(){n.template.$ads=s(l,'<div class="artplayer-plugin-ads"></div>'),c=s(n.template.$ads,e.video?`<video class="artplayer-plugin-ads-video" src="${e.video}" loop playsInline></video>`:`<div class="artplayer-plugin-ads-html">${e.html}</div>`),v=s(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),s(v,o),y=s(n.template.$ads,`<div class="artplayer-plugin-ads-timer"><div class="artplayer-plugin-ads-close">${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}</div><div class="artplayer-plugin-ads-countdown">${j(e.totalDuration,e.i18n.countdown)}</div></div>`),f=p(".artplayer-plugin-ads-close",y),g=p(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=s(n.template.$ads,`<div class="artplayer-plugin-ads-control"><div class="artplayer-plugin-ads-detail">${e.i18n.detail}</div><div class="artplayer-plugin-ads-muted"></div><div class="artplayer-plugin-ads-fullscreen"></div></div>`);const d=p(".artplayer-plugin-ads-detail",m),x=p(".artplayer-plugin-ads-muted",m),h=p(".artplayer-plugin-ads-fullscreen",m);if(e.url?n.proxy(d,"click",(()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)})):u(d,"display","none"),e.video){const l=s(x,t),a=s(x,i);u(a,"display","none"),e.muted&&(c.muted=!0,u(l,"display","none"),u(a,"display","inline-flex")),n.proxy(x,"click",(()=>{c.muted=!c.muted,c.muted?(u(l,"display","none"),u(a,"display","inline-flex")):(u(l,"display","inline-flex"),u(a,"display","none"))}))}else u(x,"display","none");const b=s(h,a),w=s(h,r);u(w,"display","none"),n.proxy(h,"click",(()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(u(b,"display","inline-flex"),u(w,"display","none")):(u(b,"display","none"),u(w,"display","inline-flex"))})),n.proxy(c,"click",(()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)}))}(),n.pause(),e.video?(n.proxy(c,"error",k),n.proxy(c,"loadedmetadata",(()=>{O(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):(O(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")),n.proxy(document,"visibilitychange",(()=>{document.hidden?$():O()})))}return n.on("ready",(()=>{n.once("play",P),n.once("video:playing",P)})),{name:"artplayerPluginAds",skip:k,pause:$,play:O}}}if(l.default=r,r.env="production",r.version="1.0.6",r.build="2022-10-08 09:50:34","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("stylLine truncated
|
!function(e,n,l,t,i){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},r="function"==typeof a.parcelRequirea5da&&a.parcelRequirea5da,o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(n,l){if(!o[n]){if(!e[n]){var t="function"==typeof a.parcelRequirea5da&&a.parcelRequirea5da;if(!l&&t)return t(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}u.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},u.cache={};var s=o[n]=new p.Module(n);e[n][0].call(s.exports,u,s,s.exports,this)}return o[n].exports;function u(e){var n=u.resolve(e);return!1===n?{}:p(n)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=o,p.parent=r,p.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(p,"root",{get:function(){return a.parcelRequirea5da}}),a.parcelRequirea5da=p;for(var s=0;s<n.length;s++)p(n[s]);var u=p(l);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define((function(){return u}))}({E13ST:[function(e,n,l){var t=e("@parcel/transformer-js/src/esmodule-helpers.js");t.defineInteropFlag(l);var i=e("bundle-text:./style.less"),a=t.interopDefault(i);function r(e){return n=>{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:p,append:s,setStyle:u}}}=n;e=d({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let c=null,y=null,f=null,g=null,m=null,v=null,x=0,h=null,b=!1,w=!1,D=!1;function j(e,n){return n.replace("%s",e)}function k(){b=!0,n.play(),e.video&&c.pause(),u(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function O(){b||(h=setTimeout((()=>{x+=1;const n=e.playDuration-x;n>=1?f.innerHTML=j(n,e.i18n.canBeClosed):(f.innerHTML=e.i18n.close,D||(D=!0)),g.innerHTML=j(e.totalDuration-x,e.i18n.countdown),x>=e.totalDuration?k():O()}),1e3))}function $(){b||clearTimeout(h)}function P(){w||(w=!0,function(){n.template.$ads=s(l,'<div class="artplayer-plugin-ads"></div>'),c=s(n.template.$ads,e.video?`<video class="artplayer-plugin-ads-video" src="${e.video}" loop playsInline></video>`:`<div class="artplayer-plugin-ads-html">${e.html}</div>`),v=s(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),s(v,o),y=s(n.template.$ads,`<div class="artplayer-plugin-ads-timer"><div class="artplayer-plugin-ads-close">${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}</div><div class="artplayer-plugin-ads-countdown">${j(e.totalDuration,e.i18n.countdown)}</div></div>`),f=p(".artplayer-plugin-ads-close",y),g=p(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=s(n.template.$ads,`<div class="artplayer-plugin-ads-control"><div class="artplayer-plugin-ads-detail">${e.i18n.detail}</div><div class="artplayer-plugin-ads-muted"></div><div class="artplayer-plugin-ads-fullscreen"></div></div>`);const d=p(".artplayer-plugin-ads-detail",m),x=p(".artplayer-plugin-ads-muted",m),h=p(".artplayer-plugin-ads-fullscreen",m);if(e.url?n.proxy(d,"click",(()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)})):u(d,"display","none"),e.video){const l=s(x,t),a=s(x,i);u(a,"display","none"),e.muted&&(c.muted=!0,u(l,"display","none"),u(a,"display","inline-flex")),n.proxy(x,"click",(()=>{c.muted=!c.muted,c.muted?(u(l,"display","none"),u(a,"display","inline-flex")):(u(l,"display","inline-flex"),u(a,"display","none"))}))}else u(x,"display","none");const b=s(h,a),w=s(h,r);u(w,"display","none"),n.proxy(h,"click",(()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(u(b,"display","inline-flex"),u(w,"display","none")):(u(b,"display","none"),u(w,"display","inline-flex"))})),n.proxy(c,"click",(()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)}))}(),n.pause(),e.video?(n.proxy(c,"error",k),n.proxy(c,"loadedmetadata",(()=>{O(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):(O(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")),n.proxy(document,"visibilitychange",(()=>{document.hidden?$():O()})))}return n.on("ready",(()=>{n.once("play",P),n.once("video:playing",P)})),{name:"artplayerPluginAds",skip:k,pause:$,play:O}}}if(l.default=r,r.env="production",r.version="1.0.6",r.build="2022-10-09 15:14:25","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("stylLine truncated
|
||||||
@@ -4,4 +4,4 @@
|
|||||||
* (c) 2017-2022 Harvey Zack
|
* (c) 2017-2022 Harvey Zack
|
||||||
* Released under the MIT License.
|
* Released under the MIT License.
|
||||||
*/
|
*/
|
||||||
!function(t,e,n,i,r){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof a.parcelRequire93cf&&a.parcelRequire93cf,s=o.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(e,n){if(!s[e]){if(!t[e]){var i="function"==typeof a.parcelRequire93cf&&a.parcelRequire93cf;if(!n&&i)return i(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}m.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},m.cache={};var d=s[e]=new u.Module(e);t[e][0].call(d.exports,m,d,d.exports,this)}return s[e].exports;function m(t){var e=m.resolve(t);return!1===e?{}:u(e)}}u.isParcelRequire=!0,u.Module=function(t){this.id=t,this.bundle=u,this.exports={}},u.modules=t,u.cache=s,u.parent=o,u.register=function(e,n){t[e]=[function(t,e){e.exports=n},{}]},Object.defineProperty(u,"root",{get:function(){return a.parcelRequire93cf}}),a.parcelRequire93cf=u;for(var d=0;d<e.length;d++)u(e[d]);var m=u(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define((function(){return m}))}({E13ST:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("./danmuku"),a=i.interopDefault(r),o=t("./setting"),s=i.interopDefault(o);function l(t){return e=>{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=4.04,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 4.4.x 版本以上`)}(e);const n=new(0,a.default)(e,t);return(0,s.default)(e,n),{name:"artplayerPluginDanmuku",emit:n.emit.bind(n),load:n.load.bind(n),config:n.config.bind(n),hide:n.hide.bind(n),show:n.show.bind(n),reset:n.reset.bind(n),get option(){return n.option},get isHide(){return n.isHide},get isStop(){return n.isStop}}}}n.default=l,l.env="production",l.version="4.4.10",l.build="2022-10-08 09:50:35","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"8Gtnh","./setting":"jAkJm","@parcel/transformer-js/src/esmodule-helpers.js":"9v6Cv"}],"8Gtnh":[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("./bilibili"),a=t("./getDanmuTop"),o=i.interopDefault(a);class s{constructor(e,n){const{constructor:i,template:r}=e;if(this.utils=i.utils,this.validator=i.validator,this.$danmuku=r.$danmuku,this.$player=r.$player,this.art=e,this.queue=[],this.option={},this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.config(n),this.option.useWorker)try{this.worker=new Worker(t("27c3930ee158179a"))}catch(t){}this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.destroy=this.destroy.bind(this),e.on("video:play",this.start),e.on("video:playing",this.start),e.on("video:pause",this.stop),e.on("video:waiting",this.stop),e.on("fullscreen",this.reset),e.on("fullscreenWeb",this.reset),e.on("destroy",this.destroy),this.load()}static get option(){return{danmuku:[],speed:5,margin:["2%","25%"],opacity:1,color:"#FFFFFF",mode:0,fontSize:25,filter:()=>!0,antiOverlap:!0,useWorker:!0,synchronousPlayback:!1,lockTime:5,maxLength:100,minWidth:200,maxWidth:400,mount:void 0,theme:"dark",beforeEmit:()=>!0}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",color:"string",mode:"number",fontSize:"number|string",filter:"function",antiOverlap:"boolean",useWorker:"boolean",synchronousPlayback:"boolean",lockTime:"number",maxLength:"number",minWidth:"number",maxWidth:"number",mount:"undefined|htmldivelement",theme:"string",beforeEmit:"function"}}get isRotate(){return this.art.plugins.autoOrientation&&this.art.plugins.autoOrientation.state}get marginTop(){const{clamp:t}=this.utils,e=this.option.margin[0],{clientHeight:n}=this.$player;if("number"==typeof e)return t(e,0,n);if("string"==typeof e&&e.endsWith("%")){return t(n*(parseFloat(e)/100),0,n)}return s.option.margin[0]}get marginBottom(){const{clamp:t}=this.utils,e=this.option.margin[1],{clientHeight:n}=this.$player;if("number"==typeof e)return t(e,0,n);if("string"==typeof e&&e.endsWith("%")){return t(n*(parseFloat(e)/100),0,n)}return s.option.margin[1]}filter(t,e){return this.queue.filter((e=>e.$state===t)).map(e)}getLeft(t){const e=t.getBoundingClientRect();return this.isRotate?e.top:e.left}getRef(){const t=this.$refs.pop();if(t)return t;const e=document.createElement("div");return e.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, "Microsoft JhenLine truncated
|
!function(t,e,n,i,r){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof a.parcelRequire93cf&&a.parcelRequire93cf,s=o.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(e,n){if(!s[e]){if(!t[e]){var i="function"==typeof a.parcelRequire93cf&&a.parcelRequire93cf;if(!n&&i)return i(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}m.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},m.cache={};var d=s[e]=new u.Module(e);t[e][0].call(d.exports,m,d,d.exports,this)}return s[e].exports;function m(t){var e=m.resolve(t);return!1===e?{}:u(e)}}u.isParcelRequire=!0,u.Module=function(t){this.id=t,this.bundle=u,this.exports={}},u.modules=t,u.cache=s,u.parent=o,u.register=function(e,n){t[e]=[function(t,e){e.exports=n},{}]},Object.defineProperty(u,"root",{get:function(){return a.parcelRequire93cf}}),a.parcelRequire93cf=u;for(var d=0;d<e.length;d++)u(e[d]);var m=u(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define((function(){return m}))}({E13ST:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("./danmuku"),a=i.interopDefault(r),o=t("./setting"),s=i.interopDefault(o);function l(t){return e=>{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=4.04,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 4.4.x 版本以上`)}(e);const n=new(0,a.default)(e,t);return(0,s.default)(e,n),{name:"artplayerPluginDanmuku",emit:n.emit.bind(n),load:n.load.bind(n),config:n.config.bind(n),hide:n.hide.bind(n),show:n.show.bind(n),reset:n.reset.bind(n),get option(){return n.option},get isHide(){return n.isHide},get isStop(){return n.isStop}}}}n.default=l,l.env="production",l.version="4.4.10",l.build="2022-10-09 15:14:27","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"8Gtnh","./setting":"jAkJm","@parcel/transformer-js/src/esmodule-helpers.js":"9v6Cv"}],"8Gtnh":[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("./bilibili"),a=t("./getDanmuTop"),o=i.interopDefault(a);class s{constructor(e,n){const{constructor:i,template:r}=e;if(this.utils=i.utils,this.validator=i.validator,this.$danmuku=r.$danmuku,this.$player=r.$player,this.art=e,this.queue=[],this.option={},this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.config(n),this.option.useWorker)try{this.worker=new Worker(t("27c3930ee158179a"))}catch(t){}this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.destroy=this.destroy.bind(this),e.on("video:play",this.start),e.on("video:playing",this.start),e.on("video:pause",this.stop),e.on("video:waiting",this.stop),e.on("fullscreen",this.reset),e.on("fullscreenWeb",this.reset),e.on("destroy",this.destroy),this.load()}static get option(){return{danmuku:[],speed:5,margin:["2%","25%"],opacity:1,color:"#FFFFFF",mode:0,fontSize:25,filter:()=>!0,antiOverlap:!0,useWorker:!0,synchronousPlayback:!1,lockTime:5,maxLength:100,minWidth:200,maxWidth:400,mount:void 0,theme:"dark",beforeEmit:()=>!0}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",color:"string",mode:"number",fontSize:"number|string",filter:"function",antiOverlap:"boolean",useWorker:"boolean",synchronousPlayback:"boolean",lockTime:"number",maxLength:"number",minWidth:"number",maxWidth:"number",mount:"undefined|htmldivelement",theme:"string",beforeEmit:"function"}}get isRotate(){return this.art.plugins.autoOrientation&&this.art.plugins.autoOrientation.state}get marginTop(){const{clamp:t}=this.utils,e=this.option.margin[0],{clientHeight:n}=this.$player;if("number"==typeof e)return t(e,0,n);if("string"==typeof e&&e.endsWith("%")){return t(n*(parseFloat(e)/100),0,n)}return s.option.margin[0]}get marginBottom(){const{clamp:t}=this.utils,e=this.option.margin[1],{clientHeight:n}=this.$player;if("number"==typeof e)return t(e,0,n);if("string"==typeof e&&e.endsWith("%")){return t(n*(parseFloat(e)/100),0,n)}return s.option.margin[1]}filter(t,e){return this.queue.filter((e=>e.$state===t)).map(e)}getLeft(t){const e=t.getBoundingClientRect();return this.isRotate?e.top:e.left}getRef(){const t=this.$refs.pop();if(t)return t;const e=document.createElement("div");return e.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, "Microsoft JhenLine truncated
|
||||||
Vendored
+1
-1
@@ -4,4 +4,4 @@
|
|||||||
* (c) 2017-2022 Harvey Zack
|
* (c) 2017-2022 Harvey Zack
|
||||||
* Released under the MIT License.
|
* Released under the MIT License.
|
||||||
*/
|
*/
|
||||||
!function(e,t,r,o,i){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},n="function"==typeof a.parcelRequireb749&&a.parcelRequireb749,s=n.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(t,r){if(!s[t]){if(!e[t]){var o="function"==typeof a.parcelRequireb749&&a.parcelRequireb749;if(!r&&o)return o(t,!0);if(n)return n(t,!0);if(l&&"string"==typeof t)return l(t);var i=new Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}u.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},u.cache={};var p=s[t]=new c.Module(t);e[t][0].call(p.exports,u,p,p.exports,this)}return s[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:c(t)}}c.isParcelRequire=!0,c.Module=function(e){this.id=e,this.bundle=c,this.exports={}},c.modules=e,c.cache=s,c.parent=n,c.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(c,"root",{get:function(){return a.parcelRequireb749}}),a.parcelRequireb749=c;for(var p=0;p<t.length;p++)c(t[p]);var u=c(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define((function(){return u}))}({E13ST:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("bundle-text:./style/index.less"),a=o.interopDefault(i),n=e("option-validator"),s=o.interopDefault(n),l=e("./utils/emitter"),c=o.interopDefault(l),p=e("./utils"),u=e("./scheme"),d=o.interopDefault(u),f=e("./config"),h=o.interopDefault(f),m=e("./whitelist"),g=o.interopDefault(m),v=e("./template"),y=o.interopDefault(v),b=e("./i18n"),x=o.interopDefault(b),w=e("./player"),j=o.interopDefault(w),k=e("./control"),S=o.interopDefault(k),I=e("./contextmenu"),C=o.interopDefault(I),F=e("./info"),$=o.interopDefault(F),M=e("./subtitle"),E=o.interopDefault(M),P=e("./events"),T=o.interopDefault(P),z=e("./hotkey"),D=o.interopDefault(z),A=e("./layer"),R=o.interopDefault(A),O=e("./loading"),L=o.interopDefault(O),N=e("./notice"),H=o.interopDefault(N),V=e("./mask"),Y=o.interopDefault(V),_=e("./icons"),q=o.interopDefault(_),W=e("./setting"),B=o.interopDefault(W),U=e("./storage"),Z=o.interopDefault(U),X=e("./plugins"),G=o.interopDefault(X),K=e("./mobile"),J=o.interopDefault(K);let Q=0;const ee=[];class te extends c.default{constructor(e,t){super(),this.id=++Q;const r=p.mergeDeep(te.option,e);if(this.option=(0,s.default)(r,d.default),this.isLock=!1,this.isReady=!1,this.isFocus=!1,this.isInput=!1,this.isRotate=!1,this.isDestroy=!1,this.whitelist=new(0,g.default)(this),this.template=new(0,y.default)(this),this.events=new(0,T.default)(this),this.whitelist.state?(this.storage=new(0,Z.default)(this),this.icons=new(0,q.default)(this),this.i18n=new(0,x.default)(this),this.notice=new(0,H.default)(this),this.player=new(0,j.default)(this),this.layers=new(0,R.default)(this),this.controls=new(0,S.default)(this),this.contextmenu=new(0,C.default)(this),this.subtitle=new(0,E.default)(this),this.info=new(0,$.default)(this),this.loading=new(0,L.default)(this),this.hotkey=new(0,D.default)(this),this.mask=new(0,Y.default)(this),this.setting=new(0,B.default)(this),this.plugins=new(0,G.default)(this)):this.mobile=new(0,J.default)(this),"function"==typeof t&&this.on("ready",(()=>t.call(this))),te.DEGUG){const e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+te.version),e("Env@"+te.env),e("Build@"+te.build);for(let t=0;t<h.default.events.length;t++)this.on("video:"+h.default.events[t],(t=>e("Event@"+t.type)))}ee.push(this)}static get instances(){return ee}static get version(){return"4.5.8"}static get env(){return"production"}static get build(){return"2022-10-08 09:50:31"}static get config(){return h.default}static get utils(){return p}static get scheme(){return d.default}static get Emitter(){return c.default}static get validator(){return s.default}static get kindOf(){return s.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",title:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,column:10,width:0,height:0},subtitle:{url:"",type:"",style:{},encoding:"utf-8"},moreVideoAttr:{controls:!1,preload:p.isSafari?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}destroy(e=!0){this.events.destroy(),this.template.destroy(e),ee.splice(ee.indexOf(this),1),this.isDestroy=!0,this.eLine truncated
|
!function(e,t,r,o,i){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},n="function"==typeof a.parcelRequireb749&&a.parcelRequireb749,s=n.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(t,r){if(!s[t]){if(!e[t]){var o="function"==typeof a.parcelRequireb749&&a.parcelRequireb749;if(!r&&o)return o(t,!0);if(n)return n(t,!0);if(l&&"string"==typeof t)return l(t);var i=new Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}u.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},u.cache={};var p=s[t]=new c.Module(t);e[t][0].call(p.exports,u,p,p.exports,this)}return s[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:c(t)}}c.isParcelRequire=!0,c.Module=function(e){this.id=e,this.bundle=c,this.exports={}},c.modules=e,c.cache=s,c.parent=n,c.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(c,"root",{get:function(){return a.parcelRequireb749}}),a.parcelRequireb749=c;for(var p=0;p<t.length;p++)c(t[p]);var u=c(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define((function(){return u}))}({E13ST:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("bundle-text:./style/index.less"),a=o.interopDefault(i),n=e("option-validator"),s=o.interopDefault(n),l=e("./utils/emitter"),c=o.interopDefault(l),p=e("./utils"),u=e("./scheme"),d=o.interopDefault(u),f=e("./config"),h=o.interopDefault(f),m=e("./whitelist"),g=o.interopDefault(m),v=e("./template"),y=o.interopDefault(v),b=e("./i18n"),x=o.interopDefault(b),w=e("./player"),j=o.interopDefault(w),k=e("./control"),S=o.interopDefault(k),I=e("./contextmenu"),C=o.interopDefault(I),F=e("./info"),$=o.interopDefault(F),M=e("./subtitle"),E=o.interopDefault(M),P=e("./events"),T=o.interopDefault(P),z=e("./hotkey"),D=o.interopDefault(z),A=e("./layer"),R=o.interopDefault(A),O=e("./loading"),L=o.interopDefault(O),N=e("./notice"),H=o.interopDefault(N),V=e("./mask"),Y=o.interopDefault(V),_=e("./icons"),q=o.interopDefault(_),W=e("./setting"),B=o.interopDefault(W),U=e("./storage"),Z=o.interopDefault(U),X=e("./plugins"),G=o.interopDefault(X),K=e("./mobile"),J=o.interopDefault(K);let Q=0;const ee=[];class te extends c.default{constructor(e,t){super(),this.id=++Q;const r=p.mergeDeep(te.option,e);if(this.option=(0,s.default)(r,d.default),this.isLock=!1,this.isReady=!1,this.isFocus=!1,this.isInput=!1,this.isRotate=!1,this.isDestroy=!1,this.whitelist=new(0,g.default)(this),this.template=new(0,y.default)(this),this.events=new(0,T.default)(this),this.whitelist.state?(this.storage=new(0,Z.default)(this),this.icons=new(0,q.default)(this),this.i18n=new(0,x.default)(this),this.notice=new(0,H.default)(this),this.player=new(0,j.default)(this),this.layers=new(0,R.default)(this),this.controls=new(0,S.default)(this),this.contextmenu=new(0,C.default)(this),this.subtitle=new(0,E.default)(this),this.info=new(0,$.default)(this),this.loading=new(0,L.default)(this),this.hotkey=new(0,D.default)(this),this.mask=new(0,Y.default)(this),this.setting=new(0,B.default)(this),this.plugins=new(0,G.default)(this)):this.mobile=new(0,J.default)(this),"function"==typeof t&&this.on("ready",(()=>t.call(this))),te.DEGUG){const e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+te.version),e("Env@"+te.env),e("Build@"+te.build);for(let t=0;t<h.default.events.length;t++)this.on("video:"+h.default.events[t],(t=>e("Event@"+t.type)))}ee.push(this)}static get instances(){return ee}static get version(){return"4.5.8"}static get env(){return"production"}static get build(){return"2022-10-09 15:14:22"}static get config(){return h.default}static get utils(){return p}static get scheme(){return d.default}static get Emitter(){return c.default}static get validator(){return s.default}static get kindOf(){return s.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",title:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,column:10,width:0,height:0},subtitle:{url:"",type:"",style:{},encoding:"utf-8"},moreVideoAttr:{controls:!1,preload:p.isSafari?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}destroy(e=!0){this.events.destroy(),this.template.destroy(e),ee.splice(ee.indexOf(this),1),this.isDestroy=!0,this.eLine truncated
|
||||||
+76
-778
@@ -1,693 +1,33 @@
|
|||||||
|
import { Config } from './config';
|
||||||
|
import { Events } from './events';
|
||||||
|
import { Utils } from './utils';
|
||||||
|
import { Player } from './player';
|
||||||
|
import { Option } from './option';
|
||||||
|
import { Subtitle } from './subtitle';
|
||||||
|
import { Icons } from './icons';
|
||||||
|
import { Template } from './template';
|
||||||
|
import { I18n } from './i18n';
|
||||||
|
import { Setting } from './setting';
|
||||||
|
import { Component } from './component';
|
||||||
|
|
||||||
export = Artplayer;
|
export = Artplayer;
|
||||||
export as namespace Artplayer;
|
export as namespace Artplayer;
|
||||||
|
|
||||||
type Selector = {
|
|
||||||
/**
|
|
||||||
* Whether the default is selected
|
|
||||||
*/
|
|
||||||
default?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Html string of selector
|
|
||||||
*/
|
|
||||||
html: string | HTMLElement;
|
|
||||||
};
|
|
||||||
|
|
||||||
type ComponentOption = {
|
|
||||||
/**
|
|
||||||
* Html string or html element of component
|
|
||||||
*/
|
|
||||||
html: string | HTMLElement;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether to disable component
|
|
||||||
*/
|
|
||||||
disable?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unique name for component
|
|
||||||
*/
|
|
||||||
name?: string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Component sort index
|
|
||||||
*/
|
|
||||||
index?: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Component style object
|
|
||||||
*/
|
|
||||||
style?: CSSStyleDeclaration;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Component click event
|
|
||||||
*/
|
|
||||||
click?(component: Component, event: Event): void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wnen the component was mounted
|
|
||||||
*/
|
|
||||||
mounted?(element: HTMLElement): void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Component tooltip, use in controls
|
|
||||||
*/
|
|
||||||
tooltip?: string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Component position, use in controls
|
|
||||||
*/
|
|
||||||
position?: 'top' | 'left' | 'right' | (string & Record<never, never>);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom selector list, use in controls
|
|
||||||
*/
|
|
||||||
selector?: Selector[];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When selector item click, use in controls
|
|
||||||
*/
|
|
||||||
onSelect?(selector: Selector, element: HTMLElement, event: Event): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
type SettingOption = {
|
|
||||||
/**
|
|
||||||
* Html string or html element of setting name
|
|
||||||
*/
|
|
||||||
html: string | HTMLElement;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Html string or html element of setting icon
|
|
||||||
*/
|
|
||||||
icon?: string | HTMLElement;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The width of setting
|
|
||||||
*/
|
|
||||||
width?: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The tooltip of setting
|
|
||||||
*/
|
|
||||||
tooltip?: string | HTMLElement;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether the default is selected
|
|
||||||
*/
|
|
||||||
default?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom selector list
|
|
||||||
*/
|
|
||||||
selector?: SettingOption[];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When selector item click
|
|
||||||
*/
|
|
||||||
onSelect?(item: SettingOption, element: HTMLElement, event: Event): void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom switch item
|
|
||||||
*/
|
|
||||||
switch?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When switch item click
|
|
||||||
*/
|
|
||||||
onSwitch?(item: SettingOption, element: HTMLElement, event: Event): void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom range item
|
|
||||||
*/
|
|
||||||
range?: number[] | number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When range item change
|
|
||||||
*/
|
|
||||||
onRange?(item: SettingOption, element: HTMLElement, event: Event): void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When range item change in real time
|
|
||||||
*/
|
|
||||||
onChange?(item: SettingOption, element: HTMLElement, event: Event): void;
|
|
||||||
|
|
||||||
$icon?: HTMLElement;
|
|
||||||
$html?: HTMLElement;
|
|
||||||
$tooltip?: HTMLElement;
|
|
||||||
$switch?: boolean;
|
|
||||||
$range?: HTMLElement;
|
|
||||||
$parentItem?: SettingOption;
|
|
||||||
$parentList?: SettingOption[];
|
|
||||||
};
|
|
||||||
|
|
||||||
type Component = {
|
|
||||||
/**
|
|
||||||
* Component self-increasing id
|
|
||||||
*/
|
|
||||||
readonly id: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Component parent name
|
|
||||||
*/
|
|
||||||
readonly name: string | void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Component parent element
|
|
||||||
*/
|
|
||||||
readonly $parent: HTMLElement | void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether to show component parent
|
|
||||||
*/
|
|
||||||
get show(): boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether to show component parent
|
|
||||||
*/
|
|
||||||
set show(state: boolean);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Toggle the component parent
|
|
||||||
*/
|
|
||||||
set toggle(state: boolean);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dynamic add a component
|
|
||||||
*/
|
|
||||||
add(option: ComponentOption): HTMLElement;
|
|
||||||
};
|
|
||||||
|
|
||||||
type PluginFunction = (art: Artplayer) => any | ((option: any) => (art: Artplayer) => any);
|
|
||||||
type CustomType = (video: HTMLVideoElement, url: string, art: Artplayer) => any;
|
|
||||||
type WhitelistFunction = (ua: string) => boolean;
|
|
||||||
type EventCallback = (event: Event) => any;
|
|
||||||
|
|
||||||
type SubtitleOption = {
|
|
||||||
/**
|
|
||||||
* The subtitle url
|
|
||||||
*/
|
|
||||||
url: string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The subtitle type
|
|
||||||
*/
|
|
||||||
type?: 'vtt' | 'srt' | 'ass' | (string & Record<never, never>);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The subtitle style object
|
|
||||||
*/
|
|
||||||
style?: CSSStyleDeclaration;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The subtitle encoding, default utf-8
|
|
||||||
*/
|
|
||||||
encoding?: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
type Option = {
|
|
||||||
/**
|
|
||||||
* The player id
|
|
||||||
*/
|
|
||||||
id: string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The container mounted by the player
|
|
||||||
*/
|
|
||||||
container: string | HTMLElement;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Video url
|
|
||||||
*/
|
|
||||||
url: string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Video poster image url
|
|
||||||
*/
|
|
||||||
poster?: string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Video title
|
|
||||||
*/
|
|
||||||
title?: string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Video url type
|
|
||||||
*/
|
|
||||||
type?: string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Player color theme
|
|
||||||
*/
|
|
||||||
theme?: string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Player language
|
|
||||||
*/
|
|
||||||
lang?: 'en' | 'zh-cn' | 'zh-tw' | 'cs' | 'pl' | 'es' | 'fa' | (string & Record<never, never>);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Player default volume
|
|
||||||
*/
|
|
||||||
volume?: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether live broadcast mode
|
|
||||||
*/
|
|
||||||
isLive?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether video muted
|
|
||||||
*/
|
|
||||||
muted?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether video auto play
|
|
||||||
*/
|
|
||||||
autoplay?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether player auto resize
|
|
||||||
*/
|
|
||||||
autoSize?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether player auto run mini mode
|
|
||||||
*/
|
|
||||||
autoMini?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether video auto loop
|
|
||||||
*/
|
|
||||||
loop?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether show video flip button
|
|
||||||
*/
|
|
||||||
flip?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether show video playback rate button
|
|
||||||
*/
|
|
||||||
playbackRate?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether show video aspect ratio button
|
|
||||||
*/
|
|
||||||
aspectRatio?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether show video screenshot button
|
|
||||||
*/
|
|
||||||
screenshot?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether show video setting button
|
|
||||||
*/
|
|
||||||
setting?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether to enable player hotkey
|
|
||||||
*/
|
|
||||||
hotkey?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether show video pip button
|
|
||||||
*/
|
|
||||||
pip?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Do you want to run only one player at a time
|
|
||||||
*/
|
|
||||||
mutex?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether use backdrop in UI
|
|
||||||
*/
|
|
||||||
backdrop?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether show video window fullscreen button
|
|
||||||
*/
|
|
||||||
fullscreen?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether show video web fullscreen button
|
|
||||||
*/
|
|
||||||
fullscreenWeb?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether to enable player subtitle offset
|
|
||||||
*/
|
|
||||||
subtitleOffset?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether to enable player mini progress bar
|
|
||||||
*/
|
|
||||||
miniProgressBar?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether use SSR function
|
|
||||||
*/
|
|
||||||
useSSR?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether use playsInline in mobile
|
|
||||||
*/
|
|
||||||
playsInline?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether use lock in mobile
|
|
||||||
*/
|
|
||||||
lock?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether use fast forward in mobile
|
|
||||||
*/
|
|
||||||
fastForward?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether use auto playback
|
|
||||||
*/
|
|
||||||
autoPlayback?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether use auto orientation in mobile
|
|
||||||
*/
|
|
||||||
autoOrientation?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether use airplay
|
|
||||||
*/
|
|
||||||
airplay?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom plugin list
|
|
||||||
*/
|
|
||||||
plugins?: PluginFunction[];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom mobile whitelist
|
|
||||||
*/
|
|
||||||
whitelist?: (string | WhitelistFunction | RegExp)[];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom layer list
|
|
||||||
*/
|
|
||||||
layers?: ComponentOption[];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom contextmenu list
|
|
||||||
*/
|
|
||||||
contextmenu?: ComponentOption[];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom control list
|
|
||||||
*/
|
|
||||||
controls?: ComponentOption[];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom setting list
|
|
||||||
*/
|
|
||||||
settings?: SettingOption[];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom video quality list
|
|
||||||
*/
|
|
||||||
quality?: {
|
|
||||||
/**
|
|
||||||
* Whether the default is selected
|
|
||||||
*/
|
|
||||||
default?: boolean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Html string of quality
|
|
||||||
*/
|
|
||||||
html: string | HTMLElement;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Video quality url
|
|
||||||
*/
|
|
||||||
url: string;
|
|
||||||
}[];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom highlight list
|
|
||||||
*/
|
|
||||||
highlight?: {
|
|
||||||
/**
|
|
||||||
* The highlight time
|
|
||||||
*/
|
|
||||||
time: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The highlight text
|
|
||||||
*/
|
|
||||||
text: string;
|
|
||||||
}[];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom thumbnail
|
|
||||||
*/
|
|
||||||
thumbnails?: {
|
|
||||||
/**
|
|
||||||
* The thumbnail image url
|
|
||||||
*/
|
|
||||||
url: string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The thumbnail item number
|
|
||||||
*/
|
|
||||||
number?: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The thumbnail column size
|
|
||||||
*/
|
|
||||||
column?: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The thumbnail width
|
|
||||||
*/
|
|
||||||
width?: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The thumbnail height
|
|
||||||
*/
|
|
||||||
height?: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom subtitle option
|
|
||||||
*/
|
|
||||||
subtitle?: SubtitleOption;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Other video attribute
|
|
||||||
*/
|
|
||||||
moreVideoAttr?: HTMLVideoElement;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom default icons
|
|
||||||
*/
|
|
||||||
icons?: {
|
|
||||||
loading?: HTMLElement | string;
|
|
||||||
state?: HTMLElement | string;
|
|
||||||
play?: HTMLElement | string;
|
|
||||||
pause?: HTMLElement | string;
|
|
||||||
volume?: HTMLElement | string;
|
|
||||||
volumeClose?: HTMLElement | string;
|
|
||||||
subtitle?: HTMLElement | string;
|
|
||||||
screenshot?: HTMLElement | string;
|
|
||||||
setting?: HTMLElement | string;
|
|
||||||
fullscreen?: HTMLElement | string;
|
|
||||||
fullscreenWeb?: HTMLElement | string;
|
|
||||||
pip?: HTMLElement | string;
|
|
||||||
indicator?: HTMLElement | string;
|
|
||||||
arrowLeft?: HTMLElement | string;
|
|
||||||
arrowRight?: HTMLElement | string;
|
|
||||||
playbackRate?: HTMLElement | string;
|
|
||||||
aspectRatio?: HTMLElement | string;
|
|
||||||
config?: HTMLElement | string;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom video type function
|
|
||||||
*/
|
|
||||||
customType?: {
|
|
||||||
[key: string]: CustomType;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
type AspectRatio = 'default' | '4:3' | '16:9' | void;
|
|
||||||
type PlaybackRate = 0.5 | 0.75 | 1.0 | 1.25 | 1.5 | 1.75 | 2.0 | void;
|
|
||||||
type Flip = 'normal' | 'horizontal' | 'vertical' | void;
|
|
||||||
type Events =
|
|
||||||
| 'video:canplay'
|
|
||||||
| 'video:canplaythrough'
|
|
||||||
| 'video:complete'
|
|
||||||
| 'video:durationchange'
|
|
||||||
| 'video:emptied'
|
|
||||||
| 'video:ended'
|
|
||||||
| 'video:loadeddata'
|
|
||||||
| 'video:loadeddata'
|
|
||||||
| 'video:loadedmetadata'
|
|
||||||
| 'video:pause'
|
|
||||||
| 'video:play'
|
|
||||||
| 'video:playing'
|
|
||||||
| 'video:progress'
|
|
||||||
| 'video:ratechange'
|
|
||||||
| 'video:seeked'
|
|
||||||
| 'video:seeking'
|
|
||||||
| 'video:stalled'
|
|
||||||
| 'video:suspend'
|
|
||||||
| 'video:timeupdate'
|
|
||||||
| 'video:volumechange'
|
|
||||||
| 'video:waiting'
|
|
||||||
| 'hotkey'
|
|
||||||
| 'destroy'
|
|
||||||
| 'customType'
|
|
||||||
| 'url'
|
|
||||||
| 'subtitleUpdate'
|
|
||||||
| 'subtitleLoad'
|
|
||||||
| 'subtitleSwitch'
|
|
||||||
| 'focus'
|
|
||||||
| 'blur'
|
|
||||||
| 'dblclick'
|
|
||||||
| 'click'
|
|
||||||
| 'setBar'
|
|
||||||
| 'hover'
|
|
||||||
| 'mousemove'
|
|
||||||
| 'resize'
|
|
||||||
| 'view'
|
|
||||||
| 'aspectRatio'
|
|
||||||
| 'autoHeight'
|
|
||||||
| 'autoSize'
|
|
||||||
| 'ready'
|
|
||||||
| 'error'
|
|
||||||
| 'flip'
|
|
||||||
| 'fullscreen'
|
|
||||||
| 'fullscreenWeb'
|
|
||||||
| 'loop'
|
|
||||||
| 'mini'
|
|
||||||
| 'pause'
|
|
||||||
| 'pip'
|
|
||||||
| 'playbackRate'
|
|
||||||
| 'play'
|
|
||||||
| 'screenshot'
|
|
||||||
| 'seek'
|
|
||||||
| 'subtitleOffset'
|
|
||||||
| 'switch'
|
|
||||||
| 'restart'
|
|
||||||
| 'volume'
|
|
||||||
| 'lock'
|
|
||||||
| 'selector'
|
|
||||||
| (string & Record<never, never>);
|
|
||||||
|
|
||||||
declare class Player {
|
|
||||||
get aspectRatio(): AspectRatio;
|
|
||||||
set aspectRatio(ratio: AspectRatio);
|
|
||||||
get playbackRate(): PlaybackRate;
|
|
||||||
set playbackRate(rate: PlaybackRate);
|
|
||||||
get autoSize(): boolean;
|
|
||||||
set autoSize(state: boolean);
|
|
||||||
get autoHeight(): boolean;
|
|
||||||
set autoHeight(state: boolean);
|
|
||||||
get currentTime(): number;
|
|
||||||
set currentTime(time: number);
|
|
||||||
get duration(): number;
|
|
||||||
get played(): number;
|
|
||||||
get playing(): boolean;
|
|
||||||
get flip(): Flip;
|
|
||||||
set flip(state: Flip);
|
|
||||||
get fullscreen(): boolean;
|
|
||||||
set fullscreen(state: boolean);
|
|
||||||
set fullscreenToggle(state: boolean);
|
|
||||||
get fullscreenWeb(): boolean;
|
|
||||||
set fullscreenWeb(state: boolean);
|
|
||||||
set fullscreenWebToggle(state: boolean);
|
|
||||||
get loaded(): number;
|
|
||||||
get loop(): number[];
|
|
||||||
set loop(value: number[]);
|
|
||||||
get mini(): boolean;
|
|
||||||
set mini(state: boolean);
|
|
||||||
get pip(): boolean;
|
|
||||||
set pip(state: boolean);
|
|
||||||
get poster(): string;
|
|
||||||
set poster(url: string);
|
|
||||||
get rect(): DOMRect;
|
|
||||||
get bottom(): number;
|
|
||||||
get height(): number;
|
|
||||||
get left(): number;
|
|
||||||
get right(): number;
|
|
||||||
get top(): number;
|
|
||||||
get width(): number;
|
|
||||||
get x(): number;
|
|
||||||
get y(): number;
|
|
||||||
set seek(time: number);
|
|
||||||
set forward(time: number);
|
|
||||||
set backward(time: number);
|
|
||||||
get url(): string;
|
|
||||||
set url(url: string);
|
|
||||||
get volume(): number;
|
|
||||||
set volume(percentage: number);
|
|
||||||
get muted(): boolean;
|
|
||||||
set muted(state: boolean);
|
|
||||||
get title(): string;
|
|
||||||
set title(title: string);
|
|
||||||
get theme(): string;
|
|
||||||
set theme(theme: string);
|
|
||||||
get subtitleOffset(): number;
|
|
||||||
set subtitleOffset(time: number);
|
|
||||||
pause(): void;
|
|
||||||
play(): Promise<void>;
|
|
||||||
toggle(): void;
|
|
||||||
attr(key: string, value: any): void;
|
|
||||||
switchUrl(url: string): Promise<string>;
|
|
||||||
switchQuality(url: string): Promise<string>;
|
|
||||||
getDataURL(): Promise<string>;
|
|
||||||
getBlobUrl(): Promise<string>;
|
|
||||||
screenshot(): Promise<string>;
|
|
||||||
airplay(): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare class Artplayer extends Player {
|
declare class Artplayer extends Player {
|
||||||
constructor(option: Option, readyCallback?: (this: Artplayer) => void);
|
constructor(option: Option, readyCallback?: (this: Artplayer) => unknown);
|
||||||
|
|
||||||
static instances: Artplayer[];
|
static readonly instances: Artplayer[];
|
||||||
static version: string;
|
static readonly version: string;
|
||||||
static env: string;
|
static readonly env: string;
|
||||||
static build: string;
|
static readonly build: string;
|
||||||
static config: {
|
static readonly config: Config;
|
||||||
propertys: {
|
static readonly utils: Utils;
|
||||||
[key: string]: string[];
|
static readonly scheme: object;
|
||||||
};
|
static readonly Emitter: Function;
|
||||||
methods: {
|
static readonly validator: <T extends object>(option: T, scheme: object) => T;
|
||||||
[key: string]: string[];
|
static readonly kindOf: (item: any) => string;
|
||||||
};
|
static readonly html: Artplayer['template']['html'];
|
||||||
events: {
|
static readonly option: Option;
|
||||||
[key: string]: string[];
|
|
||||||
};
|
|
||||||
prototypes: {
|
|
||||||
[key: string]: string[];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
static utils: {
|
|
||||||
[key: string]: string | Function;
|
|
||||||
};
|
|
||||||
static scheme: object;
|
|
||||||
static Emitter: Function;
|
|
||||||
static validator: Function;
|
|
||||||
static kindOf: Function;
|
|
||||||
static html: string;
|
|
||||||
static option: Option;
|
|
||||||
|
|
||||||
readonly id: number;
|
|
||||||
readonly option: Option;
|
|
||||||
readonly isLock: boolean;
|
|
||||||
readonly isReady: boolean;
|
|
||||||
readonly isFocus: boolean;
|
|
||||||
readonly isInput: boolean;
|
|
||||||
readonly isRotate: boolean;
|
|
||||||
readonly isDestroy: boolean;
|
|
||||||
|
|
||||||
static DEGUG: boolean;
|
static DEGUG: boolean;
|
||||||
static NOTICE_TIME: number;
|
static NOTICE_TIME: number;
|
||||||
@@ -719,6 +59,15 @@ declare class Artplayer extends Player {
|
|||||||
static VOLUME_STEP: number;
|
static VOLUME_STEP: number;
|
||||||
static SEEK_STEP: number;
|
static SEEK_STEP: number;
|
||||||
|
|
||||||
|
readonly id: number;
|
||||||
|
readonly option: Option;
|
||||||
|
readonly isLock: boolean;
|
||||||
|
readonly isReady: boolean;
|
||||||
|
readonly isFocus: boolean;
|
||||||
|
readonly isInput: boolean;
|
||||||
|
readonly isRotate: boolean;
|
||||||
|
readonly isDestroy: boolean;
|
||||||
|
|
||||||
on(name: Events, fn: Function, ctx?: object): void;
|
on(name: Events, fn: Function, ctx?: object): void;
|
||||||
once(name: Events, fn: Function, ctx?: object): void;
|
once(name: Events, fn: Function, ctx?: object): void;
|
||||||
emit(name: Events): void;
|
emit(name: Events): void;
|
||||||
@@ -729,36 +78,15 @@ declare class Artplayer extends Player {
|
|||||||
|
|
||||||
destroy(removeHtml?: boolean): void;
|
destroy(removeHtml?: boolean): void;
|
||||||
|
|
||||||
readonly template: {
|
readonly whitelist: {
|
||||||
query(str: string): HTMLElement;
|
get state(): boolean;
|
||||||
readonly $container: HTMLElement;
|
|
||||||
readonly $original: HTMLElement;
|
|
||||||
readonly $player: HTMLElement;
|
|
||||||
readonly $video: HTMLElement;
|
|
||||||
readonly $poster: HTMLElement;
|
|
||||||
readonly $subtitle: HTMLElement;
|
|
||||||
readonly $danmuku: HTMLElement;
|
|
||||||
readonly $bottom: HTMLElement;
|
|
||||||
readonly $progress: HTMLElement;
|
|
||||||
readonly $controls: HTMLElement;
|
|
||||||
readonly $controlsLeft: HTMLElement;
|
|
||||||
readonly $controlsRight: HTMLElement;
|
|
||||||
readonly $layer: HTMLElement;
|
|
||||||
readonly $loading: HTMLElement;
|
|
||||||
readonly $notice: HTMLElement;
|
|
||||||
readonly $noticeInner: HTMLElement;
|
|
||||||
readonly $mask: HTMLElement;
|
|
||||||
readonly $state: HTMLElement;
|
|
||||||
readonly $setting: HTMLElement;
|
|
||||||
readonly $info: HTMLElement;
|
|
||||||
readonly $infoPanel: HTMLElement;
|
|
||||||
readonly $infoClose: HTMLElement;
|
|
||||||
readonly $miniHeader: HTMLElement;
|
|
||||||
readonly $miniTitle: HTMLElement;
|
|
||||||
readonly $miniClose: HTMLElement;
|
|
||||||
readonly $contextmenu: HTMLElement;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
readonly template: {
|
||||||
|
get html(): string;
|
||||||
|
query(str: string): HTMLElement;
|
||||||
|
} & Template;
|
||||||
|
|
||||||
readonly events: {
|
readonly events: {
|
||||||
proxy<KW extends keyof WindowEventMap, KH extends keyof HTMLElementEventMap>(
|
proxy<KW extends keyof WindowEventMap, KH extends keyof HTMLElementEventMap>(
|
||||||
element: HTMLDivElement | Document | Window,
|
element: HTMLDivElement | Document | Window,
|
||||||
@@ -766,61 +94,24 @@ declare class Artplayer extends Player {
|
|||||||
handler: (event: WindowEventMap[KW] | HTMLElementEventMap[KH] | Event) => void,
|
handler: (event: WindowEventMap[KW] | HTMLElementEventMap[KH] | Event) => void,
|
||||||
options?: boolean | AddEventListenerOptions,
|
options?: boolean | AddEventListenerOptions,
|
||||||
): () => void;
|
): () => void;
|
||||||
hover(element: HTMLElement, mouseenter?: EventCallback, mouseleave?: EventCallback): void;
|
hover(element: HTMLElement, mouseenter?: (event: Event) => any, mouseleave?: (event: Event) => any): void;
|
||||||
loadImg(element: HTMLImageElement | string): Promise<HTMLImageElement>;
|
loadImg(element: HTMLImageElement | string): Promise<HTMLImageElement>;
|
||||||
};
|
};
|
||||||
|
|
||||||
readonly whitelist: {
|
|
||||||
readonly state: boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
readonly storage: {
|
readonly storage: {
|
||||||
readonly name: string;
|
settings: Record<string, any>;
|
||||||
readonly settings: object;
|
|
||||||
get(key: string): any;
|
get(key: string): any;
|
||||||
set(key: string, value: any): void;
|
set(key: string, value: any): void;
|
||||||
del(key: string): any;
|
del(key: string): boolean;
|
||||||
clear(): any;
|
clear(): void;
|
||||||
};
|
};
|
||||||
|
|
||||||
readonly icons: {
|
readonly icons: Icons;
|
||||||
readonly loading: HTMLElement;
|
|
||||||
readonly state: HTMLElement;
|
|
||||||
readonly play: HTMLElement;
|
|
||||||
readonly pause: HTMLElement;
|
|
||||||
readonly check: HTMLElement;
|
|
||||||
readonly volume: HTMLElement;
|
|
||||||
readonly volumeClose: HTMLElement;
|
|
||||||
readonly subtitle: HTMLElement;
|
|
||||||
readonly screenshot: HTMLElement;
|
|
||||||
readonly setting: HTMLElement;
|
|
||||||
readonly fullscreen: HTMLElement;
|
|
||||||
readonly fullscreenWeb: HTMLElement;
|
|
||||||
readonly pip: HTMLElement;
|
|
||||||
readonly indicator: HTMLElement;
|
|
||||||
readonly arrowLeft: HTMLElement;
|
|
||||||
readonly arrowRight: HTMLElement;
|
|
||||||
readonly playbackRate: HTMLElement;
|
|
||||||
readonly aspectRatio: HTMLElement;
|
|
||||||
readonly config: HTMLElement;
|
|
||||||
};
|
|
||||||
|
|
||||||
readonly hotkey: {
|
|
||||||
add(key: number, callback: EventCallback): Artplayer['hotkey'];
|
|
||||||
};
|
|
||||||
|
|
||||||
readonly plugins: {
|
|
||||||
readonly id: number;
|
|
||||||
add(plugin: PluginFunction): Artplayer['plugins'];
|
|
||||||
[pluginName: string]: any;
|
|
||||||
};
|
|
||||||
|
|
||||||
readonly i18n: {
|
readonly i18n: {
|
||||||
readonly languages: {
|
readonly languages: I18n;
|
||||||
[key: string]: object;
|
|
||||||
};
|
|
||||||
get(key: string): string;
|
get(key: string): string;
|
||||||
update(language: object): void;
|
update(language: Partial<I18n>): void;
|
||||||
};
|
};
|
||||||
|
|
||||||
readonly notice: {
|
readonly notice: {
|
||||||
@@ -828,31 +119,38 @@ declare class Artplayer extends Player {
|
|||||||
set show(msg: string);
|
set show(msg: string);
|
||||||
};
|
};
|
||||||
|
|
||||||
readonly subtitle: {
|
|
||||||
get show(): boolean;
|
|
||||||
set show(state: boolean);
|
|
||||||
set toggle(state: boolean);
|
|
||||||
get url(): string;
|
|
||||||
set url(url: string);
|
|
||||||
style(name: string | CSSStyleDeclaration, value?: string): HTMLElement;
|
|
||||||
switch(url: string, option?: SubtitleOption): Promise<string>;
|
|
||||||
};
|
|
||||||
|
|
||||||
readonly mobile: object;
|
|
||||||
|
|
||||||
readonly player: Player;
|
|
||||||
|
|
||||||
readonly info: Component;
|
|
||||||
|
|
||||||
readonly loading: Component;
|
|
||||||
|
|
||||||
readonly mask: Component;
|
|
||||||
|
|
||||||
readonly layers: Record<string, HTMLElement> & Component;
|
readonly layers: Record<string, HTMLElement> & Component;
|
||||||
|
|
||||||
readonly controls: Record<string, HTMLElement> & Component;
|
readonly controls: Record<string, HTMLElement> & Component;
|
||||||
|
|
||||||
readonly contextmenu: Record<string, HTMLElement> & Component;
|
readonly contextmenu: Record<string, HTMLElement> & Component;
|
||||||
|
|
||||||
readonly setting: Record<string, HTMLElement> & Component;
|
readonly subtitle: {
|
||||||
|
get url(): string;
|
||||||
|
set url(url: string);
|
||||||
|
style(name: string | Partial<CSSStyleDeclaration>, value?: string): void;
|
||||||
|
switch(url: string, option?: Subtitle): Promise<string>;
|
||||||
|
} & Component;
|
||||||
|
|
||||||
|
readonly info: Component;
|
||||||
|
|
||||||
|
readonly loading: Component;
|
||||||
|
|
||||||
|
readonly hotkey: {
|
||||||
|
keys: Record<string, ((event: Event) => any)[]>;
|
||||||
|
add(key: number, callback: (event: Event) => any): Artplayer['hotkey'];
|
||||||
|
};
|
||||||
|
|
||||||
|
readonly mask: Component;
|
||||||
|
|
||||||
|
readonly setting: {
|
||||||
|
option: Setting[];
|
||||||
|
add(setting: Setting): Artplayer['setting'];
|
||||||
|
update(): Artplayer['setting'];
|
||||||
|
} & Component;
|
||||||
|
|
||||||
|
readonly plugins: {
|
||||||
|
add(plugin: (art: Artplayer) => unknown): Artplayer['plugins'];
|
||||||
|
[pluginName: string]: any;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
+105
@@ -0,0 +1,105 @@
|
|||||||
|
type Selector = {
|
||||||
|
/**
|
||||||
|
* Whether the default is selected
|
||||||
|
*/
|
||||||
|
default?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Html string of selector
|
||||||
|
*/
|
||||||
|
html: string | HTMLElement;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type Component = {
|
||||||
|
/**
|
||||||
|
* Component self-increasing id
|
||||||
|
*/
|
||||||
|
readonly id: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component parent name
|
||||||
|
*/
|
||||||
|
readonly name: string | void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component parent element
|
||||||
|
*/
|
||||||
|
readonly $parent: HTMLElement | void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether to show component parent
|
||||||
|
*/
|
||||||
|
get show(): boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether to show component parent
|
||||||
|
*/
|
||||||
|
set show(state: boolean);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle the component parent
|
||||||
|
*/
|
||||||
|
set toggle(state: boolean);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dynamic add a component
|
||||||
|
*/
|
||||||
|
add(option: ComponentOption): HTMLElement;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type ComponentOption = {
|
||||||
|
/**
|
||||||
|
* Html string or html element of component
|
||||||
|
*/
|
||||||
|
html: string | HTMLElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether to disable component
|
||||||
|
*/
|
||||||
|
disable?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unique name for component
|
||||||
|
*/
|
||||||
|
name?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component sort index
|
||||||
|
*/
|
||||||
|
index?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component style object
|
||||||
|
*/
|
||||||
|
style?: CSSStyleDeclaration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component click event
|
||||||
|
*/
|
||||||
|
click?(component: Component, event: Event): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wnen the component was mounted
|
||||||
|
*/
|
||||||
|
mounted?(element: HTMLElement): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component tooltip, use in controls
|
||||||
|
*/
|
||||||
|
tooltip?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component position, use in controls
|
||||||
|
*/
|
||||||
|
position?: 'top' | 'left' | 'right' | (string & Record<never, never>);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom selector list, use in controls
|
||||||
|
*/
|
||||||
|
selector?: Selector[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When selector item click, use in controls
|
||||||
|
*/
|
||||||
|
onSelect?(selector: Selector, element: HTMLElement, event: Event): void;
|
||||||
|
};
|
||||||
Vendored
+81
@@ -0,0 +1,81 @@
|
|||||||
|
export type Config = {
|
||||||
|
propertys: [
|
||||||
|
'audioTracks',
|
||||||
|
'autoplay',
|
||||||
|
'buffered',
|
||||||
|
'controller',
|
||||||
|
'controls',
|
||||||
|
'crossOrigin',
|
||||||
|
'currentSrc',
|
||||||
|
'currentTime',
|
||||||
|
'defaultMuted',
|
||||||
|
'defaultPlaybackRate',
|
||||||
|
'duration',
|
||||||
|
'ended',
|
||||||
|
'error',
|
||||||
|
'loop',
|
||||||
|
'mediaGroup',
|
||||||
|
'muted',
|
||||||
|
'networkState',
|
||||||
|
'paused',
|
||||||
|
'playbackRate',
|
||||||
|
'played',
|
||||||
|
'preload',
|
||||||
|
'readyState',
|
||||||
|
'seekable',
|
||||||
|
'seeking',
|
||||||
|
'src',
|
||||||
|
'startDate',
|
||||||
|
'textTracks',
|
||||||
|
'videoTracks',
|
||||||
|
'volume',
|
||||||
|
];
|
||||||
|
methods: ['addTextTrack', 'canPlayType', 'load', 'play', 'pause'];
|
||||||
|
events: [
|
||||||
|
'abort',
|
||||||
|
'canplay',
|
||||||
|
'canplaythrough',
|
||||||
|
'durationchange',
|
||||||
|
'emptied',
|
||||||
|
'ended',
|
||||||
|
'error',
|
||||||
|
'loadeddata',
|
||||||
|
'loadedmetadata',
|
||||||
|
'loadstart',
|
||||||
|
'pause',
|
||||||
|
'play',
|
||||||
|
'playing',
|
||||||
|
'progress',
|
||||||
|
'ratechange',
|
||||||
|
'seeked',
|
||||||
|
'seeking',
|
||||||
|
'stalled',
|
||||||
|
'suspend',
|
||||||
|
'timeupdate',
|
||||||
|
'volumechange',
|
||||||
|
'waiting',
|
||||||
|
];
|
||||||
|
prototypes: [
|
||||||
|
'width',
|
||||||
|
'height',
|
||||||
|
'videoWidth',
|
||||||
|
'videoHeight',
|
||||||
|
'poster',
|
||||||
|
'webkitDecodedFrameCount',
|
||||||
|
'webkitDroppedFrameCount',
|
||||||
|
'playsInline',
|
||||||
|
'webkitSupportsFullscreen',
|
||||||
|
'webkitDisplayingFullscreen',
|
||||||
|
'onenterpictureinpicture',
|
||||||
|
'onleavepictureinpicture',
|
||||||
|
'disablePictureInPicture',
|
||||||
|
'cancelVideoFrameCallback',
|
||||||
|
'requestVideoFrameCallback',
|
||||||
|
'getVideoPlaybackQuality',
|
||||||
|
'requestPictureInPicture',
|
||||||
|
'webkitEnterFullScreen',
|
||||||
|
'webkitEnterFullscreen',
|
||||||
|
'webkitExitFullScreen',
|
||||||
|
'webkitExitFullscreen',
|
||||||
|
];
|
||||||
|
};
|
||||||
Vendored
+61
@@ -0,0 +1,61 @@
|
|||||||
|
export type Events =
|
||||||
|
| 'video:canplay'
|
||||||
|
| 'video:canplaythrough'
|
||||||
|
| 'video:complete'
|
||||||
|
| 'video:durationchange'
|
||||||
|
| 'video:emptied'
|
||||||
|
| 'video:ended'
|
||||||
|
| 'video:loadeddata'
|
||||||
|
| 'video:loadeddata'
|
||||||
|
| 'video:loadedmetadata'
|
||||||
|
| 'video:pause'
|
||||||
|
| 'video:play'
|
||||||
|
| 'video:playing'
|
||||||
|
| 'video:progress'
|
||||||
|
| 'video:ratechange'
|
||||||
|
| 'video:seeked'
|
||||||
|
| 'video:seeking'
|
||||||
|
| 'video:stalled'
|
||||||
|
| 'video:suspend'
|
||||||
|
| 'video:timeupdate'
|
||||||
|
| 'video:volumechange'
|
||||||
|
| 'video:waiting'
|
||||||
|
| 'hotkey'
|
||||||
|
| 'destroy'
|
||||||
|
| 'customType'
|
||||||
|
| 'url'
|
||||||
|
| 'subtitleUpdate'
|
||||||
|
| 'subtitleLoad'
|
||||||
|
| 'subtitleSwitch'
|
||||||
|
| 'focus'
|
||||||
|
| 'blur'
|
||||||
|
| 'dblclick'
|
||||||
|
| 'click'
|
||||||
|
| 'setBar'
|
||||||
|
| 'hover'
|
||||||
|
| 'mousemove'
|
||||||
|
| 'resize'
|
||||||
|
| 'view'
|
||||||
|
| 'aspectRatio'
|
||||||
|
| 'autoHeight'
|
||||||
|
| 'autoSize'
|
||||||
|
| 'ready'
|
||||||
|
| 'error'
|
||||||
|
| 'flip'
|
||||||
|
| 'fullscreen'
|
||||||
|
| 'fullscreenWeb'
|
||||||
|
| 'loop'
|
||||||
|
| 'mini'
|
||||||
|
| 'pause'
|
||||||
|
| 'pip'
|
||||||
|
| 'playbackRate'
|
||||||
|
| 'play'
|
||||||
|
| 'screenshot'
|
||||||
|
| 'seek'
|
||||||
|
| 'subtitleOffset'
|
||||||
|
| 'switch'
|
||||||
|
| 'restart'
|
||||||
|
| 'volume'
|
||||||
|
| 'lock'
|
||||||
|
| 'selector'
|
||||||
|
| (string & Record<never, never>);
|
||||||
Vendored
+42
@@ -0,0 +1,42 @@
|
|||||||
|
type I18nKeys = 'en' | 'zh-cn' | 'zh-tw' | 'pl' | 'cs' | 'es' | 'fa' | (string & Record<never, never>);
|
||||||
|
|
||||||
|
type I18nValue = {
|
||||||
|
'Video Info': string;
|
||||||
|
Close: string;
|
||||||
|
'Video Load Failed': string;
|
||||||
|
Volume: string;
|
||||||
|
Play: string;
|
||||||
|
Pause: string;
|
||||||
|
Rate: string;
|
||||||
|
Mute: string;
|
||||||
|
'Video Flip': string;
|
||||||
|
Horizontal: string;
|
||||||
|
Vertical: string;
|
||||||
|
Reconnect: string;
|
||||||
|
'Show Setting': string;
|
||||||
|
'Hide Setting': string;
|
||||||
|
Screenshot: string;
|
||||||
|
'Play Speed': string;
|
||||||
|
'Aspect Ratio': string;
|
||||||
|
Default: string;
|
||||||
|
Normal: string;
|
||||||
|
Open: string;
|
||||||
|
'Switch Video': string;
|
||||||
|
'Switch Subtitle': string;
|
||||||
|
Fullscreen: string;
|
||||||
|
'Exit Fullscreen': string;
|
||||||
|
'Web Fullscreen': string;
|
||||||
|
'Exit Web Fullscreen': string;
|
||||||
|
'Mini Player': string;
|
||||||
|
'PIP Mode': string;
|
||||||
|
'Exit PIP Mode': string;
|
||||||
|
'PIP Not Supported': string;
|
||||||
|
'Fullscreen Not Supported': string;
|
||||||
|
'Subtitle Offset': string;
|
||||||
|
'Last Seen': string;
|
||||||
|
'Jump Play': string;
|
||||||
|
AirPlay: string;
|
||||||
|
'AirPlay Not Available': string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type I18n = Record<I18nKeys, Partial<I18nValue>>;
|
||||||
Vendored
+30
@@ -0,0 +1,30 @@
|
|||||||
|
export type Icons = {
|
||||||
|
readonly loading: HTMLDivElement;
|
||||||
|
readonly state: HTMLDivElement;
|
||||||
|
readonly play: HTMLDivElement;
|
||||||
|
readonly pause: HTMLDivElement;
|
||||||
|
readonly check: HTMLDivElement;
|
||||||
|
readonly volume: HTMLDivElement;
|
||||||
|
readonly volumeClose: HTMLDivElement;
|
||||||
|
readonly screenshot: HTMLDivElement;
|
||||||
|
readonly setting: HTMLDivElement;
|
||||||
|
readonly pip: HTMLDivElement;
|
||||||
|
readonly arrowLeft: HTMLDivElement;
|
||||||
|
readonly arrowRight: HTMLDivElement;
|
||||||
|
readonly playbackRate: HTMLDivElement;
|
||||||
|
readonly aspectRatio: HTMLDivElement;
|
||||||
|
readonly config: HTMLDivElement;
|
||||||
|
readonly lock: HTMLDivElement;
|
||||||
|
readonly flip: HTMLDivElement;
|
||||||
|
readonly unlock: HTMLDivElement;
|
||||||
|
readonly fullscreenOff: HTMLDivElement;
|
||||||
|
readonly fullscreenOn: HTMLDivElement;
|
||||||
|
readonly fullscreenWebOff: HTMLDivElement;
|
||||||
|
readonly fullscreenWebOn: HTMLDivElement;
|
||||||
|
readonly switchOn: HTMLDivElement;
|
||||||
|
readonly switchOff: HTMLDivElement;
|
||||||
|
readonly error: HTMLDivElement;
|
||||||
|
readonly close: HTMLDivElement;
|
||||||
|
readonly airplay: HTMLDivElement;
|
||||||
|
readonly [key: string]: HTMLDivElement;
|
||||||
|
};
|
||||||
Vendored
+301
@@ -0,0 +1,301 @@
|
|||||||
|
import { Subtitle } from './subtitle';
|
||||||
|
import { Setting } from './setting';
|
||||||
|
import { Icons } from './icons';
|
||||||
|
import { I18n } from './i18n';
|
||||||
|
import { ComponentOption } from './component';
|
||||||
|
|
||||||
|
export type Option = {
|
||||||
|
/**
|
||||||
|
* The player id
|
||||||
|
*/
|
||||||
|
id?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The container mounted by the player
|
||||||
|
*/
|
||||||
|
container: string | HTMLDivElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Video url
|
||||||
|
*/
|
||||||
|
url: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Video poster image url
|
||||||
|
*/
|
||||||
|
poster?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Video title
|
||||||
|
*/
|
||||||
|
title?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Video url type
|
||||||
|
*/
|
||||||
|
type?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Player color theme
|
||||||
|
*/
|
||||||
|
theme?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Player language
|
||||||
|
*/
|
||||||
|
lang?: keyof I18n;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Player default volume
|
||||||
|
*/
|
||||||
|
volume?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether live broadcast mode
|
||||||
|
*/
|
||||||
|
isLive?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether video muted
|
||||||
|
*/
|
||||||
|
muted?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether video auto play
|
||||||
|
*/
|
||||||
|
autoplay?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether player auto resize
|
||||||
|
*/
|
||||||
|
autoSize?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether player auto run mini mode
|
||||||
|
*/
|
||||||
|
autoMini?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether video auto loop
|
||||||
|
*/
|
||||||
|
loop?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether show video flip button
|
||||||
|
*/
|
||||||
|
flip?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether show video playback rate button
|
||||||
|
*/
|
||||||
|
playbackRate?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether show video aspect ratio button
|
||||||
|
*/
|
||||||
|
aspectRatio?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether show video screenshot button
|
||||||
|
*/
|
||||||
|
screenshot?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether show video setting button
|
||||||
|
*/
|
||||||
|
setting?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether to enable player hotkey
|
||||||
|
*/
|
||||||
|
hotkey?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether show video pip button
|
||||||
|
*/
|
||||||
|
pip?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do you want to run only one player at a time
|
||||||
|
*/
|
||||||
|
mutex?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether use backdrop in UI
|
||||||
|
*/
|
||||||
|
backdrop?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether show video window fullscreen button
|
||||||
|
*/
|
||||||
|
fullscreen?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether show video web fullscreen button
|
||||||
|
*/
|
||||||
|
fullscreenWeb?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether to enable player subtitle offset
|
||||||
|
*/
|
||||||
|
subtitleOffset?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether to enable player mini progress bar
|
||||||
|
*/
|
||||||
|
miniProgressBar?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether use SSR function
|
||||||
|
*/
|
||||||
|
useSSR?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether use playsInline in mobile
|
||||||
|
*/
|
||||||
|
playsInline?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether use lock in mobile
|
||||||
|
*/
|
||||||
|
lock?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether use fast forward in mobile
|
||||||
|
*/
|
||||||
|
fastForward?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether use auto playback
|
||||||
|
*/
|
||||||
|
autoPlayback?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether use auto orientation in mobile
|
||||||
|
*/
|
||||||
|
autoOrientation?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether use airplay
|
||||||
|
*/
|
||||||
|
airplay?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom plugin list
|
||||||
|
*/
|
||||||
|
plugins?: ((art: Artplayer) => unknown)[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom mobile whitelist
|
||||||
|
*/
|
||||||
|
whitelist?: (string | ((ua: string) => boolean) | RegExp)[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom layer list
|
||||||
|
*/
|
||||||
|
layers?: ComponentOption[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom contextmenu list
|
||||||
|
*/
|
||||||
|
contextmenu?: ComponentOption[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom control list
|
||||||
|
*/
|
||||||
|
controls?: ComponentOption[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom setting list
|
||||||
|
*/
|
||||||
|
settings?: Setting[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom video quality list
|
||||||
|
*/
|
||||||
|
quality?: {
|
||||||
|
/**
|
||||||
|
* Whether the default is selected
|
||||||
|
*/
|
||||||
|
default?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Html string of quality
|
||||||
|
*/
|
||||||
|
html: string | HTMLElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Video quality url
|
||||||
|
*/
|
||||||
|
url: string;
|
||||||
|
}[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom highlight list
|
||||||
|
*/
|
||||||
|
highlight?: {
|
||||||
|
/**
|
||||||
|
* The highlight time
|
||||||
|
*/
|
||||||
|
time: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The highlight text
|
||||||
|
*/
|
||||||
|
text: string;
|
||||||
|
}[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom thumbnail
|
||||||
|
*/
|
||||||
|
thumbnails?: {
|
||||||
|
/**
|
||||||
|
* The thumbnail image url
|
||||||
|
*/
|
||||||
|
url: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The thumbnail item number
|
||||||
|
*/
|
||||||
|
number?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The thumbnail column size
|
||||||
|
*/
|
||||||
|
column?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The thumbnail width
|
||||||
|
*/
|
||||||
|
width?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The thumbnail height
|
||||||
|
*/
|
||||||
|
height?: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom subtitle option
|
||||||
|
*/
|
||||||
|
subtitle?: Subtitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Other video attribute
|
||||||
|
*/
|
||||||
|
moreVideoAttr?: HTMLVideoElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom default icons
|
||||||
|
*/
|
||||||
|
icons?: {
|
||||||
|
[key in keyof Icons]?: HTMLElement | string;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom video type function
|
||||||
|
*/
|
||||||
|
customType?: Record<string, (video: HTMLVideoElement, url: string, art: Artplayer) => any>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Option;
|
||||||
Vendored
+70
@@ -0,0 +1,70 @@
|
|||||||
|
type AspectRatio = 'default' | '4:3' | '16:9' | void;
|
||||||
|
type PlaybackRate = 0.5 | 0.75 | 1.0 | 1.25 | 1.5 | 1.75 | 2.0 | void;
|
||||||
|
type Flip = 'normal' | 'horizontal' | 'vertical' | void;
|
||||||
|
|
||||||
|
export declare class Player {
|
||||||
|
get aspectRatio(): AspectRatio;
|
||||||
|
set aspectRatio(ratio: AspectRatio);
|
||||||
|
get playbackRate(): PlaybackRate;
|
||||||
|
set playbackRate(rate: PlaybackRate);
|
||||||
|
get autoSize(): boolean;
|
||||||
|
set autoSize(state: boolean);
|
||||||
|
get autoHeight(): boolean;
|
||||||
|
set autoHeight(state: boolean);
|
||||||
|
get currentTime(): number;
|
||||||
|
set currentTime(time: number);
|
||||||
|
get duration(): number;
|
||||||
|
get played(): number;
|
||||||
|
get playing(): boolean;
|
||||||
|
get flip(): Flip;
|
||||||
|
set flip(state: Flip);
|
||||||
|
get fullscreen(): boolean;
|
||||||
|
set fullscreen(state: boolean);
|
||||||
|
set fullscreenToggle(state: boolean);
|
||||||
|
get fullscreenWeb(): boolean;
|
||||||
|
set fullscreenWeb(state: boolean);
|
||||||
|
set fullscreenWebToggle(state: boolean);
|
||||||
|
get loaded(): number;
|
||||||
|
get loop(): number[];
|
||||||
|
set loop(value: number[]);
|
||||||
|
get mini(): boolean;
|
||||||
|
set mini(state: boolean);
|
||||||
|
get pip(): boolean;
|
||||||
|
set pip(state: boolean);
|
||||||
|
get poster(): string;
|
||||||
|
set poster(url: string);
|
||||||
|
get rect(): DOMRect;
|
||||||
|
get bottom(): number;
|
||||||
|
get height(): number;
|
||||||
|
get left(): number;
|
||||||
|
get right(): number;
|
||||||
|
get top(): number;
|
||||||
|
get width(): number;
|
||||||
|
get x(): number;
|
||||||
|
get y(): number;
|
||||||
|
set seek(time: number);
|
||||||
|
set forward(time: number);
|
||||||
|
set backward(time: number);
|
||||||
|
get url(): string;
|
||||||
|
set url(url: string);
|
||||||
|
get volume(): number;
|
||||||
|
set volume(percentage: number);
|
||||||
|
get muted(): boolean;
|
||||||
|
set muted(state: boolean);
|
||||||
|
get title(): string;
|
||||||
|
set title(title: string);
|
||||||
|
get theme(): string;
|
||||||
|
set theme(theme: string);
|
||||||
|
get subtitleOffset(): number;
|
||||||
|
set subtitleOffset(time: number);
|
||||||
|
pause(): void;
|
||||||
|
play(): Promise<void>;
|
||||||
|
toggle(): void;
|
||||||
|
attr(key: string, value: any): void;
|
||||||
|
switchUrl(url: string): Promise<string>;
|
||||||
|
switchQuality(url: string): Promise<string>;
|
||||||
|
getDataURL(): Promise<string>;
|
||||||
|
getBlobUrl(): Promise<string>;
|
||||||
|
screenshot(): Promise<string>;
|
||||||
|
airplay(): void;
|
||||||
|
}
|
||||||
+69
@@ -0,0 +1,69 @@
|
|||||||
|
export type Setting = {
|
||||||
|
/**
|
||||||
|
* Html string or html element of setting name
|
||||||
|
*/
|
||||||
|
html: string | HTMLElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Html string or html element of setting icon
|
||||||
|
*/
|
||||||
|
icon?: string | HTMLElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The width of setting
|
||||||
|
*/
|
||||||
|
width?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The tooltip of setting
|
||||||
|
*/
|
||||||
|
tooltip?: string | HTMLElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the default is selected
|
||||||
|
*/
|
||||||
|
default?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom selector list
|
||||||
|
*/
|
||||||
|
selector?: Setting[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When selector item click
|
||||||
|
*/
|
||||||
|
onSelect?(item: Setting, element: HTMLDivElement, event: Event): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom switch item
|
||||||
|
*/
|
||||||
|
switch?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When switch item click
|
||||||
|
*/
|
||||||
|
onSwitch?(item: Setting, element: HTMLDivElement, event: Event): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom range item
|
||||||
|
*/
|
||||||
|
range?: number[] | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When range item change
|
||||||
|
*/
|
||||||
|
onRange?(item: Setting, element: HTMLDivElement, event: Event): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When range item change in real time
|
||||||
|
*/
|
||||||
|
onChange?(item: Setting, element: HTMLDivElement, event: Event): void;
|
||||||
|
|
||||||
|
$icon?: HTMLDivElement;
|
||||||
|
$html?: HTMLDivElement;
|
||||||
|
$tooltip?: HTMLDivElement;
|
||||||
|
$switch?: boolean;
|
||||||
|
$range?: HTMLInputElement;
|
||||||
|
$parentItem?: Setting;
|
||||||
|
$parentList?: Setting[];
|
||||||
|
};
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
export type Subtitle = {
|
||||||
|
/**
|
||||||
|
* The subtitle url
|
||||||
|
*/
|
||||||
|
url?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The subtitle type
|
||||||
|
*/
|
||||||
|
type?: 'vtt' | 'srt' | 'ass' | (string & Record<never, never>);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The subtitle style object
|
||||||
|
*/
|
||||||
|
style?: Partial<CSSStyleDeclaration>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The subtitle encoding, default utf-8
|
||||||
|
*/
|
||||||
|
encoding?: string;
|
||||||
|
};
|
||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
export type Template = {
|
||||||
|
readonly $container: HTMLDivElement;
|
||||||
|
readonly $original: HTMLDivElement;
|
||||||
|
readonly $player: HTMLDivElement;
|
||||||
|
readonly $video: HTMLVideoElement;
|
||||||
|
readonly $track: HTMLTrackElement;
|
||||||
|
readonly $poster: HTMLDivElement;
|
||||||
|
readonly $subtitle: HTMLDivElement;
|
||||||
|
readonly $danmuku: HTMLDivElement;
|
||||||
|
readonly $bottom: HTMLDivElement;
|
||||||
|
readonly $progress: HTMLDivElement;
|
||||||
|
readonly $controls: HTMLDivElement;
|
||||||
|
readonly $controlsLeft: HTMLDivElement;
|
||||||
|
readonly $controlsRight: HTMLDivElement;
|
||||||
|
readonly $layer: HTMLDivElement;
|
||||||
|
readonly $loading: HTMLDivElement;
|
||||||
|
readonly $notice: HTMLDivElement;
|
||||||
|
readonly $noticeInner: HTMLDivElement;
|
||||||
|
readonly $mask: HTMLDivElement;
|
||||||
|
readonly $state: HTMLDivElement;
|
||||||
|
readonly $setting: HTMLDivElement;
|
||||||
|
readonly $info: HTMLDivElement;
|
||||||
|
readonly $infoPanel: HTMLDivElement;
|
||||||
|
readonly $infoClose: HTMLDivElement;
|
||||||
|
readonly $miniHeader: HTMLDivElement;
|
||||||
|
readonly $miniTitle: HTMLDivElement;
|
||||||
|
readonly $miniClose: HTMLDivElement;
|
||||||
|
readonly $contextmenu: HTMLDivElement;
|
||||||
|
};
|
||||||
Vendored
+42
@@ -0,0 +1,42 @@
|
|||||||
|
export type Utils = {
|
||||||
|
userAgent: string;
|
||||||
|
isMobile: boolean;
|
||||||
|
isSafari: boolean;
|
||||||
|
isWechat: boolean;
|
||||||
|
isIE: boolean;
|
||||||
|
isAndroid: boolean;
|
||||||
|
isIOS: boolean;
|
||||||
|
query(selector: string, parent?: HTMLElement): HTMLElement;
|
||||||
|
queryAll(selector: string, parent?: HTMLElement): HTMLElement[];
|
||||||
|
addClass(target: HTMLElement, className: string): void;
|
||||||
|
removeClass(target: HTMLElement, className: string): void;
|
||||||
|
hasClass(target: HTMLElement, className: string): boolean;
|
||||||
|
append(target: HTMLElement, className: HTMLElement): HTMLElement;
|
||||||
|
remove(target: HTMLElement): void;
|
||||||
|
setStyle(element: HTMLElement, key: string, value: string): HTMLElement;
|
||||||
|
setStyles(element: HTMLElement, styles: Partial<CSSStyleDeclaration>): HTMLElement;
|
||||||
|
getStyle<T>(element: HTMLElement, key: string, numberType?: T): T extends true ? number : string;
|
||||||
|
sublings(target: HTMLElement): HTMLElement[];
|
||||||
|
inverseClass(target: HTMLElement, className: string): void;
|
||||||
|
tooltip(target: HTMLElement, msg: string, pos?: string): void;
|
||||||
|
isInViewport(target: HTMLElement, offset?: number): boolean;
|
||||||
|
includeFromEvent(event: Event, target: HTMLElement): boolean;
|
||||||
|
replaceElement(newChild: HTMLElement, oldChild: HTMLElement): HTMLElement;
|
||||||
|
createElement(tag: keyof HTMLElementTagNameMap): HTMLElement;
|
||||||
|
errorHandle<T extends boolean>(condition: T, msg: string): T extends true ? T : never;
|
||||||
|
srtToVtt(srtText: string): string;
|
||||||
|
vttToBlob(vttText: string): string;
|
||||||
|
assToVtt(assText: string): string;
|
||||||
|
getExt(url: string): string;
|
||||||
|
download(url: string, name: string): void;
|
||||||
|
def(obj: object, name: string, value: any): void;
|
||||||
|
has(obj: object, name: string): boolean;
|
||||||
|
get(obj: object, name: string): PropertyDescriptor;
|
||||||
|
mergeDeep<T>(...args: T[]): T;
|
||||||
|
sleep(ms: number): Promise<null>;
|
||||||
|
debounce(func: (...arg: any[]) => any, wait: number, context?: object): (...arg: any[]) => any;
|
||||||
|
throttle(func: (...arg: any[]) => any, wait: number): (...arg: any[]) => any;
|
||||||
|
clamp(num: number, a: number, b: number): number;
|
||||||
|
secondToTime(second: number): string;
|
||||||
|
escape(str: string): string;
|
||||||
|
};
|
||||||
+1
-1
@@ -9,5 +9,5 @@ generateSW({
|
|||||||
if (warnings.length > 0) {
|
if (warnings.length > 0) {
|
||||||
console.warn('Warnings encountered while generating a service worker:', warnings.join('\n'));
|
console.warn('Warnings encountered while generating a service worker:', warnings.join('\n'));
|
||||||
}
|
}
|
||||||
console.log(`Generated a service worker, which will precache ${count} files, totaling ${size} bytes.`);
|
console.log(`✨ Generated a service worker, which will precache ${count} files, totaling ${size} bytes.`);
|
||||||
});
|
});
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import fs from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
import glob from 'glob';
|
||||||
|
|
||||||
|
const reg = /^import.*;$/gim;
|
||||||
|
const types = glob.sync(path.join(process.cwd(), 'packages/artplayer/types/*'));
|
||||||
|
const output = path.join(path.join(process.cwd(), `docs/assets/ts/artplayer.d.ts`));
|
||||||
|
|
||||||
|
let code = '';
|
||||||
|
for (let index = 0; index < types.length; index++) {
|
||||||
|
const type = types[index];
|
||||||
|
code += String(fs.readFileSync(type)).replace(reg, '');
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.writeFileSync(output, code.trim());
|
||||||
|
console.log(`✨ Built artplayer.d.ts`);
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import Artplayer from '../packages/artplayer';
|
||||||
|
import artplayerPluginDanmuku from '../packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku';
|
||||||
|
import artplayerPluginAds from '../packages/artplayer-plugin-ads/types/artplayer-plugin-ads';
|
||||||
|
|
||||||
|
const art = new Artplayer({
|
||||||
|
container: '.artplayer-app',
|
||||||
|
url: './assets/sample/video.mp4',
|
||||||
|
plugins: [
|
||||||
|
artplayerPluginDanmuku({
|
||||||
|
danmuku: '',
|
||||||
|
margin: [0, '10%'],
|
||||||
|
theme: 'light',
|
||||||
|
}),
|
||||||
|
artplayerPluginAds({
|
||||||
|
html: '<img src="/assets/sample/poster.jpg">',
|
||||||
|
video: '/assets/sample/test1.mp4',
|
||||||
|
url: 'http://artplayer.org',
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
art.plugins
|
||||||
|
.add(
|
||||||
|
artplayerPluginDanmuku({
|
||||||
|
danmuku: '',
|
||||||
|
margin: [0, '10%'],
|
||||||
|
theme: 'light',
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
.add(
|
||||||
|
artplayerPluginAds({
|
||||||
|
html: '<img src="/assets/sample/poster.jpg">',
|
||||||
|
video: '/assets/sample/test1.mp4',
|
||||||
|
url: 'http://artplayer.org',
|
||||||
|
}),
|
||||||
|
);
|
||||||
+5
-5
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
// ======================== ES6 Module ==========================
|
// ======================== ES6 Module ==========================
|
||||||
|
|
||||||
import Artplayer from '../packages/artplayer/types/artplayer';
|
import Artplayer from '../packages/artplayer';
|
||||||
|
|
||||||
const art1 = new Artplayer({
|
const art1 = new Artplayer({
|
||||||
container: '.artplayer-app',
|
container: '.artplayer-app',
|
||||||
@@ -11,7 +11,7 @@ const art1 = new Artplayer({
|
|||||||
|
|
||||||
// ======================== CommonJS Module ==========================
|
// ======================== CommonJS Module ==========================
|
||||||
|
|
||||||
const Artplayer = require('../packages/artplayer/types/artplayer');
|
const Artplayer = require('../packages/artplayer');
|
||||||
|
|
||||||
const art2 = new Artplayer({
|
const art2 = new Artplayer({
|
||||||
container: '.artplayer-app',
|
container: '.artplayer-app',
|
||||||
@@ -20,7 +20,7 @@ const art2 = new Artplayer({
|
|||||||
|
|
||||||
// ======================== Triple-Slash Directives ==========================
|
// ======================== Triple-Slash Directives ==========================
|
||||||
|
|
||||||
/// <reference path="../packages/artplayer/types/artplayer.d.ts" />
|
/// <reference path="../packages/artplayer" />
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {Artplayer} - An Artplayer instance.
|
* @type {Artplayer} - An Artplayer instance.
|
||||||
@@ -37,7 +37,7 @@ function getInstance(art4) {
|
|||||||
// ======================== @typedef ==========================
|
// ======================== @typedef ==========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef { import("../packages/artplayer/types/artplayer") } Artplayer
|
* @typedef { import("../packages/artplayer") } Artplayer
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -55,7 +55,7 @@ function getInstance(art6) {
|
|||||||
// ======================== @param ==========================
|
// ======================== @param ==========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param { import("../packages/artplayer/types/artplayer") } art7 - An Artplayer instance.
|
* @param { import("../packages/artplayer") } art7 - An Artplayer instance.
|
||||||
*/
|
*/
|
||||||
function getInstance(art7) {
|
function getInstance(art7) {
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -1,36 +1,6 @@
|
|||||||
import Artplayer from '../packages/artplayer';
|
import Artplayer from '../packages/artplayer';
|
||||||
import artplayerPluginDanmuku from '../packages/artplayer-plugin-danmuku';
|
|
||||||
import artplayerPluginAds from '../packages/artplayer-plugin-ads';
|
|
||||||
|
|
||||||
const art = new Artplayer({
|
const art = new Artplayer({
|
||||||
container: '.artplayer-app',
|
container: '.artplayer-app',
|
||||||
url: './assets/sample/video.mp4',
|
url: './assets/sample/video.mp4',
|
||||||
plugins: [
|
|
||||||
artplayerPluginDanmuku({
|
|
||||||
danmuku: '',
|
|
||||||
margin: [0, '10%'],
|
|
||||||
theme: 'light',
|
|
||||||
}),
|
|
||||||
artplayerPluginAds({
|
|
||||||
html: '<img src="/assets/sample/poster.jpg">',
|
|
||||||
video: '/assets/sample/test1.mp4',
|
|
||||||
url: 'http://artplayer.org',
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
art.plugins
|
|
||||||
.add(
|
|
||||||
artplayerPluginDanmuku({
|
|
||||||
danmuku: '',
|
|
||||||
margin: [0, '10%'],
|
|
||||||
theme: 'light',
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
.add(
|
|
||||||
artplayerPluginAds({
|
|
||||||
html: '<img src="/assets/sample/poster.jpg">',
|
|
||||||
video: '/assets/sample/test1.mp4',
|
|
||||||
url: 'http://artplayer.org',
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
<script setup>
|
|
||||||
import Artplayer from 'artplayer/examples/vue/Artplayer.vue';
|
|
||||||
|
|
||||||
const option = {
|
|
||||||
url: 'https://artplayer.org/assets/sample/video.mp4',
|
|
||||||
};
|
|
||||||
|
|
||||||
const style = {
|
|
||||||
width: '600px',
|
|
||||||
height: '400px',
|
|
||||||
margin: '60px auto 0',
|
|
||||||
};
|
|
||||||
|
|
||||||
function getInstance(art) {
|
|
||||||
console.log(art);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<Artplayer @get-instance="getInstance" :option="option" :style="style" />
|
|
||||||
</template>
|
|
||||||
Reference in new issue
Block a user