diff --git a/docs/assets/example/control.js b/docs/assets/example/control.js index 056f8df70..51c66700f 100644 --- a/docs/assets/example/control.js +++ b/docs/assets/example/control.js @@ -55,21 +55,6 @@ var art = new Artplayer({ state: '', indicator: '', }, - settings: [ - { - html: 'Control UI', - icon: '', - tooltip: 'OFF', - switch: true, - onSwitch: async function (item) { - item.tooltip = item.switch ? 'OFF' : 'ON'; - art.plugins.artplayerPluginControl.enable = !item.switch; - await Artplayer.utils.sleep(300); - art.setting.updateStyle(); - return !item.switch; - }, - }, - ], plugins: [ artplayerPluginControl() ], diff --git a/docs/assets/example/dash.quality.js b/docs/assets/example/dash.quality.js index 43d04dbfd..68cd8a3a6 100644 --- a/docs/assets/example/dash.quality.js +++ b/docs/assets/example/dash.quality.js @@ -21,11 +21,11 @@ var art = new Artplayer({ customType: { mpd: function playMpd(video, url, art) { if (dashjs.supportsMediaSource()) { + if (art.dash) art.dash.destroy(); const dash = dashjs.MediaPlayer().create(); dash.initialize(video, url, art.option.autoplay); art.dash = dash; - art.once('url', () => dash.destroy()); - art.once('destroy', () => dash.destroy()); + art.on('destroy', () => dash.destroy()); } else { art.notice.show = 'Unsupported playback format: mpd'; } diff --git a/docs/assets/ts/artplayer.d.ts b/docs/assets/ts/artplayer.d.ts index 06045fc32..992a32018 100644 --- a/docs/assets/ts/artplayer.d.ts +++ b/docs/assets/ts/artplayer.d.ts @@ -76,10 +76,8 @@ export type Template = { readonly $info: HTMLDivElement; readonly $infoPanel: HTMLDivElement; readonly $infoClose: HTMLDivElement; - readonly $miniHeader: HTMLDivElement; - readonly $miniTitle: HTMLDivElement; - readonly $miniClose: HTMLDivElement; readonly $contextmenu: HTMLDivElement; + readonly $mini: HTMLDivElement; }; export type Subtitle = { @@ -205,14 +203,18 @@ export type Setting = { [key: string]: any; }; -export type AspectRatio = 'default' | '4:3' | '16:9' | (string & Record); + + +export type AspectRatio = 'default' | '4:3' | '16:9' | (`${number}:${number}` & Record); export type PlaybackRate = 0.5 | 0.75 | 1.0 | 1.25 | 1.5 | 1.75 | 2.0 | (number & Record); export type Flip = 'normal' | 'horizontal' | 'vertical' | (string & Record); +export type State = 'standard' | 'mini' | 'pip' | 'fullscreen' | 'fullscreenWeb'; export declare class Player { get aspectRatio(): AspectRatio; set aspectRatio(ratio: AspectRatio); - set aspectRatioReset(state: boolean); + get state(): State; + set state(state: State); get playbackRate(): PlaybackRate; set playbackRate(rate: PlaybackRate); get autoSize(): boolean; @@ -270,13 +272,14 @@ export declare class Player { play(): Promise; toggle(): void; attr(key: string, value?: any): unknown; - cssVar(key: `--art-${string}`, value?: string): unknown; + cssVar(key: T, value?: CssVar[T]): CssVar[T]; switchUrl(url: string): Promise; switchQuality(url: string): Promise; getDataURL(): Promise; getBlobUrl(): Promise; screenshot(): Promise; airplay(): void; + aspectRatioReset(state: boolean): void; } @@ -587,7 +590,7 @@ export type Option = { /** * Custom css variables */ - cssVar?: CssVar; + cssVar?: Partial; /** * Custom video type function @@ -630,7 +633,18 @@ export type Icons = { readonly [key: string]: HTMLDivElement; }; -type I18nKeys = 'en' | 'zh-cn' | 'zh-tw' | 'pl' | 'cs' | 'es' | 'fa' | 'fr' | `id` | (string & Record); +type I18nKeys = + | 'en' + | 'zh-cn' + | 'zh-tw' + | 'pl' + | 'cs' + | 'es' + | 'fa' + | 'fr' + | `id` + | `ru` + | (string & Record); type I18nValue = { 'Video Info': string; @@ -709,7 +723,6 @@ export type Events = { setting: [state: boolean]; hotkey: [event: Event]; destroy: []; - url: [url: string]; subtitleUpdate: [text: string]; subtitleLoad: [url: string]; subtitleSwitch: [url: string]; @@ -769,6 +782,7 @@ export type CssVar = { '--art-volume-height': string; '--art-volume-handle-size': string; '--art-lock-size': string; + '--art-indicator-scale': number; '--art-indicator-size': string; '--art-fullscreen-web-index': 9999; '--art-settings-scale': number; @@ -1035,10 +1049,14 @@ declare class Artplayer extends Player { static SCROLL_GAP: number; static AUTO_PLAYBACK_MAX: number; static AUTO_PLAYBACK_MIN: number; + static AUTO_PLAYBACK_TIMEOUT: number; static RECONNECT_TIME_MAX: number; static RECONNECT_SLEEP_TIME: number; static CONTROL_HIDE_TIME: number; - static DB_CLICE_TIME: number; + static DBCLICK_TIME: number; + static DBCLICK_FULLSCREEN: boolean; + static MOBILE_DBCLICK_PLAY: boolean; + static MOBILE_CLICK_PLAY: boolean; static MOBILE_AUTO_PLAYBACKRAT: number; static MOBILE_AUTO_PLAYBACKRATE_TIME: number; static MOBILE_AUTO_ORIENTATION_TIME: number; @@ -1114,7 +1132,7 @@ declare class Artplayer extends Player { }; readonly notice: { - time: number; + timer: number; set show(msg: string); }; @@ -1138,15 +1156,18 @@ declare class Artplayer extends Player { readonly hotkey: { keys: Record any)[]>; add(key: number, callback: (this: Artplayer, event: Event) => any): Artplayer['hotkey']; + remove(key: number, callback: Function): Artplayer['hotkey']; }; readonly mask: Component; readonly setting: { - option: Setting[]; - add(setting: Setting): SettingOption; - update(settings: Setting[]): SettingOption[]; + option: SettingOption[]; updateStyle(width?: number): void; + find(name: string): SettingOption; + add(setting: Setting): SettingOption[]; + update(settings: Setting): SettingOption[]; + remove(name: string): SettingOption[]; } & Component; readonly plugins: { diff --git a/docs/compiled/artplayer-plugin-ads.js b/docs/compiled/artplayer-plugin-ads.js index ac3e898b2..9567d94da 100644 --- a/docs/compiled/artplayer-plugin-ads.js +++ b/docs/compiled/artplayer-plugin-ads.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-ads.js v1.0.6 + * artplayer-plugin-ads.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * 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[t]&&a[t],o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(n,l){if(!o[n]){if(!e[n]){var i="function"==typeof a[t]&&a[t];if(!l&&i)return i(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var p=new Error("Cannot find module '"+n+"'");throw p.code="MODULE_NOT_FOUND",p}c.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},c.cache={};var u=o[n]=new s.Module(n);e[n][0].call(u.exports,c,u,u.exports,this)}return o[n].exports;function c(e){var n=c.resolve(e);return!1===n?{}:s(n)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=o,s.parent=r,s.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(s,"root",{get:function(){return a[t]}}),a[t]=s;for(var p=0;p{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:s,append:p,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 $(){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():$()}),1e3))}function O(){b||clearTimeout(h)}function P(){w||(w=!0,function(){n.template.$ads=p(l,'
'),c=p(n.template.$ads,e.video?``:`
${e.html}
`),v=p(n.template.$ads,'
'),p(v,o),y=p(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}
${j(e.totalDuration,e.i18n.countdown)}
`),f=s(".artplayer-plugin-ads-close",y),g=s(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=p(n.template.$ads,`
${e.i18n.detail}
`);const d=s(".artplayer-plugin-ads-detail",m),x=s(".artplayer-plugin-ads-muted",m),h=s(".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=p(x,t),a=p(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=p(h,a),w=p(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",(()=>{$(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):($(),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:O,play:$}}}if(l.default=r,r.env="production",r.version="1.0.6",r.build="2023-04-17 23:16:16","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=a.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=r)},{"bundle-text:./style.less":"jDrWj","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jDrWj:[function(e,n,l){n.exports=".artplayer-plugin-ads{z-index:150;width:100%;height:100%;color:#fff;background-color:#000;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{width:100%;height:100%;justify-content:center;align-items:center;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{width:100%;height:100%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}"},{}],"9pCYc":[function(e,n,l){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach((function(l){"default"===l||"__esModule"===l||n.hasOwnProperty(l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})})),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["hUYA0"],"hUYA0","parcelRequire4dc0"); \ No newline at end of file +!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[t]&&a[t],o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(n,l){if(!o[n]){if(!e[n]){var i="function"==typeof a[t]&&a[t];if(!l&&i)return i(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var p=new Error("Cannot find module '"+n+"'");throw p.code="MODULE_NOT_FOUND",p}c.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},c.cache={};var u=o[n]=new s.Module(n);e[n][0].call(u.exports,c,u,u.exports,this)}return o[n].exports;function c(e){var n=c.resolve(e);return!1===n?{}:s(n)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=o,s.parent=r,s.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(s,"root",{get:function(){return a[t]}}),a[t]=s;for(var p=0;p{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:s,append:p,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 $(){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():$()}),1e3))}function O(){b||clearTimeout(h)}function P(){w||(w=!0,function(){n.template.$ads=p(l,'
'),c=p(n.template.$ads,e.video?``:`
${e.html}
`),v=p(n.template.$ads,'
'),p(v,o),y=p(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}
${j(e.totalDuration,e.i18n.countdown)}
`),f=s(".artplayer-plugin-ads-close",y),g=s(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=p(n.template.$ads,`
${e.i18n.detail}
`);const d=s(".artplayer-plugin-ads-detail",m),x=s(".artplayer-plugin-ads-muted",m),h=s(".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=p(x,t),a=p(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=p(h,a),w=p(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",(()=>{$(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):($(),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:O,play:$}}}if(l.default=r,r.env="production",r.version="2.0.0",r.build="2023-04-23 13:41:52","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=a.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=r)},{"bundle-text:./style.less":"jDrWj","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jDrWj:[function(e,n,l){n.exports=".artplayer-plugin-ads{z-index:150;width:100%;height:100%;color:#fff;background-color:#000;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{width:100%;height:100%;justify-content:center;align-items:center;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{width:100%;height:100%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}"},{}],"9pCYc":[function(e,n,l){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach((function(l){"default"===l||"__esModule"===l||n.hasOwnProperty(l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})})),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["hUYA0"],"hUYA0","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-ads.legacy.js b/docs/compiled/artplayer-plugin-ads.legacy.js index 06ac2d8bf..133b897db 100644 --- a/docs/compiled/artplayer-plugin-ads.legacy.js +++ b/docs/compiled/artplayer-plugin-ads.legacy.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-ads.js v1.0.6 + * artplayer-plugin-ads.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * 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[t]&&a[t],o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(n,l){if(!o[n]){if(!e[n]){var i="function"==typeof a[t]&&a[t];if(!l&&i)return i(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var p=new Error("Cannot find module '"+n+"'");throw p.code="MODULE_NOT_FOUND",p}c.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},c.cache={};var u=o[n]=new s.Module(n);e[n][0].call(u.exports,c,u,u.exports,this)}return o[n].exports;function c(e){var n=c.resolve(e);return!1===n?{}:s(n)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=o,s.parent=r,s.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(s,"root",{get:function(){return a[t]}}),a[t]=s;for(var p=0;p{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:s,append:p,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 P(){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():P()}),1e3))}function $(){b||clearTimeout(h)}function O(){w||(w=!0,function(){n.template.$ads=p(l,'
'),c=p(n.template.$ads,e.video?``:`
${e.html}
`),v=p(n.template.$ads,'
'),p(v,o),y=p(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}
${j(e.totalDuration,e.i18n.countdown)}
`),f=s(".artplayer-plugin-ads-close",y),g=s(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=p(n.template.$ads,`
${e.i18n.detail}
`);const d=s(".artplayer-plugin-ads-detail",m),x=s(".artplayer-plugin-ads-muted",m),h=s(".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=p(x,t),a=p(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=p(h,a),w=p(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",(()=>{P(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):(P(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")),n.proxy(document,"visibilitychange",(()=>{document.hidden?$():P()})))}return n.on("ready",(()=>{n.once("play",O),n.once("video:playing",O)})),{name:"artplayerPluginAds",skip:k,pause:$,play:P}}}if(l.default=r,r.env="production",r.version="1.0.6",r.build="2023-04-17 23:16:16","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=a.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=r)},{"bundle-text:./style.less":"dXzYf","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],dXzYf:[function(e,n,l){n.exports=".artplayer-plugin-ads{z-index:150;width:100%;height:100%;color:#fff;background-color:#000;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{width:100%;height:100%;justify-content:center;align-items:center;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{width:100%;height:100%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}"},{}],"47PTV":[function(e,n,l){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach((function(l){"default"===l||"__esModule"===l||n.hasOwnProperty(l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})})),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["hs8jd"],"hs8jd","parcelRequire4dc0"); \ No newline at end of file +!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[t]&&a[t],o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(n,l){if(!o[n]){if(!e[n]){var i="function"==typeof a[t]&&a[t];if(!l&&i)return i(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var p=new Error("Cannot find module '"+n+"'");throw p.code="MODULE_NOT_FOUND",p}c.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},c.cache={};var u=o[n]=new s.Module(n);e[n][0].call(u.exports,c,u,u.exports,this)}return o[n].exports;function c(e){var n=c.resolve(e);return!1===n?{}:s(n)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=o,s.parent=r,s.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(s,"root",{get:function(){return a[t]}}),a[t]=s;for(var p=0;p{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:s,append:p,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 P(){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():P()}),1e3))}function $(){b||clearTimeout(h)}function O(){w||(w=!0,function(){n.template.$ads=p(l,'
'),c=p(n.template.$ads,e.video?``:`
${e.html}
`),v=p(n.template.$ads,'
'),p(v,o),y=p(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}
${j(e.totalDuration,e.i18n.countdown)}
`),f=s(".artplayer-plugin-ads-close",y),g=s(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=p(n.template.$ads,`
${e.i18n.detail}
`);const d=s(".artplayer-plugin-ads-detail",m),x=s(".artplayer-plugin-ads-muted",m),h=s(".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=p(x,t),a=p(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=p(h,a),w=p(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",(()=>{P(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):(P(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")),n.proxy(document,"visibilitychange",(()=>{document.hidden?$():P()})))}return n.on("ready",(()=>{n.once("play",O),n.once("video:playing",O)})),{name:"artplayerPluginAds",skip:k,pause:$,play:P}}}if(l.default=r,r.env="production",r.version="2.0.0",r.build="2023-04-23 13:41:53","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=a.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=r)},{"bundle-text:./style.less":"dXzYf","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],dXzYf:[function(e,n,l){n.exports=".artplayer-plugin-ads{z-index:150;width:100%;height:100%;color:#fff;background-color:#000;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{width:100%;height:100%;justify-content:center;align-items:center;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{width:100%;height:100%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}"},{}],"47PTV":[function(e,n,l){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach((function(l){"default"===l||"__esModule"===l||n.hasOwnProperty(l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})})),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["hs8jd"],"hs8jd","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-control.js b/docs/compiled/artplayer-plugin-control.js index 36952275b..6bbea22fa 100644 --- a/docs/compiled/artplayer-plugin-control.js +++ b/docs/compiled/artplayer-plugin-control.js @@ -4,4 +4,4 @@ * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(t,r,e,o,n){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof a[o]&&a[o],i=l.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(r,e){if(!i[r]){if(!t[r]){var n="function"==typeof a[o]&&a[o];if(!e&&n)return n(r,!0);if(l)return l(r,!0);if(p&&"string"==typeof r)return p(r);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(e){var o=t[r][1][e];return null!=o?o:e},d.cache={};var c=i[r]=new s.Module(r);t[r][0].call(c.exports,d,c,c.exports,this)}return i[r].exports;function d(t){var r=d.resolve(t);return!1===r?{}:s(r)}}s.isParcelRequire=!0,s.Module=function(t){this.id=t,this.bundle=s,this.exports={}},s.modules=t,s.cache=i,s.parent=l,s.register=function(r,e){t[r]=[function(t,r){r.exports=e},{}]},Object.defineProperty(s,"root",{get:function(){return a[o]}}),a[o]=s;for(var u=0;u{!function(t){const{version:r,utils:{errorHandle:e}}=t.constructor,o=r.split(".").map(Number);e(o[0]+o[1]/100>=5,`Artplayer.js@${r} is not compatible the artplayerPluginControl@${l.version}. Please update it to version Artplayer.js@4.6.x`)}(t);const{template:{$bottom:r,$player:e},constructor:{utils:{append:o,secondToTime:n,addClass:a,removeClass:i,hasClass:p,isMobile:s}}}=t;if(s)return;const u="artplayer-plugin-control";a(e,u);const c=o(r,'
'),d=o(r,'
'),f=["video:loadedmetadata","video:timeupdate","video:progress"];for(let r=0;r{c.innerText=n(t.currentTime),d.innerText=n(t.duration)}));return{name:"artplayerPluginControl",get enable(){return p(e,u)},set enable(t){t?a(e,u):i(e,u)}}}}if(e.default=l,l.env="production",l.version="2.0.0",l.build="2023-04-17 23:16:15","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-control")){const t=document.createElement("style");t.id="artplayer-plugin-control",t.textContent=a.default,document.head.appendChild(t)}"undefined"!=typeof window&&(window.artplayerPluginControl=l)},{"bundle-text:./style.less":"klrMD","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],klrMD:[function(t,r,e){r.exports=".artplayer-plugin-control .art-bottom{height:68px;width:400px;user-select:none;-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);pointer-events:auto;background-color:#000000b3;background-image:none;border-radius:10px;flex-direction:column;justify-content:space-between;align-items:center;padding:13px 0 0;font-size:13px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 15px -3px #0003,0 4px 6px -4px #0003;bottom:10px!important}.artplayer-plugin-control .art-bottom .art-progress{width:65%;justify-content:space-between;align-items:center;gap:10px;display:flex}.artplayer-plugin-control .art-bottom .art-progress .art-control-thumbnails{bottom:25px}.artplayer-plugin-control .art-bottom .art-progress .art-control-progress{width:100%}.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-control-progress-inner,.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-progress-loaded,.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-progress-played{border-radius:5px}.artplayer-plugin-control .art-bottom .art-progress .art-progress-tip{top:-40px!important}.artplayer-plugin-control .art-bottom .art-controls{width:100%;flex:1}.artplayer-plugin-control .art-bottom .art-controls .art-control-time,.artplayer-plugin-control .art-bottom .art-controls .art-controls-center{display:none}.artplayer-plugin-control .art-bottom .art-selector-list{background-color:#000c!important}.artplayer-plugin-control .art-bottom .apa-control-current,.artplayer-plugin-control .art-bottom .apa-control-duration{width:17.5%;justify-content:center;line-height:1;display:flex;position:absolute;top:10px}.artplayer-plugin-control .art-bottom .apa-control-current{left:0}.artplayer-plugin-control .art-bottom .apa-control-duration{right:0}.artplayer-plugin-control .art-settings{bottom:85px}.artplayer-plugin-control .art-layer-auto-playback{bottom:90px}.artplayer-plugin-control.art-control-show .art-subtitle{bottom:80px}.apa-control-current,.apa-control-duration{display:none}"},{}],"9pCYc":[function(t,r,e){e.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},e.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},e.exportAll=function(t,r){return Object.keys(t).forEach((function(e){"default"===e||"__esModule"===e||r.hasOwnProperty(e)||Object.defineProperty(r,e,{enumerable:!0,get:function(){return t[e]}})})),r},e.export=function(t,r,e){Object.defineProperty(t,r,{enumerable:!0,get:e})}},{}]},["16V0T"],"16V0T","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,r,o,n){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof l[o]&&l[o],i=a.cache||{},u="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!i[t]){if(!e[t]){var n="function"==typeof l[o]&&l[o];if(!r&&n)return n(t,!0);if(a)return a(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}s.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},s.cache={};var d=i[t]=new p.Module(t);e[t][0].call(d.exports,s,d,d.exports,this)}return i[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=i,p.parent=a,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return l[o]}}),l[o]=p;for(var c=0;c{!function(e){const{version:t,utils:{errorHandle:r}}=e.constructor,o=t.split(".").map(Number);r(o[0]+o[1]/100>=5,`Artplayer.js@${t} is not compatible the artplayerPluginControl@${a.version}. Please update it to version Artplayer.js@4.6.x`)}(e);const{template:{$bottom:t,$player:r},constructor:{utils:{append:o,secondToTime:n,addClass:l,removeClass:i,hasClass:u,isMobile:p}}}=e;if(p)return;const c="artplayer-plugin-control";l(r,c);const d=o(t,'
'),s=o(t,'
'),f=["video:loadedmetadata","video:timeupdate","video:progress"];for(let t=0;t{d.innerText=n(e.currentTime),s.innerText=n(e.duration)}));return{name:"artplayerPluginControl",get enable(){return u(r,c)},set enable(e){e?l(r,c):i(r,c)}}}}if(r.default=a,a.env="production",a.version="2.0.0",a.build="2023-04-23 13:41:52","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-control")){const e=document.createElement("style");e.id="artplayer-plugin-control",e.textContent=l.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginControl=a)},{"bundle-text:./style.less":"klrMD","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],klrMD:[function(e,t,r){t.exports=".artplayer-plugin-control .apa-control-current,.artplayer-plugin-control .apa-control-duration{display:flex}.artplayer-plugin-control .art-control-time,.artplayer-plugin-control .art-controls-center{display:none}.artplayer-plugin-control .art-settings{bottom:85px}.artplayer-plugin-control .art-bottom{height:70px;width:400px;-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3;background-image:none;border-radius:10px;align-items:center;margin-left:-200px;inset:auto auto 10px 50%;overflow:visible;box-shadow:0 10px 15px -3px #0003,0 4px 6px -4px #0003}.artplayer-plugin-control .art-bottom .art-progress{width:70%}.artplayer-plugin-control .art-bottom .art-controls{width:100%}.artplayer-plugin-control .art-bottom .apa-control-current,.artplayer-plugin-control .art-bottom .apa-control-duration{width:15%;justify-content:center;font-size:12px;line-height:1;display:flex;position:absolute;top:10px}.artplayer-plugin-control .art-bottom .apa-control-current{left:0}.artplayer-plugin-control .art-bottom .apa-control-duration{right:0}.apa-control-current,.apa-control-duration{display:none}"},{}],"9pCYc":[function(e,t,r){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach((function(r){"default"===r||"__esModule"===r||t.hasOwnProperty(r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})})),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["16V0T"],"16V0T","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-control.legacy.js b/docs/compiled/artplayer-plugin-control.legacy.js index 1c6a5ae9b..e71c3c677 100644 --- a/docs/compiled/artplayer-plugin-control.legacy.js +++ b/docs/compiled/artplayer-plugin-control.legacy.js @@ -4,4 +4,4 @@ * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(t,r,e,o,n){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof a[o]&&a[o],i=l.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(r,e){if(!i[r]){if(!t[r]){var n="function"==typeof a[o]&&a[o];if(!e&&n)return n(r,!0);if(l)return l(r,!0);if(p&&"string"==typeof r)return p(r);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(e){var o=t[r][1][e];return null!=o?o:e},d.cache={};var c=i[r]=new s.Module(r);t[r][0].call(c.exports,d,c,c.exports,this)}return i[r].exports;function d(t){var r=d.resolve(t);return!1===r?{}:s(r)}}s.isParcelRequire=!0,s.Module=function(t){this.id=t,this.bundle=s,this.exports={}},s.modules=t,s.cache=i,s.parent=l,s.register=function(r,e){t[r]=[function(t,r){r.exports=e},{}]},Object.defineProperty(s,"root",{get:function(){return a[o]}}),a[o]=s;for(var u=0;u{!function(t){const{version:r,utils:{errorHandle:e}}=t.constructor,o=r.split(".").map(Number);e(o[0]+o[1]/100>=5,`Artplayer.js@${r} is not compatible the artplayerPluginControl@${l.version}. Please update it to version Artplayer.js@4.6.x`)}(t);const{template:{$bottom:r,$player:e},constructor:{utils:{append:o,secondToTime:n,addClass:a,removeClass:i,hasClass:p,isMobile:s}}}=t;if(s)return;const u="artplayer-plugin-control";a(e,u);const c=o(r,'
'),d=o(r,'
'),f=["video:loadedmetadata","video:timeupdate","video:progress"];for(let r=0;r{c.innerText=n(t.currentTime),d.innerText=n(t.duration)}));return{name:"artplayerPluginControl",get enable(){return p(e,u)},set enable(t){t?a(e,u):i(e,u)}}}}if(e.default=l,l.env="production",l.version="2.0.0",l.build="2023-04-17 23:16:16","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-control")){const t=document.createElement("style");t.id="artplayer-plugin-control",t.textContent=a.default,document.head.appendChild(t)}"undefined"!=typeof window&&(window.artplayerPluginControl=l)},{"bundle-text:./style.less":"8jCnX","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8jCnX":[function(t,r,e){r.exports=".artplayer-plugin-control .art-bottom{height:68px;width:400px;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);pointer-events:auto;background-color:#000000b3;background-image:none;border-radius:10px;flex-direction:column;justify-content:space-between;align-items:center;padding:13px 0 0;font-size:13px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 15px -3px #0003,0 4px 6px -4px #0003;bottom:10px!important}.artplayer-plugin-control .art-bottom .art-progress{width:65%;justify-content:space-between;align-items:center;gap:10px;display:flex}.artplayer-plugin-control .art-bottom .art-progress .art-control-thumbnails{bottom:25px}.artplayer-plugin-control .art-bottom .art-progress .art-control-progress{width:100%}.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-control-progress-inner,.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-progress-loaded,.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-progress-played{border-radius:5px}.artplayer-plugin-control .art-bottom .art-progress .art-progress-tip{top:-40px!important}.artplayer-plugin-control .art-bottom .art-controls{width:100%;flex:1}.artplayer-plugin-control .art-bottom .art-controls .art-control-time,.artplayer-plugin-control .art-bottom .art-controls .art-controls-center{display:none}.artplayer-plugin-control .art-bottom .art-selector-list{background-color:#000c!important}.artplayer-plugin-control .art-bottom .apa-control-current,.artplayer-plugin-control .art-bottom .apa-control-duration{width:17.5%;justify-content:center;line-height:1;display:flex;position:absolute;top:10px}.artplayer-plugin-control .art-bottom .apa-control-current{left:0}.artplayer-plugin-control .art-bottom .apa-control-duration{right:0}.artplayer-plugin-control .art-settings{bottom:85px}.artplayer-plugin-control .art-layer-auto-playback{bottom:90px}.artplayer-plugin-control.art-control-show .art-subtitle{bottom:80px}.apa-control-current,.apa-control-duration{display:none}"},{}],"47PTV":[function(t,r,e){e.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},e.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},e.exportAll=function(t,r){return Object.keys(t).forEach((function(e){"default"===e||"__esModule"===e||r.hasOwnProperty(e)||Object.defineProperty(r,e,{enumerable:!0,get:function(){return t[e]}})})),r},e.export=function(t,r,e){Object.defineProperty(t,r,{enumerable:!0,get:e})}},{}]},["d3G6W"],"d3G6W","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,r,o,n){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof l[o]&&l[o],i=a.cache||{},u="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!i[t]){if(!e[t]){var n="function"==typeof l[o]&&l[o];if(!r&&n)return n(t,!0);if(a)return a(t,!0);if(u&&"string"==typeof t)return u(t);var d=new Error("Cannot find module '"+t+"'");throw d.code="MODULE_NOT_FOUND",d}s.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},s.cache={};var c=i[t]=new p.Module(t);e[t][0].call(c.exports,s,c,c.exports,this)}return i[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=i,p.parent=a,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return l[o]}}),l[o]=p;for(var d=0;d{!function(e){const{version:t,utils:{errorHandle:r}}=e.constructor,o=t.split(".").map(Number);r(o[0]+o[1]/100>=5,`Artplayer.js@${t} is not compatible the artplayerPluginControl@${a.version}. Please update it to version Artplayer.js@4.6.x`)}(e);const{template:{$bottom:t,$player:r},constructor:{utils:{append:o,secondToTime:n,addClass:l,removeClass:i,hasClass:u,isMobile:p}}}=e;if(p)return;const d="artplayer-plugin-control";l(r,d);const c=o(t,'
'),s=o(t,'
'),f=["video:loadedmetadata","video:timeupdate","video:progress"];for(let t=0;t{c.innerText=n(e.currentTime),s.innerText=n(e.duration)}));return{name:"artplayerPluginControl",get enable(){return u(r,d)},set enable(e){e?l(r,d):i(r,d)}}}}if(r.default=a,a.env="production",a.version="2.0.0",a.build="2023-04-23 13:41:52","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-control")){const e=document.createElement("style");e.id="artplayer-plugin-control",e.textContent=l.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginControl=a)},{"bundle-text:./style.less":"8jCnX","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8jCnX":[function(e,t,r){t.exports=".artplayer-plugin-control .apa-control-current,.artplayer-plugin-control .apa-control-duration{display:flex}.artplayer-plugin-control .art-control-time,.artplayer-plugin-control .art-controls-center{display:none}.artplayer-plugin-control .art-settings{bottom:85px}.artplayer-plugin-control .art-bottom{height:70px;width:400px;-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3;background-image:none;border-radius:10px;align-items:center;margin-left:-200px;inset:auto auto 10px 50%;overflow:visible;box-shadow:0 10px 15px -3px #0003,0 4px 6px -4px #0003}.artplayer-plugin-control .art-bottom .art-progress{width:70%}.artplayer-plugin-control .art-bottom .art-controls{width:100%}.artplayer-plugin-control .art-bottom .apa-control-current,.artplayer-plugin-control .art-bottom .apa-control-duration{width:15%;justify-content:center;font-size:12px;line-height:1;display:flex;position:absolute;top:10px}.artplayer-plugin-control .art-bottom .apa-control-current{left:0}.artplayer-plugin-control .art-bottom .apa-control-duration{right:0}.apa-control-current,.apa-control-duration{display:none}"},{}],"47PTV":[function(e,t,r){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach((function(r){"default"===r||"__esModule"===r||t.hasOwnProperty(r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})})),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["d3G6W"],"d3G6W","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-danmuku.js b/docs/compiled/artplayer-plugin-danmuku.js index c992e8d47..8bb7ed7b0 100644 --- a/docs/compiled/artplayer-plugin-danmuku.js +++ b/docs/compiled/artplayer-plugin-danmuku.js @@ -4,4 +4,4 @@ * (c) 2017-2023 Harvey Zack * 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[i]&&a[i],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 r="function"==typeof a[i]&&a[i];if(!n&&r)return r(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var d=new Error("Cannot find module '"+e+"'");throw d.code="MODULE_NOT_FOUND",d}p.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},p.cache={};var m=s[e]=new u.Module(e);t[e][0].call(m.exports,p,m,m.exports,this)}return s[e].exports;function p(t){var e=p.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[i]}}),a[i]=u;for(var d=0;d{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=5,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 5 版本以上`)}(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="5.0.0",l.build="2023-04-17 23:16:14","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"4ns48","./setting":"lO8OT","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4ns48":[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("85d40535eae5f839"))}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 JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.1>=e.time&&e.time>=t-.1))}getEmits(){const t=[],{clientWidth:e}=this.$player,n=this.getLeft(this.$player);return this.filter("emit",(i=>{const r=i.$ref.offsetTop,a=this.getLeft(i.$ref)-n,o=i.$ref.clientHeight,s=i.$ref.clientWidth,l=a+s,u=e-l,d=l/i.$restTime,m={};m.top=r,m.left=a,m.height=o,m.width=s,m.right=u,m.speed=d,m.distance=l,m.time=i.$restTime,m.mode=i.mode,t.push(m)})),t}getFontSize(t){const{clamp:e}=this.utils,{clientHeight:n}=this.$player;if("number"==typeof t)return e(t,12,n);if("string"==typeof t&&t.endsWith("%")){return e(n*(parseFloat(t)/100),12,n)}return s.option.fontSize}postMessage(t={}){return new Promise((e=>{if(this.option.useWorker&&this.worker&&this.worker.postMessage)t.id=Date.now(),this.worker.postMessage(t),this.worker.onmessage=n=>{const{data:i}=n;i.id===t.id&&e(i)};else{const n=(0,o.default)(t);e({top:n})}}))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await(0,r.bilibiliDanmuParseFromUrl)(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},s.option,this.option,t),this.validator(this.option,s.scheme),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.lockTime=e(Math.floor(this.option.lockTime),0,60),this.option.maxLength=e(this.option.maxLength,0,500),this.option.minWidth=e(this.option.minWidth,0,500),this.option.maxWidth=e(this.option.maxWidth,0,1/0),t.fontSize&&(this.option.fontSize=this.getFontSize(this.option.fontSize),this.reset()),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const n=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const n=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}reset(){return this.queue.forEach((t=>this.makeWait(t))),this}update(){return this.timer=window.requestAnimationFrame((async()=>{if(this.art.playing&&!this.isHide){this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)}));const t=this.getReady(),{clientWidth:e,clientHeight:n}=this.$player;for(let i=0;ithis.makeWait(t))),this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}emit(t){return this.validator(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()&&this.option.filter(t)?(t.time?t.time=this.utils.clamp(t.time,0,1/0):t.time=this.art.currentTime+.5,void 0===t.mode&&(t.mode=this.option.mode),void 0===t.color&&(t.color=this.option.color),this.queue.push({...t,$state:"wait",$ref:null,$restTime:0,$lastStartTime:0}),this):this}destroy(){this.stop(),this.worker&&this.worker.terminate&&this.worker.terminate(),this.art.off("video:play",this.start),this.art.off("video:playing",this.start),this.art.off("video:pause",this.stop),this.art.off("video:waiting",this.stop),this.art.off("fullscreen",this.reset),this.art.off("fullscreenWeb",this.reset),this.art.off("destroy",this.destroy),this.art.emit("artplayerPluginDanmuku:destroy")}}n.default=s},{"./bilibili":"f83sx","./getDanmuTop":"jPSuD","85d40535eae5f839":"fXq73","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],f83sx:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");function r(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function a(t){if("string"!=typeof t)return[];const e=t.matchAll(/(?.+?)<\/d>/gs);return Array.from(e).map((t=>{const e=t.groups.p.split(",");if(e.length>=8){return{text:t.groups.text.trim().replaceAll(""",'"').replaceAll("'","'").replaceAll("<","<").replaceAll(">",">").replaceAll("&","&"),time:Number(e[0]),mode:r(Number(e[1])),fontSize:Number(e[2]),color:`#${Number(e[3]).toString(16)}`,timestamp:Number(e[4]),pool:Number(e[5]),userID:e[6],rowID:Number(e[7])}}return null})).filter(Boolean)}function o(t){return fetch(t).then((t=>t.text())).then((t=>a(t)))}i.defineInteropFlag(n),i.export(n,"getMode",(()=>r)),i.export(n,"bilibiliDanmuParseFromXml",(()=>a)),i.export(n,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(t,e,n){n.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},n.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.exportAll=function(t,e){return Object.keys(t).forEach((function(n){"default"===n||"__esModule"===n||e.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})),e},n.export=function(t,e,n){Object.defineProperty(t,e,{enumerable:!0,get:n})}},{}],jPSuD:[function(t,e,n){t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=function({target:t,emits:e,clientWidth:n,clientHeight:i,marginBottom:r,marginTop:a,antiOverlap:o}){const s=e.filter((e=>e.mode===t.mode&&e.top<=i-r)).sort(((t,e)=>t.top-e.top));if(0===s.length)return a;s.unshift({top:0,left:0,right:0,height:a,width:n,speed:0,distance:n}),s.push({top:i-r,left:0,right:0,height:r,width:n,speed:0,distance:n});for(let e=1;e=t.height)return r}const l=[];for(let t=1;t{const n=Math.min(...e.map((t=>t.right))),i=Math.min(...t.map((t=>t.right)));return n*e.length-i*t.length}));break;case 1:l.sort(((t,e)=>{const n=Math.max(...e.map((t=>t.width)));return Math.max(...t.map((t=>t.width)))*t.length-n*e.length}))}return l[0][0].top}switch(t.mode){case 0:{const e=l.find((e=>e.every((e=>{if(ne.time}))));return e&&e[0]?e[0].top:void 0}case 1:return}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],fXq73:[function(t,e,n){e.exports="data:application/javascript,function%20getDanmuTop%28%7Btarget%3At%2Cemits%3Ae%2CclientWidth%3An%2CclientHeight%3Ai%2CmarginBottom%3As%2CmarginTop%3Ah%2CantiOverlap%3Ao%7D%29%7Bconst%20r%3De.filter%28%28e%3D%3Ee.mode%3D%3D%3Dt.mode%26%26e.top%3C%3Di-s%29%29.sort%28%28%28t%2Ce%29%3D%3Et.top-e.top%29%29%3Bif%280%3D%3D%3Dr.length%29return%20h%3Br.unshift%28%7Btop%3A0%2Cleft%3A0%2Cright%3A0%2Cheight%3Ah%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%2Cr.push%28%7Btop%3Ai-s%2Cleft%3A0%2Cright%3A0%2Cheight%3As%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%3Bfor%28let%20e%3D1%3Be%3Cr.length%3Be%2B%3D1%29%7Bconst%20n%3Dr%5Be%5D%2Ci%3Dr%5Be-1%5D%2Cs%3Di.top%2Bi.height%3Bif%28n.top-s%3E%3Dt.height%29return%20s%7Dconst%20p%3D%5B%5D%3Bfor%28let%20t%3D1%3Bt%3Cr.length-1%3Bt%2B%3D1%29%7Bconst%20e%3Dr%5Bt%5D%3Bif%28p.length%29%7Bconst%20t%3Dp%5Bp.length-1%5D%3Bt%5B0%5D.top%3D%3D%3De.top%3Ft.push%28e%29%3Ap.push%28%5Be%5D%29%7Delse%20p.push%28%5Be%5D%29%7Dif%28%21o%29%7Bswitch%28t.mode%29%7Bcase%200%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.min%28...e.map%28%28t%3D%3Et.right%29%29%29%2Ci%3DMath.min%28...t.map%28%28t%3D%3Et.right%29%29%29%3Breturn%20n%2ae.length-i%2at.length%7D%29%29%3Bbreak%3Bcase%201%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.max%28...e.map%28%28t%3D%3Et.width%29%29%29%3Breturn%20Math.max%28...t.map%28%28t%3D%3Et.width%29%29%29%2at.length-n%2ae.length%7D%29%29%7Dreturn%20p%5B0%5D%5B0%5D.top%7Dswitch%28t.mode%29%7Bcase%200%3A%7Bconst%20e%3Dp.find%28%28e%3D%3Ee.every%28%28e%3D%3E%7Bif%28n%3Ce.distance%29return%211%3Bif%28t.speed%3Ce.speed%29return%210%3Breturn%20e.right%2F%28t.speed-e.speed%29%3Ee.time%7D%29%29%29%29%3Breturn%20e%26%26e%5B0%5D%3Fe%5B0%5D.top%3Avoid%200%7Dcase%201%3Areturn%7D%7Donmessage%3Dt%3D%3E%7Bconst%7Bdata%3Ae%7D%3Dt%2Cn%3DgetDanmuTop%28e%29%3Bself.postMessage%28%7Btop%3An%2Cid%3Ae.id%7D%29%7D%3B"},{}],lO8OT:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("bundle-text:./style.less"),a=i.interopDefault(r),o=t("bundle-text:./img/danmu-on.svg"),s=i.interopDefault(o),l=t("bundle-text:./img/danmu-off.svg"),u=i.interopDefault(l),d=t("bundle-text:./img/danmu-config.svg"),m=i.interopDefault(d),p=t("bundle-text:./img/danmu-style.svg"),c=i.interopDefault(p);if(n.default=function(t,e){const{option:n}=e,{template:{$controlsCenter:i,$player:r},constructor:{utils:{removeClass:a,addClass:o,append:l,setStyle:d,tooltip:p,query:h,inverseClass:f}}}=t;function g(t,e){const n=document.createElement("i");return l(n,t),o(n,"art-icon"),o(n,`art-icon-${e}`),n}d(i,"display","flex");const k=g(s.default,"danmu-on"),y=g(u.default,"danmu-off"),b=g(m.default,"danmu-config"),x=g(c.default,"danmu-style");!function(){const s=["#FE0302","#FF7204","#FFAA02","#FFD302","#FFFF00","#A0EE00","#00CD00","#019899","#4266BE","#89D5FF","#CC0273","#222222","#9B9B9B","#FFFFFF"].map((t=>`
`)),u=l(i,`
模式
滚动
静止
颜色
${s.join("")}
发送
`),m=h(".art-danmuku-style",u),p=h(".art-danmuku-input",u),c=h(".art-danmuku-send",u),g=h(".art-danmuku-style-panel-inner",u),k=h(".art-danmuku-style-panel-modes",u),y=h(".art-danmuku-style-panel-colors",u),b=n.mount||l(r,'
');t.option.backdrop&&o(g,"art-backdrop-filter"),n.theme&&o(u,`art-danmuku-theme-${n.theme}`);let v=null,w=n.mode,D=n.color;function $(t){t<=0?(v=null,c.innerText="发送",a(c,"art-disabled")):(c.innerText=t,v=setTimeout((()=>$(t-1)),1e3))}function B(){const i={mode:w,color:D,border:!0,text:p.value.trim()};null===v&&n.beforeEmit(i)&&(p.value="",e.emit(i),o(c,"art-disabled"),$(n.lockTime),t.emit("artplayerPluginDanmuku:emit",i))}function C(){i.clientWidth{"Enter"===t.key&&(t.preventDefault(),B())})),t.proxy(k,"click",(t=>{const{dataset:e}=t.target;e.mode&&(w=Number(e.mode),f(t.target,"art-current"))})),t.proxy(y,"click",(t=>{const{dataset:e}=t.target;e.color&&(D=e.color,f(t.target,"art-current"))})),C(),t.on("resize",(()=>{t.isInput||C()})),t.on("destroy",(()=>{n.mount&&u.parentElement===n.mount&&n.mount.removeChild(u)}))}(),t.controls.add({position:"right",name:"danmuku",click:function(){e.isHide?(e.show(),t.notice.show="弹幕显示",d(k,"display",null),d(y,"display","none")):(e.hide(),t.notice.show="弹幕隐藏",d(k,"display","none"),d(y,"display",null))},mounted(t){l(t,k),l(t,y),p(t,"弹幕开关"),d(y,"display","none")}}),t.setting.add({name:"danmuku",html:"弹幕设置",tooltip:"更多",icon:b,selector:[{width:200,html:"播放速度",icon:"",tooltip:"适中",selector:[{html:"极慢",time:10},{html:"较慢",time:7.5},{default:!0,html:"适中",time:5},{html:"较快",time:2.5},{html:"极快",time:1}],onSelect:function(t){return e.config({speed:t.time}),t.html}},{width:200,html:"字体大小",icon:"",tooltip:"适中",selector:[{html:"极小",fontSize:"4%"},{html:"较小",fontSize:"5%"},{default:!0,html:"适中",fontSize:"6%"},{html:"较大",fontSize:"7%"},{html:"极大",fontSize:"8%"}],onSelect:function(t){return e.config({fontSize:t.fontSize}),t.html}},{width:200,html:"不透明度",icon:"",tooltip:"100%",selector:[{default:!0,opacity:1,html:"100%"},{opacity:.75,html:"75%"},{opacity:.5,html:"50%"},{opacity:.25,html:"25%"},{opacity:0,html:"0%"}],onSelect:function(t){return e.config({opacity:t.opacity}),t.html}},{width:200,html:"显示范围",icon:"",tooltip:"3/4",selector:[{html:"1/4",margin:[10,"75%"]},{html:"半屏",margin:[10,"50%"]},{default:!0,html:"3/4",margin:[10,"25%"]},{html:"满屏",margin:[10,10]}],onSelect:function(t){return e.config({margin:t.margin}),t.html}},{html:"弹幕防重叠",icon:"",tooltip:n.antiOverlap?"开启":"关闭",switch:n.antiOverlap,onSwitch:t=>(e.config({antiOverlap:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)},{html:"同步视频速度",icon:"",tooltip:n.synchronousPlayback?"开启":"关闭",switch:n.synchronousPlayback,onSwitch:t=>(e.config({synchronousPlayback:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)}]})},"undefined"!=typeof document&&!document.getElementById("artplayer-plugin-danmuku")){const t=document.createElement("style");t.id="artplayer-plugin-danmuku",t.textContent=a.default,document.head.appendChild(t)}},{"bundle-text:./style.less":"hViDo","bundle-text:./img/danmu-on.svg":"4KfW9","bundle-text:./img/danmu-off.svg":"9UR3U","bundle-text:./img/danmu-config.svg":"4MPCW","bundle-text:./img/danmu-style.svg":"7lV5Q","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],hViDo:[function(t,e,n){e.exports='.art-danmuku-emitter{height:32px;width:100%;max-width:100%;color:#fff;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#ffffff4d;border-radius:3px;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:12px;line-height:1;display:flex;position:relative}.art-danmuku-emitter *,.art-danmuku-emitter :before,.art-danmuku-emitter :after{box-sizing:border-box;margin:0;padding:0}.art-danmuku-emitter .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-danmuku-emitter .art-icon svg{fill:#fff}@supports ((-webkit-backdrop-filter:initial)) or (backdrop-filter:initial){.art-danmuku-emitter .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-danmuku-emitter .art-danmuku-left{border-radius:3px 0 0 3px;flex:1;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style{width:32px;justify-content:center;align-items:center;display:flex;position:relative}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{z-index:999;width:200px;padding-bottom:10px;display:none;position:absolute;bottom:30px;left:-85px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner{background-color:#000000e6;border-radius:3px;flex-direction:column;padding:10px 10px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-title{margin-bottom:10px;font-size:13px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes{justify-content:space-between;margin-bottom:15px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode{width:47%;cursor:pointer;color:#fff;border:1px solid #fff;justify-content:center;padding:5px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode.art-current{background-color:#00a1d6;border:1px solid #00a1d6}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors{flex-wrap:wrap;justify-content:space-between;gap:5px;margin-bottom:10px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color{cursor:pointer;width:20px;height:20px;border:1px solid #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current{position:relative;box-shadow:0 0 2px #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current:before{content:"";width:100%;height:100%;border:2px solid #000;position:absolute;inset:0}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style:hover .art-danmuku-style-panel{display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon{opacity:.75;cursor:pointer}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon:hover{opacity:1}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input{width:100%;color:#fff;background-color:#0000;border:none;outline:none;flex:1;padding:0 10px 0 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#ffffff80}.art-danmuku-emitter .art-danmuku-send{width:50px;cursor:pointer;background-color:#00a1d6;border-radius:0 3px 3px 0;justify-content:center;align-items:center;display:flex}.art-danmuku-emitter .art-danmuku-send:hover{background-color:#00b5e5}.art-danmuku-emitter .art-danmuku-send.art-disabled{opacity:.5;pointer-events:none}.art-danmuku-emitter.art-danmuku-mount{height:34px;max-width:100%!important}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{left:0}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-send{width:60px}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left{background:#f4f4f4;border:1px solid #dadada}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-style .art-icon svg{fill:#666}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input{color:#000}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#00000080}.art-layer-danmuku-emitter{z-index:99;width:100%;position:absolute;bottom:-40px;left:0;right:0}'},{}],"4KfW9":[function(t,e,n){e.exports=''},{}],"9UR3U":[function(t,e,n){e.exports=''},{}],"4MPCW":[function(t,e,n){e.exports=''},{}],"7lV5Q":[function(t,e,n){e.exports=''},{}]},["bgm6t"],"bgm6t","parcelRequire4dc0"); \ No newline at end of file +!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[i]&&a[i],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 r="function"==typeof a[i]&&a[i];if(!n&&r)return r(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var d=new Error("Cannot find module '"+e+"'");throw d.code="MODULE_NOT_FOUND",d}p.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},p.cache={};var m=s[e]=new u.Module(e);t[e][0].call(m.exports,p,m,m.exports,this)}return s[e].exports;function p(t){var e=p.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[i]}}),a[i]=u;for(var d=0;d{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=5,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 5 版本以上`)}(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="5.0.0",l.build="2023-04-23 13:41:51","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"4ns48","./setting":"lO8OT","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4ns48":[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("85d40535eae5f839"))}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("resize",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 JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.1>=e.time&&e.time>=t-.1))}getEmits(){const t=[],{clientWidth:e}=this.$player,n=this.getLeft(this.$player);return this.filter("emit",(i=>{const r=i.$ref.offsetTop,a=this.getLeft(i.$ref)-n,o=i.$ref.clientHeight,s=i.$ref.clientWidth,l=a+s,u=e-l,d=l/i.$restTime,m={};m.top=r,m.left=a,m.height=o,m.width=s,m.right=u,m.speed=d,m.distance=l,m.time=i.$restTime,m.mode=i.mode,t.push(m)})),t}getFontSize(t){const{clamp:e}=this.utils,{clientHeight:n}=this.$player;if("number"==typeof t)return e(t,12,n);if("string"==typeof t&&t.endsWith("%")){return e(n*(parseFloat(t)/100),12,n)}return s.option.fontSize}postMessage(t={}){return new Promise((e=>{if(this.option.useWorker&&this.worker&&this.worker.postMessage)t.id=Date.now(),this.worker.postMessage(t),this.worker.onmessage=n=>{const{data:i}=n;i.id===t.id&&e(i)};else{const n=(0,o.default)(t);e({top:n})}}))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await(0,r.bilibiliDanmuParseFromUrl)(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},s.option,this.option,t),this.validator(this.option,s.scheme),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.lockTime=e(Math.floor(this.option.lockTime),0,60),this.option.maxLength=e(this.option.maxLength,0,500),this.option.minWidth=e(this.option.minWidth,0,500),this.option.maxWidth=e(this.option.maxWidth,0,1/0),t.fontSize&&(this.option.fontSize=this.getFontSize(this.option.fontSize),this.reset()),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const n=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const n=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}reset(){return this.queue.forEach((t=>this.makeWait(t))),this}update(){return this.timer=window.requestAnimationFrame((async()=>{if(this.art.playing&&!this.isHide){this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)}));const t=this.getReady(),{clientWidth:e,clientHeight:n}=this.$player;for(let i=0;ithis.makeWait(t))),this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}emit(t){return this.validator(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()&&this.option.filter(t)?(t.time?t.time=this.utils.clamp(t.time,0,1/0):t.time=this.art.currentTime+.5,void 0===t.mode&&(t.mode=this.option.mode),void 0===t.color&&(t.color=this.option.color),this.queue.push({...t,$state:"wait",$ref:null,$restTime:0,$lastStartTime:0}),this):this}destroy(){this.stop(),this.worker&&this.worker.terminate&&this.worker.terminate(),this.art.off("video:play",this.start),this.art.off("video:playing",this.start),this.art.off("video:pause",this.stop),this.art.off("video:waiting",this.stop),this.art.off("fullscreen",this.reset),this.art.off("fullscreenWeb",this.reset),this.art.off("destroy",this.destroy),this.art.emit("artplayerPluginDanmuku:destroy")}}n.default=s},{"./bilibili":"f83sx","./getDanmuTop":"jPSuD","85d40535eae5f839":"fXq73","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],f83sx:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");function r(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function a(t){if("string"!=typeof t)return[];const e=t.matchAll(/(?.+?)<\/d>/gs);return Array.from(e).map((t=>{const e=t.groups.p.split(",");if(e.length>=8){return{text:t.groups.text.trim().replaceAll(""",'"').replaceAll("'","'").replaceAll("<","<").replaceAll(">",">").replaceAll("&","&"),time:Number(e[0]),mode:r(Number(e[1])),fontSize:Number(e[2]),color:`#${Number(e[3]).toString(16)}`,timestamp:Number(e[4]),pool:Number(e[5]),userID:e[6],rowID:Number(e[7])}}return null})).filter(Boolean)}function o(t){return fetch(t).then((t=>t.text())).then((t=>a(t)))}i.defineInteropFlag(n),i.export(n,"getMode",(()=>r)),i.export(n,"bilibiliDanmuParseFromXml",(()=>a)),i.export(n,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(t,e,n){n.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},n.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.exportAll=function(t,e){return Object.keys(t).forEach((function(n){"default"===n||"__esModule"===n||e.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})),e},n.export=function(t,e,n){Object.defineProperty(t,e,{enumerable:!0,get:n})}},{}],jPSuD:[function(t,e,n){t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=function({target:t,emits:e,clientWidth:n,clientHeight:i,marginBottom:r,marginTop:a,antiOverlap:o}){const s=e.filter((e=>e.mode===t.mode&&e.top<=i-r)).sort(((t,e)=>t.top-e.top));if(0===s.length)return a;s.unshift({top:0,left:0,right:0,height:a,width:n,speed:0,distance:n}),s.push({top:i-r,left:0,right:0,height:r,width:n,speed:0,distance:n});for(let e=1;e=t.height)return r}const l=[];for(let t=1;t{const n=Math.min(...e.map((t=>t.right))),i=Math.min(...t.map((t=>t.right)));return n*e.length-i*t.length}));break;case 1:l.sort(((t,e)=>{const n=Math.max(...e.map((t=>t.width)));return Math.max(...t.map((t=>t.width)))*t.length-n*e.length}))}return l[0][0].top}switch(t.mode){case 0:{const e=l.find((e=>e.every((e=>{if(ne.time}))));return e&&e[0]?e[0].top:void 0}case 1:return}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],fXq73:[function(t,e,n){e.exports="data:application/javascript,function%20getDanmuTop%28%7Btarget%3At%2Cemits%3Ae%2CclientWidth%3An%2CclientHeight%3Ai%2CmarginBottom%3As%2CmarginTop%3Ah%2CantiOverlap%3Ao%7D%29%7Bconst%20r%3De.filter%28%28e%3D%3Ee.mode%3D%3D%3Dt.mode%26%26e.top%3C%3Di-s%29%29.sort%28%28%28t%2Ce%29%3D%3Et.top-e.top%29%29%3Bif%280%3D%3D%3Dr.length%29return%20h%3Br.unshift%28%7Btop%3A0%2Cleft%3A0%2Cright%3A0%2Cheight%3Ah%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%2Cr.push%28%7Btop%3Ai-s%2Cleft%3A0%2Cright%3A0%2Cheight%3As%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%3Bfor%28let%20e%3D1%3Be%3Cr.length%3Be%2B%3D1%29%7Bconst%20n%3Dr%5Be%5D%2Ci%3Dr%5Be-1%5D%2Cs%3Di.top%2Bi.height%3Bif%28n.top-s%3E%3Dt.height%29return%20s%7Dconst%20p%3D%5B%5D%3Bfor%28let%20t%3D1%3Bt%3Cr.length-1%3Bt%2B%3D1%29%7Bconst%20e%3Dr%5Bt%5D%3Bif%28p.length%29%7Bconst%20t%3Dp%5Bp.length-1%5D%3Bt%5B0%5D.top%3D%3D%3De.top%3Ft.push%28e%29%3Ap.push%28%5Be%5D%29%7Delse%20p.push%28%5Be%5D%29%7Dif%28%21o%29%7Bswitch%28t.mode%29%7Bcase%200%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.min%28...e.map%28%28t%3D%3Et.right%29%29%29%2Ci%3DMath.min%28...t.map%28%28t%3D%3Et.right%29%29%29%3Breturn%20n%2ae.length-i%2at.length%7D%29%29%3Bbreak%3Bcase%201%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.max%28...e.map%28%28t%3D%3Et.width%29%29%29%3Breturn%20Math.max%28...t.map%28%28t%3D%3Et.width%29%29%29%2at.length-n%2ae.length%7D%29%29%7Dreturn%20p%5B0%5D%5B0%5D.top%7Dswitch%28t.mode%29%7Bcase%200%3A%7Bconst%20e%3Dp.find%28%28e%3D%3Ee.every%28%28e%3D%3E%7Bif%28n%3Ce.distance%29return%211%3Bif%28t.speed%3Ce.speed%29return%210%3Breturn%20e.right%2F%28t.speed-e.speed%29%3Ee.time%7D%29%29%29%29%3Breturn%20e%26%26e%5B0%5D%3Fe%5B0%5D.top%3Avoid%200%7Dcase%201%3Areturn%7D%7Donmessage%3Dt%3D%3E%7Bconst%7Bdata%3Ae%7D%3Dt%2Cn%3DgetDanmuTop%28e%29%3Bself.postMessage%28%7Btop%3An%2Cid%3Ae.id%7D%29%7D%3B"},{}],lO8OT:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("bundle-text:./style.less"),a=i.interopDefault(r),o=t("bundle-text:./img/danmu-on.svg"),s=i.interopDefault(o),l=t("bundle-text:./img/danmu-off.svg"),u=i.interopDefault(l),d=t("bundle-text:./img/danmu-config.svg"),m=i.interopDefault(d),p=t("bundle-text:./img/danmu-style.svg"),c=i.interopDefault(p);if(n.default=function(t,e){const{option:n}=e,{template:{$controlsCenter:i,$player:r},constructor:{utils:{removeClass:a,addClass:o,append:l,setStyle:d,tooltip:p,query:h,inverseClass:f}}}=t;function g(t,e){const n=document.createElement("i");return l(n,t),o(n,"art-icon"),o(n,`art-icon-${e}`),n}d(i,"display","flex");const k=g(s.default,"danmu-on"),y=g(u.default,"danmu-off"),b=g(m.default,"danmu-config"),x=g(c.default,"danmu-style");!function(){const s=["#FE0302","#FF7204","#FFAA02","#FFD302","#FFFF00","#A0EE00","#00CD00","#019899","#4266BE","#89D5FF","#CC0273","#222222","#9B9B9B","#FFFFFF"].map((t=>`
`)),u=l(i,`
模式
滚动
静止
颜色
${s.join("")}
发送
`),m=h(".art-danmuku-style",u),p=h(".art-danmuku-input",u),c=h(".art-danmuku-send",u),g=h(".art-danmuku-style-panel-inner",u),k=h(".art-danmuku-style-panel-modes",u),y=h(".art-danmuku-style-panel-colors",u),b=n.mount||l(r,'
');t.option.backdrop&&o(g,"art-backdrop-filter"),n.theme&&o(u,`art-danmuku-theme-${n.theme}`);let v=null,w=n.mode,D=n.color;function $(t){t<=0?(v=null,c.innerText="发送",a(c,"art-disabled")):(c.innerText=t,v=setTimeout((()=>$(t-1)),1e3))}function B(){const i={mode:w,color:D,border:!0,text:p.value.trim()};null===v&&n.beforeEmit(i)&&(p.value="",e.emit(i),o(c,"art-disabled"),$(n.lockTime),t.emit("artplayerPluginDanmuku:emit",i))}function C(){i.clientWidth{"Enter"===t.key&&(t.preventDefault(),B())})),t.proxy(k,"click",(t=>{const{dataset:e}=t.target;e.mode&&(w=Number(e.mode),f(t.target,"art-current"))})),t.proxy(y,"click",(t=>{const{dataset:e}=t.target;e.color&&(D=e.color,f(t.target,"art-current"))})),C(),t.on("resize",(()=>{t.isInput||C()})),t.on("destroy",(()=>{n.mount&&u.parentElement===n.mount&&n.mount.removeChild(u)}))}(),t.controls.add({position:"right",name:"danmuku",click:function(){e.isHide?(e.show(),t.notice.show="弹幕显示",d(k,"display",null),d(y,"display","none")):(e.hide(),t.notice.show="弹幕隐藏",d(k,"display","none"),d(y,"display",null))},mounted(t){l(t,k),l(t,y),p(t,"弹幕开关"),d(y,"display","none")}}),t.setting.add({name:"danmuku",html:"弹幕设置",tooltip:"更多",icon:b,selector:[{width:200,html:"播放速度",icon:"",tooltip:"适中",selector:[{html:"极慢",time:10},{html:"较慢",time:7.5},{default:!0,html:"适中",time:5},{html:"较快",time:2.5},{html:"极快",time:1}],onSelect:function(t){return e.config({speed:t.time}),t.html}},{width:200,html:"字体大小",icon:"",tooltip:"适中",selector:[{html:"极小",fontSize:"4%"},{html:"较小",fontSize:"5%"},{default:!0,html:"适中",fontSize:"6%"},{html:"较大",fontSize:"7%"},{html:"极大",fontSize:"8%"}],onSelect:function(t){return e.config({fontSize:t.fontSize}),t.html}},{width:200,html:"不透明度",icon:"",tooltip:"100%",selector:[{default:!0,opacity:1,html:"100%"},{opacity:.75,html:"75%"},{opacity:.5,html:"50%"},{opacity:.25,html:"25%"},{opacity:0,html:"0%"}],onSelect:function(t){return e.config({opacity:t.opacity}),t.html}},{width:200,html:"显示范围",icon:"",tooltip:"3/4",selector:[{html:"1/4",margin:[10,"75%"]},{html:"半屏",margin:[10,"50%"]},{default:!0,html:"3/4",margin:[10,"25%"]},{html:"满屏",margin:[10,10]}],onSelect:function(t){return e.config({margin:t.margin}),t.html}},{html:"弹幕防重叠",icon:"",tooltip:n.antiOverlap?"开启":"关闭",switch:n.antiOverlap,onSwitch:t=>(e.config({antiOverlap:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)},{html:"同步视频速度",icon:"",tooltip:n.synchronousPlayback?"开启":"关闭",switch:n.synchronousPlayback,onSwitch:t=>(e.config({synchronousPlayback:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)}]})},"undefined"!=typeof document&&!document.getElementById("artplayer-plugin-danmuku")){const t=document.createElement("style");t.id="artplayer-plugin-danmuku",t.textContent=a.default,document.head.appendChild(t)}},{"bundle-text:./style.less":"hViDo","bundle-text:./img/danmu-on.svg":"4KfW9","bundle-text:./img/danmu-off.svg":"9UR3U","bundle-text:./img/danmu-config.svg":"4MPCW","bundle-text:./img/danmu-style.svg":"7lV5Q","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],hViDo:[function(t,e,n){e.exports='.art-danmuku-emitter{height:32px;width:100%;max-width:100%;color:#fff;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#ffffff4d;border-radius:3px;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:12px;line-height:1;display:flex;position:relative}.art-danmuku-emitter *,.art-danmuku-emitter :before,.art-danmuku-emitter :after{box-sizing:border-box;margin:0;padding:0}.art-danmuku-emitter .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-danmuku-emitter .art-icon svg{fill:#fff}@supports ((-webkit-backdrop-filter:initial)) or (backdrop-filter:initial){.art-danmuku-emitter .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-danmuku-emitter .art-danmuku-left{border-radius:3px 0 0 3px;flex:1;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style{width:32px;justify-content:center;align-items:center;display:flex;position:relative}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{z-index:999;width:200px;padding-bottom:10px;display:none;position:absolute;bottom:30px;left:-85px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner{background-color:#000000e6;border-radius:3px;flex-direction:column;padding:10px 10px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-title{margin-bottom:10px;font-size:13px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes{justify-content:space-between;margin-bottom:15px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode{width:47%;cursor:pointer;color:#fff;border:1px solid #fff;justify-content:center;padding:5px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode.art-current{background-color:#00a1d6;border:1px solid #00a1d6}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors{flex-wrap:wrap;justify-content:space-between;gap:5px;margin-bottom:10px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color{cursor:pointer;width:20px;height:20px;border:1px solid #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current{position:relative;box-shadow:0 0 2px #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current:before{content:"";width:100%;height:100%;border:2px solid #000;position:absolute;inset:0}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style:hover .art-danmuku-style-panel{display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon{opacity:.75;cursor:pointer}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon:hover{opacity:1}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input{width:100%;color:#fff;background-color:#0000;border:none;outline:none;flex:1;padding:0 10px 0 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#ffffff80}.art-danmuku-emitter .art-danmuku-send{width:50px;cursor:pointer;background-color:#00a1d6;border-radius:0 3px 3px 0;justify-content:center;align-items:center;display:flex}.art-danmuku-emitter .art-danmuku-send:hover{background-color:#00b5e5}.art-danmuku-emitter .art-danmuku-send.art-disabled{opacity:.5;pointer-events:none}.art-danmuku-emitter.art-danmuku-mount{height:34px;max-width:100%!important}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{left:0}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-send{width:60px}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left{background:#f4f4f4;border:1px solid #dadada}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-style .art-icon svg{fill:#666}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input{color:#000}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#00000080}.art-layer-danmuku-emitter{z-index:99;width:100%;position:absolute;bottom:-40px;left:0;right:0}'},{}],"4KfW9":[function(t,e,n){e.exports=''},{}],"9UR3U":[function(t,e,n){e.exports=''},{}],"4MPCW":[function(t,e,n){e.exports=''},{}],"7lV5Q":[function(t,e,n){e.exports=''},{}]},["bgm6t"],"bgm6t","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-danmuku.legacy.js b/docs/compiled/artplayer-plugin-danmuku.legacy.js index 1db0e4cf8..cd2905ace 100644 --- a/docs/compiled/artplayer-plugin-danmuku.legacy.js +++ b/docs/compiled/artplayer-plugin-danmuku.legacy.js @@ -4,4 +4,4 @@ * (c) 2017-2023 Harvey Zack * 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[i]&&a[i],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 r="function"==typeof a[i]&&a[i];if(!n&&r)return r(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var d=new Error("Cannot find module '"+e+"'");throw d.code="MODULE_NOT_FOUND",d}p.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},p.cache={};var m=s[e]=new u.Module(e);t[e][0].call(m.exports,p,m,m.exports,this)}return s[e].exports;function p(t){var e=p.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[i]}}),a[i]=u;for(var d=0;d{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=5,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 5 版本以上`)}(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="5.0.0",l.build="2023-04-17 23:16:15","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"cEnKl","./setting":"hrSF1","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],cEnKl:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n),i.export(n,"default",(()=>s));var r=t("./bilibili"),a=t("./getDanmuTop"),o=i.interopDefault(a);class s{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 JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.1>=e.time&&e.time>=t-.1))}getEmits(){const t=[],{clientWidth:e}=this.$player,n=this.getLeft(this.$player);return this.filter("emit",(i=>{const r=i.$ref.offsetTop,a=this.getLeft(i.$ref)-n,o=i.$ref.clientHeight,s=i.$ref.clientWidth,l=a+s,u=e-l,d=l/i.$restTime,m={};m.top=r,m.left=a,m.height=o,m.width=s,m.right=u,m.speed=d,m.distance=l,m.time=i.$restTime,m.mode=i.mode,t.push(m)})),t}getFontSize(t){const{clamp:e}=this.utils,{clientHeight:n}=this.$player;if("number"==typeof t)return e(t,12,n);if("string"==typeof t&&t.endsWith("%")){return e(n*(parseFloat(t)/100),12,n)}return s.option.fontSize}postMessage(t={}){return new Promise((e=>{if(this.option.useWorker&&this.worker&&this.worker.postMessage)t.id=Date.now(),this.worker.postMessage(t),this.worker.onmessage=n=>{const{data:i}=n;i.id===t.id&&e(i)};else{const n=(0,o.default)(t);e({top:n})}}))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await(0,r.bilibiliDanmuParseFromUrl)(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},s.option,this.option,t),this.validator(this.option,s.scheme),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.lockTime=e(Math.floor(this.option.lockTime),0,60),this.option.maxLength=e(this.option.maxLength,0,500),this.option.minWidth=e(this.option.minWidth,0,500),this.option.maxWidth=e(this.option.maxWidth,0,1/0),t.fontSize&&(this.option.fontSize=this.getFontSize(this.option.fontSize),this.reset()),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const n=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const n=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}reset(){return this.queue.forEach((t=>this.makeWait(t))),this}update(){return this.timer=window.requestAnimationFrame((async()=>{if(this.art.playing&&!this.isHide){this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)}));const t=this.getReady(),{clientWidth:e,clientHeight:n}=this.$player;for(let i=0;ithis.makeWait(t))),this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}emit(t){return this.validator(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()&&this.option.filter(t)?(t.time?t.time=this.utils.clamp(t.time,0,1/0):t.time=this.art.currentTime+.5,void 0===t.mode&&(t.mode=this.option.mode),void 0===t.color&&(t.color=this.option.color),this.queue.push({...t,$state:"wait",$ref:null,$restTime:0,$lastStartTime:0}),this):this}destroy(){this.stop(),this.worker&&this.worker.terminate&&this.worker.terminate(),this.art.off("video:play",this.start),this.art.off("video:playing",this.start),this.art.off("video:pause",this.stop),this.art.off("video:waiting",this.stop),this.art.off("fullscreen",this.reset),this.art.off("fullscreenWeb",this.reset),this.art.off("destroy",this.destroy),this.art.emit("artplayerPluginDanmuku:destroy")}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("85d40535eae5f839"))}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()}}},{"./bilibili":"5PTUQ","./getDanmuTop":"5SGJk","85d40535eae5f839":"khCQp","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5PTUQ":[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");function r(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function a(t){if("string"!=typeof t)return[];const e=t.matchAll(/(?.+?)<\/d>/gs);return Array.from(e).map((t=>{const e=t.groups.p.split(",");if(e.length>=8){return{text:t.groups.text.trim().replaceAll(""",'"').replaceAll("'","'").replaceAll("<","<").replaceAll(">",">").replaceAll("&","&"),time:Number(e[0]),mode:r(Number(e[1])),fontSize:Number(e[2]),color:`#${Number(e[3]).toString(16)}`,timestamp:Number(e[4]),pool:Number(e[5]),userID:e[6],rowID:Number(e[7])}}return null})).filter(Boolean)}function o(t){return fetch(t).then((t=>t.text())).then((t=>a(t)))}i.defineInteropFlag(n),i.export(n,"getMode",(()=>r)),i.export(n,"bilibiliDanmuParseFromXml",(()=>a)),i.export(n,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"47PTV":[function(t,e,n){n.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},n.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.exportAll=function(t,e){return Object.keys(t).forEach((function(n){"default"===n||"__esModule"===n||e.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})),e},n.export=function(t,e,n){Object.defineProperty(t,e,{enumerable:!0,get:n})}},{}],"5SGJk":[function(t,e,n){t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=function({target:t,emits:e,clientWidth:n,clientHeight:i,marginBottom:r,marginTop:a,antiOverlap:o}){const s=e.filter((e=>e.mode===t.mode&&e.top<=i-r)).sort(((t,e)=>t.top-e.top));if(0===s.length)return a;s.unshift({top:0,left:0,right:0,height:a,width:n,speed:0,distance:n}),s.push({top:i-r,left:0,right:0,height:r,width:n,speed:0,distance:n});for(let e=1;e=t.height)return r}const l=[];for(let t=1;t{const n=Math.min(...e.map((t=>t.right))),i=Math.min(...t.map((t=>t.right)));return n*e.length-i*t.length}));break;case 1:l.sort(((t,e)=>{const n=Math.max(...e.map((t=>t.width)));return Math.max(...t.map((t=>t.width)))*t.length-n*e.length}))}return l[0][0].top}switch(t.mode){case 0:{const e=l.find((e=>e.every((e=>{if(ne.time}))));return e&&e[0]?e[0].top:void 0}case 1:return}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],khCQp:[function(t,e,n){e.exports="data:application/javascript,function%20getDanmuTop%28%7Btarget%3At%2Cemits%3Ae%2CclientWidth%3An%2CclientHeight%3Ai%2CmarginBottom%3As%2CmarginTop%3Ah%2CantiOverlap%3Ao%7D%29%7Bconst%20r%3De.filter%28%28e%3D%3Ee.mode%3D%3D%3Dt.mode%26%26e.top%3C%3Di-s%29%29.sort%28%28%28t%2Ce%29%3D%3Et.top-e.top%29%29%3Bif%280%3D%3D%3Dr.length%29return%20h%3Br.unshift%28%7Btop%3A0%2Cleft%3A0%2Cright%3A0%2Cheight%3Ah%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%2Cr.push%28%7Btop%3Ai-s%2Cleft%3A0%2Cright%3A0%2Cheight%3As%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%3Bfor%28let%20e%3D1%3Be%3Cr.length%3Be%2B%3D1%29%7Bconst%20n%3Dr%5Be%5D%2Ci%3Dr%5Be-1%5D%2Cs%3Di.top%2Bi.height%3Bif%28n.top-s%3E%3Dt.height%29return%20s%7Dconst%20p%3D%5B%5D%3Bfor%28let%20t%3D1%3Bt%3Cr.length-1%3Bt%2B%3D1%29%7Bconst%20e%3Dr%5Bt%5D%3Bif%28p.length%29%7Bconst%20t%3Dp%5Bp.length-1%5D%3Bt%5B0%5D.top%3D%3D%3De.top%3Ft.push%28e%29%3Ap.push%28%5Be%5D%29%7Delse%20p.push%28%5Be%5D%29%7Dif%28%21o%29%7Bswitch%28t.mode%29%7Bcase%200%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.min%28...e.map%28%28t%3D%3Et.right%29%29%29%2Ci%3DMath.min%28...t.map%28%28t%3D%3Et.right%29%29%29%3Breturn%20n%2ae.length-i%2at.length%7D%29%29%3Bbreak%3Bcase%201%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.max%28...e.map%28%28t%3D%3Et.width%29%29%29%3Breturn%20Math.max%28...t.map%28%28t%3D%3Et.width%29%29%29%2at.length-n%2ae.length%7D%29%29%7Dreturn%20p%5B0%5D%5B0%5D.top%7Dswitch%28t.mode%29%7Bcase%200%3A%7Bconst%20e%3Dp.find%28%28e%3D%3Ee.every%28%28e%3D%3E%7Bif%28n%3Ce.distance%29return%211%3Bif%28t.speed%3Ce.speed%29return%210%3Breturn%20e.right%2F%28t.speed-e.speed%29%3Ee.time%7D%29%29%29%29%3Breturn%20e%26%26e%5B0%5D%3Fe%5B0%5D.top%3Avoid%200%7Dcase%201%3Areturn%7D%7Donmessage%3Dt%3D%3E%7Bconst%7Bdata%3Ae%7D%3Dt%2Cn%3DgetDanmuTop%28e%29%3Bself.postMessage%28%7Btop%3An%2Cid%3Ae.id%7D%29%7D%3B"},{}],hrSF1:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("bundle-text:./style.less"),a=i.interopDefault(r),o=t("bundle-text:./img/danmu-on.svg"),s=i.interopDefault(o),l=t("bundle-text:./img/danmu-off.svg"),u=i.interopDefault(l),d=t("bundle-text:./img/danmu-config.svg"),m=i.interopDefault(d),p=t("bundle-text:./img/danmu-style.svg"),c=i.interopDefault(p);if(n.default=function(t,e){const{option:n}=e,{template:{$controlsCenter:i,$player:r},constructor:{utils:{removeClass:a,addClass:o,append:l,setStyle:d,tooltip:p,query:h,inverseClass:f}}}=t;function g(t,e){const n=document.createElement("i");return l(n,t),o(n,"art-icon"),o(n,`art-icon-${e}`),n}d(i,"display","flex");const k=g(s.default,"danmu-on"),y=g(u.default,"danmu-off"),b=g(m.default,"danmu-config"),x=g(c.default,"danmu-style");!function(){const s=["#FE0302","#FF7204","#FFAA02","#FFD302","#FFFF00","#A0EE00","#00CD00","#019899","#4266BE","#89D5FF","#CC0273","#222222","#9B9B9B","#FFFFFF"].map((t=>`
`)),u=l(i,`
模式
滚动
静止
颜色
${s.join("")}
发送
`),m=h(".art-danmuku-style",u),p=h(".art-danmuku-input",u),c=h(".art-danmuku-send",u),g=h(".art-danmuku-style-panel-inner",u),k=h(".art-danmuku-style-panel-modes",u),y=h(".art-danmuku-style-panel-colors",u),b=n.mount||l(r,'
');t.option.backdrop&&o(g,"art-backdrop-filter"),n.theme&&o(u,`art-danmuku-theme-${n.theme}`);let v=null,w=n.mode,D=n.color;function $(t){t<=0?(v=null,c.innerText="发送",a(c,"art-disabled")):(c.innerText=t,v=setTimeout((()=>$(t-1)),1e3))}function B(){const i={mode:w,color:D,border:!0,text:p.value.trim()};null===v&&n.beforeEmit(i)&&(p.value="",e.emit(i),o(c,"art-disabled"),$(n.lockTime),t.emit("artplayerPluginDanmuku:emit",i))}function z(){i.clientWidth{"Enter"===t.key&&(t.preventDefault(),B())})),t.proxy(k,"click",(t=>{const{dataset:e}=t.target;e.mode&&(w=Number(e.mode),f(t.target,"art-current"))})),t.proxy(y,"click",(t=>{const{dataset:e}=t.target;e.color&&(D=e.color,f(t.target,"art-current"))})),z(),t.on("resize",(()=>{t.isInput||z()})),t.on("destroy",(()=>{n.mount&&u.parentElement===n.mount&&n.mount.removeChild(u)}))}(),t.controls.add({position:"right",name:"danmuku",click:function(){e.isHide?(e.show(),t.notice.show="弹幕显示",d(k,"display",null),d(y,"display","none")):(e.hide(),t.notice.show="弹幕隐藏",d(k,"display","none"),d(y,"display",null))},mounted(t){l(t,k),l(t,y),p(t,"弹幕开关"),d(y,"display","none")}}),t.setting.add({name:"danmuku",html:"弹幕设置",tooltip:"更多",icon:b,selector:[{width:200,html:"播放速度",icon:"",tooltip:"适中",selector:[{html:"极慢",time:10},{html:"较慢",time:7.5},{default:!0,html:"适中",time:5},{html:"较快",time:2.5},{html:"极快",time:1}],onSelect:function(t){return e.config({speed:t.time}),t.html}},{width:200,html:"字体大小",icon:"",tooltip:"适中",selector:[{html:"极小",fontSize:"4%"},{html:"较小",fontSize:"5%"},{default:!0,html:"适中",fontSize:"6%"},{html:"较大",fontSize:"7%"},{html:"极大",fontSize:"8%"}],onSelect:function(t){return e.config({fontSize:t.fontSize}),t.html}},{width:200,html:"不透明度",icon:"",tooltip:"100%",selector:[{default:!0,opacity:1,html:"100%"},{opacity:.75,html:"75%"},{opacity:.5,html:"50%"},{opacity:.25,html:"25%"},{opacity:0,html:"0%"}],onSelect:function(t){return e.config({opacity:t.opacity}),t.html}},{width:200,html:"显示范围",icon:"",tooltip:"3/4",selector:[{html:"1/4",margin:[10,"75%"]},{html:"半屏",margin:[10,"50%"]},{default:!0,html:"3/4",margin:[10,"25%"]},{html:"满屏",margin:[10,10]}],onSelect:function(t){return e.config({margin:t.margin}),t.html}},{html:"弹幕防重叠",icon:"",tooltip:n.antiOverlap?"开启":"关闭",switch:n.antiOverlap,onSwitch:t=>(e.config({antiOverlap:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)},{html:"同步视频速度",icon:"",tooltip:n.synchronousPlayback?"开启":"关闭",switch:n.synchronousPlayback,onSwitch:t=>(e.config({synchronousPlayback:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)}]})},"undefined"!=typeof document&&!document.getElementById("artplayer-plugin-danmuku")){const t=document.createElement("style");t.id="artplayer-plugin-danmuku",t.textContent=a.default,document.head.appendChild(t)}},{"bundle-text:./style.less":"fZsza","bundle-text:./img/danmu-on.svg":"3I7GB","bundle-text:./img/danmu-off.svg":"2WOAp","bundle-text:./img/danmu-config.svg":"d0jTU","bundle-text:./img/danmu-style.svg":"jW6Os","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fZsza:[function(t,e,n){e.exports='.art-danmuku-emitter{height:32px;width:100%;max-width:100%;color:#fff;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#ffffff4d;border-radius:3px;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:12px;line-height:1;display:flex;position:relative}.art-danmuku-emitter *,.art-danmuku-emitter :before,.art-danmuku-emitter :after{box-sizing:border-box;margin:0;padding:0}.art-danmuku-emitter .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-danmuku-emitter .art-icon svg{fill:#fff}@supports ((-webkit-backdrop-filter:initial)) or ((-webkit-backdrop-filter:initial)) or ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.art-danmuku-emitter .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-danmuku-emitter .art-danmuku-left{border-radius:3px 0 0 3px;flex:1;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style{width:32px;justify-content:center;align-items:center;display:flex;position:relative}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{z-index:999;width:200px;padding-bottom:10px;display:none;position:absolute;bottom:30px;left:-85px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner{background-color:#000000e6;border-radius:3px;flex-direction:column;padding:10px 10px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-title{margin-bottom:10px;font-size:13px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes{justify-content:space-between;margin-bottom:15px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode{width:47%;cursor:pointer;color:#fff;border:1px solid #fff;justify-content:center;padding:5px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode.art-current{background-color:#00a1d6;border:1px solid #00a1d6}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors{flex-wrap:wrap;justify-content:space-between;gap:5px;margin-bottom:10px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color{cursor:pointer;width:20px;height:20px;border:1px solid #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current{position:relative;box-shadow:0 0 2px #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current:before{content:"";width:100%;height:100%;border:2px solid #000;position:absolute;inset:0}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style:hover .art-danmuku-style-panel{display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon{opacity:.75;cursor:pointer}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon:hover{opacity:1}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input{width:100%;color:#fff;background-color:#0000;border:none;outline:none;flex:1;padding:0 10px 0 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#ffffff80}.art-danmuku-emitter .art-danmuku-send{width:50px;cursor:pointer;background-color:#00a1d6;border-radius:0 3px 3px 0;justify-content:center;align-items:center;display:flex}.art-danmuku-emitter .art-danmuku-send:hover{background-color:#00b5e5}.art-danmuku-emitter .art-danmuku-send.art-disabled{opacity:.5;pointer-events:none}.art-danmuku-emitter.art-danmuku-mount{height:34px;max-width:100%!important}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{left:0}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-send{width:60px}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left{background:#f4f4f4;border:1px solid #dadada}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-style .art-icon svg{fill:#666}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input{color:#000}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#00000080}.art-layer-danmuku-emitter{z-index:99;width:100%;position:absolute;bottom:-40px;left:0;right:0}'},{}],"3I7GB":[function(t,e,n){e.exports=''},{}],"2WOAp":[function(t,e,n){e.exports=''},{}],d0jTU:[function(t,e,n){e.exports=''},{}],jW6Os:[function(t,e,n){e.exports=''},{}]},["dmoJk"],"dmoJk","parcelRequire4dc0"); \ No newline at end of file +!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[i]&&a[i],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 r="function"==typeof a[i]&&a[i];if(!n&&r)return r(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var d=new Error("Cannot find module '"+e+"'");throw d.code="MODULE_NOT_FOUND",d}p.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},p.cache={};var m=s[e]=new u.Module(e);t[e][0].call(m.exports,p,m,m.exports,this)}return s[e].exports;function p(t){var e=p.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[i]}}),a[i]=u;for(var d=0;d{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=5,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 5 版本以上`)}(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="5.0.0",l.build="2023-04-23 13:41:51","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"cEnKl","./setting":"hrSF1","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],cEnKl:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n),i.export(n,"default",(()=>s));var r=t("./bilibili"),a=t("./getDanmuTop"),o=i.interopDefault(a);class s{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 JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.1>=e.time&&e.time>=t-.1))}getEmits(){const t=[],{clientWidth:e}=this.$player,n=this.getLeft(this.$player);return this.filter("emit",(i=>{const r=i.$ref.offsetTop,a=this.getLeft(i.$ref)-n,o=i.$ref.clientHeight,s=i.$ref.clientWidth,l=a+s,u=e-l,d=l/i.$restTime,m={};m.top=r,m.left=a,m.height=o,m.width=s,m.right=u,m.speed=d,m.distance=l,m.time=i.$restTime,m.mode=i.mode,t.push(m)})),t}getFontSize(t){const{clamp:e}=this.utils,{clientHeight:n}=this.$player;if("number"==typeof t)return e(t,12,n);if("string"==typeof t&&t.endsWith("%")){return e(n*(parseFloat(t)/100),12,n)}return s.option.fontSize}postMessage(t={}){return new Promise((e=>{if(this.option.useWorker&&this.worker&&this.worker.postMessage)t.id=Date.now(),this.worker.postMessage(t),this.worker.onmessage=n=>{const{data:i}=n;i.id===t.id&&e(i)};else{const n=(0,o.default)(t);e({top:n})}}))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await(0,r.bilibiliDanmuParseFromUrl)(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},s.option,this.option,t),this.validator(this.option,s.scheme),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.lockTime=e(Math.floor(this.option.lockTime),0,60),this.option.maxLength=e(this.option.maxLength,0,500),this.option.minWidth=e(this.option.minWidth,0,500),this.option.maxWidth=e(this.option.maxWidth,0,1/0),t.fontSize&&(this.option.fontSize=this.getFontSize(this.option.fontSize),this.reset()),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const n=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const n=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}reset(){return this.queue.forEach((t=>this.makeWait(t))),this}update(){return this.timer=window.requestAnimationFrame((async()=>{if(this.art.playing&&!this.isHide){this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)}));const t=this.getReady(),{clientWidth:e,clientHeight:n}=this.$player;for(let i=0;ithis.makeWait(t))),this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}emit(t){return this.validator(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()&&this.option.filter(t)?(t.time?t.time=this.utils.clamp(t.time,0,1/0):t.time=this.art.currentTime+.5,void 0===t.mode&&(t.mode=this.option.mode),void 0===t.color&&(t.color=this.option.color),this.queue.push({...t,$state:"wait",$ref:null,$restTime:0,$lastStartTime:0}),this):this}destroy(){this.stop(),this.worker&&this.worker.terminate&&this.worker.terminate(),this.art.off("video:play",this.start),this.art.off("video:playing",this.start),this.art.off("video:pause",this.stop),this.art.off("video:waiting",this.stop),this.art.off("fullscreen",this.reset),this.art.off("fullscreenWeb",this.reset),this.art.off("destroy",this.destroy),this.art.emit("artplayerPluginDanmuku:destroy")}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("85d40535eae5f839"))}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("resize",this.reset),e.on("destroy",this.destroy),this.load()}}},{"./bilibili":"5PTUQ","./getDanmuTop":"5SGJk","85d40535eae5f839":"khCQp","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5PTUQ":[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");function r(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function a(t){if("string"!=typeof t)return[];const e=t.matchAll(/(?.+?)<\/d>/gs);return Array.from(e).map((t=>{const e=t.groups.p.split(",");if(e.length>=8){return{text:t.groups.text.trim().replaceAll(""",'"').replaceAll("'","'").replaceAll("<","<").replaceAll(">",">").replaceAll("&","&"),time:Number(e[0]),mode:r(Number(e[1])),fontSize:Number(e[2]),color:`#${Number(e[3]).toString(16)}`,timestamp:Number(e[4]),pool:Number(e[5]),userID:e[6],rowID:Number(e[7])}}return null})).filter(Boolean)}function o(t){return fetch(t).then((t=>t.text())).then((t=>a(t)))}i.defineInteropFlag(n),i.export(n,"getMode",(()=>r)),i.export(n,"bilibiliDanmuParseFromXml",(()=>a)),i.export(n,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"47PTV":[function(t,e,n){n.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},n.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.exportAll=function(t,e){return Object.keys(t).forEach((function(n){"default"===n||"__esModule"===n||e.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})),e},n.export=function(t,e,n){Object.defineProperty(t,e,{enumerable:!0,get:n})}},{}],"5SGJk":[function(t,e,n){t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=function({target:t,emits:e,clientWidth:n,clientHeight:i,marginBottom:r,marginTop:a,antiOverlap:o}){const s=e.filter((e=>e.mode===t.mode&&e.top<=i-r)).sort(((t,e)=>t.top-e.top));if(0===s.length)return a;s.unshift({top:0,left:0,right:0,height:a,width:n,speed:0,distance:n}),s.push({top:i-r,left:0,right:0,height:r,width:n,speed:0,distance:n});for(let e=1;e=t.height)return r}const l=[];for(let t=1;t{const n=Math.min(...e.map((t=>t.right))),i=Math.min(...t.map((t=>t.right)));return n*e.length-i*t.length}));break;case 1:l.sort(((t,e)=>{const n=Math.max(...e.map((t=>t.width)));return Math.max(...t.map((t=>t.width)))*t.length-n*e.length}))}return l[0][0].top}switch(t.mode){case 0:{const e=l.find((e=>e.every((e=>{if(ne.time}))));return e&&e[0]?e[0].top:void 0}case 1:return}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],khCQp:[function(t,e,n){e.exports="data:application/javascript,function%20getDanmuTop%28%7Btarget%3At%2Cemits%3Ae%2CclientWidth%3An%2CclientHeight%3Ai%2CmarginBottom%3As%2CmarginTop%3Ah%2CantiOverlap%3Ao%7D%29%7Bconst%20r%3De.filter%28%28e%3D%3Ee.mode%3D%3D%3Dt.mode%26%26e.top%3C%3Di-s%29%29.sort%28%28%28t%2Ce%29%3D%3Et.top-e.top%29%29%3Bif%280%3D%3D%3Dr.length%29return%20h%3Br.unshift%28%7Btop%3A0%2Cleft%3A0%2Cright%3A0%2Cheight%3Ah%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%2Cr.push%28%7Btop%3Ai-s%2Cleft%3A0%2Cright%3A0%2Cheight%3As%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%3Bfor%28let%20e%3D1%3Be%3Cr.length%3Be%2B%3D1%29%7Bconst%20n%3Dr%5Be%5D%2Ci%3Dr%5Be-1%5D%2Cs%3Di.top%2Bi.height%3Bif%28n.top-s%3E%3Dt.height%29return%20s%7Dconst%20p%3D%5B%5D%3Bfor%28let%20t%3D1%3Bt%3Cr.length-1%3Bt%2B%3D1%29%7Bconst%20e%3Dr%5Bt%5D%3Bif%28p.length%29%7Bconst%20t%3Dp%5Bp.length-1%5D%3Bt%5B0%5D.top%3D%3D%3De.top%3Ft.push%28e%29%3Ap.push%28%5Be%5D%29%7Delse%20p.push%28%5Be%5D%29%7Dif%28%21o%29%7Bswitch%28t.mode%29%7Bcase%200%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.min%28...e.map%28%28t%3D%3Et.right%29%29%29%2Ci%3DMath.min%28...t.map%28%28t%3D%3Et.right%29%29%29%3Breturn%20n%2ae.length-i%2at.length%7D%29%29%3Bbreak%3Bcase%201%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.max%28...e.map%28%28t%3D%3Et.width%29%29%29%3Breturn%20Math.max%28...t.map%28%28t%3D%3Et.width%29%29%29%2at.length-n%2ae.length%7D%29%29%7Dreturn%20p%5B0%5D%5B0%5D.top%7Dswitch%28t.mode%29%7Bcase%200%3A%7Bconst%20e%3Dp.find%28%28e%3D%3Ee.every%28%28e%3D%3E%7Bif%28n%3Ce.distance%29return%211%3Bif%28t.speed%3Ce.speed%29return%210%3Breturn%20e.right%2F%28t.speed-e.speed%29%3Ee.time%7D%29%29%29%29%3Breturn%20e%26%26e%5B0%5D%3Fe%5B0%5D.top%3Avoid%200%7Dcase%201%3Areturn%7D%7Donmessage%3Dt%3D%3E%7Bconst%7Bdata%3Ae%7D%3Dt%2Cn%3DgetDanmuTop%28e%29%3Bself.postMessage%28%7Btop%3An%2Cid%3Ae.id%7D%29%7D%3B"},{}],hrSF1:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("bundle-text:./style.less"),a=i.interopDefault(r),o=t("bundle-text:./img/danmu-on.svg"),s=i.interopDefault(o),l=t("bundle-text:./img/danmu-off.svg"),u=i.interopDefault(l),d=t("bundle-text:./img/danmu-config.svg"),m=i.interopDefault(d),p=t("bundle-text:./img/danmu-style.svg"),c=i.interopDefault(p);if(n.default=function(t,e){const{option:n}=e,{template:{$controlsCenter:i,$player:r},constructor:{utils:{removeClass:a,addClass:o,append:l,setStyle:d,tooltip:p,query:h,inverseClass:f}}}=t;function g(t,e){const n=document.createElement("i");return l(n,t),o(n,"art-icon"),o(n,`art-icon-${e}`),n}d(i,"display","flex");const k=g(s.default,"danmu-on"),y=g(u.default,"danmu-off"),b=g(m.default,"danmu-config"),x=g(c.default,"danmu-style");!function(){const s=["#FE0302","#FF7204","#FFAA02","#FFD302","#FFFF00","#A0EE00","#00CD00","#019899","#4266BE","#89D5FF","#CC0273","#222222","#9B9B9B","#FFFFFF"].map((t=>`
`)),u=l(i,`
模式
滚动
静止
颜色
${s.join("")}
发送
`),m=h(".art-danmuku-style",u),p=h(".art-danmuku-input",u),c=h(".art-danmuku-send",u),g=h(".art-danmuku-style-panel-inner",u),k=h(".art-danmuku-style-panel-modes",u),y=h(".art-danmuku-style-panel-colors",u),b=n.mount||l(r,'
');t.option.backdrop&&o(g,"art-backdrop-filter"),n.theme&&o(u,`art-danmuku-theme-${n.theme}`);let v=null,w=n.mode,D=n.color;function $(t){t<=0?(v=null,c.innerText="发送",a(c,"art-disabled")):(c.innerText=t,v=setTimeout((()=>$(t-1)),1e3))}function B(){const i={mode:w,color:D,border:!0,text:p.value.trim()};null===v&&n.beforeEmit(i)&&(p.value="",e.emit(i),o(c,"art-disabled"),$(n.lockTime),t.emit("artplayerPluginDanmuku:emit",i))}function z(){i.clientWidth{"Enter"===t.key&&(t.preventDefault(),B())})),t.proxy(k,"click",(t=>{const{dataset:e}=t.target;e.mode&&(w=Number(e.mode),f(t.target,"art-current"))})),t.proxy(y,"click",(t=>{const{dataset:e}=t.target;e.color&&(D=e.color,f(t.target,"art-current"))})),z(),t.on("resize",(()=>{t.isInput||z()})),t.on("destroy",(()=>{n.mount&&u.parentElement===n.mount&&n.mount.removeChild(u)}))}(),t.controls.add({position:"right",name:"danmuku",click:function(){e.isHide?(e.show(),t.notice.show="弹幕显示",d(k,"display",null),d(y,"display","none")):(e.hide(),t.notice.show="弹幕隐藏",d(k,"display","none"),d(y,"display",null))},mounted(t){l(t,k),l(t,y),p(t,"弹幕开关"),d(y,"display","none")}}),t.setting.add({name:"danmuku",html:"弹幕设置",tooltip:"更多",icon:b,selector:[{width:200,html:"播放速度",icon:"",tooltip:"适中",selector:[{html:"极慢",time:10},{html:"较慢",time:7.5},{default:!0,html:"适中",time:5},{html:"较快",time:2.5},{html:"极快",time:1}],onSelect:function(t){return e.config({speed:t.time}),t.html}},{width:200,html:"字体大小",icon:"",tooltip:"适中",selector:[{html:"极小",fontSize:"4%"},{html:"较小",fontSize:"5%"},{default:!0,html:"适中",fontSize:"6%"},{html:"较大",fontSize:"7%"},{html:"极大",fontSize:"8%"}],onSelect:function(t){return e.config({fontSize:t.fontSize}),t.html}},{width:200,html:"不透明度",icon:"",tooltip:"100%",selector:[{default:!0,opacity:1,html:"100%"},{opacity:.75,html:"75%"},{opacity:.5,html:"50%"},{opacity:.25,html:"25%"},{opacity:0,html:"0%"}],onSelect:function(t){return e.config({opacity:t.opacity}),t.html}},{width:200,html:"显示范围",icon:"",tooltip:"3/4",selector:[{html:"1/4",margin:[10,"75%"]},{html:"半屏",margin:[10,"50%"]},{default:!0,html:"3/4",margin:[10,"25%"]},{html:"满屏",margin:[10,10]}],onSelect:function(t){return e.config({margin:t.margin}),t.html}},{html:"弹幕防重叠",icon:"",tooltip:n.antiOverlap?"开启":"关闭",switch:n.antiOverlap,onSwitch:t=>(e.config({antiOverlap:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)},{html:"同步视频速度",icon:"",tooltip:n.synchronousPlayback?"开启":"关闭",switch:n.synchronousPlayback,onSwitch:t=>(e.config({synchronousPlayback:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)}]})},"undefined"!=typeof document&&!document.getElementById("artplayer-plugin-danmuku")){const t=document.createElement("style");t.id="artplayer-plugin-danmuku",t.textContent=a.default,document.head.appendChild(t)}},{"bundle-text:./style.less":"fZsza","bundle-text:./img/danmu-on.svg":"3I7GB","bundle-text:./img/danmu-off.svg":"2WOAp","bundle-text:./img/danmu-config.svg":"d0jTU","bundle-text:./img/danmu-style.svg":"jW6Os","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fZsza:[function(t,e,n){e.exports='.art-danmuku-emitter{height:32px;width:100%;max-width:100%;color:#fff;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#ffffff4d;border-radius:3px;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:12px;line-height:1;display:flex;position:relative}.art-danmuku-emitter *,.art-danmuku-emitter :before,.art-danmuku-emitter :after{box-sizing:border-box;margin:0;padding:0}.art-danmuku-emitter .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-danmuku-emitter .art-icon svg{fill:#fff}@supports ((-webkit-backdrop-filter:initial)) or ((-webkit-backdrop-filter:initial)) or ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.art-danmuku-emitter .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-danmuku-emitter .art-danmuku-left{border-radius:3px 0 0 3px;flex:1;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style{width:32px;justify-content:center;align-items:center;display:flex;position:relative}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{z-index:999;width:200px;padding-bottom:10px;display:none;position:absolute;bottom:30px;left:-85px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner{background-color:#000000e6;border-radius:3px;flex-direction:column;padding:10px 10px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-title{margin-bottom:10px;font-size:13px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes{justify-content:space-between;margin-bottom:15px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode{width:47%;cursor:pointer;color:#fff;border:1px solid #fff;justify-content:center;padding:5px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode.art-current{background-color:#00a1d6;border:1px solid #00a1d6}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors{flex-wrap:wrap;justify-content:space-between;gap:5px;margin-bottom:10px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color{cursor:pointer;width:20px;height:20px;border:1px solid #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current{position:relative;box-shadow:0 0 2px #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current:before{content:"";width:100%;height:100%;border:2px solid #000;position:absolute;inset:0}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style:hover .art-danmuku-style-panel{display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon{opacity:.75;cursor:pointer}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon:hover{opacity:1}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input{width:100%;color:#fff;background-color:#0000;border:none;outline:none;flex:1;padding:0 10px 0 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#ffffff80}.art-danmuku-emitter .art-danmuku-send{width:50px;cursor:pointer;background-color:#00a1d6;border-radius:0 3px 3px 0;justify-content:center;align-items:center;display:flex}.art-danmuku-emitter .art-danmuku-send:hover{background-color:#00b5e5}.art-danmuku-emitter .art-danmuku-send.art-disabled{opacity:.5;pointer-events:none}.art-danmuku-emitter.art-danmuku-mount{height:34px;max-width:100%!important}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{left:0}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-send{width:60px}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left{background:#f4f4f4;border:1px solid #dadada}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-style .art-icon svg{fill:#666}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input{color:#000}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#00000080}.art-layer-danmuku-emitter{z-index:99;width:100%;position:absolute;bottom:-40px;left:0;right:0}'},{}],"3I7GB":[function(t,e,n){e.exports=''},{}],"2WOAp":[function(t,e,n){e.exports=''},{}],d0jTU:[function(t,e,n){e.exports=''},{}],jW6Os:[function(t,e,n){e.exports=''},{}]},["dmoJk"],"dmoJk","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-dash-quality.js b/docs/compiled/artplayer-plugin-dash-quality.js index cd8c158ac..80e980ec9 100644 --- a/docs/compiled/artplayer-plugin-dash-quality.js +++ b/docs/compiled/artplayer-plugin-dash-quality.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-dash-quality.js v1.0.0 + * artplayer-plugin-dash-quality.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,o,r){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof i[o]&&i[o],u=a.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!u[t]){if(!e[t]){var r="function"==typeof i[o]&&i[o];if(!n&&r)return r(t,!0);if(a)return a(t,!0);if(l&&"string"==typeof t)return l(t);var f=new Error("Cannot find module '"+t+"'");throw f.code="MODULE_NOT_FOUND",f}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var s=u[t]=new d.Module(t);e[t][0].call(s.exports,c,s,s.exports,this)}return u[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=u,d.parent=a,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return i[o]}}),i[o]=d;for(var f=0;f{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;return t.on("ready",(function(){const r=t.dash||window.dash;o(r&&r.getVideoElement()===n,'Cannot find instance of Dash from "art.dash" or "window.dash"');const a=e.auto||"Auto",u=e.title||"Quality",l=r.getBitrateInfoListFor("video"),d=r.getQualityFor("video"),f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.getSettings(),c=l[d],p=s?.streaming?.abr?.autoSwitchBitrate?.video?a:f(c),h={streaming:{abr:{autoSwitchBitrate:{}}}};e.control&&t.controls.add({name:"dash-quality",position:"right",html:p,style:{padding:"0 10px"},selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:e=>(h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html)}),e.setting&&t.setting.add({name:"dash-quality",tooltip:p,html:u,icon:i.default,width:200,selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:function(e){return h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html}})})),{name:"artplayerPluginDashQuality"}}}n.default=a,a.env="production",a.version="1.0.0",a.build="2023-04-17 23:16:14","undefined"!=typeof window&&(window.artplayerPluginDashQuality=a)},{"bundle-text:./image.svg":"kcayM","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],kcayM:[function(e,t,n){t.exports=''},{}],"9pCYc":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["92dvd"],"92dvd","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,n,o,r){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof i[o]&&i[o],a=u.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!a[t]){if(!e[t]){var r="function"==typeof i[o]&&i[o];if(!n&&r)return r(t,!0);if(u)return u(t,!0);if(l&&"string"==typeof t)return l(t);var f=new Error("Cannot find module '"+t+"'");throw f.code="MODULE_NOT_FOUND",f}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var s=a[t]=new d.Module(t);e[t][0].call(s.exports,c,s,s.exports,this)}return a[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=a,d.parent=u,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return i[o]}}),i[o]=d;for(var f=0;f{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function r(){const r=t.dash||window.dash;o(r&&r.getVideoElement()===n,'Cannot find instance of Dash from "art.dash" or "window.dash"');const u=e.auto||"Auto",a=e.title||"Quality",l=r.getBitrateInfoListFor("video"),d=r.getQualityFor("video"),f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.getSettings(),c=l[d],p=s?.streaming?.abr?.autoSwitchBitrate?.video?u:f(c),h={streaming:{abr:{autoSwitchBitrate:{}}}};e.control&&t.controls.update({name:"dash-quality",position:"right",html:p,style:{padding:"0 10px"},selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:e=>(h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html)}),e.setting&&t.setting.update({name:"dash-quality",tooltip:p,html:a,icon:i.default,width:200,selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:function(e){return h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html}})}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginDashQuality"}}}n.default=u,u.env="production",u.version="2.0.0",u.build="2023-04-23 13:41:50","undefined"!=typeof window&&(window.artplayerPluginDashQuality=u)},{"bundle-text:./image.svg":"kcayM","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],kcayM:[function(e,t,n){t.exports=''},{}],"9pCYc":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["92dvd"],"92dvd","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-dash-quality.legacy.js b/docs/compiled/artplayer-plugin-dash-quality.legacy.js index bc0b689a9..e778fc5c5 100644 --- a/docs/compiled/artplayer-plugin-dash-quality.legacy.js +++ b/docs/compiled/artplayer-plugin-dash-quality.legacy.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-dash-quality.js v1.0.0 + * artplayer-plugin-dash-quality.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,o,r){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof i[o]&&i[o],a=u.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!a[t]){if(!e[t]){var r="function"==typeof i[o]&&i[o];if(!n&&r)return r(t,!0);if(u)return u(t,!0);if(l&&"string"==typeof t)return l(t);var f=new Error("Cannot find module '"+t+"'");throw f.code="MODULE_NOT_FOUND",f}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var s=a[t]=new d.Module(t);e[t][0].call(s.exports,c,s,s.exports,this)}return a[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=a,d.parent=u,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return i[o]}}),i[o]=d;for(var f=0;f{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;return t.on("ready",(function(){const r=t.dash||window.dash;o(r&&r.getVideoElement()===n,'Cannot find instance of Dash from "art.dash" or "window.dash"');const u=e.auto||"Auto",a=e.title||"Quality",l=r.getBitrateInfoListFor("video"),d=r.getQualityFor("video"),f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.getSettings(),c=l[d],p=s?.streaming?.abr?.autoSwitchBitrate?.video?u:f(c),h={streaming:{abr:{autoSwitchBitrate:{}}}};e.control&&t.controls.add({name:"dash-quality",position:"right",html:p,style:{padding:"0 10px"},selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:e=>(h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html)}),e.setting&&t.setting.add({name:"dash-quality",tooltip:p,html:a,icon:i.default,width:200,selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:function(e){return h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html}})})),{name:"artplayerPluginDashQuality"}}}n.default=u,u.env="production",u.version="1.0.0",u.build="2023-04-17 23:16:14","undefined"!=typeof window&&(window.artplayerPluginDashQuality=u)},{"bundle-text:./image.svg":"48QdU","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"48QdU":[function(e,t,n){t.exports=''},{}],"47PTV":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["1XYOW"],"1XYOW","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,n,o,r){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof i[o]&&i[o],a=u.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!a[t]){if(!e[t]){var r="function"==typeof i[o]&&i[o];if(!n&&r)return r(t,!0);if(u)return u(t,!0);if(l&&"string"==typeof t)return l(t);var f=new Error("Cannot find module '"+t+"'");throw f.code="MODULE_NOT_FOUND",f}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var s=a[t]=new d.Module(t);e[t][0].call(s.exports,c,s,s.exports,this)}return a[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=a,d.parent=u,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return i[o]}}),i[o]=d;for(var f=0;f{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function r(){const r=t.dash||window.dash;o(r&&r.getVideoElement()===n,'Cannot find instance of Dash from "art.dash" or "window.dash"');const u=e.auto||"Auto",a=e.title||"Quality",l=r.getBitrateInfoListFor("video"),d=r.getQualityFor("video"),f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.getSettings(),c=l[d],p=s?.streaming?.abr?.autoSwitchBitrate?.video?u:f(c),h={streaming:{abr:{autoSwitchBitrate:{}}}};e.control&&t.controls.update({name:"dash-quality",position:"right",html:p,style:{padding:"0 10px"},selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:e=>(h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html)}),e.setting&&t.setting.update({name:"dash-quality",tooltip:p,html:a,icon:i.default,width:200,selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:function(e){return h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html}})}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginDashQuality"}}}n.default=u,u.env="production",u.version="2.0.0",u.build="2023-04-23 13:41:50","undefined"!=typeof window&&(window.artplayerPluginDashQuality=u)},{"bundle-text:./image.svg":"48QdU","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"48QdU":[function(e,t,n){t.exports=''},{}],"47PTV":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["1XYOW"],"1XYOW","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-hls-quality.js b/docs/compiled/artplayer-plugin-hls-quality.js index 392436b5b..194bc7701 100644 --- a/docs/compiled/artplayer-plugin-hls-quality.js +++ b/docs/compiled/artplayer-plugin-hls-quality.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-hls-quality.js v1.0.2 + * artplayer-plugin-hls-quality.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,o,r){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof l[o]&&l[o],u=i.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!u[t]){if(!e[t]){var r="function"==typeof l[o]&&l[o];if(!n&&r)return r(t,!0);if(i)return i(t,!0);if(f&&"string"==typeof t)return f(t);var s=new Error("Cannot find module '"+t+"'");throw s.code="MODULE_NOT_FOUND",s}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var a=u[t]=new d.Module(t);e[t][0].call(a.exports,c,a,a.exports,this)}return u[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=u,d.parent=i,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return l[o]}}),l[o]=d;for(var s=0;s{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;return t.on("ready",(function(){const r=t.hls||window.hls;o(r&&r.media===n,'Cannot find instance of HLS from "art.hls" or "window.hls"');const i=e.auto||"Auto",u=e.title||"Quality",f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),d=r.levels[r.currentLevel],s=d?f(d):i;e.control&&t.controls.add({name:"hls-quality",position:"right",html:s,style:{padding:"0 10px"},selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:d===e}))),onSelect:e=>(r.currentLevel=e.level,t.loading.show=!0,e.html)}),e.setting&&t.setting.add({name:"hls-quality",tooltip:s,html:u,icon:l.default,width:200,selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:d===e}))),onSelect:function(e){return r.currentLevel=e.level,t.loading.show=!0,e.html}})})),{name:"artplayerPluginHlsQuality"}}}n.default=i,i.env="production",i.version="1.0.2",i.build="2023-04-17 23:16:13","undefined"!=typeof window&&(window.artplayerPluginHlsQuality=i)},{"bundle-text:./image.svg":"5VXix","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5VXix":[function(e,t,n){t.exports=''},{}],"9pCYc":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["eEHR6"],"eEHR6","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,n,o,r){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof l[o]&&l[o],u=i.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(t,n){if(!u[t]){if(!e[t]){var r="function"==typeof l[o]&&l[o];if(!n&&r)return r(t,!0);if(i)return i(t,!0);if(f&&"string"==typeof t)return f(t);var d=new Error("Cannot find module '"+t+"'");throw d.code="MODULE_NOT_FOUND",d}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var a=u[t]=new s.Module(t);e[t][0].call(a.exports,c,a,a.exports,this)}return u[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:s(t)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=u,s.parent=i,s.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(s,"root",{get:function(){return l[o]}}),l[o]=s;for(var d=0;d{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function r(){const r=t.hls||window.hls;o(r&&r.media===n,'Cannot find instance of HLS from "art.hls" or "window.hls"');const i=e.auto||"Auto",u=e.title||"Quality",f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.levels[r.currentLevel],d=s?f(s):i;e.control&&t.controls.update({name:"hls-quality",position:"right",html:d,style:{padding:"0 10px"},selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:s===e}))),onSelect:e=>(r.currentLevel=e.level,t.loading.show=!0,e.html)}),e.setting&&t.setting.update({name:"hls-quality",tooltip:d,html:u,icon:l.default,width:200,selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:s===e}))),onSelect:function(e){return r.currentLevel=e.level,t.loading.show=!0,e.html}})}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginHlsQuality"}}}n.default=i,i.env="production",i.version="2.0.0",i.build="2023-04-23 13:41:49","undefined"!=typeof window&&(window.artplayerPluginHlsQuality=i)},{"bundle-text:./image.svg":"5VXix","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5VXix":[function(e,t,n){t.exports=''},{}],"9pCYc":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["eEHR6"],"eEHR6","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-hls-quality.legacy.js b/docs/compiled/artplayer-plugin-hls-quality.legacy.js index 732e900e0..31cbec718 100644 --- a/docs/compiled/artplayer-plugin-hls-quality.legacy.js +++ b/docs/compiled/artplayer-plugin-hls-quality.legacy.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-hls-quality.js v1.0.2 + * artplayer-plugin-hls-quality.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,o,r){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof l[o]&&l[o],u=i.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!u[t]){if(!e[t]){var r="function"==typeof l[o]&&l[o];if(!n&&r)return r(t,!0);if(i)return i(t,!0);if(f&&"string"==typeof t)return f(t);var s=new Error("Cannot find module '"+t+"'");throw s.code="MODULE_NOT_FOUND",s}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var a=u[t]=new d.Module(t);e[t][0].call(a.exports,c,a,a.exports,this)}return u[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=u,d.parent=i,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return l[o]}}),l[o]=d;for(var s=0;s{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;return t.on("ready",(function(){const r=t.hls||window.hls;o(r&&r.media===n,'Cannot find instance of HLS from "art.hls" or "window.hls"');const i=e.auto||"Auto",u=e.title||"Quality",f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),d=r.levels[r.currentLevel],s=d?f(d):i;e.control&&t.controls.add({name:"hls-quality",position:"right",html:s,style:{padding:"0 10px"},selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:d===e}))),onSelect:e=>(r.currentLevel=e.level,t.loading.show=!0,e.html)}),e.setting&&t.setting.add({name:"hls-quality",tooltip:s,html:u,icon:l.default,width:200,selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:d===e}))),onSelect:function(e){return r.currentLevel=e.level,t.loading.show=!0,e.html}})})),{name:"artplayerPluginHlsQuality"}}}n.default=i,i.env="production",i.version="1.0.2",i.build="2023-04-17 23:16:13","undefined"!=typeof window&&(window.artplayerPluginHlsQuality=i)},{"bundle-text:./image.svg":"9cAMb","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"9cAMb":[function(e,t,n){t.exports=''},{}],"47PTV":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["3yim4"],"3yim4","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,n,o,r){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof l[o]&&l[o],u=i.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(t,n){if(!u[t]){if(!e[t]){var r="function"==typeof l[o]&&l[o];if(!n&&r)return r(t,!0);if(i)return i(t,!0);if(f&&"string"==typeof t)return f(t);var d=new Error("Cannot find module '"+t+"'");throw d.code="MODULE_NOT_FOUND",d}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var a=u[t]=new s.Module(t);e[t][0].call(a.exports,c,a,a.exports,this)}return u[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:s(t)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=u,s.parent=i,s.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(s,"root",{get:function(){return l[o]}}),l[o]=s;for(var d=0;d{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function r(){const r=t.hls||window.hls;o(r&&r.media===n,'Cannot find instance of HLS from "art.hls" or "window.hls"');const i=e.auto||"Auto",u=e.title||"Quality",f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.levels[r.currentLevel],d=s?f(s):i;e.control&&t.controls.update({name:"hls-quality",position:"right",html:d,style:{padding:"0 10px"},selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:s===e}))),onSelect:e=>(r.currentLevel=e.level,t.loading.show=!0,e.html)}),e.setting&&t.setting.update({name:"hls-quality",tooltip:d,html:u,icon:l.default,width:200,selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:s===e}))),onSelect:function(e){return r.currentLevel=e.level,t.loading.show=!0,e.html}})}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginHlsQuality"}}}n.default=i,i.env="production",i.version="2.0.0",i.build="2023-04-23 13:41:50","undefined"!=typeof window&&(window.artplayerPluginHlsQuality=i)},{"bundle-text:./image.svg":"9cAMb","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"9cAMb":[function(e,t,n){t.exports=''},{}],"47PTV":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["3yim4"],"3yim4","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer-plugin-vtt-thumbnail.js b/docs/compiled/artplayer-plugin-vtt-thumbnail.js index 300a046ad..12827ac5a 100644 --- a/docs/compiled/artplayer-plugin-vtt-thumbnail.js +++ b/docs/compiled/artplayer-plugin-vtt-thumbnail.js @@ -4,4 +4,4 @@ * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,r,o){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof i[r]&&i[r],u=l.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,n){if(!u[t]){if(!e[t]){var o="function"==typeof i[r]&&i[r];if(!n&&o)return o(t,!0);if(l)return l(t,!0);if(s&&"string"==typeof t)return s(t);var a=new Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(n){var r=e[t][1][n];return null!=r?r:n},d.cache={};var c=u[t]=new f.Module(t);e[t][0].call(c.exports,d,c,c.exports,this)}return u[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=u,f.parent=l,f.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(f,"root",{get:function(){return i[r]}}),i[r]=f;for(var a=0;a{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:s}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),f=u.find((e=>l>=e.start&&l<=e.end));if(!f)return n(e,"display","none");n(e,"backgroundImage",`url(${f.url})`),n(e,"height",`${f.h}px`),n(e,"width",`${f.w}px`),n(e,"backgroundPosition",`-${f.x}px -${f.y}px`),s<=f.w/2?n(e,"left",0):s>o.clientWidth-f.w/2?n(e,"left",o.clientWidth-f.w+"px"):n(e,"left",s-f.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{t||n(e,"display","none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-04-17 23:16:12","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"4IFMi","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4IFMi":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,s=i.match(u),f=/(.*)#(\w{4})=(.*)/i,a=l.match(f),c=Math.floor(r(s[1])),d=Math.floor(r(s[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;e{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:s}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),f=u.find((e=>l>=e.start&&l<=e.end));if(!f)return n(e,"display","none");n(e,"backgroundImage",`url(${f.url})`),n(e,"height",`${f.h}px`),n(e,"width",`${f.w}px`),n(e,"backgroundPosition",`-${f.x}px -${f.y}px`),s<=f.w/2?n(e,"left",0):s>o.clientWidth-f.w/2?n(e,"left",o.clientWidth-f.w+"px"):n(e,"left",s-f.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{t||n(e,"display","none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-04-23 13:41:48","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"4IFMi","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4IFMi":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,s=i.match(u),f=/(.*)#(\w{4})=(.*)/i,a=l.match(f),c=Math.floor(r(s[1])),d=Math.floor(r(s[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;e{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:f}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),s=u.find((e=>l>=e.start&&l<=e.end));if(!s)return n(e,"display","none");n(e,"backgroundImage",`url(${s.url})`),n(e,"height",`${s.h}px`),n(e,"width",`${s.w}px`),n(e,"backgroundPosition",`-${s.x}px -${s.y}px`),f<=s.w/2?n(e,"left",0):f>o.clientWidth-s.w/2?n(e,"left",o.clientWidth-s.w+"px"):n(e,"left",f-s.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{t||n(e,"display","none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-04-17 23:16:12","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"5fcbX","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5fcbX":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,f=i.match(u),s=/(.*)#(\w{4})=(.*)/i,a=l.match(s),c=Math.floor(r(f[1])),d=Math.floor(r(f[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;e{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:f}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),s=u.find((e=>l>=e.start&&l<=e.end));if(!s)return n(e,"display","none");n(e,"backgroundImage",`url(${s.url})`),n(e,"height",`${s.h}px`),n(e,"width",`${s.w}px`),n(e,"backgroundPosition",`-${s.x}px -${s.y}px`),f<=s.w/2?n(e,"left",0):f>o.clientWidth-s.w/2?n(e,"left",o.clientWidth-s.w+"px"):n(e,"left",f-s.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{t||n(e,"display","none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-04-23 13:41:49","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"5fcbX","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5fcbX":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,f=i.match(u),s=/(.*)#(\w{4})=(.*)/i,a=l.match(s),c=Math.floor(r(f[1])),d=Math.floor(r(f[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;et.call(this,this))),te.DEBUG){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;te("Event@"+t.type)))}ee.push(this)}static get instances(){return ee}static get version(){return"5.0.0"}static get env(){return"production"}static get build(){return"2023-04-19 10:01:19"}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:{},escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:p.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),ee.splice(ee.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}if(r.default=te,te.DEBUG=!1,te.CONTEXTMENU=!0,te.NOTICE_TIME=2e3,te.SETTING_WIDTH=250,te.SETTING_ITEM_WIDTH=200,te.SETTING_ITEM_HEIGHT=35,te.RESIZE_TIME=500,te.SCROLL_TIME=200,te.SCROLL_GAP=50,te.AUTO_PLAYBACK_MAX=10,te.AUTO_PLAYBACK_MIN=5,te.AUTO_PLAYBACK_TIMEOUT=3e3,te.RECONNECT_TIME_MAX=5,te.RECONNECT_SLEEP_TIME=1e3,te.CONTROL_HIDE_TIME=3e3,te.DB_CLICE_TIME=300,te.MOBILE_AUTO_PLAYBACKRATE=3,te.MOBILE_AUTO_PLAYBACKRATE_TIME=1e3,te.MOBILE_AUTO_ORIENTATION_TIME=200,te.INFO_LOOP_TIME=1e3,te.FAST_FORWARD_VALUE=3,te.FAST_FORWARD_TIME=1e3,te.TOUCH_MOVE_RATIO=.5,te.VOLUME_STEP=.1,te.SEEK_STEP=5,te.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],te.ASPECT_RATIO=["default","4:3","16:9"],te.FLIP=["normal","horizontal","vertical"],te.FULLSCREEN_WEB_IN_BODY=!1,"undefined"!=typeof document&&!document.getElementById("artplayer-style")){const e=p.createElement("style");e.id="artplayer-style",e.textContent=n.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.Artplayer=te),console.log(`%c ArtPlayer %c ${te.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},{"bundle-text:./style/index.less":"0016T","option-validator":"bAWi2","./utils/emitter":"66mFZ","./utils":"71aH7","./scheme":"AKEiO","./config":"lyjeQ","./whitelist":"9L0ao","./template":"X13Zf","./i18n":"3jKkj","./player":"a90nx","./control":"8Z0Uf","./contextmenu":"2KYsr","./info":"02ajl","./subtitle":"eSWto","./events":"jo4S1","./hotkey":"6NoFy","./layer":"6G6hZ","./loading":"3dsEe","./notice":"dWGTw","./mask":"5POkG","./icons":"6OeNg","./setting":"3eYNH","./storage":"2aaJe","./plugins":"8MTUM","./mobile":"7mil2","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"0016T":[function(e,t,r){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#fff3;--art-hover-color:#ffffff80;--art-loaded-color:#fff3;--art-loop-color:#ffffffbf;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:-20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-loop-width:2px;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-scale:1;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#00000080;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{width:100%;height:100%;zoom:1;text-align:left;direction:ltr;user-select:none;box-sizing:border-box;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative;overflow:hidden}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{max-width:100%;vertical-align:top}.art-video-player svg{fill:#fff}.art-video-player a{color:#fff;text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.art-video-player.art-backdrop .art-contextmenus,.art-video-player.art-backdrop .art-info,.art-video-player.art-backdrop .art-settings,.art-video-player.art-backdrop .art-layer-auto-playback,.art-video-player.art-backdrop .art-selector-list,.art-video-player.art-backdrop .art-volume-inner{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;width:100%;height:100%;cursor:pointer;position:absolute;inset:0}.art-poster{z-index:11;width:100%;height:100%;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;width:100%;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);pointer-events:none;transition:bottom var(--art-transition-duration)ease;text-shadow:var(--art-subtitle-border)1px 0 1px,var(--art-subtitle-border)0 1px 1px,var(--art-subtitle-border)-1px 0 1px,var(--art-subtitle-border)0 -1px 1px,var(--art-subtitle-border)1px 1px 1px,var(--art-subtitle-border)-1px -1px 1px,var(--art-subtitle-border)1px -1px 1px,var(--art-subtitle-border)-1px 1px 1px;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player .art-subtitle p{word-break:break-all;height:fit-content}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0}.art-video-player .art-layers{z-index:40;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;width:100%;height:100%;opacity:0;pointer-events:none;justify-content:end;gap:var(--art-bottom-gap);inset:auto 0 0;bottom:var(--art-bottom-offset);height:var(--art-bottom-height);padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;display:flex;position:absolute}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;bottom:0}.art-bottom .art-progress{z-index:0;pointer-events:auto;position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{height:50%;width:100%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;width:100%;height:100%;width:0%;background-color:var(--art-hover-color);display:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;width:100%;height:100%;width:0%;background-color:var(--art-loaded-color);position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;width:100%;height:100%;width:0%;background-color:var(--art-theme);position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;width:100%;height:100%;pointer-events:auto;width:var(--art-highlight-width);transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0;transform:scale(0)}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{width:100%;height:100%;pointer-events:none}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;bottom:10px;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom .art-progress .art-control-loop{z-index:0;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-loop .art-loop-point{z-index:0;width:100%;height:100%;width:var(--art-loop-width);background-color:var(--art-loop-color);transform:translateX(calc(var(--art-loop-width)/-2))scaleY(1.5);position:absolute;inset:0 0 0 0%}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{height:100%;flex:1;justify-content:center;align-items:center;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{height:100%;width:100%;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{width:100%;cursor:pointer;flex:1;justify-content:center;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{width:2px;border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;width:100%;height:100%;background-color:var(--art-theme);position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);transform-origin:100% 100%;max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transform:scale(var(--art-settings-scale));transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{height:35px;cursor:pointer;color:#ffffffbf;justify-content:space-between;align-items:center;padding:0 5px;line-height:1;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{color:#fff;background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{min-width:32px;height:24px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{height:3px;width:80px;appearance:none;background-color:#fff3;outline:none}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{width:250px;text-overflow:ellipsis;white-space:nowrap;user-select:all;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{box-sizing:content-box;object-fit:fill}.art-fullscreen-web{z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:absolute;inset:0}.art-mini-popup{z-index:9999;width:320px;height:180px;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;width:100%;height:100%;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-droging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-auto-size{justify-content:center;align-items:center;display:flex}.art-auto-size .art-video-player{transition:width,height var(--art-transition-duration)ease}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-mini-progress-bar{z-index:0;width:100%;height:100%;height:var(--art-mini-progress-height);background-color:var(--art-theme);display:flex;position:absolute;inset:auto 0 0}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-bottom{display:none!important}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-lock .art-layer-mini-progress-bar{display:flex!important}.art-video-player.art-control-show .art-layer-mini-progress-bar{display:none}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;justify-content:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-mobile{--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-scale:.8;--art-settings-max-height:200px;--art-selector-max-height:200px}'},{}],bAWi2:[function(e,t,r){t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return function(e){return"GeneratorFunction"===a(e)}(r)?"generatorfunction":"function";if(function(e){return Array.isArray?Array.isArray(e):e instanceof Array}(r))return"array";if(function(e){return!(!e.constructor||"function"!=typeof e.constructor.isBuffer)&&e.constructor.isBuffer(e)}(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(function(e){return e instanceof Date||"function"==typeof e.toDateString&&"function"==typeof e.getDate&&"function"==typeof e.setDate}(r))return"date";if(function(e){return e instanceof Error||"string"==typeof e.message&&e.constructor&&"number"==typeof e.constructor.stackTraceLimit}(r))return"error";if(function(e){return e instanceof RegExp||"string"==typeof e.flags&&"boolean"==typeof e.ignoreCase&&"boolean"==typeof e.multiline&&"boolean"==typeof e.global}(r))return"regexp";switch(a(r)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(e){return"function"==typeof e.throw&&"function"==typeof e.return&&"function"==typeof e.next}(r))return"generator";switch(o=t.call(r)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function a(e){return e.constructor?e.constructor.name:null}function o(e,t){var a=2n)),a.export(r,"queryAll",(()=>i)),a.export(r,"addClass",(()=>s)),a.export(r,"removeClass",(()=>l)),a.export(r,"hasClass",(()=>c)),a.export(r,"append",(()=>p)),a.export(r,"remove",(()=>u)),a.export(r,"setStyle",(()=>d)),a.export(r,"setStyles",(()=>f)),a.export(r,"getStyle",(()=>h)),a.export(r,"sublings",(()=>m)),a.export(r,"inverseClass",(()=>g)),a.export(r,"tooltip",(()=>v)),a.export(r,"isInViewport",(()=>y)),a.export(r,"includeFromEvent",(()=>b)),a.export(r,"replaceElement",(()=>x)),a.export(r,"createElement",(()=>w)),a.export(r,"getIcon",(()=>j));var o=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function i(e,t=document){return Array.from(t.querySelectorAll(e))}function s(e,t){return e.classList.add(t)}function l(e,t){return e.classList.remove(t)}function c(e,t){return e.classList.contains(t)}function p(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function u(e){return e.parentNode.removeChild(e)}function d(e,t,r){return e.style[t]=r,e}function f(e,t){for(const r in t)d(e,r,t[r]);return e}function h(e,t,r=!0){const a=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(a):a}function m(e){return Array.from(e.parentElement.children).filter((t=>t!==e))}function g(e,t){m(e).forEach((e=>l(e,t))),s(e,t)}function v(e,t,r="top"){o.isMobile||(e.setAttribute("aria-label",t),s(e,"hint--rounded"),s(e,`hint--${r}`))}function y(e,t=0){const r=e.getBoundingClientRect(),a=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,n=r.top-t<=a&&r.top+r.height+t>=0,i=r.left-t<=o+t&&r.left+r.width+t>=0;return n&&i}function b(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function x(e,t){return t.parentNode.replaceChild(e,t),e}function w(e){return document.createElement(e)}function j(e="",t=""){const r=w("i");return s(r,"art-icon"),s(r,`art-icon-${e}`),p(r,t),r}},{"./compatibility":"6ZTr6","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"6ZTr6":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"userAgent",(()=>o)),a.export(r,"isMobile",(()=>n)),a.export(r,"isSafari",(()=>i)),a.export(r,"isWechat",(()=>s)),a.export(r,"isIE",(()=>l)),a.export(r,"isAndroid",(()=>c)),a.export(r,"isIOS",(()=>p));const o="undefined"!=typeof window?window.navigator.userAgent:"",n=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(o),i=/^((?!chrome|android).)*safari/i.test(o),s=/MicroMessenger/i.test(o),l=/MSIE|Trident/i.test(o),c=/android/i.test(o),p=/iPad|iPhone|iPod/i.test(o)&&!window.MSStream},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],hwmZz:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"ArtPlayerError",(()=>o)),a.export(r,"errorHandle",(()=>n));class o extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new o(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],inzwq:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){return"WEBVTT \r\n\r\n".concat((t=e,t.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,((e,t,r)=>{let a=r.slice(0,3);return 1===r.length&&(a=r+"00"),2===r.length&&(a=r+"0"),`${t},${a}`}))).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"));var t}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function i(e){const t=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map(((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`})).join("")}return`WEBVTT\n\n${e.split(/\r?\n/).map((e=>{const a=e.match(t);return a?{start:r(a[1].trim()),end:r(a[2].trim()),text:a[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map((e=>e.trim())).join("\n")}:null})).filter((e=>e)).map(((e,t)=>e?`${t+1}\n${e.start} --\x3e ${e.end}\n${e.text}`:"")).filter((e=>e.trim())).join("\n\n")}`}a.defineInteropFlag(r),a.export(r,"srtToVtt",(()=>o)),a.export(r,"vttToBlob",(()=>n)),a.export(r,"assToVtt",(()=>i))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"6b7Ip":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){return e.includes("?")?o(e.split("?")[0]):e.includes("#")?o(e.split("#")[0]):e.trim().toLowerCase().split(".").pop()}function n(e,t){const r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}a.defineInteropFlag(r),a.export(r,"getExt",(()=>o)),a.export(r,"download",(()=>n))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5NSdr":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"def",(()=>o)),a.export(r,"has",(()=>i)),a.export(r,"get",(()=>s)),a.export(r,"mergeDeep",(()=>l));const o=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function i(e,t){return n.call(e,t)}function s(e,t){return Object.getOwnPropertyDescriptor(e,t)}function l(...e){const t=e=>e&&"object"==typeof e&&!Array.isArray(e);return e.reduce(((e,r)=>(Object.keys(r).forEach((a=>{const o=e[a],n=r[a];Array.isArray(o)&&Array.isArray(n)?e[a]=o.concat(...n):!t(o)||!t(n)||n instanceof Element?e[a]=n:e[a]=l(o,n)})),e)),{})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],epmNy:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e=0){return new Promise((t=>setTimeout(t,e)))}function n(e,t,r){let a;function o(...o){clearTimeout(a),a=setTimeout((function(){a=null,e.apply(r,o)}),t)}return o.clearTimeout=function(){clearTimeout(a)},o}function i(e,t){let r,a,o=!1;return function n(...i){if(o)return r=i,void(a=this);o=!0,e.apply(this,i),setTimeout((()=>{o=!1,r&&(n.apply(a,r),r=null,a=null)}),t)}}a.defineInteropFlag(r),a.export(r,"sleep",(()=>o)),a.export(r,"debounce",(()=>n)),a.export(r,"throttle",(()=>i))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],gapRl:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function i(e){return["string","number"].includes(typeof e)}function s(e){const t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),a=Math.floor(e-3600*t-60*r);return(t>0?[t,r,a]:[r,a]).map((e=>e<10?`0${e}`:String(e))).join(":")}function l(e){return e.replace(/[&<>'"]/g,(e=>({"&":"&","<":"<",">":">","'":"'",'"':"""}[e]||e)))}a.defineInteropFlag(r),a.export(r,"clamp",(()=>o)),a.export(r,"capitalize",(()=>n)),a.export(r,"isStringOrNumber",(()=>i)),a.export(r,"secondToTime",(()=>s)),a.export(r,"escape",(()=>l))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],AKEiO:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"ComponentOption",(()=>d));var o=e("../utils");const n="array",i="boolean",s="string",l="number",c="object",p="function";function u(e,t,r){return(0,o.errorHandle)(t===s||t===l||e instanceof Element,`${r.join(".")} require '${s}' or 'Element' type`)}const d={html:u,disable:`?${i}`,name:`?${s}`,index:`?${l}`,style:`?${c}`,click:`?${p}`,mounted:`?${p}`,tooltip:`?${s}|${l}`,width:`?${l}`,selector:`?${n}`,onSelect:`?${p}`,switch:`?${i}`,onSwitch:`?${p}`,range:`?${n}`,onRange:`?${p}`,onChange:`?${p}`};r.default={id:s,container:u,url:s,poster:s,title:s,type:s,theme:s,lang:s,volume:l,isLive:i,muted:i,autoplay:i,autoSize:i,autoMini:i,loop:i,flip:i,playbackRate:i,aspectRatio:i,screenshot:i,setting:i,hotkey:i,pip:i,mutex:i,backdrop:i,fullscreen:i,fullscreenWeb:i,subtitleOffset:i,miniProgressBar:i,useSSR:i,playsInline:i,lock:i,fastForward:i,autoPlayback:i,autoOrientation:i,airplay:i,plugins:[p],whitelist:[`${s}|${p}|regexp`],layers:[d],contextmenu:[d],settings:[d],controls:[{...d,position:(e,t,r)=>{const a=["top","left","right"];return(0,o.errorHandle)(a.includes(e),`${r.join(".")} only accept ${a.toString()} as parameters`)}}],quality:[{default:`?${i}`,html:s,url:s}],highlight:[{time:l,text:s}],thumbnails:{url:s,number:l,column:l,width:l,height:l},subtitle:{url:s,type:s,style:c,escape:i,encoding:s,onVttLoad:p},moreVideoAttr:c,i18n:c,icons:c,cssVar:c,customType:c}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],lyjeQ:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={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"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9L0ao":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("./utils");r.default=class{constructor(e){this.art=e}get state(){const{option:e,constructor:{kindOf:t}}=this.art;return!a.isMobile||!e.whitelist.length||e.whitelist.some((e=>{switch(t(e)){case"string":return"*"===e||a.userAgent.indexOf(e)>-1;case"function":return e(a.userAgent);case"regexp":return e.test(a.userAgent);default:return!1}}))}}},{"./utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],X13Zf:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("./utils");class o{constructor(e){this.art=e;const{option:t,constructor:r,whitelist:o}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,a.query)(t.container),(0,a.errorHandle)(this.$container,`No container element found by ${t.container}`));const n=this.$container.tagName.toLowerCase();(0,a.errorHandle)("div"===n,`Unsupported container element type, only support 'div' but got '${n}'`),(0,a.errorHandle)(r.instances.every((e=>e.template.$container!==this.$container)),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.$original=this.$container.cloneNode(!0),o.state?this.desktop():this.mobile()}static get html(){return'
Player version:
5.0.0
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
'}query(e){return(0,a.query)(e,this.$container)}desktop(){const{option:e}=this.art;e.useSSR||(this.$container.innerHTML=o.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.backdrop&&(0,a.addClass)(this.$player,"art-backdrop"),a.isMobile&&(0,a.addClass)(this.$player,"art-mobile")}mobile(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}destroy(e){e?(0,a.replaceElement)(this.$original,this.$container):(0,a.addClass)(this.$player,"art-destroy")}}r.default=o},{"./utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"3jKkj":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils"),n=e("./zh-cn.json"),i=a.interopDefault(n),s=e("./zh-tw.json"),l=a.interopDefault(s),c=e("./pl.json"),p=a.interopDefault(c),u=e("./cs.json"),d=a.interopDefault(u),f=e("./es.json"),h=a.interopDefault(f),m=e("./fa.json"),g=a.interopDefault(m),v=e("./fr.json"),y=a.interopDefault(v),b=e("./id.json"),x=a.interopDefault(b),w=e("./ru.json"),j=a.interopDefault(w);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":i.default,"zh-tw":l.default,pl:p.default,cs:d.default,es:h.default,fa:g.default,fr:y.default,id:x.default,ru:j.default},this.update(e.option.i18n)}init(){const e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,o.mergeDeep)(this.languages,e),this.init()}}},{"../utils":"71aH7","./zh-cn.json":"lNQi5","./zh-tw.json":"eRpom","./pl.json":"iEpPa","./cs.json":"dBgp3","./es.json":"dNIrL","./fa.json":"7Plhe","./fr.json":"kGNjI","./id.json":"6MQTw","./ru.json":"7LASr","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],lNQi5:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"统计信息","Close":"关闭","Video Load Failed":"加载失败","Volume":"音量","Play":"播放","Pause":"暂停","Rate":"速度","Mute":"静音","Video Flip":"画面翻转","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置","Screenshot":"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例","Default":"默认","Normal":"正常","Open":"打开","Switch Video":"切换","Switch Subtitle":"切换字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放","AirPlay":"隔空播放","AirPlay Not Available":"隔空播放不可用"}')},{}],eRpom:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"統計訊息","Close":"關閉","Video Load Failed":"載入失敗","Volume":"音量","Play":"播放","Pause":"暫停","Rate":"速度","Mute":"靜音","Video Flip":"畫面翻轉","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新連接","Show Setting":"顯示设置","Hide Setting":"隱藏设置","Screenshot":"截圖","Play Speed":"播放速度","Aspect Ratio":"畫面比例","Default":"默認","Normal":"正常","Open":"打開","Switch Video":"切換","Switch Subtitle":"切換字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"網頁全屏","Exit Web Fullscreen":"退出網頁全屏","Mini Player":"迷你播放器","PIP Mode":"開啟畫中畫","Exit PIP Mode":"退出畫中畫","PIP Not Supported":"不支持畫中畫","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳轉播放","AirPlay":"隔空播放","AirPlay Not Available":"隔空播放不可用"}')},{}],iEpPa:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informacje o wideo","Close":"Zamknij","Video Load Failed":"Błąd ładowania wideo","Volume":"Głośność","Play":"Odtwórz","Pause":"Wstrzymaj","Rate":"Oceń","Mute":"Wycisz","Video Flip":"Rotacja wideo","Horizontal":"Pozioma","Vertical":"Pionowa","Reconnect":"Połącz ponownie","Show Setting":"Pokaż ustawienia","Hide Setting":"Ukryj ustawienia","Screenshot":"Zrzut ekranu","Play Speed":"Prędkość odtwarzania","Aspect Ratio":"Współczynnik proporcji","Default":"Domyślny","Normal":"Normalny","Open":"Otwórz","Switch Video":"Przełącz wideo","Switch Subtitle":"Przełącz napisy","Fullscreen":"Pełny ekran","Exit Fullscreen":"Zamknij pełny ekran","Web Fullscreen":"Tryb pełnej strony","Exit Web Fullscreen":"Zamknij tryb pełnej strony","Mini Player":"Miniodtwarzacz","PIP Mode":"Tryb PiP","Exit PIP Mode":"Zamknij tryb PiP","PIP Not Supported":"Tryb PiP nieobsługiwany","Fullscreen Not Supported":"Pełny ekran nieobsługiwany","Subtitle Offset":"Przesunięcie napisów","Last Seen":"Ostatnio widziany","Jump Play":"Skocz do gry","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay nie jest dostępny"}')},{}],dBgp3:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Info o videu","Close":"Zavřít","Video Load Failed":"Nahrání videa selhalo","Volume":"Hlasitost","Play":"Přehrát","Pause":"Pozastavit","Rate":"Hodnocení","Mute":"Ztlumit","Video Flip":"Otočit video","Horizontal":"Horizontálně","Vertical":"Vertikálně","Reconnect":"Opětovné připojení","Show Setting":"Zobrazit nastavení","Hide Setting":"Skrýt nastavení","Screenshot":"Snímek obrazovky","Play Speed":"Rychlost přehrávání","Aspect Ratio":"Poměr stran","Default":"Výchozí","Normal":"Normální","Open":"Otevřít","Switch Video":"Přepnout video","Switch Subtitle":"Přepnout titulky","Fullscreen":"Celá obrazovka","Exit Fullscreen":"Opustit režim celé obrazovky","Web Fullscreen":"Celá stránka","Exit Web Fullscreen":"Zavřít režim celé stránky","Mini Player":"Mini přehrávač","PIP Mode":"Režim PIP","Exit PIP Mode":"Opustit režim PIP","PIP Not Supported":"Režim PIP není podporován","Fullscreen Not Supported":"Režim celé obrazovky není podporován","Subtitle Offset":"Posun titulků","Last Seen":"Naposledy viděn","Jump Play":"Hra na skok","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay není k dispozici"}')},{}],dNIrL:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Información del video","Close":"Cerrar","Video Load Failed":"Falló carga de video","Volume":"Volumen","Play":"Reproduciendo","Pause":"Pausa","Rate":"Velocidad","Mute":"Silencio","Video Flip":"Rotar video","Horizontal":"Horizontal","Vertical":"Vertical","Reconnect":"Reconectando","Show Setting":"Mostrar ajustes","Hide Setting":"Ocultar ajustes","Screenshot":"Captura de Pantalla","Play Speed":"Velocidad de reproducción","Aspect Ratio":"Relación de aspecto","Default":"Por defecto","Normal":"Normal","Open":"Abrir","Switch Video":"Cambiar video","Switch Subtitle":"Cambiar subtítulo","Fullscreen":"Pantalla completa","Exit Fullscreen":"Salir de Pantalla completa","Web Fullscreen":"Pantalla completa Web","Exit Web Fullscreen":"Salir de Pantalla completa","Mini Player":"Mini reproductor","PIP Mode":"Modo PiP","Exit PIP Mode":"Cerrar modo PiP","PIP Not Supported":"Modo PiP no compatible","Fullscreen Not Supported":"Pantalla completa no soportada","Subtitle Offset":"Ajuste subtítulo","Last Seen":"Visto última vez","Jump Play":"Saltar","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay no disponible"}')},{}],"7Plhe":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"اطلاعات ویدیو","Close":"بستن","Video Load Failed":"بارگذاری ناموفق","Play":"پخش","Volume":"میزان صدا","Pause":"توقف","Rate":"نرخ","Mute":"سکوت","Video Flip":"چرخش تصویر","Horizontal":"افقی","Vertical":"عمودی","Reconnect":"اتصال مجدد","Show Setting":"تنظیمات","Hide Setting":"بستن تنظیمات","Screenshot":"عکس از صفحه","Play Speed":"سرعت پخش","Aspect Ratio":"نسبت تصویر","Default":"حالت پیشفرض","Normal":" حالت عادی","Open":"بازکردن","Switch Video":"تغییر ویدیو","Switch Subtitle":"نغییر زیرنویس","Fullscreen":"تمام صفحه","Exit Fullscreen":"کوچک کردن","Web Fullscreen":"حالت تئاتر","Exit Web Fullscreen":"خروج از حالت تئاتر","Mini Player":"حالت پخش کوچک","PIP Mode":" مینی پلیر","Exit PIP Mode":"خروج از مینی پلیر","PIP Not Supported":"عدم پشتیبانی از مینی پلیر","Fullscreen Not Supported":"عدم پشتیبانی از حالت تمام صفحه","Subtitle Offset":"افست زیرنویس","Last Seen":"آخرین بازدید","Jump Play":"جامپ پلی","AirPlay":"ایر پلی","AirPlay Not Available":"عدم پشتیبانی از ایرپلی"}')},{}],kGNjI:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informations de la vidéo","Close":"Fermer","Video Load Failed":"Téléchargement de la vidéo échoué","Volume":"Volume","Play":"Lire","Pause":"Pause","Rate":"Vitesse","Mute":"Muet","Video Flip":"Rotation de la vidéo","Horizontal":"Horizontal","Vertical":"Vertical","Reconnect":"Reconnexion","Show Setting":"Afficher les paramètres","Hide Setting":"Cacher les paramètres","Screenshot":"Capture d\'écran","Play Speed":"Vitesse de lecture","Aspect Ratio":"Rapport d\'aspect","Default":"Défaut","Normal":"Normal","Open":"Ouvrir","Switch Video":"Basculer la vidéo","Switch Subtitle":"Basculer le sous-titre","Fullscreen":"Plein écran","Exit Fullscreen":"Quitter le plein écran","Web Fullscreen":"Plein écran Web","Exit Web Fullscreen":"Quitter le plein écran Web","Mini Player":"Mini lecteur","PIP Mode":"Mode PiP","Exit PIP Mode":"Fermer le mode PiP","PIP Not Supported":"Mode PiP non supporté","Fullscreen Not Supported":"Plein écran non supporté","Subtitle Offset":"Réglage des sous-titres","Last Seen":"Dernière position","Jump Play":"Continuer","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay non disponible"}')},{}],"6MQTw":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informasi Video","Close":"Tutup","Video Load Failed":"Gagal Memuat Video","Volume":"Volume","Play":"Putar","Pause":"Jeda","Rate":"Kecepatan","Mute":"Senyap","Video Flip":"Memutar Video","Horizontal":"Horizontal","Vertical":"Vertikal","Reconnect":"Menyambung Kembali","Show Setting":"Tampilkan Pengaturan","Hide Setting":"Sembunyikan Pengaturan","Screenshot":"Tangkapan Layar","Play Speed":"Kecepatan Putar","Aspect Ratio":"Rasio Aspek","Default":"Default","Normal":"Normal","Open":"Buka","Switch Video":"Ganti Video","Switch Subtitle":"Ganti Subtitle","Fullscreen":"Layar Penuh","Exit Fullscreen":"Keluar dari Layar Penuh","Web Fullscreen":"Layar Penuh Web","Exit Web Fullscreen":"Keluar dari Layar Penuh Web","Mini Player":"Pemutar Mini","PIP Mode":"Mode PIP","Exit PIP Mode":"Keluar dari Mode PIP","PIP Not Supported":"PIP Tidak Didukung","Fullscreen Not Supported":"Layar Penuh Tidak Didukung","Subtitle Offset":"Pergeseran Subtitle","Last Seen":"Terakhir Dilihat","Jump Play":"Lompat Putar","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay Tidak Tersedia"}')},{}],"7LASr":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Информация","Close":"Закрыть","Video Load Failed":"Ошибка загрузки видео","Volume":"Громкость","Play":"Играть","Pause":"Пауза","Rate":"Скорость","Mute":"Заглушить","Video Flip":"Развернуть видео","Horizontal":"Горизонтально","Vertical":"Вертикально","Reconnect":"Переподключенине","Show Setting":"Показать настройки","Hide Setting":"Скрыть настройки","Screenshot":"Скриншот","Play Speed":"Скорость воспроизведения","Aspect Ratio":"Соотношение сторон","Default":"По-умолчанию","Normal":"Нормальный","Open":"Открыть","Switch Video":"Переключить видео","Switch Subtitle":"Переключить субтитры","Fullscreen":"Полноэкранный режим","Exit Fullscreen":"Выход из полноэкранного режима","Web Fullscreen":"На все окно браузера","Exit Web Fullscreen":"Выход из режима полного окна","Mini Player":"Мини проигрыватель","PIP Mode":"Картинка в картинке","Exit PIP Mode":"Закрыть картинку в картинке","PIP Not Supported":"Картинка в картинке не поддерживается","Fullscreen Not Supported":"Полноэкранный режим не поддерживается","Subtitle Offset":"Настройка субтитров","Last Seen":"Последнее просмотренное","Jump Play":"Перейти","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay недоступен"}')},{}],a90nx:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("./urlMix"),n=a.interopDefault(o),i=e("./attrMix"),s=a.interopDefault(i),l=e("./playMix"),c=a.interopDefault(l),p=e("./pauseMix"),u=a.interopDefault(p),d=e("./toggleMix"),f=a.interopDefault(d),h=e("./seekMix"),m=a.interopDefault(h),g=e("./volumeMix"),v=a.interopDefault(g),y=e("./currentTimeMix"),b=a.interopDefault(y),x=e("./durationMix"),w=a.interopDefault(x),j=e("./switchMix"),k=a.interopDefault(j),S=e("./playbackRateMix"),I=a.interopDefault(S),P=e("./aspectRatioMix"),C=a.interopDefault(P),$=e("./screenshotMix"),T=a.interopDefault($),M=e("./fullscreenMix"),E=a.interopDefault(M),F=e("./fullscreenWebMix"),z=a.interopDefault(F),A=e("./pipMix"),H=a.interopDefault(A),D=e("./loadedMix"),R=a.interopDefault(D),O=e("./playedMix"),V=a.interopDefault(O),L=e("./playingMix"),N=a.interopDefault(L),Y=e("./autoSizeMix"),W=a.interopDefault(Y),_=e("./rectMix"),q=a.interopDefault(_),B=e("./flipMix"),U=a.interopDefault(B),G=e("./miniMix"),K=a.interopDefault(G),Z=e("./loopMix"),J=a.interopDefault(Z),X=e("./posterMix"),Q=a.interopDefault(X),ee=e("./autoHeightMix"),te=a.interopDefault(ee),re=e("./cssVarMix"),ae=a.interopDefault(re),oe=e("./themeMix"),ne=a.interopDefault(oe),ie=e("./titleMix"),se=a.interopDefault(ie),le=e("./typeMix"),ce=a.interopDefault(le),pe=e("./normalSizeMix"),ue=a.interopDefault(pe),de=e("./subtitleOffsetMix"),fe=a.interopDefault(de),he=e("./airplayMix"),me=a.interopDefault(he),ge=e("./optionInit"),ve=a.interopDefault(ge),ye=e("./eventInit"),be=a.interopDefault(ye);r.default=class{constructor(e){(0,n.default)(e),(0,s.default)(e),(0,c.default)(e),(0,u.default)(e),(0,f.default)(e),(0,m.default)(e),(0,v.default)(e),(0,b.default)(e),(0,w.default)(e),(0,k.default)(e),(0,I.default)(e),(0,C.default)(e),(0,T.default)(e),(0,E.default)(e),(0,z.default)(e),(0,H.default)(e),(0,R.default)(e),(0,V.default)(e),(0,N.default)(e),(0,W.default)(e),(0,q.default)(e),(0,U.default)(e),(0,K.default)(e),(0,J.default)(e),(0,Q.default)(e),(0,te.default)(e),(0,ae.default)(e),(0,ne.default)(e),(0,se.default)(e),(0,ce.default)(e),(0,ue.default)(e),(0,fe.default)(e),(0,me.default)(e),(0,be.default)(e),(0,ve.default)(e)}}},{"./urlMix":"kQoac","./attrMix":"deCma","./playMix":"fOJuP","./pauseMix":"fzHAy","./toggleMix":"cBHxQ","./seekMix":"koAPr","./volumeMix":"6eyuR","./currentTimeMix":"faaWv","./durationMix":"5y91K","./switchMix":"iceD8","./playbackRateMix":"keKwh","./aspectRatioMix":"jihET","./screenshotMix":"36kPY","./fullscreenMix":"2GYOJ","./fullscreenWebMix":"5aYAP","./pipMix":"7EnIB","./loadedMix":"3N9mP","./playedMix":"et96R","./playingMix":"9DzzM","./autoSizeMix":"i1LDY","./rectMix":"IqARI","./flipMix":"7E7Vs","./miniMix":"gpugx","./loopMix":"f1hVG","./posterMix":"1SuFS","./autoHeightMix":"8x4te","./cssVarMix":"1CaTA","./themeMix":"2FqhO","./titleMix":"7Am53","./typeMix":"1fQQs","./normalSizeMix":"ePkBr","./subtitleOffsetMix":"6vlBV","./airplayMix":"eftqT","./optionInit":"fCWZK","./eventInit":"f8Lv3","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],kQoac:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,template:{$video:r}}=e;(0,a.def)(e,"url",{get:()=>r.currentSrc,async set(o){if(o){const n=t.type||(0,a.getExt)(o),i=t.customType[n];n&&i?(await(0,a.sleep)(),e.loading.show=!0,i.call(e,r,o,e)):(e.url&&e.url!==o&&e.once("video:canplay",(()=>{e.isReady&&e.emit("restart")})),r.src=o,e.option.url=o,e.emit("url",o))}else await(0,a.sleep)(),e.loading.show=!0}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],deCma:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{template:{$video:t}}=e;(0,a.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],fOJuP:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:o,constructor:{instances:n},template:{$video:i}}=e;(0,a.def)(e,"play",{value:async function(){const a=await i.play();if(r.show=t.get("Play"),e.emit("play"),o.mutex)for(let t=0;te.playing?e.pause():e.play()})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],koAPr:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{notice:t}=e;(0,a.def)(e,"seek",{set(r){e.currentTime=r,e.emit("seek",e.currentTime),e.duration&&(t.show=`${(0,a.secondToTime)(e.currentTime)} / ${(0,a.secondToTime)(e.duration)}`)}}),(0,a.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,a.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"6eyuR":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:o,storage:n}=e;(0,a.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,a.clamp)(e,0,1),o.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&n.set("volume",t.volume)}}),(0,a.def)(e,"muted",{get:()=>t.muted,set:e=>{t.muted=e}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],faaWv:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,a.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{r=parseFloat(r),Number.isNaN(r)||(t.currentTime=(0,a.clamp)(r,0,e.duration))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5y91K":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){(0,a.def)(e,"duration",{get:()=>{const{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],iceD8:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,option:r,notice:o}=e;function n(a,n,i){return new Promise((s=>{if(a===e.url)return s(a);const{playing:l}=e;e.pause(),URL.revokeObjectURL(e.url),e.url=a,e.once("video:canplay",(()=>{e.playbackRate=!1,e.aspectRatio=!1,e.flip="normal",e.autoSize=r.autoSize,e.currentTime=i,e.notice.show="",l&&e.play(),n&&(o.show=`${t.get("Switch Video")}: ${n}`),s(a)}))}))}(0,a.def)(e,"switchQuality",{value:(t,r)=>n(t,r,e.currentTime)}),(0,a.def)(e,"switchUrl",{value:(e,t)=>n(e,t,0)})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],keKwh:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:o}=e;(0,a.def)(e,"playbackRate",{get:()=>t.playbackRate,set(a){if(a){if(a===t.playbackRate)return;t.playbackRate=a,o.show=`${r.get("Rate")}: ${1===a?r.get("Normal"):`${a}x`}`}else e.playbackRate=1}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jihET:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{template:{$video:t,$player:r},i18n:o,notice:n}=e;(0,a.def)(e,"aspectRatio",{get:()=>r.dataset.aspectRatio||"default",set(i){if(i||(i="default"),"default"===i)(0,a.setStyle)(t,"width",null),(0,a.setStyle)(t,"height",null),(0,a.setStyle)(t,"padding",null),delete r.dataset.aspectRatio;else{const e=i.split(":").map(Number),{videoWidth:o,videoHeight:n}=t,{clientWidth:s,clientHeight:l}=r,c=o/n,p=e[0]/e[1];if(c>p){const e=p*n/o;(0,a.setStyle)(t,"width",100*e+"%"),(0,a.setStyle)(t,"height","100%"),(0,a.setStyle)(t,"padding",`0 ${(s-s*e)/2}px`)}else{const e=o/p/n;(0,a.setStyle)(t,"width","100%"),(0,a.setStyle)(t,"height",100*e+"%"),(0,a.setStyle)(t,"padding",(l-l*e)/2+"px 0")}r.dataset.aspectRatio=i}n.show=`${o.get("Aspect Ratio")}: ${"default"===i?o.get("Default"):i}`,e.emit("aspectRatio",i)}}),(0,a.def)(e,"aspectRatioReset",{set(t){if(t){const{aspectRatio:t}=e;e.aspectRatio=t}}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"36kPY":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,notice:r,template:{$video:o}}=e,n=(0,a.createElement)("canvas");(0,a.def)(e,"getDataURL",{value:()=>new Promise(((e,t)=>{try{n.width=o.videoWidth,n.height=o.videoHeight,n.getContext("2d").drawImage(o,0,0),e(n.toDataURL("image/png"))}catch(e){r.show=e,t(e)}}))}),(0,a.def)(e,"getBlobUrl",{value:()=>new Promise(((e,t)=>{try{n.width=o.videoWidth,n.height=o.videoHeight,n.getContext("2d").drawImage(o,0,0),n.toBlob((t=>{e(URL.createObjectURL(t))}))}catch(e){r.show=e,t(e)}}))}),(0,a.def)(e,"screenshot",{value:async()=>{const r=await e.getDataURL();return(0,a.download)(r,`${t.title||"artplayer"}_${(0,a.secondToTime)(o.currentTime)}.png`),e.emit("screenshot",r),r}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"2GYOJ":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../libs/screenfull"),n=a.interopDefault(o),i=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:a,$player:o}}=e;e.once("video:loadedmetadata",(()=>{n.default.isEnabled?(e=>{n.default.on("change",(()=>{e.emit("fullscreen",n.default.isFullscreen)})),(0,i.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(t){t?(e.normalSize="fullscreen",e.aspectRatioReset=!0,e.autoSize=!1,await n.default.request(o),(0,i.addClass)(o,"art-fullscreen"),e.emit("resize"),r.show=""):(e.aspectRatioReset=!0,e.autoSize=e.option.autoSize,await n.default.exit(),(0,i.removeClass)(o,"art-fullscreen"),e.emit("resize"),r.show="")}})})(e):document.fullscreenEnabled||a.webkitSupportsFullscreen?(e=>{(0,i.def)(e,"fullscreen",{get:()=>a.webkitDisplayingFullscreen,set(t){t?(e.normalSize="fullscreen",a.webkitEnterFullscreen(),e.emit("fullscreen",!0),r.show=""):(a.webkitExitFullscreen(),e.emit("fullscreen",!1),r.show="")}})})(e):(0,i.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,i.def)(e,"fullscreen",(0,i.get)(e,"fullscreen"))}))}},{"../libs/screenfull":"8v40z","../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"8v40z":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);const a=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],o=(()=>{if("undefined"==typeof document)return!1;const e=a[0],t={};for(const r of a){if(r[1]in document){for(const[a,o]of r.entries())t[e[a]]=o;return t}}return!1})(),n={change:o.fullscreenchange,error:o.fullscreenerror};let i={request:(e=document.documentElement,t)=>new Promise(((r,a)=>{const n=()=>{i.off("change",n),r()};i.on("change",n);const s=e[o.requestFullscreen](t);s instanceof Promise&&s.then(n).catch(a)})),exit:()=>new Promise(((e,t)=>{if(!i.isFullscreen)return void e();const r=()=>{i.off("change",r),e()};i.on("change",r);const a=document[o.exitFullscreen]();a instanceof Promise&&a.then(r).catch(t)})),toggle:(e,t)=>i.isFullscreen?i.exit():i.request(e,t),onchange(e){i.on("change",e)},onerror(e){i.on("error",e)},on(e,t){const r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){const r=n[e];r&&document.removeEventListener(r,t,!1)},raw:o};Object.defineProperties(i,{isFullscreen:{get:()=>Boolean(document[o.fullscreenElement])},element:{enumerable:!0,get:()=>document[o.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>Boolean(document[o.fullscreenEnabled])}}),o||(i={isEnabled:!1}),r.default=i},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5aYAP":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{notice:t,constructor:r,template:{$container:o,$player:n}}=e;(0,a.def)(e,"fullscreenWeb",{get:()=>(0,a.hasClass)(n,"art-fullscreen-web"),set(i){i?(r.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(document.body,n),e.normalSize="fullscreenWeb",(0,a.addClass)(n,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=!1,e.emit("resize"),e.emit("fullscreenWeb",!0),t.show=""):(r.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(o,n),(0,a.removeClass)(n,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=e.option.autoSize,e.emit("resize"),e.emit("fullscreenWeb",!1),t.show="")}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"7EnIB":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:o}}=e;document.pictureInPictureEnabled?function(e){const{template:{$video:t},proxy:r,notice:o}=e;t.disablePictureInPicture=!1,(0,a.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.normalSize="pip",t.requestPictureInPicture().catch((e=>{throw o.show=e,e}))):document.exitPictureInPicture().catch((e=>{throw o.show=e,e}))}}),r(t,"enterpictureinpicture",(()=>{e.emit("pip",!0)})),r(t,"leavepictureinpicture",(()=>{e.emit("pip",!1)}))}(e):o.webkitSupportsPresentationMode?function(e){const{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,a.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.normalSize="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}(e):(0,a.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"3N9mP":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,a.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,a.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],et96R:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){(0,a.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9DzzM":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,a.def)(e,"playing",{get:()=>!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],i1LDY:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{$container:t,$player:r,$video:o}=e.template;(0,a.def)(e,"autoSize",{get:()=>(0,a.hasClass)(t,"art-auto-size"),set(n){if(n){const{videoWidth:n,videoHeight:i}=o,{width:s,height:l}=t.getBoundingClientRect(),c=n/i,p=s/l;if((0,a.addClass)(t,"art-auto-size"),p>c){const e=l*c/s*100;(0,a.setStyle)(r,"width",`${e}%`),(0,a.setStyle)(r,"height","100%")}else{const e=s/c/l*100;(0,a.setStyle)(r,"width","100%"),(0,a.setStyle)(r,"height",`${e}%`)}e.emit("autoSize",{width:e.width,height:e.height})}else(0,a.removeClass)(t,"art-auto-size"),(0,a.setStyle)(r,"width",null),(0,a.setStyle)(r,"height",null),e.emit("autoSize")}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],IqARI:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){(0,a.def)(e,"rect",{get:()=>e.template.$player.getBoundingClientRect()});const t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[o]})}(0,a.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,a.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"7E7Vs":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{template:{$player:t},i18n:r,notice:o}=e;(0,a.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(n){n||(n="normal"),"normal"===n?delete t.dataset.flip:t.dataset.flip=n,o.show=`${r.get("Video Flip")}: ${r.get((0,a.capitalize)(n))}`,e.emit("flip",n)}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],gpugx:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{icons:t,proxy:r,storage:o,template:{$player:n,$video:i}}=e;let s=!1,l=0,c=0;function p(){const{$mini:t}=e.template;t&&((0,a.removeClass)(n,"art-mini"),(0,a.setStyle)(t,"display","none"),n.prepend(i),e.emit("mini",!1))}function u(t,r){e.playing?((0,a.setStyle)(t,"display","none"),(0,a.setStyle)(r,"display","flex")):((0,a.setStyle)(t,"display","flex"),(0,a.setStyle)(r,"display","none"))}function d(){const{$mini:t}=e.template,r=t.getBoundingClientRect(),n=window.innerHeight-r.height-50,i=window.innerWidth-r.width-50;o.set("top",n),o.set("left",i),(0,a.setStyle)(t,"top",`${n}px`),(0,a.setStyle)(t,"left",`${i}px`)}(0,a.def)(e,"mini",{get:()=>(0,a.hasClass)(n,"art-mini"),set(f){if(f){(0,a.addClass)(n,"art-mini");const f=function(){const{$mini:n}=e.template;if(n)return(0,a.append)(n,i),(0,a.setStyle)(n,"display","flex");{const n=(0,a.createElement)("div");(0,a.addClass)(n,"art-mini-popup"),(0,a.append)(document.body,n),e.template.$mini=n,(0,a.append)(n,i);const d=(0,a.append)(n,'
');(0,a.append)(d,t.close),r(d,"click",p);const f=(0,a.append)(n,'
'),h=(0,a.append)(f,t.play),m=(0,a.append)(f,t.pause);return r(h,"click",(()=>e.play())),r(m,"click",(()=>e.pause())),u(h,m),e.on("video:playing",(()=>u(h,m))),e.on("video:pause",(()=>u(h,m))),e.on("video:timeupdate",(()=>u(h,m))),r(n,"mousedown",(e=>{s=0===e.button,l=e.pageX,c=e.pageY})),e.on("document:mousemove",(e=>{if(s){(0,a.addClass)(n,"art-mini-droging");const t=e.pageX-l,r=e.pageY-c;(0,a.setStyle)(n,"transform",`translate(${t}px, ${r}px)`)}})),e.on("document:mouseup",(()=>{if(s){s=!1,(0,a.removeClass)(n,"art-mini-droging");const e=n.getBoundingClientRect();o.set("left",e.left),o.set("top",e.top),(0,a.setStyle)(n,"left",`${e.left}px`),(0,a.setStyle)(n,"top",`${e.top}px`),(0,a.setStyle)(n,"transform",null)}})),n}}(),h=o.get("top"),m=o.get("left");h&&m?((0,a.setStyle)(f,"top",`${h}px`),(0,a.setStyle)(f,"left",`${m}px`),(0,a.isInViewport)(f)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],f1hVG:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){let t=[];(0,a.def)(e,"loop",{get:()=>t,set:r=>{if(Array.isArray(r)&&"number"==typeof r[0]&&"number"==typeof r[1]){const o=(0,a.clamp)(r[0],0,Math.min(r[1],e.duration)),n=(0,a.clamp)(r[1],o,e.duration);t=n-o>=1?[o,n]:[]}else t=[];e.emit("loop",t)}}),e.on("video:timeupdate",(()=>{t.length&&(e.currentTimet[1])&&(e.seek=t[0])}))}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"1SuFS":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,template:{$poster:r}}=e;(0,a.def)(e,"poster",{get:()=>t.poster,set(e){t.poster=e,(0,a.setStyle)(r,"backgroundImage",`url(${e})`)}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"8x4te":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,template:{$container:r,$video:o}}=e,n=r.style.height;(0,a.def)(e,"autoHeight",{get:()=>(0,a.hasClass)(r,"art-auto-height"),set(i){if(i){const{clientWidth:n}=r,{videoHeight:i,videoWidth:s}=o,l=i*(n/s);(0,a.setStyle)(r,"height",l+"px"),(0,a.addClass)(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight",l)}else(0,a.setStyle)(r,"height",n),(0,a.removeClass)(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight")}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"1CaTA":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{$player:t}=e.template;(0,a.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"2FqhO":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t}=e;(0,a.def)(e,"theme",{get:()=>e.cssProperty("--art-theme"),set(r){t.theme=r,e.cssProperty("--art-theme",r)}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"7Am53":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){(0,a.def)(e,"title",{get:()=>e.option.title,set(t){e.option.title=t}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"1fQQs":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){(0,a.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],ePkBr:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const t=["mini","pip","fullscreen","fullscreenWeb"];(0,a.def)(e,"normalSize",{get:()=>t.every((t=>!e[t])),set(r){t.filter((e=>e!==r)).forEach((t=>{e[t]&&(e[t]=!1)}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"6vlBV":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{clamp:t}=e.constructor.utils,{notice:r,template:o,i18n:n}=e;let i=0,s=[];e.on("subtitle:switch",(()=>{s=[]})),(0,a.def)(e,"subtitleOffset",{get:()=>i,set(a){if(o.$track&&o.$track.track){const l=Array.from(o.$track.track.cues);i=t(a,-5,5);for(let r=0;r{switch(e.availability){case"available":i=!0;break;case"not-available":i=!1}})):i=!1,(0,a.def)(e,"airplay",{value(){i?(n.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],fCWZK:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,storage:r,template:{$video:o,$poster:n}}=e;for(const r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(o.volume=(0,a.clamp)(t.volume,0,1));const i=r.get("volume");"number"==typeof i&&(o.volume=(0,a.clamp)(i,0,1)),t.poster&&(0,a.setStyle)(n,"backgroundImage",`url(${t.poster})`),t.autoplay&&(o.autoplay=t.autoplay),t.playsInline&&(o.playsInline=!0,o["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme);for(const r in t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],f8Lv3:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../config"),n=a.interopDefault(o),i=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:a,constructor:o,proxy:s,template:{$player:l,$video:c,$poster:p}}=e;let u=0;for(let t=0;t{e.emit(`video:${t.type}`,t)}));e.on("video:canplay",(()=>{u=0,e.loading.show=!1})),e.once("video:canplay",(()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")})),e.on("video:ended",(()=>{a.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)})),e.on("video:error",(async n=>{u{e.autoSize=a.autoSize,i.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)})),e.on("video:loadstart",(()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0})),e.on("video:pause",(()=>{e.controls.show=!0,e.mask.show=!0})),e.on("video:play",(()=>{e.mask.show=!1,(0,i.setStyle)(p,"display","none")})),e.on("video:playing",(()=>{e.mask.show=!1})),e.on("video:seeked",(()=>{e.loading.show=!1})),e.on("video:seeking",(()=>{e.loading.show=!0,e.mask.show=!1})),e.on("video:timeupdate",(()=>{e.mask.show=!1})),e.on("video:waiting",(()=>{e.loading.show=!0,e.mask.show=!1}))}},{"../config":"lyjeQ","../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"8Z0Uf":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils"),n=e("../utils/component"),i=a.interopDefault(n),s=e("./fullscreen"),l=a.interopDefault(s),c=e("./fullscreenWeb"),p=a.interopDefault(c),u=e("./pip"),d=a.interopDefault(u),f=e("./playAndPause"),h=a.interopDefault(f),m=e("./progress"),g=a.interopDefault(m),v=e("./time"),y=a.interopDefault(v),b=e("./volume"),x=a.interopDefault(b),w=e("./setting"),j=a.interopDefault(w),k=e("./thumbnails"),S=a.interopDefault(k),I=e("./screenshot"),P=a.interopDefault(I),C=e("./quality"),$=a.interopDefault(C),T=e("./loop"),M=a.interopDefault(T),E=e("./airplay"),F=a.interopDefault(E);class z extends i.default{constructor(e){super(e),this.name="control";const{proxy:t,constructor:r,template:{$player:a}}=e;let n=Date.now();t(a,["click","mousemove","touchstart","touchmove"],(()=>{this.show=!0,(0,o.removeClass)(a,"art-hide-cursor"),(0,o.addClass)(a,"art-hover"),n=Date.now()})),e.on("video:timeupdate",(()=>{!e.isInput&&e.playing&&this.show&&Date.now()-n>=r.CONTROL_HIDE_TIME&&(this.show=!1,(0,o.addClass)(a,"art-hide-cursor"),(0,o.removeClass)(a,"art-hover"))})),this.init()}init(){const{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),!e.thumbnails.url||e.isLive||o.isMobile||this.add((0,S.default)({name:"thumbnails",position:"top",index:20})),this.add((0,M.default)({name:"loop",position:"top",index:30})),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&this.add((0,$.default)({name:"quality",position:"right",index:10})),e.screenshot&&!o.isMobile&&this.add((0,P.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,d.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,F.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,p.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;tNumber(e.dataset.index)>=Number(i.dataset.index)));p?p.insertAdjacentElement("beforebegin",i):(0,o.append)(this.$parent,i),t.html&&(0,o.append)(i,t.html),t.style&&(0,o.setStyles)(i,t.style),t.tooltip&&(0,o.tooltip)(i,t.tooltip);const u=[];if(t.click){const e=this.art.events.proxy(i,"click",(e=>{e.preventDefault(),t.click.call(this.art,this,e)}));u.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.addSelector(t,i,u),this[r]=i,this.cache.set(r,{$ref:i,events:u,option:t}),t.mounted&&t.mounted.call(this.art,i),i}addSelector(e,t,r){const{hover:a,proxy:n}=this.art.events;(0,o.addClass)(t,"art-control-selector");const i=(0,o.createElement)("div");(0,o.addClass)(i,"art-selector-value"),(0,o.append)(i,e.html),t.innerText="",(0,o.append)(t,i);const s=e.selector.map(((e,t)=>`
${e.html}
`)).join(""),l=(0,o.createElement)("div");(0,o.addClass)(l,"art-selector-list"),(0,o.append)(l,s),(0,o.append)(t,l);const c=()=>{const e=(0,o.getStyle)(t,"width")/2-(0,o.getStyle)(l,"width")/2;l.style.left=`${e}px`};a(t,c);const p=n(l,"click",(async t=>{const r=(t.composedPath()||[]).find((e=>(0,o.hasClass)(e,"art-selector-item")));if(!r)return;(0,o.inverseClass)(r,"art-current");const a=Number(r.dataset.index),n=e.selector[a]||{};if(i.innerText=r.innerText,e.onSelect){const a=await e.onSelect.call(this.art,n,r,t);(0,o.isStringOrNumber)(a)&&(i.innerHTML=a)}c()}));r.push(p)}remove(e){const t=this.cache.get(e);(0,n.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;e({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{const{proxy:r,icons:o,i18n:n}=t,i=(0,a.append)(e,o.fullscreenOn),s=(0,a.append)(e,o.fullscreenOff);(0,a.setStyle)(s,"display","none"),r(e,"click",(()=>{t.fullscreen=!t.fullscreen})),t.on("fullscreen",(t=>{t?((0,a.tooltip)(e,n.get("Exit Fullscreen")),(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(s,"display","inline-flex")):((0,a.tooltip)(e,n.get("Fullscreen")),(0,a.setStyle)(i,"display","inline-flex"),(0,a.setStyle)(s,"display","none"))}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"03jeB":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{const{proxy:r,icons:o,i18n:n}=t,i=(0,a.append)(e,o.fullscreenWebOn),s=(0,a.append)(e,o.fullscreenWebOff);(0,a.setStyle)(s,"display","none"),r(e,"click",(()=>{t.fullscreenWeb=!t.fullscreenWeb})),t.on("fullscreenWeb",(t=>{t?((0,a.tooltip)(e,n.get("Exit Web Fullscreen")),(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(s,"display","inline-flex")):((0,a.tooltip)(e,n.get("Web Fullscreen")),(0,a.setStyle)(i,"display","inline-flex"),(0,a.setStyle)(s,"display","none"))}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],u8l8e:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{const{proxy:r,icons:o,i18n:n}=t;(0,a.append)(e,o.pip),r(e,"click",(()=>{t.pip=!t.pip})),t.on("pip",(t=>{(0,a.tooltip)(e,n.get(t?"Exit PIP Mode":"PIP Mode"))}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],ebXtb:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const{proxy:r,icons:o,i18n:n}=t,i=(0,a.append)(e,o.play),s=(0,a.append)(e,o.pause);function l(){(0,a.setStyle)(i,"display","flex"),(0,a.setStyle)(s,"display","none")}function c(){(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(s,"display","flex")}(0,a.tooltip)(i,n.get("Play")),(0,a.tooltip)(s,n.get("Pause")),r(i,"click",(()=>{t.play()})),r(s,"click",(()=>{t.pause()})),t.playing?c():l(),t.on("video:playing",(()=>{c()})),t.on("video:pause",(()=>{l()}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],bgoVP:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"getPosFromEvent",(()=>n)),a.export(r,"setCurrentTime",(()=>i));var o=e("../utils");function n(e,t){const{$progress:r}=e.template,{left:a}=r.getBoundingClientRect(),n=o.isMobile?t.touches[0].clientX:t.pageX,i=(0,o.clamp)(n-a,0,r.clientWidth),s=i/r.clientWidth*e.duration;return{second:s,time:(0,o.secondToTime)(s),width:i,percentage:(0,o.clamp)(i/r.clientWidth,0,1)}}function i(e,t){if(e.isRotate){const r=t.touches[0].clientY/e.height,a=r*e.duration;e.emit("setBar","played",r),e.seek=a}else{const{second:r,percentage:a}=n(e,t);e.emit("setBar","played",a),e.seek=r}}r.default=function(e){return t=>{const{icons:r,option:a,proxy:s}=t;return{...e,html:'
',mounted:e=>{let l=!1;const c=(0,o.query)(".art-progress-hover",e),p=(0,o.query)(".art-progress-loaded",e),u=(0,o.query)(".art-progress-played",e),d=(0,o.query)(".art-progress-highlight",e),f=(0,o.query)(".art-progress-indicator",e),h=(0,o.query)(".art-progress-tip",e);function m(e,t){"loaded"===e&&(0,o.setStyle)(p,"width",100*t+"%"),"played"===e&&((0,o.setStyle)(u,"width",100*t+"%"),(0,o.setStyle)(f,"left",100*t+"%"))}r.indicator?(0,o.append)(f,r.indicator):(0,o.setStyle)(f,"backgroundColor","var(--art-theme)"),t.on("video:loadedmetadata",(()=>{for(let e=0;e`;(0,o.append)(d,i)}})),m("loaded",t.loaded),t.on("setBar",((e,t)=>{m(e,t)})),t.on("video:progress",(()=>{m("loaded",t.loaded)})),t.on("video:timeupdate",(()=>{m("played",t.played)})),t.on("video:ended",(()=>{m("played",1)})),o.isMobile||(s(e,"click",(e=>{e.target!==f&&i(t,e)})),s(e,"mousemove",(r=>{!function(e){const{width:r}=n(t,e);(0,o.setStyle)(c,"width",`${r}px`),(0,o.setStyle)(c,"display","flex")}(r),(0,o.setStyle)(h,"display","flex"),(0,o.includeFromEvent)(r,d)?function(r){const{width:a}=n(t,r),{text:i}=r.target.dataset;h.innerHTML=i;const s=h.clientWidth;a<=s/2?(0,o.setStyle)(h,"left",0):a>e.clientWidth-s/2?(0,o.setStyle)(h,"left",e.clientWidth-s+"px"):(0,o.setStyle)(h,"left",a-s/2+"px")}(r):function(r){const{width:a,time:i}=n(t,r);h.innerHTML=i;const s=h.clientWidth;a<=s/2?(0,o.setStyle)(h,"left",0):a>e.clientWidth-s/2?(0,o.setStyle)(h,"left",e.clientWidth-s+"px"):(0,o.setStyle)(h,"left",a-s/2+"px")}(r)})),s(e,"mouseleave",(()=>{(0,o.setStyle)(h,"display","none"),(0,o.setStyle)(c,"display","none")})),s(e,"mousedown",(e=>{l=0===e.button})),t.on("document:mousemove",(e=>{if(l){const{second:r,percentage:a}=n(t,e);m("played",a),t.seek=r}})),t.on("document:mouseup",(()=>{l&&(l=!1)})))}}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],ikc2j:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,style:{cursor:"auto",margin:"0 10px"},mounted:e=>{function r(){const r=`${(0,a.secondToTime)(t.currentTime)} / ${(0,a.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();const o=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;e({...e,mounted:e=>{const{proxy:r,icons:o}=t,n=(0,a.append)(e,o.volume),i=(0,a.append)(e,o.volumeClose),s=(0,a.append)(e,'
'),l=(0,a.append)(s,'
'),c=(0,a.append)(l,'
'),p=(0,a.append)(l,'
'),u=(0,a.append)(p,'
'),d=(0,a.append)(u,'
'),f=(0,a.append)(p,'
');function h(e){const{top:t,height:r}=p.getBoundingClientRect();return 1-(e.pageY-t)/r}function m(){if(t.muted||0===t.volume)(0,a.setStyle)(n,"display","none"),(0,a.setStyle)(i,"display","flex"),(0,a.setStyle)(f,"top","100%"),(0,a.setStyle)(d,"top","100%"),c.innerText=0;else{const e=100*t.volume;(0,a.setStyle)(n,"display","flex"),(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(f,"top",100-e+"%"),(0,a.setStyle)(d,"top",100-e+"%"),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(n,"click",(()=>{t.muted=!0})),r(i,"click",(()=>{t.muted=!1})),a.isMobile)(0,a.setStyle)(s,"display","none");else{let e=!1;r(p,"mousedown",(r=>{e=0===r.button,t.volume=h(r)})),t.on("document:mousemove",(r=>{e&&(t.muted=!1,t.volume=h(r))})),t.on("document:mouseup",(()=>{e&&(e=!1)}))}}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"03o9l":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{const{proxy:r,icons:o,i18n:n}=t;(0,a.append)(e,o.setting),r(e,"click",(()=>{t.setting.toggle(),t.setting.updateStyle()})),t.on("setting",(t=>{(0,a.tooltip)(e,n.get(t?"Hide Setting":"Show Setting"))}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],eCVx2:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils"),o=e("./progress");r.default=function(e){return t=>({...e,mounted:e=>{const{option:r,template:{$progress:n,$video:i},events:{proxy:s,loadImg:l}}=t;let c=null,p=!1,u=!1;s(n,"mousemove",(async s=>{if(!p){p=!0;const e=await l(r.thumbnails.url);c=e,u=!0}u&&((0,a.setStyle)(e,"display","flex"),function(s){const{width:l}=(0,o.getPosFromEvent)(t,s),{url:p,number:u,column:d,width:f,height:h}=r.thumbnails,m=f||c.naturalWidth/d,g=h||m/(i.videoWidth/i.videoHeight),v=n.clientWidth/u,y=Math.floor(l/v),b=Math.ceil(y/d)-1,x=y%d||d-1;(0,a.setStyle)(e,"backgroundImage",`url(${p})`),(0,a.setStyle)(e,"height",`${g}px`),(0,a.setStyle)(e,"width",`${m}px`),(0,a.setStyle)(e,"backgroundPosition",`-${x*m}px -${b*g}px`),l<=m/2?(0,a.setStyle)(e,"left",0):l>n.clientWidth-m/2?(0,a.setStyle)(e,"left",n.clientWidth-m+"px"):(0,a.setStyle)(e,"left",l-m/2+"px")}(s))})),s(n,"mouseleave",(()=>{(0,a.setStyle)(e,"display","none")})),t.on("hover",(t=>{t||(0,a.setStyle)(e,"display","none")}))}})}},{"../utils":"71aH7","./progress":"bgoVP","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4KCF5":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{const{proxy:r,icons:o}=t;(0,a.append)(e,o.screenshot),r(e,"click",(()=>{t.screenshot()}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],efgTY:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>{const r=t.option.quality,a=r.find((e=>e.default))||r[0];return{...e,style:{marginRight:"10px"},html:a?a.html:"",selector:r,onSelect(e){t.switchQuality(e.url,e.html)}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"2hIff":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const r=(0,a.append)(e,''),o=(0,a.append)(e,'');t.on("loop",(n=>{n&&n.length?((0,a.setStyle)(e,"display","flex"),(0,a.setStyle)(r,"left",`calc(${n[0]/t.duration*100}% - ${r.clientWidth}px)`),(0,a.setStyle)(o,"left",n[1]/t.duration*100+"%")):(0,a.setStyle)(e,"display","none")}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4IS2d":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{const{proxy:r,icons:o}=t;(0,a.append)(e,o.airplay),r(e,"click",(()=>t.airplay()))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"2KYsr":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils"),n=e("../utils/component"),i=a.interopDefault(n),s=e("./playbackRate"),l=a.interopDefault(s),c=e("./aspectRatio"),p=a.interopDefault(c),u=e("./flip"),d=a.interopDefault(u),f=e("./info"),h=a.interopDefault(f),m=e("./version"),g=a.interopDefault(m),v=e("./close"),y=a.interopDefault(v);class b extends i.default{constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,o.isMobile||this.init()}init(){const{option:e,proxy:t,template:{$player:r,$contextmenu:a}}=this.art;e.playbackRate&&this.add((0,l.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,p.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,d.default)({name:"flip",index:30})),this.add((0,h.default)({name:"info",index:40})),this.add((0,g.default)({name:"version",index:50})),this.add((0,y.default)({name:"close",index:60}));for(let t=0;t{if(e.preventDefault(),!this.art.constructor.CONTEXTMENU)return;this.show=!0;const t=e.clientX,n=e.clientY,{height:i,width:s,left:l,top:c}=r.getBoundingClientRect(),{height:p,width:u}=a.getBoundingClientRect();let d=t-l,f=n-c;t+u>l+s&&(d=s-u),n+p>c+i&&(f=i-p),(0,o.setStyles)(a,{top:`${f}px`,left:`${d}px`})})),t(r,"click",(e=>{(0,o.includeFromEvent)(e,a)||(this.show=!1)})),this.art.on("blur",(()=>{this.show=!1}))}}r.default=b},{"../utils":"71aH7","../utils/component":"18nVI","./playbackRate":"69eLi","./aspectRatio":"lUefg","./flip":"kysiM","./info":"gqIgJ","./version":"kRU7C","./close":"jQ8Pm","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"69eLi":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{PLAYBACK_RATE:o}}=t,n=o.map((e=>`${1===e?r.get("Normal"):e.toFixed(1)}`)).join("");return{...e,html:`${r.get("Play Speed")}: ${n}`,click:(e,r)=>{const{value:a}=r.target.dataset;a&&(t.playbackRate=Number(a),e.show=!1)},mounted:e=>{const r=(0,a.query)('[data-value="1"]',e);r&&(0,a.inverseClass)(r,"art-current"),t.on("video:ratechange",(()=>{const r=(0,a.queryAll)("span",e).find((e=>Number(e.dataset.value)===t.playbackRate));r&&(0,a.inverseClass)(r,"art-current")}))}}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],lUefg:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{ASPECT_RATIO:o}}=t,n=o.map((e=>`${"default"===e?r.get("Default"):e}`)).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${n}`,click:(e,r)=>{const{value:a}=r.target.dataset;a&&(t.aspectRatio=a,e.show=!1)},mounted:e=>{const r=(0,a.query)('[data-value="default"]',e);r&&(0,a.inverseClass)(r,"art-current"),t.on("aspectRatio",(t=>{const r=(0,a.queryAll)("span",e).find((e=>e.dataset.value===t));r&&(0,a.inverseClass)(r,"art-current")}))}}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],kysiM:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{FLIP:o}}=t,n=o.map((e=>`${r.get((0,a.capitalize)(e))}`)).join("");return{...e,html:`${r.get("Video Flip")}: ${n}`,click:(e,r)=>{const{value:a}=r.target.dataset;a&&(t.flip=a.toLowerCase(),e.show=!1)},mounted:e=>{const r=(0,a.query)('[data-value="normal"]',e);r&&(0,a.inverseClass)(r,"art-current"),t.on("flip",(t=>{const r=(0,a.queryAll)("span",e).find((e=>e.dataset.value===t));r&&(0,a.inverseClass)(r,"art-current")}))}}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],gqIgJ:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],kRU7C:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return{...e,html:'ArtPlayer 5.0.0'}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jQ8Pm:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"02ajl":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("./utils"),n=e("./utils/component"),i=a.interopDefault(n);class s extends i.default{constructor(e){super(e),this.name="info",o.isMobile||this.init()}init(){const{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:a,$video:n}}=this.art;e(a,"click",(()=>{this.show=!1}));let i=null;const s=(0,o.queryAll)("[data-video]",r)||[];this.art.on("destroy",(()=>{clearTimeout(i)})),function e(){for(let e=0;enull,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",(()=>{if(!this.url)return;const e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))}))}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video.textTracks[0]}get activeCue(){return this.textTrack.activeCues[0]}style(e,t){const{$subtitle:r}=this.art.template;return"object"==typeof e?(0,o.setStyles)(r,e):(0,o.setStyle)(r,e,t)}update(){const{$subtitle:e}=this.art.template;e.innerHTML="",this.activeCue&&(this.art.option.subtitle.escape?e.innerHTML=this.activeCue.text.split(/\r?\n/).map((e=>`

${(0,o.escape)(e)}

`)).join(""):e.innerHTML=this.activeCue.text,this.art.emit("subtitleUpdate",this.activeCue.text))}async switch(e,t={}){const{i18n:r,notice:a,option:o}=this.art,n={...o.subtitle,...t,url:e},i=await this.init(n);return t.name&&(a.show=`${r.get("Switch Subtitle")}: ${t.name}`),i}createTrack(e,t){const{template:r,proxy:a}=this.art,{$video:n,$track:i}=r,s=(0,o.createElement)("track");s.default=!0,s.kind=e,s.src=t,s.track.mode="hidden",this.eventDestroy(),(0,o.remove)(i),(0,o.append)(n,s),r.$track=s,this.eventDestroy=a(this.textTrack,"cuechange",(()=>this.update()))}async init(e){const{notice:t,template:{$subtitle:r}}=this.art;if((0,l.default)(e,p.default.subtitle),e.url)return this.style(e.style),fetch(e.url).then((e=>e.arrayBuffer())).then((t=>{const r=new TextDecoder(e.encoding).decode(t);switch(this.art.emit("subtitleLoad",e.url),e.type||(0,o.getExt)(e.url)){case"srt":{const t=(0,o.srtToVtt)(r),a=e.onVttLoad(t);return(0,o.vttToBlob)(a)}case"ass":{const t=(0,o.assToVtt)(r),a=e.onVttLoad(t);return(0,o.vttToBlob)(a)}case"vtt":{const t=e.onVttLoad(r);return(0,o.vttToBlob)(t)}default:return e.url}})).then((e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e),this.art.emit("subtitleSwitch",e)),e))).catch((e=>{throw t.show=e,e}))}}r.default=u},{"./utils":"71aH7","./utils/component":"18nVI","option-validator":"bAWi2","./scheme":"AKEiO","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jo4S1:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils/error"),n=e("./clickInit"),i=a.interopDefault(n),s=e("./hoverInit"),l=a.interopDefault(s),c=e("./moveInit"),p=a.interopDefault(c),u=e("./resizeInit"),d=a.interopDefault(u),f=e("./gestureInit"),h=a.interopDefault(f),m=e("./viewInit"),g=a.interopDefault(m),v=e("./documentInit"),y=a.interopDefault(v);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),e.whitelist.state&&((0,i.default)(e,this),(0,l.default)(e,this),(0,p.default)(e,this),(0,d.default)(e,this),(0,h.default)(e,this),(0,g.default)(e,this),(0,y.default)(e,this))}proxy(e,t,r,a={}){if(Array.isArray(t))return t.map((t=>this.proxy(e,t,r,a)));e.addEventListener(t,r,a);const o=()=>e.removeEventListener(t,r,a);return this.destroyEvents.push(o),o}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}loadImg(e){return new Promise(((t,r)=>{let a;if(e instanceof HTMLImageElement)a=e;else{if("string"!=typeof e)return r(new(0,o.ArtPlayerError)("Unable to get Image"));a=new Image,a.src=e}if(a.complete)return t(a);this.proxy(a,"load",(()=>t(a))),this.proxy(a,"error",(()=>r(new(0,o.ArtPlayerError)(`Failed to load Image: ${a.src}`))))}))}remove(e){const t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;e{(0,a.includeFromEvent)(t,o)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))}));let i=0;t.proxy(n,"click",(t=>{const o=Date.now();o-i<=r.DB_CLICE_TIME?(e.emit("dblclick",t),a.isMobile?e.isLock||e.toggle():e.fullscreen=!e.fullscreen):(e.emit("click",t),a.isMobile||e.toggle()),i=o}))}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4jWHi":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e,t){const{$player:r}=e.template;t.hover(r,(t=>{(0,a.addClass)(r,"art-hover"),e.emit("hover",!0,t)}),(t=>{(0,a.removeClass)(r,"art-hover"),e.emit("hover",!1,t)}))}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],eqaUm:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e,t){const{$player:r}=e.template;t.proxy(r,"mousemove",(t=>{e.emit("mousemove",t)}))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],eDXPO:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e,t){const{option:r}=e,o=(0,a.throttle)((()=>{e.normalSize&&(e.autoSize=r.autoSize),e.aspectRatioReset=!0,e.notice.show="",e.emit("resize")}),e.constructor.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],(()=>{o()})),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",(()=>{o()}))}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"95GtS":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils"),o=e("../control/progress");r.default=function(e,t){if(a.isMobile&&!e.option.isLive){const{$video:r,$progress:n}=e.template;let i=null,s=!1,l=0,c=0,p=0;const u=t=>{if(1===t.touches.length&&!e.isLock){i===n&&(0,o.setCurrentTime)(e,t),s=!0;const{clientX:r,clientY:a}=t.touches[0];l=r,c=a,p=e.currentTime}},d=t=>{if(1===t.touches.length&&s&&e.duration){const{clientX:o,clientY:n}=t.touches[0],s=(0,a.clamp)((o-l)/e.width,-1,1),u=(0,a.clamp)((n-c)/e.height,-1,1),d=e.isRotate?u:s,f=i===r?e.constructor.TOUCH_MOVE_RATIO:1,h=(0,a.clamp)(p+e.duration*d*f,0,e.duration);e.seek=h,e.emit("setBar","played",(0,a.clamp)(h/e.duration,0,1)),e.notice.show=`${(0,a.secondToTime)(h)} / ${(0,a.secondToTime)(e.duration)}`}},f=()=>{s&&(l=0,c=0,p=0,s=!1,i=null)};t.proxy(n,"touchstart",(e=>{i=n,u(e)})),t.proxy(r,"touchstart",(e=>{i=r,u(e)})),t.proxy(r,"touchmove",d),t.proxy(n,"touchmove",d),t.proxy(document,"touchend",f)}}},{"../utils":"71aH7","../control/progress":"bgoVP","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],InUBx:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e,t){const{option:r,constructor:o,template:{$container:n}}=e,i=(0,a.throttle)((()=>{e.emit("view",(0,a.isInViewport)(n,o.SCROLL_GAP))}),o.SCROLL_TIME);t.proxy(window,"scroll",(()=>{i()})),e.on("view",(t=>{r.autoMini&&(e.mini=!t)}))}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],hoLfM:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e,t){t.proxy(document,"mousemove",(t=>{e.emit("document:mousemove",t)})),t.proxy(document,"mouseup",(t=>{e.emit("document:mouseup",t)}))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"6NoFy":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.option.hotkey&&!a.isMobile&&this.init()}init(){const{proxy:e,constructor:t}=this.art;this.add(27,(()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)})),this.add(32,(()=>{this.art.toggle()})),this.add(37,(()=>{this.art.backward=t.SEEK_STEP})),this.add(38,(()=>{this.art.volume+=t.VOLUME_STEP})),this.add(39,(()=>{this.art.forward=t.SEEK_STEP})),this.add(40,(()=>{this.art.volume-=t.VOLUME_STEP})),e(window,"keydown",(e=>{if(this.art.isFocus){const t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r){const t=this.keys[e.keyCode];if(t){e.preventDefault();for(let r=0;r{o.innerText="",(0,a.removeClass)(r,"art-notice-show")}),t.NOTICE_TIME)):(0,a.removeClass)(r,"art-notice-show")}}},{"./utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5POkG":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("./utils"),n=e("./utils/component"),i=a.interopDefault(n);class s extends i.default{constructor(e){super(e),this.name="mask";const{template:t,icons:r,events:a}=e,n=(0,o.append)(t.$state,r.state),i=(0,o.append)(t.$state,r.error);(0,o.setStyle)(i,"display","none"),e.on("destroy",(()=>{(0,o.setStyle)(n,"display","none"),(0,o.setStyle)(i,"display",null)})),a.proxy(t.$state,"click",(()=>e.play()))}}r.default=s},{"./utils":"71aH7","./utils/component":"18nVI","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"6OeNg":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils"),n=e("bundle-text:./loading.svg"),i=a.interopDefault(n),s=e("bundle-text:./state.svg"),l=a.interopDefault(s),c=e("bundle-text:./check.svg"),p=a.interopDefault(c),u=e("bundle-text:./play.svg"),d=a.interopDefault(u),f=e("bundle-text:./pause.svg"),h=a.interopDefault(f),m=e("bundle-text:./volume.svg"),g=a.interopDefault(m),v=e("bundle-text:./volume-close.svg"),y=a.interopDefault(v),b=e("bundle-text:./screenshot.svg"),x=a.interopDefault(b),w=e("bundle-text:./setting.svg"),j=a.interopDefault(w),k=e("bundle-text:./arrow-left.svg"),S=a.interopDefault(k),I=e("bundle-text:./arrow-right.svg"),P=a.interopDefault(I),C=e("bundle-text:./playback-rate.svg"),$=a.interopDefault(C),T=e("bundle-text:./aspect-ratio.svg"),M=a.interopDefault(T),E=e("bundle-text:./config.svg"),F=a.interopDefault(E),z=e("bundle-text:./pip.svg"),A=a.interopDefault(z),H=e("bundle-text:./lock.svg"),D=a.interopDefault(H),R=e("bundle-text:./unlock.svg"),O=a.interopDefault(R),V=e("bundle-text:./fullscreen-off.svg"),L=a.interopDefault(V),N=e("bundle-text:./fullscreen-on.svg"),Y=a.interopDefault(N),W=e("bundle-text:./fullscreen-web-off.svg"),_=a.interopDefault(W),q=e("bundle-text:./fullscreen-web-on.svg"),B=a.interopDefault(q),U=e("bundle-text:./switch-on.svg"),G=a.interopDefault(U),K=e("bundle-text:./switch-off.svg"),Z=a.interopDefault(K),J=e("bundle-text:./flip.svg"),X=a.interopDefault(J),Q=e("bundle-text:./error.svg"),ee=a.interopDefault(Q),te=e("bundle-text:./close.svg"),re=a.interopDefault(te),ae=e("bundle-text:./airplay.svg"),oe=a.interopDefault(ae);r.default=class{constructor(e){const t={loading:i.default,state:l.default,play:d.default,pause:h.default,check:p.default,volume:g.default,volumeClose:y.default,screenshot:x.default,setting:j.default,pip:A.default,arrowLeft:S.default,arrowRight:P.default,playbackRate:$.default,aspectRatio:M.default,config:F.default,lock:D.default,flip:X.default,unlock:O.default,fullscreenOff:L.default,fullscreenOn:Y.default,fullscreenWebOff:_.default,fullscreenWebOn:B.default,switchOn:G.default,switchOff:Z.default,error:ee.default,close:re.default,airplay:oe.default,...e.option.icons};for(const e in t)(0,o.def)(this,e,{get:()=>(0,o.getIcon)(e,t[e])})}}},{"../utils":"71aH7","bundle-text:./loading.svg":"7tDub","bundle-text:./state.svg":"1ElZc","bundle-text:./check.svg":"lmgoP","bundle-text:./play.svg":"lVWoQ","bundle-text:./pause.svg":"5Mnax","bundle-text:./volume.svg":"w3eIa","bundle-text:./volume-close.svg":"rHjo1","bundle-text:./screenshot.svg":"2KcqM","bundle-text:./setting.svg":"8rQMV","bundle-text:./arrow-left.svg":"kqGBE","bundle-text:./arrow-right.svg":"aFjpC","bundle-text:./playback-rate.svg":"lx7ZM","bundle-text:./aspect-ratio.svg":"2sEjf","bundle-text:./config.svg":"fQTgE","bundle-text:./pip.svg":"2CaxO","bundle-text:./lock.svg":"aCGnW","bundle-text:./unlock.svg":"bTrAV","bundle-text:./fullscreen-off.svg":"bA3p0","bundle-text:./fullscreen-on.svg":"fTuY8","bundle-text:./fullscreen-web-off.svg":"tvKf4","bundle-text:./fullscreen-web-on.svg":"1F1oB","bundle-text:./switch-on.svg":"7qNHs","bundle-text:./switch-off.svg":"28aV8","bundle-text:./flip.svg":"1uXI6","bundle-text:./error.svg":"9f4dh","bundle-text:./close.svg":"4nTtS","bundle-text:./airplay.svg":"cDPXC","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"7tDub":[function(e,t,r){t.exports=''},{}],"1ElZc":[function(e,t,r){t.exports=''},{}],lmgoP:[function(e,t,r){t.exports=''},{}],lVWoQ:[function(e,t,r){t.exports=''},{}],"5Mnax":[function(e,t,r){t.exports=''},{}],w3eIa:[function(e,t,r){t.exports=''},{}],rHjo1:[function(e,t,r){t.exports=''},{}],"2KcqM":[function(e,t,r){t.exports=''},{}],"8rQMV":[function(e,t,r){t.exports=''},{}],kqGBE:[function(e,t,r){t.exports=''},{}],aFjpC:[function(e,t,r){t.exports=''},{}],lx7ZM:[function(e,t,r){t.exports=''},{}],"2sEjf":[function(e,t,r){t.exports=''},{}],fQTgE:[function(e,t,r){t.exports=''},{}],"2CaxO":[function(e,t,r){t.exports=''},{}],aCGnW:[function(e,t,r){t.exports=''},{}],bTrAV:[function(e,t,r){t.exports=''},{}],bA3p0:[function(e,t,r){t.exports=''},{}],fTuY8:[function(e,t,r){t.exports=''},{}],tvKf4:[function(e,t,r){t.exports=''},{}],"1F1oB":[function(e,t,r){t.exports=''},{}],"7qNHs":[function(e,t,r){t.exports=''},{}],"28aV8":[function(e,t,r){t.exports=''},{}],"1uXI6":[function(e,t,r){t.exports=''},{}],"9f4dh":[function(e,t,r){t.exports=''},{}],"4nTtS":[function(e,t,r){t.exports=''},{}],cDPXC:[function(e,t,r){t.exports=''},{}],"3eYNH":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("./flip"),n=a.interopDefault(o),i=e("./aspectRatio"),s=a.interopDefault(i),l=e("./playbackRate"),c=a.interopDefault(l),p=e("./subtitleOffset"),u=a.interopDefault(p),d=e("../utils/component"),f=a.interopDefault(d),h=e("../utils");class m extends f.default{constructor(e){super(e);const{option:t,controls:r,template:{$setting:a}}=e;this.name="setting",this.$parent=a,this.option=[],this.events=[],this.cache=new Map,t.setting&&(this.update(t.settings),e.on("blur",(()=>{this.show&&(this.show=!1,this.render(this.option))})),e.on("focus",(e=>{const t=(0,h.includeFromEvent)(e,r.setting),a=(0,h.includeFromEvent)(e,this.$parent);!this.show||t||a||(this.show=!1,this.render(this.option))})))}static makeRecursion(e,t,r){for(let a=0;a'),n=(0,h.createElement)("div");(0,h.addClass)(n,"art-setting-item-left-icon"),(0,h.append)(n,t.arrowLeft),(0,h.append)(o,n),(0,h.append)(o,e.$parentItem.html);const i=r(a,"click",(()=>this.render(e.$parentList)));return this.events.push(i),a}creatItem(e,t){const{icons:r,proxy:a}=this.art,o=(0,h.createElement)("div");(0,h.addClass)(o,"art-setting-item"),(0,h.isStringOrNumber)(t.name)&&(o.dataset.name=t.name),(0,h.isStringOrNumber)(t.value)&&(o.dataset.value=t.value);const n=(0,h.append)(o,'
'),i=(0,h.append)(o,'
'),s=(0,h.createElement)("div");switch((0,h.addClass)(s,"art-setting-item-left-icon"),e){case"switch":case"range":(0,h.append)(s,(0,h.isStringOrNumber)(t.icon)||t.icon instanceof Element?t.icon:r.config);break;case"selector":t.selector&&t.selector.length?(0,h.append)(s,(0,h.isStringOrNumber)(t.icon)||t.icon instanceof Element?t.icon:r.config):(0,h.append)(s,r.check)}(0,h.append)(n,s),t.$icon=s,(0,h.def)(t,"icon",{configurable:!0,get:()=>s.innerHTML,set(e){(0,h.isStringOrNumber)(e)&&(s.innerHTML=e)}});const l=(0,h.createElement)("div");(0,h.addClass)(l,"art-setting-item-left-text"),(0,h.append)(l,t.html||""),(0,h.append)(n,l),t.$html=l,(0,h.def)(t,"html",{configurable:!0,get:()=>l.innerHTML,set(e){(0,h.isStringOrNumber)(e)&&(l.innerHTML=e)}});const c=(0,h.createElement)("div");switch((0,h.addClass)(c,"art-setting-item-right-tooltip"),(0,h.append)(c,t.tooltip||""),(0,h.append)(i,c),t.$tooltip=c,(0,h.def)(t,"tooltip",{configurable:!0,get:()=>c.innerHTML,set(e){(0,h.isStringOrNumber)(e)&&(c.innerHTML=e)}}),e){case"switch":{const e=(0,h.createElement)("div");(0,h.addClass)(e,"art-setting-item-right-icon");const a=(0,h.append)(e,r.switchOn),o=(0,h.append)(e,r.switchOff);(0,h.setStyle)(t.switch?o:a,"display","none"),(0,h.append)(i,e),t.$switch=t.switch,(0,h.def)(t,"switch",{configurable:!0,get:()=>t.$switch,set(e){t.$switch=e,e?((0,h.setStyle)(o,"display","none"),(0,h.setStyle)(a,"display",null)):((0,h.setStyle)(o,"display",null),(0,h.setStyle)(a,"display","none"))}});break}case"range":{const e=(0,h.createElement)("div");(0,h.addClass)(e,"art-setting-item-right-icon");const r=(0,h.append)(e,'');r.value=t.range[0]||0,r.min=t.range[1]||0,r.max=t.range[2]||10,r.step=t.range[3]||1,(0,h.addClass)(r,"art-setting-range"),(0,h.append)(i,e),t.$range=r,(0,h.def)(t,"range",{configurable:!0,get:()=>r.valueAsNumber,set(e){r.value=Number(e)}})}break;case"selector":if(t.selector&&t.selector.length){const e=(0,h.createElement)("div");(0,h.addClass)(e,"art-setting-item-right-icon"),(0,h.append)(e,r.arrowRight),(0,h.append)(i,e)}}switch(e){case"switch":if(t.onSwitch){const e=a(o,"click",(async e=>{t.switch=await t.onSwitch.call(this.art,t,o,e)}));this.events.push(e)}break;case"range":if(t.$range){if(t.onRange){const e=a(t.$range,"change",(async e=>{t.tooltip=await t.onRange.call(this.art,t,o,e)}));this.events.push(e)}if(t.onChange){const e=a(t.$range,"input",(async e=>{t.tooltip=await t.onChange.call(this.art,t,o,e)}));this.events.push(e)}}break;case"selector":{const e=a(o,"click",(async e=>{if(t.selector&&t.selector.length)this.render(t.selector,t.width);else{(0,h.inverseClass)(o,"art-current");for(let e=0;ec?((0,h.setStyle)(o,"left",null),(0,h.setStyle)(o,"right",null)):((0,h.setStyle)(o,"left",`${p}px`),(0,h.setStyle)(o,"right","auto"))}}render(e,t){const{constructor:r}=this.art;if(this.cache.has(e)){const t=this.cache.get(e);(0,h.inverseClass)(t,"art-current"),(0,h.setStyle)(this.$parent,"width",`${t.dataset.width}px`),(0,h.setStyle)(this.$parent,"height",`${t.dataset.height}px`),this.updateStyle(Number(t.dataset.width))}else{const a=(0,h.createElement)("div");(0,h.addClass)(a,"art-setting-panel"),a.dataset.width=t||r.SETTING_WIDTH,a.dataset.height=e.length*r.SETTING_ITEM_HEIGHT,e[0]&&e[0].$parentItem&&((0,h.append)(a,this.creatHeader(e[0])),a.dataset.height=Number(a.dataset.height)+r.SETTING_ITEM_HEIGHT);for(let t=0;te.dataset.value===o));n&&(0,a.inverseClass)(n,"art-current")}return{width:o,html:t.get("Video Flip"),tooltip:t.get((0,a.capitalize)(e.flip)),icon:r.flip,selector:n.map((r=>({value:r,default:r===e.flip,html:t.get((0,a.capitalize)(r))}))),onSelect:t=>(e.flip=t.value,t.value),mounted:(t,r)=>{i(t,r.$tooltip,e.flip),e.on("flip",(()=>{i(t,r.$tooltip,e.flip)}))}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"84NBV":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:o,ASPECT_RATIO:n}}=e;function i(e){return"default"===e?t.get("Default"):e}function s(e,t,r){t&&(t.innerText=i(r));const o=(0,a.queryAll)(".art-setting-item",e).find((e=>e.dataset.value===r));o&&(0,a.inverseClass)(o,"art-current")}return{width:o,html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:n.map((t=>({value:t,default:t===e.aspectRatio,html:i(t)}))),onSelect:t=>(e.aspectRatio=t.value,t.value),mounted:(t,r)=>{s(t,r.$tooltip,e.aspectRatio),e.on("aspectRatio",(()=>{s(t,r.$tooltip,e.aspectRatio)}))}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],aetWt:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:o,PLAYBACK_RATE:n}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function s(e,t,r){t&&(t.innerText=i(r));const o=(0,a.queryAll)(".art-setting-item",e).find((e=>Number(e.dataset.value)===r));o&&(0,a.inverseClass)(o,"art-current")}return{width:o,html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:n.map((t=>({value:t,default:t===e.playbackRate,html:i(t)}))),onSelect:t=>(e.playbackRate=t.value,t.value),mounted:(t,r)=>{s(t,r.$tooltip,e.playbackRate),e.on("video:ratechange",(()=>{s(t,r.$tooltip,e.playbackRate)}))}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],fIBkO:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){const{i18n:t,icons:r,constructor:a}=e;return{width:a.SETTING_ITEM_WIDTH,html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-5,5,.1],onChange:t=>(e.subtitleOffset=t.range,t.range+"s")}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"2aaJe":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{const t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{const r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{const t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"8MTUM":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils"),n=e("./miniProgressBar"),i=a.interopDefault(n),s=e("./autoOrientation"),l=a.interopDefault(s),c=e("./autoPlayback"),p=a.interopDefault(c),u=e("./fastForward"),d=a.interopDefault(u),f=e("./lock"),h=a.interopDefault(f);r.default=class{constructor(e){this.art=e,this.id=0;const{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(i.default),t.lock&&o.isMobile&&this.add(h.default),t.autoPlayback&&!t.isLive&&this.add(p.default),t.autoOrientation&&o.isMobile&&this.add(l.default),t.fastForward&&o.isMobile&&!t.isLive&&this.add(d.default);for(let e=0;e{e.layers.add({name:"mini-progress-bar",mounted(t){e.on("destroy",(()=>{t.style.display="none"})),e.on("video:timeupdate",(()=>{t.style.width=100*e.played+"%"})),e.on("setBar",((e,r)=>{"played"===e&&(t.style.width=100*r+"%")}))}})})),{name:"mini-progress-bar"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],ePEg5:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,constructor:r,template:{$player:o,$video:n}}=e;return e.on("fullscreenWeb",(i=>{if(i){const{videoWidth:t,videoHeight:i}=n,{clientWidth:s,clientHeight:l}=document.documentElement;(t>i&&sl)&&setTimeout((()=>{(0,a.setStyle)(o,"width",`${l}px`),(0,a.setStyle)(o,"height",`${s}px`),(0,a.setStyle)(o,"transform-origin","0 0"),(0,a.setStyle)(o,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,a.addClass)(o,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")}),r.MOBILE_AUTO_ORIENTATION_TIME)}else(0,a.hasClass)(o,"art-auto-orientation")&&((0,a.setStyle)(o,"width",null),(0,a.setStyle)(o,"height",null),(0,a.setStyle)(o,"transform",null),(0,a.setStyle)(o,"transform-origin",null),(0,a.removeClass)(o,"art-auto-orientation"),e.isRotate=!1,e.aspectRatioReset=!0,e.autoSize=t.autoSize,e.notice.show="",e.emit("resize"))})),e.on("fullscreen",(async e=>{const t=screen.orientation.type;if(e){const{videoWidth:e,videoHeight:r}=n,{clientWidth:i,clientHeight:s}=document.documentElement;if(e>r&&is){const e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,a.addClass)(o,"art-auto-orientation-fullscreen")}}else(0,a.hasClass)(o,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,a.removeClass)(o,"art-auto-orientation-fullscreen"))})),{name:"autoOrientation",get state(){return(0,a.hasClass)(o,"art-auto-orientation")}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],cVO99:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,icons:r,storage:o,constructor:n,proxy:i,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:'
'}),c=(0,a.query)(".art-auto-playback-last",l),p=(0,a.query)(".art-auto-playback-jump",l),u=(0,a.query)(".art-auto-playback-close",l);return e.on("video:timeupdate",(()=>{const t=o.get("times")||{},r=Object.keys(t);r.length>n.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,o.set("times",t)})),e.on("ready",(()=>{const d=(o.get("times")||{})[e.option.id||e.option.url];d&&d>=n.AUTO_PLAYBACK_MIN&&((0,a.append)(u,r.close),(0,a.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,a.secondToTime)(d)}`,p.innerText=t.get("Jump Play"),i(u,"click",(()=>{(0,a.setStyle)(l,"display","none")})),i(p,"click",(()=>{e.seek=d,e.play(),(0,a.setStyle)(s,"display","none"),(0,a.setStyle)(l,"display","none")})),e.once("video:timeupdate",(()=>{setTimeout((()=>{(0,a.setStyle)(l,"display","none")}),n.AUTO_PLAYBACK_TIMEOUT)})))})),{name:"auto-playback",get times(){return o.get("times")||{}},clear:()=>o.del("times"),delete(e){const t=o.get("times")||{};return delete t[e],o.set("times",t),t}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],hFDwt:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{constructor:t,proxy:r,template:{$player:o,$video:n}}=e;let i=null,s=!1,l=1;const c=()=>{clearTimeout(i),s&&(s=!1,e.playbackRate=l,(0,a.removeClass)(o,"art-fast-forward"))};return r(n,"touchstart",(r=>{1===r.touches.length&&e.playing&&!e.isLock&&(i=setTimeout((()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,a.addClass)(o,"art-fast-forward")}),t.FAST_FORWARD_TIME))})),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,a.hasClass)(o,"art-fast-forward")}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"1hsTH":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{layers:t,icons:r,template:{$player:o}}=e;return t.add({name:"lock",mounted(t){const o=(0,a.append)(t,r.lock),n=(0,a.append)(t,r.unlock);(0,a.setStyle)(o,"display","none"),e.on("lock",(e=>{e?((0,a.setStyle)(o,"display","inline-flex"),(0,a.setStyle)(n,"display","none")):((0,a.setStyle)(o,"display","none"),(0,a.setStyle)(n,"display","inline-flex"))}))},click(){(0,a.hasClass)(o,"art-lock")?((0,a.removeClass)(o,"art-lock"),this.isLock=!1,e.emit("lock",!1)):((0,a.addClass)(o,"art-lock"),this.isLock=!0,e.emit("lock",!0))}}),{name:"lock",get state(){return(0,a.hasClass)(o,"art-lock")}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"7mil2":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("./config"),n=a.interopDefault(o),i=e("./utils");r.default=class{constructor(e){const{option:t,proxy:r,template:{$video:a}}=e;for(let t=0;t{e.emit(`video:${t.type}`,t)}));for(const e in t.moreVideoAttr)a[e]=t.moreVideoAttr[e];a.controls=!0,t.muted&&(a.muted=t.muted),t.volume&&(a.volume=(0,i.clamp)(t.volume,0,1)),t.poster&&(a.poster=t.poster),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0);const o=t.type||(0,i.getExt)(t.url),s=t.customType[o];o&&s?s(a,t.url,e):(a.src=t.url,e.emit("url",a.src))}}},{"./config":"lyjeQ","./utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}]},["5lTcX"],"5lTcX","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,r,a,o){var n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof n[a]&&n[a],s=i.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 n[a]&&n[a];if(!r&&o)return o(t,!0);if(i)return i(t,!0);if(l&&"string"==typeof t)return l(t);var p=new Error("Cannot find module '"+t+"'");throw p.code="MODULE_NOT_FOUND",p}d.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},d.cache={};var u=s[t]=new c.Module(t);e[t][0].call(u.exports,d,u,u.exports,this)}return s[t].exports;function d(e){var t=d.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=i,c.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(c,"root",{get:function(){return n[a]}}),n[a]=c;for(var p=0;pt.call(this,this))),te.DEBUG){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;te("Event@"+t.type)))}ee.push(this)}static get instances(){return ee}static get version(){return"5.0.0"}static get env(){return"production"}static get build(){return"2023-04-23 13:41:53"}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:{},escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:p.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),ee.splice(ee.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}if(r.default=te,te.DEBUG=!1,te.CONTEXTMENU=!0,te.NOTICE_TIME=2e3,te.SETTING_WIDTH=250,te.SETTING_ITEM_WIDTH=200,te.SETTING_ITEM_HEIGHT=35,te.RESIZE_TIME=500,te.SCROLL_TIME=200,te.SCROLL_GAP=50,te.AUTO_PLAYBACK_MAX=10,te.AUTO_PLAYBACK_MIN=5,te.AUTO_PLAYBACK_TIMEOUT=3e3,te.RECONNECT_TIME_MAX=5,te.RECONNECT_SLEEP_TIME=1e3,te.CONTROL_HIDE_TIME=3e3,te.DBCLICK_TIME=300,te.DBCLICK_FULLSCREEN=!0,te.MOBILE_DBCLICK_PLAY=!0,te.MOBILE_CLICK_PLAY=!1,te.MOBILE_AUTO_PLAYBACKRATE=3,te.MOBILE_AUTO_PLAYBACKRATE_TIME=1e3,te.MOBILE_AUTO_ORIENTATION_TIME=200,te.INFO_LOOP_TIME=1e3,te.FAST_FORWARD_VALUE=3,te.FAST_FORWARD_TIME=1e3,te.TOUCH_MOVE_RATIO=.5,te.VOLUME_STEP=.1,te.SEEK_STEP=5,te.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],te.ASPECT_RATIO=["default","4:3","16:9"],te.FLIP=["normal","horizontal","vertical"],te.FULLSCREEN_WEB_IN_BODY=!1,"undefined"!=typeof document&&!document.getElementById("artplayer-style")){const e=p.createElement("style");e.id="artplayer-style",e.textContent=n.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.Artplayer=te),console.log(`%c ArtPlayer %c ${te.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},{"bundle-text:./style/index.less":"0016T","option-validator":"bAWi2","./utils/emitter":"66mFZ","./utils":"71aH7","./scheme":"AKEiO","./config":"lyjeQ","./whitelist":"9L0ao","./template":"X13Zf","./i18n":"3jKkj","./player":"a90nx","./control":"8Z0Uf","./contextmenu":"2KYsr","./info":"02ajl","./subtitle":"eSWto","./events":"jo4S1","./hotkey":"6NoFy","./layer":"6G6hZ","./loading":"3dsEe","./notice":"dWGTw","./mask":"5POkG","./icons":"6OeNg","./setting":"3eYNH","./storage":"2aaJe","./plugins":"8MTUM","./mobile":"7mil2","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"0016T":[function(e,t,r){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#fff3;--art-hover-color:#ffffff80;--art-loaded-color:#fff3;--art-loop-color:#ffffffbf;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-loop-width:2px;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-scale:1;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#00000080;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{width:100%;height:100%;zoom:1;text-align:left;direction:ltr;user-select:none;box-sizing:border-box;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{max-width:100%;vertical-align:top}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.art-video-player.art-backdrop .art-contextmenus,.art-video-player.art-backdrop .art-info,.art-video-player.art-backdrop .art-settings,.art-video-player.art-backdrop .art-layer-auto-playback,.art-video-player.art-backdrop .art-selector-list,.art-video-player.art-backdrop .art-volume-inner{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;width:100%;height:100%;cursor:pointer;position:absolute;inset:0}.art-poster{z-index:11;width:100%;height:100%;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;width:100%;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;text-shadow:var(--art-subtitle-border)1px 0 1px,var(--art-subtitle-border)0 1px 1px,var(--art-subtitle-border)-1px 0 1px,var(--art-subtitle-border)0 -1px 1px,var(--art-subtitle-border)1px 1px 1px,var(--art-subtitle-border)-1px -1px 1px,var(--art-subtitle-border)1px -1px 1px,var(--art-subtitle-border)-1px 1px 1px;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player .art-subtitle p{word-break:break-all;height:fit-content}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;width:100%;height:100%;opacity:0;pointer-events:none;justify-content:end;gap:var(--art-bottom-gap);padding:0 var(--art-padding);transform:translateY(var(--art-bottom-offset));transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{height:50%;width:100%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;width:100%;height:100%;width:0%;background-color:var(--art-hover-color);display:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;width:100%;height:100%;width:0%;background-color:var(--art-loaded-color);position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;width:100%;height:100%;width:0%;background-color:var(--art-theme);position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;width:100%;height:100%;pointer-events:auto;width:var(--art-highlight-width);transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{width:100%;height:100%;pointer-events:none}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;bottom:10px;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom .art-progress .art-control-loop{z-index:0;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-loop .art-loop-point{z-index:0;width:100%;height:100%;width:var(--art-loop-width);background-color:var(--art-loop-color);transform:translateX(calc(var(--art-loop-width)/-2))scaleY(1.5);position:absolute;inset:0 0 0 0%}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{height:100%;flex:1;justify-content:center;align-items:center;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{height:100%;width:100%;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{width:100%;cursor:pointer;flex:1;justify-content:center;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{width:2px;border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;width:100%;height:100%;background-color:var(--art-theme);position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);transform-origin:100% 100%;max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transform:scale(var(--art-settings-scale));transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{height:35px;cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;line-height:1;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{min-width:32px;height:24px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{height:3px;width:80px;appearance:none;background-color:#fff3;outline:none}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{width:250px;text-overflow:ellipsis;white-space:nowrap;user-select:all;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{box-sizing:content-box;object-fit:fill}.art-fullscreen-web{z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:absolute;inset:0}.art-mini-popup{z-index:9999;width:320px;height:180px;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;width:100%;height:100%;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-droging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-auto-size{justify-content:center;align-items:center;display:flex}.art-auto-size .art-video-player{transition:width,height var(--art-transition-duration)ease}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-mini-progress-bar{z-index:0;width:100%;height:100%;height:var(--art-mini-progress-height);background-color:var(--art-theme);display:flex;position:absolute;inset:auto 0 0}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-bottom{display:none!important}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-lock .art-layer-mini-progress-bar{display:flex!important}.art-video-player.art-control-show .art-layer-mini-progress-bar{display:none}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;justify-content:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-scale:.85;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],bAWi2:[function(e,t,r){t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return function(e){return"GeneratorFunction"===a(e)}(r)?"generatorfunction":"function";if(function(e){return Array.isArray?Array.isArray(e):e instanceof Array}(r))return"array";if(function(e){return!(!e.constructor||"function"!=typeof e.constructor.isBuffer)&&e.constructor.isBuffer(e)}(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(function(e){return e instanceof Date||"function"==typeof e.toDateString&&"function"==typeof e.getDate&&"function"==typeof e.setDate}(r))return"date";if(function(e){return e instanceof Error||"string"==typeof e.message&&e.constructor&&"number"==typeof e.constructor.stackTraceLimit}(r))return"error";if(function(e){return e instanceof RegExp||"string"==typeof e.flags&&"boolean"==typeof e.ignoreCase&&"boolean"==typeof e.multiline&&"boolean"==typeof e.global}(r))return"regexp";switch(a(r)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(e){return"function"==typeof e.throw&&"function"==typeof e.return&&"function"==typeof e.next}(r))return"generator";switch(o=t.call(r)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function a(e){return e.constructor?e.constructor.name:null}function o(e,t){var a=2n)),a.export(r,"queryAll",(()=>i)),a.export(r,"addClass",(()=>s)),a.export(r,"removeClass",(()=>l)),a.export(r,"hasClass",(()=>c)),a.export(r,"append",(()=>p)),a.export(r,"remove",(()=>u)),a.export(r,"setStyle",(()=>d)),a.export(r,"setStyles",(()=>f)),a.export(r,"getStyle",(()=>h)),a.export(r,"sublings",(()=>m)),a.export(r,"inverseClass",(()=>g)),a.export(r,"tooltip",(()=>v)),a.export(r,"isInViewport",(()=>y)),a.export(r,"includeFromEvent",(()=>b)),a.export(r,"replaceElement",(()=>x)),a.export(r,"createElement",(()=>w)),a.export(r,"getIcon",(()=>j));var o=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function i(e,t=document){return Array.from(t.querySelectorAll(e))}function s(e,t){return e.classList.add(t)}function l(e,t){return e.classList.remove(t)}function c(e,t){return e.classList.contains(t)}function p(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function u(e){return e.parentNode.removeChild(e)}function d(e,t,r){return e.style[t]=r,e}function f(e,t){for(const r in t)d(e,r,t[r]);return e}function h(e,t,r=!0){const a=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(a):a}function m(e){return Array.from(e.parentElement.children).filter((t=>t!==e))}function g(e,t){m(e).forEach((e=>l(e,t))),s(e,t)}function v(e,t,r="top"){o.isMobile||(e.setAttribute("aria-label",t),s(e,"hint--rounded"),s(e,`hint--${r}`))}function y(e,t=0){const r=e.getBoundingClientRect(),a=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,n=r.top-t<=a&&r.top+r.height+t>=0,i=r.left-t<=o+t&&r.left+r.width+t>=0;return n&&i}function b(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function x(e,t){return t.parentNode.replaceChild(e,t),e}function w(e){return document.createElement(e)}function j(e="",t=""){const r=w("i");return s(r,"art-icon"),s(r,`art-icon-${e}`),p(r,t),r}},{"./compatibility":"6ZTr6","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"6ZTr6":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"userAgent",(()=>o)),a.export(r,"isMobile",(()=>n)),a.export(r,"isSafari",(()=>i)),a.export(r,"isWechat",(()=>s)),a.export(r,"isIE",(()=>l)),a.export(r,"isAndroid",(()=>c)),a.export(r,"isIOS",(()=>p));const o="undefined"!=typeof window?window.navigator.userAgent:"",n=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(o),i=/^((?!chrome|android).)*safari/i.test(o),s=/MicroMessenger/i.test(o),l=/MSIE|Trident/i.test(o),c=/android/i.test(o),p=/iPad|iPhone|iPod/i.test(o)&&!window.MSStream},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],hwmZz:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"ArtPlayerError",(()=>o)),a.export(r,"errorHandle",(()=>n));class o extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new o(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],inzwq:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){return"WEBVTT \r\n\r\n".concat((t=e,t.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,((e,t,r)=>{let a=r.slice(0,3);return 1===r.length&&(a=r+"00"),2===r.length&&(a=r+"0"),`${t},${a}`}))).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"));var t}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function i(e){const t=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map(((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`})).join("")}return`WEBVTT\n\n${e.split(/\r?\n/).map((e=>{const a=e.match(t);return a?{start:r(a[1].trim()),end:r(a[2].trim()),text:a[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map((e=>e.trim())).join("\n")}:null})).filter((e=>e)).map(((e,t)=>e?`${t+1}\n${e.start} --\x3e ${e.end}\n${e.text}`:"")).filter((e=>e.trim())).join("\n\n")}`}a.defineInteropFlag(r),a.export(r,"srtToVtt",(()=>o)),a.export(r,"vttToBlob",(()=>n)),a.export(r,"assToVtt",(()=>i))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"6b7Ip":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){return e.includes("?")?o(e.split("?")[0]):e.includes("#")?o(e.split("#")[0]):e.trim().toLowerCase().split(".").pop()}function n(e,t){const r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}a.defineInteropFlag(r),a.export(r,"getExt",(()=>o)),a.export(r,"download",(()=>n))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5NSdr":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"def",(()=>o)),a.export(r,"has",(()=>i)),a.export(r,"get",(()=>s)),a.export(r,"mergeDeep",(()=>l));const o=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function i(e,t){return n.call(e,t)}function s(e,t){return Object.getOwnPropertyDescriptor(e,t)}function l(...e){const t=e=>e&&"object"==typeof e&&!Array.isArray(e);return e.reduce(((e,r)=>(Object.keys(r).forEach((a=>{const o=e[a],n=r[a];Array.isArray(o)&&Array.isArray(n)?e[a]=o.concat(...n):t(o)&&t(n)?e[a]=l(o,n):e[a]=n})),e)),{})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],epmNy:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e=0){return new Promise((t=>setTimeout(t,e)))}function n(e,t,r){let a;function o(...o){clearTimeout(a),a=setTimeout((function(){a=null,e.apply(r,o)}),t)}return o.clearTimeout=function(){clearTimeout(a)},o}function i(e,t){let r,a,o=!1;return function n(...i){if(o)return r=i,void(a=this);o=!0,e.apply(this,i),setTimeout((()=>{o=!1,r&&(n.apply(a,r),r=null,a=null)}),t)}}a.defineInteropFlag(r),a.export(r,"sleep",(()=>o)),a.export(r,"debounce",(()=>n)),a.export(r,"throttle",(()=>i))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],gapRl:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function i(e){return["string","number"].includes(typeof e)}function s(e){const t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),a=Math.floor(e-3600*t-60*r);return(t>0?[t,r,a]:[r,a]).map((e=>e<10?`0${e}`:String(e))).join(":")}function l(e){return e.replace(/[&<>'"]/g,(e=>({"&":"&","<":"<",">":">","'":"'",'"':"""}[e]||e)))}a.defineInteropFlag(r),a.export(r,"clamp",(()=>o)),a.export(r,"capitalize",(()=>n)),a.export(r,"isStringOrNumber",(()=>i)),a.export(r,"secondToTime",(()=>s)),a.export(r,"escape",(()=>l))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],AKEiO:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"ComponentOption",(()=>d));var o=e("../utils");const n="array",i="boolean",s="string",l="number",c="object",p="function";function u(e,t,r){return(0,o.errorHandle)(t===s||t===l||e instanceof Element,`${r.join(".")} require '${s}' or 'Element' type`)}const d={html:u,disable:`?${i}`,name:`?${s}`,index:`?${l}`,style:`?${c}`,click:`?${p}`,mounted:`?${p}`,tooltip:`?${s}|${l}`,width:`?${l}`,selector:`?${n}`,onSelect:`?${p}`,switch:`?${i}`,onSwitch:`?${p}`,range:`?${n}`,onRange:`?${p}`,onChange:`?${p}`};r.default={id:s,container:u,url:s,poster:s,title:s,type:s,theme:s,lang:s,volume:l,isLive:i,muted:i,autoplay:i,autoSize:i,autoMini:i,loop:i,flip:i,playbackRate:i,aspectRatio:i,screenshot:i,setting:i,hotkey:i,pip:i,mutex:i,backdrop:i,fullscreen:i,fullscreenWeb:i,subtitleOffset:i,miniProgressBar:i,useSSR:i,playsInline:i,lock:i,fastForward:i,autoPlayback:i,autoOrientation:i,airplay:i,plugins:[p],whitelist:[`${s}|${p}|regexp`],layers:[d],contextmenu:[d],settings:[d],controls:[{...d,position:(e,t,r)=>{const a=["top","left","right"];return(0,o.errorHandle)(a.includes(e),`${r.join(".")} only accept ${a.toString()} as parameters`)}}],quality:[{default:`?${i}`,html:s,url:s}],highlight:[{time:l,text:s}],thumbnails:{url:s,number:l,column:l,width:l,height:l},subtitle:{url:s,type:s,style:c,escape:i,encoding:s,onVttLoad:p},moreVideoAttr:c,i18n:c,icons:c,cssVar:c,customType:c}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],lyjeQ:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={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"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9L0ao":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("./utils");r.default=class{constructor(e){this.art=e}get state(){const{option:e,constructor:{kindOf:t}}=this.art;return!a.isMobile||!e.whitelist.length||e.whitelist.some((e=>{switch(t(e)){case"string":return"*"===e||a.userAgent.indexOf(e)>-1;case"function":return e(a.userAgent);case"regexp":return e.test(a.userAgent);default:return!1}}))}}},{"./utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],X13Zf:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("./utils");class o{constructor(e){this.art=e;const{option:t,constructor:r,whitelist:o}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,a.query)(t.container),(0,a.errorHandle)(this.$container,`No container element found by ${t.container}`));const n=this.$container.tagName.toLowerCase();(0,a.errorHandle)("div"===n,`Unsupported container element type, only support 'div' but got '${n}'`),(0,a.errorHandle)(r.instances.every((e=>e.template.$container!==this.$container)),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.$original=this.$container.cloneNode(!0),o.state?this.desktop():this.mobile()}static get html(){return'
Player version:
5.0.0
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
'}query(e){return(0,a.query)(e,this.$container)}desktop(){const{option:e}=this.art;e.useSSR||(this.$container.innerHTML=o.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.backdrop&&(0,a.addClass)(this.$player,"art-backdrop"),a.isMobile&&(0,a.addClass)(this.$player,"art-mobile")}mobile(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}destroy(e){e?(0,a.replaceElement)(this.$original,this.$container):(0,a.addClass)(this.$player,"art-destroy")}}r.default=o},{"./utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"3jKkj":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils"),n=e("./zh-cn.json"),i=a.interopDefault(n),s=e("./zh-tw.json"),l=a.interopDefault(s),c=e("./pl.json"),p=a.interopDefault(c),u=e("./cs.json"),d=a.interopDefault(u),f=e("./es.json"),h=a.interopDefault(f),m=e("./fa.json"),g=a.interopDefault(m),v=e("./fr.json"),y=a.interopDefault(v),b=e("./id.json"),x=a.interopDefault(b),w=e("./ru.json"),j=a.interopDefault(w);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":i.default,"zh-tw":l.default,pl:p.default,cs:d.default,es:h.default,fa:g.default,fr:y.default,id:x.default,ru:j.default},this.update(e.option.i18n)}init(){const e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,o.mergeDeep)(this.languages,e),this.init()}}},{"../utils":"71aH7","./zh-cn.json":"lNQi5","./zh-tw.json":"eRpom","./pl.json":"iEpPa","./cs.json":"dBgp3","./es.json":"dNIrL","./fa.json":"7Plhe","./fr.json":"kGNjI","./id.json":"6MQTw","./ru.json":"7LASr","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],lNQi5:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"统计信息","Close":"关闭","Video Load Failed":"加载失败","Volume":"音量","Play":"播放","Pause":"暂停","Rate":"速度","Mute":"静音","Video Flip":"画面翻转","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置","Screenshot":"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例","Default":"默认","Normal":"正常","Open":"打开","Switch Video":"切换","Switch Subtitle":"切换字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放","AirPlay":"隔空播放","AirPlay Not Available":"隔空播放不可用"}')},{}],eRpom:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"統計訊息","Close":"關閉","Video Load Failed":"載入失敗","Volume":"音量","Play":"播放","Pause":"暫停","Rate":"速度","Mute":"靜音","Video Flip":"畫面翻轉","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新連接","Show Setting":"顯示设置","Hide Setting":"隱藏设置","Screenshot":"截圖","Play Speed":"播放速度","Aspect Ratio":"畫面比例","Default":"默認","Normal":"正常","Open":"打開","Switch Video":"切換","Switch Subtitle":"切換字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"網頁全屏","Exit Web Fullscreen":"退出網頁全屏","Mini Player":"迷你播放器","PIP Mode":"開啟畫中畫","Exit PIP Mode":"退出畫中畫","PIP Not Supported":"不支持畫中畫","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳轉播放","AirPlay":"隔空播放","AirPlay Not Available":"隔空播放不可用"}')},{}],iEpPa:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informacje o wideo","Close":"Zamknij","Video Load Failed":"Błąd ładowania wideo","Volume":"Głośność","Play":"Odtwórz","Pause":"Wstrzymaj","Rate":"Oceń","Mute":"Wycisz","Video Flip":"Rotacja wideo","Horizontal":"Pozioma","Vertical":"Pionowa","Reconnect":"Połącz ponownie","Show Setting":"Pokaż ustawienia","Hide Setting":"Ukryj ustawienia","Screenshot":"Zrzut ekranu","Play Speed":"Prędkość odtwarzania","Aspect Ratio":"Współczynnik proporcji","Default":"Domyślny","Normal":"Normalny","Open":"Otwórz","Switch Video":"Przełącz wideo","Switch Subtitle":"Przełącz napisy","Fullscreen":"Pełny ekran","Exit Fullscreen":"Zamknij pełny ekran","Web Fullscreen":"Tryb pełnej strony","Exit Web Fullscreen":"Zamknij tryb pełnej strony","Mini Player":"Miniodtwarzacz","PIP Mode":"Tryb PiP","Exit PIP Mode":"Zamknij tryb PiP","PIP Not Supported":"Tryb PiP nieobsługiwany","Fullscreen Not Supported":"Pełny ekran nieobsługiwany","Subtitle Offset":"Przesunięcie napisów","Last Seen":"Ostatnio widziany","Jump Play":"Skocz do gry","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay nie jest dostępny"}')},{}],dBgp3:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Info o videu","Close":"Zavřít","Video Load Failed":"Nahrání videa selhalo","Volume":"Hlasitost","Play":"Přehrát","Pause":"Pozastavit","Rate":"Hodnocení","Mute":"Ztlumit","Video Flip":"Otočit video","Horizontal":"Horizontálně","Vertical":"Vertikálně","Reconnect":"Opětovné připojení","Show Setting":"Zobrazit nastavení","Hide Setting":"Skrýt nastavení","Screenshot":"Snímek obrazovky","Play Speed":"Rychlost přehrávání","Aspect Ratio":"Poměr stran","Default":"Výchozí","Normal":"Normální","Open":"Otevřít","Switch Video":"Přepnout video","Switch Subtitle":"Přepnout titulky","Fullscreen":"Celá obrazovka","Exit Fullscreen":"Opustit režim celé obrazovky","Web Fullscreen":"Celá stránka","Exit Web Fullscreen":"Zavřít režim celé stránky","Mini Player":"Mini přehrávač","PIP Mode":"Režim PIP","Exit PIP Mode":"Opustit režim PIP","PIP Not Supported":"Režim PIP není podporován","Fullscreen Not Supported":"Režim celé obrazovky není podporován","Subtitle Offset":"Posun titulků","Last Seen":"Naposledy viděn","Jump Play":"Hra na skok","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay není k dispozici"}')},{}],dNIrL:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Información del video","Close":"Cerrar","Video Load Failed":"Falló carga de video","Volume":"Volumen","Play":"Reproduciendo","Pause":"Pausa","Rate":"Velocidad","Mute":"Silencio","Video Flip":"Rotar video","Horizontal":"Horizontal","Vertical":"Vertical","Reconnect":"Reconectando","Show Setting":"Mostrar ajustes","Hide Setting":"Ocultar ajustes","Screenshot":"Captura de Pantalla","Play Speed":"Velocidad de reproducción","Aspect Ratio":"Relación de aspecto","Default":"Por defecto","Normal":"Normal","Open":"Abrir","Switch Video":"Cambiar video","Switch Subtitle":"Cambiar subtítulo","Fullscreen":"Pantalla completa","Exit Fullscreen":"Salir de Pantalla completa","Web Fullscreen":"Pantalla completa Web","Exit Web Fullscreen":"Salir de Pantalla completa","Mini Player":"Mini reproductor","PIP Mode":"Modo PiP","Exit PIP Mode":"Cerrar modo PiP","PIP Not Supported":"Modo PiP no compatible","Fullscreen Not Supported":"Pantalla completa no soportada","Subtitle Offset":"Ajuste subtítulo","Last Seen":"Visto última vez","Jump Play":"Saltar","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay no disponible"}')},{}],"7Plhe":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"اطلاعات ویدیو","Close":"بستن","Video Load Failed":"بارگذاری ناموفق","Play":"پخش","Volume":"میزان صدا","Pause":"توقف","Rate":"نرخ","Mute":"سکوت","Video Flip":"چرخش تصویر","Horizontal":"افقی","Vertical":"عمودی","Reconnect":"اتصال مجدد","Show Setting":"تنظیمات","Hide Setting":"بستن تنظیمات","Screenshot":"عکس از صفحه","Play Speed":"سرعت پخش","Aspect Ratio":"نسبت تصویر","Default":"حالت پیشفرض","Normal":" حالت عادی","Open":"بازکردن","Switch Video":"تغییر ویدیو","Switch Subtitle":"نغییر زیرنویس","Fullscreen":"تمام صفحه","Exit Fullscreen":"کوچک کردن","Web Fullscreen":"حالت تئاتر","Exit Web Fullscreen":"خروج از حالت تئاتر","Mini Player":"حالت پخش کوچک","PIP Mode":" مینی پلیر","Exit PIP Mode":"خروج از مینی پلیر","PIP Not Supported":"عدم پشتیبانی از مینی پلیر","Fullscreen Not Supported":"عدم پشتیبانی از حالت تمام صفحه","Subtitle Offset":"افست زیرنویس","Last Seen":"آخرین بازدید","Jump Play":"جامپ پلی","AirPlay":"ایر پلی","AirPlay Not Available":"عدم پشتیبانی از ایرپلی"}')},{}],kGNjI:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informations de la vidéo","Close":"Fermer","Video Load Failed":"Téléchargement de la vidéo échoué","Volume":"Volume","Play":"Lire","Pause":"Pause","Rate":"Vitesse","Mute":"Muet","Video Flip":"Rotation de la vidéo","Horizontal":"Horizontal","Vertical":"Vertical","Reconnect":"Reconnexion","Show Setting":"Afficher les paramètres","Hide Setting":"Cacher les paramètres","Screenshot":"Capture d\'écran","Play Speed":"Vitesse de lecture","Aspect Ratio":"Rapport d\'aspect","Default":"Défaut","Normal":"Normal","Open":"Ouvrir","Switch Video":"Basculer la vidéo","Switch Subtitle":"Basculer le sous-titre","Fullscreen":"Plein écran","Exit Fullscreen":"Quitter le plein écran","Web Fullscreen":"Plein écran Web","Exit Web Fullscreen":"Quitter le plein écran Web","Mini Player":"Mini lecteur","PIP Mode":"Mode PiP","Exit PIP Mode":"Fermer le mode PiP","PIP Not Supported":"Mode PiP non supporté","Fullscreen Not Supported":"Plein écran non supporté","Subtitle Offset":"Réglage des sous-titres","Last Seen":"Dernière position","Jump Play":"Continuer","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay non disponible"}')},{}],"6MQTw":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informasi Video","Close":"Tutup","Video Load Failed":"Gagal Memuat Video","Volume":"Volume","Play":"Putar","Pause":"Jeda","Rate":"Kecepatan","Mute":"Senyap","Video Flip":"Memutar Video","Horizontal":"Horizontal","Vertical":"Vertikal","Reconnect":"Menyambung Kembali","Show Setting":"Tampilkan Pengaturan","Hide Setting":"Sembunyikan Pengaturan","Screenshot":"Tangkapan Layar","Play Speed":"Kecepatan Putar","Aspect Ratio":"Rasio Aspek","Default":"Default","Normal":"Normal","Open":"Buka","Switch Video":"Ganti Video","Switch Subtitle":"Ganti Subtitle","Fullscreen":"Layar Penuh","Exit Fullscreen":"Keluar dari Layar Penuh","Web Fullscreen":"Layar Penuh Web","Exit Web Fullscreen":"Keluar dari Layar Penuh Web","Mini Player":"Pemutar Mini","PIP Mode":"Mode PIP","Exit PIP Mode":"Keluar dari Mode PIP","PIP Not Supported":"PIP Tidak Didukung","Fullscreen Not Supported":"Layar Penuh Tidak Didukung","Subtitle Offset":"Pergeseran Subtitle","Last Seen":"Terakhir Dilihat","Jump Play":"Lompat Putar","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay Tidak Tersedia"}')},{}],"7LASr":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Информация","Close":"Закрыть","Video Load Failed":"Ошибка загрузки видео","Volume":"Громкость","Play":"Играть","Pause":"Пауза","Rate":"Скорость","Mute":"Заглушить","Video Flip":"Развернуть видео","Horizontal":"Горизонтально","Vertical":"Вертикально","Reconnect":"Переподключенине","Show Setting":"Показать настройки","Hide Setting":"Скрыть настройки","Screenshot":"Скриншот","Play Speed":"Скорость воспроизведения","Aspect Ratio":"Соотношение сторон","Default":"По-умолчанию","Normal":"Нормальный","Open":"Открыть","Switch Video":"Переключить видео","Switch Subtitle":"Переключить субтитры","Fullscreen":"Полноэкранный режим","Exit Fullscreen":"Выход из полноэкранного режима","Web Fullscreen":"На все окно браузера","Exit Web Fullscreen":"Выход из режима полного окна","Mini Player":"Мини проигрыватель","PIP Mode":"Картинка в картинке","Exit PIP Mode":"Закрыть картинку в картинке","PIP Not Supported":"Картинка в картинке не поддерживается","Fullscreen Not Supported":"Полноэкранный режим не поддерживается","Subtitle Offset":"Настройка субтитров","Last Seen":"Последнее просмотренное","Jump Play":"Перейти","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay недоступен"}')},{}],a90nx:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("./urlMix"),n=a.interopDefault(o),i=e("./attrMix"),s=a.interopDefault(i),l=e("./playMix"),c=a.interopDefault(l),p=e("./pauseMix"),u=a.interopDefault(p),d=e("./toggleMix"),f=a.interopDefault(d),h=e("./seekMix"),m=a.interopDefault(h),g=e("./volumeMix"),v=a.interopDefault(g),y=e("./currentTimeMix"),b=a.interopDefault(y),x=e("./durationMix"),w=a.interopDefault(x),j=e("./switchMix"),k=a.interopDefault(j),S=e("./playbackRateMix"),I=a.interopDefault(S),C=e("./aspectRatioMix"),P=a.interopDefault(C),$=e("./screenshotMix"),M=a.interopDefault($),T=e("./fullscreenMix"),E=a.interopDefault(T),F=e("./fullscreenWebMix"),z=a.interopDefault(F),A=e("./pipMix"),D=a.interopDefault(A),H=e("./loadedMix"),R=a.interopDefault(H),O=e("./playedMix"),L=a.interopDefault(O),V=e("./playingMix"),N=a.interopDefault(V),Y=e("./autoSizeMix"),_=a.interopDefault(Y),W=e("./rectMix"),B=a.interopDefault(W),q=e("./flipMix"),U=a.interopDefault(q),K=e("./miniMix"),G=a.interopDefault(K),Z=e("./loopMix"),J=a.interopDefault(Z),Q=e("./posterMix"),X=a.interopDefault(Q),ee=e("./autoHeightMix"),te=a.interopDefault(ee),re=e("./cssVarMix"),ae=a.interopDefault(re),oe=e("./themeMix"),ne=a.interopDefault(oe),ie=e("./titleMix"),se=a.interopDefault(ie),le=e("./typeMix"),ce=a.interopDefault(le),pe=e("./stateMix"),ue=a.interopDefault(pe),de=e("./subtitleOffsetMix"),fe=a.interopDefault(de),he=e("./airplayMix"),me=a.interopDefault(he),ge=e("./optionInit"),ve=a.interopDefault(ge),ye=e("./eventInit"),be=a.interopDefault(ye);r.default=class{constructor(e){(0,n.default)(e),(0,s.default)(e),(0,c.default)(e),(0,u.default)(e),(0,f.default)(e),(0,m.default)(e),(0,v.default)(e),(0,b.default)(e),(0,w.default)(e),(0,k.default)(e),(0,I.default)(e),(0,P.default)(e),(0,M.default)(e),(0,E.default)(e),(0,z.default)(e),(0,D.default)(e),(0,R.default)(e),(0,L.default)(e),(0,N.default)(e),(0,_.default)(e),(0,B.default)(e),(0,U.default)(e),(0,G.default)(e),(0,J.default)(e),(0,X.default)(e),(0,te.default)(e),(0,ae.default)(e),(0,ne.default)(e),(0,se.default)(e),(0,ce.default)(e),(0,ue.default)(e),(0,fe.default)(e),(0,me.default)(e),(0,be.default)(e),(0,ve.default)(e)}}},{"./urlMix":"kQoac","./attrMix":"deCma","./playMix":"fOJuP","./pauseMix":"fzHAy","./toggleMix":"cBHxQ","./seekMix":"koAPr","./volumeMix":"6eyuR","./currentTimeMix":"faaWv","./durationMix":"5y91K","./switchMix":"iceD8","./playbackRateMix":"keKwh","./aspectRatioMix":"jihET","./screenshotMix":"36kPY","./fullscreenMix":"2GYOJ","./fullscreenWebMix":"5aYAP","./pipMix":"7EnIB","./loadedMix":"3N9mP","./playedMix":"et96R","./playingMix":"9DzzM","./autoSizeMix":"i1LDY","./rectMix":"IqARI","./flipMix":"7E7Vs","./miniMix":"gpugx","./loopMix":"f1hVG","./posterMix":"1SuFS","./autoHeightMix":"8x4te","./cssVarMix":"1CaTA","./themeMix":"2FqhO","./titleMix":"7Am53","./typeMix":"1fQQs","./stateMix":"iBOQW","./subtitleOffsetMix":"6vlBV","./airplayMix":"eftqT","./optionInit":"fCWZK","./eventInit":"f8Lv3","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],kQoac:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,template:{$video:r}}=e;(0,a.def)(e,"url",{get:()=>r.src,async set(o){if(o){const n=e.url,i=t.type||(0,a.getExt)(o),s=t.customType[i];i&&s?(await(0,a.sleep)(),e.loading.show=!0,s.call(e,r,o,e)):r.src=o,n!==e.url&&(e.option.url=o,e.isReady&&n&&e.once("video:canplay",(()=>{e.emit("restart",o)})))}else await(0,a.sleep)(),e.loading.show=!0}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],deCma:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{template:{$video:t}}=e;(0,a.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],fOJuP:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:o,constructor:{instances:n},template:{$video:i}}=e;(0,a.def)(e,"play",{value:async function(){const a=await i.play();if(r.show=t.get("Play"),e.emit("play"),o.mutex)for(let t=0;te.playing?e.pause():e.play()})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],koAPr:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{notice:t}=e;(0,a.def)(e,"seek",{set(r){e.currentTime=r,e.emit("seek",e.currentTime),e.duration&&(t.show=`${(0,a.secondToTime)(e.currentTime)} / ${(0,a.secondToTime)(e.duration)}`)}}),(0,a.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,a.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"6eyuR":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:o,storage:n}=e;(0,a.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,a.clamp)(e,0,1),o.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&n.set("volume",t.volume)}}),(0,a.def)(e,"muted",{get:()=>t.muted,set:e=>{t.muted=e}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],faaWv:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,a.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{r=parseFloat(r),Number.isNaN(r)||(t.currentTime=(0,a.clamp)(r,0,e.duration))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5y91K":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){(0,a.def)(e,"duration",{get:()=>{const{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],iceD8:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,option:r,notice:o}=e;function n(a,n,i){return new Promise((s=>{if(a===e.url)return s(a);const{playing:l}=e;e.pause(),URL.revokeObjectURL(e.url),e.url=a,e.once("video:canplay",(()=>{e.playbackRate=!1,e.aspectRatio=!1,e.flip="normal",e.autoSize=r.autoSize,e.currentTime=i,e.notice.show="",l&&e.play(),n&&(o.show=`${t.get("Switch Video")}: ${n}`),s(a)}))}))}(0,a.def)(e,"switchQuality",{value:(t,r)=>n(t,r,e.currentTime)}),(0,a.def)(e,"switchUrl",{value:(e,t)=>n(e,t,0)})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],keKwh:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:o}=e;(0,a.def)(e,"playbackRate",{get:()=>t.playbackRate,set(a){if(a){if(a===t.playbackRate)return;t.playbackRate=a,o.show=`${r.get("Rate")}: ${1===a?r.get("Normal"):`${a}x`}`}else e.playbackRate=1}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jihET:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{template:{$video:t,$player:r},i18n:o,notice:n}=e;(0,a.def)(e,"aspectRatio",{get:()=>r.dataset.aspectRatio||"default",set(i){if(i||(i="default"),"default"===i)(0,a.setStyle)(t,"width",null),(0,a.setStyle)(t,"height",null),(0,a.setStyle)(t,"padding",null),delete r.dataset.aspectRatio;else{const e=i.split(":").map(Number),{videoWidth:o,videoHeight:n}=t,{clientWidth:s,clientHeight:l}=r,c=o/n,p=e[0]/e[1];if(c>p){const e=p*n/o;(0,a.setStyle)(t,"width",100*e+"%"),(0,a.setStyle)(t,"height","100%"),(0,a.setStyle)(t,"padding",`0 ${(s-s*e)/2}px`)}else{const e=o/p/n;(0,a.setStyle)(t,"width","100%"),(0,a.setStyle)(t,"height",100*e+"%"),(0,a.setStyle)(t,"padding",(l-l*e)/2+"px 0")}r.dataset.aspectRatio=i}n.show=`${o.get("Aspect Ratio")}: ${"default"===i?o.get("Default"):i}`,e.emit("aspectRatio",i)}}),(0,a.def)(e,"aspectRatioReset",{value(){const{aspectRatio:t}=e;e.aspectRatio=t}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"36kPY":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,notice:r,template:{$video:o}}=e,n=(0,a.createElement)("canvas");(0,a.def)(e,"getDataURL",{value:()=>new Promise(((e,t)=>{try{n.width=o.videoWidth,n.height=o.videoHeight,n.getContext("2d").drawImage(o,0,0),e(n.toDataURL("image/png"))}catch(e){r.show=e,t(e)}}))}),(0,a.def)(e,"getBlobUrl",{value:()=>new Promise(((e,t)=>{try{n.width=o.videoWidth,n.height=o.videoHeight,n.getContext("2d").drawImage(o,0,0),n.toBlob((t=>{e(URL.createObjectURL(t))}))}catch(e){r.show=e,t(e)}}))}),(0,a.def)(e,"screenshot",{value:async()=>{const r=await e.getDataURL();return(0,a.download)(r,`${t.title||"artplayer"}_${(0,a.secondToTime)(o.currentTime)}.png`),e.emit("screenshot",r),r}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"2GYOJ":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../libs/screenfull"),n=a.interopDefault(o),i=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:a,$player:o}}=e;e.once("video:loadedmetadata",(()=>{n.default.isEnabled?(e=>{n.default.on("change",(()=>{e.emit("fullscreen",n.default.isFullscreen)})),(0,i.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(t){t?(e.state="fullscreen",e.aspectRatioReset(),e.autoSize=!1,await n.default.request(o),(0,i.addClass)(o,"art-fullscreen"),e.emit("resize"),r.show=""):(e.aspectRatioReset(),e.autoSize=e.option.autoSize,await n.default.exit(),(0,i.removeClass)(o,"art-fullscreen"),e.emit("resize"),r.show="")}})})(e):document.fullscreenEnabled||a.webkitSupportsFullscreen?(e=>{(0,i.def)(e,"fullscreen",{get:()=>a.webkitDisplayingFullscreen,set(t){t?(e.state="fullscreen",a.webkitEnterFullscreen(),e.emit("fullscreen",!0),r.show=""):(a.webkitExitFullscreen(),e.emit("fullscreen",!1),r.show="")}})})(e):(0,i.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,i.def)(e,"fullscreen",(0,i.get)(e,"fullscreen"))}))}},{"../libs/screenfull":"8v40z","../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"8v40z":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);const a=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],o=(()=>{if("undefined"==typeof document)return!1;const e=a[0],t={};for(const r of a){if(r[1]in document){for(const[a,o]of r.entries())t[e[a]]=o;return t}}return!1})(),n={change:o.fullscreenchange,error:o.fullscreenerror};let i={request:(e=document.documentElement,t)=>new Promise(((r,a)=>{const n=()=>{i.off("change",n),r()};i.on("change",n);const s=e[o.requestFullscreen](t);s instanceof Promise&&s.then(n).catch(a)})),exit:()=>new Promise(((e,t)=>{if(!i.isFullscreen)return void e();const r=()=>{i.off("change",r),e()};i.on("change",r);const a=document[o.exitFullscreen]();a instanceof Promise&&a.then(r).catch(t)})),toggle:(e,t)=>i.isFullscreen?i.exit():i.request(e,t),onchange(e){i.on("change",e)},onerror(e){i.on("error",e)},on(e,t){const r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){const r=n[e];r&&document.removeEventListener(r,t,!1)},raw:o};Object.defineProperties(i,{isFullscreen:{get:()=>Boolean(document[o.fullscreenElement])},element:{enumerable:!0,get:()=>document[o.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>Boolean(document[o.fullscreenEnabled])}}),o||(i={isEnabled:!1}),r.default=i},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5aYAP":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,notice:r,constructor:o,template:{$container:n,$player:i}}=e;let s="";(0,a.def)(e,"fullscreenWeb",{get:()=>(0,a.hasClass)(i,"art-fullscreen-web"),set(l){l?(s=i.style.cssText,o.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(document.body,i),e.state="fullscreenWeb",(0,a.addClass)(i,"art-fullscreen-web"),e.aspectRatioReset(),e.autoSize=!1,e.emit("resize"),e.emit("fullscreenWeb",!0),r.show=""):(o.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(n,i),s&&(i.style.cssText=s,s=""),(0,a.removeClass)(i,"art-fullscreen-web"),e.aspectRatioReset(),e.autoSize=t.autoSize,e.emit("resize"),e.emit("fullscreenWeb",!1),r.show="")}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"7EnIB":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:o}}=e;document.pictureInPictureEnabled?function(e){const{template:{$video:t},proxy:r,notice:o}=e;t.disablePictureInPicture=!1,(0,a.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.state="pip",t.requestPictureInPicture().catch((e=>{throw o.show=e,e}))):document.exitPictureInPicture().catch((e=>{throw o.show=e,e}))}}),r(t,"enterpictureinpicture",(()=>{e.emit("pip",!0)})),r(t,"leavepictureinpicture",(()=>{e.emit("pip",!1)}))}(e):o.webkitSupportsPresentationMode?function(e){const{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,a.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.state="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}(e):(0,a.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"3N9mP":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,a.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,a.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],et96R:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){(0,a.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9DzzM":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,a.def)(e,"playing",{get:()=>!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],i1LDY:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{$container:t,$player:r,$video:o}=e.template;(0,a.def)(e,"autoSize",{get:()=>(0,a.hasClass)(t,"art-auto-size"),set(n){if(n){const{videoWidth:n,videoHeight:i}=o,{width:s,height:l}=t.getBoundingClientRect(),c=n/i,p=s/l;if((0,a.addClass)(t,"art-auto-size"),p>c){const e=l*c/s*100;(0,a.setStyle)(r,"width",`${e}%`),(0,a.setStyle)(r,"height","100%")}else{const e=s/c/l*100;(0,a.setStyle)(r,"width","100%"),(0,a.setStyle)(r,"height",`${e}%`)}e.emit("autoSize",{width:e.width,height:e.height})}else(0,a.removeClass)(t,"art-auto-size"),(0,a.setStyle)(r,"width",null),(0,a.setStyle)(r,"height",null),e.emit("autoSize")}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],IqARI:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){(0,a.def)(e,"rect",{get:()=>e.template.$player.getBoundingClientRect()});const t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[o]})}(0,a.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,a.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"7E7Vs":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{template:{$player:t},i18n:r,notice:o}=e;(0,a.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(n){n||(n="normal"),"normal"===n?delete t.dataset.flip:t.dataset.flip=n,o.show=`${r.get("Video Flip")}: ${r.get((0,a.capitalize)(n))}`,e.emit("flip",n)}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],gpugx:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{icons:t,proxy:r,storage:o,template:{$player:n,$video:i}}=e;let s=!1,l=0,c=0;function p(){const{$mini:t}=e.template;t&&((0,a.removeClass)(n,"art-mini"),(0,a.setStyle)(t,"display","none"),n.prepend(i),e.emit("mini",!1))}function u(t,r){e.playing?((0,a.setStyle)(t,"display","none"),(0,a.setStyle)(r,"display","flex")):((0,a.setStyle)(t,"display","flex"),(0,a.setStyle)(r,"display","none"))}function d(){const{$mini:t}=e.template,r=t.getBoundingClientRect(),n=window.innerHeight-r.height-50,i=window.innerWidth-r.width-50;o.set("top",n),o.set("left",i),(0,a.setStyle)(t,"top",`${n}px`),(0,a.setStyle)(t,"left",`${i}px`)}(0,a.def)(e,"mini",{get:()=>(0,a.hasClass)(n,"art-mini"),set(f){if(f){(0,a.addClass)(n,"art-mini");const f=function(){const{$mini:n}=e.template;if(n)return(0,a.append)(n,i),(0,a.setStyle)(n,"display","flex");{const n=(0,a.createElement)("div");(0,a.addClass)(n,"art-mini-popup"),(0,a.append)(document.body,n),e.template.$mini=n,(0,a.append)(n,i);const d=(0,a.append)(n,'
');(0,a.append)(d,t.close),r(d,"click",p);const f=(0,a.append)(n,'
'),h=(0,a.append)(f,t.play),m=(0,a.append)(f,t.pause);return r(h,"click",(()=>e.play())),r(m,"click",(()=>e.pause())),u(h,m),e.on("video:playing",(()=>u(h,m))),e.on("video:pause",(()=>u(h,m))),e.on("video:timeupdate",(()=>u(h,m))),r(n,"mousedown",(e=>{s=0===e.button,l=e.pageX,c=e.pageY})),e.on("document:mousemove",(e=>{if(s){(0,a.addClass)(n,"art-mini-droging");const t=e.pageX-l,r=e.pageY-c;(0,a.setStyle)(n,"transform",`translate(${t}px, ${r}px)`)}})),e.on("document:mouseup",(()=>{if(s){s=!1,(0,a.removeClass)(n,"art-mini-droging");const e=n.getBoundingClientRect();o.set("left",e.left),o.set("top",e.top),(0,a.setStyle)(n,"left",`${e.left}px`),(0,a.setStyle)(n,"top",`${e.top}px`),(0,a.setStyle)(n,"transform",null)}})),n}}(),h=o.get("top"),m=o.get("left");h&&m?((0,a.setStyle)(f,"top",`${h}px`),(0,a.setStyle)(f,"left",`${m}px`),(0,a.isInViewport)(f)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],f1hVG:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){let t=[];(0,a.def)(e,"loop",{get:()=>t,set:r=>{if(Array.isArray(r)&&"number"==typeof r[0]&&"number"==typeof r[1]){const o=(0,a.clamp)(r[0],0,Math.min(r[1],e.duration)),n=(0,a.clamp)(r[1],o,e.duration);t=n-o>=1?[o,n]:[]}else t=[];e.emit("loop",t)}}),e.on("video:timeupdate",(()=>{t.length&&(e.currentTimet[1])&&(e.seek=t[0])}))}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"1SuFS":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,template:{$poster:r}}=e;(0,a.def)(e,"poster",{get:()=>t.poster,set(e){t.poster=e,(0,a.setStyle)(r,"backgroundImage",`url(${e})`)}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"8x4te":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,template:{$container:r,$video:o}}=e,n=r.style.height;(0,a.def)(e,"autoHeight",{get:()=>(0,a.hasClass)(r,"art-auto-height"),set(i){if(i){const{clientWidth:n}=r,{videoHeight:i,videoWidth:s}=o,l=i*(n/s);(0,a.setStyle)(r,"height",l+"px"),(0,a.addClass)(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight",l)}else(0,a.setStyle)(r,"height",n),(0,a.removeClass)(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight")}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"1CaTA":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{$player:t}=e.template;(0,a.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"2FqhO":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t}=e;(0,a.def)(e,"theme",{get:()=>e.cssProperty("--art-theme"),set(r){t.theme=r,e.cssProperty("--art-theme",r)}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"7Am53":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){(0,a.def)(e,"title",{get:()=>e.option.title,set(t){e.option.title=t}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"1fQQs":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){(0,a.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],iBOQW:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const t=["mini","pip","fullscreen","fullscreenWeb"];(0,a.def)(e,"state",{get:()=>t.find((t=>e[t]))||"standard",set(r){for(let a=0;a{s=[]})),(0,a.def)(e,"subtitleOffset",{get:()=>i,set(a){if(o.$track&&o.$track.track){const l=Array.from(o.$track.track.cues);i=t(a,-5,5);for(let r=0;r{switch(e.availability){case"available":i=!0;break;case"not-available":i=!1}})):i=!1,(0,a.def)(e,"airplay",{value(){i?(n.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],fCWZK:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{option:t,storage:r,template:{$video:o,$poster:n}}=e;for(const r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(o.volume=(0,a.clamp)(t.volume,0,1));const i=r.get("volume");"number"==typeof i&&(o.volume=(0,a.clamp)(i,0,1)),t.poster&&(0,a.setStyle)(n,"backgroundImage",`url(${t.poster})`),t.autoplay&&(o.autoplay=t.autoplay),t.playsInline&&(o.playsInline=!0,o["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme);for(const r in t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],f8Lv3:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../config"),n=a.interopDefault(o),i=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:a,constructor:o,proxy:s,template:{$player:l,$video:c,$poster:p}}=e;let u=0;for(let t=0;t{e.emit(`video:${t.type}`,t)}));e.on("video:canplay",(()=>{u=0,e.loading.show=!1})),e.once("video:canplay",(()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")})),e.on("video:ended",(()=>{a.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)})),e.on("video:error",(async n=>{u{e.autoSize=a.autoSize,i.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)})),e.on("video:loadstart",(()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0})),e.on("video:pause",(()=>{e.controls.show=!0,e.mask.show=!0})),e.on("video:play",(()=>{e.mask.show=!1,(0,i.setStyle)(p,"display","none")})),e.on("video:playing",(()=>{e.mask.show=!1})),e.on("video:seeked",(()=>{e.loading.show=!1})),e.on("video:seeking",(()=>{e.loading.show=!0,e.mask.show=!1})),e.on("video:timeupdate",(()=>{e.mask.show=!1})),e.on("video:waiting",(()=>{e.loading.show=!0,e.mask.show=!1}))}},{"../config":"lyjeQ","../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"8Z0Uf":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils"),n=e("../utils/component"),i=a.interopDefault(n),s=e("./fullscreen"),l=a.interopDefault(s),c=e("./fullscreenWeb"),p=a.interopDefault(c),u=e("./pip"),d=a.interopDefault(u),f=e("./playAndPause"),h=a.interopDefault(f),m=e("./progress"),g=a.interopDefault(m),v=e("./time"),y=a.interopDefault(v),b=e("./volume"),x=a.interopDefault(b),w=e("./setting"),j=a.interopDefault(w),k=e("./thumbnails"),S=a.interopDefault(k),I=e("./screenshot"),C=a.interopDefault(I),P=e("./quality"),$=a.interopDefault(P),M=e("./loop"),T=a.interopDefault(M),E=e("./airplay"),F=a.interopDefault(E);class z extends i.default{constructor(e){super(e),this.name="control";const{proxy:t,constructor:r,template:{$player:a}}=e;let n=Date.now();t(a,["click","mousemove","touchstart","touchmove"],(()=>{this.show=!0,(0,o.removeClass)(a,"art-hide-cursor"),(0,o.addClass)(a,"art-hover"),n=Date.now()})),e.on("video:timeupdate",(()=>{!e.isInput&&e.playing&&this.show&&Date.now()-n>=r.CONTROL_HIDE_TIME&&(this.show=!1,(0,o.addClass)(a,"art-hide-cursor"),(0,o.removeClass)(a,"art-hover"))})),this.init()}init(){const{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),!e.thumbnails.url||e.isLive||o.isMobile||this.add((0,S.default)({name:"thumbnails",position:"top",index:20})),this.add((0,T.default)({name:"loop",position:"top",index:30})),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&this.add((0,$.default)({name:"quality",position:"right",index:10})),e.screenshot&&!o.isMobile&&this.add((0,C.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,d.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,F.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,p.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;tNumber(e.dataset.index)>=Number(n.dataset.index)));p?p.insertAdjacentElement("beforebegin",n):(0,o.append)(this.$parent,n),t.html&&(0,o.append)(n,t.html),t.style&&(0,o.setStyles)(n,t.style),t.tooltip&&(0,o.tooltip)(n,t.tooltip);const u=[];if(t.click){const e=this.art.events.proxy(n,"click",(e=>{e.preventDefault(),t.click.call(this.art,this,e)}));u.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.addSelector(t,n,u),this[r]=n,this.cache.set(r,{$ref:n,events:u,option:t}),t.mounted&&t.mounted.call(this.art,n),n}addSelector(e,t,r){const{hover:a,proxy:i}=this.art.events;(0,o.addClass)(t,"art-control-selector");const s=(0,o.createElement)("div");(0,o.addClass)(s,"art-selector-value"),(0,o.append)(s,e.html),t.innerText="",(0,o.append)(t,s);const l=e.selector.map(((e,t)=>`
${e.html}
`)).join(""),c=(0,o.createElement)("div");(0,o.addClass)(c,"art-selector-list"),(0,o.append)(c,l),(0,o.append)(t,c);const p=()=>{const e=(0,o.getStyle)(t,"width")/2-(0,o.getStyle)(c,"width")/2;c.style.left=`${e}px`};a(t,p);const u=i(c,"click",(async t=>{const r=(t.composedPath()||[]).find((e=>(0,o.hasClass)(e,"art-selector-item")));if(!r)return;(0,o.inverseClass)(r,"art-current");const a=Number(r.dataset.index),i=e.selector[a]||{};if(s.innerText=r.innerText,e.onSelect){const a=await e.onSelect.call(this.art,i,r,t);(0,n.isStringOrNumber)(a)&&(s.innerHTML=a)}p()}));r.push(u)}remove(e){const t=this.cache.get(e);(0,i.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;e({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{const{proxy:r,icons:o,i18n:n}=t,i=(0,a.append)(e,o.fullscreenOn),s=(0,a.append)(e,o.fullscreenOff);(0,a.setStyle)(s,"display","none"),r(e,"click",(()=>{t.fullscreen=!t.fullscreen})),t.on("fullscreen",(t=>{t?((0,a.tooltip)(e,n.get("Exit Fullscreen")),(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(s,"display","inline-flex")):((0,a.tooltip)(e,n.get("Fullscreen")),(0,a.setStyle)(i,"display","inline-flex"),(0,a.setStyle)(s,"display","none"))}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"03jeB":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{const{proxy:r,icons:o,i18n:n}=t,i=(0,a.append)(e,o.fullscreenWebOn),s=(0,a.append)(e,o.fullscreenWebOff);(0,a.setStyle)(s,"display","none"),r(e,"click",(()=>{t.fullscreenWeb=!t.fullscreenWeb})),t.on("fullscreenWeb",(t=>{t?((0,a.tooltip)(e,n.get("Exit Web Fullscreen")),(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(s,"display","inline-flex")):((0,a.tooltip)(e,n.get("Web Fullscreen")),(0,a.setStyle)(i,"display","inline-flex"),(0,a.setStyle)(s,"display","none"))}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],u8l8e:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{const{proxy:r,icons:o,i18n:n}=t;(0,a.append)(e,o.pip),r(e,"click",(()=>{t.pip=!t.pip})),t.on("pip",(t=>{(0,a.tooltip)(e,n.get(t?"Exit PIP Mode":"PIP Mode"))}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],ebXtb:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const{proxy:r,icons:o,i18n:n}=t,i=(0,a.append)(e,o.play),s=(0,a.append)(e,o.pause);function l(){(0,a.setStyle)(i,"display","flex"),(0,a.setStyle)(s,"display","none")}function c(){(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(s,"display","flex")}(0,a.tooltip)(i,n.get("Play")),(0,a.tooltip)(s,n.get("Pause")),r(i,"click",(()=>{t.play()})),r(s,"click",(()=>{t.pause()})),t.playing?c():l(),t.on("video:playing",(()=>{c()})),t.on("video:pause",(()=>{l()}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],bgoVP:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"getPosFromEvent",(()=>n)),a.export(r,"setCurrentTime",(()=>i));var o=e("../utils");function n(e,t){const{$progress:r}=e.template,{left:a}=r.getBoundingClientRect(),n=o.isMobile?t.touches[0].clientX:t.pageX,i=(0,o.clamp)(n-a,0,r.clientWidth),s=i/r.clientWidth*e.duration;return{second:s,time:(0,o.secondToTime)(s),width:i,percentage:(0,o.clamp)(i/r.clientWidth,0,1)}}function i(e,t){if(e.isRotate){const r=t.touches[0].clientY/e.height,a=r*e.duration;e.emit("setBar","played",r),e.seek=a}else{const{second:r,percentage:a}=n(e,t);e.emit("setBar","played",a),e.seek=r}}r.default=function(e){return t=>{const{icons:r,option:a,proxy:s}=t;return{...e,html:'
',mounted:e=>{let l=!1;const c=(0,o.query)(".art-progress-hover",e),p=(0,o.query)(".art-progress-loaded",e),u=(0,o.query)(".art-progress-played",e),d=(0,o.query)(".art-progress-highlight",e),f=(0,o.query)(".art-progress-indicator",e),h=(0,o.query)(".art-progress-tip",e);function m(e,t){"loaded"===e&&(0,o.setStyle)(p,"width",100*t+"%"),"played"===e&&((0,o.setStyle)(u,"width",100*t+"%"),(0,o.setStyle)(f,"left",100*t+"%"))}r.indicator?(0,o.append)(f,r.indicator):(0,o.setStyle)(f,"backgroundColor","var(--art-theme)"),t.on("video:loadedmetadata",(()=>{for(let e=0;e`;(0,o.append)(d,i)}})),m("loaded",t.loaded),t.on("setBar",((e,t)=>{m(e,t)})),t.on("video:progress",(()=>{m("loaded",t.loaded)})),t.on("video:timeupdate",(()=>{m("played",t.played)})),t.on("video:ended",(()=>{m("played",1)})),o.isMobile||(s(e,"click",(e=>{e.target!==f&&i(t,e)})),s(e,"mousemove",(r=>{!function(e){const{width:r}=n(t,e);(0,o.setStyle)(c,"width",`${r}px`),(0,o.setStyle)(c,"display","flex")}(r),(0,o.setStyle)(h,"display","flex"),(0,o.includeFromEvent)(r,d)?function(r){const{width:a}=n(t,r),{text:i}=r.target.dataset;h.innerHTML=i;const s=h.clientWidth;a<=s/2?(0,o.setStyle)(h,"left",0):a>e.clientWidth-s/2?(0,o.setStyle)(h,"left",e.clientWidth-s+"px"):(0,o.setStyle)(h,"left",a-s/2+"px")}(r):function(r){const{width:a,time:i}=n(t,r);h.innerHTML=i;const s=h.clientWidth;a<=s/2?(0,o.setStyle)(h,"left",0):a>e.clientWidth-s/2?(0,o.setStyle)(h,"left",e.clientWidth-s+"px"):(0,o.setStyle)(h,"left",a-s/2+"px")}(r)})),s(e,"mouseleave",(()=>{(0,o.setStyle)(h,"display","none"),(0,o.setStyle)(c,"display","none")})),s(e,"mousedown",(e=>{l=0===e.button})),t.on("document:mousemove",(e=>{if(l){const{second:r,percentage:a}=n(t,e);m("played",a),t.seek=r}})),t.on("document:mouseup",(()=>{l&&(l=!1)})))}}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],ikc2j:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,style:a.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:e=>{function r(){const r=`${(0,a.secondToTime)(t.currentTime)} / ${(0,a.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();const o=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;e({...e,mounted:e=>{const{proxy:r,icons:o}=t,n=(0,a.append)(e,o.volume),i=(0,a.append)(e,o.volumeClose),s=(0,a.append)(e,'
'),l=(0,a.append)(s,'
'),c=(0,a.append)(l,'
'),p=(0,a.append)(l,'
'),u=(0,a.append)(p,'
'),d=(0,a.append)(u,'
'),f=(0,a.append)(p,'
');function h(e){const{top:t,height:r}=p.getBoundingClientRect();return 1-(e.pageY-t)/r}function m(){if(t.muted||0===t.volume)(0,a.setStyle)(n,"display","none"),(0,a.setStyle)(i,"display","flex"),(0,a.setStyle)(f,"top","100%"),(0,a.setStyle)(d,"top","100%"),c.innerText=0;else{const e=100*t.volume;(0,a.setStyle)(n,"display","flex"),(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(f,"top",100-e+"%"),(0,a.setStyle)(d,"top",100-e+"%"),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(n,"click",(()=>{t.muted=!0})),r(i,"click",(()=>{t.muted=!1})),a.isMobile)(0,a.setStyle)(s,"display","none");else{let e=!1;r(p,"mousedown",(r=>{e=0===r.button,t.volume=h(r)})),t.on("document:mousemove",(r=>{e&&(t.muted=!1,t.volume=h(r))})),t.on("document:mouseup",(()=>{e&&(e=!1)}))}}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"03o9l":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{const{proxy:r,icons:o,i18n:n}=t;(0,a.append)(e,o.setting),r(e,"click",(()=>{t.setting.toggle(),t.setting.updateStyle()})),t.on("setting",(t=>{(0,a.tooltip)(e,n.get(t?"Hide Setting":"Show Setting"))}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],eCVx2:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils"),o=e("./progress");r.default=function(e){return t=>({...e,mounted:e=>{const{option:r,template:{$progress:n,$video:i},events:{proxy:s,loadImg:l}}=t;let c=null,p=!1,u=!1;s(n,"mousemove",(async s=>{if(!p){p=!0;const e=await l(r.thumbnails.url);c=e,u=!0}u&&((0,a.setStyle)(e,"display","flex"),function(s){const{width:l}=(0,o.getPosFromEvent)(t,s),{url:p,number:u,column:d,width:f,height:h}=r.thumbnails,m=f||c.naturalWidth/d,g=h||m/(i.videoWidth/i.videoHeight),v=n.clientWidth/u,y=Math.floor(l/v),b=Math.ceil(y/d)-1,x=y%d||d-1;(0,a.setStyle)(e,"backgroundImage",`url(${p})`),(0,a.setStyle)(e,"height",`${g}px`),(0,a.setStyle)(e,"width",`${m}px`),(0,a.setStyle)(e,"backgroundPosition",`-${x*m}px -${b*g}px`),l<=m/2?(0,a.setStyle)(e,"left",0):l>n.clientWidth-m/2?(0,a.setStyle)(e,"left",n.clientWidth-m+"px"):(0,a.setStyle)(e,"left",l-m/2+"px")}(s))})),s(n,"mouseleave",(()=>{(0,a.setStyle)(e,"display","none")})),t.on("hover",(t=>{t||(0,a.setStyle)(e,"display","none")}))}})}},{"../utils":"71aH7","./progress":"bgoVP","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4KCF5":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{const{proxy:r,icons:o}=t;(0,a.append)(e,o.screenshot),r(e,"click",(()=>{t.screenshot()}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],efgTY:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>{const r=t.option.quality,a=r.find((e=>e.default))||r[0];return{...e,style:{marginRight:"10px"},html:a?a.html:"",selector:r,onSelect(e){t.switchQuality(e.url,e.html)}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"2hIff":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const r=(0,a.append)(e,''),o=(0,a.append)(e,'');t.on("loop",(n=>{n&&n.length?((0,a.setStyle)(e,"display","flex"),(0,a.setStyle)(r,"left",`calc(${n[0]/t.duration*100}% - ${r.clientWidth}px)`),(0,a.setStyle)(o,"left",n[1]/t.duration*100+"%")):(0,a.setStyle)(e,"display","none")}))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4IS2d":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{const{proxy:r,icons:o}=t;(0,a.append)(e,o.airplay),r(e,"click",(()=>t.airplay()))}})}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"2KYsr":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils"),n=e("../utils/component"),i=a.interopDefault(n),s=e("./playbackRate"),l=a.interopDefault(s),c=e("./aspectRatio"),p=a.interopDefault(c),u=e("./flip"),d=a.interopDefault(u),f=e("./info"),h=a.interopDefault(f),m=e("./version"),g=a.interopDefault(m),v=e("./close"),y=a.interopDefault(v);class b extends i.default{constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,o.isMobile||this.init()}init(){const{option:e,proxy:t,template:{$player:r,$contextmenu:a}}=this.art;e.playbackRate&&this.add((0,l.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,p.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,d.default)({name:"flip",index:30})),this.add((0,h.default)({name:"info",index:40})),this.add((0,g.default)({name:"version",index:50})),this.add((0,y.default)({name:"close",index:60}));for(let t=0;t{if(e.preventDefault(),!this.art.constructor.CONTEXTMENU)return;this.show=!0;const t=e.clientX,n=e.clientY,{height:i,width:s,left:l,top:c}=r.getBoundingClientRect(),{height:p,width:u}=a.getBoundingClientRect();let d=t-l,f=n-c;t+u>l+s&&(d=s-u),n+p>c+i&&(f=i-p),(0,o.setStyles)(a,{top:`${f}px`,left:`${d}px`})})),t(r,"click",(e=>{(0,o.includeFromEvent)(e,a)||(this.show=!1)})),this.art.on("blur",(()=>{this.show=!1}))}}r.default=b},{"../utils":"71aH7","../utils/component":"18nVI","./playbackRate":"69eLi","./aspectRatio":"lUefg","./flip":"kysiM","./info":"gqIgJ","./version":"kRU7C","./close":"jQ8Pm","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"69eLi":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{PLAYBACK_RATE:o}}=t,n=o.map((e=>`${1===e?r.get("Normal"):e.toFixed(1)}`)).join("");return{...e,html:`${r.get("Play Speed")}: ${n}`,click:(e,r)=>{const{value:a}=r.target.dataset;a&&(t.playbackRate=Number(a),e.show=!1)},mounted:e=>{const r=(0,a.query)('[data-value="1"]',e);r&&(0,a.inverseClass)(r,"art-current"),t.on("video:ratechange",(()=>{const r=(0,a.queryAll)("span",e).find((e=>Number(e.dataset.value)===t.playbackRate));r&&(0,a.inverseClass)(r,"art-current")}))}}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],lUefg:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{ASPECT_RATIO:o}}=t,n=o.map((e=>`${"default"===e?r.get("Default"):e}`)).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${n}`,click:(e,r)=>{const{value:a}=r.target.dataset;a&&(t.aspectRatio=a,e.show=!1)},mounted:e=>{const r=(0,a.query)('[data-value="default"]',e);r&&(0,a.inverseClass)(r,"art-current"),t.on("aspectRatio",(t=>{const r=(0,a.queryAll)("span",e).find((e=>e.dataset.value===t));r&&(0,a.inverseClass)(r,"art-current")}))}}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],kysiM:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{FLIP:o}}=t,n=o.map((e=>`${r.get((0,a.capitalize)(e))}`)).join("");return{...e,html:`${r.get("Video Flip")}: ${n}`,click:(e,r)=>{const{value:a}=r.target.dataset;a&&(t.flip=a.toLowerCase(),e.show=!1)},mounted:e=>{const r=(0,a.query)('[data-value="normal"]',e);r&&(0,a.inverseClass)(r,"art-current"),t.on("flip",(t=>{const r=(0,a.queryAll)("span",e).find((e=>e.dataset.value===t));r&&(0,a.inverseClass)(r,"art-current")}))}}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],gqIgJ:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],kRU7C:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return{...e,html:'ArtPlayer 5.0.0'}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jQ8Pm:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"02ajl":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("./utils"),n=e("./utils/component"),i=a.interopDefault(n);class s extends i.default{constructor(e){super(e),this.name="info",o.isMobile||this.init()}init(){const{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:a,$video:n}}=this.art;e(a,"click",(()=>{this.show=!1}));let i=null;const s=(0,o.queryAll)("[data-video]",r)||[];this.art.on("destroy",(()=>clearTimeout(i))),function e(){for(let e=0;enull,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",(()=>{if(!this.url)return;const e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))}))}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video.textTracks[0]}get activeCue(){return this.textTrack.activeCues[0]}style(e,t){const{$subtitle:r}=this.art.template;return"object"==typeof e?(0,o.setStyles)(r,e):(0,o.setStyle)(r,e,t)}update(){const{$subtitle:e}=this.art.template;e.innerHTML="",this.activeCue&&(this.art.option.subtitle.escape?e.innerHTML=this.activeCue.text.split(/\r?\n/).map((e=>`

${(0,o.escape)(e)}

`)).join(""):e.innerHTML=this.activeCue.text,this.art.emit("subtitleUpdate",this.activeCue.text))}async switch(e,t={}){const{i18n:r,notice:a,option:o}=this.art,n={...o.subtitle,...t,url:e},i=await this.init(n);return t.name&&(a.show=`${r.get("Switch Subtitle")}: ${t.name}`),i}createTrack(e,t){const{template:r,proxy:a}=this.art,{$video:n,$track:i}=r,s=(0,o.createElement)("track");s.default=!0,s.kind=e,s.src=t,s.track.mode="hidden",this.eventDestroy(),(0,o.remove)(i),(0,o.append)(n,s),r.$track=s,this.eventDestroy=a(this.textTrack,"cuechange",(()=>this.update()))}async init(e){const{notice:t,template:{$subtitle:r}}=this.art;if((0,l.default)(e,p.default.subtitle),e.url)return this.style(e.style),fetch(e.url).then((e=>e.arrayBuffer())).then((t=>{const r=new TextDecoder(e.encoding).decode(t);switch(this.art.emit("subtitleLoad",e.url),e.type||(0,o.getExt)(e.url)){case"srt":{const t=(0,o.srtToVtt)(r),a=e.onVttLoad(t);return(0,o.vttToBlob)(a)}case"ass":{const t=(0,o.assToVtt)(r),a=e.onVttLoad(t);return(0,o.vttToBlob)(a)}case"vtt":{const t=e.onVttLoad(r);return(0,o.vttToBlob)(t)}default:return e.url}})).then((e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e),this.art.emit("subtitleSwitch",e)),e))).catch((e=>{throw t.show=e,e}))}}r.default=u},{"./utils":"71aH7","./utils/component":"18nVI","option-validator":"bAWi2","./scheme":"AKEiO","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jo4S1:[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils/error"),n=e("./clickInit"),i=a.interopDefault(n),s=e("./hoverInit"),l=a.interopDefault(s),c=e("./moveInit"),p=a.interopDefault(c),u=e("./resizeInit"),d=a.interopDefault(u),f=e("./gestureInit"),h=a.interopDefault(f),m=e("./viewInit"),g=a.interopDefault(m),v=e("./documentInit"),y=a.interopDefault(v);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),e.whitelist.state&&((0,i.default)(e,this),(0,l.default)(e,this),(0,p.default)(e,this),(0,d.default)(e,this),(0,h.default)(e,this),(0,g.default)(e,this),(0,y.default)(e,this))}proxy(e,t,r,a={}){if(Array.isArray(t))return t.map((t=>this.proxy(e,t,r,a)));e.addEventListener(t,r,a);const o=()=>e.removeEventListener(t,r,a);return this.destroyEvents.push(o),o}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}loadImg(e){return new Promise(((t,r)=>{let a;if(e instanceof HTMLImageElement)a=e;else{if("string"!=typeof e)return r(new(0,o.ArtPlayerError)("Unable to get Image"));a=new Image,a.src=e}if(a.complete)return t(a);this.proxy(a,"load",(()=>t(a))),this.proxy(a,"error",(()=>r(new(0,o.ArtPlayerError)(`Failed to load Image: ${a.src}`))))}))}remove(e){const t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;e{(0,a.includeFromEvent)(t,o)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))}));let i=0;t.proxy(n,"click",(t=>{const o=Date.now(),{MOBILE_CLICK_PLAY:n,DBCLICK_TIME:s,MOBILE_DBCLICK_PLAY:l,DBCLICK_FULLSCREEN:c}=r;o-i<=s?(e.emit("dblclick",t),a.isMobile?!e.isLock&&l&&e.toggle():c&&(e.fullscreen=!e.fullscreen)):(e.emit("click",t),a.isMobile?!e.isLock&&n&&e.toggle():e.toggle()),i=o}))}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4jWHi":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e,t){const{$player:r}=e.template;t.hover(r,(t=>{(0,a.addClass)(r,"art-hover"),e.emit("hover",!0,t)}),(t=>{(0,a.removeClass)(r,"art-hover"),e.emit("hover",!1,t)}))}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],eqaUm:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e,t){const{$player:r}=e.template;t.proxy(r,"mousemove",(t=>{e.emit("mousemove",t)}))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],eDXPO:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e,t){const{option:r}=e,o=(0,a.throttle)((()=>{"standard"===e.state&&(e.autoSize=r.autoSize),e.aspectRatioReset(),e.notice.show="",e.emit("resize")}),e.constructor.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],(()=>o())),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",(()=>o()))}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"95GtS":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils"),o=e("../control/progress");function n(e,t,r,a){var o=t-a,n=r-e,i=0;if(Math.abs(n)<2&&Math.abs(o)<2)return i;var s=function(e,t){return 180*Math.atan2(t,e)/Math.PI}(n,o);return s>=-45&&s<45?i=4:s>=45&&s<135?i=1:s>=-135&&s<-45?i=2:(s>=135&&s<=180||s>=-180&&s<-135)&&(i=3),i}r.default=function(e,t){if(a.isMobile&&!e.option.isLive){const{$video:r,$progress:i}=e.template;let s=null,l=!1,c=0,p=0,u=0;const d=t=>{if(1===t.touches.length&&!e.isLock){s===i&&(0,o.setCurrentTime)(e,t),l=!0;const{pageX:r,pageY:a}=t.touches[0];c=r,p=a,u=e.currentTime}},f=t=>{if(1===t.touches.length&&l&&e.duration){const{pageX:o,pageY:i}=t.touches[0],l=n(c,p,o,i),d=[3,4].includes(l),f=[1,2].includes(l);if(d&&!e.isRotate||f&&e.isRotate){const t=(0,a.clamp)((o-c)/e.width,-1,1),n=(0,a.clamp)((i-p)/e.height,-1,1),l=e.isRotate?n:t,d=s===r?e.constructor.TOUCH_MOVE_RATIO:1,f=(0,a.clamp)(u+e.duration*l*d,0,e.duration);e.seek=f,e.emit("setBar","played",(0,a.clamp)(f/e.duration,0,1)),e.notice.show=`${(0,a.secondToTime)(f)} / ${(0,a.secondToTime)(e.duration)}`}}},h=()=>{l&&(c=0,p=0,u=0,l=!1,s=null)};t.proxy(i,"touchstart",(e=>{s=i,d(e)})),t.proxy(r,"touchstart",(e=>{s=r,d(e)})),t.proxy(r,"touchmove",f),t.proxy(i,"touchmove",f),t.proxy(document,"touchend",h)}}},{"../utils":"71aH7","../control/progress":"bgoVP","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],InUBx:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e,t){const{option:r,constructor:o,template:{$container:n}}=e,i=(0,a.throttle)((()=>{e.emit("view",(0,a.isInViewport)(n,o.SCROLL_GAP))}),o.SCROLL_TIME);t.proxy(window,"scroll",(()=>i())),e.on("view",(t=>{r.autoMini&&(e.mini=!t)}))}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],hoLfM:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e,t){t.proxy(document,"mousemove",(t=>{e.emit("document:mousemove",t)})),t.proxy(document,"mouseup",(t=>{e.emit("document:mouseup",t)}))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"6NoFy":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.option.hotkey&&!a.isMobile&&this.init()}init(){const{proxy:e,constructor:t}=this.art;this.add(27,(()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)})),this.add(32,(()=>{this.art.toggle()})),this.add(37,(()=>{this.art.backward=t.SEEK_STEP})),this.add(38,(()=>{this.art.volume+=t.VOLUME_STEP})),this.add(39,(()=>{this.art.forward=t.SEEK_STEP})),this.add(40,(()=>{this.art.volume-=t.VOLUME_STEP})),e(window,"keydown",(e=>{if(this.art.isFocus){const t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r){const t=this.keys[e.keyCode];if(t){e.preventDefault();for(let r=0;r{o.innerText="",(0,a.removeClass)(r,"art-notice-show")}),t.NOTICE_TIME)):(0,a.removeClass)(r,"art-notice-show")}}},{"./utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5POkG":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("./utils"),n=e("./utils/component"),i=a.interopDefault(n);class s extends i.default{constructor(e){super(e),this.name="mask";const{template:t,icons:r,events:a}=e,n=(0,o.append)(t.$state,r.state),i=(0,o.append)(t.$state,r.error);(0,o.setStyle)(i,"display","none"),e.on("destroy",(()=>{(0,o.setStyle)(n,"display","none"),(0,o.setStyle)(i,"display",null)})),a.proxy(t.$state,"click",(()=>e.play()))}}r.default=s},{"./utils":"71aH7","./utils/component":"18nVI","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"6OeNg":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils"),n=e("bundle-text:./loading.svg"),i=a.interopDefault(n),s=e("bundle-text:./state.svg"),l=a.interopDefault(s),c=e("bundle-text:./check.svg"),p=a.interopDefault(c),u=e("bundle-text:./play.svg"),d=a.interopDefault(u),f=e("bundle-text:./pause.svg"),h=a.interopDefault(f),m=e("bundle-text:./volume.svg"),g=a.interopDefault(m),v=e("bundle-text:./volume-close.svg"),y=a.interopDefault(v),b=e("bundle-text:./screenshot.svg"),x=a.interopDefault(b),w=e("bundle-text:./setting.svg"),j=a.interopDefault(w),k=e("bundle-text:./arrow-left.svg"),S=a.interopDefault(k),I=e("bundle-text:./arrow-right.svg"),C=a.interopDefault(I),P=e("bundle-text:./playback-rate.svg"),$=a.interopDefault(P),M=e("bundle-text:./aspect-ratio.svg"),T=a.interopDefault(M),E=e("bundle-text:./config.svg"),F=a.interopDefault(E),z=e("bundle-text:./pip.svg"),A=a.interopDefault(z),D=e("bundle-text:./lock.svg"),H=a.interopDefault(D),R=e("bundle-text:./unlock.svg"),O=a.interopDefault(R),L=e("bundle-text:./fullscreen-off.svg"),V=a.interopDefault(L),N=e("bundle-text:./fullscreen-on.svg"),Y=a.interopDefault(N),_=e("bundle-text:./fullscreen-web-off.svg"),W=a.interopDefault(_),B=e("bundle-text:./fullscreen-web-on.svg"),q=a.interopDefault(B),U=e("bundle-text:./switch-on.svg"),K=a.interopDefault(U),G=e("bundle-text:./switch-off.svg"),Z=a.interopDefault(G),J=e("bundle-text:./flip.svg"),Q=a.interopDefault(J),X=e("bundle-text:./error.svg"),ee=a.interopDefault(X),te=e("bundle-text:./close.svg"),re=a.interopDefault(te),ae=e("bundle-text:./airplay.svg"),oe=a.interopDefault(ae);r.default=class{constructor(e){const t={loading:i.default,state:l.default,play:d.default,pause:h.default,check:p.default,volume:g.default,volumeClose:y.default,screenshot:x.default,setting:j.default,pip:A.default,arrowLeft:S.default,arrowRight:C.default,playbackRate:$.default,aspectRatio:T.default,config:F.default,lock:H.default,flip:Q.default,unlock:O.default,fullscreenOff:V.default,fullscreenOn:Y.default,fullscreenWebOff:W.default,fullscreenWebOn:q.default,switchOn:K.default,switchOff:Z.default,error:ee.default,close:re.default,airplay:oe.default,...e.option.icons};for(const e in t)(0,o.def)(this,e,{get:()=>(0,o.getIcon)(e,t[e])})}}},{"../utils":"71aH7","bundle-text:./loading.svg":"7tDub","bundle-text:./state.svg":"1ElZc","bundle-text:./check.svg":"lmgoP","bundle-text:./play.svg":"lVWoQ","bundle-text:./pause.svg":"5Mnax","bundle-text:./volume.svg":"w3eIa","bundle-text:./volume-close.svg":"rHjo1","bundle-text:./screenshot.svg":"2KcqM","bundle-text:./setting.svg":"8rQMV","bundle-text:./arrow-left.svg":"kqGBE","bundle-text:./arrow-right.svg":"aFjpC","bundle-text:./playback-rate.svg":"lx7ZM","bundle-text:./aspect-ratio.svg":"2sEjf","bundle-text:./config.svg":"fQTgE","bundle-text:./pip.svg":"2CaxO","bundle-text:./lock.svg":"aCGnW","bundle-text:./unlock.svg":"bTrAV","bundle-text:./fullscreen-off.svg":"bA3p0","bundle-text:./fullscreen-on.svg":"fTuY8","bundle-text:./fullscreen-web-off.svg":"tvKf4","bundle-text:./fullscreen-web-on.svg":"1F1oB","bundle-text:./switch-on.svg":"7qNHs","bundle-text:./switch-off.svg":"28aV8","bundle-text:./flip.svg":"1uXI6","bundle-text:./error.svg":"9f4dh","bundle-text:./close.svg":"4nTtS","bundle-text:./airplay.svg":"cDPXC","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"7tDub":[function(e,t,r){t.exports=''},{}],"1ElZc":[function(e,t,r){t.exports=''},{}],lmgoP:[function(e,t,r){t.exports=''},{}],lVWoQ:[function(e,t,r){t.exports=''},{}],"5Mnax":[function(e,t,r){t.exports=''},{}],w3eIa:[function(e,t,r){t.exports=''},{}],rHjo1:[function(e,t,r){t.exports=''},{}],"2KcqM":[function(e,t,r){t.exports=''},{}],"8rQMV":[function(e,t,r){t.exports=''},{}],kqGBE:[function(e,t,r){t.exports=''},{}],aFjpC:[function(e,t,r){t.exports=''},{}],lx7ZM:[function(e,t,r){t.exports=''},{}],"2sEjf":[function(e,t,r){t.exports=''},{}],fQTgE:[function(e,t,r){t.exports=''},{}],"2CaxO":[function(e,t,r){t.exports=''},{}],aCGnW:[function(e,t,r){t.exports=''},{}],bTrAV:[function(e,t,r){t.exports=''},{}],bA3p0:[function(e,t,r){t.exports=''},{}],fTuY8:[function(e,t,r){t.exports=''},{}],tvKf4:[function(e,t,r){t.exports=''},{}],"1F1oB":[function(e,t,r){t.exports=''},{}],"7qNHs":[function(e,t,r){t.exports=''},{}],"28aV8":[function(e,t,r){t.exports=''},{}],"1uXI6":[function(e,t,r){t.exports=''},{}],"9f4dh":[function(e,t,r){t.exports=''},{}],"4nTtS":[function(e,t,r){t.exports=''},{}],cDPXC:[function(e,t,r){t.exports=''},{}],"3eYNH":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("./flip"),n=a.interopDefault(o),i=e("./aspectRatio"),s=a.interopDefault(i),l=e("./playbackRate"),c=a.interopDefault(l),p=e("./subtitleOffset"),u=a.interopDefault(p),d=e("../utils/component"),f=a.interopDefault(d),h=e("../utils/error"),m=e("../utils");class g extends f.default{constructor(e){super(e);const{option:t,controls:r,template:{$setting:a}}=e;this.name="setting",this.$parent=a,this.option=[],this.events=[],this.cache=new Map,t.setting&&(this.init(),e.on("blur",(()=>{this.show&&(this.show=!1,this.render(this.option))})),e.on("focus",(e=>{const t=(0,m.includeFromEvent)(e,r.setting),a=(0,m.includeFromEvent)(e,this.$parent);!this.show||t||a||(this.show=!1,this.render(this.option))})))}static makeRecursion(e,t,r){for(let a=0;a'),n=(0,m.createElement)("div");(0,m.addClass)(n,"art-setting-item-left-icon"),(0,m.append)(n,t.arrowLeft),(0,m.append)(o,n),(0,m.append)(o,e.$parentItem.html);const i=r(a,"click",(()=>this.render(e.$parentList)));return this.events.push(i),a}creatItem(e,t){const{icons:r,proxy:a}=this.art,o=(0,m.createElement)("div");(0,m.addClass)(o,"art-setting-item"),(0,m.isStringOrNumber)(t.name)&&(o.dataset.name=t.name),(0,m.isStringOrNumber)(t.value)&&(o.dataset.value=t.value);const n=(0,m.append)(o,'
'),i=(0,m.append)(o,'
'),s=(0,m.createElement)("div");switch((0,m.addClass)(s,"art-setting-item-left-icon"),e){case"switch":case"range":(0,m.append)(s,(0,m.isStringOrNumber)(t.icon)||t.icon instanceof Element?t.icon:r.config);break;case"selector":t.selector&&t.selector.length?(0,m.append)(s,(0,m.isStringOrNumber)(t.icon)||t.icon instanceof Element?t.icon:r.config):(0,m.append)(s,r.check)}(0,m.append)(n,s),t.$icon=s,(0,m.def)(t,"icon",{configurable:!0,get:()=>s.innerHTML,set(e){(0,m.isStringOrNumber)(e)&&(s.innerHTML=e)}});const l=(0,m.createElement)("div");(0,m.addClass)(l,"art-setting-item-left-text"),(0,m.append)(l,t.html||""),(0,m.append)(n,l),t.$html=l,(0,m.def)(t,"html",{configurable:!0,get:()=>l.innerHTML,set(e){(0,m.isStringOrNumber)(e)&&(l.innerHTML=e)}});const c=(0,m.createElement)("div");switch((0,m.addClass)(c,"art-setting-item-right-tooltip"),(0,m.append)(c,t.tooltip||""),(0,m.append)(i,c),t.$tooltip=c,(0,m.def)(t,"tooltip",{configurable:!0,get:()=>c.innerHTML,set(e){(0,m.isStringOrNumber)(e)&&(c.innerHTML=e)}}),e){case"switch":{const e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon");const a=(0,m.append)(e,r.switchOn),o=(0,m.append)(e,r.switchOff);(0,m.setStyle)(t.switch?o:a,"display","none"),(0,m.append)(i,e),t.$switch=t.switch,(0,m.def)(t,"switch",{configurable:!0,get:()=>t.$switch,set(e){t.$switch=e,e?((0,m.setStyle)(o,"display","none"),(0,m.setStyle)(a,"display",null)):((0,m.setStyle)(o,"display",null),(0,m.setStyle)(a,"display","none"))}});break}case"range":{const e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon");const r=(0,m.append)(e,'');r.value=t.range[0]||0,r.min=t.range[1]||0,r.max=t.range[2]||10,r.step=t.range[3]||1,(0,m.addClass)(r,"art-setting-range"),(0,m.append)(i,e),t.$range=r,(0,m.def)(t,"range",{configurable:!0,get:()=>r.valueAsNumber,set(e){r.value=Number(e)}})}break;case"selector":if(t.selector&&t.selector.length){const e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon"),(0,m.append)(e,r.arrowRight),(0,m.append)(i,e)}}switch(e){case"switch":if(t.onSwitch){const e=a(o,"click",(async e=>{t.switch=await t.onSwitch.call(this.art,t,o,e)}));this.events.push(e)}break;case"range":if(t.$range){if(t.onRange){const e=a(t.$range,"change",(async e=>{t.tooltip=await t.onRange.call(this.art,t,o,e)}));this.events.push(e)}if(t.onChange){const e=a(t.$range,"input",(async e=>{t.tooltip=await t.onChange.call(this.art,t,o,e)}));this.events.push(e)}}break;case"selector":{const e=a(o,"click",(async e=>{if(t.selector&&t.selector.length)this.render(t.selector,t.width);else{(0,m.inverseClass)(o,"art-current");for(let e=0;ec?((0,m.setStyle)(o,"left",null),(0,m.setStyle)(o,"right",null)):((0,m.setStyle)(o,"left",`${p}px`),(0,m.setStyle)(o,"right","auto"))}}render(e,t){const{constructor:r}=this.art;if(this.cache.has(e)){const t=this.cache.get(e);(0,m.inverseClass)(t,"art-current"),(0,m.setStyle)(this.$parent,"width",`${t.dataset.width}px`),(0,m.setStyle)(this.$parent,"height",`${t.dataset.height}px`),this.updateStyle(Number(t.dataset.width))}else{const a=(0,m.createElement)("div");(0,m.addClass)(a,"art-setting-panel"),a.dataset.width=t||r.SETTING_WIDTH,a.dataset.height=e.length*r.SETTING_ITEM_HEIGHT,e[0]&&e[0].$parentItem&&((0,m.append)(a,this.creatHeader(e[0])),a.dataset.height=Number(a.dataset.height)+r.SETTING_ITEM_HEIGHT);for(let t=0;te.dataset.value===o));n&&(0,a.inverseClass)(n,"art-current")}return{width:o,name:"flip",html:t.get("Video Flip"),tooltip:t.get((0,a.capitalize)(e.flip)),icon:r.flip,selector:n.map((r=>({value:r,name:`aspect-ratio-${r}`,default:r===e.flip,html:t.get((0,a.capitalize)(r))}))),onSelect:t=>(e.flip=t.value,t.value),mounted:(t,r)=>{i(t,r.$tooltip,e.flip),e.on("flip",(()=>{i(t,r.$tooltip,e.flip)}))}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"84NBV":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:o,ASPECT_RATIO:n}}=e;function i(e){return"default"===e?t.get("Default"):e}function s(e,t,r){t&&(t.innerText=i(r));const o=(0,a.queryAll)(".art-setting-item",e).find((e=>e.dataset.value===r));o&&(0,a.inverseClass)(o,"art-current")}return{width:o,name:"aspect-ratio",html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:n.map((t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.aspectRatio,html:i(t)}))),onSelect:t=>(e.aspectRatio=t.value,t.value),mounted:(t,r)=>{s(t,r.$tooltip,e.aspectRatio),e.on("aspectRatio",(()=>{s(t,r.$tooltip,e.aspectRatio)}))}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],aetWt:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:o,PLAYBACK_RATE:n}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function s(e,t,r){t&&(t.innerText=i(r));const o=(0,a.queryAll)(".art-setting-item",e).find((e=>Number(e.dataset.value)===r));o&&(0,a.inverseClass)(o,"art-current")}return{width:o,name:"playback-rate",html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:n.map((t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.playbackRate,html:i(t)}))),onSelect:t=>(e.playbackRate=t.value,t.value),mounted:(t,r)=>{s(t,r.$tooltip,e.playbackRate),e.on("video:ratechange",(()=>{s(t,r.$tooltip,e.playbackRate)}))}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],fIBkO:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){const{i18n:t,icons:r,constructor:a}=e;return{width:a.SETTING_ITEM_WIDTH,name:"subtitle-offset",html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-5,5,.1],onChange:t=>(e.subtitleOffset=t.range,t.range+"s")}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"2aaJe":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{const t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{const r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{const t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"8MTUM":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("../utils"),n=e("./miniProgressBar"),i=a.interopDefault(n),s=e("./autoOrientation"),l=a.interopDefault(s),c=e("./autoPlayback"),p=a.interopDefault(c),u=e("./fastForward"),d=a.interopDefault(u),f=e("./lock"),h=a.interopDefault(f);r.default=class{constructor(e){this.art=e,this.id=0;const{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(i.default),t.lock&&o.isMobile&&this.add(h.default),t.autoPlayback&&!t.isLive&&this.add(p.default),t.autoOrientation&&o.isMobile&&this.add(l.default),t.fastForward&&o.isMobile&&!t.isLive&&this.add(d.default);for(let e=0;e{e.layers.add({name:"mini-progress-bar",mounted(t){e.on("destroy",(()=>{t.style.display="none"})),e.on("video:timeupdate",(()=>{t.style.width=100*e.played+"%"})),e.on("setBar",((e,r)=>{"played"===e&&(t.style.width=100*r+"%")}))}})})),{name:"mini-progress-bar"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],ePEg5:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{constructor:t,template:{$player:r,$video:o}}=e;return e.on("fullscreenWeb",(n=>{if(n){const{videoWidth:n,videoHeight:i}=o,{clientWidth:s,clientHeight:l}=document.documentElement;(n>i&&sl)&&setTimeout((()=>{(0,a.setStyle)(r,"width",`${l}px`),(0,a.setStyle)(r,"height",`${s}px`),(0,a.setStyle)(r,"transform-origin","0 0"),(0,a.setStyle)(r,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,a.addClass)(r,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")}),t.MOBILE_AUTO_ORIENTATION_TIME)}else(0,a.hasClass)(r,"art-auto-orientation")&&((0,a.removeClass)(r,"art-auto-orientation"),e.isRotate=!1,e.notice.show="",e.emit("resize"))})),e.on("fullscreen",(async e=>{const t=screen.orientation.type;if(e){const{videoWidth:e,videoHeight:n}=o,{clientWidth:i,clientHeight:s}=document.documentElement;if(e>n&&is){const e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,a.addClass)(r,"art-auto-orientation-fullscreen")}}else(0,a.hasClass)(r,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,a.removeClass)(r,"art-auto-orientation-fullscreen"))})),{name:"autoOrientation",get state(){return(0,a.hasClass)(r,"art-auto-orientation")}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],cVO99:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{i18n:t,icons:r,storage:o,constructor:n,proxy:i,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:'
'}),c=(0,a.query)(".art-auto-playback-last",l),p=(0,a.query)(".art-auto-playback-jump",l),u=(0,a.query)(".art-auto-playback-close",l);return e.on("video:timeupdate",(()=>{if(e.playing){const t=o.get("times")||{},r=Object.keys(t);r.length>n.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,o.set("times",t)}})),e.on("ready",(()=>{const d=(o.get("times")||{})[e.option.id||e.option.url];d&&d>=n.AUTO_PLAYBACK_MIN&&((0,a.append)(u,r.close),(0,a.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,a.secondToTime)(d)}`,p.innerText=t.get("Jump Play"),i(u,"click",(()=>{(0,a.setStyle)(l,"display","none")})),i(p,"click",(()=>{e.seek=d,e.play(),(0,a.setStyle)(s,"display","none"),(0,a.setStyle)(l,"display","none")})),e.once("video:timeupdate",(()=>{setTimeout((()=>{(0,a.setStyle)(l,"display","none")}),n.AUTO_PLAYBACK_TIMEOUT)})))})),{name:"auto-playback",get times(){return o.get("times")||{}},clear:()=>o.del("times"),delete(e){const t=o.get("times")||{};return delete t[e],o.set("times",t),t}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],hFDwt:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{constructor:t,proxy:r,template:{$player:o,$video:n}}=e;let i=null,s=!1,l=1;const c=()=>{clearTimeout(i),s&&(s=!1,e.playbackRate=l,(0,a.removeClass)(o,"art-fast-forward"))};return r(n,"touchstart",(r=>{1===r.touches.length&&e.playing&&!e.isLock&&(i=setTimeout((()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,a.addClass)(o,"art-fast-forward")}),t.FAST_FORWARD_TIME))})),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,a.hasClass)(o,"art-fast-forward")}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"1hsTH":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var a=e("../utils");r.default=function(e){const{layers:t,icons:r,template:{$player:o}}=e;return t.add({name:"lock",mounted(t){const o=(0,a.append)(t,r.lock),n=(0,a.append)(t,r.unlock);(0,a.setStyle)(o,"display","none"),e.on("lock",(e=>{e?((0,a.setStyle)(o,"display","inline-flex"),(0,a.setStyle)(n,"display","none")):((0,a.setStyle)(o,"display","none"),(0,a.setStyle)(n,"display","inline-flex"))}))},click(){(0,a.hasClass)(o,"art-lock")?((0,a.removeClass)(o,"art-lock"),this.isLock=!1,e.emit("lock",!1)):((0,a.addClass)(o,"art-lock"),this.isLock=!0,e.emit("lock",!0))}}),{name:"lock",get state(){return(0,a.hasClass)(o,"art-lock")}}}},{"../utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"7mil2":[function(e,t,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r);var o=e("./config"),n=a.interopDefault(o),i=e("./utils");r.default=class{constructor(e){const{option:t,proxy:r,template:{$video:a}}=e;for(let t=0;t{e.emit(`video:${t.type}`,t)}));for(const e in t.moreVideoAttr)a[e]=t.moreVideoAttr[e];a.controls=!0,t.muted&&(a.muted=t.muted),t.volume&&(a.volume=(0,i.clamp)(t.volume,0,1)),t.poster&&(a.poster=t.poster),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0);const o=t.type||(0,i.getExt)(t.url),s=t.customType[o];o&&s?s(a,t.url,e):a.src=t.url}}},{"./config":"lyjeQ","./utils":"71aH7","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}]},["5lTcX"],"5lTcX","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer.legacy.js b/docs/compiled/artplayer.legacy.js index 6c7923ab7..d682b72de 100644 --- a/docs/compiled/artplayer.legacy.js +++ b/docs/compiled/artplayer.legacy.js @@ -4,4 +4,4 @@ * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,o,a){var n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof n[o]&&n[o],s=i.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(t,r){if(!s[t]){if(!e[t]){var a="function"==typeof n[o]&&n[o];if(!r&&a)return a(t,!0);if(i)return i(t,!0);if(l&&"string"==typeof t)return l(t);var u=new Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}p.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},p.cache={};var d=s[t]=new c.Module(t);e[t][0].call(d.exports,p,d,d.exports,this)}return s[t].exports;function p(e){var t=p.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=i,c.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(c,"root",{get:function(){return n[o]}}),n[o]=c;for(var u=0;ute));var a=e("bundle-text:./style/index.less"),n=o.interopDefault(a),i=e("option-validator"),s=o.interopDefault(i),l=e("./utils/emitter"),c=o.interopDefault(l),u=e("./utils"),d=e("./scheme"),p=o.interopDefault(d),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),P=e("./contextmenu"),T=o.interopDefault(P),I=e("./info"),$=o.interopDefault(I),M=e("./subtitle"),E=o.interopDefault(M),F=e("./events"),L=o.interopDefault(F),V=e("./hotkey"),z=o.interopDefault(V),C=e("./layer"),A=o.interopDefault(C),D=e("./loading"),R=o.interopDefault(D),O=e("./notice"),N=o.interopDefault(O),H=e("./mask"),W=o.interopDefault(H),_=e("./icons"),q=o.interopDefault(_),B=e("./setting"),Y=o.interopDefault(B),U=e("./storage"),G=o.interopDefault(U),J=e("./plugins"),X=o.interopDefault(J),K=e("./mobile"),Z=o.interopDefault(K);let Q=0;const ee=[];class te extends c.default{static get instances(){return ee}static get version(){return"5.0.0"}static get env(){return"production"}static get build(){return"2023-04-19 10:01:21"}static get config(){return h.default}static get utils(){return u}static get scheme(){return p.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:{},escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:u.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),ee.splice(ee.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}constructor(e,t){super(),this.id=++Q;const r=u.mergeDeep(te.option,e);if(this.option=(0,s.default)(r,p.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,L.default)(this),this.whitelist.state?(this.storage=new(0,G.default)(this),this.icons=new(0,q.default)(this),this.i18n=new(0,x.default)(this),this.notice=new(0,N.default)(this),this.player=new(0,j.default)(this),this.layers=new(0,A.default)(this),this.controls=new(0,S.default)(this),this.contextmenu=new(0,T.default)(this),this.subtitle=new(0,E.default)(this),this.info=new(0,$.default)(this),this.loading=new(0,R.default)(this),this.hotkey=new(0,z.default)(this),this.mask=new(0,W.default)(this),this.setting=new(0,Y.default)(this),this.plugins=new(0,X.default)(this)):this.mobile=new(0,Z.default)(this),"function"==typeof t&&this.on("ready",(()=>t.call(this,this))),te.DEBUG){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;te("Event@"+t.type)))}ee.push(this)}}if(te.DEBUG=!1,te.CONTEXTMENU=!0,te.NOTICE_TIME=2e3,te.SETTING_WIDTH=250,te.SETTING_ITEM_WIDTH=200,te.SETTING_ITEM_HEIGHT=35,te.RESIZE_TIME=500,te.SCROLL_TIME=200,te.SCROLL_GAP=50,te.AUTO_PLAYBACK_MAX=10,te.AUTO_PLAYBACK_MIN=5,te.AUTO_PLAYBACK_TIMEOUT=3e3,te.RECONNECT_TIME_MAX=5,te.RECONNECT_SLEEP_TIME=1e3,te.CONTROL_HIDE_TIME=3e3,te.DB_CLICE_TIME=300,te.MOBILE_AUTO_PLAYBACKRATE=3,te.MOBILE_AUTO_PLAYBACKRATE_TIME=1e3,te.MOBILE_AUTO_ORIENTATION_TIME=200,te.INFO_LOOP_TIME=1e3,te.FAST_FORWARD_VALUE=3,te.FAST_FORWARD_TIME=1e3,te.TOUCH_MOVE_RATIO=.5,te.VOLUME_STEP=.1,te.SEEK_STEP=5,te.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],te.ASPECT_RATIO=["default","4:3","16:9"],te.FLIP=["normal","horizontal","vertical"],te.FULLSCREEN_WEB_IN_BODY=!1,"undefined"!=typeof document&&!document.getElementById("artplayer-style")){const e=u.createElement("style");e.id="artplayer-style",e.textContent=n.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.Artplayer=te),console.log(`%c ArtPlayer %c ${te.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},{"bundle-text:./style/index.less":"6huYk","option-validator":"e1J0t","./utils/emitter":"fPpO7","./utils":"7drL4","./scheme":"1s2bZ","./config":"1shlC","./whitelist":"12Atb","./template":"44X6u","./i18n":"brIxD","./player":"iurL3","./control":"krUTp","./contextmenu":"XqyHm","./info":"fiMkm","./subtitle":"ekPC4","./events":"aoN05","./hotkey":"ba6C3","./layer":"3BGk5","./loading":"6LgqS","./notice":"e1V9b","./mask":"7Eyvg","./icons":"jccXh","./setting":"gBKqL","./storage":"71DyG","./plugins":"kWGSQ","./mobile":"lFrMF","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"6huYk":[function(e,t,r){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#fff3;--art-hover-color:#ffffff80;--art-loaded-color:#fff3;--art-loop-color:#ffffffbf;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:-20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-loop-width:2px;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-scale:1;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#00000080;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{width:100%;height:100%;zoom:1;text-align:left;direction:ltr;-webkit-user-select:none;user-select:none;box-sizing:border-box;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative;overflow:hidden}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{max-width:100%;vertical-align:top}.art-video-player svg{fill:#fff}.art-video-player a{color:#fff;text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.art-video-player.art-backdrop .art-contextmenus,.art-video-player.art-backdrop .art-info,.art-video-player.art-backdrop .art-settings,.art-video-player.art-backdrop .art-layer-auto-playback,.art-video-player.art-backdrop .art-selector-list,.art-video-player.art-backdrop .art-volume-inner{-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;width:100%;height:100%;cursor:pointer;position:absolute;inset:0}.art-poster{z-index:11;width:100%;height:100%;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;width:100%;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);pointer-events:none;transition:bottom var(--art-transition-duration)ease;text-shadow:var(--art-subtitle-border)1px 0 1px,var(--art-subtitle-border)0 1px 1px,var(--art-subtitle-border)-1px 0 1px,var(--art-subtitle-border)0 -1px 1px,var(--art-subtitle-border)1px 1px 1px,var(--art-subtitle-border)-1px -1px 1px,var(--art-subtitle-border)1px -1px 1px,var(--art-subtitle-border)-1px 1px 1px;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player .art-subtitle p{word-break:break-all;height:-moz-fit-content;height:-moz-fit-content;height:fit-content}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0}.art-video-player .art-layers{z-index:40;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;width:100%;height:100%;opacity:0;pointer-events:none;justify-content:end;gap:var(--art-bottom-gap);inset:auto 0 0;bottom:var(--art-bottom-offset);height:var(--art-bottom-height);padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;display:flex;position:absolute}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;bottom:0}.art-bottom .art-progress{z-index:0;pointer-events:auto;position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{height:50%;width:100%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;width:100%;height:100%;width:0%;background-color:var(--art-hover-color);display:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;width:100%;height:100%;width:0%;background-color:var(--art-loaded-color);position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;width:100%;height:100%;width:0%;background-color:var(--art-theme);position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;width:100%;height:100%;pointer-events:auto;width:var(--art-highlight-width);transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0;transform:scale(0)}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{width:100%;height:100%;pointer-events:none}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;bottom:10px;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom .art-progress .art-control-loop{z-index:0;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-loop .art-loop-point{z-index:0;width:100%;height:100%;width:var(--art-loop-width);background-color:var(--art-loop-color);transform:translateX(calc(var(--art-loop-width)/-2))scaleY(1.5);position:absolute;inset:0 0 0 0%}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{height:100%;flex:1;justify-content:center;align-items:center;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{height:100%;width:100%;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{width:100%;cursor:pointer;flex:1;justify-content:center;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{width:2px;border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;width:100%;height:100%;background-color:var(--art-theme);position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);transform-origin:100% 100%;max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transform:scale(var(--art-settings-scale));transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow-x:hidden;overflow-y:auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{height:35px;cursor:pointer;color:#ffffffbf;justify-content:space-between;align-items:center;padding:0 5px;line-height:1;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{color:#fff;background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{min-width:32px;height:24px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{height:3px;width:80px;-webkit-appearance:none;appearance:none;background-color:#fff3;outline:none}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{width:250px;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:all;user-select:all;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{box-sizing:content-box;object-fit:fill}.art-fullscreen-web{z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:absolute;inset:0}.art-mini-popup{z-index:9999;width:320px;height:180px;border-radius:var(--art-border-radius);cursor:move;-webkit-user-select:none;user-select:none;background:#000;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;width:100%;height:100%;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-droging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-auto-size{justify-content:center;align-items:center;display:flex}.art-auto-size .art-video-player{transition:width,height var(--art-transition-duration)ease}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-mini-progress-bar{z-index:0;width:100%;height:100%;height:var(--art-mini-progress-height);background-color:var(--art-theme);display:flex;position:absolute;inset:auto 0 0}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-bottom{display:none!important}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-lock .art-layer-mini-progress-bar{display:flex!important}.art-video-player.art-control-show .art-layer-mini-progress-bar{display:none}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;justify-content:center;display:flex;position:absolute;overflow-x:hidden;overflow-y:auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-mobile{--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-scale:.8;--art-settings-max-height:200px;--art-selector-max-height:200px}'},{}],e1J0t:[function(e,t,r){t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var a=e(r);if("boolean"===a)return"boolean";if("string"===a)return"string";if("number"===a)return"number";if("symbol"===a)return"symbol";if("function"===a)return function(e){return"GeneratorFunction"===o(e)}(r)?"generatorfunction":"function";if(function(e){return Array.isArray?Array.isArray(e):e instanceof Array}(r))return"array";if(function(e){return!(!e.constructor||"function"!=typeof e.constructor.isBuffer)&&e.constructor.isBuffer(e)}(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(function(e){return e instanceof Date||"function"==typeof e.toDateString&&"function"==typeof e.getDate&&"function"==typeof e.setDate}(r))return"date";if(function(e){return e instanceof Error||"string"==typeof e.message&&e.constructor&&"number"==typeof e.constructor.stackTraceLimit}(r))return"error";if(function(e){return e instanceof RegExp||"string"==typeof e.flags&&"boolean"==typeof e.ignoreCase&&"boolean"==typeof e.multiline&&"boolean"==typeof e.global}(r))return"regexp";switch(o(r)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(e){return"function"==typeof e.throw&&"function"==typeof e.return&&"function"==typeof e.next}(r))return"generator";switch(a=t.call(r)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return a.slice(8,-1).toLowerCase().replace(/\s/g,"")};function o(e){return e.constructor?e.constructor.name:null}function a(e,t){var o=2a));class a{on(e,t,r){const o=this.e||(this.e={});return(o[e]||(o[e]=[])).push({fn:t,ctx:r}),this}once(e,t,r){const o=this;function a(...n){o.off(e,a),t.apply(r,n)}return a._=t,this.on(e,a,r)}emit(e,...t){const r=((this.e||(this.e={}))[e]||[]).slice();for(let e=0;en)),o.export(r,"queryAll",(()=>i)),o.export(r,"addClass",(()=>s)),o.export(r,"removeClass",(()=>l)),o.export(r,"hasClass",(()=>c)),o.export(r,"append",(()=>u)),o.export(r,"remove",(()=>d)),o.export(r,"setStyle",(()=>p)),o.export(r,"setStyles",(()=>f)),o.export(r,"getStyle",(()=>h)),o.export(r,"sublings",(()=>m)),o.export(r,"inverseClass",(()=>g)),o.export(r,"tooltip",(()=>v)),o.export(r,"isInViewport",(()=>y)),o.export(r,"includeFromEvent",(()=>b)),o.export(r,"replaceElement",(()=>x)),o.export(r,"createElement",(()=>w)),o.export(r,"getIcon",(()=>j));var a=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function i(e,t=document){return Array.from(t.querySelectorAll(e))}function s(e,t){return e.classList.add(t)}function l(e,t){return e.classList.remove(t)}function c(e,t){return e.classList.contains(t)}function u(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function d(e){return e.parentNode.removeChild(e)}function p(e,t,r){return e.style[t]=r,e}function f(e,t){for(const r in t)p(e,r,t[r]);return e}function h(e,t,r=!0){const o=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(o):o}function m(e){return Array.from(e.parentElement.children).filter((t=>t!==e))}function g(e,t){m(e).forEach((e=>l(e,t))),s(e,t)}function v(e,t,r="top"){a.isMobile||(e.setAttribute("aria-label",t),s(e,"hint--rounded"),s(e,`hint--${r}`))}function y(e,t=0){const r=e.getBoundingClientRect(),o=window.innerHeight||document.documentElement.clientHeight,a=window.innerWidth||document.documentElement.clientWidth,n=r.top-t<=o&&r.top+r.height+t>=0,i=r.left-t<=a+t&&r.left+r.width+t>=0;return n&&i}function b(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function x(e,t){return t.parentNode.replaceChild(e,t),e}function w(e){return document.createElement(e)}function j(e="",t=""){const r=w("i");return s(r,"art-icon"),s(r,`art-icon-${e}`),u(r,t),r}},{"./compatibility":"2lSEt","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"2lSEt":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"userAgent",(()=>a)),o.export(r,"isMobile",(()=>n)),o.export(r,"isSafari",(()=>i)),o.export(r,"isWechat",(()=>s)),o.export(r,"isIE",(()=>l)),o.export(r,"isAndroid",(()=>c)),o.export(r,"isIOS",(()=>u));const a="undefined"!=typeof window?window.navigator.userAgent:"",n=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a),i=/^((?!chrome|android).)*safari/i.test(a),s=/MicroMessenger/i.test(a),l=/MSIE|Trident/i.test(a),c=/android/i.test(a),u=/iPad|iPhone|iPod/i.test(a)&&!window.MSStream},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],aPfiL:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",(()=>a)),o.export(r,"errorHandle",(()=>n));class a extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new a(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],l4cLJ:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return"WEBVTT \r\n\r\n".concat((t=e,t.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,((e,t,r)=>{let o=r.slice(0,3);return 1===r.length&&(o=r+"00"),2===r.length&&(o=r+"0"),`${t},${o}`}))).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"));var t}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function i(e){const t=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map(((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`})).join("")}return`WEBVTT\n\n${e.split(/\r?\n/).map((e=>{const o=e.match(t);return o?{start:r(o[1].trim()),end:r(o[2].trim()),text:o[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map((e=>e.trim())).join("\n")}:null})).filter((e=>e)).map(((e,t)=>e?`${t+1}\n${e.start} --\x3e ${e.end}\n${e.text}`:"")).filter((e=>e.trim())).join("\n\n")}`}o.defineInteropFlag(r),o.export(r,"srtToVtt",(()=>a)),o.export(r,"vttToBlob",(()=>n)),o.export(r,"assToVtt",(()=>i))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"53Vt6":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return e.includes("?")?a(e.split("?")[0]):e.includes("#")?a(e.split("#")[0]):e.trim().toLowerCase().split(".").pop()}function n(e,t){const r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",(()=>a)),o.export(r,"download",(()=>n))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],lLZes:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",(()=>a)),o.export(r,"has",(()=>i)),o.export(r,"get",(()=>s)),o.export(r,"mergeDeep",(()=>l));const a=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function i(e,t){return n.call(e,t)}function s(e,t){return Object.getOwnPropertyDescriptor(e,t)}function l(...e){const t=e=>e&&"object"==typeof e&&!Array.isArray(e);return e.reduce(((e,r)=>(Object.keys(r).forEach((o=>{const a=e[o],n=r[o];Array.isArray(a)&&Array.isArray(n)?e[o]=a.concat(...n):!t(a)||!t(n)||n instanceof Element?e[o]=n:e[o]=l(a,n)})),e)),{})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8JF40":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e=0){return new Promise((t=>setTimeout(t,e)))}function n(e,t,r){let o;function a(...a){clearTimeout(o),o=setTimeout((function(){o=null,e.apply(r,a)}),t)}return a.clearTimeout=function(){clearTimeout(o)},a}function i(e,t){let r,o,a=!1;return function n(...i){if(a)return r=i,void(o=this);a=!0,e.apply(this,i),setTimeout((()=>{a=!1,r&&(n.apply(o,r),r=null,o=null)}),t)}}o.defineInteropFlag(r),o.export(r,"sleep",(()=>a)),o.export(r,"debounce",(()=>n)),o.export(r,"throttle",(()=>i))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"2yQzS":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function i(e){return["string","number"].includes(typeof e)}function s(e){const t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),o=Math.floor(e-3600*t-60*r);return(t>0?[t,r,o]:[r,o]).map((e=>e<10?`0${e}`:String(e))).join(":")}function l(e){return e.replace(/[&<>'"]/g,(e=>({"&":"&","<":"<",">":">","'":"'",'"':"""}[e]||e)))}o.defineInteropFlag(r),o.export(r,"clamp",(()=>a)),o.export(r,"capitalize",(()=>n)),o.export(r,"isStringOrNumber",(()=>i)),o.export(r,"secondToTime",(()=>s)),o.export(r,"escape",(()=>l))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"1s2bZ":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",(()=>p));var a=e("../utils");const n="array",i="boolean",s="string",l="number",c="object",u="function";function d(e,t,r){return(0,a.errorHandle)(t===s||t===l||e instanceof Element,`${r.join(".")} require '${s}' or 'Element' type`)}const p={html:d,disable:`?${i}`,name:`?${s}`,index:`?${l}`,style:`?${c}`,click:`?${u}`,mounted:`?${u}`,tooltip:`?${s}|${l}`,width:`?${l}`,selector:`?${n}`,onSelect:`?${u}`,switch:`?${i}`,onSwitch:`?${u}`,range:`?${n}`,onRange:`?${u}`,onChange:`?${u}`};r.default={id:s,container:d,url:s,poster:s,title:s,type:s,theme:s,lang:s,volume:l,isLive:i,muted:i,autoplay:i,autoSize:i,autoMini:i,loop:i,flip:i,playbackRate:i,aspectRatio:i,screenshot:i,setting:i,hotkey:i,pip:i,mutex:i,backdrop:i,fullscreen:i,fullscreenWeb:i,subtitleOffset:i,miniProgressBar:i,useSSR:i,playsInline:i,lock:i,fastForward:i,autoPlayback:i,autoOrientation:i,airplay:i,plugins:[u],whitelist:[`${s}|${u}|regexp`],layers:[p],contextmenu:[p],settings:[p],controls:[{...p,position:(e,t,r)=>{const o=["top","left","right"];return(0,a.errorHandle)(o.includes(e),`${r.join(".")} only accept ${o.toString()} as parameters`)}}],quality:[{default:`?${i}`,html:s,url:s}],highlight:[{time:l,text:s}],thumbnails:{url:s,number:l,column:l,width:l,height:l},subtitle:{url:s,type:s,style:c,escape:i,encoding:s,onVttLoad:u},moreVideoAttr:c,i18n:c,icons:c,cssVar:c,customType:c}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"1shlC":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={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"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"12Atb":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>n));var a=e("./utils");class n{get state(){const{option:e,constructor:{kindOf:t}}=this.art;return!a.isMobile||!e.whitelist.length||e.whitelist.some((e=>{switch(t(e)){case"string":return"*"===e||a.userAgent.indexOf(e)>-1;case"function":return e(a.userAgent);case"regexp":return e.test(a.userAgent);default:return!1}}))}constructor(e){this.art=e}}},{"./utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"44X6u":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>n));var a=e("./utils");class n{static get html(){return'
Player version:
5.0.0
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
'}query(e){return(0,a.query)(e,this.$container)}desktop(){const{option:e}=this.art;e.useSSR||(this.$container.innerHTML=n.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.backdrop&&(0,a.addClass)(this.$player,"art-backdrop"),a.isMobile&&(0,a.addClass)(this.$player,"art-mobile")}mobile(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}destroy(e){e?(0,a.replaceElement)(this.$original,this.$container):(0,a.addClass)(this.$player,"art-destroy")}constructor(e){this.art=e;const{option:t,constructor:r,whitelist:o}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,a.query)(t.container),(0,a.errorHandle)(this.$container,`No container element found by ${t.container}`));const n=this.$container.tagName.toLowerCase();(0,a.errorHandle)("div"===n,`Unsupported container element type, only support 'div' but got '${n}'`),(0,a.errorHandle)(r.instances.every((e=>e.template.$container!==this.$container)),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.$original=this.$container.cloneNode(!0),o.state?this.desktop():this.mobile()}}},{"./utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],brIxD:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>k));var a=e("../utils"),n=e("./zh-cn.json"),i=o.interopDefault(n),s=e("./zh-tw.json"),l=o.interopDefault(s),c=e("./pl.json"),u=o.interopDefault(c),d=e("./cs.json"),p=o.interopDefault(d),f=e("./es.json"),h=o.interopDefault(f),m=e("./fa.json"),g=o.interopDefault(m),v=e("./fr.json"),y=o.interopDefault(v),b=e("./id.json"),x=o.interopDefault(b),w=e("./ru.json"),j=o.interopDefault(w);class k{init(){const e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,a.mergeDeep)(this.languages,e),this.init()}constructor(e){this.art=e,this.languages={"zh-cn":i.default,"zh-tw":l.default,pl:u.default,cs:p.default,es:h.default,fa:g.default,fr:y.default,id:x.default,ru:j.default},this.update(e.option.i18n)}}},{"../utils":"7drL4","./zh-cn.json":"aIXkw","./zh-tw.json":"1Segn","./pl.json":"kVsW6","./cs.json":"hsGmi","./es.json":"asiZS","./fa.json":"jxjmf","./fr.json":"5HXy9","./id.json":"gjULl","./ru.json":"hSqTW","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],aIXkw:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"统计信息","Close":"关闭","Video Load Failed":"加载失败","Volume":"音量","Play":"播放","Pause":"暂停","Rate":"速度","Mute":"静音","Video Flip":"画面翻转","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置","Screenshot":"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例","Default":"默认","Normal":"正常","Open":"打开","Switch Video":"切换","Switch Subtitle":"切换字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放","AirPlay":"隔空播放","AirPlay Not Available":"隔空播放不可用"}')},{}],"1Segn":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"統計訊息","Close":"關閉","Video Load Failed":"載入失敗","Volume":"音量","Play":"播放","Pause":"暫停","Rate":"速度","Mute":"靜音","Video Flip":"畫面翻轉","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新連接","Show Setting":"顯示设置","Hide Setting":"隱藏设置","Screenshot":"截圖","Play Speed":"播放速度","Aspect Ratio":"畫面比例","Default":"默認","Normal":"正常","Open":"打開","Switch Video":"切換","Switch Subtitle":"切換字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"網頁全屏","Exit Web Fullscreen":"退出網頁全屏","Mini Player":"迷你播放器","PIP Mode":"開啟畫中畫","Exit PIP Mode":"退出畫中畫","PIP Not Supported":"不支持畫中畫","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳轉播放","AirPlay":"隔空播放","AirPlay Not Available":"隔空播放不可用"}')},{}],kVsW6:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informacje o wideo","Close":"Zamknij","Video Load Failed":"Błąd ładowania wideo","Volume":"Głośność","Play":"Odtwórz","Pause":"Wstrzymaj","Rate":"Oceń","Mute":"Wycisz","Video Flip":"Rotacja wideo","Horizontal":"Pozioma","Vertical":"Pionowa","Reconnect":"Połącz ponownie","Show Setting":"Pokaż ustawienia","Hide Setting":"Ukryj ustawienia","Screenshot":"Zrzut ekranu","Play Speed":"Prędkość odtwarzania","Aspect Ratio":"Współczynnik proporcji","Default":"Domyślny","Normal":"Normalny","Open":"Otwórz","Switch Video":"Przełącz wideo","Switch Subtitle":"Przełącz napisy","Fullscreen":"Pełny ekran","Exit Fullscreen":"Zamknij pełny ekran","Web Fullscreen":"Tryb pełnej strony","Exit Web Fullscreen":"Zamknij tryb pełnej strony","Mini Player":"Miniodtwarzacz","PIP Mode":"Tryb PiP","Exit PIP Mode":"Zamknij tryb PiP","PIP Not Supported":"Tryb PiP nieobsługiwany","Fullscreen Not Supported":"Pełny ekran nieobsługiwany","Subtitle Offset":"Przesunięcie napisów","Last Seen":"Ostatnio widziany","Jump Play":"Skocz do gry","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay nie jest dostępny"}')},{}],hsGmi:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Info o videu","Close":"Zavřít","Video Load Failed":"Nahrání videa selhalo","Volume":"Hlasitost","Play":"Přehrát","Pause":"Pozastavit","Rate":"Hodnocení","Mute":"Ztlumit","Video Flip":"Otočit video","Horizontal":"Horizontálně","Vertical":"Vertikálně","Reconnect":"Opětovné připojení","Show Setting":"Zobrazit nastavení","Hide Setting":"Skrýt nastavení","Screenshot":"Snímek obrazovky","Play Speed":"Rychlost přehrávání","Aspect Ratio":"Poměr stran","Default":"Výchozí","Normal":"Normální","Open":"Otevřít","Switch Video":"Přepnout video","Switch Subtitle":"Přepnout titulky","Fullscreen":"Celá obrazovka","Exit Fullscreen":"Opustit režim celé obrazovky","Web Fullscreen":"Celá stránka","Exit Web Fullscreen":"Zavřít režim celé stránky","Mini Player":"Mini přehrávač","PIP Mode":"Režim PIP","Exit PIP Mode":"Opustit režim PIP","PIP Not Supported":"Režim PIP není podporován","Fullscreen Not Supported":"Režim celé obrazovky není podporován","Subtitle Offset":"Posun titulků","Last Seen":"Naposledy viděn","Jump Play":"Hra na skok","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay není k dispozici"}')},{}],asiZS:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Información del video","Close":"Cerrar","Video Load Failed":"Falló carga de video","Volume":"Volumen","Play":"Reproduciendo","Pause":"Pausa","Rate":"Velocidad","Mute":"Silencio","Video Flip":"Rotar video","Horizontal":"Horizontal","Vertical":"Vertical","Reconnect":"Reconectando","Show Setting":"Mostrar ajustes","Hide Setting":"Ocultar ajustes","Screenshot":"Captura de Pantalla","Play Speed":"Velocidad de reproducción","Aspect Ratio":"Relación de aspecto","Default":"Por defecto","Normal":"Normal","Open":"Abrir","Switch Video":"Cambiar video","Switch Subtitle":"Cambiar subtítulo","Fullscreen":"Pantalla completa","Exit Fullscreen":"Salir de Pantalla completa","Web Fullscreen":"Pantalla completa Web","Exit Web Fullscreen":"Salir de Pantalla completa","Mini Player":"Mini reproductor","PIP Mode":"Modo PiP","Exit PIP Mode":"Cerrar modo PiP","PIP Not Supported":"Modo PiP no compatible","Fullscreen Not Supported":"Pantalla completa no soportada","Subtitle Offset":"Ajuste subtítulo","Last Seen":"Visto última vez","Jump Play":"Saltar","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay no disponible"}')},{}],jxjmf:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"اطلاعات ویدیو","Close":"بستن","Video Load Failed":"بارگذاری ناموفق","Play":"پخش","Volume":"میزان صدا","Pause":"توقف","Rate":"نرخ","Mute":"سکوت","Video Flip":"چرخش تصویر","Horizontal":"افقی","Vertical":"عمودی","Reconnect":"اتصال مجدد","Show Setting":"تنظیمات","Hide Setting":"بستن تنظیمات","Screenshot":"عکس از صفحه","Play Speed":"سرعت پخش","Aspect Ratio":"نسبت تصویر","Default":"حالت پیشفرض","Normal":" حالت عادی","Open":"بازکردن","Switch Video":"تغییر ویدیو","Switch Subtitle":"نغییر زیرنویس","Fullscreen":"تمام صفحه","Exit Fullscreen":"کوچک کردن","Web Fullscreen":"حالت تئاتر","Exit Web Fullscreen":"خروج از حالت تئاتر","Mini Player":"حالت پخش کوچک","PIP Mode":" مینی پلیر","Exit PIP Mode":"خروج از مینی پلیر","PIP Not Supported":"عدم پشتیبانی از مینی پلیر","Fullscreen Not Supported":"عدم پشتیبانی از حالت تمام صفحه","Subtitle Offset":"افست زیرنویس","Last Seen":"آخرین بازدید","Jump Play":"جامپ پلی","AirPlay":"ایر پلی","AirPlay Not Available":"عدم پشتیبانی از ایرپلی"}')},{}],"5HXy9":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informations de la vidéo","Close":"Fermer","Video Load Failed":"Téléchargement de la vidéo échoué","Volume":"Volume","Play":"Lire","Pause":"Pause","Rate":"Vitesse","Mute":"Muet","Video Flip":"Rotation de la vidéo","Horizontal":"Horizontal","Vertical":"Vertical","Reconnect":"Reconnexion","Show Setting":"Afficher les paramètres","Hide Setting":"Cacher les paramètres","Screenshot":"Capture d\'écran","Play Speed":"Vitesse de lecture","Aspect Ratio":"Rapport d\'aspect","Default":"Défaut","Normal":"Normal","Open":"Ouvrir","Switch Video":"Basculer la vidéo","Switch Subtitle":"Basculer le sous-titre","Fullscreen":"Plein écran","Exit Fullscreen":"Quitter le plein écran","Web Fullscreen":"Plein écran Web","Exit Web Fullscreen":"Quitter le plein écran Web","Mini Player":"Mini lecteur","PIP Mode":"Mode PiP","Exit PIP Mode":"Fermer le mode PiP","PIP Not Supported":"Mode PiP non supporté","Fullscreen Not Supported":"Plein écran non supporté","Subtitle Offset":"Réglage des sous-titres","Last Seen":"Dernière position","Jump Play":"Continuer","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay non disponible"}')},{}],gjULl:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informasi Video","Close":"Tutup","Video Load Failed":"Gagal Memuat Video","Volume":"Volume","Play":"Putar","Pause":"Jeda","Rate":"Kecepatan","Mute":"Senyap","Video Flip":"Memutar Video","Horizontal":"Horizontal","Vertical":"Vertikal","Reconnect":"Menyambung Kembali","Show Setting":"Tampilkan Pengaturan","Hide Setting":"Sembunyikan Pengaturan","Screenshot":"Tangkapan Layar","Play Speed":"Kecepatan Putar","Aspect Ratio":"Rasio Aspek","Default":"Default","Normal":"Normal","Open":"Buka","Switch Video":"Ganti Video","Switch Subtitle":"Ganti Subtitle","Fullscreen":"Layar Penuh","Exit Fullscreen":"Keluar dari Layar Penuh","Web Fullscreen":"Layar Penuh Web","Exit Web Fullscreen":"Keluar dari Layar Penuh Web","Mini Player":"Pemutar Mini","PIP Mode":"Mode PIP","Exit PIP Mode":"Keluar dari Mode PIP","PIP Not Supported":"PIP Tidak Didukung","Fullscreen Not Supported":"Layar Penuh Tidak Didukung","Subtitle Offset":"Pergeseran Subtitle","Last Seen":"Terakhir Dilihat","Jump Play":"Lompat Putar","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay Tidak Tersedia"}')},{}],hSqTW:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Информация","Close":"Закрыть","Video Load Failed":"Ошибка загрузки видео","Volume":"Громкость","Play":"Играть","Pause":"Пауза","Rate":"Скорость","Mute":"Заглушить","Video Flip":"Развернуть видео","Horizontal":"Горизонтально","Vertical":"Вертикально","Reconnect":"Переподключенине","Show Setting":"Показать настройки","Hide Setting":"Скрыть настройки","Screenshot":"Скриншот","Play Speed":"Скорость воспроизведения","Aspect Ratio":"Соотношение сторон","Default":"По-умолчанию","Normal":"Нормальный","Open":"Открыть","Switch Video":"Переключить видео","Switch Subtitle":"Переключить субтитры","Fullscreen":"Полноэкранный режим","Exit Fullscreen":"Выход из полноэкранного режима","Web Fullscreen":"На все окно браузера","Exit Web Fullscreen":"Выход из режима полного окна","Mini Player":"Мини проигрыватель","PIP Mode":"Картинка в картинке","Exit PIP Mode":"Закрыть картинку в картинке","PIP Not Supported":"Картинка в картинке не поддерживается","Fullscreen Not Supported":"Полноэкранный режим не поддерживается","Subtitle Offset":"Настройка субтитров","Last Seen":"Последнее просмотренное","Jump Play":"Перейти","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay недоступен"}')},{}],iurL3:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>xe));var a=e("./urlMix"),n=o.interopDefault(a),i=e("./attrMix"),s=o.interopDefault(i),l=e("./playMix"),c=o.interopDefault(l),u=e("./pauseMix"),d=o.interopDefault(u),p=e("./toggleMix"),f=o.interopDefault(p),h=e("./seekMix"),m=o.interopDefault(h),g=e("./volumeMix"),v=o.interopDefault(g),y=e("./currentTimeMix"),b=o.interopDefault(y),x=e("./durationMix"),w=o.interopDefault(x),j=e("./switchMix"),k=o.interopDefault(j),S=e("./playbackRateMix"),P=o.interopDefault(S),T=e("./aspectRatioMix"),I=o.interopDefault(T),$=e("./screenshotMix"),M=o.interopDefault($),E=e("./fullscreenMix"),F=o.interopDefault(E),L=e("./fullscreenWebMix"),V=o.interopDefault(L),z=e("./pipMix"),C=o.interopDefault(z),A=e("./loadedMix"),D=o.interopDefault(A),R=e("./playedMix"),O=o.interopDefault(R),N=e("./playingMix"),H=o.interopDefault(N),W=e("./autoSizeMix"),_=o.interopDefault(W),q=e("./rectMix"),B=o.interopDefault(q),Y=e("./flipMix"),U=o.interopDefault(Y),G=e("./miniMix"),J=o.interopDefault(G),X=e("./loopMix"),K=o.interopDefault(X),Z=e("./posterMix"),Q=o.interopDefault(Z),ee=e("./autoHeightMix"),te=o.interopDefault(ee),re=e("./cssVarMix"),oe=o.interopDefault(re),ae=e("./themeMix"),ne=o.interopDefault(ae),ie=e("./titleMix"),se=o.interopDefault(ie),le=e("./typeMix"),ce=o.interopDefault(le),ue=e("./normalSizeMix"),de=o.interopDefault(ue),pe=e("./subtitleOffsetMix"),fe=o.interopDefault(pe),he=e("./airplayMix"),me=o.interopDefault(he),ge=e("./optionInit"),ve=o.interopDefault(ge),ye=e("./eventInit"),be=o.interopDefault(ye);class xe{constructor(e){(0,n.default)(e),(0,s.default)(e),(0,c.default)(e),(0,d.default)(e),(0,f.default)(e),(0,m.default)(e),(0,v.default)(e),(0,b.default)(e),(0,w.default)(e),(0,k.default)(e),(0,P.default)(e),(0,I.default)(e),(0,M.default)(e),(0,F.default)(e),(0,V.default)(e),(0,C.default)(e),(0,D.default)(e),(0,O.default)(e),(0,H.default)(e),(0,_.default)(e),(0,B.default)(e),(0,U.default)(e),(0,J.default)(e),(0,K.default)(e),(0,Q.default)(e),(0,te.default)(e),(0,oe.default)(e),(0,ne.default)(e),(0,se.default)(e),(0,ce.default)(e),(0,de.default)(e),(0,fe.default)(e),(0,me.default)(e),(0,be.default)(e),(0,ve.default)(e)}}},{"./urlMix":"4df8r","./attrMix":"8yJRD","./playMix":"kcbYx","./pauseMix":"k4Qa2","./toggleMix":"eubK3","./seekMix":"a3ccu","./volumeMix":"eZDDi","./currentTimeMix":"g2p9u","./durationMix":"fVWng","./switchMix":"fPwKz","./playbackRateMix":"5bAAP","./aspectRatioMix":"jdXVQ","./screenshotMix":"jvCvi","./fullscreenMix":"64ezs","./fullscreenWebMix":"jAgkC","./pipMix":"hX3WW","./loadedMix":"haZ44","./playedMix":"bJJD2","./playingMix":"b9QOv","./autoSizeMix":"6wkLS","./rectMix":"aPMtq","./flipMix":"fjHTo","./miniMix":"dNW08","./loopMix":"hU7SH","./posterMix":"j5OaI","./autoHeightMix":"edb1A","./cssVarMix":"kP5mj","./themeMix":"aLnna","./titleMix":"5WuSd","./typeMix":"jFGSq","./normalSizeMix":"lAdFL","./subtitleOffsetMix":"ahPb2","./airplayMix":"7KN5Z","./optionInit":"kH278","./eventInit":"5cgWT","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"4df8r":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,template:{$video:r}}=e;(0,o.def)(e,"url",{get:()=>r.currentSrc,async set(a){if(a){const n=t.type||(0,o.getExt)(a),i=t.customType[n];n&&i?(await(0,o.sleep)(),e.loading.show=!0,i.call(e,r,a,e)):(e.url&&e.url!==a&&e.once("video:canplay",(()=>{e.isReady&&e.emit("restart")})),r.src=a,e.option.url=a,e.emit("url",a))}else await(0,o.sleep)(),e.loading.show=!0}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8yJRD":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{template:{$video:t}}=e;(0,o.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kcbYx:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:a,constructor:{instances:n},template:{$video:i}}=e;(0,o.def)(e,"play",{value:async function(){const o=await i.play();if(r.show=t.get("Play"),e.emit("play"),a.mutex)for(let t=0;te.playing?e.pause():e.play()})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],a3ccu:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{notice:t}=e;(0,o.def)(e,"seek",{set(r){e.currentTime=r,e.emit("seek",e.currentTime),e.duration&&(t.show=`${(0,o.secondToTime)(e.currentTime)} / ${(0,o.secondToTime)(e.duration)}`)}}),(0,o.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,o.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],eZDDi:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:a,storage:n}=e;(0,o.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,o.clamp)(e,0,1),a.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&n.set("volume",t.volume)}}),(0,o.def)(e,"muted",{get:()=>t.muted,set:e=>{t.muted=e}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],g2p9u:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,o.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{r=parseFloat(r),Number.isNaN(r)||(t.currentTime=(0,o.clamp)(r,0,e.duration))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fVWng:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){(0,o.def)(e,"duration",{get:()=>{const{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fPwKz:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,option:r,notice:a}=e;function n(o,n,i){return new Promise((s=>{if(o===e.url)return s(o);const{playing:l}=e;e.pause(),URL.revokeObjectURL(e.url),e.url=o,e.once("video:canplay",(()=>{e.playbackRate=!1,e.aspectRatio=!1,e.flip="normal",e.autoSize=r.autoSize,e.currentTime=i,e.notice.show="",l&&e.play(),n&&(a.show=`${t.get("Switch Video")}: ${n}`),s(o)}))}))}(0,o.def)(e,"switchQuality",{value:(t,r)=>n(t,r,e.currentTime)}),(0,o.def)(e,"switchUrl",{value:(e,t)=>n(e,t,0)})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5bAAP":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:a}=e;(0,o.def)(e,"playbackRate",{get:()=>t.playbackRate,set(o){if(o){if(o===t.playbackRate)return;t.playbackRate=o,a.show=`${r.get("Rate")}: ${1===o?r.get("Normal"):`${o}x`}`}else e.playbackRate=1}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jdXVQ:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{template:{$video:t,$player:r},i18n:a,notice:n}=e;(0,o.def)(e,"aspectRatio",{get:()=>r.dataset.aspectRatio||"default",set(i){if(i||(i="default"),"default"===i)(0,o.setStyle)(t,"width",null),(0,o.setStyle)(t,"height",null),(0,o.setStyle)(t,"padding",null),delete r.dataset.aspectRatio;else{const e=i.split(":").map(Number),{videoWidth:a,videoHeight:n}=t,{clientWidth:s,clientHeight:l}=r,c=a/n,u=e[0]/e[1];if(c>u){const e=u*n/a;(0,o.setStyle)(t,"width",100*e+"%"),(0,o.setStyle)(t,"height","100%"),(0,o.setStyle)(t,"padding",`0 ${(s-s*e)/2}px`)}else{const e=a/u/n;(0,o.setStyle)(t,"width","100%"),(0,o.setStyle)(t,"height",100*e+"%"),(0,o.setStyle)(t,"padding",(l-l*e)/2+"px 0")}r.dataset.aspectRatio=i}n.show=`${a.get("Aspect Ratio")}: ${"default"===i?a.get("Default"):i}`,e.emit("aspectRatio",i)}}),(0,o.def)(e,"aspectRatioReset",{set(t){if(t){const{aspectRatio:t}=e;e.aspectRatio=t}}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jvCvi:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,notice:r,template:{$video:a}}=e,n=(0,o.createElement)("canvas");(0,o.def)(e,"getDataURL",{value:()=>new Promise(((e,t)=>{try{n.width=a.videoWidth,n.height=a.videoHeight,n.getContext("2d").drawImage(a,0,0),e(n.toDataURL("image/png"))}catch(e){r.show=e,t(e)}}))}),(0,o.def)(e,"getBlobUrl",{value:()=>new Promise(((e,t)=>{try{n.width=a.videoWidth,n.height=a.videoHeight,n.getContext("2d").drawImage(a,0,0),n.toBlob((t=>{e(URL.createObjectURL(t))}))}catch(e){r.show=e,t(e)}}))}),(0,o.def)(e,"screenshot",{value:async()=>{const r=await e.getDataURL();return(0,o.download)(r,`${t.title||"artplayer"}_${(0,o.secondToTime)(a.currentTime)}.png`),e.emit("screenshot",r),r}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"64ezs":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var a=e("../libs/screenfull"),n=o.interopDefault(a),i=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:o,$player:a}}=e;e.once("video:loadedmetadata",(()=>{n.default.isEnabled?(e=>{n.default.on("change",(()=>{e.emit("fullscreen",n.default.isFullscreen)})),(0,i.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(t){t?(e.normalSize="fullscreen",e.aspectRatioReset=!0,e.autoSize=!1,await n.default.request(a),(0,i.addClass)(a,"art-fullscreen"),e.emit("resize"),r.show=""):(e.aspectRatioReset=!0,e.autoSize=e.option.autoSize,await n.default.exit(),(0,i.removeClass)(a,"art-fullscreen"),e.emit("resize"),r.show="")}})})(e):document.fullscreenEnabled||o.webkitSupportsFullscreen?(e=>{(0,i.def)(e,"fullscreen",{get:()=>o.webkitDisplayingFullscreen,set(t){t?(e.normalSize="fullscreen",o.webkitEnterFullscreen(),e.emit("fullscreen",!0),r.show=""):(o.webkitExitFullscreen(),e.emit("fullscreen",!1),r.show="")}})})(e):(0,i.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,i.def)(e,"fullscreen",(0,i.get)(e,"fullscreen"))}))}},{"../libs/screenfull":"gWvOv","../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],gWvOv:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);const o=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],a=(()=>{if("undefined"==typeof document)return!1;const e=o[0],t={};for(const r of o){if(r[1]in document){for(const[o,a]of r.entries())t[e[o]]=a;return t}}return!1})(),n={change:a.fullscreenchange,error:a.fullscreenerror};let i={request:(e=document.documentElement,t)=>new Promise(((r,o)=>{const n=()=>{i.off("change",n),r()};i.on("change",n);const s=e[a.requestFullscreen](t);s instanceof Promise&&s.then(n).catch(o)})),exit:()=>new Promise(((e,t)=>{if(!i.isFullscreen)return void e();const r=()=>{i.off("change",r),e()};i.on("change",r);const o=document[a.exitFullscreen]();o instanceof Promise&&o.then(r).catch(t)})),toggle:(e,t)=>i.isFullscreen?i.exit():i.request(e,t),onchange(e){i.on("change",e)},onerror(e){i.on("error",e)},on(e,t){const r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){const r=n[e];r&&document.removeEventListener(r,t,!1)},raw:a};Object.defineProperties(i,{isFullscreen:{get:()=>Boolean(document[a.fullscreenElement])},element:{enumerable:!0,get:()=>document[a.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>Boolean(document[a.fullscreenEnabled])}}),a||(i={isEnabled:!1}),r.default=i},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jAgkC:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{notice:t,constructor:r,template:{$container:a,$player:n}}=e;(0,o.def)(e,"fullscreenWeb",{get:()=>(0,o.hasClass)(n,"art-fullscreen-web"),set(i){i?(r.FULLSCREEN_WEB_IN_BODY&&(0,o.append)(document.body,n),e.normalSize="fullscreenWeb",(0,o.addClass)(n,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=!1,e.emit("resize"),e.emit("fullscreenWeb",!0),t.show=""):(r.FULLSCREEN_WEB_IN_BODY&&(0,o.append)(a,n),(0,o.removeClass)(n,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=e.option.autoSize,e.emit("resize"),e.emit("fullscreenWeb",!1),t.show="")}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],hX3WW:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:a}}=e;document.pictureInPictureEnabled?function(e){const{template:{$video:t},proxy:r,notice:a}=e;t.disablePictureInPicture=!1,(0,o.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.normalSize="pip",t.requestPictureInPicture().catch((e=>{throw a.show=e,e}))):document.exitPictureInPicture().catch((e=>{throw a.show=e,e}))}}),r(t,"enterpictureinpicture",(()=>{e.emit("pip",!0)})),r(t,"leavepictureinpicture",(()=>{e.emit("pip",!1)}))}(e):a.webkitSupportsPresentationMode?function(e){const{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,o.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.normalSize="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}(e):(0,o.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],haZ44:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,o.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,o.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],bJJD2:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){(0,o.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],b9QOv:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,o.def)(e,"playing",{get:()=>!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"6wkLS":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{$container:t,$player:r,$video:a}=e.template;(0,o.def)(e,"autoSize",{get:()=>(0,o.hasClass)(t,"art-auto-size"),set(n){if(n){const{videoWidth:n,videoHeight:i}=a,{width:s,height:l}=t.getBoundingClientRect(),c=n/i,u=s/l;if((0,o.addClass)(t,"art-auto-size"),u>c){const e=l*c/s*100;(0,o.setStyle)(r,"width",`${e}%`),(0,o.setStyle)(r,"height","100%")}else{const e=s/c/l*100;(0,o.setStyle)(r,"width","100%"),(0,o.setStyle)(r,"height",`${e}%`)}e.emit("autoSize",{width:e.width,height:e.height})}else(0,o.removeClass)(t,"art-auto-size"),(0,o.setStyle)(r,"width",null),(0,o.setStyle)(r,"height",null),e.emit("autoSize")}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],aPMtq:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){(0,o.def)(e,"rect",{get:()=>e.template.$player.getBoundingClientRect()});const t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[a]})}(0,o.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,o.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fjHTo:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{template:{$player:t},i18n:r,notice:a}=e;(0,o.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(n){n||(n="normal"),"normal"===n?delete t.dataset.flip:t.dataset.flip=n,a.show=`${r.get("Video Flip")}: ${r.get((0,o.capitalize)(n))}`,e.emit("flip",n)}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],dNW08:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{icons:t,proxy:r,storage:a,template:{$player:n,$video:i}}=e;let s=!1,l=0,c=0;function u(){const{$mini:t}=e.template;t&&((0,o.removeClass)(n,"art-mini"),(0,o.setStyle)(t,"display","none"),n.prepend(i),e.emit("mini",!1))}function d(t,r){e.playing?((0,o.setStyle)(t,"display","none"),(0,o.setStyle)(r,"display","flex")):((0,o.setStyle)(t,"display","flex"),(0,o.setStyle)(r,"display","none"))}function p(){const{$mini:t}=e.template,r=t.getBoundingClientRect(),n=window.innerHeight-r.height-50,i=window.innerWidth-r.width-50;a.set("top",n),a.set("left",i),(0,o.setStyle)(t,"top",`${n}px`),(0,o.setStyle)(t,"left",`${i}px`)}(0,o.def)(e,"mini",{get:()=>(0,o.hasClass)(n,"art-mini"),set(f){if(f){(0,o.addClass)(n,"art-mini");const f=function(){const{$mini:n}=e.template;if(n)return(0,o.append)(n,i),(0,o.setStyle)(n,"display","flex");{const n=(0,o.createElement)("div");(0,o.addClass)(n,"art-mini-popup"),(0,o.append)(document.body,n),e.template.$mini=n,(0,o.append)(n,i);const p=(0,o.append)(n,'
');(0,o.append)(p,t.close),r(p,"click",u);const f=(0,o.append)(n,'
'),h=(0,o.append)(f,t.play),m=(0,o.append)(f,t.pause);return r(h,"click",(()=>e.play())),r(m,"click",(()=>e.pause())),d(h,m),e.on("video:playing",(()=>d(h,m))),e.on("video:pause",(()=>d(h,m))),e.on("video:timeupdate",(()=>d(h,m))),r(n,"mousedown",(e=>{s=0===e.button,l=e.pageX,c=e.pageY})),e.on("document:mousemove",(e=>{if(s){(0,o.addClass)(n,"art-mini-droging");const t=e.pageX-l,r=e.pageY-c;(0,o.setStyle)(n,"transform",`translate(${t}px, ${r}px)`)}})),e.on("document:mouseup",(()=>{if(s){s=!1,(0,o.removeClass)(n,"art-mini-droging");const e=n.getBoundingClientRect();a.set("left",e.left),a.set("top",e.top),(0,o.setStyle)(n,"left",`${e.left}px`),(0,o.setStyle)(n,"top",`${e.top}px`),(0,o.setStyle)(n,"transform",null)}})),n}}(),h=a.get("top"),m=a.get("left");h&&m?((0,o.setStyle)(f,"top",`${h}px`),(0,o.setStyle)(f,"left",`${m}px`),(0,o.isInViewport)(f)||p()):p(),e.emit("mini",!0)}else u()}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],hU7SH:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){let t=[];(0,o.def)(e,"loop",{get:()=>t,set:r=>{if(Array.isArray(r)&&"number"==typeof r[0]&&"number"==typeof r[1]){const a=(0,o.clamp)(r[0],0,Math.min(r[1],e.duration)),n=(0,o.clamp)(r[1],a,e.duration);t=n-a>=1?[a,n]:[]}else t=[];e.emit("loop",t)}}),e.on("video:timeupdate",(()=>{t.length&&(e.currentTimet[1])&&(e.seek=t[0])}))}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],j5OaI:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,template:{$poster:r}}=e;(0,o.def)(e,"poster",{get:()=>t.poster,set(e){t.poster=e,(0,o.setStyle)(r,"backgroundImage",`url(${e})`)}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],edb1A:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,template:{$container:r,$video:a}}=e,n=r.style.height;(0,o.def)(e,"autoHeight",{get:()=>(0,o.hasClass)(r,"art-auto-height"),set(i){if(i){const{clientWidth:n}=r,{videoHeight:i,videoWidth:s}=a,l=i*(n/s);(0,o.setStyle)(r,"height",l+"px"),(0,o.addClass)(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight",l)}else(0,o.setStyle)(r,"height",n),(0,o.removeClass)(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight")}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kP5mj:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{$player:t}=e.template;(0,o.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],aLnna:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t}=e;(0,o.def)(e,"theme",{get:()=>e.cssProperty("--art-theme"),set(r){t.theme=r,e.cssProperty("--art-theme",r)}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5WuSd":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){(0,o.def)(e,"title",{get:()=>e.option.title,set(t){e.option.title=t}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jFGSq:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){(0,o.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],lAdFL:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const t=["mini","pip","fullscreen","fullscreenWeb"];(0,o.def)(e,"normalSize",{get:()=>t.every((t=>!e[t])),set(r){t.filter((e=>e!==r)).forEach((t=>{e[t]&&(e[t]=!1)}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],ahPb2:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{clamp:t}=e.constructor.utils,{notice:r,template:a,i18n:n}=e;let i=0,s=[];e.on("subtitle:switch",(()=>{s=[]})),(0,o.def)(e,"subtitleOffset",{get:()=>i,set(o){if(a.$track&&a.$track.track){const l=Array.from(a.$track.track.cues);i=t(o,-5,5);for(let r=0;r{switch(e.availability){case"available":i=!0;break;case"not-available":i=!1}})):i=!1,(0,o.def)(e,"airplay",{value(){i?(n.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kH278:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,storage:r,template:{$video:a,$poster:n}}=e;for(const r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(a.volume=(0,o.clamp)(t.volume,0,1));const i=r.get("volume");"number"==typeof i&&(a.volume=(0,o.clamp)(i,0,1)),t.poster&&(0,o.setStyle)(n,"backgroundImage",`url(${t.poster})`),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme);for(const r in t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5cgWT":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var a=e("../config"),n=o.interopDefault(a),i=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:o,constructor:a,proxy:s,template:{$player:l,$video:c,$poster:u}}=e;let d=0;for(let t=0;t{e.emit(`video:${t.type}`,t)}));e.on("video:canplay",(()=>{d=0,e.loading.show=!1})),e.once("video:canplay",(()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")})),e.on("video:ended",(()=>{o.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)})),e.on("video:error",(async n=>{d{e.autoSize=o.autoSize,i.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)})),e.on("video:loadstart",(()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0})),e.on("video:pause",(()=>{e.controls.show=!0,e.mask.show=!0})),e.on("video:play",(()=>{e.mask.show=!1,(0,i.setStyle)(u,"display","none")})),e.on("video:playing",(()=>{e.mask.show=!1})),e.on("video:seeked",(()=>{e.loading.show=!1})),e.on("video:seeking",(()=>{e.loading.show=!0,e.mask.show=!1})),e.on("video:timeupdate",(()=>{e.mask.show=!1})),e.on("video:waiting",(()=>{e.loading.show=!0,e.mask.show=!1}))}},{"../config":"1shlC","../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],krUTp:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>V));var a=e("../utils"),n=e("../utils/component"),i=o.interopDefault(n),s=e("./fullscreen"),l=o.interopDefault(s),c=e("./fullscreenWeb"),u=o.interopDefault(c),d=e("./pip"),p=o.interopDefault(d),f=e("./playAndPause"),h=o.interopDefault(f),m=e("./progress"),g=o.interopDefault(m),v=e("./time"),y=o.interopDefault(v),b=e("./volume"),x=o.interopDefault(b),w=e("./setting"),j=o.interopDefault(w),k=e("./thumbnails"),S=o.interopDefault(k),P=e("./screenshot"),T=o.interopDefault(P),I=e("./quality"),$=o.interopDefault(I),M=e("./loop"),E=o.interopDefault(M),F=e("./airplay"),L=o.interopDefault(F);class V extends i.default{init(){const{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),!e.thumbnails.url||e.isLive||a.isMobile||this.add((0,S.default)({name:"thumbnails",position:"top",index:20})),this.add((0,E.default)({name:"loop",position:"top",index:30})),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&this.add((0,$.default)({name:"quality",position:"right",index:10})),e.screenshot&&!a.isMobile&&this.add((0,T.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,p.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,L.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,u.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;t{this.show=!0,(0,a.removeClass)(o,"art-hide-cursor"),(0,a.addClass)(o,"art-hover"),n=Date.now()})),e.on("video:timeupdate",(()=>{!e.isInput&&e.playing&&this.show&&Date.now()-n>=r.CONTROL_HIDE_TIME&&(this.show=!1,(0,a.addClass)(o,"art-hide-cursor"),(0,a.removeClass)(o,"art-hover"))})),this.init()}}},{"../utils":"7drL4","../utils/component":"gEwXu","./fullscreen":"aphct","./fullscreenWeb":"86CsN","./pip":"8EbkL","./playAndPause":"juUdj","./progress":"3g6RZ","./time":"9BztV","./volume":"8ZEFD","./setting":"4Dw5D","./thumbnails":"k0DvK","./screenshot":"bRP5Y","./quality":"jW8r3","./loop":"eJYjN","./airplay":"eFnNY","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],gEwXu:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>c));var a=e("./dom"),n=e("./error"),i=e("option-validator"),s=o.interopDefault(i),l=e("../scheme");class c{get show(){return(0,a.hasClass)(this.art.template.$player,`art-${this.name}-show`)}set show(e){const{$player:t}=this.art.template,r=`art-${this.name}-show`;e?(0,a.addClass)(t,r):(0,a.removeClass)(t,r),this.art.emit(this.name,e)}toggle(){this.show=!this.show}add(e){const t="function"==typeof e?e(this.art):e;if(t.html=t.html||"",(0,s.default)(t,l.ComponentOption),!this.$parent||!this.name||t.disable)return;const r=t.name||`${this.name}${this.id}`,o=this.cache.get(r);(0,n.errorHandle)(!o,`Can't add an existing [${r}] to the [${this.name}]`),this.id+=1;const i=(0,a.createElement)("div");(0,a.addClass)(i,`art-${this.name}`),(0,a.addClass)(i,`art-${this.name}-${r}`);const c=Array.from(this.$parent.children);i.dataset.index=t.index||this.id;const u=c.find((e=>Number(e.dataset.index)>=Number(i.dataset.index)));u?u.insertAdjacentElement("beforebegin",i):(0,a.append)(this.$parent,i),t.html&&(0,a.append)(i,t.html),t.style&&(0,a.setStyles)(i,t.style),t.tooltip&&(0,a.tooltip)(i,t.tooltip);const d=[];if(t.click){const e=this.art.events.proxy(i,"click",(e=>{e.preventDefault(),t.click.call(this.art,this,e)}));d.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.addSelector(t,i,d),this[r]=i,this.cache.set(r,{$ref:i,events:d,option:t}),t.mounted&&t.mounted.call(this.art,i),i}addSelector(e,t,r){const{hover:o,proxy:n}=this.art.events;(0,a.addClass)(t,"art-control-selector");const i=(0,a.createElement)("div");(0,a.addClass)(i,"art-selector-value"),(0,a.append)(i,e.html),t.innerText="",(0,a.append)(t,i);const s=e.selector.map(((e,t)=>`
${e.html}
`)).join(""),l=(0,a.createElement)("div");(0,a.addClass)(l,"art-selector-list"),(0,a.append)(l,s),(0,a.append)(t,l);const c=()=>{const e=(0,a.getStyle)(t,"width")/2-(0,a.getStyle)(l,"width")/2;l.style.left=`${e}px`};o(t,c);const u=n(l,"click",(async t=>{const r=(t.composedPath()||[]).find((e=>(0,a.hasClass)(e,"art-selector-item")));if(!r)return;(0,a.inverseClass)(r,"art-current");const o=Number(r.dataset.index),n=e.selector[o]||{};if(i.innerText=r.innerText,e.onSelect){const o=await e.onSelect.call(this.art,n,r,t);(0,a.isStringOrNumber)(o)&&(i.innerHTML=o)}c()}));r.push(u)}remove(e){const t=this.cache.get(e);(0,n.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;e({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{const{proxy:r,icons:a,i18n:n}=t,i=(0,o.append)(e,a.fullscreenOn),s=(0,o.append)(e,a.fullscreenOff);(0,o.setStyle)(s,"display","none"),r(e,"click",(()=>{t.fullscreen=!t.fullscreen})),t.on("fullscreen",(t=>{t?((0,o.tooltip)(e,n.get("Exit Fullscreen")),(0,o.setStyle)(i,"display","none"),(0,o.setStyle)(s,"display","inline-flex")):((0,o.tooltip)(e,n.get("Fullscreen")),(0,o.setStyle)(i,"display","inline-flex"),(0,o.setStyle)(s,"display","none"))}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"86CsN":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{const{proxy:r,icons:a,i18n:n}=t,i=(0,o.append)(e,a.fullscreenWebOn),s=(0,o.append)(e,a.fullscreenWebOff);(0,o.setStyle)(s,"display","none"),r(e,"click",(()=>{t.fullscreenWeb=!t.fullscreenWeb})),t.on("fullscreenWeb",(t=>{t?((0,o.tooltip)(e,n.get("Exit Web Fullscreen")),(0,o.setStyle)(i,"display","none"),(0,o.setStyle)(s,"display","inline-flex")):((0,o.tooltip)(e,n.get("Web Fullscreen")),(0,o.setStyle)(i,"display","inline-flex"),(0,o.setStyle)(s,"display","none"))}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8EbkL":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{const{proxy:r,icons:a,i18n:n}=t;(0,o.append)(e,a.pip),r(e,"click",(()=>{t.pip=!t.pip})),t.on("pip",(t=>{(0,o.tooltip)(e,n.get(t?"Exit PIP Mode":"PIP Mode"))}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],juUdj:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const{proxy:r,icons:a,i18n:n}=t,i=(0,o.append)(e,a.play),s=(0,o.append)(e,a.pause);function l(){(0,o.setStyle)(i,"display","flex"),(0,o.setStyle)(s,"display","none")}function c(){(0,o.setStyle)(i,"display","none"),(0,o.setStyle)(s,"display","flex")}(0,o.tooltip)(i,n.get("Play")),(0,o.tooltip)(s,n.get("Pause")),r(i,"click",(()=>{t.play()})),r(s,"click",(()=>{t.pause()})),t.playing?c():l(),t.on("video:playing",(()=>{c()})),t.on("video:pause",(()=>{l()}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"3g6RZ":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"getPosFromEvent",(()=>n)),o.export(r,"setCurrentTime",(()=>i));var a=e("../utils");function n(e,t){const{$progress:r}=e.template,{left:o}=r.getBoundingClientRect(),n=a.isMobile?t.touches[0].clientX:t.pageX,i=(0,a.clamp)(n-o,0,r.clientWidth),s=i/r.clientWidth*e.duration;return{second:s,time:(0,a.secondToTime)(s),width:i,percentage:(0,a.clamp)(i/r.clientWidth,0,1)}}function i(e,t){if(e.isRotate){const r=t.touches[0].clientY/e.height,o=r*e.duration;e.emit("setBar","played",r),e.seek=o}else{const{second:r,percentage:o}=n(e,t);e.emit("setBar","played",o),e.seek=r}}r.default=function(e){return t=>{const{icons:r,option:o,proxy:s}=t;return{...e,html:'
',mounted:e=>{let l=!1;const c=(0,a.query)(".art-progress-hover",e),u=(0,a.query)(".art-progress-loaded",e),d=(0,a.query)(".art-progress-played",e),p=(0,a.query)(".art-progress-highlight",e),f=(0,a.query)(".art-progress-indicator",e),h=(0,a.query)(".art-progress-tip",e);function m(e,t){"loaded"===e&&(0,a.setStyle)(u,"width",100*t+"%"),"played"===e&&((0,a.setStyle)(d,"width",100*t+"%"),(0,a.setStyle)(f,"left",100*t+"%"))}r.indicator?(0,a.append)(f,r.indicator):(0,a.setStyle)(f,"backgroundColor","var(--art-theme)"),t.on("video:loadedmetadata",(()=>{for(let e=0;e`;(0,a.append)(p,i)}})),m("loaded",t.loaded),t.on("setBar",((e,t)=>{m(e,t)})),t.on("video:progress",(()=>{m("loaded",t.loaded)})),t.on("video:timeupdate",(()=>{m("played",t.played)})),t.on("video:ended",(()=>{m("played",1)})),a.isMobile||(s(e,"click",(e=>{e.target!==f&&i(t,e)})),s(e,"mousemove",(r=>{!function(e){const{width:r}=n(t,e);(0,a.setStyle)(c,"width",`${r}px`),(0,a.setStyle)(c,"display","flex")}(r),(0,a.setStyle)(h,"display","flex"),(0,a.includeFromEvent)(r,p)?function(r){const{width:o}=n(t,r),{text:i}=r.target.dataset;h.innerHTML=i;const s=h.clientWidth;o<=s/2?(0,a.setStyle)(h,"left",0):o>e.clientWidth-s/2?(0,a.setStyle)(h,"left",e.clientWidth-s+"px"):(0,a.setStyle)(h,"left",o-s/2+"px")}(r):function(r){const{width:o,time:i}=n(t,r);h.innerHTML=i;const s=h.clientWidth;o<=s/2?(0,a.setStyle)(h,"left",0):o>e.clientWidth-s/2?(0,a.setStyle)(h,"left",e.clientWidth-s+"px"):(0,a.setStyle)(h,"left",o-s/2+"px")}(r)})),s(e,"mouseleave",(()=>{(0,a.setStyle)(h,"display","none"),(0,a.setStyle)(c,"display","none")})),s(e,"mousedown",(e=>{l=0===e.button})),t.on("document:mousemove",(e=>{if(l){const{second:r,percentage:o}=n(t,e);m("played",o),t.seek=r}})),t.on("document:mouseup",(()=>{l&&(l=!1)})))}}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"9BztV":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,style:{cursor:"auto",margin:"0 10px"},mounted:e=>{function r(){const r=`${(0,o.secondToTime)(t.currentTime)} / ${(0,o.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();const a=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;e({...e,mounted:e=>{const{proxy:r,icons:a}=t,n=(0,o.append)(e,a.volume),i=(0,o.append)(e,a.volumeClose),s=(0,o.append)(e,'
'),l=(0,o.append)(s,'
'),c=(0,o.append)(l,'
'),u=(0,o.append)(l,'
'),d=(0,o.append)(u,'
'),p=(0,o.append)(d,'
'),f=(0,o.append)(u,'
');function h(e){const{top:t,height:r}=u.getBoundingClientRect();return 1-(e.pageY-t)/r}function m(){if(t.muted||0===t.volume)(0,o.setStyle)(n,"display","none"),(0,o.setStyle)(i,"display","flex"),(0,o.setStyle)(f,"top","100%"),(0,o.setStyle)(p,"top","100%"),c.innerText=0;else{const e=100*t.volume;(0,o.setStyle)(n,"display","flex"),(0,o.setStyle)(i,"display","none"),(0,o.setStyle)(f,"top",100-e+"%"),(0,o.setStyle)(p,"top",100-e+"%"),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(n,"click",(()=>{t.muted=!0})),r(i,"click",(()=>{t.muted=!1})),o.isMobile)(0,o.setStyle)(s,"display","none");else{let e=!1;r(u,"mousedown",(r=>{e=0===r.button,t.volume=h(r)})),t.on("document:mousemove",(r=>{e&&(t.muted=!1,t.volume=h(r))})),t.on("document:mouseup",(()=>{e&&(e=!1)}))}}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"4Dw5D":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{const{proxy:r,icons:a,i18n:n}=t;(0,o.append)(e,a.setting),r(e,"click",(()=>{t.setting.toggle(),t.setting.updateStyle()})),t.on("setting",(t=>{(0,o.tooltip)(e,n.get(t?"Hide Setting":"Show Setting"))}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],k0DvK:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils"),a=e("./progress");r.default=function(e){return t=>({...e,mounted:e=>{const{option:r,template:{$progress:n,$video:i},events:{proxy:s,loadImg:l}}=t;let c=null,u=!1,d=!1;s(n,"mousemove",(async s=>{if(!u){u=!0;const e=await l(r.thumbnails.url);c=e,d=!0}d&&((0,o.setStyle)(e,"display","flex"),function(s){const{width:l}=(0,a.getPosFromEvent)(t,s),{url:u,number:d,column:p,width:f,height:h}=r.thumbnails,m=f||c.naturalWidth/p,g=h||m/(i.videoWidth/i.videoHeight),v=n.clientWidth/d,y=Math.floor(l/v),b=Math.ceil(y/p)-1,x=y%p||p-1;(0,o.setStyle)(e,"backgroundImage",`url(${u})`),(0,o.setStyle)(e,"height",`${g}px`),(0,o.setStyle)(e,"width",`${m}px`),(0,o.setStyle)(e,"backgroundPosition",`-${x*m}px -${b*g}px`),l<=m/2?(0,o.setStyle)(e,"left",0):l>n.clientWidth-m/2?(0,o.setStyle)(e,"left",n.clientWidth-m+"px"):(0,o.setStyle)(e,"left",l-m/2+"px")}(s))})),s(n,"mouseleave",(()=>{(0,o.setStyle)(e,"display","none")})),t.on("hover",(t=>{t||(0,o.setStyle)(e,"display","none")}))}})}},{"../utils":"7drL4","./progress":"3g6RZ","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],bRP5Y:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{const{proxy:r,icons:a}=t;(0,o.append)(e,a.screenshot),r(e,"click",(()=>{t.screenshot()}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jW8r3:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>{const r=t.option.quality,o=r.find((e=>e.default))||r[0];return{...e,style:{marginRight:"10px"},html:o?o.html:"",selector:r,onSelect(e){t.switchQuality(e.url,e.html)}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],eJYjN:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const r=(0,o.append)(e,''),a=(0,o.append)(e,'');t.on("loop",(n=>{n&&n.length?((0,o.setStyle)(e,"display","flex"),(0,o.setStyle)(r,"left",`calc(${n[0]/t.duration*100}% - ${r.clientWidth}px)`),(0,o.setStyle)(a,"left",n[1]/t.duration*100+"%")):(0,o.setStyle)(e,"display","none")}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],eFnNY:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{const{proxy:r,icons:a}=t;(0,o.append)(e,a.airplay),r(e,"click",(()=>t.airplay()))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],XqyHm:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>b));var a=e("../utils"),n=e("../utils/component"),i=o.interopDefault(n),s=e("./playbackRate"),l=o.interopDefault(s),c=e("./aspectRatio"),u=o.interopDefault(c),d=e("./flip"),p=o.interopDefault(d),f=e("./info"),h=o.interopDefault(f),m=e("./version"),g=o.interopDefault(m),v=e("./close"),y=o.interopDefault(v);class b extends i.default{init(){const{option:e,proxy:t,template:{$player:r,$contextmenu:o}}=this.art;e.playbackRate&&this.add((0,l.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,u.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,p.default)({name:"flip",index:30})),this.add((0,h.default)({name:"info",index:40})),this.add((0,g.default)({name:"version",index:50})),this.add((0,y.default)({name:"close",index:60}));for(let t=0;t{if(e.preventDefault(),!this.art.constructor.CONTEXTMENU)return;this.show=!0;const t=e.clientX,n=e.clientY,{height:i,width:s,left:l,top:c}=r.getBoundingClientRect(),{height:u,width:d}=o.getBoundingClientRect();let p=t-l,f=n-c;t+d>l+s&&(p=s-d),n+u>c+i&&(f=i-u),(0,a.setStyles)(o,{top:`${f}px`,left:`${p}px`})})),t(r,"click",(e=>{(0,a.includeFromEvent)(e,o)||(this.show=!1)})),this.art.on("blur",(()=>{this.show=!1}))}constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,a.isMobile||this.init()}}},{"../utils":"7drL4","../utils/component":"gEwXu","./playbackRate":"8vD6h","./aspectRatio":"lOf6Q","./flip":"9d8Kb","./info":"96FcY","./version":"2IeXY","./close":"8mYqj","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8vD6h":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{PLAYBACK_RATE:a}}=t,n=a.map((e=>`${1===e?r.get("Normal"):e.toFixed(1)}`)).join("");return{...e,html:`${r.get("Play Speed")}: ${n}`,click:(e,r)=>{const{value:o}=r.target.dataset;o&&(t.playbackRate=Number(o),e.show=!1)},mounted:e=>{const r=(0,o.query)('[data-value="1"]',e);r&&(0,o.inverseClass)(r,"art-current"),t.on("video:ratechange",(()=>{const r=(0,o.queryAll)("span",e).find((e=>Number(e.dataset.value)===t.playbackRate));r&&(0,o.inverseClass)(r,"art-current")}))}}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],lOf6Q:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{ASPECT_RATIO:a}}=t,n=a.map((e=>`${"default"===e?r.get("Default"):e}`)).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${n}`,click:(e,r)=>{const{value:o}=r.target.dataset;o&&(t.aspectRatio=o,e.show=!1)},mounted:e=>{const r=(0,o.query)('[data-value="default"]',e);r&&(0,o.inverseClass)(r,"art-current"),t.on("aspectRatio",(t=>{const r=(0,o.queryAll)("span",e).find((e=>e.dataset.value===t));r&&(0,o.inverseClass)(r,"art-current")}))}}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"9d8Kb":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{FLIP:a}}=t,n=a.map((e=>`${r.get((0,o.capitalize)(e))}`)).join("");return{...e,html:`${r.get("Video Flip")}: ${n}`,click:(e,r)=>{const{value:o}=r.target.dataset;o&&(t.flip=o.toLowerCase(),e.show=!1)},mounted:e=>{const r=(0,o.query)('[data-value="normal"]',e);r&&(0,o.inverseClass)(r,"art-current"),t.on("flip",(t=>{const r=(0,o.queryAll)("span",e).find((e=>e.dataset.value===t));r&&(0,o.inverseClass)(r,"art-current")}))}}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"96FcY":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"2IeXY":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return{...e,html:'ArtPlayer 5.0.0'}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8mYqj":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fiMkm:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>s));var a=e("./utils"),n=e("./utils/component"),i=o.interopDefault(n);class s extends i.default{init(){const{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:o,$video:n}}=this.art;e(o,"click",(()=>{this.show=!1}));let i=null;const s=(0,a.queryAll)("[data-video]",r)||[];this.art.on("destroy",(()=>{clearTimeout(i)})),function e(){for(let e=0;ed));var a=e("./utils"),n=e("./utils/component"),i=o.interopDefault(n),s=e("option-validator"),l=o.interopDefault(s),c=e("./scheme"),u=o.interopDefault(c);class d extends i.default{get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video.textTracks[0]}get activeCue(){return this.textTrack.activeCues[0]}style(e,t){const{$subtitle:r}=this.art.template;return"object"==typeof e?(0,a.setStyles)(r,e):(0,a.setStyle)(r,e,t)}update(){const{$subtitle:e}=this.art.template;e.innerHTML="",this.activeCue&&(this.art.option.subtitle.escape?e.innerHTML=this.activeCue.text.split(/\r?\n/).map((e=>`

${(0,a.escape)(e)}

`)).join(""):e.innerHTML=this.activeCue.text,this.art.emit("subtitleUpdate",this.activeCue.text))}async switch(e,t={}){const{i18n:r,notice:o,option:a}=this.art,n={...a.subtitle,...t,url:e},i=await this.init(n);return t.name&&(o.show=`${r.get("Switch Subtitle")}: ${t.name}`),i}createTrack(e,t){const{template:r,proxy:o}=this.art,{$video:n,$track:i}=r,s=(0,a.createElement)("track");s.default=!0,s.kind=e,s.src=t,s.track.mode="hidden",this.eventDestroy(),(0,a.remove)(i),(0,a.append)(n,s),r.$track=s,this.eventDestroy=o(this.textTrack,"cuechange",(()=>this.update()))}async init(e){const{notice:t,template:{$subtitle:r}}=this.art;if((0,l.default)(e,u.default.subtitle),e.url)return this.style(e.style),fetch(e.url).then((e=>e.arrayBuffer())).then((t=>{const r=new TextDecoder(e.encoding).decode(t);switch(this.art.emit("subtitleLoad",e.url),e.type||(0,a.getExt)(e.url)){case"srt":{const t=(0,a.srtToVtt)(r),o=e.onVttLoad(t);return(0,a.vttToBlob)(o)}case"ass":{const t=(0,a.assToVtt)(r),o=e.onVttLoad(t);return(0,a.vttToBlob)(o)}case"vtt":{const t=e.onVttLoad(r);return(0,a.vttToBlob)(t)}default:return e.url}})).then((e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e),this.art.emit("subtitleSwitch",e)),e))).catch((e=>{throw t.show=e,e}))}constructor(e){super(e),this.name="subtitle",this.eventDestroy=()=>null,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",(()=>{if(!this.url)return;const e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))}))}}},{"./utils":"7drL4","./utils/component":"gEwXu","option-validator":"e1J0t","./scheme":"1s2bZ","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],aoN05:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>b));var a=e("../utils/error"),n=e("./clickInit"),i=o.interopDefault(n),s=e("./hoverInit"),l=o.interopDefault(s),c=e("./moveInit"),u=o.interopDefault(c),d=e("./resizeInit"),p=o.interopDefault(d),f=e("./gestureInit"),h=o.interopDefault(f),m=e("./viewInit"),g=o.interopDefault(m),v=e("./documentInit"),y=o.interopDefault(v);class b{proxy(e,t,r,o={}){if(Array.isArray(t))return t.map((t=>this.proxy(e,t,r,o)));e.addEventListener(t,r,o);const a=()=>e.removeEventListener(t,r,o);return this.destroyEvents.push(a),a}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}loadImg(e){return new Promise(((t,r)=>{let o;if(e instanceof HTMLImageElement)o=e;else{if("string"!=typeof e)return r(new(0,a.ArtPlayerError)("Unable to get Image"));o=new Image,o.src=e}if(o.complete)return t(o);this.proxy(o,"load",(()=>t(o))),this.proxy(o,"error",(()=>r(new(0,a.ArtPlayerError)(`Failed to load Image: ${o.src}`))))}))}remove(e){const t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;e{(0,o.includeFromEvent)(t,a)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))}));let i=0;t.proxy(n,"click",(t=>{const a=Date.now();a-i<=r.DB_CLICE_TIME?(e.emit("dblclick",t),o.isMobile?e.isLock||e.toggle():e.fullscreen=!e.fullscreen):(e.emit("click",t),o.isMobile||e.toggle()),i=a}))}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kRkOi:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e,t){const{$player:r}=e.template;t.hover(r,(t=>{(0,o.addClass)(r,"art-hover"),e.emit("hover",!0,t)}),(t=>{(0,o.removeClass)(r,"art-hover"),e.emit("hover",!1,t)}))}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"6MhWq":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e,t){const{$player:r}=e.template;t.proxy(r,"mousemove",(t=>{e.emit("mousemove",t)}))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fcoK8:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e,t){const{option:r}=e,a=(0,o.throttle)((()=>{e.normalSize&&(e.autoSize=r.autoSize),e.aspectRatioReset=!0,e.notice.show="",e.emit("resize")}),e.constructor.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],(()=>{a()})),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",(()=>{a()}))}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jgnYa:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils"),a=e("../control/progress");r.default=function(e,t){if(o.isMobile&&!e.option.isLive){const{$video:r,$progress:n}=e.template;let i=null,s=!1,l=0,c=0,u=0;const d=t=>{if(1===t.touches.length&&!e.isLock){i===n&&(0,a.setCurrentTime)(e,t),s=!0;const{clientX:r,clientY:o}=t.touches[0];l=r,c=o,u=e.currentTime}},p=t=>{if(1===t.touches.length&&s&&e.duration){const{clientX:a,clientY:n}=t.touches[0],s=(0,o.clamp)((a-l)/e.width,-1,1),d=(0,o.clamp)((n-c)/e.height,-1,1),p=e.isRotate?d:s,f=i===r?e.constructor.TOUCH_MOVE_RATIO:1,h=(0,o.clamp)(u+e.duration*p*f,0,e.duration);e.seek=h,e.emit("setBar","played",(0,o.clamp)(h/e.duration,0,1)),e.notice.show=`${(0,o.secondToTime)(h)} / ${(0,o.secondToTime)(e.duration)}`}},f=()=>{s&&(l=0,c=0,u=0,s=!1,i=null)};t.proxy(n,"touchstart",(e=>{i=n,d(e)})),t.proxy(r,"touchstart",(e=>{i=r,d(e)})),t.proxy(r,"touchmove",p),t.proxy(n,"touchmove",p),t.proxy(document,"touchend",f)}}},{"../utils":"7drL4","../control/progress":"3g6RZ","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],k09YH:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e,t){const{option:r,constructor:a,template:{$container:n}}=e,i=(0,o.throttle)((()=>{e.emit("view",(0,o.isInViewport)(n,a.SCROLL_GAP))}),a.SCROLL_TIME);t.proxy(window,"scroll",(()=>{i()})),e.on("view",(t=>{r.autoMini&&(e.mini=!t)}))}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kBb9s:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e,t){t.proxy(document,"mousemove",(t=>{e.emit("document:mousemove",t)})),t.proxy(document,"mouseup",(t=>{e.emit("document:mouseup",t)}))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],ba6C3:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>n));var a=e("./utils");class n{init(){const{proxy:e,constructor:t}=this.art;this.add(27,(()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)})),this.add(32,(()=>{this.art.toggle()})),this.add(37,(()=>{this.art.backward=t.SEEK_STEP})),this.add(38,(()=>{this.art.volume+=t.VOLUME_STEP})),this.add(39,(()=>{this.art.forward=t.SEEK_STEP})),this.add(40,(()=>{this.art.volume-=t.VOLUME_STEP})),e(window,"keydown",(e=>{if(this.art.isFocus){const t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r){const t=this.keys[e.keyCode];if(t){e.preventDefault();for(let r=0;ri));var a=e("./utils/component"),n=o.interopDefault(a);class i extends n.default{constructor(e){super(e);const{option:t,template:{$layer:r}}=e;this.name="layer",this.$parent=r;for(let e=0;es));var a=e("./utils"),n=e("./utils/component"),i=o.interopDefault(n);class s extends i.default{constructor(e){super(e),this.name="loading",(0,a.append)(e.template.$loading,e.icons.loading)}}},{"./utils":"7drL4","./utils/component":"gEwXu","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],e1V9b:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>n));var a=e("./utils");class n{set show(e){const{constructor:t,template:{$player:r,$noticeInner:o}}=this.art;e?(o.innerText=e instanceof Error?e.message.trim():e,(0,a.addClass)(r,"art-notice-show"),clearTimeout(this.timer),this.timer=setTimeout((()=>{o.innerText="",(0,a.removeClass)(r,"art-notice-show")}),t.NOTICE_TIME)):(0,a.removeClass)(r,"art-notice-show")}constructor(e){this.art=e,this.timer=null}}},{"./utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"7Eyvg":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>s));var a=e("./utils"),n=e("./utils/component"),i=o.interopDefault(n);class s extends i.default{constructor(e){super(e),this.name="mask";const{template:t,icons:r,events:o}=e,n=(0,a.append)(t.$state,r.state),i=(0,a.append)(t.$state,r.error);(0,a.setStyle)(i,"display","none"),e.on("destroy",(()=>{(0,a.setStyle)(n,"display","none"),(0,a.setStyle)(i,"display",null)})),o.proxy(t.$state,"click",(()=>e.play()))}}},{"./utils":"7drL4","./utils/component":"gEwXu","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jccXh:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>ne));var a=e("../utils"),n=e("bundle-text:./loading.svg"),i=o.interopDefault(n),s=e("bundle-text:./state.svg"),l=o.interopDefault(s),c=e("bundle-text:./check.svg"),u=o.interopDefault(c),d=e("bundle-text:./play.svg"),p=o.interopDefault(d),f=e("bundle-text:./pause.svg"),h=o.interopDefault(f),m=e("bundle-text:./volume.svg"),g=o.interopDefault(m),v=e("bundle-text:./volume-close.svg"),y=o.interopDefault(v),b=e("bundle-text:./screenshot.svg"),x=o.interopDefault(b),w=e("bundle-text:./setting.svg"),j=o.interopDefault(w),k=e("bundle-text:./arrow-left.svg"),S=o.interopDefault(k),P=e("bundle-text:./arrow-right.svg"),T=o.interopDefault(P),I=e("bundle-text:./playback-rate.svg"),$=o.interopDefault(I),M=e("bundle-text:./aspect-ratio.svg"),E=o.interopDefault(M),F=e("bundle-text:./config.svg"),L=o.interopDefault(F),V=e("bundle-text:./pip.svg"),z=o.interopDefault(V),C=e("bundle-text:./lock.svg"),A=o.interopDefault(C),D=e("bundle-text:./unlock.svg"),R=o.interopDefault(D),O=e("bundle-text:./fullscreen-off.svg"),N=o.interopDefault(O),H=e("bundle-text:./fullscreen-on.svg"),W=o.interopDefault(H),_=e("bundle-text:./fullscreen-web-off.svg"),q=o.interopDefault(_),B=e("bundle-text:./fullscreen-web-on.svg"),Y=o.interopDefault(B),U=e("bundle-text:./switch-on.svg"),G=o.interopDefault(U),J=e("bundle-text:./switch-off.svg"),X=o.interopDefault(J),K=e("bundle-text:./flip.svg"),Z=o.interopDefault(K),Q=e("bundle-text:./error.svg"),ee=o.interopDefault(Q),te=e("bundle-text:./close.svg"),re=o.interopDefault(te),oe=e("bundle-text:./airplay.svg"),ae=o.interopDefault(oe);class ne{constructor(e){const t={loading:i.default,state:l.default,play:p.default,pause:h.default,check:u.default,volume:g.default,volumeClose:y.default,screenshot:x.default,setting:j.default,pip:z.default,arrowLeft:S.default,arrowRight:T.default,playbackRate:$.default,aspectRatio:E.default,config:L.default,lock:A.default,flip:Z.default,unlock:R.default,fullscreenOff:N.default,fullscreenOn:W.default,fullscreenWebOff:q.default,fullscreenWebOn:Y.default,switchOn:G.default,switchOff:X.default,error:ee.default,close:re.default,airplay:ae.default,...e.option.icons};for(const e in t)(0,a.def)(this,e,{get:()=>(0,a.getIcon)(e,t[e])})}}},{"../utils":"7drL4","bundle-text:./loading.svg":"cI8s8","bundle-text:./state.svg":"hAK1t","bundle-text:./check.svg":"kQjLS","bundle-text:./play.svg":"4LhQx","bundle-text:./pause.svg":"iyFjq","bundle-text:./volume.svg":"lVGXj","bundle-text:./volume-close.svg":"5FfiQ","bundle-text:./screenshot.svg":"acOxs","bundle-text:./setting.svg":"7n7eT","bundle-text:./arrow-left.svg":"4KKm3","bundle-text:./arrow-right.svg":"12rWG","bundle-text:./playback-rate.svg":"crwm6","bundle-text:./aspect-ratio.svg":"aEBuh","bundle-text:./config.svg":"8LTtW","bundle-text:./pip.svg":"irWdG","bundle-text:./lock.svg":"26moK","bundle-text:./unlock.svg":"b6ygV","bundle-text:./fullscreen-off.svg":"105zd","bundle-text:./fullscreen-on.svg":"fSuWv","bundle-text:./fullscreen-web-off.svg":"jfsCv","bundle-text:./fullscreen-web-on.svg":"3P2GA","bundle-text:./switch-on.svg":"gyApI","bundle-text:./switch-off.svg":"7ccNg","bundle-text:./flip.svg":"fALt8","bundle-text:./error.svg":"dBF3H","bundle-text:./close.svg":"v2ERQ","bundle-text:./airplay.svg":"eClOS","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],cI8s8:[function(e,t,r){t.exports=''},{}],hAK1t:[function(e,t,r){t.exports=''},{}],kQjLS:[function(e,t,r){t.exports=''},{}],"4LhQx":[function(e,t,r){t.exports=''},{}],iyFjq:[function(e,t,r){t.exports=''},{}],lVGXj:[function(e,t,r){t.exports=''},{}],"5FfiQ":[function(e,t,r){t.exports=''},{}],acOxs:[function(e,t,r){t.exports=''},{}],"7n7eT":[function(e,t,r){t.exports=''},{}],"4KKm3":[function(e,t,r){t.exports=''},{}],"12rWG":[function(e,t,r){t.exports=''},{}],crwm6:[function(e,t,r){t.exports=''},{}],aEBuh:[function(e,t,r){t.exports=''},{}],"8LTtW":[function(e,t,r){t.exports=''},{}],irWdG:[function(e,t,r){t.exports=''},{}],"26moK":[function(e,t,r){t.exports=''},{}],b6ygV:[function(e,t,r){t.exports=''},{}],"105zd":[function(e,t,r){t.exports=''},{}],fSuWv:[function(e,t,r){t.exports=''},{}],jfsCv:[function(e,t,r){t.exports=''},{}],"3P2GA":[function(e,t,r){t.exports=''},{}],gyApI:[function(e,t,r){t.exports=''},{}],"7ccNg":[function(e,t,r){t.exports=''},{}],fALt8:[function(e,t,r){t.exports=''},{}],dBF3H:[function(e,t,r){t.exports=''},{}],v2ERQ:[function(e,t,r){t.exports=''},{}],eClOS:[function(e,t,r){t.exports=''},{}],gBKqL:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>m));var a=e("./flip"),n=o.interopDefault(a),i=e("./aspectRatio"),s=o.interopDefault(i),l=e("./playbackRate"),c=o.interopDefault(l),u=e("./subtitleOffset"),d=o.interopDefault(u),p=e("../utils/component"),f=o.interopDefault(p),h=e("../utils");class m extends f.default{static makeRecursion(e,t,r){for(let o=0;o'),n=(0,h.createElement)("div");(0,h.addClass)(n,"art-setting-item-left-icon"),(0,h.append)(n,t.arrowLeft),(0,h.append)(a,n),(0,h.append)(a,e.$parentItem.html);const i=r(o,"click",(()=>this.render(e.$parentList)));return this.events.push(i),o}creatItem(e,t){const{icons:r,proxy:o}=this.art,a=(0,h.createElement)("div");(0,h.addClass)(a,"art-setting-item"),(0,h.isStringOrNumber)(t.name)&&(a.dataset.name=t.name),(0,h.isStringOrNumber)(t.value)&&(a.dataset.value=t.value);const n=(0,h.append)(a,'
'),i=(0,h.append)(a,'
'),s=(0,h.createElement)("div");switch((0,h.addClass)(s,"art-setting-item-left-icon"),e){case"switch":case"range":(0,h.append)(s,(0,h.isStringOrNumber)(t.icon)||t.icon instanceof Element?t.icon:r.config);break;case"selector":t.selector&&t.selector.length?(0,h.append)(s,(0,h.isStringOrNumber)(t.icon)||t.icon instanceof Element?t.icon:r.config):(0,h.append)(s,r.check)}(0,h.append)(n,s),t.$icon=s,(0,h.def)(t,"icon",{configurable:!0,get:()=>s.innerHTML,set(e){(0,h.isStringOrNumber)(e)&&(s.innerHTML=e)}});const l=(0,h.createElement)("div");(0,h.addClass)(l,"art-setting-item-left-text"),(0,h.append)(l,t.html||""),(0,h.append)(n,l),t.$html=l,(0,h.def)(t,"html",{configurable:!0,get:()=>l.innerHTML,set(e){(0,h.isStringOrNumber)(e)&&(l.innerHTML=e)}});const c=(0,h.createElement)("div");switch((0,h.addClass)(c,"art-setting-item-right-tooltip"),(0,h.append)(c,t.tooltip||""),(0,h.append)(i,c),t.$tooltip=c,(0,h.def)(t,"tooltip",{configurable:!0,get:()=>c.innerHTML,set(e){(0,h.isStringOrNumber)(e)&&(c.innerHTML=e)}}),e){case"switch":{const e=(0,h.createElement)("div");(0,h.addClass)(e,"art-setting-item-right-icon");const o=(0,h.append)(e,r.switchOn),a=(0,h.append)(e,r.switchOff);(0,h.setStyle)(t.switch?a:o,"display","none"),(0,h.append)(i,e),t.$switch=t.switch,(0,h.def)(t,"switch",{configurable:!0,get:()=>t.$switch,set(e){t.$switch=e,e?((0,h.setStyle)(a,"display","none"),(0,h.setStyle)(o,"display",null)):((0,h.setStyle)(a,"display",null),(0,h.setStyle)(o,"display","none"))}});break}case"range":{const e=(0,h.createElement)("div");(0,h.addClass)(e,"art-setting-item-right-icon");const r=(0,h.append)(e,'');r.value=t.range[0]||0,r.min=t.range[1]||0,r.max=t.range[2]||10,r.step=t.range[3]||1,(0,h.addClass)(r,"art-setting-range"),(0,h.append)(i,e),t.$range=r,(0,h.def)(t,"range",{configurable:!0,get:()=>r.valueAsNumber,set(e){r.value=Number(e)}})}break;case"selector":if(t.selector&&t.selector.length){const e=(0,h.createElement)("div");(0,h.addClass)(e,"art-setting-item-right-icon"),(0,h.append)(e,r.arrowRight),(0,h.append)(i,e)}}switch(e){case"switch":if(t.onSwitch){const e=o(a,"click",(async e=>{t.switch=await t.onSwitch.call(this.art,t,a,e)}));this.events.push(e)}break;case"range":if(t.$range){if(t.onRange){const e=o(t.$range,"change",(async e=>{t.tooltip=await t.onRange.call(this.art,t,a,e)}));this.events.push(e)}if(t.onChange){const e=o(t.$range,"input",(async e=>{t.tooltip=await t.onChange.call(this.art,t,a,e)}));this.events.push(e)}}break;case"selector":{const e=o(a,"click",(async e=>{if(t.selector&&t.selector.length)this.render(t.selector,t.width);else{(0,h.inverseClass)(a,"art-current");for(let e=0;ec?((0,h.setStyle)(a,"left",null),(0,h.setStyle)(a,"right",null)):((0,h.setStyle)(a,"left",`${u}px`),(0,h.setStyle)(a,"right","auto"))}}render(e,t){const{constructor:r}=this.art;if(this.cache.has(e)){const t=this.cache.get(e);(0,h.inverseClass)(t,"art-current"),(0,h.setStyle)(this.$parent,"width",`${t.dataset.width}px`),(0,h.setStyle)(this.$parent,"height",`${t.dataset.height}px`),this.updateStyle(Number(t.dataset.width))}else{const o=(0,h.createElement)("div");(0,h.addClass)(o,"art-setting-panel"),o.dataset.width=t||r.SETTING_WIDTH,o.dataset.height=e.length*r.SETTING_ITEM_HEIGHT,e[0]&&e[0].$parentItem&&((0,h.append)(o,this.creatHeader(e[0])),o.dataset.height=Number(o.dataset.height)+r.SETTING_ITEM_HEIGHT);for(let t=0;t{this.show&&(this.show=!1,this.render(this.option))})),e.on("focus",(e=>{const t=(0,h.includeFromEvent)(e,r.setting),o=(0,h.includeFromEvent)(e,this.$parent);!this.show||t||o||(this.show=!1,this.render(this.option))})))}}},{"./flip":"jJJjW","./aspectRatio":"46lOt","./playbackRate":"kHkmx","./subtitleOffset":"1GQ3B","../utils/component":"gEwXu","../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jJJjW:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,FLIP:n}}=e;function i(e,r,a){r&&(r.innerText=t.get((0,o.capitalize)(a)));const n=(0,o.queryAll)(".art-setting-item",e).find((e=>e.dataset.value===a));n&&(0,o.inverseClass)(n,"art-current")}return{width:a,html:t.get("Video Flip"),tooltip:t.get((0,o.capitalize)(e.flip)),icon:r.flip,selector:n.map((r=>({value:r,default:r===e.flip,html:t.get((0,o.capitalize)(r))}))),onSelect:t=>(e.flip=t.value,t.value),mounted:(t,r)=>{i(t,r.$tooltip,e.flip),e.on("flip",(()=>{i(t,r.$tooltip,e.flip)}))}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"46lOt":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,ASPECT_RATIO:n}}=e;function i(e){return"default"===e?t.get("Default"):e}function s(e,t,r){t&&(t.innerText=i(r));const a=(0,o.queryAll)(".art-setting-item",e).find((e=>e.dataset.value===r));a&&(0,o.inverseClass)(a,"art-current")}return{width:a,html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:n.map((t=>({value:t,default:t===e.aspectRatio,html:i(t)}))),onSelect:t=>(e.aspectRatio=t.value,t.value),mounted:(t,r)=>{s(t,r.$tooltip,e.aspectRatio),e.on("aspectRatio",(()=>{s(t,r.$tooltip,e.aspectRatio)}))}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kHkmx:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,PLAYBACK_RATE:n}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function s(e,t,r){t&&(t.innerText=i(r));const a=(0,o.queryAll)(".art-setting-item",e).find((e=>Number(e.dataset.value)===r));a&&(0,o.inverseClass)(a,"art-current")}return{width:a,html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:n.map((t=>({value:t,default:t===e.playbackRate,html:i(t)}))),onSelect:t=>(e.playbackRate=t.value,t.value),mounted:(t,r)=>{s(t,r.$tooltip,e.playbackRate),e.on("video:ratechange",(()=>{s(t,r.$tooltip,e.playbackRate)}))}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"1GQ3B":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){const{i18n:t,icons:r,constructor:o}=e;return{width:o.SETTING_ITEM_WIDTH,html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-5,5,.1],onChange:t=>(e.subtitleOffset=t.range,t.range+"s")}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"71DyG":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>a));class a{get(e){try{const t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{const r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{const t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}constructor(){this.name="artplayer_settings",this.settings={}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kWGSQ:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>m));var a=e("../utils"),n=e("./miniProgressBar"),i=o.interopDefault(n),s=e("./autoOrientation"),l=o.interopDefault(s),c=e("./autoPlayback"),u=o.interopDefault(c),d=e("./fastForward"),p=o.interopDefault(d),f=e("./lock"),h=o.interopDefault(f);class m{add(e){this.id+=1;const t=e.call(this.art,this.art),r=t&&t.name||e.name||`plugin${this.id}`;return(0,a.errorHandle)(!(0,a.has)(this,r),`Cannot add a plugin that already has the same name: ${r}`),(0,a.def)(this,r,{value:t}),this}constructor(e){this.art=e,this.id=0;const{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(i.default),t.lock&&a.isMobile&&this.add(h.default),t.autoPlayback&&!t.isLive&&this.add(u.default),t.autoOrientation&&a.isMobile&&this.add(l.default),t.fastForward&&a.isMobile&&!t.isLive&&this.add(p.default);for(let e=0;e{e.layers.add({name:"mini-progress-bar",mounted(t){e.on("destroy",(()=>{t.style.display="none"})),e.on("video:timeupdate",(()=>{t.style.width=100*e.played+"%"})),e.on("setBar",((e,r)=>{"played"===e&&(t.style.width=100*r+"%")}))}})})),{name:"mini-progress-bar"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5Cp1r":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,constructor:r,template:{$player:a,$video:n}}=e;return e.on("fullscreenWeb",(i=>{if(i){const{videoWidth:t,videoHeight:i}=n,{clientWidth:s,clientHeight:l}=document.documentElement;(t>i&&sl)&&setTimeout((()=>{(0,o.setStyle)(a,"width",`${l}px`),(0,o.setStyle)(a,"height",`${s}px`),(0,o.setStyle)(a,"transform-origin","0 0"),(0,o.setStyle)(a,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,o.addClass)(a,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")}),r.MOBILE_AUTO_ORIENTATION_TIME)}else(0,o.hasClass)(a,"art-auto-orientation")&&((0,o.setStyle)(a,"width",null),(0,o.setStyle)(a,"height",null),(0,o.setStyle)(a,"transform",null),(0,o.setStyle)(a,"transform-origin",null),(0,o.removeClass)(a,"art-auto-orientation"),e.isRotate=!1,e.aspectRatioReset=!0,e.autoSize=t.autoSize,e.notice.show="",e.emit("resize"))})),e.on("fullscreen",(async e=>{const t=screen.orientation.type;if(e){const{videoWidth:e,videoHeight:r}=n,{clientWidth:i,clientHeight:s}=document.documentElement;if(e>r&&is){const e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,o.addClass)(a,"art-auto-orientation-fullscreen")}}else(0,o.hasClass)(a,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,o.removeClass)(a,"art-auto-orientation-fullscreen"))})),{name:"autoOrientation",get state(){return(0,o.hasClass)(a,"art-auto-orientation")}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],l9En2:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,icons:r,storage:a,constructor:n,proxy:i,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:'
'}),c=(0,o.query)(".art-auto-playback-last",l),u=(0,o.query)(".art-auto-playback-jump",l),d=(0,o.query)(".art-auto-playback-close",l);return e.on("video:timeupdate",(()=>{const t=a.get("times")||{},r=Object.keys(t);r.length>n.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,a.set("times",t)})),e.on("ready",(()=>{const p=(a.get("times")||{})[e.option.id||e.option.url];p&&p>=n.AUTO_PLAYBACK_MIN&&((0,o.append)(d,r.close),(0,o.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,o.secondToTime)(p)}`,u.innerText=t.get("Jump Play"),i(d,"click",(()=>{(0,o.setStyle)(l,"display","none")})),i(u,"click",(()=>{e.seek=p,e.play(),(0,o.setStyle)(s,"display","none"),(0,o.setStyle)(l,"display","none")})),e.once("video:timeupdate",(()=>{setTimeout((()=>{(0,o.setStyle)(l,"display","none")}),n.AUTO_PLAYBACK_TIMEOUT)})))})),{name:"auto-playback",get times(){return a.get("times")||{}},clear:()=>a.del("times"),delete(e){const t=a.get("times")||{};return delete t[e],a.set("times",t),t}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"67viW":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{constructor:t,proxy:r,template:{$player:a,$video:n}}=e;let i=null,s=!1,l=1;const c=()=>{clearTimeout(i),s&&(s=!1,e.playbackRate=l,(0,o.removeClass)(a,"art-fast-forward"))};return r(n,"touchstart",(r=>{1===r.touches.length&&e.playing&&!e.isLock&&(i=setTimeout((()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,o.addClass)(a,"art-fast-forward")}),t.FAST_FORWARD_TIME))})),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,o.hasClass)(a,"art-fast-forward")}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],dJnlB:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{layers:t,icons:r,template:{$player:a}}=e;return t.add({name:"lock",mounted(t){const a=(0,o.append)(t,r.lock),n=(0,o.append)(t,r.unlock);(0,o.setStyle)(a,"display","none"),e.on("lock",(e=>{e?((0,o.setStyle)(a,"display","inline-flex"),(0,o.setStyle)(n,"display","none")):((0,o.setStyle)(a,"display","none"),(0,o.setStyle)(n,"display","inline-flex"))}))},click(){(0,o.hasClass)(a,"art-lock")?((0,o.removeClass)(a,"art-lock"),this.isLock=!1,e.emit("lock",!1)):((0,o.addClass)(a,"art-lock"),this.isLock=!0,e.emit("lock",!0))}}),{name:"lock",get state(){return(0,o.hasClass)(a,"art-lock")}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],lFrMF:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>s));var a=e("./config"),n=o.interopDefault(a),i=e("./utils");class s{constructor(e){const{option:t,proxy:r,template:{$video:o}}=e;for(let t=0;t{e.emit(`video:${t.type}`,t)}));for(const e in t.moreVideoAttr)o[e]=t.moreVideoAttr[e];o.controls=!0,t.muted&&(o.muted=t.muted),t.volume&&(o.volume=(0,i.clamp)(t.volume,0,1)),t.poster&&(o.poster=t.poster),t.autoplay&&(o.autoplay=t.autoplay),t.playsInline&&(o.playsInline=!0,o["webkit-playsinline"]=!0);const a=t.type||(0,i.getExt)(t.url),s=t.customType[a];a&&s?s(o,t.url,e):(o.src=t.url,e.emit("url",o.src))}}},{"./config":"1shlC","./utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}]},["4GL94"],"4GL94","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,r,o,a){var n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof n[o]&&n[o],s=i.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(t,r){if(!s[t]){if(!e[t]){var a="function"==typeof n[o]&&n[o];if(!r&&a)return a(t,!0);if(i)return i(t,!0);if(l&&"string"==typeof t)return l(t);var u=new Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}p.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},p.cache={};var d=s[t]=new c.Module(t);e[t][0].call(d.exports,p,d,d.exports,this)}return s[t].exports;function p(e){var t=p.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=i,c.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(c,"root",{get:function(){return n[o]}}),n[o]=c;for(var u=0;ute));var a=e("bundle-text:./style/index.less"),n=o.interopDefault(a),i=e("option-validator"),s=o.interopDefault(i),l=e("./utils/emitter"),c=o.interopDefault(l),u=e("./utils"),d=e("./scheme"),p=o.interopDefault(d),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"),P=o.interopDefault(k),S=e("./contextmenu"),T=o.interopDefault(S),I=e("./info"),$=o.interopDefault(I),M=e("./subtitle"),L=o.interopDefault(M),E=e("./events"),F=o.interopDefault(E),V=e("./hotkey"),C=o.interopDefault(V),z=e("./layer"),A=o.interopDefault(z),D=e("./loading"),R=o.interopDefault(D),O=e("./notice"),N=o.interopDefault(O),H=e("./mask"),W=o.interopDefault(H),_=e("./icons"),q=o.interopDefault(_),B=e("./setting"),Y=o.interopDefault(B),U=e("./storage"),K=o.interopDefault(U),G=e("./plugins"),J=o.interopDefault(G),X=e("./mobile"),Z=o.interopDefault(X);let Q=0;const ee=[];class te extends c.default{static get instances(){return ee}static get version(){return"5.0.0"}static get env(){return"production"}static get build(){return"2023-04-23 13:41:54"}static get config(){return h.default}static get utils(){return u}static get scheme(){return p.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:{},escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:u.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),ee.splice(ee.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}constructor(e,t){super(),this.id=++Q;const r=u.mergeDeep(te.option,e);if(r.container=e.container,this.option=(0,s.default)(r,p.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,F.default)(this),this.whitelist.state?(this.storage=new(0,K.default)(this),this.icons=new(0,q.default)(this),this.i18n=new(0,x.default)(this),this.notice=new(0,N.default)(this),this.player=new(0,j.default)(this),this.layers=new(0,A.default)(this),this.controls=new(0,P.default)(this),this.contextmenu=new(0,T.default)(this),this.subtitle=new(0,L.default)(this),this.info=new(0,$.default)(this),this.loading=new(0,R.default)(this),this.hotkey=new(0,C.default)(this),this.mask=new(0,W.default)(this),this.setting=new(0,Y.default)(this),this.plugins=new(0,J.default)(this)):this.mobile=new(0,Z.default)(this),"function"==typeof t&&this.on("ready",(()=>t.call(this,this))),te.DEBUG){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;te("Event@"+t.type)))}ee.push(this)}}if(te.DEBUG=!1,te.CONTEXTMENU=!0,te.NOTICE_TIME=2e3,te.SETTING_WIDTH=250,te.SETTING_ITEM_WIDTH=200,te.SETTING_ITEM_HEIGHT=35,te.RESIZE_TIME=500,te.SCROLL_TIME=200,te.SCROLL_GAP=50,te.AUTO_PLAYBACK_MAX=10,te.AUTO_PLAYBACK_MIN=5,te.AUTO_PLAYBACK_TIMEOUT=3e3,te.RECONNECT_TIME_MAX=5,te.RECONNECT_SLEEP_TIME=1e3,te.CONTROL_HIDE_TIME=3e3,te.DBCLICK_TIME=300,te.DBCLICK_FULLSCREEN=!0,te.MOBILE_DBCLICK_PLAY=!0,te.MOBILE_CLICK_PLAY=!1,te.MOBILE_AUTO_PLAYBACKRATE=3,te.MOBILE_AUTO_PLAYBACKRATE_TIME=1e3,te.MOBILE_AUTO_ORIENTATION_TIME=200,te.INFO_LOOP_TIME=1e3,te.FAST_FORWARD_VALUE=3,te.FAST_FORWARD_TIME=1e3,te.TOUCH_MOVE_RATIO=.5,te.VOLUME_STEP=.1,te.SEEK_STEP=5,te.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],te.ASPECT_RATIO=["default","4:3","16:9"],te.FLIP=["normal","horizontal","vertical"],te.FULLSCREEN_WEB_IN_BODY=!1,"undefined"!=typeof document&&!document.getElementById("artplayer-style")){const e=u.createElement("style");e.id="artplayer-style",e.textContent=n.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.Artplayer=te),console.log(`%c ArtPlayer %c ${te.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},{"bundle-text:./style/index.less":"6huYk","option-validator":"e1J0t","./utils/emitter":"fPpO7","./utils":"7drL4","./scheme":"1s2bZ","./config":"1shlC","./whitelist":"12Atb","./template":"44X6u","./i18n":"brIxD","./player":"iurL3","./control":"krUTp","./contextmenu":"XqyHm","./info":"fiMkm","./subtitle":"ekPC4","./events":"aoN05","./hotkey":"ba6C3","./layer":"3BGk5","./loading":"6LgqS","./notice":"e1V9b","./mask":"7Eyvg","./icons":"jccXh","./setting":"gBKqL","./storage":"71DyG","./plugins":"kWGSQ","./mobile":"lFrMF","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"6huYk":[function(e,t,r){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#fff3;--art-hover-color:#ffffff80;--art-loaded-color:#fff3;--art-loop-color:#ffffffbf;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-loop-width:2px;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-scale:1;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#00000080;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{width:100%;height:100%;zoom:1;text-align:left;direction:ltr;-webkit-user-select:none;user-select:none;box-sizing:border-box;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{max-width:100%;vertical-align:top}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.art-video-player.art-backdrop .art-contextmenus,.art-video-player.art-backdrop .art-info,.art-video-player.art-backdrop .art-settings,.art-video-player.art-backdrop .art-layer-auto-playback,.art-video-player.art-backdrop .art-selector-list,.art-video-player.art-backdrop .art-volume-inner{-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;width:100%;height:100%;cursor:pointer;position:absolute;inset:0}.art-poster{z-index:11;width:100%;height:100%;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;width:100%;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;text-shadow:var(--art-subtitle-border)1px 0 1px,var(--art-subtitle-border)0 1px 1px,var(--art-subtitle-border)-1px 0 1px,var(--art-subtitle-border)0 -1px 1px,var(--art-subtitle-border)1px 1px 1px,var(--art-subtitle-border)-1px -1px 1px,var(--art-subtitle-border)1px -1px 1px,var(--art-subtitle-border)-1px 1px 1px;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player .art-subtitle p{word-break:break-all;height:-moz-fit-content;height:-moz-fit-content;height:fit-content}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;width:100%;height:100%;opacity:0;pointer-events:none;justify-content:end;gap:var(--art-bottom-gap);padding:0 var(--art-padding);transform:translateY(var(--art-bottom-offset));transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{height:50%;width:100%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;width:100%;height:100%;width:0%;background-color:var(--art-hover-color);display:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;width:100%;height:100%;width:0%;background-color:var(--art-loaded-color);position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;width:100%;height:100%;width:0%;background-color:var(--art-theme);position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;width:100%;height:100%;pointer-events:auto;width:var(--art-highlight-width);transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{width:100%;height:100%;pointer-events:none}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;bottom:10px;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom .art-progress .art-control-loop{z-index:0;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-bottom .art-progress .art-control-loop .art-loop-point{z-index:0;width:100%;height:100%;width:var(--art-loop-width);background-color:var(--art-loop-color);transform:translateX(calc(var(--art-loop-width)/-2))scaleY(1.5);position:absolute;inset:0 0 0 0%}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{height:100%;flex:1;justify-content:center;align-items:center;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{height:100%;width:100%;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{width:100%;cursor:pointer;flex:1;justify-content:center;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{width:2px;border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;width:100%;height:100%;background-color:var(--art-theme);position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);transform-origin:100% 100%;max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transform:scale(var(--art-settings-scale));transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow-x:hidden;overflow-y:auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{height:35px;cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;line-height:1;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{min-width:32px;height:24px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{height:3px;width:80px;-webkit-appearance:none;appearance:none;background-color:#fff3;outline:none}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{width:250px;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:all;user-select:all;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{box-sizing:content-box;object-fit:fill}.art-fullscreen-web{z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:absolute;inset:0}.art-mini-popup{z-index:9999;width:320px;height:180px;border-radius:var(--art-border-radius);cursor:move;-webkit-user-select:none;user-select:none;background:#000;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;width:100%;height:100%;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-droging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-auto-size{justify-content:center;align-items:center;display:flex}.art-auto-size .art-video-player{transition:width,height var(--art-transition-duration)ease}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-mini-progress-bar{z-index:0;width:100%;height:100%;height:var(--art-mini-progress-height);background-color:var(--art-theme);display:flex;position:absolute;inset:auto 0 0}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-bottom{display:none!important}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-lock .art-layer-mini-progress-bar{display:flex!important}.art-video-player.art-control-show .art-layer-mini-progress-bar{display:none}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;justify-content:center;display:flex;position:absolute;overflow-x:hidden;overflow-y:auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-scale:.85;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],e1J0t:[function(e,t,r){t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var a=e(r);if("boolean"===a)return"boolean";if("string"===a)return"string";if("number"===a)return"number";if("symbol"===a)return"symbol";if("function"===a)return function(e){return"GeneratorFunction"===o(e)}(r)?"generatorfunction":"function";if(function(e){return Array.isArray?Array.isArray(e):e instanceof Array}(r))return"array";if(function(e){return!(!e.constructor||"function"!=typeof e.constructor.isBuffer)&&e.constructor.isBuffer(e)}(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(function(e){return e instanceof Date||"function"==typeof e.toDateString&&"function"==typeof e.getDate&&"function"==typeof e.setDate}(r))return"date";if(function(e){return e instanceof Error||"string"==typeof e.message&&e.constructor&&"number"==typeof e.constructor.stackTraceLimit}(r))return"error";if(function(e){return e instanceof RegExp||"string"==typeof e.flags&&"boolean"==typeof e.ignoreCase&&"boolean"==typeof e.multiline&&"boolean"==typeof e.global}(r))return"regexp";switch(o(r)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(e){return"function"==typeof e.throw&&"function"==typeof e.return&&"function"==typeof e.next}(r))return"generator";switch(a=t.call(r)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return a.slice(8,-1).toLowerCase().replace(/\s/g,"")};function o(e){return e.constructor?e.constructor.name:null}function a(e,t){var o=2a));class a{on(e,t,r){const o=this.e||(this.e={});return(o[e]||(o[e]=[])).push({fn:t,ctx:r}),this}once(e,t,r){const o=this;function a(...n){o.off(e,a),t.apply(r,n)}return a._=t,this.on(e,a,r)}emit(e,...t){const r=((this.e||(this.e={}))[e]||[]).slice();for(let e=0;en)),o.export(r,"queryAll",(()=>i)),o.export(r,"addClass",(()=>s)),o.export(r,"removeClass",(()=>l)),o.export(r,"hasClass",(()=>c)),o.export(r,"append",(()=>u)),o.export(r,"remove",(()=>d)),o.export(r,"setStyle",(()=>p)),o.export(r,"setStyles",(()=>f)),o.export(r,"getStyle",(()=>h)),o.export(r,"sublings",(()=>m)),o.export(r,"inverseClass",(()=>g)),o.export(r,"tooltip",(()=>v)),o.export(r,"isInViewport",(()=>y)),o.export(r,"includeFromEvent",(()=>b)),o.export(r,"replaceElement",(()=>x)),o.export(r,"createElement",(()=>w)),o.export(r,"getIcon",(()=>j));var a=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function i(e,t=document){return Array.from(t.querySelectorAll(e))}function s(e,t){return e.classList.add(t)}function l(e,t){return e.classList.remove(t)}function c(e,t){return e.classList.contains(t)}function u(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function d(e){return e.parentNode.removeChild(e)}function p(e,t,r){return e.style[t]=r,e}function f(e,t){for(const r in t)p(e,r,t[r]);return e}function h(e,t,r=!0){const o=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(o):o}function m(e){return Array.from(e.parentElement.children).filter((t=>t!==e))}function g(e,t){m(e).forEach((e=>l(e,t))),s(e,t)}function v(e,t,r="top"){a.isMobile||(e.setAttribute("aria-label",t),s(e,"hint--rounded"),s(e,`hint--${r}`))}function y(e,t=0){const r=e.getBoundingClientRect(),o=window.innerHeight||document.documentElement.clientHeight,a=window.innerWidth||document.documentElement.clientWidth,n=r.top-t<=o&&r.top+r.height+t>=0,i=r.left-t<=a+t&&r.left+r.width+t>=0;return n&&i}function b(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function x(e,t){return t.parentNode.replaceChild(e,t),e}function w(e){return document.createElement(e)}function j(e="",t=""){const r=w("i");return s(r,"art-icon"),s(r,`art-icon-${e}`),u(r,t),r}},{"./compatibility":"2lSEt","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"2lSEt":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"userAgent",(()=>a)),o.export(r,"isMobile",(()=>n)),o.export(r,"isSafari",(()=>i)),o.export(r,"isWechat",(()=>s)),o.export(r,"isIE",(()=>l)),o.export(r,"isAndroid",(()=>c)),o.export(r,"isIOS",(()=>u));const a="undefined"!=typeof window?window.navigator.userAgent:"",n=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a),i=/^((?!chrome|android).)*safari/i.test(a),s=/MicroMessenger/i.test(a),l=/MSIE|Trident/i.test(a),c=/android/i.test(a),u=/iPad|iPhone|iPod/i.test(a)&&!window.MSStream},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],aPfiL:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",(()=>a)),o.export(r,"errorHandle",(()=>n));class a extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new a(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],l4cLJ:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return"WEBVTT \r\n\r\n".concat((t=e,t.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,((e,t,r)=>{let o=r.slice(0,3);return 1===r.length&&(o=r+"00"),2===r.length&&(o=r+"0"),`${t},${o}`}))).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"));var t}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function i(e){const t=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map(((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`})).join("")}return`WEBVTT\n\n${e.split(/\r?\n/).map((e=>{const o=e.match(t);return o?{start:r(o[1].trim()),end:r(o[2].trim()),text:o[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map((e=>e.trim())).join("\n")}:null})).filter((e=>e)).map(((e,t)=>e?`${t+1}\n${e.start} --\x3e ${e.end}\n${e.text}`:"")).filter((e=>e.trim())).join("\n\n")}`}o.defineInteropFlag(r),o.export(r,"srtToVtt",(()=>a)),o.export(r,"vttToBlob",(()=>n)),o.export(r,"assToVtt",(()=>i))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"53Vt6":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return e.includes("?")?a(e.split("?")[0]):e.includes("#")?a(e.split("#")[0]):e.trim().toLowerCase().split(".").pop()}function n(e,t){const r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",(()=>a)),o.export(r,"download",(()=>n))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],lLZes:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",(()=>a)),o.export(r,"has",(()=>i)),o.export(r,"get",(()=>s)),o.export(r,"mergeDeep",(()=>l));const a=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function i(e,t){return n.call(e,t)}function s(e,t){return Object.getOwnPropertyDescriptor(e,t)}function l(...e){const t=e=>e&&"object"==typeof e&&!Array.isArray(e);return e.reduce(((e,r)=>(Object.keys(r).forEach((o=>{const a=e[o],n=r[o];Array.isArray(a)&&Array.isArray(n)?e[o]=a.concat(...n):t(a)&&t(n)?e[o]=l(a,n):e[o]=n})),e)),{})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8JF40":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e=0){return new Promise((t=>setTimeout(t,e)))}function n(e,t,r){let o;function a(...a){clearTimeout(o),o=setTimeout((function(){o=null,e.apply(r,a)}),t)}return a.clearTimeout=function(){clearTimeout(o)},a}function i(e,t){let r,o,a=!1;return function n(...i){if(a)return r=i,void(o=this);a=!0,e.apply(this,i),setTimeout((()=>{a=!1,r&&(n.apply(o,r),r=null,o=null)}),t)}}o.defineInteropFlag(r),o.export(r,"sleep",(()=>a)),o.export(r,"debounce",(()=>n)),o.export(r,"throttle",(()=>i))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"2yQzS":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function i(e){return["string","number"].includes(typeof e)}function s(e){const t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),o=Math.floor(e-3600*t-60*r);return(t>0?[t,r,o]:[r,o]).map((e=>e<10?`0${e}`:String(e))).join(":")}function l(e){return e.replace(/[&<>'"]/g,(e=>({"&":"&","<":"<",">":">","'":"'",'"':"""}[e]||e)))}o.defineInteropFlag(r),o.export(r,"clamp",(()=>a)),o.export(r,"capitalize",(()=>n)),o.export(r,"isStringOrNumber",(()=>i)),o.export(r,"secondToTime",(()=>s)),o.export(r,"escape",(()=>l))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"1s2bZ":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",(()=>p));var a=e("../utils");const n="array",i="boolean",s="string",l="number",c="object",u="function";function d(e,t,r){return(0,a.errorHandle)(t===s||t===l||e instanceof Element,`${r.join(".")} require '${s}' or 'Element' type`)}const p={html:d,disable:`?${i}`,name:`?${s}`,index:`?${l}`,style:`?${c}`,click:`?${u}`,mounted:`?${u}`,tooltip:`?${s}|${l}`,width:`?${l}`,selector:`?${n}`,onSelect:`?${u}`,switch:`?${i}`,onSwitch:`?${u}`,range:`?${n}`,onRange:`?${u}`,onChange:`?${u}`};r.default={id:s,container:d,url:s,poster:s,title:s,type:s,theme:s,lang:s,volume:l,isLive:i,muted:i,autoplay:i,autoSize:i,autoMini:i,loop:i,flip:i,playbackRate:i,aspectRatio:i,screenshot:i,setting:i,hotkey:i,pip:i,mutex:i,backdrop:i,fullscreen:i,fullscreenWeb:i,subtitleOffset:i,miniProgressBar:i,useSSR:i,playsInline:i,lock:i,fastForward:i,autoPlayback:i,autoOrientation:i,airplay:i,plugins:[u],whitelist:[`${s}|${u}|regexp`],layers:[p],contextmenu:[p],settings:[p],controls:[{...p,position:(e,t,r)=>{const o=["top","left","right"];return(0,a.errorHandle)(o.includes(e),`${r.join(".")} only accept ${o.toString()} as parameters`)}}],quality:[{default:`?${i}`,html:s,url:s}],highlight:[{time:l,text:s}],thumbnails:{url:s,number:l,column:l,width:l,height:l},subtitle:{url:s,type:s,style:c,escape:i,encoding:s,onVttLoad:u},moreVideoAttr:c,i18n:c,icons:c,cssVar:c,customType:c}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"1shlC":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={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"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"12Atb":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>n));var a=e("./utils");class n{get state(){const{option:e,constructor:{kindOf:t}}=this.art;return!a.isMobile||!e.whitelist.length||e.whitelist.some((e=>{switch(t(e)){case"string":return"*"===e||a.userAgent.indexOf(e)>-1;case"function":return e(a.userAgent);case"regexp":return e.test(a.userAgent);default:return!1}}))}constructor(e){this.art=e}}},{"./utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"44X6u":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>n));var a=e("./utils");class n{static get html(){return'
Player version:
5.0.0
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
'}query(e){return(0,a.query)(e,this.$container)}desktop(){const{option:e}=this.art;e.useSSR||(this.$container.innerHTML=n.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.backdrop&&(0,a.addClass)(this.$player,"art-backdrop"),a.isMobile&&(0,a.addClass)(this.$player,"art-mobile")}mobile(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}destroy(e){e?(0,a.replaceElement)(this.$original,this.$container):(0,a.addClass)(this.$player,"art-destroy")}constructor(e){this.art=e;const{option:t,constructor:r,whitelist:o}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,a.query)(t.container),(0,a.errorHandle)(this.$container,`No container element found by ${t.container}`));const n=this.$container.tagName.toLowerCase();(0,a.errorHandle)("div"===n,`Unsupported container element type, only support 'div' but got '${n}'`),(0,a.errorHandle)(r.instances.every((e=>e.template.$container!==this.$container)),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.$original=this.$container.cloneNode(!0),o.state?this.desktop():this.mobile()}}},{"./utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],brIxD:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>k));var a=e("../utils"),n=e("./zh-cn.json"),i=o.interopDefault(n),s=e("./zh-tw.json"),l=o.interopDefault(s),c=e("./pl.json"),u=o.interopDefault(c),d=e("./cs.json"),p=o.interopDefault(d),f=e("./es.json"),h=o.interopDefault(f),m=e("./fa.json"),g=o.interopDefault(m),v=e("./fr.json"),y=o.interopDefault(v),b=e("./id.json"),x=o.interopDefault(b),w=e("./ru.json"),j=o.interopDefault(w);class k{init(){const e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,a.mergeDeep)(this.languages,e),this.init()}constructor(e){this.art=e,this.languages={"zh-cn":i.default,"zh-tw":l.default,pl:u.default,cs:p.default,es:h.default,fa:g.default,fr:y.default,id:x.default,ru:j.default},this.update(e.option.i18n)}}},{"../utils":"7drL4","./zh-cn.json":"aIXkw","./zh-tw.json":"1Segn","./pl.json":"kVsW6","./cs.json":"hsGmi","./es.json":"asiZS","./fa.json":"jxjmf","./fr.json":"5HXy9","./id.json":"gjULl","./ru.json":"hSqTW","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],aIXkw:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"统计信息","Close":"关闭","Video Load Failed":"加载失败","Volume":"音量","Play":"播放","Pause":"暂停","Rate":"速度","Mute":"静音","Video Flip":"画面翻转","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置","Screenshot":"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例","Default":"默认","Normal":"正常","Open":"打开","Switch Video":"切换","Switch Subtitle":"切换字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放","AirPlay":"隔空播放","AirPlay Not Available":"隔空播放不可用"}')},{}],"1Segn":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"統計訊息","Close":"關閉","Video Load Failed":"載入失敗","Volume":"音量","Play":"播放","Pause":"暫停","Rate":"速度","Mute":"靜音","Video Flip":"畫面翻轉","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新連接","Show Setting":"顯示设置","Hide Setting":"隱藏设置","Screenshot":"截圖","Play Speed":"播放速度","Aspect Ratio":"畫面比例","Default":"默認","Normal":"正常","Open":"打開","Switch Video":"切換","Switch Subtitle":"切換字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"網頁全屏","Exit Web Fullscreen":"退出網頁全屏","Mini Player":"迷你播放器","PIP Mode":"開啟畫中畫","Exit PIP Mode":"退出畫中畫","PIP Not Supported":"不支持畫中畫","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳轉播放","AirPlay":"隔空播放","AirPlay Not Available":"隔空播放不可用"}')},{}],kVsW6:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informacje o wideo","Close":"Zamknij","Video Load Failed":"Błąd ładowania wideo","Volume":"Głośność","Play":"Odtwórz","Pause":"Wstrzymaj","Rate":"Oceń","Mute":"Wycisz","Video Flip":"Rotacja wideo","Horizontal":"Pozioma","Vertical":"Pionowa","Reconnect":"Połącz ponownie","Show Setting":"Pokaż ustawienia","Hide Setting":"Ukryj ustawienia","Screenshot":"Zrzut ekranu","Play Speed":"Prędkość odtwarzania","Aspect Ratio":"Współczynnik proporcji","Default":"Domyślny","Normal":"Normalny","Open":"Otwórz","Switch Video":"Przełącz wideo","Switch Subtitle":"Przełącz napisy","Fullscreen":"Pełny ekran","Exit Fullscreen":"Zamknij pełny ekran","Web Fullscreen":"Tryb pełnej strony","Exit Web Fullscreen":"Zamknij tryb pełnej strony","Mini Player":"Miniodtwarzacz","PIP Mode":"Tryb PiP","Exit PIP Mode":"Zamknij tryb PiP","PIP Not Supported":"Tryb PiP nieobsługiwany","Fullscreen Not Supported":"Pełny ekran nieobsługiwany","Subtitle Offset":"Przesunięcie napisów","Last Seen":"Ostatnio widziany","Jump Play":"Skocz do gry","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay nie jest dostępny"}')},{}],hsGmi:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Info o videu","Close":"Zavřít","Video Load Failed":"Nahrání videa selhalo","Volume":"Hlasitost","Play":"Přehrát","Pause":"Pozastavit","Rate":"Hodnocení","Mute":"Ztlumit","Video Flip":"Otočit video","Horizontal":"Horizontálně","Vertical":"Vertikálně","Reconnect":"Opětovné připojení","Show Setting":"Zobrazit nastavení","Hide Setting":"Skrýt nastavení","Screenshot":"Snímek obrazovky","Play Speed":"Rychlost přehrávání","Aspect Ratio":"Poměr stran","Default":"Výchozí","Normal":"Normální","Open":"Otevřít","Switch Video":"Přepnout video","Switch Subtitle":"Přepnout titulky","Fullscreen":"Celá obrazovka","Exit Fullscreen":"Opustit režim celé obrazovky","Web Fullscreen":"Celá stránka","Exit Web Fullscreen":"Zavřít režim celé stránky","Mini Player":"Mini přehrávač","PIP Mode":"Režim PIP","Exit PIP Mode":"Opustit režim PIP","PIP Not Supported":"Režim PIP není podporován","Fullscreen Not Supported":"Režim celé obrazovky není podporován","Subtitle Offset":"Posun titulků","Last Seen":"Naposledy viděn","Jump Play":"Hra na skok","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay není k dispozici"}')},{}],asiZS:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Información del video","Close":"Cerrar","Video Load Failed":"Falló carga de video","Volume":"Volumen","Play":"Reproduciendo","Pause":"Pausa","Rate":"Velocidad","Mute":"Silencio","Video Flip":"Rotar video","Horizontal":"Horizontal","Vertical":"Vertical","Reconnect":"Reconectando","Show Setting":"Mostrar ajustes","Hide Setting":"Ocultar ajustes","Screenshot":"Captura de Pantalla","Play Speed":"Velocidad de reproducción","Aspect Ratio":"Relación de aspecto","Default":"Por defecto","Normal":"Normal","Open":"Abrir","Switch Video":"Cambiar video","Switch Subtitle":"Cambiar subtítulo","Fullscreen":"Pantalla completa","Exit Fullscreen":"Salir de Pantalla completa","Web Fullscreen":"Pantalla completa Web","Exit Web Fullscreen":"Salir de Pantalla completa","Mini Player":"Mini reproductor","PIP Mode":"Modo PiP","Exit PIP Mode":"Cerrar modo PiP","PIP Not Supported":"Modo PiP no compatible","Fullscreen Not Supported":"Pantalla completa no soportada","Subtitle Offset":"Ajuste subtítulo","Last Seen":"Visto última vez","Jump Play":"Saltar","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay no disponible"}')},{}],jxjmf:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"اطلاعات ویدیو","Close":"بستن","Video Load Failed":"بارگذاری ناموفق","Play":"پخش","Volume":"میزان صدا","Pause":"توقف","Rate":"نرخ","Mute":"سکوت","Video Flip":"چرخش تصویر","Horizontal":"افقی","Vertical":"عمودی","Reconnect":"اتصال مجدد","Show Setting":"تنظیمات","Hide Setting":"بستن تنظیمات","Screenshot":"عکس از صفحه","Play Speed":"سرعت پخش","Aspect Ratio":"نسبت تصویر","Default":"حالت پیشفرض","Normal":" حالت عادی","Open":"بازکردن","Switch Video":"تغییر ویدیو","Switch Subtitle":"نغییر زیرنویس","Fullscreen":"تمام صفحه","Exit Fullscreen":"کوچک کردن","Web Fullscreen":"حالت تئاتر","Exit Web Fullscreen":"خروج از حالت تئاتر","Mini Player":"حالت پخش کوچک","PIP Mode":" مینی پلیر","Exit PIP Mode":"خروج از مینی پلیر","PIP Not Supported":"عدم پشتیبانی از مینی پلیر","Fullscreen Not Supported":"عدم پشتیبانی از حالت تمام صفحه","Subtitle Offset":"افست زیرنویس","Last Seen":"آخرین بازدید","Jump Play":"جامپ پلی","AirPlay":"ایر پلی","AirPlay Not Available":"عدم پشتیبانی از ایرپلی"}')},{}],"5HXy9":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informations de la vidéo","Close":"Fermer","Video Load Failed":"Téléchargement de la vidéo échoué","Volume":"Volume","Play":"Lire","Pause":"Pause","Rate":"Vitesse","Mute":"Muet","Video Flip":"Rotation de la vidéo","Horizontal":"Horizontal","Vertical":"Vertical","Reconnect":"Reconnexion","Show Setting":"Afficher les paramètres","Hide Setting":"Cacher les paramètres","Screenshot":"Capture d\'écran","Play Speed":"Vitesse de lecture","Aspect Ratio":"Rapport d\'aspect","Default":"Défaut","Normal":"Normal","Open":"Ouvrir","Switch Video":"Basculer la vidéo","Switch Subtitle":"Basculer le sous-titre","Fullscreen":"Plein écran","Exit Fullscreen":"Quitter le plein écran","Web Fullscreen":"Plein écran Web","Exit Web Fullscreen":"Quitter le plein écran Web","Mini Player":"Mini lecteur","PIP Mode":"Mode PiP","Exit PIP Mode":"Fermer le mode PiP","PIP Not Supported":"Mode PiP non supporté","Fullscreen Not Supported":"Plein écran non supporté","Subtitle Offset":"Réglage des sous-titres","Last Seen":"Dernière position","Jump Play":"Continuer","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay non disponible"}')},{}],gjULl:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informasi Video","Close":"Tutup","Video Load Failed":"Gagal Memuat Video","Volume":"Volume","Play":"Putar","Pause":"Jeda","Rate":"Kecepatan","Mute":"Senyap","Video Flip":"Memutar Video","Horizontal":"Horizontal","Vertical":"Vertikal","Reconnect":"Menyambung Kembali","Show Setting":"Tampilkan Pengaturan","Hide Setting":"Sembunyikan Pengaturan","Screenshot":"Tangkapan Layar","Play Speed":"Kecepatan Putar","Aspect Ratio":"Rasio Aspek","Default":"Default","Normal":"Normal","Open":"Buka","Switch Video":"Ganti Video","Switch Subtitle":"Ganti Subtitle","Fullscreen":"Layar Penuh","Exit Fullscreen":"Keluar dari Layar Penuh","Web Fullscreen":"Layar Penuh Web","Exit Web Fullscreen":"Keluar dari Layar Penuh Web","Mini Player":"Pemutar Mini","PIP Mode":"Mode PIP","Exit PIP Mode":"Keluar dari Mode PIP","PIP Not Supported":"PIP Tidak Didukung","Fullscreen Not Supported":"Layar Penuh Tidak Didukung","Subtitle Offset":"Pergeseran Subtitle","Last Seen":"Terakhir Dilihat","Jump Play":"Lompat Putar","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay Tidak Tersedia"}')},{}],hSqTW:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Информация","Close":"Закрыть","Video Load Failed":"Ошибка загрузки видео","Volume":"Громкость","Play":"Играть","Pause":"Пауза","Rate":"Скорость","Mute":"Заглушить","Video Flip":"Развернуть видео","Horizontal":"Горизонтально","Vertical":"Вертикально","Reconnect":"Переподключенине","Show Setting":"Показать настройки","Hide Setting":"Скрыть настройки","Screenshot":"Скриншот","Play Speed":"Скорость воспроизведения","Aspect Ratio":"Соотношение сторон","Default":"По-умолчанию","Normal":"Нормальный","Open":"Открыть","Switch Video":"Переключить видео","Switch Subtitle":"Переключить субтитры","Fullscreen":"Полноэкранный режим","Exit Fullscreen":"Выход из полноэкранного режима","Web Fullscreen":"На все окно браузера","Exit Web Fullscreen":"Выход из режима полного окна","Mini Player":"Мини проигрыватель","PIP Mode":"Картинка в картинке","Exit PIP Mode":"Закрыть картинку в картинке","PIP Not Supported":"Картинка в картинке не поддерживается","Fullscreen Not Supported":"Полноэкранный режим не поддерживается","Subtitle Offset":"Настройка субтитров","Last Seen":"Последнее просмотренное","Jump Play":"Перейти","AirPlay":"AirPlay","AirPlay Not Available":"AirPlay недоступен"}')},{}],iurL3:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>xe));var a=e("./urlMix"),n=o.interopDefault(a),i=e("./attrMix"),s=o.interopDefault(i),l=e("./playMix"),c=o.interopDefault(l),u=e("./pauseMix"),d=o.interopDefault(u),p=e("./toggleMix"),f=o.interopDefault(p),h=e("./seekMix"),m=o.interopDefault(h),g=e("./volumeMix"),v=o.interopDefault(g),y=e("./currentTimeMix"),b=o.interopDefault(y),x=e("./durationMix"),w=o.interopDefault(x),j=e("./switchMix"),k=o.interopDefault(j),P=e("./playbackRateMix"),S=o.interopDefault(P),T=e("./aspectRatioMix"),I=o.interopDefault(T),$=e("./screenshotMix"),M=o.interopDefault($),L=e("./fullscreenMix"),E=o.interopDefault(L),F=e("./fullscreenWebMix"),V=o.interopDefault(F),C=e("./pipMix"),z=o.interopDefault(C),A=e("./loadedMix"),D=o.interopDefault(A),R=e("./playedMix"),O=o.interopDefault(R),N=e("./playingMix"),H=o.interopDefault(N),W=e("./autoSizeMix"),_=o.interopDefault(W),q=e("./rectMix"),B=o.interopDefault(q),Y=e("./flipMix"),U=o.interopDefault(Y),K=e("./miniMix"),G=o.interopDefault(K),J=e("./loopMix"),X=o.interopDefault(J),Z=e("./posterMix"),Q=o.interopDefault(Z),ee=e("./autoHeightMix"),te=o.interopDefault(ee),re=e("./cssVarMix"),oe=o.interopDefault(re),ae=e("./themeMix"),ne=o.interopDefault(ae),ie=e("./titleMix"),se=o.interopDefault(ie),le=e("./typeMix"),ce=o.interopDefault(le),ue=e("./stateMix"),de=o.interopDefault(ue),pe=e("./subtitleOffsetMix"),fe=o.interopDefault(pe),he=e("./airplayMix"),me=o.interopDefault(he),ge=e("./optionInit"),ve=o.interopDefault(ge),ye=e("./eventInit"),be=o.interopDefault(ye);class xe{constructor(e){(0,n.default)(e),(0,s.default)(e),(0,c.default)(e),(0,d.default)(e),(0,f.default)(e),(0,m.default)(e),(0,v.default)(e),(0,b.default)(e),(0,w.default)(e),(0,k.default)(e),(0,S.default)(e),(0,I.default)(e),(0,M.default)(e),(0,E.default)(e),(0,V.default)(e),(0,z.default)(e),(0,D.default)(e),(0,O.default)(e),(0,H.default)(e),(0,_.default)(e),(0,B.default)(e),(0,U.default)(e),(0,G.default)(e),(0,X.default)(e),(0,Q.default)(e),(0,te.default)(e),(0,oe.default)(e),(0,ne.default)(e),(0,se.default)(e),(0,ce.default)(e),(0,de.default)(e),(0,fe.default)(e),(0,me.default)(e),(0,be.default)(e),(0,ve.default)(e)}}},{"./urlMix":"4df8r","./attrMix":"8yJRD","./playMix":"kcbYx","./pauseMix":"k4Qa2","./toggleMix":"eubK3","./seekMix":"a3ccu","./volumeMix":"eZDDi","./currentTimeMix":"g2p9u","./durationMix":"fVWng","./switchMix":"fPwKz","./playbackRateMix":"5bAAP","./aspectRatioMix":"jdXVQ","./screenshotMix":"jvCvi","./fullscreenMix":"64ezs","./fullscreenWebMix":"jAgkC","./pipMix":"hX3WW","./loadedMix":"haZ44","./playedMix":"bJJD2","./playingMix":"b9QOv","./autoSizeMix":"6wkLS","./rectMix":"aPMtq","./flipMix":"fjHTo","./miniMix":"dNW08","./loopMix":"hU7SH","./posterMix":"j5OaI","./autoHeightMix":"edb1A","./cssVarMix":"kP5mj","./themeMix":"aLnna","./titleMix":"5WuSd","./typeMix":"jFGSq","./stateMix":"05f1O","./subtitleOffsetMix":"ahPb2","./airplayMix":"7KN5Z","./optionInit":"kH278","./eventInit":"5cgWT","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"4df8r":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,template:{$video:r}}=e;(0,o.def)(e,"url",{get:()=>r.src,async set(a){if(a){const n=e.url,i=t.type||(0,o.getExt)(a),s=t.customType[i];i&&s?(await(0,o.sleep)(),e.loading.show=!0,s.call(e,r,a,e)):r.src=a,n!==e.url&&(e.option.url=a,e.isReady&&n&&e.once("video:canplay",(()=>{e.emit("restart",a)})))}else await(0,o.sleep)(),e.loading.show=!0}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8yJRD":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{template:{$video:t}}=e;(0,o.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kcbYx:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:a,constructor:{instances:n},template:{$video:i}}=e;(0,o.def)(e,"play",{value:async function(){const o=await i.play();if(r.show=t.get("Play"),e.emit("play"),a.mutex)for(let t=0;te.playing?e.pause():e.play()})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],a3ccu:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{notice:t}=e;(0,o.def)(e,"seek",{set(r){e.currentTime=r,e.emit("seek",e.currentTime),e.duration&&(t.show=`${(0,o.secondToTime)(e.currentTime)} / ${(0,o.secondToTime)(e.duration)}`)}}),(0,o.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,o.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],eZDDi:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:a,storage:n}=e;(0,o.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,o.clamp)(e,0,1),a.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&n.set("volume",t.volume)}}),(0,o.def)(e,"muted",{get:()=>t.muted,set:e=>{t.muted=e}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],g2p9u:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,o.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{r=parseFloat(r),Number.isNaN(r)||(t.currentTime=(0,o.clamp)(r,0,e.duration))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fVWng:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){(0,o.def)(e,"duration",{get:()=>{const{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fPwKz:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,option:r,notice:a}=e;function n(o,n,i){return new Promise((s=>{if(o===e.url)return s(o);const{playing:l}=e;e.pause(),URL.revokeObjectURL(e.url),e.url=o,e.once("video:canplay",(()=>{e.playbackRate=!1,e.aspectRatio=!1,e.flip="normal",e.autoSize=r.autoSize,e.currentTime=i,e.notice.show="",l&&e.play(),n&&(a.show=`${t.get("Switch Video")}: ${n}`),s(o)}))}))}(0,o.def)(e,"switchQuality",{value:(t,r)=>n(t,r,e.currentTime)}),(0,o.def)(e,"switchUrl",{value:(e,t)=>n(e,t,0)})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5bAAP":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:a}=e;(0,o.def)(e,"playbackRate",{get:()=>t.playbackRate,set(o){if(o){if(o===t.playbackRate)return;t.playbackRate=o,a.show=`${r.get("Rate")}: ${1===o?r.get("Normal"):`${o}x`}`}else e.playbackRate=1}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jdXVQ:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{template:{$video:t,$player:r},i18n:a,notice:n}=e;(0,o.def)(e,"aspectRatio",{get:()=>r.dataset.aspectRatio||"default",set(i){if(i||(i="default"),"default"===i)(0,o.setStyle)(t,"width",null),(0,o.setStyle)(t,"height",null),(0,o.setStyle)(t,"padding",null),delete r.dataset.aspectRatio;else{const e=i.split(":").map(Number),{videoWidth:a,videoHeight:n}=t,{clientWidth:s,clientHeight:l}=r,c=a/n,u=e[0]/e[1];if(c>u){const e=u*n/a;(0,o.setStyle)(t,"width",100*e+"%"),(0,o.setStyle)(t,"height","100%"),(0,o.setStyle)(t,"padding",`0 ${(s-s*e)/2}px`)}else{const e=a/u/n;(0,o.setStyle)(t,"width","100%"),(0,o.setStyle)(t,"height",100*e+"%"),(0,o.setStyle)(t,"padding",(l-l*e)/2+"px 0")}r.dataset.aspectRatio=i}n.show=`${a.get("Aspect Ratio")}: ${"default"===i?a.get("Default"):i}`,e.emit("aspectRatio",i)}}),(0,o.def)(e,"aspectRatioReset",{value(){const{aspectRatio:t}=e;e.aspectRatio=t}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jvCvi:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,notice:r,template:{$video:a}}=e,n=(0,o.createElement)("canvas");(0,o.def)(e,"getDataURL",{value:()=>new Promise(((e,t)=>{try{n.width=a.videoWidth,n.height=a.videoHeight,n.getContext("2d").drawImage(a,0,0),e(n.toDataURL("image/png"))}catch(e){r.show=e,t(e)}}))}),(0,o.def)(e,"getBlobUrl",{value:()=>new Promise(((e,t)=>{try{n.width=a.videoWidth,n.height=a.videoHeight,n.getContext("2d").drawImage(a,0,0),n.toBlob((t=>{e(URL.createObjectURL(t))}))}catch(e){r.show=e,t(e)}}))}),(0,o.def)(e,"screenshot",{value:async()=>{const r=await e.getDataURL();return(0,o.download)(r,`${t.title||"artplayer"}_${(0,o.secondToTime)(a.currentTime)}.png`),e.emit("screenshot",r),r}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"64ezs":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var a=e("../libs/screenfull"),n=o.interopDefault(a),i=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:o,$player:a}}=e;e.once("video:loadedmetadata",(()=>{n.default.isEnabled?(e=>{n.default.on("change",(()=>{e.emit("fullscreen",n.default.isFullscreen)})),(0,i.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(t){t?(e.state="fullscreen",e.aspectRatioReset(),e.autoSize=!1,await n.default.request(a),(0,i.addClass)(a,"art-fullscreen"),e.emit("resize"),r.show=""):(e.aspectRatioReset(),e.autoSize=e.option.autoSize,await n.default.exit(),(0,i.removeClass)(a,"art-fullscreen"),e.emit("resize"),r.show="")}})})(e):document.fullscreenEnabled||o.webkitSupportsFullscreen?(e=>{(0,i.def)(e,"fullscreen",{get:()=>o.webkitDisplayingFullscreen,set(t){t?(e.state="fullscreen",o.webkitEnterFullscreen(),e.emit("fullscreen",!0),r.show=""):(o.webkitExitFullscreen(),e.emit("fullscreen",!1),r.show="")}})})(e):(0,i.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,i.def)(e,"fullscreen",(0,i.get)(e,"fullscreen"))}))}},{"../libs/screenfull":"gWvOv","../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],gWvOv:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);const o=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],a=(()=>{if("undefined"==typeof document)return!1;const e=o[0],t={};for(const r of o){if(r[1]in document){for(const[o,a]of r.entries())t[e[o]]=a;return t}}return!1})(),n={change:a.fullscreenchange,error:a.fullscreenerror};let i={request:(e=document.documentElement,t)=>new Promise(((r,o)=>{const n=()=>{i.off("change",n),r()};i.on("change",n);const s=e[a.requestFullscreen](t);s instanceof Promise&&s.then(n).catch(o)})),exit:()=>new Promise(((e,t)=>{if(!i.isFullscreen)return void e();const r=()=>{i.off("change",r),e()};i.on("change",r);const o=document[a.exitFullscreen]();o instanceof Promise&&o.then(r).catch(t)})),toggle:(e,t)=>i.isFullscreen?i.exit():i.request(e,t),onchange(e){i.on("change",e)},onerror(e){i.on("error",e)},on(e,t){const r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){const r=n[e];r&&document.removeEventListener(r,t,!1)},raw:a};Object.defineProperties(i,{isFullscreen:{get:()=>Boolean(document[a.fullscreenElement])},element:{enumerable:!0,get:()=>document[a.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>Boolean(document[a.fullscreenEnabled])}}),a||(i={isEnabled:!1}),r.default=i},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jAgkC:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,notice:r,constructor:a,template:{$container:n,$player:i}}=e;let s="";(0,o.def)(e,"fullscreenWeb",{get:()=>(0,o.hasClass)(i,"art-fullscreen-web"),set(l){l?(s=i.style.cssText,a.FULLSCREEN_WEB_IN_BODY&&(0,o.append)(document.body,i),e.state="fullscreenWeb",(0,o.addClass)(i,"art-fullscreen-web"),e.aspectRatioReset(),e.autoSize=!1,e.emit("resize"),e.emit("fullscreenWeb",!0),r.show=""):(a.FULLSCREEN_WEB_IN_BODY&&(0,o.append)(n,i),s&&(i.style.cssText=s,s=""),(0,o.removeClass)(i,"art-fullscreen-web"),e.aspectRatioReset(),e.autoSize=t.autoSize,e.emit("resize"),e.emit("fullscreenWeb",!1),r.show="")}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],hX3WW:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:a}}=e;document.pictureInPictureEnabled?function(e){const{template:{$video:t},proxy:r,notice:a}=e;t.disablePictureInPicture=!1,(0,o.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.state="pip",t.requestPictureInPicture().catch((e=>{throw a.show=e,e}))):document.exitPictureInPicture().catch((e=>{throw a.show=e,e}))}}),r(t,"enterpictureinpicture",(()=>{e.emit("pip",!0)})),r(t,"leavepictureinpicture",(()=>{e.emit("pip",!1)}))}(e):a.webkitSupportsPresentationMode?function(e){const{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,o.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.state="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}(e):(0,o.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],haZ44:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,o.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,o.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],bJJD2:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){(0,o.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],b9QOv:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{$video:t}=e.template;(0,o.def)(e,"playing",{get:()=>!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"6wkLS":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{$container:t,$player:r,$video:a}=e.template;(0,o.def)(e,"autoSize",{get:()=>(0,o.hasClass)(t,"art-auto-size"),set(n){if(n){const{videoWidth:n,videoHeight:i}=a,{width:s,height:l}=t.getBoundingClientRect(),c=n/i,u=s/l;if((0,o.addClass)(t,"art-auto-size"),u>c){const e=l*c/s*100;(0,o.setStyle)(r,"width",`${e}%`),(0,o.setStyle)(r,"height","100%")}else{const e=s/c/l*100;(0,o.setStyle)(r,"width","100%"),(0,o.setStyle)(r,"height",`${e}%`)}e.emit("autoSize",{width:e.width,height:e.height})}else(0,o.removeClass)(t,"art-auto-size"),(0,o.setStyle)(r,"width",null),(0,o.setStyle)(r,"height",null),e.emit("autoSize")}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],aPMtq:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){(0,o.def)(e,"rect",{get:()=>e.template.$player.getBoundingClientRect()});const t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[a]})}(0,o.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,o.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fjHTo:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{template:{$player:t},i18n:r,notice:a}=e;(0,o.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(n){n||(n="normal"),"normal"===n?delete t.dataset.flip:t.dataset.flip=n,a.show=`${r.get("Video Flip")}: ${r.get((0,o.capitalize)(n))}`,e.emit("flip",n)}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],dNW08:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{icons:t,proxy:r,storage:a,template:{$player:n,$video:i}}=e;let s=!1,l=0,c=0;function u(){const{$mini:t}=e.template;t&&((0,o.removeClass)(n,"art-mini"),(0,o.setStyle)(t,"display","none"),n.prepend(i),e.emit("mini",!1))}function d(t,r){e.playing?((0,o.setStyle)(t,"display","none"),(0,o.setStyle)(r,"display","flex")):((0,o.setStyle)(t,"display","flex"),(0,o.setStyle)(r,"display","none"))}function p(){const{$mini:t}=e.template,r=t.getBoundingClientRect(),n=window.innerHeight-r.height-50,i=window.innerWidth-r.width-50;a.set("top",n),a.set("left",i),(0,o.setStyle)(t,"top",`${n}px`),(0,o.setStyle)(t,"left",`${i}px`)}(0,o.def)(e,"mini",{get:()=>(0,o.hasClass)(n,"art-mini"),set(f){if(f){(0,o.addClass)(n,"art-mini");const f=function(){const{$mini:n}=e.template;if(n)return(0,o.append)(n,i),(0,o.setStyle)(n,"display","flex");{const n=(0,o.createElement)("div");(0,o.addClass)(n,"art-mini-popup"),(0,o.append)(document.body,n),e.template.$mini=n,(0,o.append)(n,i);const p=(0,o.append)(n,'
');(0,o.append)(p,t.close),r(p,"click",u);const f=(0,o.append)(n,'
'),h=(0,o.append)(f,t.play),m=(0,o.append)(f,t.pause);return r(h,"click",(()=>e.play())),r(m,"click",(()=>e.pause())),d(h,m),e.on("video:playing",(()=>d(h,m))),e.on("video:pause",(()=>d(h,m))),e.on("video:timeupdate",(()=>d(h,m))),r(n,"mousedown",(e=>{s=0===e.button,l=e.pageX,c=e.pageY})),e.on("document:mousemove",(e=>{if(s){(0,o.addClass)(n,"art-mini-droging");const t=e.pageX-l,r=e.pageY-c;(0,o.setStyle)(n,"transform",`translate(${t}px, ${r}px)`)}})),e.on("document:mouseup",(()=>{if(s){s=!1,(0,o.removeClass)(n,"art-mini-droging");const e=n.getBoundingClientRect();a.set("left",e.left),a.set("top",e.top),(0,o.setStyle)(n,"left",`${e.left}px`),(0,o.setStyle)(n,"top",`${e.top}px`),(0,o.setStyle)(n,"transform",null)}})),n}}(),h=a.get("top"),m=a.get("left");h&&m?((0,o.setStyle)(f,"top",`${h}px`),(0,o.setStyle)(f,"left",`${m}px`),(0,o.isInViewport)(f)||p()):p(),e.emit("mini",!0)}else u()}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],hU7SH:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){let t=[];(0,o.def)(e,"loop",{get:()=>t,set:r=>{if(Array.isArray(r)&&"number"==typeof r[0]&&"number"==typeof r[1]){const a=(0,o.clamp)(r[0],0,Math.min(r[1],e.duration)),n=(0,o.clamp)(r[1],a,e.duration);t=n-a>=1?[a,n]:[]}else t=[];e.emit("loop",t)}}),e.on("video:timeupdate",(()=>{t.length&&(e.currentTimet[1])&&(e.seek=t[0])}))}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],j5OaI:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,template:{$poster:r}}=e;(0,o.def)(e,"poster",{get:()=>t.poster,set(e){t.poster=e,(0,o.setStyle)(r,"backgroundImage",`url(${e})`)}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],edb1A:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,template:{$container:r,$video:a}}=e,n=r.style.height;(0,o.def)(e,"autoHeight",{get:()=>(0,o.hasClass)(r,"art-auto-height"),set(i){if(i){const{clientWidth:n}=r,{videoHeight:i,videoWidth:s}=a,l=i*(n/s);(0,o.setStyle)(r,"height",l+"px"),(0,o.addClass)(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight",l)}else(0,o.setStyle)(r,"height",n),(0,o.removeClass)(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight")}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kP5mj:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{$player:t}=e.template;(0,o.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],aLnna:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t}=e;(0,o.def)(e,"theme",{get:()=>e.cssProperty("--art-theme"),set(r){t.theme=r,e.cssProperty("--art-theme",r)}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5WuSd":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){(0,o.def)(e,"title",{get:()=>e.option.title,set(t){e.option.title=t}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jFGSq:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){(0,o.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"05f1O":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const t=["mini","pip","fullscreen","fullscreenWeb"];(0,o.def)(e,"state",{get:()=>t.find((t=>e[t]))||"standard",set(r){for(let o=0;o{s=[]})),(0,o.def)(e,"subtitleOffset",{get:()=>i,set(o){if(a.$track&&a.$track.track){const l=Array.from(a.$track.track.cues);i=t(o,-5,5);for(let r=0;r{switch(e.availability){case"available":i=!0;break;case"not-available":i=!1}})):i=!1,(0,o.def)(e,"airplay",{value(){i?(n.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kH278:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{option:t,storage:r,template:{$video:a,$poster:n}}=e;for(const r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(a.volume=(0,o.clamp)(t.volume,0,1));const i=r.get("volume");"number"==typeof i&&(a.volume=(0,o.clamp)(i,0,1)),t.poster&&(0,o.setStyle)(n,"backgroundImage",`url(${t.poster})`),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme);for(const r in t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5cgWT":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var a=e("../config"),n=o.interopDefault(a),i=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:o,constructor:a,proxy:s,template:{$player:l,$video:c,$poster:u}}=e;let d=0;for(let t=0;t{e.emit(`video:${t.type}`,t)}));e.on("video:canplay",(()=>{d=0,e.loading.show=!1})),e.once("video:canplay",(()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")})),e.on("video:ended",(()=>{o.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)})),e.on("video:error",(async n=>{d{e.autoSize=o.autoSize,i.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)})),e.on("video:loadstart",(()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0})),e.on("video:pause",(()=>{e.controls.show=!0,e.mask.show=!0})),e.on("video:play",(()=>{e.mask.show=!1,(0,i.setStyle)(u,"display","none")})),e.on("video:playing",(()=>{e.mask.show=!1})),e.on("video:seeked",(()=>{e.loading.show=!1})),e.on("video:seeking",(()=>{e.loading.show=!0,e.mask.show=!1})),e.on("video:timeupdate",(()=>{e.mask.show=!1})),e.on("video:waiting",(()=>{e.loading.show=!0,e.mask.show=!1}))}},{"../config":"1shlC","../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],krUTp:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>V));var a=e("../utils"),n=e("../utils/component"),i=o.interopDefault(n),s=e("./fullscreen"),l=o.interopDefault(s),c=e("./fullscreenWeb"),u=o.interopDefault(c),d=e("./pip"),p=o.interopDefault(d),f=e("./playAndPause"),h=o.interopDefault(f),m=e("./progress"),g=o.interopDefault(m),v=e("./time"),y=o.interopDefault(v),b=e("./volume"),x=o.interopDefault(b),w=e("./setting"),j=o.interopDefault(w),k=e("./thumbnails"),P=o.interopDefault(k),S=e("./screenshot"),T=o.interopDefault(S),I=e("./quality"),$=o.interopDefault(I),M=e("./loop"),L=o.interopDefault(M),E=e("./airplay"),F=o.interopDefault(E);class V extends i.default{init(){const{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),!e.thumbnails.url||e.isLive||a.isMobile||this.add((0,P.default)({name:"thumbnails",position:"top",index:20})),this.add((0,L.default)({name:"loop",position:"top",index:30})),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&this.add((0,$.default)({name:"quality",position:"right",index:10})),e.screenshot&&!a.isMobile&&this.add((0,T.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,p.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,F.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,u.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;t{this.show=!0,(0,a.removeClass)(o,"art-hide-cursor"),(0,a.addClass)(o,"art-hover"),n=Date.now()})),e.on("video:timeupdate",(()=>{!e.isInput&&e.playing&&this.show&&Date.now()-n>=r.CONTROL_HIDE_TIME&&(this.show=!1,(0,a.addClass)(o,"art-hide-cursor"),(0,a.removeClass)(o,"art-hover"))})),this.init()}}},{"../utils":"7drL4","../utils/component":"gEwXu","./fullscreen":"aphct","./fullscreenWeb":"86CsN","./pip":"8EbkL","./playAndPause":"juUdj","./progress":"3g6RZ","./time":"9BztV","./volume":"8ZEFD","./setting":"4Dw5D","./thumbnails":"k0DvK","./screenshot":"bRP5Y","./quality":"jW8r3","./loop":"eJYjN","./airplay":"eFnNY","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],gEwXu:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>u));var a=e("./dom"),n=e("./format"),i=e("./error"),s=e("option-validator"),l=o.interopDefault(s),c=e("../scheme");class u{get show(){return(0,a.hasClass)(this.art.template.$player,`art-${this.name}-show`)}set show(e){const{$player:t}=this.art.template,r=`art-${this.name}-show`;e?(0,a.addClass)(t,r):(0,a.removeClass)(t,r),this.art.emit(this.name,e)}toggle(){this.show=!this.show}add(e){const t="function"==typeof e?e(this.art):e;if(t.html=t.html||"",(0,l.default)(t,c.ComponentOption),!this.$parent||!this.name||t.disable)return;const r=t.name||`${this.name}${this.id}`,o=this.cache.get(r);(0,i.errorHandle)(!o,`Can't add an existing [${r}] to the [${this.name}]`),this.id+=1;const n=(0,a.createElement)("div");(0,a.addClass)(n,`art-${this.name}`),(0,a.addClass)(n,`art-${this.name}-${r}`);const s=Array.from(this.$parent.children);n.dataset.index=t.index||this.id;const u=s.find((e=>Number(e.dataset.index)>=Number(n.dataset.index)));u?u.insertAdjacentElement("beforebegin",n):(0,a.append)(this.$parent,n),t.html&&(0,a.append)(n,t.html),t.style&&(0,a.setStyles)(n,t.style),t.tooltip&&(0,a.tooltip)(n,t.tooltip);const d=[];if(t.click){const e=this.art.events.proxy(n,"click",(e=>{e.preventDefault(),t.click.call(this.art,this,e)}));d.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.addSelector(t,n,d),this[r]=n,this.cache.set(r,{$ref:n,events:d,option:t}),t.mounted&&t.mounted.call(this.art,n),n}addSelector(e,t,r){const{hover:o,proxy:i}=this.art.events;(0,a.addClass)(t,"art-control-selector");const s=(0,a.createElement)("div");(0,a.addClass)(s,"art-selector-value"),(0,a.append)(s,e.html),t.innerText="",(0,a.append)(t,s);const l=e.selector.map(((e,t)=>`
${e.html}
`)).join(""),c=(0,a.createElement)("div");(0,a.addClass)(c,"art-selector-list"),(0,a.append)(c,l),(0,a.append)(t,c);const u=()=>{const e=(0,a.getStyle)(t,"width")/2-(0,a.getStyle)(c,"width")/2;c.style.left=`${e}px`};o(t,u);const d=i(c,"click",(async t=>{const r=(t.composedPath()||[]).find((e=>(0,a.hasClass)(e,"art-selector-item")));if(!r)return;(0,a.inverseClass)(r,"art-current");const o=Number(r.dataset.index),i=e.selector[o]||{};if(s.innerText=r.innerText,e.onSelect){const o=await e.onSelect.call(this.art,i,r,t);(0,n.isStringOrNumber)(o)&&(s.innerHTML=o)}u()}));r.push(d)}remove(e){const t=this.cache.get(e);(0,i.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;e({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{const{proxy:r,icons:a,i18n:n}=t,i=(0,o.append)(e,a.fullscreenOn),s=(0,o.append)(e,a.fullscreenOff);(0,o.setStyle)(s,"display","none"),r(e,"click",(()=>{t.fullscreen=!t.fullscreen})),t.on("fullscreen",(t=>{t?((0,o.tooltip)(e,n.get("Exit Fullscreen")),(0,o.setStyle)(i,"display","none"),(0,o.setStyle)(s,"display","inline-flex")):((0,o.tooltip)(e,n.get("Fullscreen")),(0,o.setStyle)(i,"display","inline-flex"),(0,o.setStyle)(s,"display","none"))}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"86CsN":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{const{proxy:r,icons:a,i18n:n}=t,i=(0,o.append)(e,a.fullscreenWebOn),s=(0,o.append)(e,a.fullscreenWebOff);(0,o.setStyle)(s,"display","none"),r(e,"click",(()=>{t.fullscreenWeb=!t.fullscreenWeb})),t.on("fullscreenWeb",(t=>{t?((0,o.tooltip)(e,n.get("Exit Web Fullscreen")),(0,o.setStyle)(i,"display","none"),(0,o.setStyle)(s,"display","inline-flex")):((0,o.tooltip)(e,n.get("Web Fullscreen")),(0,o.setStyle)(i,"display","inline-flex"),(0,o.setStyle)(s,"display","none"))}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8EbkL":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{const{proxy:r,icons:a,i18n:n}=t;(0,o.append)(e,a.pip),r(e,"click",(()=>{t.pip=!t.pip})),t.on("pip",(t=>{(0,o.tooltip)(e,n.get(t?"Exit PIP Mode":"PIP Mode"))}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],juUdj:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const{proxy:r,icons:a,i18n:n}=t,i=(0,o.append)(e,a.play),s=(0,o.append)(e,a.pause);function l(){(0,o.setStyle)(i,"display","flex"),(0,o.setStyle)(s,"display","none")}function c(){(0,o.setStyle)(i,"display","none"),(0,o.setStyle)(s,"display","flex")}(0,o.tooltip)(i,n.get("Play")),(0,o.tooltip)(s,n.get("Pause")),r(i,"click",(()=>{t.play()})),r(s,"click",(()=>{t.pause()})),t.playing?c():l(),t.on("video:playing",(()=>{c()})),t.on("video:pause",(()=>{l()}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"3g6RZ":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"getPosFromEvent",(()=>n)),o.export(r,"setCurrentTime",(()=>i));var a=e("../utils");function n(e,t){const{$progress:r}=e.template,{left:o}=r.getBoundingClientRect(),n=a.isMobile?t.touches[0].clientX:t.pageX,i=(0,a.clamp)(n-o,0,r.clientWidth),s=i/r.clientWidth*e.duration;return{second:s,time:(0,a.secondToTime)(s),width:i,percentage:(0,a.clamp)(i/r.clientWidth,0,1)}}function i(e,t){if(e.isRotate){const r=t.touches[0].clientY/e.height,o=r*e.duration;e.emit("setBar","played",r),e.seek=o}else{const{second:r,percentage:o}=n(e,t);e.emit("setBar","played",o),e.seek=r}}r.default=function(e){return t=>{const{icons:r,option:o,proxy:s}=t;return{...e,html:'
',mounted:e=>{let l=!1;const c=(0,a.query)(".art-progress-hover",e),u=(0,a.query)(".art-progress-loaded",e),d=(0,a.query)(".art-progress-played",e),p=(0,a.query)(".art-progress-highlight",e),f=(0,a.query)(".art-progress-indicator",e),h=(0,a.query)(".art-progress-tip",e);function m(e,t){"loaded"===e&&(0,a.setStyle)(u,"width",100*t+"%"),"played"===e&&((0,a.setStyle)(d,"width",100*t+"%"),(0,a.setStyle)(f,"left",100*t+"%"))}r.indicator?(0,a.append)(f,r.indicator):(0,a.setStyle)(f,"backgroundColor","var(--art-theme)"),t.on("video:loadedmetadata",(()=>{for(let e=0;e`;(0,a.append)(p,i)}})),m("loaded",t.loaded),t.on("setBar",((e,t)=>{m(e,t)})),t.on("video:progress",(()=>{m("loaded",t.loaded)})),t.on("video:timeupdate",(()=>{m("played",t.played)})),t.on("video:ended",(()=>{m("played",1)})),a.isMobile||(s(e,"click",(e=>{e.target!==f&&i(t,e)})),s(e,"mousemove",(r=>{!function(e){const{width:r}=n(t,e);(0,a.setStyle)(c,"width",`${r}px`),(0,a.setStyle)(c,"display","flex")}(r),(0,a.setStyle)(h,"display","flex"),(0,a.includeFromEvent)(r,p)?function(r){const{width:o}=n(t,r),{text:i}=r.target.dataset;h.innerHTML=i;const s=h.clientWidth;o<=s/2?(0,a.setStyle)(h,"left",0):o>e.clientWidth-s/2?(0,a.setStyle)(h,"left",e.clientWidth-s+"px"):(0,a.setStyle)(h,"left",o-s/2+"px")}(r):function(r){const{width:o,time:i}=n(t,r);h.innerHTML=i;const s=h.clientWidth;o<=s/2?(0,a.setStyle)(h,"left",0):o>e.clientWidth-s/2?(0,a.setStyle)(h,"left",e.clientWidth-s+"px"):(0,a.setStyle)(h,"left",o-s/2+"px")}(r)})),s(e,"mouseleave",(()=>{(0,a.setStyle)(h,"display","none"),(0,a.setStyle)(c,"display","none")})),s(e,"mousedown",(e=>{l=0===e.button})),t.on("document:mousemove",(e=>{if(l){const{second:r,percentage:o}=n(t,e);m("played",o),t.seek=r}})),t.on("document:mouseup",(()=>{l&&(l=!1)})))}}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"9BztV":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,style:o.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:e=>{function r(){const r=`${(0,o.secondToTime)(t.currentTime)} / ${(0,o.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();const a=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;e({...e,mounted:e=>{const{proxy:r,icons:a}=t,n=(0,o.append)(e,a.volume),i=(0,o.append)(e,a.volumeClose),s=(0,o.append)(e,'
'),l=(0,o.append)(s,'
'),c=(0,o.append)(l,'
'),u=(0,o.append)(l,'
'),d=(0,o.append)(u,'
'),p=(0,o.append)(d,'
'),f=(0,o.append)(u,'
');function h(e){const{top:t,height:r}=u.getBoundingClientRect();return 1-(e.pageY-t)/r}function m(){if(t.muted||0===t.volume)(0,o.setStyle)(n,"display","none"),(0,o.setStyle)(i,"display","flex"),(0,o.setStyle)(f,"top","100%"),(0,o.setStyle)(p,"top","100%"),c.innerText=0;else{const e=100*t.volume;(0,o.setStyle)(n,"display","flex"),(0,o.setStyle)(i,"display","none"),(0,o.setStyle)(f,"top",100-e+"%"),(0,o.setStyle)(p,"top",100-e+"%"),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(n,"click",(()=>{t.muted=!0})),r(i,"click",(()=>{t.muted=!1})),o.isMobile)(0,o.setStyle)(s,"display","none");else{let e=!1;r(u,"mousedown",(r=>{e=0===r.button,t.volume=h(r)})),t.on("document:mousemove",(r=>{e&&(t.muted=!1,t.volume=h(r))})),t.on("document:mouseup",(()=>{e&&(e=!1)}))}}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"4Dw5D":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{const{proxy:r,icons:a,i18n:n}=t;(0,o.append)(e,a.setting),r(e,"click",(()=>{t.setting.toggle(),t.setting.updateStyle()})),t.on("setting",(t=>{(0,o.tooltip)(e,n.get(t?"Hide Setting":"Show Setting"))}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],k0DvK:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils"),a=e("./progress");r.default=function(e){return t=>({...e,mounted:e=>{const{option:r,template:{$progress:n,$video:i},events:{proxy:s,loadImg:l}}=t;let c=null,u=!1,d=!1;s(n,"mousemove",(async s=>{if(!u){u=!0;const e=await l(r.thumbnails.url);c=e,d=!0}d&&((0,o.setStyle)(e,"display","flex"),function(s){const{width:l}=(0,a.getPosFromEvent)(t,s),{url:u,number:d,column:p,width:f,height:h}=r.thumbnails,m=f||c.naturalWidth/p,g=h||m/(i.videoWidth/i.videoHeight),v=n.clientWidth/d,y=Math.floor(l/v),b=Math.ceil(y/p)-1,x=y%p||p-1;(0,o.setStyle)(e,"backgroundImage",`url(${u})`),(0,o.setStyle)(e,"height",`${g}px`),(0,o.setStyle)(e,"width",`${m}px`),(0,o.setStyle)(e,"backgroundPosition",`-${x*m}px -${b*g}px`),l<=m/2?(0,o.setStyle)(e,"left",0):l>n.clientWidth-m/2?(0,o.setStyle)(e,"left",n.clientWidth-m+"px"):(0,o.setStyle)(e,"left",l-m/2+"px")}(s))})),s(n,"mouseleave",(()=>{(0,o.setStyle)(e,"display","none")})),t.on("hover",(t=>{t||(0,o.setStyle)(e,"display","none")}))}})}},{"../utils":"7drL4","./progress":"3g6RZ","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],bRP5Y:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{const{proxy:r,icons:a}=t;(0,o.append)(e,a.screenshot),r(e,"click",(()=>{t.screenshot()}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jW8r3:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>{const r=t.option.quality,o=r.find((e=>e.default))||r[0];return{...e,style:{marginRight:"10px"},html:o?o.html:"",selector:r,onSelect(e){t.switchQuality(e.url,e.html)}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],eJYjN:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const r=(0,o.append)(e,''),a=(0,o.append)(e,'');t.on("loop",(n=>{n&&n.length?((0,o.setStyle)(e,"display","flex"),(0,o.setStyle)(r,"left",`calc(${n[0]/t.duration*100}% - ${r.clientWidth}px)`),(0,o.setStyle)(a,"left",n[1]/t.duration*100+"%")):(0,o.setStyle)(e,"display","none")}))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],eFnNY:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{const{proxy:r,icons:a}=t;(0,o.append)(e,a.airplay),r(e,"click",(()=>t.airplay()))}})}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],XqyHm:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>b));var a=e("../utils"),n=e("../utils/component"),i=o.interopDefault(n),s=e("./playbackRate"),l=o.interopDefault(s),c=e("./aspectRatio"),u=o.interopDefault(c),d=e("./flip"),p=o.interopDefault(d),f=e("./info"),h=o.interopDefault(f),m=e("./version"),g=o.interopDefault(m),v=e("./close"),y=o.interopDefault(v);class b extends i.default{init(){const{option:e,proxy:t,template:{$player:r,$contextmenu:o}}=this.art;e.playbackRate&&this.add((0,l.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,u.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,p.default)({name:"flip",index:30})),this.add((0,h.default)({name:"info",index:40})),this.add((0,g.default)({name:"version",index:50})),this.add((0,y.default)({name:"close",index:60}));for(let t=0;t{if(e.preventDefault(),!this.art.constructor.CONTEXTMENU)return;this.show=!0;const t=e.clientX,n=e.clientY,{height:i,width:s,left:l,top:c}=r.getBoundingClientRect(),{height:u,width:d}=o.getBoundingClientRect();let p=t-l,f=n-c;t+d>l+s&&(p=s-d),n+u>c+i&&(f=i-u),(0,a.setStyles)(o,{top:`${f}px`,left:`${p}px`})})),t(r,"click",(e=>{(0,a.includeFromEvent)(e,o)||(this.show=!1)})),this.art.on("blur",(()=>{this.show=!1}))}constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,a.isMobile||this.init()}}},{"../utils":"7drL4","../utils/component":"gEwXu","./playbackRate":"8vD6h","./aspectRatio":"lOf6Q","./flip":"9d8Kb","./info":"96FcY","./version":"2IeXY","./close":"8mYqj","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8vD6h":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{PLAYBACK_RATE:a}}=t,n=a.map((e=>`${1===e?r.get("Normal"):e.toFixed(1)}`)).join("");return{...e,html:`${r.get("Play Speed")}: ${n}`,click:(e,r)=>{const{value:o}=r.target.dataset;o&&(t.playbackRate=Number(o),e.show=!1)},mounted:e=>{const r=(0,o.query)('[data-value="1"]',e);r&&(0,o.inverseClass)(r,"art-current"),t.on("video:ratechange",(()=>{const r=(0,o.queryAll)("span",e).find((e=>Number(e.dataset.value)===t.playbackRate));r&&(0,o.inverseClass)(r,"art-current")}))}}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],lOf6Q:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{ASPECT_RATIO:a}}=t,n=a.map((e=>`${"default"===e?r.get("Default"):e}`)).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${n}`,click:(e,r)=>{const{value:o}=r.target.dataset;o&&(t.aspectRatio=o,e.show=!1)},mounted:e=>{const r=(0,o.query)('[data-value="default"]',e);r&&(0,o.inverseClass)(r,"art-current"),t.on("aspectRatio",(t=>{const r=(0,o.queryAll)("span",e).find((e=>e.dataset.value===t));r&&(0,o.inverseClass)(r,"art-current")}))}}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"9d8Kb":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){return t=>{const{i18n:r,constructor:{FLIP:a}}=t,n=a.map((e=>`${r.get((0,o.capitalize)(e))}`)).join("");return{...e,html:`${r.get("Video Flip")}: ${n}`,click:(e,r)=>{const{value:o}=r.target.dataset;o&&(t.flip=o.toLowerCase(),e.show=!1)},mounted:e=>{const r=(0,o.query)('[data-value="normal"]',e);r&&(0,o.inverseClass)(r,"art-current"),t.on("flip",(t=>{const r=(0,o.queryAll)("span",e).find((e=>e.dataset.value===t));r&&(0,o.inverseClass)(r,"art-current")}))}}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"96FcY":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"2IeXY":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return{...e,html:'ArtPlayer 5.0.0'}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8mYqj":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fiMkm:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>s));var a=e("./utils"),n=e("./utils/component"),i=o.interopDefault(n);class s extends i.default{init(){const{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:o,$video:n}}=this.art;e(o,"click",(()=>{this.show=!1}));let i=null;const s=(0,a.queryAll)("[data-video]",r)||[];this.art.on("destroy",(()=>clearTimeout(i))),function e(){for(let e=0;ed));var a=e("./utils"),n=e("./utils/component"),i=o.interopDefault(n),s=e("option-validator"),l=o.interopDefault(s),c=e("./scheme"),u=o.interopDefault(c);class d extends i.default{get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video.textTracks[0]}get activeCue(){return this.textTrack.activeCues[0]}style(e,t){const{$subtitle:r}=this.art.template;return"object"==typeof e?(0,a.setStyles)(r,e):(0,a.setStyle)(r,e,t)}update(){const{$subtitle:e}=this.art.template;e.innerHTML="",this.activeCue&&(this.art.option.subtitle.escape?e.innerHTML=this.activeCue.text.split(/\r?\n/).map((e=>`

${(0,a.escape)(e)}

`)).join(""):e.innerHTML=this.activeCue.text,this.art.emit("subtitleUpdate",this.activeCue.text))}async switch(e,t={}){const{i18n:r,notice:o,option:a}=this.art,n={...a.subtitle,...t,url:e},i=await this.init(n);return t.name&&(o.show=`${r.get("Switch Subtitle")}: ${t.name}`),i}createTrack(e,t){const{template:r,proxy:o}=this.art,{$video:n,$track:i}=r,s=(0,a.createElement)("track");s.default=!0,s.kind=e,s.src=t,s.track.mode="hidden",this.eventDestroy(),(0,a.remove)(i),(0,a.append)(n,s),r.$track=s,this.eventDestroy=o(this.textTrack,"cuechange",(()=>this.update()))}async init(e){const{notice:t,template:{$subtitle:r}}=this.art;if((0,l.default)(e,u.default.subtitle),e.url)return this.style(e.style),fetch(e.url).then((e=>e.arrayBuffer())).then((t=>{const r=new TextDecoder(e.encoding).decode(t);switch(this.art.emit("subtitleLoad",e.url),e.type||(0,a.getExt)(e.url)){case"srt":{const t=(0,a.srtToVtt)(r),o=e.onVttLoad(t);return(0,a.vttToBlob)(o)}case"ass":{const t=(0,a.assToVtt)(r),o=e.onVttLoad(t);return(0,a.vttToBlob)(o)}case"vtt":{const t=e.onVttLoad(r);return(0,a.vttToBlob)(t)}default:return e.url}})).then((e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e),this.art.emit("subtitleSwitch",e)),e))).catch((e=>{throw t.show=e,e}))}constructor(e){super(e),this.name="subtitle",this.eventDestroy=()=>null,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",(()=>{if(!this.url)return;const e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))}))}}},{"./utils":"7drL4","./utils/component":"gEwXu","option-validator":"e1J0t","./scheme":"1s2bZ","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],aoN05:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>b));var a=e("../utils/error"),n=e("./clickInit"),i=o.interopDefault(n),s=e("./hoverInit"),l=o.interopDefault(s),c=e("./moveInit"),u=o.interopDefault(c),d=e("./resizeInit"),p=o.interopDefault(d),f=e("./gestureInit"),h=o.interopDefault(f),m=e("./viewInit"),g=o.interopDefault(m),v=e("./documentInit"),y=o.interopDefault(v);class b{proxy(e,t,r,o={}){if(Array.isArray(t))return t.map((t=>this.proxy(e,t,r,o)));e.addEventListener(t,r,o);const a=()=>e.removeEventListener(t,r,o);return this.destroyEvents.push(a),a}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}loadImg(e){return new Promise(((t,r)=>{let o;if(e instanceof HTMLImageElement)o=e;else{if("string"!=typeof e)return r(new(0,a.ArtPlayerError)("Unable to get Image"));o=new Image,o.src=e}if(o.complete)return t(o);this.proxy(o,"load",(()=>t(o))),this.proxy(o,"error",(()=>r(new(0,a.ArtPlayerError)(`Failed to load Image: ${o.src}`))))}))}remove(e){const t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;e{(0,o.includeFromEvent)(t,a)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))}));let i=0;t.proxy(n,"click",(t=>{const a=Date.now(),{MOBILE_CLICK_PLAY:n,DBCLICK_TIME:s,MOBILE_DBCLICK_PLAY:l,DBCLICK_FULLSCREEN:c}=r;a-i<=s?(e.emit("dblclick",t),o.isMobile?!e.isLock&&l&&e.toggle():c&&(e.fullscreen=!e.fullscreen)):(e.emit("click",t),o.isMobile?!e.isLock&&n&&e.toggle():e.toggle()),i=a}))}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kRkOi:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e,t){const{$player:r}=e.template;t.hover(r,(t=>{(0,o.addClass)(r,"art-hover"),e.emit("hover",!0,t)}),(t=>{(0,o.removeClass)(r,"art-hover"),e.emit("hover",!1,t)}))}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"6MhWq":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e,t){const{$player:r}=e.template;t.proxy(r,"mousemove",(t=>{e.emit("mousemove",t)}))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fcoK8:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e,t){const{option:r}=e,a=(0,o.throttle)((()=>{"standard"===e.state&&(e.autoSize=r.autoSize),e.aspectRatioReset(),e.notice.show="",e.emit("resize")}),e.constructor.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],(()=>a())),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",(()=>a()))}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jgnYa:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils"),a=e("../control/progress");function n(e,t,r,o){var a=t-o,n=r-e,i=0;if(Math.abs(n)<2&&Math.abs(a)<2)return i;var s=function(e,t){return 180*Math.atan2(t,e)/Math.PI}(n,a);return s>=-45&&s<45?i=4:s>=45&&s<135?i=1:s>=-135&&s<-45?i=2:(s>=135&&s<=180||s>=-180&&s<-135)&&(i=3),i}r.default=function(e,t){if(o.isMobile&&!e.option.isLive){const{$video:r,$progress:i}=e.template;let s=null,l=!1,c=0,u=0,d=0;const p=t=>{if(1===t.touches.length&&!e.isLock){s===i&&(0,a.setCurrentTime)(e,t),l=!0;const{pageX:r,pageY:o}=t.touches[0];c=r,u=o,d=e.currentTime}},f=t=>{if(1===t.touches.length&&l&&e.duration){const{pageX:a,pageY:i}=t.touches[0],l=n(c,u,a,i),p=[3,4].includes(l),f=[1,2].includes(l);if(p&&!e.isRotate||f&&e.isRotate){const t=(0,o.clamp)((a-c)/e.width,-1,1),n=(0,o.clamp)((i-u)/e.height,-1,1),l=e.isRotate?n:t,p=s===r?e.constructor.TOUCH_MOVE_RATIO:1,f=(0,o.clamp)(d+e.duration*l*p,0,e.duration);e.seek=f,e.emit("setBar","played",(0,o.clamp)(f/e.duration,0,1)),e.notice.show=`${(0,o.secondToTime)(f)} / ${(0,o.secondToTime)(e.duration)}`}}},h=()=>{l&&(c=0,u=0,d=0,l=!1,s=null)};t.proxy(i,"touchstart",(e=>{s=i,p(e)})),t.proxy(r,"touchstart",(e=>{s=r,p(e)})),t.proxy(r,"touchmove",f),t.proxy(i,"touchmove",f),t.proxy(document,"touchend",h)}}},{"../utils":"7drL4","../control/progress":"3g6RZ","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],k09YH:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e,t){const{option:r,constructor:a,template:{$container:n}}=e,i=(0,o.throttle)((()=>{e.emit("view",(0,o.isInViewport)(n,a.SCROLL_GAP))}),a.SCROLL_TIME);t.proxy(window,"scroll",(()=>i())),e.on("view",(t=>{r.autoMini&&(e.mini=!t)}))}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kBb9s:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e,t){t.proxy(document,"mousemove",(t=>{e.emit("document:mousemove",t)})),t.proxy(document,"mouseup",(t=>{e.emit("document:mouseup",t)}))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],ba6C3:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>n));var a=e("./utils");class n{init(){const{proxy:e,constructor:t}=this.art;this.add(27,(()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)})),this.add(32,(()=>{this.art.toggle()})),this.add(37,(()=>{this.art.backward=t.SEEK_STEP})),this.add(38,(()=>{this.art.volume+=t.VOLUME_STEP})),this.add(39,(()=>{this.art.forward=t.SEEK_STEP})),this.add(40,(()=>{this.art.volume-=t.VOLUME_STEP})),e(window,"keydown",(e=>{if(this.art.isFocus){const t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r){const t=this.keys[e.keyCode];if(t){e.preventDefault();for(let r=0;ri));var a=e("./utils/component"),n=o.interopDefault(a);class i extends n.default{constructor(e){super(e);const{option:t,template:{$layer:r}}=e;this.name="layer",this.$parent=r;for(let e=0;es));var a=e("./utils"),n=e("./utils/component"),i=o.interopDefault(n);class s extends i.default{constructor(e){super(e),this.name="loading",(0,a.append)(e.template.$loading,e.icons.loading)}}},{"./utils":"7drL4","./utils/component":"gEwXu","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],e1V9b:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>n));var a=e("./utils");class n{set show(e){const{constructor:t,template:{$player:r,$noticeInner:o}}=this.art;e?(o.innerText=e instanceof Error?e.message.trim():e,(0,a.addClass)(r,"art-notice-show"),clearTimeout(this.timer),this.timer=setTimeout((()=>{o.innerText="",(0,a.removeClass)(r,"art-notice-show")}),t.NOTICE_TIME)):(0,a.removeClass)(r,"art-notice-show")}constructor(e){this.art=e,this.timer=null}}},{"./utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"7Eyvg":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>s));var a=e("./utils"),n=e("./utils/component"),i=o.interopDefault(n);class s extends i.default{constructor(e){super(e),this.name="mask";const{template:t,icons:r,events:o}=e,n=(0,a.append)(t.$state,r.state),i=(0,a.append)(t.$state,r.error);(0,a.setStyle)(i,"display","none"),e.on("destroy",(()=>{(0,a.setStyle)(n,"display","none"),(0,a.setStyle)(i,"display",null)})),o.proxy(t.$state,"click",(()=>e.play()))}}},{"./utils":"7drL4","./utils/component":"gEwXu","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jccXh:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>ne));var a=e("../utils"),n=e("bundle-text:./loading.svg"),i=o.interopDefault(n),s=e("bundle-text:./state.svg"),l=o.interopDefault(s),c=e("bundle-text:./check.svg"),u=o.interopDefault(c),d=e("bundle-text:./play.svg"),p=o.interopDefault(d),f=e("bundle-text:./pause.svg"),h=o.interopDefault(f),m=e("bundle-text:./volume.svg"),g=o.interopDefault(m),v=e("bundle-text:./volume-close.svg"),y=o.interopDefault(v),b=e("bundle-text:./screenshot.svg"),x=o.interopDefault(b),w=e("bundle-text:./setting.svg"),j=o.interopDefault(w),k=e("bundle-text:./arrow-left.svg"),P=o.interopDefault(k),S=e("bundle-text:./arrow-right.svg"),T=o.interopDefault(S),I=e("bundle-text:./playback-rate.svg"),$=o.interopDefault(I),M=e("bundle-text:./aspect-ratio.svg"),L=o.interopDefault(M),E=e("bundle-text:./config.svg"),F=o.interopDefault(E),V=e("bundle-text:./pip.svg"),C=o.interopDefault(V),z=e("bundle-text:./lock.svg"),A=o.interopDefault(z),D=e("bundle-text:./unlock.svg"),R=o.interopDefault(D),O=e("bundle-text:./fullscreen-off.svg"),N=o.interopDefault(O),H=e("bundle-text:./fullscreen-on.svg"),W=o.interopDefault(H),_=e("bundle-text:./fullscreen-web-off.svg"),q=o.interopDefault(_),B=e("bundle-text:./fullscreen-web-on.svg"),Y=o.interopDefault(B),U=e("bundle-text:./switch-on.svg"),K=o.interopDefault(U),G=e("bundle-text:./switch-off.svg"),J=o.interopDefault(G),X=e("bundle-text:./flip.svg"),Z=o.interopDefault(X),Q=e("bundle-text:./error.svg"),ee=o.interopDefault(Q),te=e("bundle-text:./close.svg"),re=o.interopDefault(te),oe=e("bundle-text:./airplay.svg"),ae=o.interopDefault(oe);class ne{constructor(e){const t={loading:i.default,state:l.default,play:p.default,pause:h.default,check:u.default,volume:g.default,volumeClose:y.default,screenshot:x.default,setting:j.default,pip:C.default,arrowLeft:P.default,arrowRight:T.default,playbackRate:$.default,aspectRatio:L.default,config:F.default,lock:A.default,flip:Z.default,unlock:R.default,fullscreenOff:N.default,fullscreenOn:W.default,fullscreenWebOff:q.default,fullscreenWebOn:Y.default,switchOn:K.default,switchOff:J.default,error:ee.default,close:re.default,airplay:ae.default,...e.option.icons};for(const e in t)(0,a.def)(this,e,{get:()=>(0,a.getIcon)(e,t[e])})}}},{"../utils":"7drL4","bundle-text:./loading.svg":"cI8s8","bundle-text:./state.svg":"hAK1t","bundle-text:./check.svg":"kQjLS","bundle-text:./play.svg":"4LhQx","bundle-text:./pause.svg":"iyFjq","bundle-text:./volume.svg":"lVGXj","bundle-text:./volume-close.svg":"5FfiQ","bundle-text:./screenshot.svg":"acOxs","bundle-text:./setting.svg":"7n7eT","bundle-text:./arrow-left.svg":"4KKm3","bundle-text:./arrow-right.svg":"12rWG","bundle-text:./playback-rate.svg":"crwm6","bundle-text:./aspect-ratio.svg":"aEBuh","bundle-text:./config.svg":"8LTtW","bundle-text:./pip.svg":"irWdG","bundle-text:./lock.svg":"26moK","bundle-text:./unlock.svg":"b6ygV","bundle-text:./fullscreen-off.svg":"105zd","bundle-text:./fullscreen-on.svg":"fSuWv","bundle-text:./fullscreen-web-off.svg":"jfsCv","bundle-text:./fullscreen-web-on.svg":"3P2GA","bundle-text:./switch-on.svg":"gyApI","bundle-text:./switch-off.svg":"7ccNg","bundle-text:./flip.svg":"fALt8","bundle-text:./error.svg":"dBF3H","bundle-text:./close.svg":"v2ERQ","bundle-text:./airplay.svg":"eClOS","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],cI8s8:[function(e,t,r){t.exports=''},{}],hAK1t:[function(e,t,r){t.exports=''},{}],kQjLS:[function(e,t,r){t.exports=''},{}],"4LhQx":[function(e,t,r){t.exports=''},{}],iyFjq:[function(e,t,r){t.exports=''},{}],lVGXj:[function(e,t,r){t.exports=''},{}],"5FfiQ":[function(e,t,r){t.exports=''},{}],acOxs:[function(e,t,r){t.exports=''},{}],"7n7eT":[function(e,t,r){t.exports=''},{}],"4KKm3":[function(e,t,r){t.exports=''},{}],"12rWG":[function(e,t,r){t.exports=''},{}],crwm6:[function(e,t,r){t.exports=''},{}],aEBuh:[function(e,t,r){t.exports=''},{}],"8LTtW":[function(e,t,r){t.exports=''},{}],irWdG:[function(e,t,r){t.exports=''},{}],"26moK":[function(e,t,r){t.exports=''},{}],b6ygV:[function(e,t,r){t.exports=''},{}],"105zd":[function(e,t,r){t.exports=''},{}],fSuWv:[function(e,t,r){t.exports=''},{}],jfsCv:[function(e,t,r){t.exports=''},{}],"3P2GA":[function(e,t,r){t.exports=''},{}],gyApI:[function(e,t,r){t.exports=''},{}],"7ccNg":[function(e,t,r){t.exports=''},{}],fALt8:[function(e,t,r){t.exports=''},{}],dBF3H:[function(e,t,r){t.exports=''},{}],v2ERQ:[function(e,t,r){t.exports=''},{}],eClOS:[function(e,t,r){t.exports=''},{}],gBKqL:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>g));var a=e("./flip"),n=o.interopDefault(a),i=e("./aspectRatio"),s=o.interopDefault(i),l=e("./playbackRate"),c=o.interopDefault(l),u=e("./subtitleOffset"),d=o.interopDefault(u),p=e("../utils/component"),f=o.interopDefault(p),h=e("../utils/error"),m=e("../utils");class g extends f.default{static makeRecursion(e,t,r){for(let o=0;o'),n=(0,m.createElement)("div");(0,m.addClass)(n,"art-setting-item-left-icon"),(0,m.append)(n,t.arrowLeft),(0,m.append)(a,n),(0,m.append)(a,e.$parentItem.html);const i=r(o,"click",(()=>this.render(e.$parentList)));return this.events.push(i),o}creatItem(e,t){const{icons:r,proxy:o}=this.art,a=(0,m.createElement)("div");(0,m.addClass)(a,"art-setting-item"),(0,m.isStringOrNumber)(t.name)&&(a.dataset.name=t.name),(0,m.isStringOrNumber)(t.value)&&(a.dataset.value=t.value);const n=(0,m.append)(a,'
'),i=(0,m.append)(a,'
'),s=(0,m.createElement)("div");switch((0,m.addClass)(s,"art-setting-item-left-icon"),e){case"switch":case"range":(0,m.append)(s,(0,m.isStringOrNumber)(t.icon)||t.icon instanceof Element?t.icon:r.config);break;case"selector":t.selector&&t.selector.length?(0,m.append)(s,(0,m.isStringOrNumber)(t.icon)||t.icon instanceof Element?t.icon:r.config):(0,m.append)(s,r.check)}(0,m.append)(n,s),t.$icon=s,(0,m.def)(t,"icon",{configurable:!0,get:()=>s.innerHTML,set(e){(0,m.isStringOrNumber)(e)&&(s.innerHTML=e)}});const l=(0,m.createElement)("div");(0,m.addClass)(l,"art-setting-item-left-text"),(0,m.append)(l,t.html||""),(0,m.append)(n,l),t.$html=l,(0,m.def)(t,"html",{configurable:!0,get:()=>l.innerHTML,set(e){(0,m.isStringOrNumber)(e)&&(l.innerHTML=e)}});const c=(0,m.createElement)("div");switch((0,m.addClass)(c,"art-setting-item-right-tooltip"),(0,m.append)(c,t.tooltip||""),(0,m.append)(i,c),t.$tooltip=c,(0,m.def)(t,"tooltip",{configurable:!0,get:()=>c.innerHTML,set(e){(0,m.isStringOrNumber)(e)&&(c.innerHTML=e)}}),e){case"switch":{const e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon");const o=(0,m.append)(e,r.switchOn),a=(0,m.append)(e,r.switchOff);(0,m.setStyle)(t.switch?a:o,"display","none"),(0,m.append)(i,e),t.$switch=t.switch,(0,m.def)(t,"switch",{configurable:!0,get:()=>t.$switch,set(e){t.$switch=e,e?((0,m.setStyle)(a,"display","none"),(0,m.setStyle)(o,"display",null)):((0,m.setStyle)(a,"display",null),(0,m.setStyle)(o,"display","none"))}});break}case"range":{const e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon");const r=(0,m.append)(e,'');r.value=t.range[0]||0,r.min=t.range[1]||0,r.max=t.range[2]||10,r.step=t.range[3]||1,(0,m.addClass)(r,"art-setting-range"),(0,m.append)(i,e),t.$range=r,(0,m.def)(t,"range",{configurable:!0,get:()=>r.valueAsNumber,set(e){r.value=Number(e)}})}break;case"selector":if(t.selector&&t.selector.length){const e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon"),(0,m.append)(e,r.arrowRight),(0,m.append)(i,e)}}switch(e){case"switch":if(t.onSwitch){const e=o(a,"click",(async e=>{t.switch=await t.onSwitch.call(this.art,t,a,e)}));this.events.push(e)}break;case"range":if(t.$range){if(t.onRange){const e=o(t.$range,"change",(async e=>{t.tooltip=await t.onRange.call(this.art,t,a,e)}));this.events.push(e)}if(t.onChange){const e=o(t.$range,"input",(async e=>{t.tooltip=await t.onChange.call(this.art,t,a,e)}));this.events.push(e)}}break;case"selector":{const e=o(a,"click",(async e=>{if(t.selector&&t.selector.length)this.render(t.selector,t.width);else{(0,m.inverseClass)(a,"art-current");for(let e=0;ec?((0,m.setStyle)(a,"left",null),(0,m.setStyle)(a,"right",null)):((0,m.setStyle)(a,"left",`${u}px`),(0,m.setStyle)(a,"right","auto"))}}render(e,t){const{constructor:r}=this.art;if(this.cache.has(e)){const t=this.cache.get(e);(0,m.inverseClass)(t,"art-current"),(0,m.setStyle)(this.$parent,"width",`${t.dataset.width}px`),(0,m.setStyle)(this.$parent,"height",`${t.dataset.height}px`),this.updateStyle(Number(t.dataset.width))}else{const o=(0,m.createElement)("div");(0,m.addClass)(o,"art-setting-panel"),o.dataset.width=t||r.SETTING_WIDTH,o.dataset.height=e.length*r.SETTING_ITEM_HEIGHT,e[0]&&e[0].$parentItem&&((0,m.append)(o,this.creatHeader(e[0])),o.dataset.height=Number(o.dataset.height)+r.SETTING_ITEM_HEIGHT);for(let t=0;t{this.show&&(this.show=!1,this.render(this.option))})),e.on("focus",(e=>{const t=(0,m.includeFromEvent)(e,r.setting),o=(0,m.includeFromEvent)(e,this.$parent);!this.show||t||o||(this.show=!1,this.render(this.option))})))}}},{"./flip":"jJJjW","./aspectRatio":"46lOt","./playbackRate":"kHkmx","./subtitleOffset":"1GQ3B","../utils/component":"gEwXu","../utils/error":"aPfiL","../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],jJJjW:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,FLIP:n}}=e;function i(e,r,a){r&&(r.innerText=t.get((0,o.capitalize)(a)));const n=(0,o.queryAll)(".art-setting-item",e).find((e=>e.dataset.value===a));n&&(0,o.inverseClass)(n,"art-current")}return{width:a,name:"flip",html:t.get("Video Flip"),tooltip:t.get((0,o.capitalize)(e.flip)),icon:r.flip,selector:n.map((r=>({value:r,name:`aspect-ratio-${r}`,default:r===e.flip,html:t.get((0,o.capitalize)(r))}))),onSelect:t=>(e.flip=t.value,t.value),mounted:(t,r)=>{i(t,r.$tooltip,e.flip),e.on("flip",(()=>{i(t,r.$tooltip,e.flip)}))}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"46lOt":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,ASPECT_RATIO:n}}=e;function i(e){return"default"===e?t.get("Default"):e}function s(e,t,r){t&&(t.innerText=i(r));const a=(0,o.queryAll)(".art-setting-item",e).find((e=>e.dataset.value===r));a&&(0,o.inverseClass)(a,"art-current")}return{width:a,name:"aspect-ratio",html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:n.map((t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.aspectRatio,html:i(t)}))),onSelect:t=>(e.aspectRatio=t.value,t.value),mounted:(t,r)=>{s(t,r.$tooltip,e.aspectRatio),e.on("aspectRatio",(()=>{s(t,r.$tooltip,e.aspectRatio)}))}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kHkmx:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,PLAYBACK_RATE:n}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function s(e,t,r){t&&(t.innerText=i(r));const a=(0,o.queryAll)(".art-setting-item",e).find((e=>Number(e.dataset.value)===r));a&&(0,o.inverseClass)(a,"art-current")}return{width:a,name:"playback-rate",html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:n.map((t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.playbackRate,html:i(t)}))),onSelect:t=>(e.playbackRate=t.value,t.value),mounted:(t,r)=>{s(t,r.$tooltip,e.playbackRate),e.on("video:ratechange",(()=>{s(t,r.$tooltip,e.playbackRate)}))}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"1GQ3B":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){const{i18n:t,icons:r,constructor:o}=e;return{width:o.SETTING_ITEM_WIDTH,name:"subtitle-offset",html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-5,5,.1],onChange:t=>(e.subtitleOffset=t.range,t.range+"s")}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"71DyG":[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>a));class a{get(e){try{const t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{const r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{const t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}constructor(){this.name="artplayer_settings",this.settings={}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],kWGSQ:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>m));var a=e("../utils"),n=e("./miniProgressBar"),i=o.interopDefault(n),s=e("./autoOrientation"),l=o.interopDefault(s),c=e("./autoPlayback"),u=o.interopDefault(c),d=e("./fastForward"),p=o.interopDefault(d),f=e("./lock"),h=o.interopDefault(f);class m{add(e){this.id+=1;const t=e.call(this.art,this.art),r=t&&t.name||e.name||`plugin${this.id}`;return(0,a.errorHandle)(!(0,a.has)(this,r),`Cannot add a plugin that already has the same name: ${r}`),(0,a.def)(this,r,{value:t}),this}constructor(e){this.art=e,this.id=0;const{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(i.default),t.lock&&a.isMobile&&this.add(h.default),t.autoPlayback&&!t.isLive&&this.add(u.default),t.autoOrientation&&a.isMobile&&this.add(l.default),t.fastForward&&a.isMobile&&!t.isLive&&this.add(p.default);for(let e=0;e{e.layers.add({name:"mini-progress-bar",mounted(t){e.on("destroy",(()=>{t.style.display="none"})),e.on("video:timeupdate",(()=>{t.style.width=100*e.played+"%"})),e.on("setBar",((e,r)=>{"played"===e&&(t.style.width=100*r+"%")}))}})})),{name:"mini-progress-bar"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5Cp1r":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{constructor:t,template:{$player:r,$video:a}}=e;return e.on("fullscreenWeb",(n=>{if(n){const{videoWidth:n,videoHeight:i}=a,{clientWidth:s,clientHeight:l}=document.documentElement;(n>i&&sl)&&setTimeout((()=>{(0,o.setStyle)(r,"width",`${l}px`),(0,o.setStyle)(r,"height",`${s}px`),(0,o.setStyle)(r,"transform-origin","0 0"),(0,o.setStyle)(r,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,o.addClass)(r,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")}),t.MOBILE_AUTO_ORIENTATION_TIME)}else(0,o.hasClass)(r,"art-auto-orientation")&&((0,o.removeClass)(r,"art-auto-orientation"),e.isRotate=!1,e.notice.show="",e.emit("resize"))})),e.on("fullscreen",(async e=>{const t=screen.orientation.type;if(e){const{videoWidth:e,videoHeight:n}=a,{clientWidth:i,clientHeight:s}=document.documentElement;if(e>n&&is){const e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,o.addClass)(r,"art-auto-orientation-fullscreen")}}else(0,o.hasClass)(r,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,o.removeClass)(r,"art-auto-orientation-fullscreen"))})),{name:"autoOrientation",get state(){return(0,o.hasClass)(r,"art-auto-orientation")}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],l9En2:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{i18n:t,icons:r,storage:a,constructor:n,proxy:i,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:'
'}),c=(0,o.query)(".art-auto-playback-last",l),u=(0,o.query)(".art-auto-playback-jump",l),d=(0,o.query)(".art-auto-playback-close",l);return e.on("video:timeupdate",(()=>{if(e.playing){const t=a.get("times")||{},r=Object.keys(t);r.length>n.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,a.set("times",t)}})),e.on("ready",(()=>{const p=(a.get("times")||{})[e.option.id||e.option.url];p&&p>=n.AUTO_PLAYBACK_MIN&&((0,o.append)(d,r.close),(0,o.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,o.secondToTime)(p)}`,u.innerText=t.get("Jump Play"),i(d,"click",(()=>{(0,o.setStyle)(l,"display","none")})),i(u,"click",(()=>{e.seek=p,e.play(),(0,o.setStyle)(s,"display","none"),(0,o.setStyle)(l,"display","none")})),e.once("video:timeupdate",(()=>{setTimeout((()=>{(0,o.setStyle)(l,"display","none")}),n.AUTO_PLAYBACK_TIMEOUT)})))})),{name:"auto-playback",get times(){return a.get("times")||{}},clear:()=>a.del("times"),delete(e){const t=a.get("times")||{};return delete t[e],a.set("times",t),t}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"67viW":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{constructor:t,proxy:r,template:{$player:a,$video:n}}=e;let i=null,s=!1,l=1;const c=()=>{clearTimeout(i),s&&(s=!1,e.playbackRate=l,(0,o.removeClass)(a,"art-fast-forward"))};return r(n,"touchstart",(r=>{1===r.touches.length&&e.playing&&!e.isLock&&(i=setTimeout((()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,o.addClass)(a,"art-fast-forward")}),t.FAST_FORWARD_TIME))})),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,o.hasClass)(a,"art-fast-forward")}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],dJnlB:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../utils");r.default=function(e){const{layers:t,icons:r,template:{$player:a}}=e;return t.add({name:"lock",mounted(t){const a=(0,o.append)(t,r.lock),n=(0,o.append)(t,r.unlock);(0,o.setStyle)(a,"display","none"),e.on("lock",(e=>{e?((0,o.setStyle)(a,"display","inline-flex"),(0,o.setStyle)(n,"display","none")):((0,o.setStyle)(a,"display","none"),(0,o.setStyle)(n,"display","inline-flex"))}))},click(){(0,o.hasClass)(a,"art-lock")?((0,o.removeClass)(a,"art-lock"),this.isLock=!1,e.emit("lock",!1)):((0,o.addClass)(a,"art-lock"),this.isLock=!0,e.emit("lock",!0))}}),{name:"lock",get state(){return(0,o.hasClass)(a,"art-lock")}}}},{"../utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],lFrMF:[function(e,t,r){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",(()=>s));var a=e("./config"),n=o.interopDefault(a),i=e("./utils");class s{constructor(e){const{option:t,proxy:r,template:{$video:o}}=e;for(let t=0;t{e.emit(`video:${t.type}`,t)}));for(const e in t.moreVideoAttr)o[e]=t.moreVideoAttr[e];o.controls=!0,t.muted&&(o.muted=t.muted),t.volume&&(o.volume=(0,i.clamp)(t.volume,0,1)),t.poster&&(o.poster=t.poster),t.autoplay&&(o.autoplay=t.autoplay),t.playsInline&&(o.playsInline=!0,o["webkit-playsinline"]=!0);const a=t.type||(0,i.getExt)(t.url),s=t.customType[a];a&&s?s(o,t.url,e):o.src=t.url}}},{"./config":"1shlC","./utils":"7drL4","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}]},["4GL94"],"4GL94","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/document/404.html b/docs/document/404.html index a2a7f20f3..81230a7ed 100644 --- a/docs/document/404.html +++ b/docs/document/404.html @@ -6,7 +6,7 @@ 404 | Artplayer.js - + @@ -14,9 +14,9 @@ -
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
+ \ No newline at end of file diff --git a/docs/document/advanced/built-in.html b/docs/document/advanced/built-in.html index 609ab1f77..a2b74384a 100644 --- a/docs/document/advanced/built-in.html +++ b/docs/document/advanced/built-in.html @@ -6,18 +6,18 @@ 高级属性 | Artplayer.js - + - - + + -
Skip to content
On this page

高级属性 ​

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option ​

播放器的选项

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

高级属性 ​

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option ​

播放器的选项

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -104,7 +104,7 @@
 	setTimeout(() => {
 		art.layers.show = false;
 	}, 1000);
-});

组件配置 请参考以下地址:

/start/component.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
▶ Run Code
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/layers.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -118,7 +118,7 @@
 	setTimeout(() => {
 		art.controls.show = false;
 	}, 1000);
-});

组件配置 请参考以下地址:

/start/component.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
▶ Run Code
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/controls.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -132,7 +132,7 @@
 	setTimeout(() => {
 		art.contextmenu.show = false;
 	}, 1000);
-});

组件配置 请参考以下地址:

/start/component.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
▶ Run Code
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/contextmenu.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -191,7 +191,7 @@
 	setTimeout(() => {
 		art.setting.show = false;
 	}, 1000);
-});

设置面板 请参考以下地址

/start/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

▶ Run Code
js
var art = new Artplayer({
+});

设置面板 请参考以下地址

/component/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -210,8 +210,8 @@
 art.on('ready', () => {
     art.plugins.add(myPlugin);
 });
- + \ No newline at end of file diff --git a/docs/document/advanced/class.html b/docs/document/advanced/class.html index ea5432740..38a92317f 100644 --- a/docs/document/advanced/class.html +++ b/docs/document/advanced/class.html @@ -6,10 +6,10 @@ 静态属性 | Artplayer.js - + - + @@ -17,7 +17,7 @@ -
Skip to content
On this page

静态属性 ​

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances ​

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

▶ Run Code
js
console.info([...Artplayer.instances]);
+    
Skip to content
On this page

静态属性 ​

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances ​

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

▶ Run Code
js
console.info([...Artplayer.instances]);
 
 var art = new Artplayer({
     container: '.artplayer-app',
@@ -25,8 +25,8 @@
 });
 
 console.info([...Artplayer.instances]);

version ​

返回播放器的版本信息

▶ Run Code
js
console.info(Artplayer.version);

env ​

返回播放器的环境变量

▶ Run Code
js
console.info(Artplayer.env);

build ​

返回播放器的打包时间

▶ Run Code
js
console.info(Artplayer.build);

config ​

返回视频的默认配置

▶ Run Code
js
console.info(Artplayer.config);

utils ​

返回播放器的工具函数集合

▶ Run Code
js
console.info(Artplayer.utils);

全部工具函数请参考以下地址:

artplayer/types/utils.d.ts

scheme ​

返回播放器选项的校验方案

▶ Run Code
js
console.info(Artplayer.scheme);

Emitter ​

返回事件分发器的构造函数

▶ Run Code
js
console.info(Artplayer.Emitter);

validator ​

返回选项的校验函数

▶ Run Code
js
console.info(Artplayer.validator);

kindOf ​

返回类型检测的函数工具

▶ Run Code
js
console.info(Artplayer.kindOf);

html ​

返回播放器所需的 html 字符串

▶ Run Code
js
console.info(Artplayer.html);

option ​

返回播放器的默认选项

▶ Run Code
js
console.info(Artplayer.option);

DEBUG ​

CONTEXTMENU ​

NOTICE_TIME ​

SETTING_WIDTH ​

SETTING_ITEM_WIDTH ​

SETTING_ITEM_HEIGHT ​

INDICATOR_SIZE ​

INDICATOR_SIZE_ICON ​

INDICATOR_SIZE_MOBILE ​

INDICATOR_SIZE_MOBILE_ICON ​

VOLUME_PANEL_WIDTH ​

VOLUME_HANDLE_WIDTH ​

RESIZE_TIME ​

SCROLL_TIME ​

SCROLL_GAP ​

AUTO_PLAYBACK_MAX ​

AUTO_PLAYBACK_MIN ​

AUTO_PLAYBACK_TIMEOUT ​

RECONNECT_TIME_MAX ​

RECONNECT_SLEEP_TIME ​

CONTROL_HIDE_TIME ​

DB_CLICE_TIME ​

MOBILE_AUTO_PLAYBACKRATE ​

MOBILE_AUTO_PLAYBACKRATE_TIME ​

MOBILE_AUTO_ORIENTATION_TIME ​

INFO_LOOP_TIME ​

FAST_FORWARD_VALUE ​

FAST_FORWARD_TIME ​

TOUCH_MOVE_RATIO ​

VOLUME_STEP ​

SEEK_STEP ​

PROGRESS_HEIGHT ​

PLAYBACK_RATE ​

ASPECT_RATIO ​

FLIP ​

FULLSCREEN_WEB_IN_BODY ​

- + \ No newline at end of file diff --git a/docs/document/advanced/event.html b/docs/document/advanced/event.html index 8f5646515..961200eff 100644 --- a/docs/document/advanced/event.html +++ b/docs/document/advanced/event.html @@ -6,10 +6,10 @@ 实例事件 | Artplayer.js - + - + @@ -17,7 +17,7 @@ -
Skip to content
On this page

实例事件 ​

播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件

监听事件:

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

实例事件 ​

播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件

监听事件:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -361,8 +361,8 @@
 art.on('setting', (state) => {
     console.log(state);
 });

video:canplay ​

浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容

video:canplaythrough ​

浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束

video:complete ​

OfflineAudioContext 渲染完成

video:durationchange ​

duration 属性的值改变时触发

video:emptied ​

媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载它

video:ended ​

视频停止播放,因为 media 已经到达结束点

video:error ​

获取媒体数据时出错,或者资源类型不是受支持的媒体格式

video:loadeddata ​

media 中的首帧已经完成加载

video:loadedmetadata ​

已加载元数据

video:pause ​

播放已暂停

video:play ​

播放已开始

video:playing ​

由于缺乏数据而暂停或延迟后,播放准备开始

video:progress ​

在浏览器加载资源时周期性触发

video:ratechange ​

播放速率发生变化

video:seeked ​

跳帧(seek)操作完成

video:seeking ​

跳帧(seek)操作开始

video:stalled ​

用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现

video:suspend ​

媒体数据加载已暂停

video:timeupdate ​

currentTime 属性指定的时间发生变化

video:volumechange ​

音量发生变化

video:waiting ​

由于暂时缺少数据,播放已停止

- + \ No newline at end of file diff --git a/docs/document/advanced/plugin.html b/docs/document/advanced/plugin.html index d1478be4b..ae9df3cdb 100644 --- a/docs/document/advanced/plugin.html +++ b/docs/document/advanced/plugin.html @@ -6,10 +6,10 @@ 编写插件 | Artplayer.js - + - + @@ -17,7 +17,7 @@ -
Skip to content
On this page

编写插件 ​

但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事

可以在实例化的时候加载插件的函数

▶ Run Code
js
function myPlugin(art) {
+    
Skip to content
On this page

编写插件 ​

但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事

可以在实例化的时候加载插件的函数

▶ Run Code
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -116,8 +116,8 @@
         })
     ],
 });
- + \ No newline at end of file diff --git a/docs/document/advanced/property.html b/docs/document/advanced/property.html index c435f0669..2cdf0cc9b 100644 --- a/docs/document/advanced/property.html +++ b/docs/document/advanced/property.html @@ -6,10 +6,10 @@ 实例属性 | Artplayer.js - + - + @@ -17,7 +17,7 @@ -
Skip to content
On this page

实例属性 ​

这里的 实例属性 是指挂载在 实例 的 一级属性,比较常用

play ​

  • Type: Function

播放视频

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

实例属性 ​

这里的 实例属性 是指挂载在 实例 的 一级属性,比较常用

play ​

  • Type: Function

播放视频

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -370,9 +370,9 @@
 	url: '/assets/sample/video.mp4',
 });
 
-console.info(art.video);
- +console.info(art.video);
+ \ No newline at end of file diff --git a/docs/document/assets/advanced_built-in.md.8bf77420.js b/docs/document/assets/advanced_built-in.md.3965493e.js similarity index 95% rename from docs/document/assets/advanced_built-in.md.8bf77420.js rename to docs/document/assets/advanced_built-in.md.3965493e.js index 43459b71a..0e61577ab 100644 --- a/docs/document/assets/advanced_built-in.md.8bf77420.js +++ b/docs/document/assets/advanced_built-in.md.3965493e.js @@ -85,7 +85,7 @@ import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";c setTimeout(() => { art.layers.show = false; }, 1000); -});

组件配置 请参考以下地址:

/start/component.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
`,5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/layers.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
`,5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -99,7 +99,7 @@ import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";c
 	setTimeout(() => {
 		art.controls.show = false;
 	}, 1000);
-});

组件配置 请参考以下地址:

/start/component.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
`,5),P=n("div",{className:"run-code"},"▶ Run Code",-1),S=s(`
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/controls.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
`,5),P=n("div",{className:"run-code"},"▶ Run Code",-1),S=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -113,7 +113,7 @@ import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";c
 	setTimeout(() => {
 		art.contextmenu.show = false;
 	}, 1000);
-});

组件配置 请参考以下地址:

/start/component.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
`,5),I=n("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/contextmenu.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
`,5),I=n("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -172,7 +172,7 @@ import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";c
 	setTimeout(() => {
 		art.setting.show = false;
 	}, 1000);
-});

设置面板 请参考以下地址

/start/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

`,4),z=n("div",{className:"run-code"},"▶ Run Code",-1),B=s(`
js
var art = new Artplayer({
+});

设置面板 请参考以下地址

/component/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

`,4),z=n("div",{className:"run-code"},"▶ Run Code",-1),B=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
diff --git a/docs/document/assets/advanced_built-in.md.8bf77420.lean.js b/docs/document/assets/advanced_built-in.md.3965493e.lean.js
similarity index 100%
rename from docs/document/assets/advanced_built-in.md.8bf77420.lean.js
rename to docs/document/assets/advanced_built-in.md.3965493e.lean.js
diff --git a/docs/document/assets/app.c76eb87c.js b/docs/document/assets/app.034281f2.js
similarity index 95%
rename from docs/document/assets/app.c76eb87c.js
rename to docs/document/assets/app.034281f2.js
index 86ff0eed8..bb54d471b 100644
--- a/docs/document/assets/app.c76eb87c.js
+++ b/docs/document/assets/app.034281f2.js
@@ -1 +1 @@
-import{d as p,O as s,a5 as i,u,h as c,l,a6 as d,a7 as f,a8 as m,a9 as h,aa as A,ab as g,ac as P,ad as v,ae as y,af as C,ag as w,ah as E,ai as _,E as b}from"./chunks/framework.75837252.js";import{t as R}from"./chunks/theme.6da9df83.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(R),D=p({name:"VitePressApp",setup(){const{site:e}=u();return c(()=>{l(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),d(),f(),m(),n.setup&&n.setup(),()=>h(n.Layout)}});async function O(){const e=T(),a=S();a.provide(A,e);const t=g(e.route);return a.provide(P,t),a.component("Content",v),a.component("ClientOnly",y),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:C}),{app:a,router:e,data:t}}function S(){return w(D)}function T(){let e=s,a;return E(t=>{let o=_(t);return e&&(a=o),(e||a===o)&&(o=o.replace(/\.js$/,".lean.js")),s&&(e=!1),b(()=>import(o),[])},n.NotFound)}s&&O().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{O as createApp};
+import{d as p,O as s,a5 as i,u,h as c,l,a6 as d,a7 as f,a8 as m,a9 as h,aa as A,ab as g,ac as P,ad as v,ae as y,af as C,ag as w,ah as E,ai as _,E as b}from"./chunks/framework.75837252.js";import{t as R}from"./chunks/theme.29dd1380.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(R),D=p({name:"VitePressApp",setup(){const{site:e}=u();return c(()=>{l(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),d(),f(),m(),n.setup&&n.setup(),()=>h(n.Layout)}});async function O(){const e=T(),a=S();a.provide(A,e);const t=g(e.route);return a.provide(P,t),a.component("Content",v),a.component("ClientOnly",y),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:C}),{app:a,router:e,data:t}}function S(){return w(D)}function T(){let e=s,a;return E(t=>{let o=_(t);return e&&(a=o),(e||a===o)&&(o=o.replace(/\.js$/,".lean.js")),s&&(e=!1),b(()=>import(o),[])},n.NotFound)}s&&O().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{O as createApp};
diff --git a/docs/document/assets/chunks/theme.6da9df83.js b/docs/document/assets/chunks/theme.29dd1380.js
similarity index 99%
rename from docs/document/assets/chunks/theme.6da9df83.js
rename to docs/document/assets/chunks/theme.29dd1380.js
index fd95360b8..38fc6a9d1 100644
--- a/docs/document/assets/chunks/theme.6da9df83.js
+++ b/docs/document/assets/chunks/theme.29dd1380.js
@@ -1,4 +1,4 @@
-import{d as $,o as l,c as r,r as h,n as A,a as D,t as L,_ as g,u as ct,b as c,e as V,f as S,g as Vt,h as X,i as rt,j as St,k as Lt,w as ee,l as ae,m as Mt,P as It,p as be,q as te,s as ce,v as Ce,x as u,F as T,y as w,z as v,T as Te,A as k,B as _e,C as p,D as K,E as Ct,G as We,H as Tt,I as ut,J as Nt,K as z,L as At,M as J,N as dt,O as Bt,Q as Ot,R,S as U,U as Et,V as Ke,W as Ne,X as he,Y as Ht,Z as ie,$ as Ae,a0 as zt,a1 as Dt,a2 as Ft,a3 as jt,a4 as Gt}from"./framework.75837252.js";const qt=$({__name:"VPBadge",props:{text:null,type:null},setup(e){return(t,n)=>(l(),r("span",{class:A(["VPBadge",e.type??"tip"])},[h(t.$slots,"default",{},()=>[D(L(e.text),1)],!0)],2))}});const Rt=g(qt,[["__scopeId","data-v-e233384c"]]),M=ct;var Qe;const _t=typeof window<"u",Ut=e=>typeof e=="string",Wt=()=>{};_t&&((Qe=window==null?void 0:window.navigator)!=null&&Qe.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ht(e){return typeof e=="function"?e():c(e)}function Kt(e){return e}function vt(e){return St()?(Lt(e),!0):!1}function Qt(e){return typeof e=="function"?V(e):S(e)}function Yt(e,t=!0){Vt()?X(e):t?e():rt(e)}function Xt(e){var t;const n=ht(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Be=_t?window:void 0;function Jt(...e){let t,n,s,o;if(Ut(e[0])||Array.isArray(e[0])?([n,s,o]=e,t=Be):[t,n,s,o]=e,!t)return Wt;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const a=[],i=()=>{a.forEach(y=>y()),a.length=0},_=(y,b,P,m)=>(y.addEventListener(b,P,m),()=>y.removeEventListener(b,P,m)),d=ee(()=>[Xt(t),ht(o)],([y,b])=>{i(),y&&a.push(...n.flatMap(P=>s.map(m=>_(y,P,m,b))))},{immediate:!0,flush:"post"}),f=()=>{d(),i()};return vt(f),f}function Zt(e,t=!1){const n=S(),s=()=>n.value=!!e();return s(),Yt(s,t),n}function Se(e,t={}){const{window:n=Be}=t,s=Zt(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const a=S(!1),i=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",_):o.removeListener(_))},_=()=>{s.value&&(i(),o=n.matchMedia(Qt(e).value),a.value=o.matches,"addEventListener"in o?o.addEventListener("change",_):o.addListener(_))};return ae(_),vt(()=>i()),a}const Ye=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Xe="__vueuse_ssr_handlers__";Ye[Xe]=Ye[Xe]||{};var Je;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(Je||(Je={}));var en=Object.defineProperty,Ze=Object.getOwnPropertySymbols,tn=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?en(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sn=(e,t)=>{for(var n in t||(t={}))tn.call(t,n)&&et(e,n,t[n]);if(Ze)for(var n of Ze(t))nn.call(t,n)&&et(e,n,t[n]);return e};const on={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};sn({linear:Kt},on);function an({window:e=Be}={}){if(!e)return{x:S(0),y:S(0)};const t=S(e.scrollX),n=S(e.scrollY);return Jt(e,"scroll",()=>{t.value=e.scrollX,n.value=e.scrollY},{capture:!1,passive:!0}),{x:t,y:n}}function ln(e,t){let n,s=!1;return()=>{n&&clearTimeout(n),s?n=setTimeout(e,t):(e(),s=!0,setTimeout(()=>{s=!1},t))}}function Le(e){return/^\//.test(e)?e:`/${e}`}function le(e){if(Mt(e))return e.replace(It,"");const{site:t}=M(),{pathname:n,search:s,hash:o}=new URL(e,"http://example.com"),a=n.endsWith("/")||n.endsWith(".html")?e:e.replace(/(?:(^\.+)\/)?.*$/,`$1${n.replace(/(\.md)?$/,t.value.cleanUrls?"":".html")}${s}${o}`);return be(a)}function ft(e,t){if(Array.isArray(e))return e;if(e==null)return[];t=Le(t);const n=Object.keys(e).sort((s,o)=>o.split("/").length-s.split("/").length).find(s=>t.startsWith(Le(s)));return n?e[n]:[]}function cn(e){const t=[];let n=0;for(const s in e){const o=e[s];if(o.items){n=t.push(o);continue}t[n]||t.push({items:[]}),t[n].items.push(o)}return t}function rn(e){const t=[];function n(s){for(const o of s)o.text&&o.link&&t.push({text:o.text,link:o.link}),o.items&&n(o.items)}return n(e),t}function Me(e,t){return Array.isArray(t)?t.some(n=>Me(e,n)):te(e,t.link)?!0:t.items?Me(e,t.items):!1}function W(){const e=ce(),{theme:t,frontmatter:n}=M(),s=Se("(min-width: 960px)"),o=S(!1),a=V(()=>{const x=t.value.sidebar,N=e.data.relativePath;return x?ft(x,N):[]}),i=V(()=>n.value.sidebar!==!1&&a.value.length>0&&n.value.layout!=="home"),_=V(()=>d?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),d=V(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),f=V(()=>i.value&&s.value),y=V(()=>i.value?cn(a.value):[]);function b(){o.value=!0}function P(){o.value=!1}function m(){o.value?P():b()}return{isOpen:o,sidebar:a,sidebarGroups:y,hasSidebar:i,hasAside:d,leftAside:_,isSidebarEnabled:f,open:b,close:P,toggle:m}}function un(e,t){let n;ae(()=>{n=e.value?document.activeElement:void 0}),X(()=>{window.addEventListener("keyup",s)}),Ce(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function dn(e){const{page:t}=M(),n=S(!1),s=V(()=>e.value.collapsed!=null),o=V(()=>!!e.value.link),a=V(()=>te(t.value.relativePath,e.value.link)),i=V(()=>a.value?!0:e.value.items?Me(t.value.relativePath,e.value.items):!1),_=V(()=>!!(e.value.items&&e.value.items.length));ae(()=>{n.value=!!(s.value&&e.value.collapsed)}),ae(()=>{(a.value||i.value)&&(n.value=!1)});function d(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:o,isActiveLink:a,hasActiveLink:i,hasChildren:_,toggle:d}}const _n=$({__name:"VPSkipLink",setup(e){const t=ce(),n=S();ee(()=>t.path,()=>n.value.focus());function s({target:o}){const a=document.querySelector(decodeURIComponent(o.hash));if(a){const i=()=>{a.removeAttribute("tabindex"),a.removeEventListener("blur",i)};a.setAttribute("tabindex","-1"),a.addEventListener("blur",i),a.focus(),window.scrollTo(0,0)}}return(o,a)=>(l(),r(T,null,[u("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),u("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}});const hn=g(_n,[["__scopeId","data-v-994b33bc"]]),vn={key:0,class:"VPBackdrop"},fn=$({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(l(),w(Te,{name:"fade"},{default:v(()=>[e.show?(l(),r("div",vn)):k("",!0)]),_:1}))}});const pn=g(fn,[["__scopeId","data-v-b2600058"]]);function mn(){const e=S(!1);function t(){e.value=!0,window.addEventListener("resize",o)}function n(){e.value=!1,window.removeEventListener("resize",o)}function s(){e.value?n():t()}function o(){window.outerWidth>=768&&n()}const a=ce();return ee(()=>a.path,n),{isScreenOpen:e,openScreen:t,closeScreen:n,toggleScreen:s}}function re({removeCurrent:e=!0,correspondingLink:t=!1}={}){const{site:n,localeIndex:s,page:o,theme:a}=M(),i=V(()=>{var d,f;return{label:(d=n.value.locales[s.value])==null?void 0:d.label,link:((f=n.value.locales[s.value])==null?void 0:f.link)||(s.value==="root"?"/":`/${s.value}/`)}});return{localeLinks:V(()=>Object.entries(n.value.locales).flatMap(([d,f])=>e&&i.value.label===f.label?[]:{text:f.label,link:gn(f.link||(d==="root"?"/":`/${d}/`),a.value.i18nRouting!==!1&&t,o.value.relativePath.slice(i.value.link.length-1),!n.value.cleanUrls)})),currentLang:i}}function gn(e,t,n,s){return t?e.replace(/\/$/,"")+Le(n.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,s?".html":"")):e}const yn=["src","alt"],bn={inheritAttrs:!1},kn=$({...bn,__name:"VPImage",props:{image:null,alt:null},setup(e){return(t,n)=>{const s=K("VPImage",!0);return e.image?(l(),r(T,{key:0},[typeof e.image=="string"||"src"in e.image?(l(),r("img",_e({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:c(be)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,yn)):(l(),r(T,{key:1},[p(s,_e({class:"dark",image:e.image.dark,alt:e.image.alt},t.$attrs),null,16,["image","alt"]),p(s,_e({class:"light",image:e.image.light,alt:e.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):k("",!0)}}});const Oe=g(kn,[["__scopeId","data-v-74766fef"]]),$n=["href"],Pn=$({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=M(),{hasSidebar:s}=W(),{currentLang:o}=re();return(a,i)=>(l(),r("div",{class:A(["VPNavBarTitle",{"has-sidebar":c(s)}])},[u("a",{class:"title",href:c(le)(c(o).link)},[h(a.$slots,"nav-bar-title-before",{},void 0,!0),c(n).logo?(l(),w(Oe,{key:0,class:"logo",image:c(n).logo},null,8,["image"])):k("",!0),c(n).siteTitle?(l(),r(T,{key:1},[D(L(c(n).siteTitle),1)],64)):c(n).siteTitle===void 0?(l(),r(T,{key:2},[D(L(c(t).title),1)],64)):k("",!0),h(a.$slots,"nav-bar-title-after",{},void 0,!0)],8,$n)],2))}});const xn=g(Pn,[["__scopeId","data-v-bd15f18e"]]),wn="/document/assets/flex-logo.2489261b.svg";function xe(e,t){return typeof e>"u"?t:e}function tt(e){const t=Array(e);for(let n=0;n=this.minlength&&(_||!i[y])){let P=de(d,o,f),m="";switch(this.tokenize){case"full":if(3x;N--)if(N-x>=this.minlength){const B=de(d,o,f,b,x);m=y.substring(x,N),this.push_index(i,m,B,e,n)}break}case"reverse":if(2=this.minlength){const N=de(d,o,f,b,x);this.push_index(i,m,N,e,n)}m=""}case"forward":if(1=this.minlength&&this.push_index(i,m,P,e,n);break}default:if(this.boost&&(P=Math.min(0|P/this.boost(t,y,f),d-1)),this.push_index(i,y,P,e,n),_&&1=this.minlength&&!x[y]){x[y]=1;const I=de(N+(o/2>N?0:1),o,f,E-1,C-1),O=this.bidirectional&&y>B;this.push_index(a,O?B:y,I,e,n,O?y:B)}}}}}this.fastupdate||(this.register[e]=1)}}return this};function de(e,t,n,s,o){return n&&1=this.minlength&&!b[m]){if(!this.optimize&&!a&&!this.map[m])return i;P[N++]=m,b[m]=1}e=P,s=e.length}if(!s)return i;t||(t=100);let d,f=this.depth&&1=n)))));m++);if(f)return o?ot(_,n,0):void(e[e.length]=_)}return!t&&_};function ot(e,t,n){return e=e.length===1?e[0]:Sn(e),n||e.length>t?e.slice(n,n+t):e}function at(e,t,n,s){if(n){const o=s&&t>n;e=e[o?t:n],e=e&&e[o?n:t]}else e=e[t];return e}F.prototype.contain=function(e){return!!this.register[e]},F.prototype.update=function(e,t){return this.remove(e).add(e,t)},F.prototype.remove=function(e,t){const n=this.register[e];if(n){if(this.fastupdate)for(let s,o=0;o{if(a.value){for(var C=b.value.search(a.value,{enrich:!0}),I=[],O=0;O!C||!C.length?[]:C.reduce((O,H)=>(O[I(H)]||(O[I(H)]=[]),O[I(H)].push(H),O),{}),B=()=>{setTimeout(()=>{_.value&&_.value.focus()},100),E(),o.value=!0};X(async()=>{var H,q;const C=await Ct(()=>import("./virtual_search-data.58a96ecd.js"),[]);d.value=C.default.INDEX_DATA,f.value=C.default.PREVIEW_LOOKUP,y.value=C.default.Options,i.value=window.location.origin+be(n.value==="root"?"/":n.value),P.value=((H=y.value)==null?void 0:H.buttonLabel)||P.value,m.value=((q=y.value)==null?void 0:q.placeholder)||m.value;var I=new F(y.value);I.import("reg",d.value.reg),I.import("cfg",d.value.cfg),I.import("map",d.value.map),I.import("ctx",d.value.ctx),b.value=I,s.value.innerHTML=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"⌘":"Ctrl";const O=G=>{var ue;G.key==="k"&&(G.ctrlKey||G.metaKey)&&(G.preventDefault(),B()),G.key==="Escape"&&((ue=a.value)==null?void 0:ue.length)==0&&o.value&&(o.value=!1)};window.addEventListener("keydown",O)});function E(){o.value=!1,a.value=""}return(C,I)=>{const O=K("ClientOnly");return l(),r("div",Wn,[p(O,null,{default:v(()=>[(l(),w(At,{to:"body"},[We(u("div",{class:"VPPluginSearch-modal-back",onClick:I[2]||(I[2]=H=>o.value=!1)},[u("div",{class:"VPPluginSearch-modal",onClick:I[1]||(I[1]=ut(()=>{},["stop"]))},[u("form",Kn,[Qn,We(u("input",{class:"DocSearch-Input","aria-autocomplete":"both","aria-labelledby":"docsearch-label",id:"docsearch-input",autocomplete:"off",autocorrect:"off",autocapitalize:"off",enterkeyhint:"search",spellcheck:"false",autofocus:"true","onUpdate:modelValue":I[0]||(I[0]=H=>a.value=H),placeholder:m.value,maxlength:"64",type:"search",ref_key:"input",ref:_},null,8,Yn),[[Nt,a.value]])]),u("div",Xn,[(l(!0),r(T,null,z(N(c(x),H=>H.link.split("/").slice(0,-1).join("-")),(H,q)=>(l(),r("div",{key:q},[u("span",Jn,L(q?q.toString()[0].toUpperCase()+q.toString().slice(1):"Home"),1),(l(!0),r(T,null,z(H,G=>(l(),r("a",{href:i.value+G.link,key:G.id,onClick:E},[u("div",es,[u("span",ts,L(G.link.includes("#")?"#":"▤"),1),u("div",ns,[u("h3",null,L(G.title),1),u("p",null,[u("div",{innerHTML:G.preview},null,8,ss)])]),os])],8,Zn))),128))]))),128))]),as])],512),[[Tt,o.value]])]))]),_:1}),u("div",{id:"docsearch",onClick:I[3]||(I[3]=H=>B())},[u("button",is,[u("span",ls,[cs,u("span",rs,L(P.value),1)]),u("span",us,[u("span",{class:"DocSearch-Button-Key",ref_key:"metaKey",ref:s},"Meta",512),ds])])])])}}});const hs={},vs={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},fs=u("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),ps=u("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),ms=[fs,ps];function gs(e,t){return l(),r("svg",vs,ms)}const ys=g(hs,[["render",gs]]),bs=$({__name:"VPLink",props:{tag:null,href:null,noIcon:{type:Boolean},target:null,rel:null},setup(e){const t=e,n=V(()=>t.tag??t.href?"a":"span"),s=V(()=>t.href&&dt.test(t.href));return(o,a)=>(l(),w(J(c(n)),{class:A(["VPLink",{link:e.href}]),href:e.href?c(le)(e.href):void 0,target:e.target||(c(s)?"_blank":void 0),rel:e.rel||(c(s)?"noreferrer":void 0)},{default:v(()=>[h(o.$slots,"default",{},void 0,!0),c(s)&&!e.noIcon?(l(),w(ys,{key:0,class:"icon"})):k("",!0)]),_:3},8,["class","href","target","rel"]))}});const Q=g(bs,[["__scopeId","data-v-87683ad2"]]),ks=$({__name:"VPNavBarMenuLink",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(l(),w(Q,{class:A({VPNavBarMenuLink:!0,active:c(te)(c(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,tabindex:"0"},{default:v(()=>[D(L(e.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const $s=g(ks,[["__scopeId","data-v-6dd6d312"]]),Ee=S();let pt=!1,Ve=0;function Ps(e){const t=S(!1);if(Bt){!pt&&xs(),Ve++;const n=ee(Ee,s=>{var o,a,i;s===e.el.value||(o=e.el.value)!=null&&o.contains(s)?(t.value=!0,(a=e.onFocus)==null||a.call(e)):(t.value=!1,(i=e.onBlur)==null||i.call(e))});Ce(()=>{n(),Ve--,Ve||ws()})}return Ot(t)}function xs(){document.addEventListener("focusin",mt),pt=!0,Ee.value=document.activeElement}function ws(){document.removeEventListener("focusin",mt)}function mt(){Ee.value=document.activeElement}const Vs={},Ss={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ls=u("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Ms=[Ls];function Is(e,t){return l(),r("svg",Ss,Ms)}const gt=g(Vs,[["render",Is]]),Cs={},Ts={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ns=u("circle",{cx:"12",cy:"12",r:"2"},null,-1),As=u("circle",{cx:"19",cy:"12",r:"2"},null,-1),Bs=u("circle",{cx:"5",cy:"12",r:"2"},null,-1),Os=[Ns,As,Bs];function Es(e,t){return l(),r("svg",Ts,Os)}const Hs=g(Cs,[["render",Es]]),zs={class:"VPMenuLink"},Ds=$({__name:"VPMenuLink",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(l(),r("div",zs,[p(Q,{class:A({active:c(te)(c(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel},{default:v(()=>[D(L(e.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const ke=g(Ds,[["__scopeId","data-v-b9520bf2"]]),Fs={class:"VPMenuGroup"},js={key:0,class:"title"},Gs=$({__name:"VPMenuGroup",props:{text:null,items:null},setup(e){return(t,n)=>(l(),r("div",Fs,[e.text?(l(),r("p",js,L(e.text),1)):k("",!0),(l(!0),r(T,null,z(e.items,s=>(l(),r(T,null,["link"in s?(l(),w(ke,{key:0,item:s},null,8,["item"])):k("",!0)],64))),256))]))}});const qs=g(Gs,[["__scopeId","data-v-2bec9359"]]),Rs={class:"VPMenu"},Us={key:0,class:"items"},Ws=$({__name:"VPMenu",props:{items:null},setup(e){return(t,n)=>(l(),r("div",Rs,[e.items?(l(),r("div",Us,[(l(!0),r(T,null,z(e.items,s=>(l(),r(T,{key:s.text},["link"in s?(l(),w(ke,{key:0,item:s},null,8,["item"])):(l(),w(qs,{key:1,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):k("",!0),h(t.$slots,"default",{},void 0,!0)]))}});const Ks=g(Ws,[["__scopeId","data-v-7bffa9cd"]]),Qs=["aria-expanded","aria-label"],Ys={key:0,class:"text"},Xs={class:"menu"},Js=$({__name:"VPFlyout",props:{icon:null,button:null,label:null,items:null},setup(e){const t=S(!1),n=S();Ps({el:n,onBlur:s});function s(){t.value=!1}return(o,a)=>(l(),r("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:a[1]||(a[1]=i=>t.value=!0),onMouseleave:a[2]||(a[2]=i=>t.value=!1)},[u("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:a[0]||(a[0]=i=>t.value=!t.value)},[e.button||e.icon?(l(),r("span",Ys,[e.icon?(l(),w(J(e.icon),{key:0,class:"option-icon"})):k("",!0),D(" "+L(e.button)+" ",1),p(gt,{class:"text-icon"})])):(l(),w(Hs,{key:1,class:"icon"}))],8,Qs),u("div",Xs,[p(Ks,{items:e.items},{default:v(()=>[h(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const He=g(Js,[["__scopeId","data-v-64c29883"]]),Zs=$({__name:"VPNavBarMenuGroup",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(l(),w(He,{class:A({VPNavBarMenuGroup:!0,active:c(te)(c(t).relativePath,e.item.activeMatch,!!e.item.activeMatch)}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),eo=e=>(R("data-v-c6c3e6d4"),e=e(),U(),e),to={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},no=eo(()=>u("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),so=$({__name:"VPNavBarMenu",setup(e){const{theme:t}=M();return(n,s)=>c(t).nav?(l(),r("nav",to,[no,(l(!0),r(T,null,z(c(t).nav,o=>(l(),r(T,{key:o.text},["link"in o?(l(),w($s,{key:0,item:o},null,8,["item"])):(l(),w(Zs,{key:1,item:o},null,8,["item"]))],64))),128))])):k("",!0)}});const oo=g(so,[["__scopeId","data-v-c6c3e6d4"]]),ao={},io={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},lo=u("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),co=u("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),ro=[lo,co];function uo(e,t){return l(),r("svg",io,ro)}const yt=g(ao,[["render",uo]]),_o={class:"items"},ho={class:"title"},vo=$({__name:"VPNavBarTranslations",setup(e){const{theme:t}=M(),{localeLinks:n,currentLang:s}=re({correspondingLink:!0});return(o,a)=>c(n).length&&c(s).label?(l(),w(He,{key:0,class:"VPNavBarTranslations",icon:yt,label:c(t).langMenuLabel||"Change language"},{default:v(()=>[u("div",_o,[u("p",ho,L(c(s).label),1),(l(!0),r(T,null,z(c(n),i=>(l(),w(ke,{key:i.link,item:i},null,8,["item"]))),128))])]),_:1},8,["label"])):k("",!0)}});const fo=g(vo,[["__scopeId","data-v-3bf1c934"]]);const po={},mo={class:"VPSwitch",type:"button",role:"switch"},go={class:"check"},yo={key:0,class:"icon"};function bo(e,t){return l(),r("button",mo,[u("span",go,[e.$slots.default?(l(),r("span",yo,[h(e.$slots,"default",{},void 0,!0)])):k("",!0)])])}const ko=g(po,[["render",bo],["__scopeId","data-v-0a2eba70"]]),$o={},Po={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},xo=Et('',9),wo=[xo];function Vo(e,t){return l(),r("svg",Po,wo)}const So=g($o,[["render",Vo]]),Lo={},Mo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Io=u("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),Co=[Io];function To(e,t){return l(),r("svg",Mo,Co)}const No=g(Lo,[["render",To]]),Ao={title:"toggle dark mode"},Bo=$({__name:"VPSwitchAppearance",setup(e){const{site:t,isDark:n}=M(),s=S(!1),o=typeof localStorage<"u"?a():()=>{};X(()=>{s.value=document.documentElement.classList.contains("dark")});function a(){const i=window.matchMedia("(prefers-color-scheme: dark)"),_=document.documentElement.classList;let d=localStorage.getItem(Ke),f=t.value.appearance==="dark"&&d==null||(d==="auto"||d==null?i.matches:d==="dark");i.onchange=P=>{d==="auto"&&b(f=P.matches)};function y(){b(f=!f),d=f?i.matches?"auto":"dark":i.matches?"light":"auto",localStorage.setItem(Ke,d)}function b(P){const m=document.createElement("style");m.type="text/css",m.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) {
+import{d as $,o as l,c as r,r as h,n as A,a as D,t as L,_ as g,u as ct,b as c,e as V,f as S,g as Vt,h as X,i as rt,j as St,k as Lt,w as ee,l as ae,m as Mt,P as It,p as be,q as te,s as ce,v as Ce,x as u,F as T,y as w,z as v,T as Te,A as k,B as _e,C as p,D as K,E as Ct,G as We,H as Tt,I as ut,J as Nt,K as z,L as At,M as J,N as dt,O as Bt,Q as Ot,R,S as U,U as Et,V as Ke,W as Ne,X as he,Y as Ht,Z as ie,$ as Ae,a0 as zt,a1 as Dt,a2 as Ft,a3 as jt,a4 as Gt}from"./framework.75837252.js";const qt=$({__name:"VPBadge",props:{text:null,type:null},setup(e){return(t,n)=>(l(),r("span",{class:A(["VPBadge",e.type??"tip"])},[h(t.$slots,"default",{},()=>[D(L(e.text),1)],!0)],2))}});const Rt=g(qt,[["__scopeId","data-v-e233384c"]]),M=ct;var Qe;const _t=typeof window<"u",Ut=e=>typeof e=="string",Wt=()=>{};_t&&((Qe=window==null?void 0:window.navigator)!=null&&Qe.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ht(e){return typeof e=="function"?e():c(e)}function Kt(e){return e}function vt(e){return St()?(Lt(e),!0):!1}function Qt(e){return typeof e=="function"?V(e):S(e)}function Yt(e,t=!0){Vt()?X(e):t?e():rt(e)}function Xt(e){var t;const n=ht(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Be=_t?window:void 0;function Jt(...e){let t,n,s,o;if(Ut(e[0])||Array.isArray(e[0])?([n,s,o]=e,t=Be):[t,n,s,o]=e,!t)return Wt;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const a=[],i=()=>{a.forEach(y=>y()),a.length=0},_=(y,b,P,m)=>(y.addEventListener(b,P,m),()=>y.removeEventListener(b,P,m)),d=ee(()=>[Xt(t),ht(o)],([y,b])=>{i(),y&&a.push(...n.flatMap(P=>s.map(m=>_(y,P,m,b))))},{immediate:!0,flush:"post"}),f=()=>{d(),i()};return vt(f),f}function Zt(e,t=!1){const n=S(),s=()=>n.value=!!e();return s(),Yt(s,t),n}function Se(e,t={}){const{window:n=Be}=t,s=Zt(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const a=S(!1),i=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",_):o.removeListener(_))},_=()=>{s.value&&(i(),o=n.matchMedia(Qt(e).value),a.value=o.matches,"addEventListener"in o?o.addEventListener("change",_):o.addListener(_))};return ae(_),vt(()=>i()),a}const Ye=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Xe="__vueuse_ssr_handlers__";Ye[Xe]=Ye[Xe]||{};var Je;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(Je||(Je={}));var en=Object.defineProperty,Ze=Object.getOwnPropertySymbols,tn=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?en(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sn=(e,t)=>{for(var n in t||(t={}))tn.call(t,n)&&et(e,n,t[n]);if(Ze)for(var n of Ze(t))nn.call(t,n)&&et(e,n,t[n]);return e};const on={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};sn({linear:Kt},on);function an({window:e=Be}={}){if(!e)return{x:S(0),y:S(0)};const t=S(e.scrollX),n=S(e.scrollY);return Jt(e,"scroll",()=>{t.value=e.scrollX,n.value=e.scrollY},{capture:!1,passive:!0}),{x:t,y:n}}function ln(e,t){let n,s=!1;return()=>{n&&clearTimeout(n),s?n=setTimeout(e,t):(e(),s=!0,setTimeout(()=>{s=!1},t))}}function Le(e){return/^\//.test(e)?e:`/${e}`}function le(e){if(Mt(e))return e.replace(It,"");const{site:t}=M(),{pathname:n,search:s,hash:o}=new URL(e,"http://example.com"),a=n.endsWith("/")||n.endsWith(".html")?e:e.replace(/(?:(^\.+)\/)?.*$/,`$1${n.replace(/(\.md)?$/,t.value.cleanUrls?"":".html")}${s}${o}`);return be(a)}function ft(e,t){if(Array.isArray(e))return e;if(e==null)return[];t=Le(t);const n=Object.keys(e).sort((s,o)=>o.split("/").length-s.split("/").length).find(s=>t.startsWith(Le(s)));return n?e[n]:[]}function cn(e){const t=[];let n=0;for(const s in e){const o=e[s];if(o.items){n=t.push(o);continue}t[n]||t.push({items:[]}),t[n].items.push(o)}return t}function rn(e){const t=[];function n(s){for(const o of s)o.text&&o.link&&t.push({text:o.text,link:o.link}),o.items&&n(o.items)}return n(e),t}function Me(e,t){return Array.isArray(t)?t.some(n=>Me(e,n)):te(e,t.link)?!0:t.items?Me(e,t.items):!1}function W(){const e=ce(),{theme:t,frontmatter:n}=M(),s=Se("(min-width: 960px)"),o=S(!1),a=V(()=>{const x=t.value.sidebar,N=e.data.relativePath;return x?ft(x,N):[]}),i=V(()=>n.value.sidebar!==!1&&a.value.length>0&&n.value.layout!=="home"),_=V(()=>d?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),d=V(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),f=V(()=>i.value&&s.value),y=V(()=>i.value?cn(a.value):[]);function b(){o.value=!0}function P(){o.value=!1}function m(){o.value?P():b()}return{isOpen:o,sidebar:a,sidebarGroups:y,hasSidebar:i,hasAside:d,leftAside:_,isSidebarEnabled:f,open:b,close:P,toggle:m}}function un(e,t){let n;ae(()=>{n=e.value?document.activeElement:void 0}),X(()=>{window.addEventListener("keyup",s)}),Ce(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function dn(e){const{page:t}=M(),n=S(!1),s=V(()=>e.value.collapsed!=null),o=V(()=>!!e.value.link),a=V(()=>te(t.value.relativePath,e.value.link)),i=V(()=>a.value?!0:e.value.items?Me(t.value.relativePath,e.value.items):!1),_=V(()=>!!(e.value.items&&e.value.items.length));ae(()=>{n.value=!!(s.value&&e.value.collapsed)}),ae(()=>{(a.value||i.value)&&(n.value=!1)});function d(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:o,isActiveLink:a,hasActiveLink:i,hasChildren:_,toggle:d}}const _n=$({__name:"VPSkipLink",setup(e){const t=ce(),n=S();ee(()=>t.path,()=>n.value.focus());function s({target:o}){const a=document.querySelector(decodeURIComponent(o.hash));if(a){const i=()=>{a.removeAttribute("tabindex"),a.removeEventListener("blur",i)};a.setAttribute("tabindex","-1"),a.addEventListener("blur",i),a.focus(),window.scrollTo(0,0)}}return(o,a)=>(l(),r(T,null,[u("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),u("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}});const hn=g(_n,[["__scopeId","data-v-994b33bc"]]),vn={key:0,class:"VPBackdrop"},fn=$({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(l(),w(Te,{name:"fade"},{default:v(()=>[e.show?(l(),r("div",vn)):k("",!0)]),_:1}))}});const pn=g(fn,[["__scopeId","data-v-b2600058"]]);function mn(){const e=S(!1);function t(){e.value=!0,window.addEventListener("resize",o)}function n(){e.value=!1,window.removeEventListener("resize",o)}function s(){e.value?n():t()}function o(){window.outerWidth>=768&&n()}const a=ce();return ee(()=>a.path,n),{isScreenOpen:e,openScreen:t,closeScreen:n,toggleScreen:s}}function re({removeCurrent:e=!0,correspondingLink:t=!1}={}){const{site:n,localeIndex:s,page:o,theme:a}=M(),i=V(()=>{var d,f;return{label:(d=n.value.locales[s.value])==null?void 0:d.label,link:((f=n.value.locales[s.value])==null?void 0:f.link)||(s.value==="root"?"/":`/${s.value}/`)}});return{localeLinks:V(()=>Object.entries(n.value.locales).flatMap(([d,f])=>e&&i.value.label===f.label?[]:{text:f.label,link:gn(f.link||(d==="root"?"/":`/${d}/`),a.value.i18nRouting!==!1&&t,o.value.relativePath.slice(i.value.link.length-1),!n.value.cleanUrls)})),currentLang:i}}function gn(e,t,n,s){return t?e.replace(/\/$/,"")+Le(n.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,s?".html":"")):e}const yn=["src","alt"],bn={inheritAttrs:!1},kn=$({...bn,__name:"VPImage",props:{image:null,alt:null},setup(e){return(t,n)=>{const s=K("VPImage",!0);return e.image?(l(),r(T,{key:0},[typeof e.image=="string"||"src"in e.image?(l(),r("img",_e({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:c(be)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,yn)):(l(),r(T,{key:1},[p(s,_e({class:"dark",image:e.image.dark,alt:e.image.alt},t.$attrs),null,16,["image","alt"]),p(s,_e({class:"light",image:e.image.light,alt:e.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):k("",!0)}}});const Oe=g(kn,[["__scopeId","data-v-74766fef"]]),$n=["href"],Pn=$({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=M(),{hasSidebar:s}=W(),{currentLang:o}=re();return(a,i)=>(l(),r("div",{class:A(["VPNavBarTitle",{"has-sidebar":c(s)}])},[u("a",{class:"title",href:c(le)(c(o).link)},[h(a.$slots,"nav-bar-title-before",{},void 0,!0),c(n).logo?(l(),w(Oe,{key:0,class:"logo",image:c(n).logo},null,8,["image"])):k("",!0),c(n).siteTitle?(l(),r(T,{key:1},[D(L(c(n).siteTitle),1)],64)):c(n).siteTitle===void 0?(l(),r(T,{key:2},[D(L(c(t).title),1)],64)):k("",!0),h(a.$slots,"nav-bar-title-after",{},void 0,!0)],8,$n)],2))}});const xn=g(Pn,[["__scopeId","data-v-bd15f18e"]]),wn="/document/assets/flex-logo.2489261b.svg";function xe(e,t){return typeof e>"u"?t:e}function tt(e){const t=Array(e);for(let n=0;n=this.minlength&&(_||!i[y])){let P=de(d,o,f),m="";switch(this.tokenize){case"full":if(3x;N--)if(N-x>=this.minlength){const B=de(d,o,f,b,x);m=y.substring(x,N),this.push_index(i,m,B,e,n)}break}case"reverse":if(2=this.minlength){const N=de(d,o,f,b,x);this.push_index(i,m,N,e,n)}m=""}case"forward":if(1=this.minlength&&this.push_index(i,m,P,e,n);break}default:if(this.boost&&(P=Math.min(0|P/this.boost(t,y,f),d-1)),this.push_index(i,y,P,e,n),_&&1=this.minlength&&!x[y]){x[y]=1;const I=de(N+(o/2>N?0:1),o,f,E-1,C-1),O=this.bidirectional&&y>B;this.push_index(a,O?B:y,I,e,n,O?y:B)}}}}}this.fastupdate||(this.register[e]=1)}}return this};function de(e,t,n,s,o){return n&&1=this.minlength&&!b[m]){if(!this.optimize&&!a&&!this.map[m])return i;P[N++]=m,b[m]=1}e=P,s=e.length}if(!s)return i;t||(t=100);let d,f=this.depth&&1=n)))));m++);if(f)return o?ot(_,n,0):void(e[e.length]=_)}return!t&&_};function ot(e,t,n){return e=e.length===1?e[0]:Sn(e),n||e.length>t?e.slice(n,n+t):e}function at(e,t,n,s){if(n){const o=s&&t>n;e=e[o?t:n],e=e&&e[o?n:t]}else e=e[t];return e}F.prototype.contain=function(e){return!!this.register[e]},F.prototype.update=function(e,t){return this.remove(e).add(e,t)},F.prototype.remove=function(e,t){const n=this.register[e];if(n){if(this.fastupdate)for(let s,o=0;o{if(a.value){for(var C=b.value.search(a.value,{enrich:!0}),I=[],O=0;O!C||!C.length?[]:C.reduce((O,H)=>(O[I(H)]||(O[I(H)]=[]),O[I(H)].push(H),O),{}),B=()=>{setTimeout(()=>{_.value&&_.value.focus()},100),E(),o.value=!0};X(async()=>{var H,q;const C=await Ct(()=>import("./virtual_search-data.db13757c.js"),[]);d.value=C.default.INDEX_DATA,f.value=C.default.PREVIEW_LOOKUP,y.value=C.default.Options,i.value=window.location.origin+be(n.value==="root"?"/":n.value),P.value=((H=y.value)==null?void 0:H.buttonLabel)||P.value,m.value=((q=y.value)==null?void 0:q.placeholder)||m.value;var I=new F(y.value);I.import("reg",d.value.reg),I.import("cfg",d.value.cfg),I.import("map",d.value.map),I.import("ctx",d.value.ctx),b.value=I,s.value.innerHTML=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"⌘":"Ctrl";const O=G=>{var ue;G.key==="k"&&(G.ctrlKey||G.metaKey)&&(G.preventDefault(),B()),G.key==="Escape"&&((ue=a.value)==null?void 0:ue.length)==0&&o.value&&(o.value=!1)};window.addEventListener("keydown",O)});function E(){o.value=!1,a.value=""}return(C,I)=>{const O=K("ClientOnly");return l(),r("div",Wn,[p(O,null,{default:v(()=>[(l(),w(At,{to:"body"},[We(u("div",{class:"VPPluginSearch-modal-back",onClick:I[2]||(I[2]=H=>o.value=!1)},[u("div",{class:"VPPluginSearch-modal",onClick:I[1]||(I[1]=ut(()=>{},["stop"]))},[u("form",Kn,[Qn,We(u("input",{class:"DocSearch-Input","aria-autocomplete":"both","aria-labelledby":"docsearch-label",id:"docsearch-input",autocomplete:"off",autocorrect:"off",autocapitalize:"off",enterkeyhint:"search",spellcheck:"false",autofocus:"true","onUpdate:modelValue":I[0]||(I[0]=H=>a.value=H),placeholder:m.value,maxlength:"64",type:"search",ref_key:"input",ref:_},null,8,Yn),[[Nt,a.value]])]),u("div",Xn,[(l(!0),r(T,null,z(N(c(x),H=>H.link.split("/").slice(0,-1).join("-")),(H,q)=>(l(),r("div",{key:q},[u("span",Jn,L(q?q.toString()[0].toUpperCase()+q.toString().slice(1):"Home"),1),(l(!0),r(T,null,z(H,G=>(l(),r("a",{href:i.value+G.link,key:G.id,onClick:E},[u("div",es,[u("span",ts,L(G.link.includes("#")?"#":"▤"),1),u("div",ns,[u("h3",null,L(G.title),1),u("p",null,[u("div",{innerHTML:G.preview},null,8,ss)])]),os])],8,Zn))),128))]))),128))]),as])],512),[[Tt,o.value]])]))]),_:1}),u("div",{id:"docsearch",onClick:I[3]||(I[3]=H=>B())},[u("button",is,[u("span",ls,[cs,u("span",rs,L(P.value),1)]),u("span",us,[u("span",{class:"DocSearch-Button-Key",ref_key:"metaKey",ref:s},"Meta",512),ds])])])])}}});const hs={},vs={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},fs=u("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),ps=u("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),ms=[fs,ps];function gs(e,t){return l(),r("svg",vs,ms)}const ys=g(hs,[["render",gs]]),bs=$({__name:"VPLink",props:{tag:null,href:null,noIcon:{type:Boolean},target:null,rel:null},setup(e){const t=e,n=V(()=>t.tag??t.href?"a":"span"),s=V(()=>t.href&&dt.test(t.href));return(o,a)=>(l(),w(J(c(n)),{class:A(["VPLink",{link:e.href}]),href:e.href?c(le)(e.href):void 0,target:e.target||(c(s)?"_blank":void 0),rel:e.rel||(c(s)?"noreferrer":void 0)},{default:v(()=>[h(o.$slots,"default",{},void 0,!0),c(s)&&!e.noIcon?(l(),w(ys,{key:0,class:"icon"})):k("",!0)]),_:3},8,["class","href","target","rel"]))}});const Q=g(bs,[["__scopeId","data-v-87683ad2"]]),ks=$({__name:"VPNavBarMenuLink",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(l(),w(Q,{class:A({VPNavBarMenuLink:!0,active:c(te)(c(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,tabindex:"0"},{default:v(()=>[D(L(e.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const $s=g(ks,[["__scopeId","data-v-6dd6d312"]]),Ee=S();let pt=!1,Ve=0;function Ps(e){const t=S(!1);if(Bt){!pt&&xs(),Ve++;const n=ee(Ee,s=>{var o,a,i;s===e.el.value||(o=e.el.value)!=null&&o.contains(s)?(t.value=!0,(a=e.onFocus)==null||a.call(e)):(t.value=!1,(i=e.onBlur)==null||i.call(e))});Ce(()=>{n(),Ve--,Ve||ws()})}return Ot(t)}function xs(){document.addEventListener("focusin",mt),pt=!0,Ee.value=document.activeElement}function ws(){document.removeEventListener("focusin",mt)}function mt(){Ee.value=document.activeElement}const Vs={},Ss={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ls=u("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Ms=[Ls];function Is(e,t){return l(),r("svg",Ss,Ms)}const gt=g(Vs,[["render",Is]]),Cs={},Ts={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ns=u("circle",{cx:"12",cy:"12",r:"2"},null,-1),As=u("circle",{cx:"19",cy:"12",r:"2"},null,-1),Bs=u("circle",{cx:"5",cy:"12",r:"2"},null,-1),Os=[Ns,As,Bs];function Es(e,t){return l(),r("svg",Ts,Os)}const Hs=g(Cs,[["render",Es]]),zs={class:"VPMenuLink"},Ds=$({__name:"VPMenuLink",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(l(),r("div",zs,[p(Q,{class:A({active:c(te)(c(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel},{default:v(()=>[D(L(e.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const ke=g(Ds,[["__scopeId","data-v-b9520bf2"]]),Fs={class:"VPMenuGroup"},js={key:0,class:"title"},Gs=$({__name:"VPMenuGroup",props:{text:null,items:null},setup(e){return(t,n)=>(l(),r("div",Fs,[e.text?(l(),r("p",js,L(e.text),1)):k("",!0),(l(!0),r(T,null,z(e.items,s=>(l(),r(T,null,["link"in s?(l(),w(ke,{key:0,item:s},null,8,["item"])):k("",!0)],64))),256))]))}});const qs=g(Gs,[["__scopeId","data-v-2bec9359"]]),Rs={class:"VPMenu"},Us={key:0,class:"items"},Ws=$({__name:"VPMenu",props:{items:null},setup(e){return(t,n)=>(l(),r("div",Rs,[e.items?(l(),r("div",Us,[(l(!0),r(T,null,z(e.items,s=>(l(),r(T,{key:s.text},["link"in s?(l(),w(ke,{key:0,item:s},null,8,["item"])):(l(),w(qs,{key:1,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):k("",!0),h(t.$slots,"default",{},void 0,!0)]))}});const Ks=g(Ws,[["__scopeId","data-v-7bffa9cd"]]),Qs=["aria-expanded","aria-label"],Ys={key:0,class:"text"},Xs={class:"menu"},Js=$({__name:"VPFlyout",props:{icon:null,button:null,label:null,items:null},setup(e){const t=S(!1),n=S();Ps({el:n,onBlur:s});function s(){t.value=!1}return(o,a)=>(l(),r("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:a[1]||(a[1]=i=>t.value=!0),onMouseleave:a[2]||(a[2]=i=>t.value=!1)},[u("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:a[0]||(a[0]=i=>t.value=!t.value)},[e.button||e.icon?(l(),r("span",Ys,[e.icon?(l(),w(J(e.icon),{key:0,class:"option-icon"})):k("",!0),D(" "+L(e.button)+" ",1),p(gt,{class:"text-icon"})])):(l(),w(Hs,{key:1,class:"icon"}))],8,Qs),u("div",Xs,[p(Ks,{items:e.items},{default:v(()=>[h(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const He=g(Js,[["__scopeId","data-v-64c29883"]]),Zs=$({__name:"VPNavBarMenuGroup",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(l(),w(He,{class:A({VPNavBarMenuGroup:!0,active:c(te)(c(t).relativePath,e.item.activeMatch,!!e.item.activeMatch)}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),eo=e=>(R("data-v-c6c3e6d4"),e=e(),U(),e),to={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},no=eo(()=>u("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),so=$({__name:"VPNavBarMenu",setup(e){const{theme:t}=M();return(n,s)=>c(t).nav?(l(),r("nav",to,[no,(l(!0),r(T,null,z(c(t).nav,o=>(l(),r(T,{key:o.text},["link"in o?(l(),w($s,{key:0,item:o},null,8,["item"])):(l(),w(Zs,{key:1,item:o},null,8,["item"]))],64))),128))])):k("",!0)}});const oo=g(so,[["__scopeId","data-v-c6c3e6d4"]]),ao={},io={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},lo=u("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),co=u("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),ro=[lo,co];function uo(e,t){return l(),r("svg",io,ro)}const yt=g(ao,[["render",uo]]),_o={class:"items"},ho={class:"title"},vo=$({__name:"VPNavBarTranslations",setup(e){const{theme:t}=M(),{localeLinks:n,currentLang:s}=re({correspondingLink:!0});return(o,a)=>c(n).length&&c(s).label?(l(),w(He,{key:0,class:"VPNavBarTranslations",icon:yt,label:c(t).langMenuLabel||"Change language"},{default:v(()=>[u("div",_o,[u("p",ho,L(c(s).label),1),(l(!0),r(T,null,z(c(n),i=>(l(),w(ke,{key:i.link,item:i},null,8,["item"]))),128))])]),_:1},8,["label"])):k("",!0)}});const fo=g(vo,[["__scopeId","data-v-3bf1c934"]]);const po={},mo={class:"VPSwitch",type:"button",role:"switch"},go={class:"check"},yo={key:0,class:"icon"};function bo(e,t){return l(),r("button",mo,[u("span",go,[e.$slots.default?(l(),r("span",yo,[h(e.$slots,"default",{},void 0,!0)])):k("",!0)])])}const ko=g(po,[["render",bo],["__scopeId","data-v-0a2eba70"]]),$o={},Po={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},xo=Et('',9),wo=[xo];function Vo(e,t){return l(),r("svg",Po,wo)}const So=g($o,[["render",Vo]]),Lo={},Mo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Io=u("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),Co=[Io];function To(e,t){return l(),r("svg",Mo,Co)}const No=g(Lo,[["render",To]]),Ao={title:"toggle dark mode"},Bo=$({__name:"VPSwitchAppearance",setup(e){const{site:t,isDark:n}=M(),s=S(!1),o=typeof localStorage<"u"?a():()=>{};X(()=>{s.value=document.documentElement.classList.contains("dark")});function a(){const i=window.matchMedia("(prefers-color-scheme: dark)"),_=document.documentElement.classList;let d=localStorage.getItem(Ke),f=t.value.appearance==="dark"&&d==null||(d==="auto"||d==null?i.matches:d==="dark");i.onchange=P=>{d==="auto"&&b(f=P.matches)};function y(){b(f=!f),d=f?i.matches?"auto":"dark":i.matches?"light":"auto",localStorage.setItem(Ke,d)}function b(P){const m=document.createElement("style");m.type="text/css",m.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) {
   -webkit-transition: none !important;
   -moz-transition: none !important;
   -o-transition: none !important;
diff --git a/docs/document/assets/chunks/virtual_search-data.58a96ecd.js b/docs/document/assets/chunks/virtual_search-data.58a96ecd.js
deleted file mode 100644
index ef8b91b5c..000000000
--- a/docs/document/assets/chunks/virtual_search-data.58a96ecd.js
+++ /dev/null
@@ -1,1305 +0,0 @@
-const t={map:'[{"高级属性":["0.0","5.0"],"option":["0.1","1.12","5.1","6.12","21.0","30.14"],"whitelist":["0.2","5.2","21.36","35.36"],"template":["0.3","5.3"],"events":["0.4","5.4"],"storage":["0.5","5.5"],"icons":["0.6","5.6","21.40","35.40"],"i18n":["0.7","5.7","21.44","35.44"],"notice":["0.8","1.15","5.8","6.15"],"layers":["0.9","5.9","20.1","21.29","34.1","35.29"],"controls":["0.10","5.10","20.2","21.32","34.2","35.32"],"contextmenu":["0.11","1.14","2.36","5.11","6.14","7.36","20.3","21.31","34.3","35.31"],"subtitle":["0.12","2.35","5.12","7.35","21.38","35.38"],"loading":["0.13","2.33","5.13","7.33"],"hotkey":["0.14","2.5","5.14","7.5","21.20","35.20"],"mask":["0.15","2.34","5.15","7.34"],"setting":["0.16","1.16","1.17","1.18","2.38","5.16","6.16","6.17","6.18","7.38","21.19","35.19"],"plugins":["0.17","5.17","21.35","35.35"],"静态属性":["1.0","6.0"],"instances":["1.1","6.1"],"version":["1.2","6.2"],"env":["1.3","6.3"],"build":["1.4","6.4"],"config":["1.5","6.5","30.11"],"utils":["1.6","6.6"],"scheme":["1.7","6.7"],"emitter":["1.8","6.8"],"validator":["1.9","6.9"],"kindof":["1.10","6.10"],"html":["1.11","6.11"],"debug":["1.13","6.13"],"indicator":["1.19","1.20","1.21","1.22","6.19","6.20","6.21","6.22"],"volume":["1.23","1.24","1.42","4.8","6.23","6.24","6.42","9.8","21.8","35.8"],"resize":["1.25","2.15","6.25","7.15"],"scroll":["1.26","1.27","6.26","6.27"],"auto":["1.28","1.29","1.30","6.28","6.29","6.30"],"reconnect":["1.31","1.32","6.31","6.32"],"control":["1.33","2.37","6.33","7.37"],"db":["1.34","6.34"],"mobile":["1.35","1.36","1.37","6.35","6.36","6.37"],"info":["1.38","2.31","6.38","7.31"],"fast":["1.39","1.40","6.39","6.40"],"touch":["1.41","6.41"],"seek":["1.43","2.26","4.5","6.43","7.26","9.5"],"progress":["1.44","6.44"],"playback":["1.45","6.45"],"aspect":["1.46","6.46"],"flip":["1.47","2.20","4.26","6.47","7.20","9.26","21.15","35.15"],"fullscreen":["1.48","2.21","4.18","6.48","7.21","9.18","21.23","35.23"],"实例事件":["2.0","7.0"],"ready":["2.1","7.1"],"restart":["2.2","7.2"],"pause":["2.3","4.2","7.3","9.2"],"play":["2.4","4.1","7.4","9.1"],"destroy":["2.6","4.4","7.6","9.4","19.9","33.9"],"url":["2.7","4.9","7.7","9.9","21.2","35.2"],"focus":["2.8","7.8"],"blur":["2.9","7.9"],"dblclick":["2.10","7.10"],"click":["2.11","7.11"],"error":["2.12","7.12"],"hover":["2.13","7.13"],"mousemove":["2.14","7.14"],"view":["2.16","7.16"],"aspectratio":["2.17","4.28","7.17","9.28","21.17","35.17"],"autoheight":["2.18","4.30","7.18","9.30"],"autosize":["2.19","4.24","7.19","9.24","21.12","35.12"],"fullscreenweb":["2.22","4.19","7.22","9.19","21.24","35.24"],"mini":["2.23","4.22","7.23","9.22"],"pip":["2.24","4.20","7.24","9.20","21.21","35.21"],"screenshot":["2.25","4.15","7.25","9.15","21.18","35.18"],"subtitleoffset":["2.27","7.27","21.25","35.25"],"subtitleupdate":["2.28","7.28"],"subtitleload":["2.29","7.29"],"subtitleswitch":["2.30","7.30"],"layer":["2.32","7.32"],"video":["2.39","2.40","2.41","2.42","2.43","2.44","2.45","2.46","2.47","2.48","2.49","2.50","2.51","2.52","2.53","2.54","2.55","2.56","2.57","2.58","2.59","4.40","7.39","7.40","7.41","7.42","7.43","7.44","7.45","7.46","7.47","7.48","7.49","7.50","7.51","7.52","7.53","7.54","7.55","7.56","7.57","7.58","7.59","9.40"],"编写插件":["3.0","8.0"],"实例属性":["4.0"],"toggle":["4.3","9.3","22.3"],"forward":["4.6","9.6"],"backward":["4.7","9.7"],"switchurl":["4.10","9.10"],"switchquality":["4.11","9.11"],"muted":["4.12","9.12","21.10","35.10"],"currenttime":["4.13","9.13"],"duration":["4.14","9.14"],"getdataurl":["4.16","9.16"],"getbloburl":["4.17","9.17"],"poster":["4.21","9.21","21.5","35.5"],"playing":["4.23","9.23"],"rect":["4.25","9.25"],"playbackrate":["4.27","9.27","21.16","35.16"],"loop":["4.29","9.29","21.14","35.14"],"attr":["4.31","9.31"],"title":["4.32","9.32","21.6","35.6"],"type":["4.33","9.33","21.41","35.41"],"theme":["4.34","9.34","21.7","35.7"],"airplay":["4.35","9.35","21.49","35.49"],"loaded":["4.36","9.36"],"played":["4.37","9.37"],"proxy":["4.38","9.38"],"query":["4.39","9.39"],"instance":["9.0"],"install":["10.0","10.1"],"cdn":["10.2","15.3","16.3","17.3","18.3","19.4","23.2","28.3","29.3","30.3","31.3","32.3","33.4"],"use":["10.3"],"vue":["10.4","23.4"],"react":["10.5","23.5"],"syntax":["10.6"],"dash":["11.0","17.0","24.0","31.0"],"flv":["12.0","25.0"],"hls":["13.0","18.0","26.0","32.0"],"webtorrent":["14.0","27.0"],"视频广告":["15.0","28.0"],"演示":["15.1","16.1","17.1","18.1","19.2","28.1","29.1","30.1","31.1","32.1","33.2"],"安装":["15.2","16.2","17.2","18.2","19.3","23.1","28.2","29.2","30.2","31.2","32.2","33.3"],"使用":["15.4","16.4","19.5","23.3","28.4","29.4","33.5"],"控制器皮肤":["16.0","29.0"],"enable":["16.5","29.5"],"iframe":["19.0","19.10","33.0","33.10"],"说明":["19.1","33.1"],"index":["19.6","33.6"],"commit":["19.7","33.7"],"message":["19.8","33.8"],"inject":["19.11","33.11"],"postmessage":["19.12","33.12"],"例子":["19.13","33.13"],"component":["20.0"],"container":["21.1","35.1"],"id":["21.3","35.3"],"onready":["21.4","35.4"],"islive":["21.9","35.9"],"autoplay":["21.11","35.11"],"automini":["21.13","35.13"],"mutex":["21.22","35.22"],"miniprogressbar":["21.26","35.26"],"usessr":["21.27","35.27"],"playsinline":["21.28","35.28"],"settings":["21.30","35.30"],"quality":["21.33","35.33"],"highlight":["21.34","35.34"],"thumbnails":["21.37","35.37"],"morevideoattr":["21.39","35.39"],"customtype":["21.42","35.42"],"lang":["21.43","35.43"],"lock":["21.45","35.45"],"fastforward":["21.46","35.46"],"autoplayback":["21.47","35.47"],"autoorientation":["21.48","35.48"],"设置面板":["22.0","36.0"],"selection":["22.1"],"list":["22.2"],"range":["22.4"],"安装使用":["23.0"],"语法提示":["23.6"],"弹幕库":["30.0"],"选项":["30.4"],"使用弹幕数组":["30.5"],"使用弹幕":["30.6"],"使用异步调用":["30.7"],"hide":["30.8"],"ishide":["30.9"],"emit":["30.10"],"load":["30.12"],"reset":["30.13"],"事件":["30.15"],"组件配置":["34.0"],"基础选项":["35.0"],"选择列表":["36.1"],"列表嵌套":["36.2"],"切换按钮":["36.3"],"范围滑块":["36.4"]},{"0":["4.36","4.37","21.8","35.8"],"1":["30.4"],"4":["34.3"],"5":["20.1","30.4","34.1"],"7":["21.8"],"10":["30.4"],"13":["34.3"],"15":["3.0","8.0"],"22":["34.1"],"这里的":["0.0","1.0","4.0","5.0","6.0"],"播放器的选项":["0.1","5.1"],"div":["0.1","0.2","0.3","0.5","0.6","0.8","0.14","0.17","1.1","1.6","2.0","2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.27","2.28","2.29","2.30","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","3.0","4.1","4.2","4.3","4.14","4.25","4.35","5.1","5.2","5.3","5.5","5.6","5.8","5.14","5.17","6.1","6.6","7.0","7.1","7.2","7.3","7.4","7.5","7.6","7.7","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.17","7.18","7.19","7.20","7.21","7.22","7.23","7.24","7.25","7.26","7.27","7.28","7.29","7.30","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","8.0","9.14","11.0","12.0","13.0","14.0","15.4","16.4","16.5","20.1","20.3","21.2","21.29","21.30","22.2","24.0","25.0","26.0","27.0","28.4","29.4","29.5","30.5","30.6","30.7","30.8","30.9","30.10","30.12","30.13","30.14","34.1","34.2","34.3","35.2","35.29","35.30","35.31","35.32","36.2"],"classname":["0.1","0.2","0.3","0.17","2.0","2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.27","2.28","2.29","2.30","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","3.0","5.1","5.2","5.3","5.17","7.0","7.1","7.2","7.3","7.4","7.5","7.6","7.7","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.17","7.18","7.19","7.20","7.21","7.22","7.23","7.24","7.25","7.26","7.27","7.28","7.29","7.30","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","8.0","9.14","11.0","12.0","13.0","14.0","15.4","16.4","20.1","20.3","21.2","21.29","21.30","22.2","24.0","25.0","26.0","27.0","28.4","29.4","30.5","30.6","30.7","30.9","30.10","30.12","30.13","30.14","34.1","34.2","34.3","35.2","35.29","35.30","36.2"],"run":["0.1","0.3","2.0","2.2","2.6","2.7","2.12","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.27","2.28","2.29","2.30","2.38","3.0","5.1","5.3","7.0","7.2","7.6","7.7","7.12","7.17","7.18","7.20","7.21","7.22","7.23","7.24","7.25","7.27","7.28","7.29","7.30","7.38","8.0","11.0","12.0","13.0","14.0","15.4","16.4","20.1","20.3","21.2","21.29","22.2","24.0","25.0","26.0","27.0","28.4","29.4","30.5","30.6","30.7","30.9","30.10","30.12","30.13","30.14","34.1","34.2","34.3","35.2","35.29","35.30","36.2"],"管理移动设备的白名单功能":["0.2","5.2"],"只有一个属性":["0.2","5.2"],"state":["0.2","5.2"],"返回是否启用播放器功能":["0.2","5.2"],"管理播放器所有的":["0.3","0.4","0.6","5.3","5.4","5.6"],"dom":["0.3","0.4","4.38","4.39","5.3","5.4","9.38","9.39","21.1","22.1","22.3","22.4","35.1","36.1","36.3","36.4"],"元素":["0.3","5.3","36.3","36.4"],"事件":["0.4","3.0","5.4","8.0"],"实质上是代理了":["0.4","5.4"],"addeventlistener":["0.4","4.38","5.4","9.38"],"和":["0.4","3.0","4.11","5.4","8.0","30.8","34.2","35.4"],"removeeventlistener":["0.4","5.4"],"当使用以下方法来处理事件":["0.4","5.4"],"播放器销毁时也会自动销毁该事件":["0.4","5.4"],"proxy":["0.4","5.4"],"方法用于代理":["0.4","5.4"],"管理播放器的本地存储":["0.5","5.5"],"name":["0.5","3.0","5.5","8.0"],"属性用于设置缓存的":["0.5","5.5"],"key":["0.5","5.5"],"set":["0.5","5.5","9.8","9.11","9.12","9.13","9.18","9.19","9.20","9.21","9.24","9.26","9.28","9.29","21.37","21.38"],"方法用于设置缓存":["0.5","5.5"],"get":["0.5","0.7","5.5","5.7","9.13","9.14","9.16","9.17","9.18","9.20","9.23","9.25","9.31","9.32","9.34"],"方法用于获取缓存":["0.5","5.5"],"del":["0.5","5.5"],"方法用于删除缓存":["0.5","5.5"],"clear":["0.5","5.5"],"方法用于清空缓存":["0.5","5.5"],"svg":["0.6","5.6"],"图标":["0.6","5.6"],"管理播放器的":["0.7","5.7"],"方法用于获取":["0.7","5.7"],"的值":["0.7","5.7"],"update":["0.7","5.7"],"管理播放器的提示语":["0.8","5.8"],"只有一个":["0.8","5.8"],"show":["0.8","0.9","0.10","0.11","0.13","0.15","0.16","5.8","5.9","5.10","5.11","5.13","5.15","5.16","30.8"],"属性用于显示提示语":["0.8","5.8"],"管理播放器的层":["0.9","5.9"],"add":["0.9","0.10","0.11","0.14","0.16","0.17","5.9","5.10","5.11","5.14","5.16","5.17","20.1","20.2","20.3"],"方法用于动态添加层":["0.9","5.9"],"属性用于设置是否显示全部层":["0.9","5.9"],"toggle":["0.9","0.10","0.11","0.13","0.15","0.16","5.9","5.10","5.11","5.13","5.15","5.16"],"管理播放器的控制器":["0.10","5.10"],"方法用于动态添加控制器":["0.10","5.10"],"属性用于设置是否显示全部控制器":["0.10","5.10"],"管理播放器的右键菜单":["0.11","5.11"],"方法用于动态添加菜单":["0.11","5.11"],"属性用于设置是否显示全部菜单":["0.11","5.11"],"管理播放器的字幕功能":["0.12","5.12"],"url":["0.12","5.12","9.10","30.15"],"属性设置和返回当前字幕地址":["0.12","5.12"],"style":["0.12","5.12"],"方法设置当前字幕的样式":["0.12","5.12"],"管理播放器的加载层":["0.13","5.13"],"属性用于设置是否显示加载层":["0.13","5.13"],"管理播放器的快捷键功能":["0.14","5.14"],"方法用于添加快捷键":["0.14","5.14"],"remove":["0.14","5.14"],"方法用于删除快捷键":["0.14","5.14"],"管理播放器的遮罩层":["0.15","5.15"],"属性用于设置是否显示遮罩层":["0.15","5.15"],"管理播放器的设置面板":["0.16","5.16"],"方法用于动态添加设置项":["0.16","5.16"],"属性用于设置是否显示全部设置项":["0.16","5.16"],"属性用于切换是否显示全部设置项":["0.16","5.16"],"管理播放器的插件功能":["0.17","5.17"],"只有一个方法":["0.17","5.17"],"用于动态添加插件":["0.17","5.17"],"返回全部播放器实例的数组":["1.1","6.1"],"假如你想同时管理多个播放器的时候":["1.1","6.1"],"可以用到该属性":["1.1","6.1"],"返回播放器的版本信息":["1.2","6.2"],"返回播放器的环境变量":["1.3","6.3"],"返回播放器的打包时间":["1.4","6.4"],"返回视频的默认配置":["1.5","6.5"],"返回播放器的工具函数集合":["1.6","6.6"],"返回播放器选项的校验方案":["1.7","6.7"],"返回事件分发器的构造函数":["1.8","6.8"],"返回选项的校验函数":["1.9","6.9"],"返回类型检测的函数工具":["1.10","6.10"],"返回播放器所需的":["1.11","6.11"],"返回播放器的默认选项":["1.12","6.12"],"time":["1.15","1.25","1.26","1.31","6.15","6.25","6.26","6.31","21.25"],"width":["1.16","6.16","9.30","36.1"],"item":["1.17","1.18","6.17","6.18"],"size":["1.19","1.20","1.21","1.22","6.19","6.20","6.21","6.22","9.25","21.12"],"panel":["1.23","6.23"],"handle":["1.24","6.24"],"gap":["1.27","6.27"],"playback":["1.28","1.29","1.30","6.28","6.29","6.30","9.3","21.47"],"sleep":["1.32","6.32"],"hide":["1.33","6.33"],"clice":["1.34","6.34"],"auto":["1.35","1.36","1.37","6.35","6.36","6.37"],"loop":["1.38","6.38"],"forward":["1.39","1.40","6.39","6.40"],"move":["1.41","6.41"],"step":["1.42","1.43","6.42","6.43"],"height":["1.44","6.44"],"rate":["1.45","6.45"],"ratio":["1.46","6.46"],"web":["1.48","6.48"],"播放器的事件分为两种":["2.0","7.0"],"一种视频的":["2.0","7.0"],"原生事件":["2.0","7.0"],"前缀":["2.0","7.0"],"video":["2.0","7.0","9.1","9.2","9.3","9.7","9.10","9.11","9.14","9.36","9.37","13.0","21.2","21.5","21.6","21.38","21.41","21.42","26.0"],"另外一种是":["2.0","7.0"],"自定义事件":["2.0","7.0"],"监听事件":["2.0","7.0"],"code":["2.0","2.7","2.27","2.30","3.0","7.0","7.7","7.27","7.30","8.0","10.1","10.2","10.3","10.4","10.5","11.0","12.0","13.0","14.0","15.2","15.3","15.4","16.2","16.3","16.4","17.2","17.3","18.2","18.3","19.3","19.4","19.5","20.1","20.3","21.2","22.2","23.1","23.2","23.3","23.4","23.5","24.0","25.0","26.0","27.0","28.2","28.3","28.4","29.2","29.3","29.4","30.2","30.3","30.5","30.6","30.7","30.9","30.10","30.12","30.13","30.14","31.2","31.3","32.2","32.3","33.3","33.4","33.5","34.1","34.2","34.3","35.2","35.29","36.2"],"js":["2.0","3.0","7.0","8.0","10.3","10.4","10.5","10.6","11.0","12.0","13.0","14.0","15.4","20.1","20.3","22.2","23.3","23.4","23.5","23.6","24.0","25.0","26.0","27.0","28.4","30.4","30.15","34.1","34.3","36.2"],"当播放器首次可以播放器时触发":["2.1","7.1"],"当播放器切换地址后并可以播放时触发":["2.2","7.2"],"当播放器暂停时触发":["2.3","7.3"],"当播放器播放时触发":["2.4","7.4"],"当播放器热键被按下时触发":["2.5","7.5"],"当播放器销毁时触发":["2.6","7.6"],"当视频地址变化时触发":["2.7","7.7"],"当播放器获得焦点时触发":["2.8","7.8"],"当播放器失去焦点时触发":["2.9","7.9"],"当播放器被双击时触发":["2.10","7.10"],"当播放器被单击时触发":["2.11","7.11"],"当播放器加载视频发生错误时触发":["2.12","7.12"],"当播放器被鼠标移出或者移入时触发":["2.13","7.13"],"当播放器被鼠标经过时触发":["2.14","7.14"],"当播放器尺寸变化时触发":["2.15","7.15"],"当播放器出现在视口时触发":["2.16","7.16"],"当播放器长宽比变化时触发":["2.17","7.17"],"当播放器自动设置高度时触发":["2.18","7.18"],"当播放器自动设置尺寸时触发":["2.19","7.19"],"当播放器发生翻转时触发":["2.20","7.20"],"当播放器发生窗口全屏时触发":["2.21","7.21"],"当播放器发生网页全屏时触发":["2.22","7.22"],"当播放器进入迷你模式时触发":["2.23","7.23"],"当播放器进入画中画时触发":["2.24","7.24"],"当播放器被截图时触发":["2.25","7.25"],"当播放器发生时间跳转时触发":["2.26","7.26"],"当播放器发生字幕偏移时触发":["2.27","7.27"],"当字幕更新时触发":["2.28","7.28"],"当字幕加载时触发":["2.29","7.29"],"当字幕切换时触发":["2.30","7.30"],"当信息面板显示或隐藏时触发":["2.31","7.31"],"当自定义层显示或隐藏时触发":["2.32","7.32"],"当加载器显示或隐藏时触发":["2.33","7.33"],"当遮罩层显示或隐藏时触发":["2.34","7.34"],"当字幕层显示或隐藏时触发":["2.35","7.35"],"当右键菜单显示或隐藏时触发":["2.36","7.36"],"当控制器显示或隐藏时触发":["2.37","7.37"],"当设置面板显示或隐藏时触发":["2.38","7.38"],"canplay":["2.39","7.39"],"canplaythrough":["2.40","7.40"],"complete":["2.41","7.41"],"durationchange":["2.42","7.42"],"emptied":["2.43","7.43"],"ended":["2.44","7.44"],"error":["2.45","7.45"],"loadeddata":["2.46","7.46"],"loadedmetadata":["2.47","7.47"],"pause":["2.48","7.48"],"play":["2.49","7.49","21.11"],"playing":["2.50","7.50"],"progress":["2.51","7.51","21.34"],"ratechange":["2.52","7.52"],"seeked":["2.53","7.53"],"seeking":["2.54","7.54"],"stalled":["2.55","7.55"],"suspend":["2.56","7.56"],"timeupdate":["2.57","7.57"],"volumechange":["2.58","7.58"],"waiting":["2.59","7.59"],"但你已经知道播放器的":["3.0","8.0"],"属性":["3.0","8.0","34.0","35.33","35.34","35.37","35.38","36.1","36.3","36.4"],"方法":["3.0","8.0"],"后":["3.0","8.0"],"再编写插件是非常简单的事":["3.0","8.0"],"可以在实例化的时候加载插件的函数":["3.0","8.0"],"function":["3.0","4.1","4.2","4.3","4.4","4.10","4.11","4.15","4.16","4.17","4.31","4.35","4.38","4.39","8.0","9.1","9.2","9.3","9.4","9.10","9.11","9.15","9.16","9.17","9.31","9.35","9.38","9.39","21.4","35.4","36.1"],"myplugin":["3.0","8.0"],"art":["3.0","8.0","30.15","36.2"],"console":["3.0","8.0"],"info":["3.0","8.0"],"return":["3.0","8.0","9.40"],"something":["3.0","8.0"],"type":["4.1","4.2","4.3","4.4","4.5","4.6","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.14","4.15","4.16","4.17","4.18","4.19","4.20","4.21","4.22","4.23","4.24","4.25","4.26","4.27","4.28","4.29","4.30","4.31","4.32","4.34","4.35","4.36","4.37","4.38","4.39","4.40","9.1","9.2","9.3","9.4","9.5","9.6","9.7","9.8","9.9","9.10","9.11","9.12","9.13","9.14","9.15","9.16","9.17","9.18","9.19","9.20","9.21","9.22","9.23","9.24","9.25","9.26","9.27","9.28","9.29","9.30","9.31","9.32","9.34","9.35","9.36","9.37","9.38","9.39","9.40","16.5","21.1","21.2","21.3","21.4","21.5","21.6","21.7","21.8","21.9","21.10","21.11","21.12","21.13","21.14","21.15","21.16","21.17","21.18","21.19","21.20","21.21","21.22","21.23","21.24","21.25","21.26","21.27","21.28","21.29","21.30","21.31","21.32","21.33","21.34","21.35","21.36","21.37","21.38","21.39","21.40","21.42","21.43","21.44","21.45","21.46","21.47","21.48","21.49","22.1","22.3","22.4","29.5","35.1","35.2","35.3","35.4","35.5","35.6","35.7","35.8","35.9","35.10","35.11","35.12","35.13","35.14","35.15","35.16","35.17","35.18","35.19","35.20","35.21","35.22","35.23","35.24","35.25","35.26","35.27","35.28","35.29","35.30","35.31","35.32","35.33","35.34","35.35","35.36","35.37","35.38","35.39","35.40","35.42","35.43","35.44","35.45","35.46","35.47","35.48","35.49"],"播放视频":["4.1"],"暂停视频":["4.2"],"切换视频的播放和暂停":["4.3"],"parameter":["4.4","4.5","4.6","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.18","4.19","4.20","4.21","4.22","4.23","4.24","4.26","4.27","4.28","4.29","4.30","4.31","4.32","4.33","4.34","9.4","9.5","9.6","9.7","9.8","9.9","9.10","9.11","9.12","9.13","9.18","9.19","9.20","9.21","9.22","9.23","9.24","9.26","9.27","9.28","9.29","9.30","9.31","9.32","9.33","9.34","16.5","21.4","29.5"],"boolean":["4.4","4.12","4.18","4.19","4.20","4.23","4.24","4.30","9.4","9.12","9.18","9.19","9.20","9.23","9.24","9.30","16.5","21.9","21.10","21.11","21.12","21.13","21.14","21.15","21.16","21.17","21.18","21.19","21.20","21.21","21.22","21.23","21.24","21.25","21.26","21.27","21.28","21.45","21.46","21.47","21.48","21.49","29.5","35.9","35.10","35.11","35.12","35.13","35.14","35.15","35.16","35.17","35.18","35.19","35.20","35.21","35.22","35.23","35.24","35.25","35.26","35.27","35.28","35.45","35.46","35.47","35.48","35.49"],"setter":["4.5","4.6","4.7","4.8","4.9","4.12","4.13","4.18","4.19","4.20","4.21","4.22","4.24","4.26","4.27","4.28","4.29","4.30","4.32","4.33","4.34","9.5","9.6","9.7","9.8","9.9","9.12","9.13","9.18","9.19","9.20","9.21","9.22","9.24","9.26","9.27","9.28","9.29","9.30","9.32","9.33","9.34","16.5","29.5"],"number":["4.5","4.6","4.7","4.8","4.13","4.27","9.5","9.6","9.7","9.8","9.13","9.27","21.8","35.8","36.1"],"getter":["4.8","4.9","4.12","4.13","4.14","4.18","4.19","4.20","4.21","4.22","4.23","4.24","4.25","4.26","4.27","4.28","4.29","4.30","4.32","4.33","4.34","4.36","4.37","9.8","9.9","9.12","9.13","9.14","9.18","9.19","9.20","9.21","9.22","9.23","9.24","9.25","9.26","9.27","9.28","9.29","9.30","9.32","9.33","9.34","9.36","9.37","16.5","29.5"],"string":["4.10","4.11","4.21","4.26","4.28","4.31","4.32","4.33","4.34","9.9","9.10","9.11","9.21","9.26","9.28","9.31","9.32","9.33","9.34","21.1","21.2","21.3","21.5","21.6","21.7","21.41","21.43","22.1","22.3","22.4","35.1","35.2","35.3","35.5","35.6","35.7","35.41","35.43","36.1","36.3","36.4"],"设置视频地址":["4.10"],"设置时和":["4.10"],"设置视频画质地址":["4.11"],"获取视频时长":["4.14"],"下载当前视频帧的截图":["4.15"],"获取当前视频帧的截图的":["4.16","4.17"],"base64":["4.16","9.16"],"地址":["4.16","4.17","30.4"],"blob":["4.17","9.17"],"设置和获取视频海报":["4.21"],"获取播放器的尺寸和坐标信息":["4.25"],"array":["4.29","9.29","20.2","21.29","21.30","21.31","21.32","21.33","21.34","21.35","21.36","22.1","35.29","35.30","35.31","35.32","35.33","35.34","35.35","35.36","36.1"],"设置和获取区间循序播放":["4.29"],"单位秒":["4.29","30.4"],"当容器只有宽度":["4.30"],"动态获取和设置":["4.31"],"开启隔空播放":["4.35"],"视频缓存的比例":["4.36"],"范围是":["4.36","4.37"],"视频播放的比例":["4.37"],"事件的代理函数":["4.38"],"实质上代理了":["4.38"],"的查询函数":["4.39"],"element":["4.40","9.40","21.1","22.1","22.3","22.4","35.1","36.1","36.3","36.4"],"快捷返回播放器的":["4.40"],"property":["9.0","22.1","22.3","22.4"],"the":["9.0","9.10","9.11","9.16","9.17","9.20","9.25","9.30","9.36","9.37","9.38","9.39","9.40","20.0","21.1","21.3","21.4","21.7","21.12","21.27","21.29","21.30","21.31","21.32","21.33","21.34","21.37","21.38","21.41","21.42","21.44","22.0"],"to":["9.4","20.0","21.1","21.11","21.18","21.20","21.27","21.33","21.40","21.41","21.47","21.48","22.0"],"setting":["9.10","21.30"],"is":["9.10","21.40","21.41"],"similar":["9.10","9.11"],"quality":["9.11"],"address":["9.11","9.16","9.17","21.2"],"and":["9.13","9.18","9.20","9.21","9.25","9.29","9.31","9.38","20.0","20.2","21.36","21.38"],"download":["9.15"],"a":["9.15","20.1","20.2","20.3","21.4"],"full":["9.18"],"obtain":["9.21","9.29"],"whether":["9.24","21.11","21.15","21.16","21.17","21.18","21.19","21.20","21.21","21.23","21.24","21.27","21.33","21.45","21.46","21.47","21.48","21.49"],"interval":["9.29"],"when":["9.30","21.9","21.13"],"container":["9.30","30.15"],"has":["9.30"],"only":["9.30"],"this":["9.30"],"attribute":["9.30"],"enable":["9.35"],"proportion":["9.36","9.37"],"of":["9.36","9.37","9.38","9.39","20.2","21.12","21.38","21.41","22.1","22.3","22.4"],"event":["9.38"],"essentially":["9.38"],"proxies":["9.38"],"group":["10.1","10.2","10.3","10.4","10.5","15.2","15.3","16.2","16.3","17.2","17.3","18.2","18.3","19.3","19.4","19.5","23.1","23.2","23.3","23.4","23.5","28.2","28.3","29.2","29.3","30.2","30.3","31.2","31.3","32.2","32.3","33.3","33.4","33.5"],"bash":["10.2","15.2","15.3","16.2","16.3","17.2","17.3","18.2","18.3","19.3","19.4","23.2","28.2","28.3","29.2","29.3","30.2","30.3","31.2","31.3","32.2","32.3","33.3","33.4"],"index":["10.3","15.4","19.5","19.7","19.12","19.13","23.3","28.4","33.5","33.7","33.12","33.13"],"import":["10.3","10.5","23.3","23.5"],"artplayer":["10.3","10.5","15.4","21.1","23.3","23.5","28.4","30.5","30.15","35.1"],"from":["10.3","10.5","23.5"],"jsx":["10.5","23.5"],"useeffect":["10.5","23.5"],"useref":["10.5","23.5"],"hint":["10.6"],"sometimes":["10.6","21.36"],"your":["10.6"],"file":["10.6"],"will":["10.6","21.44"],"https":["11.0","12.0","13.0","14.0","24.0","25.0","26.0","27.0"],"github":["11.0","12.0","13.0","14.0","24.0","25.0","26.0","27.0"],"com":["11.0","12.0","13.0","14.0","24.0","25.0","26.0","27.0"],"industry":["11.0","24.0"],"forum":["11.0","24.0"],"bilibili":["12.0","25.0"],"data":["12.0","13.0","14.0","15.4","25.0","26.0","27.0","28.4","30.5","30.7","30.9","30.10","30.14"],"dev":["13.0","26.0"],"libs":["13.0","14.0","15.4","26.0","27.0","28.4","30.5","30.7","30.10"],"cdn":["14.0","27.0"],"jsdelivr":["14.0","15.3","16.3","17.3","18.3","19.4","27.0","28.3","29.3","30.3","31.3","32.3","33.4"],"net":["14.0","27.0"],"npm":["14.0","27.0"],"查看完整演示":["15.1","16.1","17.1","18.1","19.2","28.1","29.1","30.1","31.1","32.1","33.2"],"uncompiled":["15.4","28.4","30.5"],"plugin":["15.4","28.4","30.5"],"ads":["15.4","28.4"],"是否启用新的控制器皮肤":["16.5","29.5"],"画质":["17.0","18.0","31.0","32.0"],"控制":["19.0","33.0"],"通过该插件":["19.1","33.1"],"你可以轻松在":["19.1","33.1"],"html":["19.5","19.6","19.7","19.10","19.13","22.1","22.3","22.4","33.5","33.6","33.7","33.10","33.13","35.40","36.1","36.3","36.4"],"doctype":["19.5","33.5"],"从":["19.7","33.7"],"将消息推送到":["19.7","19.12","33.7","33.12"],"iframe":["19.7","19.13","33.7","33.13"],"该函数将在":["19.7","33.7"],"在":["19.8","33.8"],"销毁后":["19.9","33.9"],"注入脚本":["19.11","33.11"],"最常遇到的问题是":["19.13","33.13"],"播放器在":["19.13","33.13"],"里进行网页全屏":["19.13","33.13"],"但在":["19.13","33.13"],"configuration":["20.0","21.44"],"mentioned":["20.0"],"here":["20.0"],"mainly":["20.0"],"refers":["20.0"],"three":["20.0","20.2"],"common":["20.0"],"configurations":["20.0"],"layers":["20.0","34.0"],"controls":["20.0","21.39","34.0","35.39"],"layer":["20.1"],"during":["20.1","20.2","20.3"],"instantiation":["20.1","20.2","20.3"],"such":["20.1"],"as":["20.1","21.4"],"logo":["20.1","34.1"],"or":["20.1"],"advertisement":["20.1"],"control":["20.2"],"warning":["20.2","34.2"],"there":["20.2"],"are":["20.2"],"additional":["20.2"],"options":["20.2"],"for":["20.2"],"position":["20.2","34.2"],"left":["20.2","34.2"],"right":["20.2","34.2"],"positions":["20.2"],"controller":["20.2"],"selector":["20.2","22.1","34.2","36.1"],"object":["20.2","21.37","21.38","21.39","21.40","21.42","21.44","35.37","35.38","35.39","35.40","35.42","35.44"],"default":["21.1","21.2","21.3","21.4","21.5","21.6","21.7","21.8","21.9","21.10","21.11","21.12","21.13","21.14","21.15","21.16","21.17","21.18","21.19","21.20","21.21","21.22","21.23","21.24","21.25","21.26","21.27","21.28","21.29","21.30","21.31","21.32","21.33","21.34","21.35","21.36","21.37","21.38","21.39","21.40","21.41","21.42","21.43","21.44","21.45","21.46","21.47","21.48","21.49","35.1","35.2","35.3","35.4","35.5","35.6","35.7","35.8","35.9","35.10","35.11","35.12","35.13","35.14","35.15","35.16","35.17","35.18","35.19","35.20","35.21","35.22","35.23","35.24","35.25","35.26","35.27","35.28","35.29","35.30","35.31","35.32","35.33","35.34","35.35","35.36","35.37","35.38","35.39","35.40","35.41","35.42","35.43","35.44","35.45","35.46","35.47","35.48","35.49"],"attached":["21.1"],"source":["21.2"],"unique":["21.3"],"undefined":["21.4","35.4"],"constructor":["21.4"],"accepts":["21.4"],"second":["21.4"],"which":["21.4","21.44"],"posters":["21.5"],"f00":["21.7","35.7"],"false":["21.9","21.10","21.11","21.12","21.13","21.14","21.15","21.16","21.17","21.18","21.19","21.21","21.23","21.24","21.25","21.26","21.27","21.39","21.45","21.46","21.47","21.48","21.49","35.11","35.12","35.13","35.15","35.16","35.17","35.18","35.25","35.27","35.45","35.47","35.49"],"display":["21.18","21.33","21.34"],"true":["21.20","21.22","21.28","35.20"],"use":["21.20","21.27","21.47"],"shortcut":["21.20"],"if":["21.22"],"subtitle":["21.25"],"mini":["21.26"],"ssr":["21.27","35.27"],"initialize":["21.29","21.30","21.31","21.32","21.35"],"customized":["21.29","21.30","21.31","21.32","21.35"],"on":["21.34","21.37"],"because":["21.36"],"different":["21.36"],"mobile":["21.36"],"devices":["21.36"],"have":["21.36"],"many":["21.36"],"differences":["21.36"],"limitations":["21.36"],"you":["21.36","22.0"],"want":["21.36"],"image":["21.37"],"support":["21.38"],"preload":["21.39"],"it":["21.40","21.41"],"used":["21.40","21.41"],"replace":["21.40"],"indicate":["21.41"],"format":["21.41"],"needs":["21.41"],"by":["21.42"],"matching":["21.42"],"s":["21.42"],"navigator":["21.43","35.43"],"language":["21.43","35.43"],"customize":["21.44"],"be":["21.44"],"deeply":["21.44"],"merged":["21.44"],"automatic":["21.47"],"need":["22.0"],"open":["22.0"],"settings":["22.0"],"list":["22.1"],"describe":["22.1","22.3","22.4"],"icon":["22.1","22.3","22.4","36.1","36.3","36.4"],"onselect":["22.1","34.2","36.1"],"nesting":["22.2"],"var":["22.2","30.15","34.1","36.2"],"button":["22.3"],"slider":["22.4"],"有时你的":["23.6"],"文件会丢失":["23.6"],"typescript":["23.6"],"danmuku":["30.4","30.11"],"弹幕库":["30.4"],"支持数组":["30.4"],"xml":["30.4","30.6"],"promise返回数组":["30.4"],"speed":["30.4","30.11"],"弹幕持续时间":["30.4"],"范围在":["30.4"],"opacity":["30.4","30.11"],"通过方法":["30.8","30.10","30.11"],"进行隐藏或者显示弹幕":["30.8"],"通过属性":["30.9"],"判断当前弹幕是隐藏或者显示":["30.9"],"发送一条实时弹幕":["30.10"],"实时改变弹幕配置":["30.11"],"支持属性有":["30.11"],"fontsize":["30.11"],"color":["30.11"],"mode":["30.11"],"margin":["30.11"],"通过":["30.12"],"方法可以重载弹幕源":["30.12"],"或者切换新弹幕":["30.12"],"用于清空当前显示的弹幕":["30.13"],"用于获取当前弹幕配置":["30.14"],"new":["30.15"],"app":["30.15"],"assets":["30.15"],"sample":["30.15"],"这里所说的组件配置主要是指":["34.0"],"contextmenu":["34.0"],"这三个共用的配置":["34.0"],"实例化时添加一个层":["34.1"],"例如可以添加":["34.1"],"或者":["34.1"],"广告":["34.1"],"等等":["34.1"],"img":["34.1"],"实例化时添加一个控制器":["34.2"],"还有三个额外的选项":["34.2"],"控制控制器出现的左右位置":["34.2"],"选择列表的对象数组":["34.2"],"选择列表的元素被点击时触发的函数":["34.2"],"实例化时添加一个右键菜单":["34.3"],"播放器挂载的":["35.1"],"视频源地址":["35.2"],"播放器的唯一标识":["35.3"],"构造函数接受一个函数作为第二个参数":["35.4"],"播放器初始化成功且视频可以播放时触发":["35.4"],"ready":["35.4"],"视频的海报":["35.5"],"视频标题":["35.6"],"是否自动播放":["35.11"],"是否使用快捷键":["35.20"],"字幕时间偏移":["35.25"],"是否使用":["35.27"],"初始化自定义的":["35.29","35.30","35.31","35.35"],"层":["35.29"],"设置面板":["35.30"],"右键菜单":["35.31"],"初始化自定义的底部":["35.32"],"控制栏":["35.32"],"是否在底部控制栏里显示":["35.33"],"画质选择":["35.33"],"列表":["35.33"],"在进度条上显示":["35.34"],"高亮信息":["35.34"],"类型":["35.34","35.37","36.1","36.3","36.4"],"插件":["35.35"],"因为不同的移动设备存在多种差异和限制":["35.36"],"有时候你希望在某些移动设备上不使用本播放器":["35.36"],"而是直接使用原生的功能时":["35.36"],"可以通过该选项控制":["35.36"],"在进度条上设置":["35.37"],"预览图":["35.37"],"设置视频的字幕":["35.38"],"支持字幕格式":["35.38"],"vtt":["35.38"],"srt":["35.38"],"ass":["35.38"],"用于替换默认图标":["35.40"],"支持":["35.40"],"用于指明视频的格式":["35.41"],"需要配合":["35.41"],"customtype":["35.41"],"通过视频的":["35.42"],"自定义":["35.44"],"配置":["35.44"],"该配置会和自带的":["35.44"],"进行深度合并":["35.44"],"新增你的语言":["35.44"],"是否使用自动":["35.47"],"回放功能":["35.47"],"需先打开设置面板":["36.0"],"播放器默认自带四个设置项":["36.0"],"flip":["36.0"],"playbackrate":["36.0"],"描述":["36.1","36.3","36.4"],"元素的":["36.1","36.3","36.4"],"元素的图标":["36.1","36.4"],"元素列表":["36.1"],"元素点击事件":["36.1"]},{"0":["4.8","9.8","9.36","9.37","13.0","14.0","26.0","27.0","30.4"],"1":["4.8","4.36","4.37","9.36","9.37","12.0","25.0"],"2":["11.0","12.0","14.0","24.0","25.0","27.0"],"3":["13.0","21.2","26.0","35.2"],"4":["11.0","20.3","21.47","24.0","35.44"],"5":["11.0","21.29","21.30","24.0","35.29","35.30"],"6":["2.0","7.0","12.0","25.0"],"7":["9.14","35.8"],"8":["13.0","26.0"],"9":["35.44"],"10":["2.7","7.7","34.2"],"11":["2.27","7.27"],"13":["2.30","7.30","14.0","20.3","27.0"],"21":["14.0","27.0"],"22":["20.1"],"23":["21.29","35.29"],"24":["14.0","27.0"],"25":["30.4"],"28":["14.0","27.0"],"34":["21.30","35.30"],"code":["0.1","0.2","0.3","0.5","0.6","0.7","0.8","0.9","0.10","0.11","0.13","0.14","0.15","0.16","0.17","1.1","1.6","2.1","2.2","2.3","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.12","4.14","4.15","4.18","4.19","4.20","4.21","4.23","4.25","4.27","4.28","4.29","4.31","4.32","4.33","4.34","4.35","5.1","5.2","5.3","5.5","5.6","5.7","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.16","5.17","6.1","6.6","7.1","7.2","7.3","7.4","7.5","7.6","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.17","7.18","7.19","7.20","7.21","7.22","7.23","7.24","7.25","7.26","7.28","7.29","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.1","9.2","9.14","9.18","9.29","9.35","16.5","20.2","21.1","21.8","21.11","21.20","21.29","21.30","21.31","21.32","21.35","21.44","21.47","22.1","29.5","30.8","30.11","35.1","35.4","35.11","35.20","35.30","35.31","35.32","35.35","35.40","35.44","35.47","36.1"],"run":["0.2","0.5","0.6","0.7","0.8","0.9","0.10","0.11","0.12","0.13","0.14","0.15","0.16","0.17","1.1","1.6","2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.13","2.14","2.15","2.16","2.19","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","4.1","4.2","4.3","4.7","4.9","4.12","4.14","4.15","4.16","4.17","4.18","4.19","4.20","4.21","4.23","4.25","4.27","4.28","4.29","4.30","4.31","4.32","4.33","4.34","4.35","5.2","5.5","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.15","5.16","5.17","6.1","6.6","7.1","7.3","7.4","7.5","7.8","7.9","7.10","7.11","7.13","7.14","7.15","7.16","7.19","7.26","7.31","7.32","7.33","7.34","7.35","7.36","7.37","9.1","9.2","9.3","9.14","9.18","9.20","9.29","9.35","16.5","20.2","21.1","21.8","21.11","21.20","21.30","21.31","21.32","21.35","21.44","21.47","22.1","29.5","30.8","30.11","35.1","35.4","35.5","35.8","35.11","35.20","35.31","35.32","35.35","35.40","35.44","35.47","36.0","36.1"],"js":["0.2","0.3","0.5","0.14","0.17","2.2","2.7","2.18","2.23","2.27","2.28","2.29","2.30","5.2","5.3","5.5","5.14","5.17","7.2","7.7","7.18","7.23","7.27","7.28","7.29","7.30","9.14","19.7","19.12","20.2","21.1","21.2","21.29","21.30","21.32","21.47","22.1","30.5","30.7","30.9","30.10","30.12","33.7","33.12","34.2","35.2","35.4","35.29","35.30","35.32","35.44","36.1","36.4"],"var":["0.3","0.5","2.0","2.30","3.0","5.3","5.5","7.0","7.30","8.0","9.14","15.4","19.7","20.1","20.2","20.3","21.2","21.29","21.30","22.1","28.4","30.5","33.7","34.2","34.3","35.2","35.29","35.30","35.44","36.1"],"hover":["0.4","5.4"],"方法用于代理自定义的":["0.4","5.4"],"loadimg":["0.4","5.4"],"方法用于监听图片的":["0.4","5.4"],"load":["0.4","5.4"],"加载事件":["0.4","5.4"],"div":["0.4","0.7","0.9","0.10","0.11","0.12","0.13","0.15","0.16","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","4.5","4.6","4.7","4.8","4.9","4.10","4.12","4.13","4.15","4.16","4.17","4.18","4.19","4.20","4.21","4.22","4.23","4.24","4.26","4.27","4.28","4.29","4.30","4.31","4.32","4.33","4.34","4.38","4.40","5.4","5.7","5.9","5.10","5.11","5.12","5.13","5.15","5.16","6.2","6.3","6.4","6.5","6.7","6.8","6.9","6.10","6.11","6.12","9.1","9.2","9.3","9.7","9.18","9.20","9.25","9.29","9.32","9.35","10.4","20.2","21.1","21.8","21.11","21.20","21.31","21.32","21.35","21.44","21.47","22.1","23.4","30.11","35.1","35.3","35.4","35.5","35.8","35.9","35.10","35.11","35.14","35.18","35.20","35.22","35.26","35.35","35.40","35.44","35.46","35.47","36.0","36.1"],"classname":["0.5","0.6","0.7","0.8","0.9","0.10","0.11","0.12","0.13","0.14","0.15","0.16","1.1","1.2","1.3","1.4","1.5","1.6","1.7","1.8","1.9","1.10","1.12","4.1","4.2","4.3","4.5","4.6","4.7","4.8","4.9","4.12","4.14","4.15","4.16","4.17","4.18","4.19","4.20","4.21","4.22","4.23","4.24","4.25","4.27","4.28","4.29","4.30","4.31","4.32","4.33","4.34","4.35","4.40","5.5","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.15","5.16","6.1","6.2","6.3","6.4","6.5","6.6","6.7","6.8","6.9","6.10","6.12","9.1","9.2","9.3","9.18","9.20","9.25","9.29","9.35","16.5","20.2","21.1","21.8","21.11","21.20","21.31","21.32","21.35","21.44","21.47","22.1","29.5","30.8","30.11","35.1","35.3","35.4","35.5","35.8","35.10","35.11","35.14","35.18","35.20","35.31","35.32","35.35","35.40","35.44","35.46","35.47","36.0","36.1"],"art":["0.5","2.0","5.5","7.0","10.3","10.5","15.4","20.1","20.2","20.3","21.2","22.2","23.3","28.4","30.5","34.1","34.2","34.3","35.2","36.1"],"new":["0.5","2.0","3.0","5.5","7.0","8.0","10.3","15.4","20.1","20.3","21.2","22.2","23.3","28.4","34.1","34.2","34.3","35.2","36.1","36.2"],"artplayer":["0.5","2.0","3.0","5.5","7.0","8.0","10.4","16.4","16.5","17.2","18.2","19.5","20.1","20.3","21.2","22.2","23.4","29.4","29.5","30.6","30.7","30.8","30.9","30.10","30.12","30.13","30.14","31.2","32.2","33.5","34.1","34.2","34.3","35.2","36.1","36.2"],"container":["0.5","2.0","3.0","5.5","7.0","8.0","10.3","15.4","20.1","20.3","21.2","21.12","22.2","23.3","28.4","34.1","34.2","34.3","35.12","36.1","36.2"],"方法用于更新":["0.7","5.7"],"对象":["0.7","5.7"],"属性用于切换是否显示全部层":["0.9","5.9"],"属性用于切换是否显示全部控制器":["0.10","5.10"],"属性用于切换是否显示全部菜单":["0.11","5.11"],"switch":["0.12","5.12","21.19","22.3","36.3"],"方法设置当前字幕地址和选项":["0.12","5.12"],"属性用于切换是否显示加载层":["0.13","5.13"],"属性用于切换是否显示遮罩层":["0.15","5.15"],"update":["0.16","5.16"],"方法动态更新设置项":["0.16","5.16"],"是指挂载在":["1.0","6.0"],"字符串":["1.11","6.11"],"width":["1.17","1.23","1.24","6.17","6.23","6.24","22.1"],"height":["1.18","6.18","9.30"],"icon":["1.20","6.20","21.40"],"mobile":["1.21","1.22","6.21","6.22"],"max":["1.28","1.31","6.28","6.31"],"min":["1.29","6.29","13.0","14.0","26.0","27.0"],"timeout":["1.30","6.30"],"time":["1.32","1.33","1.34","1.38","1.40","6.32","6.33","6.34","6.38","6.40","9.5","9.6","9.7","9.13","21.34","35.34"],"playbackrate":["1.35","1.36","6.35","6.36"],"orientation":["1.37","6.37"],"value":["1.39","6.39"],"ratio":["1.41","6.41","9.28","21.17"],"in":["1.48","6.48","9.5","9.6","9.7","9.20","9.29","21.6","21.14","21.18","21.21","21.22","21.33","21.44"],"app":["2.0","3.0","7.0","8.0","10.3","15.4","20.1","20.3","21.2","22.2","28.4","34.1","34.2","34.3","36.1","36.2"],"url":["2.0","3.0","4.10","7.0","8.0","10.3","14.0","15.4","20.1","20.3","21.37","21.38","22.2","27.0","28.4","34.1","34.2","34.3","35.37","35.38","36.1","36.2"],"assets":["2.0","3.0","7.0","8.0","15.4","20.1","20.3","21.2","21.29","22.2","28.4","34.1","34.2","34.3","35.29","36.2"],"sample":["2.0","3.0","7.0","8.0","15.4","20.1","20.3","21.2","21.29","22.2","28.4","34.1","34.2","34.3","35.29","36.2"],"mp4":["2.0","3.0","7.0","8.0","20.1","30.15","34.1","34.2","34.3","36.2"],"on":["2.0","3.0","7.0","8.0","21.36","21.45","22.4"],"canplay":["2.0","7.0"],"浏览器可以播放媒体文件了":["2.39","7.39"],"浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束":["2.40","7.40"],"offlineaudiocontext":["2.41","7.41"],"duration":["2.42","7.42"],"媒体内容变为空":["2.43","7.43"],"例如":["2.43","7.43"],"视频停止播放":["2.44","7.44"],"获取媒体数据时出错":["2.45","7.45"],"media":["2.46","7.46"],"已加载元数据":["2.47","7.47"],"播放已暂停":["2.48","7.48"],"播放已开始":["2.49","7.49"],"由于缺乏数据而暂停或延迟后":["2.50","7.50"],"在浏览器加载资源时周期性触发":["2.51","7.51"],"播放速率发生变化":["2.52","7.52"],"跳帧":["2.53","2.54","7.53","7.54"],"用户代理":["2.55","7.55"],"媒体数据加载已暂停":["2.56","7.56"],"currenttime":["2.57","7.57"],"音量发生变化":["2.58","7.58"],"由于暂时缺少数据":["2.59","7.59"],"dosomething":["3.0","8.0"],"video":["3.0","4.31","4.36","4.37","8.0","9.5","9.6","9.8","9.9","9.12","9.13","9.15","9.16","9.17","9.21","9.23","9.24","9.30","9.31","9.33","14.0","20.1","20.3","21.4","21.15","21.16","21.17","21.18","21.39","21.46","22.2","27.0","30.15","34.1","34.2","34.3","35.42","36.2"],"plugins":["3.0","8.0","30.15"],"ready":["3.0","8.0"],"可以在实例化之后再加载插件的函数":["3.0","8.0"],"销毁播放器":["4.4"],"接受一个参数表示是否销毁后同时移除播放器的":["4.4"],"html":["4.4","19.1","19.8","19.12","21.40","33.1","33.8","33.12","35.27","35.33"],"默认为":["4.4"],"true":["4.4","4.24","4.30","30.15","35.22","35.28"],"视频时间跳转":["4.5"],"单位秒":["4.5","4.6","4.7","35.34"],"视频时间快进":["4.6"],"视频时间快退":["4.7"],"设置和获取视频音量":["4.8"],"范围在":["4.8","35.25"],"string":["4.9","20.0","21.37","21.38","21.40","35.33","35.34","35.37","35.38"],"设置和获取视频地址":["4.9"],"类似":["4.10","4.11","4.13","4.39"],"但会执行一些优化操作":["4.10"],"函数支持两个参数":["4.10","4.11"],"第一个为新的视频地址":["4.10","4.11"],"第二个为可选新的视频名字":["4.10","4.11"],"switchurl":["4.11","9.11"],"但会带上之前的播放进度":["4.11"],"设置和获取视频是否静音":["4.12"],"设置和获取视频当前时间":["4.13"],"设置时间时和":["4.13"],"seek":["4.13"],"但它不会触发额外的事件":["4.13"],"返回的是一个":["4.16","4.17"],"promise":["4.16","4.17"],"设置和获取播放器窗口全屏":["4.18"],"设置和获取播放器网页全屏":["4.19"],"设置和获取播放器画中画模式":["4.20"],"只有在视频播放前才能看到海报效果":["4.21"],"boolean":["4.22","9.22","20.0","22.3","34.0","35.33","36.3"],"设置和获取播放器迷你模式":["4.22"],"获取视频是否正在播放中":["4.23"],"设置视频是否自适应尺寸":["4.24"],"设置为":["4.24","4.30"],"之后它会只执行一次":["4.24","4.30"],"设置和获取播放器翻转":["4.26"],"支持":["4.26"],"normal":["4.26","9.26"],"horizontal":["4.26"],"vertical":["4.26"],"设置和获取播放器播放速度":["4.27"],"设置和获取播放器长宽比":["4.28"],"该属性可以自动计算出并设置视频的高度":["4.30"],"元素的属性":["4.31"],"动态获取和设置播放器标题":["4.32"],"动态获取和设置视频类型":["4.33"],"动态获取和设置播放器主题颜色":["4.34"],"常配合":["4.36","4.37"],"timeupdate":["4.36","4.37"],"事件使用":["4.36","4.37"],"和":["4.38","35.6","35.7","35.15","35.16","35.17"],"removeeventlistener":["4.38","9.38"],"当使用":["4.38"],"来处理事件":["4.38"],"播放器销毁时也会自动销毁该事件":["4.38"],"document":["4.39","9.39"],"queryselector":["4.39","9.39"],"但被查询的对象局限于当前播放器内":["4.39"],"可以避免同类名的错误":["4.39"],"元素":["4.40"],"here":["9.0"],"and":["9.3","9.8","9.9","9.12","9.19","9.22","9.26","9.27","9.28","9.30","9.32","9.33","9.34","21.4","21.40"],"pause":["9.3"],"the":["9.4","9.12","9.13","9.15","9.21","9.23","9.24","9.28","9.31","10.6","20.2","21.5","21.9","21.13","21.15","21.16","21.17","21.18","21.19","21.21","21.22","21.23","21.24","21.25","21.28","21.40","21.43","21.48","21.49"],"player":["9.4","9.18","9.19","9.20","9.22","9.25","9.26","9.27","9.28","9.32","9.34","9.38","10.5","21.1","21.3","21.4","21.7","21.8","21.12","21.13","21.23","21.24","21.36","21.48","22.0","23.5"],"accept":["9.4"],"a":["9.4","21.45"],"indicating":["9.4"],"whether":["9.4","9.12","9.23","20.0","21.10","21.14","21.28"],"jump":["9.5"],"seconds":["9.5","9.7","9.29"],"fast":["9.6"],"rewind":["9.7"],"get":["9.8","9.9","9.12","9.19","9.22","9.26","9.27","9.33"],"range":["9.8","9.36","9.37","21.25","36.4"],"set":["9.9","9.22","9.27","9.30","9.31","9.32","9.33","9.34"],"to":["9.10","9.11","9.38","9.39","10.3","21.10","21.14","21.15","21.16","21.17","21.19","21.21","21.23","21.24","21.28","21.36","21.42","21.45","21.46","21.49"],"that":["9.10"],"of":["9.10","9.13","9.15","9.16","9.17","9.18","9.19","9.20","9.25","9.30","9.31","9.40","10.6","21.3","21.8","21.25","21.36"],"but":["9.10","9.11","9.39"],"some":["9.10","21.36"],"optimization":["9.10"],"operations":["9.10"],"will":["9.10","9.38","21.5","21.12","21.39"],"be":["9.10","21.4","21.41"],"with":["9.11","9.36","9.37","21.25","21.41","21.44"],"previous":["9.11"],"playback":["9.11","9.27","9.29","9.37","21.16"],"progress":["9.11","21.9","21.26","21.37"],"is":["9.12","9.23","9.24","9.30","9.38","9.39","20.2","21.4","21.7","21.27","21.42"],"current":["9.13","9.15","9.16","9.17"],"setting":["9.13","9.24","30.15"],"screenshot":["9.16","9.17"],"screen":["9.18","9.19"],"window":["9.18","21.23","35.36"],"full":["9.19","21.24"],"picture":["9.20","21.21"],"mode":["9.20","21.9","21.27","30.4"],"posters":["9.21"],"you":["9.21","21.27"],"can":["9.21","9.30","21.4"],"only":["9.21","21.5","21.26"],"see":["9.21"],"effect":["9.21"],"adaptive":["9.24"],"size":["9.24"],"after":["9.24","9.30"],"coordinate":["9.25"],"information":["9.25"],"rollover":["9.26"],"support":["9.26"],"speed":["9.27","21.16"],"obtain":["9.28"],"aspect":["9.28","21.17"],"sequential":["9.29"],"automatically":["9.30","21.11"],"calculate":["9.30"],"it":["9.30"],"attributes":["9.31","21.39"],"element":["9.31","20.2"],"titles":["9.32"],"dynamically":["9.32","9.33","9.34"],"types":["9.33"],"color":["9.34","21.7","30.4"],"cache":["9.36"],"when":["9.38","20.2","21.4","21.5","21.26"],"used":["9.38"],"process":["9.38"],"similar":["9.39"],"bash":["10.1","23.1"],"npm":["10.1","15.2","16.2","17.2","18.2","19.3","23.1","28.2","29.2","30.2","31.2","32.2","33.3"],"jsdelivr":["10.2","23.2"],"net":["10.2","15.3","16.3","17.3","18.3","19.4","23.2","28.3","29.3","30.3","31.3","32.3","33.4"],"https":["10.2","15.3","16.3","17.3","18.3","19.4","23.2","28.3","29.3","30.3","31.3","32.3","33.4"],"const":["10.3","10.5","23.3","23.5"],"path":["10.3"],"template":["10.4","23.4"],"ref":["10.4"],"export":["10.5","23.5"],"default":["10.5","22.3","22.4","23.5"],"function":["10.5","14.0","20.2","21.15","21.18","21.47","22.1","22.3","22.4","23.5","27.0","36.3","36.4"],"option":["10.5","23.5"],"getinstance":["10.5","23.5"],"rest":["10.5","23.5"],"artref":["10.5","23.5"],"lose":["10.6"],"type":["10.6","20.0"],"prompt":["10.6","22.1"],"typescript":["10.6"],"data":["11.0","16.4","16.5","24.0","29.4","29.5","30.6","30.8","30.11","30.12","30.13"],"libs":["11.0","12.0","16.4","16.5","24.0","25.0","29.4","29.5","30.6","30.8","30.9","30.11","30.12","30.13","30.14"],"cdnjs":["11.0","12.0","13.0","24.0","25.0","26.0"],"cloudflare":["11.0","12.0","13.0","24.0","25.0","26.0"],"ajax":["11.0","12.0","13.0","24.0","25.0","26.0"],"dashjs":["11.0","24.0"],"all":["11.0","24.0"],"beta":["13.0","26.0"],"index":["14.0","19.1","19.8","19.9","27.0","30.5","30.7","30.9","30.10","30.12","30.14","33.1","33.8","33.9","34.2"],"playtorrent":["14.0","27.0"],"install":["15.2","16.2","17.2","18.2","19.3","28.2","29.2","30.2","31.2","32.2","33.3"],"uncompiled":["16.4","16.5","29.4","29.5","30.6","30.7","30.8","30.9","30.10","30.11","30.12","30.13","30.14"],"plugin":["16.4","16.5","29.4","29.5","30.6","30.7","30.8","30.9","30.10","30.12","30.13","30.14"],"里控制跨域":["19.1","33.1"],"head":["19.5","33.5"],"title":["19.5","33.5"],"meta":["19.5","33.5"],"接口":["19.6","19.10","33.6","33.10"],"内部运行":["19.7","33.7"],"同时它也能用于异步获取":["19.7","33.7"],"里的值":["19.7","33.7"],"warning":["19.10","33.10"],"接收来自":["19.11","33.11"],"iframe":["19.12","33.12"],"是不生效的":["19.13","33.13"],"这时候只要监听":["19.13","33.13"],"里的":["19.13","33.13"],"fullscreenweb":["19.13","33.13"],"事件并通知到":["19.13","33.13"],"contextmenu":["20.0"],"property":["20.0","21.33","21.34","21.37","21.38"],"describe":["20.0","21.33","21.34","21.37","21.38"],"disable":["20.0","34.0"],"components":["20.0"],"name":["20.0","34.0","34.1","34.2"],"unique":["20.0"],"img":["20.1","21.29","35.29"],"png":["20.1","34.1"],"selection":["20.2"],"list":["20.2","21.33"],"onselect":["20.2"],"triggered":["20.2","21.4","22.4"],"an":["20.2"],"clicked":["20.2"],"identifier":["21.3"],"currently":["21.3","21.6","21.7","21.43"],"initialized":["21.4"],"successfully":["21.4"],"played":["21.4"],"just":["21.4"],"appear":["21.5"],"which":["21.6","21.39"],"appears":["21.6","21.26"],"using":["21.9","21.36"],"live":["21.9"],"mute":["21.10"],"by":["21.10","21.12"],"fill":["21.12"],"entire":["21.12"],"scrolls":["21.13"],"outside":["21.13"],"play":["21.14"],"display":["21.15","21.16","21.17","21.19","21.21","21.23","21.24","21.43","21.45","21.49"],"bottom":["21.18","21.33"],"control":["21.18","21.33"],"button":["21.19","21.45","21.49","34.2"],"keys":["21.20"],"there":["21.22"],"are":["21.22"],"multiple":["21.22"],"players":["21.22"],"offset":["21.25"],"5s":["21.25","35.25"],"bar":["21.26","21.33","21.34","21.37"],"mount":["21.27"],"useful":["21.27"],"if":["21.27"],"want":["21.27"],"render":["21.27"],"use":["21.28","21.36"],"number":["21.34","22.1","35.34","35.37"],"native":["21.36"],"functions":["21.36"],"directly":["21.36"],"instead":["21.36"],"this":["21.36"],"thumbnail":["21.37"],"format":["21.38"],"vtt":["21.38"],"srt":["21.38"],"ass":["21.38"],"metadata":["21.39","35.39"],"more":["21.39"],"supports":["21.40"],"together":["21.41"],"customtype":["21.41"],"decoding":["21.42"],"right":["21.42"],"handed":["21.42"],"over":["21.42"],"tolowercase":["21.43","35.43"],"built":["21.44"],"add":["21.44","21.46"],"your":["21.44","34.2"],"language":["21.44"],"long":["21.46"],"press":["21.46"],"rotate":["21.48"],"according":["21.48"],"panel":["22.0"],"first":["22.0"],"has":["22.0"],"four":["22.0"],"click":["22.1"],"event":["22.1","22.4"],"tooltip":["22.1","36.1","36.3","36.4"],"text":["22.1","35.34"],"state":["22.3","22.4"],"onswitch":["22.3","36.3"],"array":["22.4","36.4"],"onrange":["22.4","36.4"],"completion":["22.4"],"onchange":["22.4","36.4"],"from":["23.3"],"的类型提示":["23.6"],"这时候你可以手动导入类型":["23.6"],"变量":["23.6"],"弹幕透明度":["30.4"],"fontsize":["30.4"],"字体大小":["30.4"],"支持数字和百分比":["30.4"],"ffffff":["30.4"],"默认字体颜色":["30.4"],"默认模式":["30.4"],"danmuku":["30.5","30.7","30.9","30.10","30.12","30.13","30.14","30.15"],"antioverlap":["30.11"],"synchronousplayback":["30.11"],"filter":["30.11"],"locktime":["30.11"],"beforeemit":["30.11"],"artplayerplugindanmuku":["30.15"],"xml":["30.15"],"类型":["34.0","35.33","35.38"],"描述":["34.0","35.33","35.34","35.37","35.38"],"是否禁用组件":["34.0"],"layer":["34.1"],"容器":["35.1"],"目前只用于记忆播放":["35.3"],"autoplayback":["35.3"],"事件一样":["35.4"],"只会出现在播放器初始化且未播放的状态下":["35.5"],"目前会出现在":["35.6"],"视频截图":["35.6","35.18"],"迷你模式":["35.6"],"下":["35.6"],"播放器主题颜色":["35.7"],"目前用于":["35.7"],"进度条":["35.7"],"播放器的默认音量":["35.8"],"false":["35.9","35.10","35.14","35.19","35.21","35.23","35.24","35.26","35.39","35.46","35.48"],"使用直播模式":["35.9"],"会隐藏进度条和播放时间":["35.9"],"是否默认静音":["35.10"],"播放器的尺寸默认会填充整个":["35.12"],"容器尺寸":["35.12"],"所以经常出现黑边":["35.12"],"该值能自动调整播放器尺寸以隐藏黑边":["35.12"],"当播放器滚动到浏览器视口以外时":["35.13"],"自动进入":["35.13"],"迷你播放":["35.13"],"模式":["35.13","35.28"],"是否循环播放":["35.14"],"是否显示视频翻转功能":["35.15"],"目前只出现在":["35.15"],"设置面板":["35.15","35.16","35.17","35.19","35.25"],"右键菜单":["35.15","35.16","35.17"],"是否显示视频播放速度功能":["35.16"],"会出现在":["35.16","35.17"],"是否显示视频长宽比功能":["35.17"],"是否在底部控制栏里显示":["35.18","35.19","35.21"],"功能":["35.18"],"的开关按钮":["35.19","35.21"],"画中画":["35.21"],"假如页面里同时存在多个播放器":["35.22"],"是否只能让一个播放器播放":["35.22"],"是否在底部控制栏里显示播放器":["35.23","35.24"],"窗口全屏":["35.23"],"按钮":["35.23","35.24","35.49"],"网页全屏":["35.24"],"出现在":["35.25"],"迷你进度条":["35.26"],"只在播放器失去焦点后且正在播放时出现":["35.26"],"挂载模式":["35.27"],"假如你希望在播放器挂载前":["35.27"],"就提前渲染好播放器所需的":["35.27"],"时有用":["35.27"],"你可以通过":["35.27"],"在移动端是否使用":["35.28"],"默认画质":["35.33"],"画质名字":["35.33"],"高亮时间":["35.34"],"高亮文本":["35.34"],"白名单是一个数组类型":["35.36"],"分别与":["35.36"],"navigator":["35.36"],"useragent":["35.36"],"进行匹配":["35.36","35.42"],"只要其中一项匹配成功则启用播放器":["35.36"],"预览图地址":["35.37"],"预览图数量":["35.37"],"column":["35.37"],"字幕地址":["35.38"],"字幕类型":["35.38"],"可选":["35.38"],"preload":["35.39"],"更多视频属性":["35.39"],"这些属性将直接写入视频元素里":["35.39"],"字符串和":["35.40"],"htmlelement":["35.40"],"一起使用":["35.41"],"默认视频的格式就是视频地址的后缀":["35.41"],"如":["35.41"],"m3u8":["35.41"],"mkv":["35.41"],"ts":["35.41"],"但有时候视频地地址没有正确的后缀":["35.41"],"把视频解码权交给第三方程序进行处理":["35.42"],"处理的函数能接收三个参数":["35.42"],"视频":["35.42"],"dom":["35.42"],"默认显示语言":["35.43"],"目前支持":["35.43"],"en":["35.43"],"zh":["35.43"],"是否在移动端显示一个":["35.45"],"锁定按钮":["35.45"],"用于隐藏底部":["35.45"],"控制栏":["35.45"],"是否在移动端添加长按视频快进功能":["35.46"],"是否在移动端的网页全屏时":["35.48"],"根据视频尺寸和视口尺寸":["35.48"],"旋转播放器":["35.48"],"是否显示":["35.49"],"当前只有部分浏览器支持该功能":["35.49"],"aspectratio":["36.0"],"subtitleoffset":["36.0"],"列表宽度":["36.1"],"提示文本":["36.1","36.3","36.4"],"元素的图标":["36.3"],"按钮默认状态":["36.3"],"按钮切换事件":["36.3"],"默认状态数组":["36.4"],"完成时触发的事件":["36.4"],"变化时触发的事件":["36.4"]},{"0":["36.4"],"1":["9.8","22.4","36.4"],"2":["21.1","35.1"],"4":["21.8","21.11","21.20","21.31","21.32","21.44","35.11","35.20","35.31","35.32","35.40","35.47"],"5":["21.47","22.4","35.47","36.4"],"6":["2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","7.1","7.3","7.4","7.5","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.26","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38"],"7":["2.19","2.21","2.22","2.24","2.25","4.14","4.25","4.30","7.19","7.21","7.22","7.24","7.25","21.4","35.4","35.40"],"8":["2.17","2.20","4.1","4.12","4.19","4.27","4.28","4.29","4.31","4.32","4.33","4.34","7.17","7.20","9.29","19.5","33.5"],"9":["2.28","2.29","4.18","4.20","4.21","7.28","7.29","9.18","9.20","21.4","21.44","35.4"],"10":["2.2","2.6","2.18","2.23","4.35","7.2","7.6","7.18","7.23","9.35","20.2","22.4","36.4"],"11":["4.2","4.3","4.19","9.2"],"12":["21.31","35.31"],"15":["21.35","35.35"],"16":["21.32","35.32"],"17":["3.0","8.0"],"18":["11.0","24.0"],"19":["12.0","25.0"],"21":["11.0","13.0","24.0","26.0"],"22":["12.0","25.0"],"24":["13.0","26.0"],"25":["11.0","24.0"],"26":["12.0","25.0"],"28":["13.0","26.0"],"250":["22.1","36.1"],"是指挂载在":["0.0","4.0","5.0"],"js":["0.1","0.4","0.6","0.7","0.8","0.9","0.10","0.11","0.12","0.13","0.15","0.16","1.1","2.1","2.3","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.19","2.20","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.9","4.10","4.12","4.14","4.15","4.16","4.17","4.18","4.19","4.20","4.21","4.23","4.24","4.25","4.27","4.28","4.29","4.30","4.31","4.32","4.33","4.34","4.35","4.38","5.1","5.4","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.15","5.16","6.1","7.1","7.3","7.4","7.5","7.6","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.17","7.19","7.20","7.21","7.22","7.24","7.25","7.26","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.1","9.2","9.3","9.18","9.20","9.25","9.29","9.35","16.4","16.5","21.4","21.8","21.11","21.20","21.31","21.35","21.44","22.4","29.4","29.5","30.6","30.8","30.11","30.13","30.14","35.1","35.8","35.11","35.20","35.31","35.34","35.35","35.40","35.47","36.0","36.3"],"var":["0.1","0.2","0.4","0.6","0.7","0.8","0.9","0.10","0.11","0.12","0.13","0.14","0.15","0.16","0.17","2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.27","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.2","4.3","4.12","4.14","4.18","4.20","4.21","4.25","4.27","4.28","4.29","4.31","4.32","4.33","4.34","4.35","5.1","5.2","5.4","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.15","5.16","5.17","7.1","7.2","7.3","7.4","7.5","7.6","7.7","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.17","7.18","7.19","7.20","7.21","7.22","7.23","7.24","7.25","7.26","7.27","7.28","7.29","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.2","9.18","9.20","9.29","14.0","16.5","21.1","21.4","21.8","21.11","21.20","21.31","21.32","21.44","21.47","27.0","29.5","30.7","30.8","30.9","30.10","30.11","30.12","30.14","35.1","35.4","35.11","35.20","35.31","35.32","35.40","35.47","36.3"],"art":["0.1","0.2","0.3","0.6","0.7","0.8","0.9","0.10","0.11","0.14","0.16","0.17","2.2","2.6","2.7","2.12","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.27","2.28","2.29","2.30","2.38","4.14","4.18","4.20","4.21","4.25","4.29","5.1","5.2","5.3","5.6","5.7","5.8","5.9","5.10","5.11","5.14","5.16","5.17","7.2","7.6","7.7","7.12","7.17","7.18","7.20","7.21","7.22","7.23","7.24","7.25","7.27","7.28","7.29","7.30","7.38","9.14","9.18","9.20","9.29","11.0","13.0","14.0","19.7","21.1","21.8","21.11","21.20","21.29","21.30","21.31","21.32","21.44","21.47","22.1","23.5","23.6","24.0","26.0","27.0","30.7","30.9","30.10","30.11","30.12","33.7","35.1","35.4","35.20","35.29","35.30","35.31","35.32","35.35","35.40","35.42","35.44","35.47","36.3"],"new":["0.1","0.2","0.3","0.7","0.8","0.9","0.10","0.11","0.14","0.16","0.17","2.2","2.6","2.7","2.17","2.18","2.20","2.23","2.27","2.28","2.29","2.30","4.21","4.29","5.1","5.2","5.3","5.7","5.8","5.9","5.10","5.11","5.14","5.16","5.17","7.2","7.6","7.7","7.17","7.18","7.20","7.23","7.27","7.28","7.29","7.30","9.10","9.11","9.14","9.18","9.20","9.29","10.5","14.0","19.7","20.2","21.1","21.8","21.11","21.20","21.29","21.30","21.31","21.32","21.44","21.47","22.1","23.5","27.0","30.5","30.7","30.9","30.10","30.11","30.12","33.7","35.1","35.4","35.29","35.30","35.31","35.32","35.44","36.3"],"artplayer":["0.2","0.3","0.4","0.8","0.10","0.11","0.14","0.16","0.17","2.2","2.7","2.18","2.23","2.27","2.28","2.29","2.30","4.21","4.29","5.2","5.3","5.4","5.8","5.10","5.11","5.14","5.16","5.17","7.2","7.7","7.18","7.23","7.27","7.28","7.29","7.30","9.14","9.18","9.29","10.1","15.2","15.3","16.2","16.3","17.3","18.3","19.3","19.4","19.7","20.2","21.8","21.11","21.20","21.29","21.30","21.31","21.32","21.44","21.47","22.1","23.1","23.6","28.2","28.3","29.2","29.3","30.2","30.3","30.11","31.3","32.3","33.3","33.4","33.7","35.4","35.27","35.29","35.30","35.31","35.32","35.44"],"container":["0.2","0.3","0.4","0.11","0.14","0.16","0.17","2.7","2.27","2.30","4.29","5.2","5.3","5.4","5.11","5.14","5.16","5.17","7.7","7.27","7.30","9.14","9.18","9.29","10.5","19.7","20.2","21.8","21.11","21.20","21.29","21.30","21.32","21.44","21.47","22.1","23.5","30.5","30.9","30.10","30.12","33.7","35.2","35.4","35.29","35.30","35.32","35.44"],"app":["0.2","0.3","0.5","0.14","2.30","5.2","5.3","5.5","5.14","7.30","9.14","9.18","10.4","19.7","20.2","21.1","21.20","21.29","21.30","21.47","22.1","23.3","30.5","30.9","30.10","33.7","35.2","35.4","35.29","35.30","35.44"],"url":["0.3","0.5","5.3","5.5","9.11","9.14","11.0","12.0","13.0","19.7","20.2","21.29","21.30","21.33","21.47","22.1","23.3","24.0","25.0","26.0","30.5","30.10","33.7","35.29","35.30","35.33","35.42","35.44"],"classname":["0.4","1.11","4.4","4.10","4.11","4.13","4.26","4.36","4.37","4.38","4.39","5.4","6.11","9.5","9.6","9.7","9.8","9.9","9.12","9.15","9.19","9.21","9.22","9.23","9.26","9.27","9.28","9.30","9.31","9.32","9.33","9.34","9.38","9.40","21.4","21.6","21.10","21.14","21.18","21.34","21.40","22.3","35.6","35.7","35.9","35.13","35.15","35.16","35.17","35.19","35.21","35.22","35.23","35.24","35.25","35.26","35.27","35.28","35.33","35.34","35.39","35.41","35.45","35.48","35.49","36.3"],"run":["0.4","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","4.4","4.5","4.6","4.8","4.10","4.11","4.13","4.22","4.24","4.26","4.36","4.37","4.38","4.39","4.40","5.4","6.2","6.3","6.4","6.5","6.7","6.8","6.9","6.10","6.11","6.12","9.5","9.6","9.7","9.8","9.9","9.12","9.15","9.19","9.21","9.22","9.23","9.25","9.26","9.27","9.28","9.30","9.31","9.32","9.33","9.34","9.38","9.40","21.4","21.10","21.14","21.18","21.34","21.40","22.3","35.3","35.6","35.7","35.9","35.10","35.13","35.14","35.15","35.16","35.17","35.18","35.19","35.21","35.22","35.23","35.24","35.25","35.26","35.28","35.33","35.34","35.39","35.41","35.45","35.46","35.48","35.49","36.3"],"code":["0.4","0.12","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.12","4.4","4.5","4.6","4.7","4.8","4.9","4.10","4.11","4.13","4.16","4.17","4.22","4.24","4.26","4.30","4.36","4.37","4.38","4.39","4.40","5.4","5.12","6.2","6.3","6.4","6.5","6.7","6.8","6.9","6.10","6.12","9.3","9.5","9.6","9.7","9.8","9.9","9.12","9.15","9.19","9.20","9.23","9.25","9.26","9.27","9.28","9.30","9.31","9.32","9.33","9.34","9.40","19.13","21.4","21.18","21.34","21.40","22.3","33.13","35.3","35.5","35.6","35.8","35.9","35.10","35.13","35.14","35.18","35.19","35.21","35.22","35.23","35.24","35.25","35.26","35.28","35.33","35.34","35.39","35.41","35.45","35.46","35.48","35.49","36.0","36.3"],"document":["0.4","5.4","21.1"],"queryselector":["0.4","5.4"],"assets":["0.5","5.5","9.14","20.2","21.30","21.47","22.1","30.5","30.10","35.2","35.30","35.44","36.1"],"sample":["0.5","5.5","20.2","21.30","22.1","30.5","35.2","35.30","35.44","36.1"],"video":["0.5","5.5","10.3","11.0","12.0","15.4","20.2","21.30","21.48","22.1","23.3","24.0","25.0","28.4","30.5","35.2","35.44","36.1"],"mp4":["0.5","5.5","10.3","15.4","20.2","20.3","21.2","22.1","22.2","23.3","28.4","35.2","36.1"],"test":["0.5","5.5"],"foo":["0.5","5.5"],"bar":["0.5","5.5","21.7","21.9","21.18"],"const":["0.5","5.5","14.0","22.4","27.0","36.4"],"构造函数":["1.0","6.0"],"的":["1.0","6.0","35.12"],"console":["1.1","2.0","6.1","7.0","20.3","30.15","34.2","34.3"],"icon":["1.22","6.22"],"time":["1.36","1.37","6.36","6.37","10.6","21.9","21.22"],"body":["1.48","6.48","19.5","33.5"],"info":["2.0","7.0","20.3","30.15","34.2","34.3"],"只监听一次事件":["2.0","7.0"],"但估计没有足够的数据来支撑播放到结束":["2.39","7.39"],"渲染完成":["2.41","7.41"],"属性的值改变时触发":["2.42","7.42"],"当这个":["2.43","7.43"],"因为":["2.44","7.44"],"或者资源类型不是受支持的媒体格式":["2.45","7.45"],"中的首帧已经完成加载":["2.46","7.46"],"播放准备开始":["2.50","7.50"],"seek":["2.53","2.54","7.53","7.54","9.13"],"user":["2.55","7.55"],"属性指定的时间发生变化":["2.57","7.57"],"播放已停止":["2.59","7.59"],"div":["4.4","4.11","4.36","4.37","4.39","9.5","9.6","9.8","9.9","9.12","9.15","9.16","9.17","9.19","9.21","9.22","9.23","9.26","9.27","9.28","9.30","9.31","9.33","9.34","9.38","9.40","21.3","21.4","21.6","21.10","21.14","21.18","21.25","21.34","21.40","22.3","35.6","35.7","35.13","35.15","35.16","35.17","35.19","35.21","35.23","35.24","35.25","35.27","35.28","35.33","35.34","35.36","35.39","35.41","35.42","35.45","35.48","35.49","36.3"],"refers":["9.0"],"to":["9.0","9.13","9.24","9.30","19.7","23.3","33.7"],"remove":["9.4"],"s":["9.4"],"html":["9.4","10.3","15.4","19.9","20.1","20.2","20.3","21.27","21.33","22.2","28.4","33.9","34.1","34.2","34.3","36.2"],"after":["9.4"],"seconds":["9.6"],"performed":["9.10"],"supports":["9.10","9.11","21.43"],"two":["9.10","9.11"],"parameters":["9.10","9.11"],"first":["9.10","9.11"],"is":["9.11","9.13","9.21","9.36","9.37","21.2","21.5","21.36"],"similar":["9.13"],"but":["9.13","21.41"],"it":["9.13","9.24","9.38","21.13"],"will":["9.13","9.24","9.30","21.9","21.16","21.17"],"frame":["9.15","9.16","9.17"],"and":["9.16","9.17","21.5","21.6","21.7","21.9","21.26","21.48"],"return":["9.16","9.17","10.5"],"a":["9.16","9.17","21.14","21.42"],"promise":["9.16","9.17"],"web":["9.19","21.24"],"page":["9.19","21.22","21.24"],"before":["9.21","21.27"],"played":["9.21","21.5"],"mode":["9.22","21.6","21.28"],"true":["9.24","9.30","15.4","22.1","22.2","28.4","30.4","36.1","36.2"],"only":["9.24","21.3","21.15","21.49"],"be":["9.24","9.30","21.39"],"executed":["9.24","9.30"],"horizontal":["9.26"],"vertical":["9.26"],"once":["9.30"],"dynamically":["9.31"],"often":["9.36","9.37","21.12"],"used":["9.36","9.37","20.0","21.3","21.7"],"in":["9.36","9.37","21.15","21.16","21.17","21.19","21.23","21.24","21.25","21.27"],"conjunction":["9.36","9.37"],"also":["9.38"],"automatically":["9.38","21.12","21.13"],"destroy":["9.38"],"destroyed":["9.38"],"queried":["9.39"],"object":["9.39","35.12"],"limited":["9.39"],"current":["9.39","10.5","23.5"],"player":["9.39","9.40","21.5","21.26","21.27"],"head":["10.3"],"title":["10.3"],"demo":["10.3"],"artref":["10.4","23.4"],"if":["10.5","13.0","23.5","26.0"],"typeof":["10.5","23.5"],"at":["10.6","21.2","21.22"],"this":["10.6","21.2","21.12"],"you":["10.6"],"can":["10.6","21.12","21.22","21.36"],"manually":["10.6"],"import":["10.6","23.6"],"min":["11.0","12.0","24.0","25.0","36.4"],"function":["11.0","12.0","13.0","20.3","21.16","21.17","21.35","21.42","21.46","24.0","25.0","26.0","34.2","34.3","35.35"],"plaympd":["11.0","24.0"],"playflv":["12.0","25.0"],"playm3u8":["13.0","26.0"],"torrent":["14.0","27.0"],"add":["14.0","27.0"],"file":["14.0","27.0"],"files":["14.0","27.0"],"renderto":["14.0","27.0"],"plugin":["15.2","15.3","16.2","16.3","17.2","17.3","18.2","18.3","19.3","19.4","28.2","28.3","29.2","29.3","30.2","30.3","30.11","31.2","31.3","32.2","32.3","33.3","33.4"],"ads":["15.2","28.2"],"npm":["15.3","16.3","17.3","18.3","19.4","28.3","29.3","30.3","31.3","32.3","33.4"],"autosize":["15.4","28.4"],"fullscreen":["15.4","28.4"],"fullscreenweb":["15.4","28.4"],"plugins":["15.4","28.4"],"artplayerpluginads":["15.4","28.4"],"html广告":["15.4","28.4"],"假如是视频广告则忽略该值":["15.4","28.4"],"control":["16.2","16.4","16.5","21.36","29.2","29.4","29.5"],"index":["16.4","16.5","19.11","20.0","20.2","29.4","29.5","30.6","30.8","30.11","30.13","33.11","34.0"],"dash":["17.2","17.3","31.2","31.3"],"quality":["17.2","17.3","18.2","18.3","31.2","31.3","32.2","32.3"],"hls":["18.2","18.3","32.2","32.3"],"iframe":["19.1","19.3","19.5","19.8","33.1","33.3","33.5","33.8"],"charset":["19.5","33.5"],"utf":["19.5","33.5","35.38"],"id":["19.5","33.5"],"path":["19.7","23.3","33.7"],"接收来自":["19.8","33.8"],"无法与":["19.9","33.9"],"提示":["19.10","33.10"],"message":["19.12","33.12"],"event":["19.12","21.4","22.3","33.12"],"即可":["19.13","33.13"],"group":["19.13","33.13"],"doctype":["19.13","33.13"],"mark":["20.0"],"class":["20.0"],"number":["20.0","21.37","34.0"],"display":["20.0"],"name":["20.1","20.2","20.3","21.33","34.3"],"potser":["20.1","34.1"],"style":["20.1","20.2","21.38","34.1","34.2","35.38","36.1"],"width":["20.1","21.37","34.1","35.37","36.2"],"100px":["20.1","34.1"],"src":["20.1","34.1"],"tooltip":["20.1","20.2","22.3","22.4","34.1","34.2"],"tip":["20.1","34.1"],"position":["20.1","34.1"],"absolute":["20.1","34.1"],"top":["20.1","34.1"],"50px":["20.1","34.1"],"right":["20.1","34.1"],"your":["20.2","20.3","34.3"],"button":["20.2","21.21","21.23","21.24"],"menu":["20.3","34.3"],"click":["20.3","34.2","34.3"],"args":["20.3","34.2","34.3"],"sometimes":["21.2","21.41"],"the":["21.2","21.26","21.36","21.39","21.45","21.46"],"not":["21.2","21.5"],"known":["21.2"],"so":["21.2","21.12"],"quickly":["21.2"],"for":["21.3","21.42"],"autoplayback":["21.3"],"like":["21.4"],"ready":["21.4"],"initialized":["21.5"],"screenshot":["21.6"],"mini":["21.6"],"on":["21.7","21.28","21.46","30.15"],"progress":["21.7"],"playback":["21.9"],"black":["21.12"],"edges":["21.12"],"appear":["21.12","21.16","21.17"],"value":["21.12","36.4"],"viewport":["21.13","21.48"],"enters":["21.13"],"currently":["21.15","21.49"],"appears":["21.15","21.25"],"setting":["21.15","21.16","21.17","22.1","22.2","36.1","36.2"],"of":["21.19"],"bottom":["21.19","21.21","21.23"],"switch":["21.21"],"same":["21.22"],"full":["21.23"],"screen":["21.23","21.24"],"settings":["21.25","22.1","22.2","36.1","36.2"],"loses":["21.26"],"focus":["21.26"],"required":["21.27"],"by":["21.27","22.0"],"advance":["21.27"],"mobile":["21.28","21.45"],"end":["21.28","21.45"],"layer":["21.29","35.29"],"png":["21.29","35.29"],"boolean":["21.33"],"string":["21.33","21.34","34.0"],"text":["21.34","22.3","22.4"],"myplugin":["21.35","35.35"],"option":["21.36"],"an":["21.36"],"which":["21.36"],"matched":["21.36"],"column":["21.37"],"directly":["21.39"],"written":["21.39"],"into":["21.39"],"htmlelement":["21.40"],"suffix":["21.41"],"address":["21.41"],"such":["21.41"],"as":["21.41"],"m3u8":["21.41"],"mkv":["21.41"],"ts":["21.41"],"does":["21.41"],"third":["21.42"],"party":["21.42"],"program":["21.42"],"processing":["21.42"],"en":["21.43"],"zh":["21.43"],"cn":["21.43","35.43"],"tw":["21.43","35.43"],"hide":["21.45"],"fast":["21.46"],"forward":["21.46"],"size":["21.48"],"when":["21.48","22.4"],"some":["21.49"],"browsers":["21.49"],"support":["21.49"],"default":["22.0","36.1"],"flip":["22.0"],"playbackrate":["22.0"],"aspectratio":["22.0"],"subtitleoffset":["22.0"],"subtitle":["22.1","36.1"],"01":["22.1","22.2","36.1","36.2"],"multi":["22.2","36.2"],"level":["22.2","36.2"],"selector":["22.2","36.2"],"switching":["22.3"],"prompt":["22.3","22.4"],"events":["22.4"],"changing":["22.4"],"install":["23.1"],"ref":["23.4"],"type":["23.6"],"let":["23.6"],"danmuku":["30.2","30.6","30.8"],"滚动":["30.4"],"静止":["30.4"],"margin":["30.4"],"弹幕上下边距":["30.4"],"antioverlap":["30.4"],"是否防重叠":["30.4"],"useworker":["30.4"],"是否使用":["30.4"],"emit":["30.15"],"danmu":["30.15"],"新增弹幕":["30.15"],"loaded":["30.15"],"组件唯一名称":["34.0"],"用于标记类名":["34.0"],"组件索引":["34.0"],"用于显示的优先级":["34.0"],"color":["34.2"],"red":["34.2"],"mounted":["34.2"],"高亮元素":["35.7"],"上":["35.7"],"类似":["35.12"],"css":["35.12"],"fit":["35.12"],"里":["35.15","35.16","35.17","35.25"],"访问到播放器所需的":["35.27"],"画质地址":["35.33"],"支持":["35.36"],"字符串":["35.36"],"匹配":["35.36"],"函数":["35.36"],"正则":["35.36"],"预览图列数":["35.37"],"预览图宽度":["35.37"],"height":["35.37"],"预览图高度":["35.37"],"字幕样式":["35.38"],"encoding":["35.38"],"字幕编码":["35.38"],"默认":["35.38"],"所以需要特别指明":["35.41"],"元素":["35.42"],"视频地址":["35.42"],"当前实例":["35.42"],"cs":["35.43"],"pl":["35.43"],"es":["35.43"],"span":["36.1"]},{"0":["22.4"],"1":["22.1","36.1"],"2":["22.4","35.3","36.4"],"3":["36.4"],"4":["21.18","21.34","21.40","35.5","35.6","35.8","35.9","35.10","35.14","35.18","35.22","35.25","35.26","35.33","35.34","35.39","35.41","35.46","36.0"],"5":["19.7","33.7"],"6":["4.39","4.40"],"7":["4.4","4.5","4.6","4.9","4.15","4.16","4.17","4.22","4.36","4.37","4.38","9.5","9.6","9.9","9.25","9.30","9.38","16.4","21.40","29.4","35.39"],"8":["4.8","4.13","4.23","4.24","4.26","9.1","9.8","9.12","9.19","9.23","9.26","9.27","9.28","9.31","9.32","9.33","9.34","10.3","19.13","21.38","33.13","35.38"],"9":["4.10","4.11","9.21"],"10":["4.7","4.38","9.7","9.38"],"11":["4.30","9.3","9.19","9.30"],"14":["35.33"],"25":["21.34","35.34"],"50":["30.4"],"111":["30.5"],"150":["22.2","36.2"],"实例":["0.0","4.0","5.0"],"artplayer":["0.1","0.6","0.7","0.9","0.12","0.13","0.15","1.1","2.1","2.3","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.19","2.20","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.14","4.16","4.17","4.18","4.19","4.20","4.23","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","4.38","5.1","5.6","5.7","5.9","5.12","5.13","5.15","6.1","7.1","7.3","7.4","7.5","7.6","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.17","7.19","7.20","7.21","7.22","7.24","7.25","7.26","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.2","9.3","9.20","9.25","9.30","9.32","9.35","9.38","10.2","19.13","21.4","21.18","21.40","22.3","23.2","33.13","35.11","35.20","35.34","35.40","35.41","35.47","36.0","36.3"],"container":["0.1","0.6","0.7","0.8","0.9","0.10","0.12","0.13","0.15","2.2","2.5","2.6","2.12","2.13","2.14","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.2","4.3","4.8","4.10","4.12","4.14","4.18","4.19","4.20","4.21","4.25","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","4.38","5.1","5.6","5.7","5.8","5.9","5.10","5.12","5.13","5.15","7.2","7.5","7.6","7.12","7.13","7.14","7.16","7.17","7.18","7.19","7.20","7.21","7.22","7.23","7.24","7.25","7.26","7.28","7.29","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.2","9.20","9.25","9.38","16.5","21.4","21.18","21.31","21.40","22.3","29.5","30.7","30.8","30.11","30.13","30.14","35.11","35.20","35.31","35.34","35.40","35.47","36.3"],"app":["0.1","0.4","0.6","0.7","0.8","0.9","0.10","0.11","0.16","0.17","2.2","2.6","2.7","2.17","2.18","2.20","2.23","2.27","2.28","2.29","4.14","4.18","4.20","4.21","4.25","4.29","4.31","5.1","5.4","5.6","5.7","5.8","5.9","5.10","5.11","5.16","5.17","7.2","7.6","7.7","7.17","7.18","7.20","7.23","7.27","7.28","7.29","9.20","9.29","9.30","16.5","21.4","21.8","21.11","21.31","21.32","21.44","22.3","23.4","29.5","30.7","30.8","30.11","30.12","30.14","35.1","35.20","35.31","35.32","35.40","35.47","36.3"],"url":["0.2","0.4","0.7","0.8","0.9","0.10","0.11","0.14","0.16","0.17","2.2","2.18","2.23","2.27","2.28","2.29","2.30","4.18","4.21","4.29","5.2","5.4","5.7","5.8","5.9","5.10","5.11","5.14","5.16","5.17","7.2","7.18","7.23","7.27","7.28","7.29","7.30","9.18","9.20","9.29","9.30","16.5","21.1","21.4","21.8","21.11","21.20","21.31","21.32","21.44","22.3","29.5","30.7","30.8","30.9","30.11","30.12","35.1","35.4","35.31","35.32","35.40","35.47","36.3"],"assets":["0.2","0.3","0.4","0.7","0.8","0.9","0.10","0.11","0.14","0.16","0.17","2.2","2.7","2.27","2.30","4.21","4.29","5.2","5.3","5.4","5.7","5.8","5.9","5.10","5.11","5.14","5.16","5.17","7.2","7.7","7.27","7.30","9.18","9.20","9.29","9.30","16.5","21.1","21.4","21.8","21.11","21.20","21.31","21.32","21.44","22.3","29.5","30.7","30.8","30.9","30.11","30.12","35.1","35.4","35.31","35.32","36.3"],"sample":["0.2","0.3","0.4","0.7","0.10","0.11","0.14","0.16","0.17","2.7","2.27","2.30","4.21","4.29","5.2","5.3","5.4","5.7","5.10","5.11","5.14","5.16","5.17","7.7","7.27","7.30","9.14","9.18","9.20","9.29","21.1","21.4","21.8","21.11","21.20","21.31","21.32","21.44","21.47","22.3","30.7","30.9","30.10","30.11","30.12","35.4","35.31","35.32","36.3"],"video":["0.2","0.3","0.4","0.11","0.14","0.16","0.17","2.7","2.30","4.29","5.2","5.3","5.4","5.11","5.14","5.16","5.17","7.7","7.30","9.18","9.20","9.29","19.7","21.1","21.8","21.11","21.20","21.29","21.31","21.32","21.44","21.47","30.7","30.9","30.10","30.11","30.12","33.7","35.4","35.29","35.30","35.32","36.3"],"mp4":["0.2","0.3","0.14","0.16","0.17","2.30","4.29","5.2","5.3","5.14","5.16","5.17","7.30","9.14","9.18","9.20","9.29","19.7","21.1","21.4","21.8","21.11","21.20","21.29","21.30","21.32","21.44","21.47","30.5","30.9","30.10","30.11","30.12","33.7","35.4","35.29","35.30","35.44","36.3"],"console":["0.3","0.5","1.6","5.3","5.5","6.6","9.14","9.29","19.12","20.1","20.2","21.35","33.12","34.1","35.35"],"info":["0.3","0.5","1.1","5.3","5.5","6.1","19.12","20.1","20.2","21.35","33.12","34.1","35.35"],"art":["0.4","0.12","0.13","0.15","2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.13","2.14","2.15","2.16","2.19","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","4.1","4.2","4.3","4.5","4.6","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.15","4.16","4.17","4.19","4.22","4.23","4.24","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","5.4","5.12","5.13","5.15","7.1","7.3","7.4","7.5","7.8","7.9","7.10","7.11","7.13","7.14","7.15","7.16","7.19","7.26","7.31","7.32","7.33","7.34","7.35","7.36","7.37","9.1","9.2","9.3","9.7","9.8","9.9","9.12","9.21","9.25","9.26","9.27","9.28","9.30","9.31","9.32","9.33","9.34","9.35","12.0","16.5","21.4","21.18","21.34","21.35","21.40","22.3","25.0","29.5","30.6","30.8","30.13","30.14","35.5","35.8","35.11","35.18","35.33","35.34","35.41","36.0"],"new":["0.4","0.6","0.12","0.13","0.15","2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.19","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.14","4.15","4.16","4.17","4.18","4.19","4.20","4.23","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","5.4","5.6","5.12","5.13","5.15","7.1","7.3","7.4","7.5","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.19","7.21","7.22","7.24","7.25","7.26","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.1","9.2","9.3","9.7","9.8","9.21","9.25","9.27","9.28","9.30","9.31","9.32","9.33","9.34","9.35","13.0","16.5","21.4","21.18","21.34","21.40","22.3","26.0","29.5","30.6","30.8","30.13","30.14","35.8","35.11","35.20","35.34","35.40","35.41","35.47","36.0"],"function":["0.14","5.14","20.1","21.49","34.1"],"一级属性":["1.0","6.0"],"var":["1.1","4.1","4.5","4.6","4.7","4.8","4.9","4.10","4.11","4.13","4.15","4.16","4.17","4.19","4.22","4.23","4.24","4.26","4.30","4.36","4.37","4.38","4.40","6.1","9.1","9.3","9.7","9.8","9.9","9.12","9.19","9.21","9.23","9.25","9.26","9.27","9.28","9.30","9.31","9.32","9.33","9.34","9.35","9.38","16.4","21.18","21.34","21.40","22.3","29.4","30.6","30.13","35.3","35.5","35.8","35.18","35.25","35.33","35.34","35.41","36.0"],"js":["1.6","4.4","4.5","4.6","4.11","4.13","4.22","4.26","4.36","4.37","4.39","4.40","6.6","9.5","9.6","9.7","9.8","9.9","9.12","9.15","9.16","9.17","9.19","9.21","9.22","9.23","9.26","9.27","9.28","9.30","9.31","9.32","9.33","9.34","9.38","9.40","21.18","21.34","21.40","22.3","35.3","35.5","35.6","35.9","35.10","35.13","35.14","35.15","35.16","35.17","35.18","35.19","35.21","35.22","35.23","35.24","35.25","35.26","35.27","35.28","35.33","35.36","35.39","35.41","35.45","35.46","35.48","35.49"],"code":["1.11","6.11","9.13","9.16","9.17","9.21","9.22","9.24","9.38","21.3","21.5","21.6","21.10","21.14","21.25","21.28","21.33","21.38","21.39","22.0","35.7","35.12","35.15","35.16","35.17","35.27","35.36","35.37","35.42","36.4"],"once":["2.0","7.0","9.24","14.0","27.0"],"subtitle":["2.30","7.30","20.2","34.2"],"不必停下来进一步缓冲内容":["2.39","7.39"],"media":["2.43","2.44","7.43","7.44"],"已经加载完成":["2.43","7.43"],"操作完成":["2.53","7.53"],"操作开始":["2.54","7.54"],"agent":["2.55","7.55"],"add":["3.0","8.0","15.2","16.2","17.2","18.2","19.3","28.2","29.2","30.2","31.2","32.2","33.3"],"例如我想写一个在视频暂停后":["3.0","8.0"],"显示一个图片广告的插件":["3.0","8.0"],"document":["4.38","9.38","35.1"],"queryselector":["4.38","9.38","21.1","35.1"],"primary":["9.0"],"destruction":["9.4"],"default":["9.4","20.2","22.1","34.2"],"value":["9.4","22.4"],"is":["9.4","21.26","21.48"],"true":["9.4","20.2","21.4","21.11","21.30","21.47","30.5","34.2","35.4","35.30","35.38","36.3"],"and":["9.10","9.11","21.15","21.16","21.17"],"second":["9.10","9.11"],"optional":["9.10","9.11","13.0","14.0","26.0","27.0"],"name":["9.11","21.29","21.35","35.29","35.35"],"div":["9.11","9.13","9.24","9.36","9.37","10.3","10.5","21.5","21.7","21.9","21.13","21.15","21.16","21.17","21.19","21.21","21.22","21.23","21.24","21.26","21.28","21.33","21.37","21.39","21.41","21.45","21.46","21.49","22.0","23.5","35.12","35.37","35.38","35.43","36.4"],"not":["9.13","21.41"],"trigger":["9.13"],"additional":["9.13"],"events":["9.13"],"classname":["9.13","9.16","9.17","9.24","9.36","9.37","21.3","21.5","21.7","21.9","21.13","21.15","21.16","21.17","21.19","21.21","21.23","21.24","21.25","21.26","21.28","21.33","21.37","21.39","21.41","21.45","21.46","21.49","22.0","35.12","35.36","35.37","35.38","35.42","35.43","36.4"],"run":["9.13","9.16","9.17","9.24","9.36","9.37","21.3","21.5","21.6","21.7","21.9","21.13","21.15","21.16","21.17","21.19","21.21","21.23","21.25","21.26","21.28","21.33","21.37","21.39","21.41","21.46","21.49","22.0","35.12","35.27","35.36","35.37","35.42","36.4"],"on":["9.14","9.29"],"ready":["9.14","9.29"],"controls":["9.18","9.20"],"position":["9.18"],"right":["9.18"],"html":["9.18","19.11","20.0","21.29","21.30","23.3","33.11","34.0","35.29","35.30","35.38"],"timeupdate":["9.36","9.37"],"event":["9.36","9.37"],"which":["9.39"],"can":["9.39","20.3","21.2","21.27","21.42"],"avoid":["9.39"],"errors":["9.39"],"same":["9.39"],"yarn":["10.1","15.2","16.2","17.2","18.2","19.3","23.1","28.2","29.2","30.2","31.2","32.2","33.3"],"npm":["10.2","23.2"],"dist":["10.2","15.3","16.3","17.3","18.3","19.4","23.2","28.3","29.3","30.3","31.3","32.3","33.4"],"meta":["10.3","19.13","33.13"],"charset":["10.3","19.13","33.13"],"utf":["10.3","19.13","21.38","33.13"],"body":["10.3"],"class":["10.3"],"get":["10.4","19.7","33.7"],"instance":["10.4"],"destroy":["10.5","14.0","23.5","27.0"],"false":["10.5","20.3","23.5","30.4","34.3"],"ref":["10.5","23.5"],"variable":["10.6"],"if":["11.0","12.0","24.0","25.0"],"supportsmediasource":["11.0","24.0"],"const":["11.0","12.0","13.0","24.0","25.0","26.0"],"mediaplayer":["11.0","24.0"],"create":["11.0","24.0"],"initialize":["11.0","24.0"],"flvjs":["12.0","25.0"],"issupported":["12.0","13.0","25.0","26.0"],"createplayer":["12.0","25.0"],"type":["12.0","25.0"],"loadsource":["13.0","26.0"],"attachmedia":["13.0","26.0"],"autoplay":["14.0","27.0"],"option":["14.0","27.0"],"ads":["15.3","28.3"],"img":["15.4","28.4"],"src":["15.4","28.4"],"poster":["15.4","28.4"],"jpg":["15.4","28.4"],"视频广告的地址":["15.4","28.4"],"test1":["15.4","28.4"],"广告跳转网址":["15.4","28.4"],"control":["16.3","21.19","21.21","21.23","21.24","21.45","29.3"],"页面里的播放器":["19.1","33.1"],"如在":["19.1","33.1"],"iframe":["19.4","19.9","33.4","33.9"],"seek":["19.7","33.7"],"the":["19.7","33.7"],"的消息":["19.8","33.8"],"head":["19.13","23.3","33.13"],"title":["19.13","23.3","33.13"],"priority":["20.0"],"of":["20.0"],"element":["20.0","21.7","21.39","21.42","34.0"],"dom":["20.0","21.42","34.0"],"style":["20.0","21.29","22.1"],"object":["20.0"],"click":["20.1","20.2","34.1"],"args":["20.1","20.2","34.1"],"mounted":["20.1","20.2","21.27","34.1"],"color":["20.2","22.1","36.1"],"red":["20.2","22.1","36.1"],"show":["20.3","34.3"],"you":["20.3","21.1","21.2"],"also":["20.3"],"may":["21.1"],"time":["21.2"],"set":["21.2"],"asynchronously":["21.2"],"muted":["21.4","35.4"],"highlighted":["21.7"],"be":["21.9","21.36"],"hidden":["21.9"],"adjust":["21.12"],"to":["21.12","21.38"],"hide":["21.12"],"mini":["21.13"],"mode":["21.13"],"contextmenu":["21.15","21.16","21.17"],"bar":["21.19","21.21","21.23","21.24","21.45"],"hotkeys":["21.20"],"only":["21.22"],"one":["21.22","21.36"],"player":["21.22"],"play":["21.22","35.44"],"bottom":["21.24","21.45"],"playing":["21.26"],"access":["21.27"],"potser":["21.29","35.29"],"width":["21.29","22.2"],"setting01":["21.30","35.30"],"selector":["21.30","35.30"],"return":["21.35","23.5","35.35"],"with":["21.36"],"window":["21.36"],"navigator":["21.36"],"useragent":["21.36"],"respectively":["21.36"],"will":["21.36"],"enabled":["21.36"],"as":["21.36"],"long":["21.36"],"height":["21.37"],"encoding":["21.38"],"escape":["21.38","35.38"],"boolean":["21.38","35.38"],"whether":["21.38"],"have":["21.41"],"correct":["21.41"],"so":["21.41"],"specially":["21.41"],"specified":["21.41"],"receive":["21.42"],"three":["21.42"],"parameters":["21.42"],"cs":["21.43"],"pl":["21.43"],"es":["21.43"],"fa":["21.43","35.43"],"fr":["21.43","35.43"],"id":["21.43","21.47","22.1","35.43","36.1"],"lang":["21.44","35.44"],"mobile":["21.46","21.48"],"terminal":["21.46"],"your":["21.47","35.44"],"warning":["21.47"],"page":["21.48"],"full":["21.48"],"screen":["21.48"],"this":["21.49"],"span":["22.1","34.2"],"srt":["22.1","36.1"],"min":["22.4"],"max":["22.4","36.4"],"step":["22.4","36.4"],"null":["23.6"],"参数":["23.6"],"param":["23.6"],"danmuku":["30.3"],"web":["30.4"],"worker":["30.4"],"synchronousplayback":["30.4"],"是否同步到播放速度":["30.4"],"filter":["30.4"],"danmu":["30.4"],"text":["30.4","30.5"],"length":["30.4","30.15"],"弹幕过滤函数":["30.4"],"返回":["30.4"],"则可以发送":["30.4"],"setting":["30.5","35.30","36.3"],"plugins":["30.5","30.9","30.10","30.11","30.12"],"artplayerplugindanmuku":["30.5","30.9","30.10","30.11","30.12"],"弹幕数组":["30.5"],"danmus":["30.15"],"加载弹幕":["30.15"],"error":["30.15"],"组件的":["34.0"],"元素":["34.0"],"01":["34.2"],"也可以实例化之后添加一个右键菜单":["34.3"],"有时候":["35.2"],"地址没那么快知道":["35.2"],"这时候你可以异步设置":["35.2"],"cover":["35.12"],"是否转义":["35.38"],"标签":["35.38"],"默认为":["35.38"],"修改现有的语言":["35.44"],"yellow":["36.1"],"02":["36.1","36.2"]},{"1":["30.5"],"2":["21.3","22.1","36.1"],"3":["22.4","35.1"],"4":["21.5","21.6","21.9","21.10","21.13","21.14","21.15","21.16","21.17","21.19","21.25","21.26","21.28","21.33","21.37","21.39","21.41","21.46","21.49","22.0","35.7","35.12","35.13","35.15","35.16","35.17","35.19","35.21","35.23","35.24","35.28","35.36","35.37","35.38","35.42","35.45","35.48","35.49"],"5":["9.29","15.4","21.8","28.4"],"6":["9.40","21.2","34.3","35.2"],"7":["9.15","9.16","9.17","9.22","9.36","9.37","20.1","21.39","34.1","35.27"],"8":["9.13","9.24","21.37","23.3","35.37","35.42"],"9":["9.10","9.11"],"10":["9.29"],"11":["35.44"],"12":["35.38"],"14":["21.33"],"22":["36.3"],"60":["30.4"],"100":["30.4"],"200":["30.4"],"500":["30.4"],"的":["0.0","0.5","4.0","5.0","5.5"],"url":["0.1","0.6","0.13","0.15","2.1","2.3","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.19","2.20","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.11","4.12","4.13","4.14","4.16","4.17","4.19","4.20","4.23","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","5.1","5.6","5.13","5.15","7.1","7.3","7.4","7.5","7.6","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.17","7.19","7.20","7.21","7.22","7.24","7.25","7.26","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.1","9.2","9.3","9.7","9.8","9.12","9.21","9.25","9.26","9.27","9.28","9.31","9.32","9.33","9.34","9.35","9.38","21.18","21.34","21.40","21.41","21.42","30.6","30.13","30.14","35.8","35.11","35.20","35.34","35.41","36.0","36.4"],"assets":["0.1","0.6","0.12","0.13","0.15","2.5","2.6","2.12","2.13","2.14","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.2","4.3","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.14","4.16","4.17","4.18","4.19","4.20","4.23","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","5.1","5.6","5.12","5.13","5.15","7.5","7.6","7.12","7.13","7.14","7.16","7.17","7.18","7.19","7.20","7.21","7.22","7.23","7.24","7.25","7.26","7.28","7.29","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.2","9.3","9.8","9.12","9.21","9.25","9.27","9.28","9.31","9.32","9.33","9.34","9.35","9.38","21.18","21.34","21.40","21.41","30.6","30.13","30.14","35.11","35.20","35.33","35.34","35.40","35.41","35.47","36.0","36.4"],"sample":["0.1","0.6","0.8","0.9","0.12","0.13","0.15","2.2","2.6","2.12","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.28","2.29","2.38","4.2","4.3","4.8","4.10","4.11","4.12","4.13","4.14","4.16","4.17","4.18","4.19","4.20","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","5.1","5.6","5.8","5.9","5.12","5.13","5.15","7.2","7.6","7.12","7.17","7.18","7.20","7.21","7.22","7.23","7.24","7.25","7.28","7.29","7.38","9.2","9.21","9.25","9.28","9.30","9.31","9.32","9.38","16.5","21.18","21.34","21.40","21.41","29.5","30.6","30.8","30.13","30.14","35.1","35.11","35.20","35.33","35.34","35.40","35.41","35.47","36.4"],"video":["0.1","0.6","0.7","0.8","0.9","0.10","0.12","0.13","0.15","2.2","2.6","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.27","2.28","2.29","4.2","4.3","4.8","4.10","4.11","4.12","4.14","4.18","4.20","4.21","4.25","4.27","4.28","4.30","4.32","4.33","4.34","5.1","5.6","5.7","5.8","5.9","5.10","5.12","5.13","5.15","7.2","7.6","7.17","7.18","7.20","7.21","7.22","7.23","7.24","7.25","7.27","7.28","7.29","9.25","9.38","16.5","21.34","21.40","22.3","29.5","30.8","30.13","30.14","35.1","35.11","35.20","35.31","35.34","35.40","35.41","35.47"],"ua":["0.2","5.2"],"iphone":["0.2","5.2"],"gi":["0.2","5.2"],"test":["0.2","5.2"],"console":["0.2","0.4","0.7","0.14","0.17","4.29","5.2","5.4","5.7","5.14","5.17","21.30","22.1","22.2","36.1","36.2"],"info":["0.2","0.4","0.7","0.14","0.17","1.6","4.29","5.2","5.4","5.7","5.14","5.17","6.6","9.14","9.29","21.30","22.1","22.2","36.1","36.2"],"mp4":["0.4","0.6","0.7","0.8","0.9","0.10","0.11","0.12","2.2","2.7","2.17","2.18","2.20","2.23","2.27","2.28","2.29","4.10","4.14","4.18","4.20","4.21","4.25","4.28","4.30","4.31","4.32","5.4","5.6","5.7","5.8","5.9","5.10","5.11","5.12","7.2","7.7","7.17","7.18","7.20","7.23","7.27","7.28","7.29","9.21","9.25","9.30","9.38","14.0","16.5","21.18","21.31","21.40","22.3","27.0","29.5","30.7","30.8","30.13","30.14","35.1","35.11","35.20","35.31","35.32","35.34","35.40","35.47"],"click":["0.4","0.14","5.4","5.14","9.18","9.20","20.0","21.31","30.10","34.0"],"event":["0.4","0.14","5.4","5.14","20.0","22.2","36.1","36.2"],"warning":["0.5","1.0","5.5","6.0","9.14","9.18","10.3","21.8","21.11"],"提示":["0.5","5.5"],"默认所有播放器实例都是共享同一个":["0.5","5.5"],"localstorage":["0.5","5.5"],"而且默认的":["0.5","5.5"],"是":["0.5","5.5"],"settings":["0.5","5.5","22.3","36.3"],"如果你想不同的播放器使用不同的":["0.5","5.5"],"play":["0.7","5.7","21.4","21.44","35.4"],"on":["0.8","0.9","0.10","0.11","2.2","2.7","4.29","5.8","5.9","5.10","5.11","7.2","7.7","9.30"],"ready":["0.9","0.10","0.11","2.7","4.29","5.9","5.10","5.11","7.7","9.30"],"app":["0.12","0.13","0.15","2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.19","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.15","4.16","4.17","4.19","4.23","4.24","4.26","4.27","4.28","4.30","4.32","4.33","4.34","4.35","4.38","5.12","5.13","5.15","7.1","7.3","7.4","7.5","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.19","7.21","7.22","7.24","7.25","7.26","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.1","9.2","9.3","9.7","9.8","9.9","9.12","9.19","9.21","9.23","9.25","9.26","9.27","9.28","9.31","9.32","9.33","9.34","9.35","9.38","10.5","14.0","21.18","21.34","21.40","21.41","23.5","27.0","30.6","30.13","35.8","35.11","35.18","35.25","35.27","35.33","35.34","35.41","36.0","36.4"],"hotkeyevent":["0.14","5.14"],"true":["0.16","2.27","5.16","7.27","16.5","21.18","21.38","22.3","29.5"],"flip":["0.16","5.16"],"playbackrate":["0.16","5.16"],"aspectratio":["0.16","5.16"],"function":["0.17","5.17","9.18","9.20","19.7","20.0","21.30","21.31","21.36","22.2","23.6","30.10","33.7","34.0","35.30","36.2"],"myplugin":["0.17","5.17"],"非常少使用":["1.0","6.0"],"art":["1.1","4.4","4.36","4.37","4.38","4.39","4.40","6.1","9.5","9.6","9.11","9.13","9.15","9.16","9.17","9.19","9.22","9.23","9.24","9.38","9.40","10.6","16.4","21.3","21.5","21.6","21.10","21.14","21.25","21.33","21.37","21.41","21.42","22.0","22.4","29.4","35.3","35.6","35.7","35.9","35.10","35.13","35.14","35.15","35.16","35.17","35.19","35.21","35.22","35.23","35.24","35.25","35.26","35.28","35.36","35.37","35.38","35.39","35.45","35.46","35.48","35.49","36.4"],"new":["1.1","4.4","4.5","4.6","4.22","4.36","4.37","4.38","4.39","4.40","6.1","9.5","9.6","9.9","9.12","9.13","9.15","9.16","9.17","9.19","9.22","9.23","9.24","9.26","9.38","9.40","16.4","21.6","21.10","21.25","21.33","21.37","21.41","22.0","22.4","29.4","35.3","35.5","35.6","35.9","35.10","35.13","35.14","35.15","35.16","35.17","35.18","35.19","35.21","35.22","35.23","35.24","35.25","35.26","35.28","35.33","35.36","35.37","35.39","35.45","35.46","35.48","35.49","36.4"],"container":["1.1","2.1","2.3","2.4","2.8","2.9","2.10","2.11","2.15","4.1","4.4","4.5","4.6","4.7","4.9","4.11","4.13","4.15","4.16","4.17","4.22","4.23","4.24","4.26","4.36","4.37","4.39","4.40","6.1","7.1","7.3","7.4","7.8","7.9","7.10","7.11","7.15","9.1","9.3","9.5","9.6","9.7","9.8","9.9","9.12","9.16","9.17","9.19","9.21","9.23","9.24","9.26","9.27","9.28","9.31","9.32","9.33","9.34","9.35","14.0","16.4","21.25","21.33","21.34","21.41","22.4","27.0","29.4","30.6","35.5","35.6","35.8","35.18","35.25","35.27","35.33","35.36","35.37","35.39","35.41","36.0","36.4"],"js":["1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.12","6.2","6.3","6.4","6.5","6.7","6.8","6.9","6.10","6.12","9.10","9.11","9.13","9.24","9.36","9.37","10.2","15.3","16.3","17.3","18.3","19.4","19.8","19.11","21.3","21.5","21.6","21.7","21.9","21.10","21.13","21.14","21.15","21.16","21.17","21.19","21.21","21.23","21.24","21.25","21.26","21.28","21.33","21.37","21.39","21.41","21.45","21.46","21.49","22.0","23.2","28.3","29.3","30.3","31.3","32.3","33.4","33.8","33.11","35.7","35.12","35.37","35.38","35.42","35.43"],"artplayer":["1.6","4.4","4.5","4.6","4.15","4.22","4.36","4.37","4.39","4.40","6.6","9.1","9.5","9.6","9.7","9.8","9.9","9.12","9.15","9.16","9.17","9.19","9.21","9.22","9.23","9.24","9.26","9.27","9.28","9.31","9.33","9.34","9.40","10.6","14.0","21.25","21.27","21.33","21.34","21.41","22.0","22.4","27.0","35.3","35.5","35.6","35.8","35.9","35.10","35.14","35.15","35.16","35.17","35.18","35.22","35.25","35.26","35.33","35.36","35.37","35.39","35.46","36.4"],"手动触发事件":["2.0","7.0"],"subtitle":["2.27","2.28","2.29","7.27","7.28","7.29"],"srt":["2.30","7.30"],"或者部分加载完成":["2.43","7.43"],"则发送此事件":["2.43","7.43"],"已经到达结束点":["2.44","7.44"],"正在尝试获取媒体数据":["2.55","7.55"],"adsplugin":["3.0","8.0"],"option":["3.0","8.0","10.4","11.0","23.4","24.0","30.15"],"layers":["3.0","8.0"],"ads":["3.0","8.0"],"html":["3.0","8.0","9.20","21.31","21.32","21.38","30.9","30.10","30.11","30.12","35.31","35.32"],"img":["3.0","8.0","22.3","35.40","36.3"],"style":["3.0","8.0","10.4","34.0","35.29"],"width":["3.0","8.0","35.29","36.3"],"100px":["3.0","8.0","21.29","35.29"],"src":["3.0","8.0","21.29","35.29"],"display":["3.0","8.0"],"none":["3.0","8.0"],"position":["3.0","4.18","8.0","9.20","21.29","21.32","30.9","30.10","30.11","30.12","35.29","35.32"],"absolute":["3.0","8.0","21.29","35.29"],"top":["3.0","8.0","21.29","35.29"],"20px":["3.0","8.0","21.29","35.29"],"right":["3.0","8.0","9.20","21.29","30.9","30.10","30.11","30.12"],"var":["4.4","4.39","9.5","9.6","9.10","9.11","9.13","9.15","9.16","9.17","9.22","9.24","9.36","9.37","9.40","21.3","21.5","21.6","21.10","21.14","21.25","21.28","21.33","21.37","21.39","21.41","22.0","22.4","35.6","35.7","35.9","35.10","35.13","35.14","35.15","35.16","35.17","35.19","35.21","35.22","35.23","35.24","35.26","35.27","35.28","35.36","35.37","35.38","35.39","35.42","35.45","35.46","35.48","35.49","36.4"],"controls":["4.18","4.20","16.5","29.5","30.9","30.10","30.11","30.12"],"jpg":["4.21"],"attached":["9.0"],"div":["9.4","9.10","9.39","21.27","21.36","21.38","21.42","21.43","21.48","22.4"],"classname":["9.4","9.10","9.11","9.39","21.22","21.27","21.36","21.38","21.42","21.43","21.48","22.4"],"run":["9.4","9.10","9.11","9.39","21.22","21.24","21.27","21.36","21.38","21.42","21.43","21.45","21.48","22.4","35.38","35.43"],"code":["9.4","9.10","9.11","9.36","9.37","9.39","21.7","21.9","21.13","21.15","21.16","21.17","21.19","21.21","21.22","21.23","21.24","21.26","21.27","21.36","21.37","21.41","21.43","21.45","21.46","21.48","21.49","22.4","35.38","35.43"],"name":["9.10","9.39"],"tip":["9.14","9.18","10.3","21.8","21.11","21.47"],"some":["9.14"],"videos":["9.14"],"have":["9.14"],"switch":["9.18"],"resize":["9.30"],"class":["9.39"],"add":["10.1","23.1"],"unpkg":["10.2","15.3","16.3","17.3","18.3","19.4","23.2","28.3","29.3","30.3","31.3","32.3","33.4"],"the":["10.3","21.8","21.47"],"size":["10.3","21.1"],"of":["10.3","21.1"],"getinstance":["10.4","23.4","23.6"],"let":["10.6"],"null":["10.6"],"parameters":["10.6"],"autoplay":["11.0","24.0"],"optional":["11.0","12.0","24.0","25.0"],"once":["11.0","12.0","13.0","24.0","25.0","26.0"],"destroy":["11.0","12.0","13.0","24.0","25.0","26.0"],"attachmediaelement":["12.0","25.0"],"load":["12.0","25.0"],"else":["13.0","26.0"],"canplaytype":["13.0","26.0"],"magnet":["14.0","27.0"],"xt":["14.0","27.0"],"urn":["14.0","27.0"],"btih":["14.0","27.0"],"6a9759bffd5c0af65319979fb7832189f4f3c35d":["14.0","27.0"],"dn":["14.0","27.0"],"sintel":["14.0","27.0"],"tr":["14.0","27.0"],"wss":["14.0","27.0"],"com":["15.3","16.3","17.3","18.3","19.4","28.3","29.3","30.3","31.3","32.3","33.4"],"为空则不跳转":["15.4","28.4"],"http":["15.4","28.4"],"org":["15.4","28.4"],"必须观看的时长":["15.4","28.4"],"期间不能被跳过":["15.4","28.4"],"单位为秒":["15.4","28.4"],"当该值大于或等于totalduration时":["15.4","28.4"],"不能提前关闭广告":["15.4","28.4"],"当该值等于或小于0时":["15.4","28.4"],"则随时都可以关闭广告":["15.4","28.4"],"playduration":["15.4","28.4"],"fullscreen":["16.5","29.5"],"fullscreenweb":["16.5","29.5"],"里通过代码控制":["19.1","33.1"],"value":["19.7","33.7"],"from":["19.7","33.7"],"async":["19.7","33.7"],"use":["19.7","33.7"],"通信":["19.9","33.9"],"只能运行在":["19.10","33.10"],"的消息":["19.11","33.11"],"commit":["19.12","33.12"],"artplayerpluginiframe":["19.12","33.12"],"body":["19.13","23.3","33.13"],"id":["19.13","33.13","35.47"],"mounted":["20.0"],"triggered":["20.0"],"after":["20.0","20.1","20.3"],"is":["20.0"],"tooltip":["20.0","21.32"],"you":["20.1","21.11"],"can":["20.1"],"also":["20.1"],"span":["20.2"],"01":["20.2","21.30","35.30"],"yellow":["20.2","22.1","34.2"],"02":["20.2","21.30","22.1","22.2","34.2","35.30"],"item":["20.2","22.1","22.2","34.2","36.1","36.2"],"dom":["20.2","22.2","34.2","36.2"],"return":["20.2","34.2"],"need":["21.1"],"initialize":["21.1"],"elements":["21.1"],"such":["21.1"],"as":["21.1","21.47"],"css":["21.1","35.1"],"settimeout":["21.2"],"this":["21.4","35.4"],"equivalent":["21.4"],"to":["21.4"],"will":["21.8"],"cache":["21.8"],"muted":["21.11"],"if":["21.11"],"want":["21.11"],"similar":["21.12"],"object":["21.12","34.0"],"fit":["21.12"],"contain":["21.12"],"sescribe":["21.20"],"volume":["21.20"],"up":["21.20"],"down":["21.20"],"fast":["21.20"],"forward":["21.20"],"rewind":["21.20"],"through":["21.27"],"opacity":["21.29"],"onselect":["21.30","22.2","35.30","36.2"],"args":["21.30","21.31","35.30"],"your":["21.31","21.32","35.31","35.32","35.47"],"menu":["21.31","35.31"],"left":["21.32","35.32"],"control":["21.32","35.32"],"something":["21.35","35.35"],"dosomething":["21.35","35.35"],"matches":["21.36"],"successful":["21.36"],"support":["21.36"],"string":["21.36"],"matching":["21.36"],"regular":["21.36"],"tag":["21.38"],"loading":["21.40","35.40"],"player":["21.42","21.47"],"instance":["21.42","23.4"],"modify":["21.44"],"existing":["21.44"],"because":["21.47"],"uses":["21.47"],"key":["21.47"],"by":["21.47"],"setting":["22.3","30.14"],"pip":["22.3","36.3"],"mode":["22.3","36.3"],"close":["22.3","36.3"],"demo":["23.3"],"meta":["23.3"],"charset":["23.3"],"utf":["23.3"],"get":["23.4"],"locktime":["30.4"],"输入框锁定时间":["30.4"],"maxlength":["30.4"],"输入框最大可输入的字数":["30.4"],"minwidth":["30.4"],"弹幕文本":["30.5"],"time":["30.5"],"发送时间":["30.5"],"单位秒":["30.5"],"color":["30.5"],"fff":["30.5"],"弹幕局部颜色":["30.5"],"border":["30.5"],"false":["30.5"],"plugins":["30.7","30.8"],"artplayerplugindanmuku":["30.7","30.8"],"使用":["30.7"],"promise":["30.7"],"异步返回":["30.7"],"xml":["30.9","30.10","30.11","30.12"],"隐藏弹幕":["30.9"],"发送弹幕":["30.10"],"text":["30.10"],"弹幕大小":["30.11"],"input":["30.11"],"type":["30.11"],"range":["30.11"],"重载弹幕":["30.12"],"加载错误":["30.15"],"config":["30.15"],"配置变化":["30.15"],"组件样式对象":["34.0"],"组件点击事件":["34.0"],"也可以实例化之后添加一个层":["34.1"],"您可能需要初始化容器元素的大小":["35.1"],"如":["35.1"],"等同于":["35.4"],"document":["35.27"],"queryselector":["35.27"],"heigth":["36.3"]},{"0":["30.5"],"1":["30.11"],"3":["21.1"],"4":["21.7","21.21","21.22","21.23","21.24","21.36","21.38","21.42","21.43","21.45","21.48","35.43"],"5":["4.29"],"6":["9.39","20.2","20.3","34.2"],"7":["9.4","21.27"],"8":["21.42"],"9":["21.29","35.29"],"10":["4.10","4.29","15.4","28.4"],"11":["21.44"],"12":["21.38","30.11"],"22":["20.2","22.3","34.2","36.4"],"25":["30.11"],"32":["0.14","5.14"],"50":["30.11"],"60":["21.34","35.34"],"120":["35.34"],"150":["22.1","36.1"],"222":["30.5"],"400":["30.4"],"404":["2.12","7.12"],"1000":["21.2"],"二级属性":["0.0","5.0"],"mp4":["0.1","0.13","0.15","2.1","2.3","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.19","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.9","4.11","4.12","4.13","4.16","4.17","4.19","4.23","4.24","4.26","4.27","4.33","4.34","4.35","4.38","5.1","5.13","5.15","7.1","7.3","7.4","7.5","7.6","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.19","7.21","7.22","7.24","7.25","7.26","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.1","9.2","9.3","9.7","9.8","9.9","9.11","9.12","9.16","9.17","9.19","9.23","9.24","9.26","9.27","9.28","9.31","9.32","9.33","9.34","9.35","10.5","21.33","21.34","21.37","22.4","23.5","30.6","35.8","35.25","35.33","35.36","35.37","35.38","36.0","36.4"],"console":["0.1","0.6","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","4.8","4.12","4.13","4.14","4.21","4.24","4.25","4.26","4.27","4.28","4.31","4.32","4.33","4.34","5.1","5.6","6.2","6.3","6.4","6.5","6.7","6.8","6.9","6.10","6.11","6.12","9.8","9.25","9.28","9.31","9.32","9.38","21.29","21.31","21.32","35.29","35.30","35.31"],"info":["0.1","0.6","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.12","4.8","4.12","4.14","4.21","4.25","4.27","4.28","4.31","4.32","4.33","4.34","5.1","5.6","6.2","6.3","6.4","6.5","6.7","6.8","6.9","6.10","6.12","9.25","9.31","9.38","21.29","21.31","21.32","35.29","35.30","35.31"],"warning":["0.2","0.3","1.6","4.29","5.2","5.3","6.6","9.20","9.29","9.30","9.38","10.4","20.0","21.2","21.4","21.18","21.20","21.41","23.4","34.0","35.11","35.41","35.47"],"提示":["0.2","0.3","1.0","5.2","5.3","6.0","9.30","35.47"],"在上面这个例子中":["0.2","5.2"],"为了方便区别":["0.3","5.3"],"元素和普通对象":["0.3","5.3"],"播放器里的所有":["0.3","5.3"],"mouseenter":["0.4","5.4"],"你可以修改":["0.5","5.5"],"即可":["0.5","5.5"],"zh":["0.7","5.7"],"cn":["0.7","5.7"],"your":["0.7","5.7","9.30","21.3","35.3"],"ready":["0.8","0.12","0.13","0.14","0.15","0.16","2.2","2.6","2.18","2.23","2.30","4.8","4.10","4.11","4.12","4.13","4.14","4.16","4.17","4.21","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","5.8","5.12","5.13","5.14","5.15","5.16","7.2","7.6","7.18","7.23","7.30","9.8","9.12","9.21","9.25","9.26","9.27","9.28","9.31","9.32","9.33","9.34"],"html":["0.9","0.10","0.11","4.18","4.20","5.9","5.10","5.11","16.5","29.5","30.8"],"some":["0.9","0.10","0.11","5.9","5.10","5.11"],"text":["0.9","0.10","0.11","5.9","5.10","5.11","20.0"],"settimeout":["0.9","4.10","5.9","35.2"],"position":["0.10","4.20","4.35","5.10","16.5","29.5","30.8"],"left":["0.10","5.10"],"true":["0.11","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.38","4.2","4.3","4.19","5.11","7.17","7.18","7.20","7.21","7.22","7.23","7.24","7.25","7.38","9.2","9.3","9.19","22.4","30.13","30.14","35.11","35.33","35.47","36.0","36.4"],"on":["0.12","0.13","0.14","0.15","0.16","2.6","2.12","2.18","2.23","2.30","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.14","4.16","4.17","4.19","4.21","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","5.12","5.13","5.14","5.15","5.16","7.6","7.12","7.18","7.23","7.30","9.7","9.8","9.12","9.21","9.25","9.26","9.27","9.28","9.31","9.32","9.33","9.34","10.3","21.4"],"subtitleoffset":["0.16","5.16"],"return":["0.17","5.17","19.7","22.1","22.2","30.7","30.10","33.7","36.1","36.2"],"name":["0.17","5.17"],"something":["0.17","5.17"],"dosomething":["0.17","5.17"],"有些属性是全大写的":["1.0","6.0"],"app":["1.1","4.4","4.5","4.6","4.22","4.36","4.37","4.39","4.40","6.1","9.5","9.6","9.10","9.11","9.13","9.15","9.16","9.17","9.22","9.24","9.36","9.37","9.40","16.4","21.5","21.6","21.10","21.14","21.25","21.33","21.36","21.37","21.38","21.39","22.0","22.4","29.4","35.5","35.6","35.7","35.9","35.10","35.13","35.14","35.15","35.16","35.17","35.19","35.21","35.22","35.23","35.24","35.26","35.28","35.36","35.37","35.38","35.39","35.42","35.45","35.46","35.48","35.49"],"url":["1.1","4.4","4.5","4.6","4.15","4.22","4.36","4.37","4.38","4.39","4.40","6.1","9.5","9.6","9.13","9.15","9.16","9.17","9.19","9.22","9.23","9.24","9.36","9.37","9.40","10.5","16.4","21.3","21.6","21.25","21.36","22.0","22.4","23.5","29.4","35.3","35.5","35.6","35.9","35.10","35.14","35.15","35.16","35.17","35.18","35.22","35.25","35.26","35.36","35.39","35.46"],"assets":["1.1","2.1","2.3","2.4","2.8","2.9","2.10","2.11","2.15","4.1","4.4","4.5","4.6","4.15","4.22","4.36","4.37","4.38","4.39","4.40","6.1","7.1","7.3","7.4","7.8","7.9","7.10","7.11","7.15","9.1","9.5","9.6","9.7","9.9","9.10","9.11","9.13","9.15","9.16","9.17","9.19","9.22","9.23","9.24","9.26","10.5","16.4","21.6","21.25","21.33","21.36","21.37","21.38","22.0","22.4","23.5","29.4","35.5","35.6","35.8","35.18","35.25","35.36","35.37","35.38","35.39"],"全部工具函数请参考以下地址":["1.6","6.6"],"js":["1.11","6.11","9.4","9.39","19.9","21.22","21.27","21.36","21.38","21.42","21.43","21.48","33.9"],"emit":["2.0","7.0"],"focus":["2.0","7.0"],"移除事件":["2.0","7.0"],"sample":["2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.13","2.14","2.15","2.16","2.19","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","4.1","4.5","4.6","4.7","4.9","4.15","4.22","4.23","4.35","4.36","4.37","4.38","4.39","7.1","7.3","7.4","7.5","7.8","7.9","7.10","7.11","7.13","7.14","7.15","7.16","7.19","7.26","7.31","7.32","7.33","7.34","7.35","7.36","7.37","9.1","9.3","9.5","9.6","9.7","9.8","9.9","9.10","9.11","9.12","9.13","9.16","9.17","9.19","9.23","9.24","9.26","9.27","9.33","9.34","9.35","10.5","16.4","21.25","21.33","21.36","21.37","22.0","22.4","23.5","29.4","35.5","35.6","35.8","35.18","35.25","35.36","35.37","35.38","35.39","36.0"],"video":["2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.13","2.14","2.15","2.16","2.19","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.5","4.6","4.7","4.9","4.13","4.15","4.16","4.17","4.19","4.22","4.23","4.24","4.26","4.35","4.38","7.1","7.3","7.4","7.5","7.8","7.9","7.10","7.11","7.13","7.14","7.15","7.16","7.19","7.26","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.19","9.26","9.27","9.28","9.32","9.34","9.35","10.5","21.25","21.33","21.37","22.4","23.5","30.6","35.8","35.18","35.25","35.33","35.36","35.37","35.38","36.0","36.4"],"t":["2.7","7.7"],"setting":["2.17","2.20","2.27","7.17","7.20","7.27","22.4","30.13","36.0","36.4"],"srt":["2.27","2.28","2.29","7.27","7.28","7.29"],"并调用":["2.43","7.43"],"但数据意外未出现":["2.55","7.55"],"show":["3.0","8.0","11.0","12.0","13.0","21.29","21.31","24.0","25.0","26.0"],"block":["3.0","8.0"],"hide":["3.0","8.0"],"controls":["3.0","4.35","8.0","9.35","30.8"],"tooltip":["3.0","8.0","34.0","35.32"],"一级属性":["4.0"],"muted":["4.2","4.3","4.23","9.2","9.3","15.4","28.4","35.11"],"seek":["4.10","4.11"],"right":["4.18","4.20","16.5","29.5","30.8","35.29"],"switch":["4.18","16.5","29.5"],"click":["4.18","4.20","9.38","21.29","21.32","30.8","30.9","30.12","35.29","35.31","35.32"],"function":["4.18","4.20","10.6","21.29","21.32","30.7","30.9","30.12","35.29","35.31"],"which":["9.0"],"var":["9.4","9.39","11.0","21.7","21.9","21.13","21.15","21.16","21.17","21.19","21.21","21.22","21.23","21.24","21.26","21.27","21.35","21.36","21.38","21.42","21.43","21.45","21.46","21.48","21.49","24.0","35.12","35.35","35.43"],"art":["9.4","9.10","9.36","9.37","9.39","21.7","21.9","21.13","21.15","21.16","21.17","21.19","21.21","21.22","21.23","21.24","21.26","21.28","21.36","21.38","21.39","21.43","21.45","21.46","21.48","21.49","35.12","35.27","35.43"],"new":["9.4","9.36","9.37","9.39","11.0","21.3","21.5","21.7","21.9","21.13","21.14","21.15","21.16","21.17","21.19","21.21","21.22","21.23","21.24","21.26","21.28","21.35","21.36","21.38","21.39","21.43","21.45","21.46","21.48","21.49","24.0","35.7","35.12","35.35","35.38","35.42","35.43"],"artplayer":["9.4","9.10","9.11","9.13","9.36","9.37","9.39","11.0","21.3","21.5","21.6","21.7","21.9","21.10","21.13","21.14","21.15","21.16","21.17","21.19","21.21","21.22","21.23","21.24","21.26","21.28","21.35","21.36","21.37","21.38","21.39","21.45","21.46","21.49","24.0","35.7","35.12","35.13","35.19","35.21","35.23","35.24","35.28","35.35","35.38","35.42","35.43","35.45","35.48","35.49"],"container":["9.4","9.10","9.11","9.13","9.15","9.22","9.36","9.37","9.40","21.5","21.6","21.7","21.9","21.10","21.13","21.14","21.15","21.16","21.17","21.19","21.21","21.23","21.26","21.27","21.28","21.36","21.37","21.38","21.39","21.46","21.49","22.0","35.3","35.7","35.9","35.10","35.13","35.14","35.15","35.16","35.17","35.19","35.21","35.22","35.23","35.24","35.26","35.28","35.38","35.42","35.45","35.46","35.48","35.49"],"no":["9.14"],"such":["9.14"],"as":["9.14"],"live":["9.14"],"or":["9.14","21.1"],"due":["9.18","9.20","21.18"],"to":["9.18","9.20","9.29"],"the":["9.18","21.11"],"browser":["9.18","9.20","21.18"],"security":["9.18","9.20","21.18"],"mechanism":["9.18","9.20"],"page":["9.18","21.11"],"must":["9.18"],"have":["9.18"],"tip":["9.20","9.29","9.38","10.4","20.0","21.2","21.4","21.18","21.20"],"before":["9.20"],"jpg":["9.21"],"json":["9.25"],"stringify":["9.25"],"delete":["9.29"],"looping":["9.29"],"just":["9.29"],"useful":["9.30"],"but":["9.30","21.47"],"if":["9.38","21.47","30.9","30.10"],"you":["9.38","20.2"],"pnpm":["10.1","15.2","16.2","17.2","18.2","19.3","23.1","28.2","29.2","30.2","31.2","32.2","33.3"],"com":["10.2","23.2"],"player":["10.3","21.41"],"depends":["10.3"],"so":["10.3"],"modifying":["10.4"],"https":["10.5","23.5"],"org":["10.5","23.5"],"style":["10.5","21.32","23.4","23.5","30.11","35.32"],"width":["10.5","21.1","22.3","35.1","36.4"],"600px":["10.5"],"height":["10.5","21.1","35.1"],"param":["10.6"],"getinstance":["10.6"],"else":["11.0","12.0","24.0","25.0"],"notice":["11.0","12.0","13.0","24.0","25.0","26.0"],"unsupported":["11.0","12.0","13.0","24.0","25.0","26.0"],"playback":["11.0","12.0","13.0","24.0","25.0","26.0"],"format":["11.0","12.0","13.0","24.0","25.0","26.0"],"mpd":["11.0","24.0"],"application":["13.0","26.0"],"vnd":["13.0","26.0"],"apple":["13.0","26.0"],"mpegurl":["13.0","26.0"],"src":["13.0","21.40","22.3","26.0","35.40","36.3"],"m3u8":["13.0","26.0"],"3a":["14.0","27.0"],"2f":["14.0","27.0"],"2ftracker":["14.0","27.0"],"btorrent":["14.0","27.0"],"xyz":["14.0","27.0"],"fastcast":["14.0","27.0"],"nz":["14.0","27.0"],"openwebtorrent":["14.0","27.0"],"广告总时长":["15.4","28.4"],"totalduration":["15.4","28.4"],"视频广告是否默认静音":["15.4","28.4"],"false":["15.4","22.3","28.4","36.3"],"多语言支持":["15.4","28.4"],"i18n":["15.4","28.4"],"close":["15.4","28.4"],"关闭广告":["15.4","28.4"],"countdown":["15.4","28.4"],"s秒":["15.4","28.4"],"button":["16.5","29.5"],"ui":["16.5","29.5"],"播放器的功能":["19.1","33.1"],"keyword":["19.7","33.7"],"currenttime":["19.7","33.7"],"await":["19.7","33.7"],"event":["19.8","30.9","33.8"],"artplayerpluginiframe":["19.11","33.11"],"type":["19.12","33.12"],"prompt":["20.0","30.10"],"for":["20.0"],"current":["20.0"],"can":["20.0","20.2","21.41"],"only":["20.0","21.41"],"be":["20.0"],"added":["20.0"],"not":["20.0"],"also":["20.2"],"after":["20.2"],"400px":["21.1","35.1"],"300px":["21.1","35.1"],"use":["21.1"],"three":["21.2"],"file":["21.2"],"formats":["21.2"],"are":["21.2"],"supported":["21.2"],"size":["21.8"],"last":["21.8"],"and":["21.8"],"enter":["21.11"],"by":["21.11"],"css":["21.12"],"div":["21.12","23.3"],"classname":["21.12"],"run":["21.12"],"code":["21.12","21.42"],"policy":["21.18"],"space":["21.20"],"toggle":["21.20"],"play":["21.20"],"pause":["21.20"],"these":["21.20"],"document":["21.27"],"queryselector":["21.27"],"args":["21.29","21.32","35.29","35.31"],"setting02":["21.30","35.30"],"color":["21.32","35.32"],"green":["21.32","35.32"],"one":["21.34","35.34"],"more":["21.34","35.34"],"chance":["21.34","35.34"],"img":["21.40","22.4","36.4"],"ploading":["21.40","35.40"],"gif":["21.40","35.40"],"state":["21.40","35.40","36.3"],"identification":["21.41"],"resolve":["21.41"],"this":["21.41"],"cache":["21.47"],"progress":["21.47"],"of":["21.47"],"quality":["22.1","36.1"],"1080p":["22.1","36.1"],"heigth":["22.3","36.4"],"svg":["22.3","36.3"],"settings":["22.4","36.4"],"5x":["22.4","36.4"],"class":["23.3"],"属性":["23.6"],"export":["23.6"],"输入框最小宽度":["30.4"],"填":["30.4"],"则为无限制":["30.4"],"maxwidth":["30.4"],"输入框最大宽度":["30.4"],"infinity":["30.4"],"是否显示描边":["30.5"],"mode":["30.5"],"弹幕模式":["30.5"],"0表示滚动":["30.5"],"1静止":["30.5"],"plugins":["30.6","30.13","30.14"],"artplayerplugindanmuku":["30.6","30.13","30.14"],"弹幕":["30.6"],"resovle":["30.7"],"xml":["30.8"],"隐藏弹幕":["30.8"],"请输入弹幕文本":["30.10"],"弹幕测试文本":["30.10"],"trim":["30.10"],"min":["30.11"],"max":["30.11"],"step":["30.11"],"value":["30.11"],"display":["30.11"],"flex":["30.11"],"alignitems":["30.11"],"stop":["30.15"],"弹幕停止":["30.15"],"start":["30.15"],"mounted":["34.0"],"组件挂载后触发":["34.0"],"组件的提示文本":["34.0"],"add":["34.1"],"也可以实例化之后添加一个控制器":["34.2"],"或者使用":["35.1"],"aspect":["35.1"],"热键":["35.20"],"描述":["35.20"],"增加音量":["35.20"],"降低音量":["35.20"],"innerhtml":["35.27"],"opacity":["35.29"],"sd":["35.33"],"ua":["35.36"],"后缀的识别":["35.41"],"播放器只能解析这种后缀":["35.41"],"因为播放器默认使用":["35.47"],"item":["36.3"],"slider":["36.4"]},{"0":["2.7","7.7","10.5","23.5"],"1":["30.7"],"2":["4.27","30.5"],"4":["21.12"],"5":["4.7","4.8","4.13","9.7","35.8"],"8":["2.0","7.0"],"9":["4.28","21.1"],"10":["4.11","9.10","9.11","21.37"],"16":["4.28","9.28","21.1","30.10","35.1"],"22":["22.4"],"100":["19.5","21.37","33.5","35.37"],"111":["30.7"],"120":["21.34"],"180":["21.34","35.34"],"222":["30.7"],"240":["35.34"],"333":["30.5"],"360":["36.1"],"720":["22.1","36.1"],"1000":["0.9","0.10","0.11","0.16","5.9","5.10","5.11","5.16","35.2"],"1024":["14.0","27.0"],"1080":["22.1","36.1"],"5000":["0.14","5.14"],"比较少用":["0.0","5.0"],"warning":["0.1","0.6","0.7","0.8","0.9","0.10","0.11","4.14","4.18","4.20","4.25","4.30","4.38","5.1","5.6","5.7","5.8","5.9","5.10","5.11","9.25","21.29","21.30","21.31","21.32","21.36","21.40","23.3","35.2","35.4","35.8","35.18","35.20","35.31","35.32","35.40"],"提示":["0.1","4.14","4.18","4.20","4.29","4.30","5.1","23.3","34.0","35.2","35.8","35.11","35.18"],"假如直接修改这个":["0.1","5.1"],"当使用":["0.2","5.2"],"访问播放器时":["0.2","5.2"],"会返回":["0.2","5.2"],"元素都是以":["0.3","5.3"],"开头命名的":["0.3","5.3"],"这是所有":["0.3","5.3"],"元素的定义":["0.3","5.3"],"mouseleave":["0.4","5.4"],"poster":["0.4","5.4"],"jpg":["0.4","5.4"],"then":["0.4","5.4"],"img":["0.4","5.4"],"loading":["0.6","5.6"],"这是所有图标的定义":["0.6","5.6"],"types":["0.6","1.6","5.6","6.6"],"使用":["0.7","5.7"],"只能更新实例化之后的":["0.7","5.7"],"to":["0.8","5.8","21.2","21.30","21.31","21.32"],"play":["0.8","3.0","4.2","5.8","8.0","9.2","21.2"],"如果想马上隐藏":["0.8","5.8"],"false":["0.9","0.10","0.11","0.15","0.16","5.9","5.10","5.11","5.15","5.16","21.29","21.31","35.29","35.31"],"settimeout":["0.10","0.11","0.13","0.14","0.15","0.16","4.2","4.3","4.7","4.11","4.19","5.10","5.11","5.13","5.14","5.15","5.16","9.2","9.7","9.10","9.11"],"srt":["0.12","5.12"],"true":["0.13","2.19","4.1","4.12","4.23","4.31","5.13","7.19","9.1","9.23","9.31","16.4","21.25","21.33","22.0","29.4","35.18","35.25"],"on":["0.17","2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.13","2.14","2.15","2.16","2.17","2.19","2.20","2.21","2.22","2.24","2.25","2.26","2.27","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.4","4.5","4.6","4.15","4.22","4.23","4.36","4.37","5.17","7.1","7.3","7.4","7.5","7.8","7.9","7.10","7.11","7.13","7.14","7.15","7.16","7.17","7.19","7.20","7.21","7.22","7.24","7.25","7.26","7.27","7.28","7.29","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","9.1","9.2","9.3","9.5","9.6","9.9","9.10","9.11","9.13","9.15","9.16","9.17","9.19","9.22","9.23","9.24","9.36","9.37","15.4","28.4","30.13","30.14","35.4"],"说明这些属性是不稳定的":["1.0","6.0"],"可能会在将来被更改":["1.0","6.0"],"sample":["1.1","4.4","4.40","6.1","9.4","9.15","9.22","9.36","9.37","9.39","9.40","12.0","21.5","21.6","21.7","21.9","21.10","21.13","21.14","21.15","21.16","21.17","21.19","21.21","21.22","21.23","21.24","21.26","21.28","21.35","21.38","21.39","21.42","21.45","21.46","21.49","25.0","35.7","35.9","35.10","35.12","35.13","35.14","35.15","35.16","35.17","35.19","35.21","35.22","35.23","35.24","35.26","35.28","35.35","35.42","35.43","35.45","35.46","35.48","35.49"],"video":["1.1","4.4","4.39","6.1","9.4","9.22","9.39","16.4","21.10","21.14","21.28","21.36","22.0","29.4","35.5","35.6","35.7","35.9","35.10","35.13","35.14","35.15","35.16","35.17","35.19","35.21","35.22","35.23","35.24","35.26","35.28","35.39","35.45","35.46","35.48","35.49"],"mp4":["1.1","4.4","4.5","4.6","4.15","4.22","4.36","4.37","4.39","4.40","6.1","9.4","9.5","9.6","9.10","9.13","9.15","9.22","9.36","9.37","9.39","9.40","16.4","21.5","21.6","21.15","21.16","21.17","21.25","21.36","21.38","21.39","22.0","29.4","35.5","35.6","35.9","35.10","35.14","35.15","35.16","35.17","35.18","35.22","35.26","35.39","35.46"],"artplayer":["1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","6.2","6.3","6.4","6.5","6.7","6.8","6.9","6.10","6.11","6.12","12.0","13.0","21.12","21.42","21.43","21.48","25.0","26.0"],"d":["1.6","6.6"],"info":["1.11","4.13","4.24","4.26","4.38","4.39","6.11","9.8","9.12","9.13","9.21","9.24","9.26","9.27","9.28","9.32","9.33","9.34","10.5","19.8","22.3","23.5","33.8","35.32","36.3"],"const":["2.0","4.16","4.17","7.0","9.16","9.17","16.5","22.3","29.5","30.11","36.3"],"onready":["2.0","7.0"],"console":["2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","4.23","4.38","4.39","4.40","7.1","7.3","7.4","7.5","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.17","7.18","7.20","7.21","7.22","7.23","7.24","7.25","7.26","7.28","7.29","7.31","7.32","7.33","7.34","7.35","7.36","7.37","9.12","9.13","9.21","9.24","9.26","9.27","9.33","9.34","9.40","10.5","15.4","19.8","22.3","23.5","28.4","30.14","33.8","35.32","36.3"],"event":["2.5","2.14","4.38","7.5","7.14","36.3"],"reconnecttime":["2.12","7.12"],"state":["2.13","2.16","2.21","2.22","2.23","2.24","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","7.13","7.16","7.21","7.22","7.23","7.24","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38","36.4"],"height":["2.18","7.18","23.5"],"datauri":["2.25","7.25"],"currenttime":["2.26","7.26","19.12","33.12"],"offset":["2.27","7.27"],"text":["2.28","7.28","30.7"],"ass":["2.30","7.30"],"load":["2.43","7.43"],"方法重新加载它":["2.43","7.43"],"click":["3.0","4.35","4.38","8.0","9.35","15.4","16.5","28.4","29.5"],"marginright":["3.0","8.0"],"比较常用":["4.0"],"muted":["4.1","9.1","9.23"],"ready":["4.2","4.3","4.5","4.6","4.7","4.9","4.15","4.19","4.22","4.23","9.2","9.3","9.5","9.6","9.7","9.9","9.10","9.11","9.13","9.16","9.17","9.19","9.23","9.24","30.14"],"seek":["4.7","9.7","9.10","9.11"],"t":["4.10","4.21"],"有的视频是没有时长的":["4.14"],"async":["4.16","4.17","9.16","9.17"],"await":["4.16","4.17","9.16","9.17"],"json":["4.25"],"stringify":["4.25"],"删除区间循环播放":["4.29"],"只需要设置":["4.29"],"为":["4.29"],"即可":["4.29"],"resize":["4.30","30.13"],"playsinline":["4.31","9.31","35.39"],"m3u8":["4.33","21.2","35.42"],"000":["4.34"],"right":["4.35","9.35"],"html":["4.35","9.35","10.1","23.1"],"is":["9.0","15.4","21.47","28.4"],"more":["9.0","21.11"],"commonly":["9.0"],"app":["9.4","9.39","11.0","12.0","13.0","19.5","19.13","21.3","21.7","21.9","21.12","21.13","21.15","21.16","21.17","21.19","21.21","21.22","21.23","21.24","21.26","21.27","21.28","21.35","21.42","21.43","21.45","21.46","21.48","21.49","24.0","25.0","26.0","33.5","33.13","35.3","35.12","35.35","35.43"],"url":["9.4","9.39","21.5","21.7","21.9","21.10","21.13","21.14","21.15","21.16","21.17","21.19","21.21","21.22","21.23","21.24","21.26","21.28","21.35","21.39","21.43","21.45","21.46","21.48","21.49","35.7","35.12","35.13","35.19","35.21","35.23","35.24","35.27","35.28","35.35","35.43","35.45","35.48","35.49"],"assets":["9.4","9.36","9.37","9.39","9.40","12.0","21.5","21.7","21.9","21.10","21.13","21.14","21.15","21.16","21.17","21.19","21.21","21.22","21.23","21.24","21.26","21.28","21.35","21.39","21.42","21.43","21.45","21.46","21.48","21.49","25.0","35.3","35.7","35.9","35.10","35.12","35.13","35.14","35.15","35.16","35.17","35.19","35.21","35.22","35.23","35.24","35.26","35.27","35.28","35.35","35.42","35.43","35.45","35.46","35.48","35.49"],"that":["9.14"],"not":["9.14","9.30"],"been":["9.14"],"decoded":["9.14"],"the":["9.14","21.20"],"obtained":["9.14"],"interaction":["9.18","9.20"],"before":["9.18"],"triggering":["9.18","9.20"],"for":["9.18","9.20","21.11"],"page":["9.20"],"must":["9.20","10.3","21.11"],"have":["9.20","10.3"],"tip":["9.25","21.36"],"dimension":["9.25"],"option":["9.29","20.0"],"aer":["9.29"],"two":["9.29"],"does":["9.30"],"know":["9.30"],"specific":["9.30"],"position":["9.35"],"need":["9.38","21.2","21.47"],"some":["9.38"],"events":["9.38"],"only":["9.38","21.20"],"exist":["9.38"],"in":["9.38","10.4","21.4"],"life":["9.38"],"cycle":["9.38"],"container":["9.39","11.0","12.0","13.0","21.3","21.22","21.24","21.35","21.42","21.43","21.45","21.48","24.0","25.0","26.0","35.35","35.43"],"your":["10.3","21.6","35.6"],"a":["10.3","20.0"],"following":["10.3","21.31","21.32"],"links":["10.3"],"directly":["10.4"],"will":["10.4","21.20"],"400px":["10.5","23.5"],"margin":["10.5","23.5"],"60px":["10.5","23.5"],"auto":["10.5","23.5"],"properties":["10.6"],"export":["10.6"],"default":["10.6","23.6"],"data":["10.6","19.12","23.6","33.12"],"return":["10.6","23.6"],"akamaized":["11.0","24.0"],"net":["11.0","24.0"],"akamai":["11.0","24.0"],"bbb":["11.0","24.0"],"30fps":["11.0","24.0"],"var":["12.0","13.0","21.12","25.0","26.0"],"new":["12.0","21.12","21.27","21.42","25.0","35.27"],"test":["13.0","21.36","26.0","35.36"],"streams":["13.0","26.0"],"mux":["13.0","26.0"],"x36xhzz":["13.0","26.0"],"io":["14.0","27.0"],"ws":["14.0","27.0"],"2fwebtorrent":["14.0","27.0"],"2ftorrents":["14.0","27.0"],"2fsintel":["14.0","27.0"],"surround":["14.0","27.0"],"detail":["15.4","28.4"],"查看详情":["15.4","28.4"],"canbeclosed":["15.4","28.4"],"s秒后可关闭广告":["15.4","28.4"],"ad":["15.4","28.4"],"clicked":["15.4","28.4"],"fullscreen":["16.4","29.4"],"fullscreenweb":["16.4","29.4"],"function":["16.5","29.5","30.8","30.11","35.32"],"plugins":["16.5","29.5"],"artplayerplugincontrol":["16.5","29.5"],"或者获取":["19.1","33.1"],"div":["19.5","19.13","33.5","33.13"],"class":["19.5","19.13","33.5","33.13"],"style":["19.5","33.5"],"width":["19.5","22.4","23.5","33.5"],"or":["19.7","21.2","33.7"],"resolve":["19.7","33.7"],"method":["19.7","33.7"],"currenttime2":["19.7","33.7"],"里":["19.10","33.10"],"art":["19.12","21.12","21.27","33.12"],"destroyed":["20.0"],"use":["20.0"],"quickly":["20.0"],"obtain":["20.0"],"button1":["20.2","34.2"],"aspect":["21.1"],"ratio":["21.1","35.1"],"by":["21.2"],"ogg":["21.2","35.2"],"and":["21.2","21.18"],"webm":["21.2","35.2"],"if":["21.2","21.4","21.18"],"callback":["21.4"],"instance":["21.4"],"but":["21.4"],"read":["21.8"],"value":["21.8"],"at":["21.8"],"be":["21.11"],"js":["21.12"],"source":["21.18"],"address":["21.18"],"website":["21.18"],"are":["21.18"],"take":["21.20"],"effect":["21.20"],"after":["21.20"],"player":["21.20"],"gets":["21.20"],"innerhtml":["21.27"],"mounted":["21.29","30.11","35.29"],"please":["21.29","21.30","21.31","21.32"],"refer":["21.29","21.30","21.31","21.32"],"sd":["21.33"],"480p":["21.33","35.33"],"谁でもいいはずなのに":["21.34","35.34"],"夏の想い出がまわる":["21.34","35.34"],"ua":["21.36"],"iphone":["21.36","35.36"],"gi":["21.36","35.36"],"png":["21.37","21.40","35.37","35.40"],"definition":["21.40"],"of":["21.40"],"however":["21.41"],"cannot":["21.41"],"resolved":["21.41"],"zh":["21.44","35.44"],"cn":["21.44","35.44"],"tw":["21.44","35.44"],"same":["21.47"],"different":["21.47"],"you":["21.47"],"setting":["22.0","30.11"],"720p":["22.1","36.1"],"360p":["22.1","36.1"],"item":["22.3"],"nextstate":["22.3","36.3"],"heigth":["22.4"],"src":["22.4","36.4"],"svg":["22.4","36.4"],"播放器的尺寸依赖于容器":["23.3"],"的尺寸":["23.3"],"所以你的容器":["23.3"],"非响应式":["23.4"],"在":["23.4"],"600px":["23.5"],"则为":["30.4"],"宽度":["30.4"],"theme":["30.4"],"dark":["30.4"],"输入框自定义挂载时的主题色":["30.4"],"默认为":["30.4"],"可以选填亮色":["30.4"],"light":["30.4"],"beforeemit":["30.4"],"trim":["30.4"],"red":["30.5"],"文件":["30.6"],"和":["30.6"],"bilibili":["30.6"],"网站的弹幕格式一致":["30.6"],"time":["30.7"],"show":["30.9","35.29","35.31"],"target":["30.9"],"innertext":["30.9"],"else":["30.9"],"color":["30.10"],"math":["30.10"],"floor":["30.10"],"random":["30.10"],"0xffffff":["30.10"],"tostring":["30.10"],"center":["30.11"],"queryselector":["30.11"],"切换弹幕":["30.12"],"config":["30.12"],"xml":["30.13","30.14"],"弹幕开始":["30.15"],"hide":["30.15"],"弹幕隐藏":["30.15"],"当前组件只能添加":["34.0"],"并没有销毁的功能":["34.0"],"通过":["34.0"],"选项可以快速获取组件的":["34.0"],"add":["34.2","34.3"],"默认支持三种视频文件格式":["35.2"],"播放器会缓存最后一次音量的大小":["35.8"],"假如希望默认进入页面就能自动播放视频":["35.11"],"必需为":["35.11"],"视频快进":["35.20"],"视频快退":["35.20"],"space":["35.20"],"切换播放":["35.20"],"暂停":["35.20"],"subtitle":["35.25"],"组件配置":["35.31"],"args":["35.32"],"hd":["35.33"],"webkit":["35.39"],"全部图标的定义":["35.40"],"但无法解析这种后缀":["35.41"],"作为":["35.47"],"key":["35.47"],"来缓存播放进度的":["35.47"],"但假如你的同一个视频的":["35.47"]},{"0":["4.9","4.10","4.11","4.14","4.21","9.9","9.10","9.11","9.14","9.21"],"2":["4.7","9.7","9.27","30.7"],"3":["30.5","30.7"],"5":["4.5","4.6","9.5","9.6","9.8","9.13"],"9":["9.28","35.1"],"10":["35.37"],"100":["19.13","33.13"],"240":["21.34"],"300":["21.34","35.34"],"333":["30.7"],"360":["22.1"],"1000":["0.13","0.15","5.13","5.15","19.7","33.7"],"3000":["4.2","4.3","4.7","4.10","4.11","4.19","9.2","9.3","9.7","9.10","9.11","9.19"],"对象":["0.1","5.1"],"播放器不会马上做出响应":["0.1","5.1"],"false":["0.2","0.13","4.19","5.2","5.13","9.19","14.0","27.0"],"即使用原生的播放器":["0.2","5.2"],"而不是":["0.2","5.2"],"播放器":["0.2","5.2"],"types":["0.3","2.0","5.3","7.0","21.40","21.44","35.40","35.44"],"d":["0.3","0.6","2.0","5.3","5.6","7.0","21.40","21.44","35.40","35.44"],"ts":["0.3","0.6","1.6","2.0","5.3","5.6","6.6","7.0","21.40","21.44","35.40","35.44"],"warning":["0.4","0.14","0.16","2.0","5.4","5.14","5.16","7.0","10.5","21.1","21.37","21.44","23.5","35.1","35.29","35.30","35.36","35.37","35.44"],"提示":["0.4","0.14","4.25","4.38","5.4","5.14","35.1","35.4","35.20","35.36"],"假如你需要一些":["0.4","4.38","5.4"],"事件只存在于播放器的生命周期上时":["0.4","4.38","5.4"],"强烈建议使用这些函数":["0.4","5.4"],"以避免造成内存泄漏":["0.4","4.38","5.4"],"your":["0.5","5.5"],"假如想在实例化之前更新":["0.7","5.7"],"请使用基础选项的":["0.7","5.7"],"来更新":["0.7","5.7"],"的显示":["0.8","5.8"],"组件配置":["0.9","0.10","0.11","5.9","5.10","5.11","35.29","35.32"],"请参考以下地址":["0.9","0.10","0.11","0.16","5.9","5.10","5.11","5.16","35.29","35.30","35.31","35.32"],"start":["0.9","0.10","0.11","0.16","5.9","5.10","5.11","5.16","21.29","21.30","21.31","21.32","35.29","35.30","35.31","35.32"],"component":["0.9","0.10","0.11","5.9","5.10","5.11","21.29","21.31","35.29","35.31","35.32"],"color":["0.12","5.12","21.38","35.38"],"red":["0.12","5.12"],"只在播放器获得焦点后":["0.14","5.14","35.20"],"如点击了播放器后":["0.14","5.14","35.20"],"这些快捷键才会生效":["0.14","5.14","35.20"],"true":["0.15","4.22","5.15","9.12","9.22","21.6","21.9","21.10","21.12","21.13","21.14","21.15","21.16","21.17","21.19","21.21","21.23","21.24","21.26","21.27","21.39","21.45","21.46","21.48","21.49","30.10","35.6","35.9","35.10","35.12","35.13","35.14","35.15","35.16","35.17","35.19","35.21","35.23","35.24","35.26","35.27","35.39","35.45","35.46","35.48","35.49"],"设置面板":["0.16","5.16"],"html":["0.16","5.16","15.2","16.2","17.2","18.2","19.3","28.2","29.2","30.2","31.2","32.2","33.3"],"ready":["0.17","2.0","4.1","4.4","5.17","7.0","9.1","9.4","9.15","9.22","11.0","12.0","13.0","14.0","24.0","25.0","26.0","27.0"],"off":["2.0","7.0"],"全部事件请参考以下地址":["2.0","7.0"],"events":["2.0","7.0"],"info":["2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.27","2.28","2.29","2.30","4.16","4.17","4.23","4.36","4.37","4.40","7.1","7.2","7.3","7.4","7.5","7.6","7.7","7.8","7.9","7.10","7.11","7.12","7.13","7.14","7.15","7.16","7.17","7.18","7.19","7.20","7.21","7.22","7.23","7.24","7.25","7.26","7.27","7.28","7.29","7.30","9.16","9.17","9.23","9.36","9.37","9.39","9.40","11.0","12.0","13.0","14.0","15.4","22.4","24.0","25.0","26.0","27.0","28.4","30.14","36.4"],"console":["2.2","2.6","2.7","2.19","2.27","2.30","2.38","4.16","4.17","4.36","4.37","7.2","7.6","7.7","7.19","7.27","7.30","7.38","9.16","9.17","9.23","9.36","9.37","9.39","11.0","12.0","13.0","14.0","22.4","24.0","25.0","26.0","27.0","36.4"],"log":["2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","7.31","7.32","7.33","7.34","7.35","7.36","7.37","7.38"],"pause":["3.0","8.0"],"layer":["3.0","8.0"],"png":["3.0","8.0"],"t":["4.9","4.11","9.9","9.10","9.11","9.21","9.29"],"name":["4.10"],"新视频地址":["4.11"],"例如直播中的视频或者没被解码完成的视频":["4.14"],"这个时候获取的时长会是":["4.14"],"由于浏览器安全机制":["4.18","4.20","35.18"],"触发窗口全屏前":["4.18"],"页面必须先存在交互":["4.18","4.20"],"例如用户点击过页面":["4.18","4.20"],"触发画中画前":["4.20"],"尺寸和坐标信息是通过":["4.25"],"getboundingclientrect":["4.25","9.25"],"获取的":["4.25"],"与":["4.29"],"option":["4.29"],"是两个不同的东西":["4.29"],"请勿弄乱":["4.29"],"当你的容器只有宽度":["4.30"],"但不知道具体高度时":["4.30"],"这个属性很有用":["4.30"],"它能自动计算出视频的高度":["4.30"],"但你需要确定设置这个属性的时机":["4.30"],"强烈建议使用该函数":["4.38"],"used":["9.0","21.36"],"settimeout":["9.3","9.19","19.7","33.7"],"on":["9.4","9.18","9.20","11.0","12.0","13.0","14.0","21.2","24.0","25.0","26.0","27.0"],"at":["9.14","21.41"],"this":["9.14","9.38"],"time":["9.14","9.30","21.41"],"will":["9.14","10.5","21.4"],"be":["9.14"],"example":["9.18","9.20"],"user":["9.18","9.20"],"has":["9.18","9.20"],"clicked":["9.18","9.20"],"are":["9.25"],"obtained":["9.25"],"through":["9.25","20.0"],"different":["9.29"],"things":["9.29"],"please":["9.29","21.2","21.11"],"don":["9.29"],"mix":["9.29"],"them":["9.29"],"up":["9.29"],"you":["9.30","21.41"],"need":["9.30"],"determine":["9.30"],"m3u8":["9.33","21.42","35.2"],"000":["9.34"],"we":["9.38"],"strongly":["9.38"],"recommend":["9.38"],"using":["9.38"],"avoid":["9.38"],"memory":["9.38"],"leakage":["9.38"],"script":["10.1","15.2","16.2","17.2","18.2","19.3","23.1","28.2","29.2","30.2","31.2","32.2","33.3"],"can":["10.3"],"see":["10.3"],"more":["10.3"],"examples":["10.3"],"packages":["10.3","23.3"],"template":["10.3","23.3"],"not":["10.4","10.5","21.4","21.36"],"change":["10.4","10.5","30.11"],"the":["10.4","10.5"],"player":["10.4"],"tip":["10.5","21.1","23.3"],"modifying":["10.5"],"directly":["10.5"],"in":["10.5","20.0","21.36"],"type":["11.0","13.0","14.0","24.0","26.0","27.0"],"customtype":["11.0","12.0","13.0","14.0","24.0","25.0","26.0","27.0"],"controls":["14.0","27.0"],"skipped":["15.4","28.4"],"skip":["15.4","28.4"],"plugins":["16.4","29.4"],"artplayerplugincontrol":["16.4","29.4"],"播放器的值":["19.1","33.1"],"height":["19.5","19.13","33.5","33.13"],"style":["19.13","33.13"],"width":["19.13","33.13"],"order":["20.0"],"which":["20.0"],"appear":["20.0"],"controlled":["20.0"],"all":["21.1","21.40"],"options":["21.1"],"only":["21.1"],"is":["21.1"],"required":["21.1"],"flv":["21.2","35.2"],"other":["21.2"],"refer":["21.2"],"libraries":["21.2"],"left":["21.2"],"assets":["21.3","21.12","21.27"],"sample":["21.3","21.12","21.27","21.43","21.48","35.3","35.27"],"video":["21.3","21.7","21.9","21.12","21.13","21.19","21.21","21.22","21.23","21.24","21.26","21.27","21.35","21.43","21.45","21.49","35.3","35.12","35.27","35.35","35.43"],"mp4":["21.3","21.7","21.9","21.10","21.12","21.13","21.14","21.19","21.21","21.22","21.23","21.24","21.26","21.27","21.28","21.35","21.43","21.45","21.46","21.48","21.49","35.3","35.7","35.12","35.13","35.19","35.21","35.23","35.24","35.27","35.28","35.35","35.43","35.45","35.48","35.49"],"uses":["21.4"],"arrow":["21.4"],"point":["21.4"],"jpg":["21.5","35.5"],"ffad00":["21.7","35.7"],"next":["21.8"],"initialization":["21.8"],"such":["21.8","21.20"],"as":["21.8","21.20"],"refreshing":["21.8"],"page":["21.8"],"information":["21.11"],"read":["21.11"],"policy":["21.11","35.11"],"changes":["21.11","35.11"],"url":["21.12","21.27"],"cross":["21.18"],"domain":["21.18"],"may":["21.18"],"fail":["21.18"],"focus":["21.20"],"clicking":["21.20"],"srt":["21.25","35.25"],"setting":["21.25","21.32","35.15","35.16","35.17","35.25"],"to":["21.29"],"following":["21.29","21.30"],"address":["21.29","21.30","21.31","21.32"],"for":["21.29","21.30","21.31","21.32"],"hd":["21.33"],"720p":["21.33","35.33"],"こんなとこにあるはずもないのに":["21.34","35.34"],"终わり":["21.34","35.34"],"if":["21.36","21.41"],"filled":["21.36"],"by":["21.36"],"generate":["21.37"],"preview":["21.37"],"online":["21.37"],"tool":["21.37","35.37"],"03a9f4":["21.38","35.38"],"font":["21.38","35.38"],"size":["21.38","35.38"],"30px":["21.38","35.38"],"webkit":["21.39"],"playsinline":["21.39"],"use":["21.41"],"better":["21.41"],"specify":["21.41"],"same":["21.41"],"definitions":["21.44"],"identify":["21.47"],"unique":["21.47"],"switchquality":["22.1","36.1"],"open":["22.3","36.3"],"return":["22.3","22.4","36.3","36.4"],"item":["22.4","36.4"],"x":["22.4","36.4"],"必须是有尺寸的":["23.3"],"以下链接可以看到更多的使用例子":["23.3"],"里直接修改":["23.4","23.5"],"是不会改变播放器的":["23.4","23.5"],"非响应式":["23.5"],"在":["23.5"],"发送弹幕前的自定义校验":["30.4"],"通过":["30.4"],"mount":["30.4"],"选项可以自定义输入框挂载的位置":["30.4"],"默认挂载于播放器底部":["30.4"],"仅在当宽度小于最小值时生效":["30.4"],"document":["30.4"],"queryselector":["30.4"],"artplayer":["30.4"],"green":["30.5"],"显示弹幕":["30.8","30.9"],"hide":["30.9"],"border":["30.10"],"addeventlistener":["30.11"],"number":["30.11"],"v2":["30.12"],"show":["30.15"],"弹幕显示":["30.15"],"destroy":["30.15"],"弹幕销毁":["30.15"],"选项可以控制组件出现的顺序":["34.0"],"全部选项里":["35.1"],"只有":["35.1"],"是必填的":["35.1"],"如需要播放":["35.2"],"或者":["35.2"],"等其它格式":["35.2"],"请参考左侧的":["35.2"],"第三方库":["35.2"],"回调函数里的":["35.4"],"就是播放器实例":["35.4"],"但回调函数假如使用了箭头函数":["35.4"],"则不会指向播放器实例":["35.4"],"screenshot":["35.6"],"下次初始化时":["35.8"],"如刷新页面":["35.8"],"播放器会读取该缓存值":["35.8"],"更多信息请阅读":["35.11"],"假如视频源地址和网站是跨域的":["35.18"],"可能会出现截图失败":["35.18"],"假如该选项不填":["35.36"],"则默认使用本播放器":["35.36"],"在线生成预览图":["35.37"],"thumbnail":["35.37"],"所以假如你使用了":["35.41"],"最好同时要指明":["35.41"],"function":["35.42"],"写法参考":["35.44"],"是不同的话":["35.47"],"那么你需要使用":["35.47"],"来标识视频的唯一":["35.47"],"event":["36.4"]}]'},e={"0.0":{t:"# 高级属性",p:`这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用
-`,l:"advanced/built-in.html",a:"高级属性"},"0.1":{t:"`option`",p:`播放器的选项
-<div className="run-code">▶ Run Code< ...`,l:"advanced/built-in.html#option",a:"option"},"0.2":{t:"`whitelist`",p:`管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能
-<div className=" ...`,l:"advanced/built-in.html#whitelist",a:"whitelist"},"0.3":{t:"`template`",p:`管理播放器所有的 DOM 元素
-<div className="run-code">▶ Ru ...`,l:"advanced/built-in.html#template",a:"template"},"0.4":{t:"`events`",p:"管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener ...",l:"advanced/built-in.html#events",a:"events"},"0.5":{t:"`storage`",p:`管理播放器的本地存储
-
-name 属性用于设置缓存的 key
-set 方法用于设置缓存
-get 方法用于获取缓存
-del 方 ...`,l:"advanced/built-in.html#storage",a:"storage"},"0.6":{t:"`icons`",p:`管理播放器所有的 svg 图标
-<div className="run-code">▶ Ru ...`,l:"advanced/built-in.html#icons",a:"icons"},"0.7":{t:"`i18n`",p:`管理播放器的 i18n
-
-get 方法用于获取 i18n 的值
-update 方法用于更新 i18n 对象
-
-<div ...`,l:"advanced/built-in.html#i18n",a:"i18n"},"0.8":{t:"`notice`",p:`管理播放器的提示语,只有一个 show 属性用于显示提示语
-<div className="run-code ...`,l:"advanced/built-in.html#notice",a:"notice"},"0.9":{t:"`layers`",p:`管理播放器的层
-
-add 方法用于动态添加层
-show 属性用于设置是否显示全部层
-toggle 属性用于切换是否显示全部层 ...`,l:"advanced/built-in.html#layers",a:"layers"},"0.10":{t:"`controls`",p:`管理播放器的控制器
-
-add 方法用于动态添加控制器
-show 属性用于设置是否显示全部控制器
-toggle 属性用于切换是 ...`,l:"advanced/built-in.html#controls",a:"controls"},"0.11":{t:"`contextmenu`",p:`管理播放器的右键菜单
-
-add 方法用于动态添加菜单
-show 属性用于设置是否显示全部菜单
-toggle 属性用于切换是否 ...`,l:"advanced/built-in.html#contextmenu",a:"contextmenu"},"0.12":{t:"`subtitle`",p:`管理播放器的字幕功能
-
-url 属性设置和返回当前字幕地址
-style 方法设置当前字幕的样式
-switch 方法设置当前字 ...`,l:"advanced/built-in.html#subtitle",a:"subtitle"},"0.13":{t:"`loading`",p:`管理播放器的加载层
-
-show 属性用于设置是否显示加载层
-toggle 属性用于切换是否显示加载层
-
-<div cl ...`,l:"advanced/built-in.html#loading",a:"loading"},"0.14":{t:"`hotkey`",p:`管理播放器的快捷键功能
-
-add 方法用于添加快捷键
-remove 方法用于删除快捷键
-
-<div className ...`,l:"advanced/built-in.html#hotkey",a:"hotkey"},"0.15":{t:"`mask`",p:`管理播放器的遮罩层
-
-show 属性用于设置是否显示遮罩层
-toggle 属性用于切换是否显示遮罩层
-
-<div cl ...`,l:"advanced/built-in.html#mask",a:"mask"},"0.16":{t:"`setting`",p:`管理播放器的设置面板
-
-add 方法用于动态添加设置项
-show 属性用于设置是否显示全部设置项
-toggle 属性用于切换 ...`,l:"advanced/built-in.html#setting",a:"setting"},"0.17":{t:"`plugins`",p:`管理播放器的插件功能,只有一个方法 add 用于动态添加插件
-<div className="run-cod ...`,l:"advanced/built-in.html#plugins",a:"plugins"},"1.0":{t:"# 静态属性",p:`这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用
-:::warning 提示
-有些属性是全大写的,说明这些属 ...`,l:"advanced/class.html",a:"静态属性"},"1.1":{t:"`instances`",p:`返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性
-<div className=" ...`,l:"advanced/class.html#instances",a:"instances"},"1.2":{t:"`version`",p:`返回播放器的版本信息
-<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#version",a:"version"},"1.3":{t:"`env`",p:`返回播放器的环境变量
-<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#env",a:"env"},"1.4":{t:"`build`",p:`返回播放器的打包时间
-<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#build",a:"build"},"1.5":{t:"`config`",p:`返回视频的默认配置
-<div className="run-code">▶ Run Code ...`,l:"advanced/class.html#config",a:"config"},"1.6":{t:"`utils`",p:`返回播放器的工具函数集合
-<div className="run-code">▶ Run C ...`,l:"advanced/class.html#utils",a:"utils"},"1.7":{t:"`scheme`",p:`返回播放器选项的校验方案
-<div className="run-code">▶ Run C ...`,l:"advanced/class.html#scheme",a:"scheme"},"1.8":{t:"`Emitter`",p:`返回事件分发器的构造函数
-<div className="run-code">▶ Run C ...`,l:"advanced/class.html#emitter",a:"emitter"},"1.9":{t:"`validator`",p:`返回选项的校验函数
-<div className="run-code">▶ Run Code ...`,l:"advanced/class.html#validator",a:"validator"},"1.10":{t:"`kindOf`",p:`返回类型检测的函数工具
-<div className="run-code">▶ Run Co ...`,l:"advanced/class.html#kindof",a:"kindof"},"1.11":{t:"`html`",p:`返回播放器所需的 html 字符串
-<div className="run-code">▶  ...`,l:"advanced/class.html#html",a:"html"},"1.12":{t:"`option`",p:`返回播放器的默认选项
-<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#option",a:"option"},"1.13":{t:"`DEBUG`",p:"",l:"advanced/class.html#debug",a:"debug"},"1.14":{t:"`CONTEXTMENU`",p:"",l:"advanced/class.html#contextmenu",a:"contextmenu"},"1.15":{t:"`NOTICE_TIME`",p:"",l:"advanced/class.html#notice-time",a:"notice-time"},"1.16":{t:"`SETTING_WIDTH`",p:"",l:"advanced/class.html#setting-width",a:"setting-width"},"1.17":{t:"`SETTING_ITEM_WIDTH`",p:"",l:"advanced/class.html#setting-item-width",a:"setting-item-width"},"1.18":{t:"`SETTING_ITEM_HEIGHT`",p:"",l:"advanced/class.html#setting-item-height",a:"setting-item-height"},"1.19":{t:"`INDICATOR_SIZE`",p:"",l:"advanced/class.html#indicator-size",a:"indicator-size"},"1.20":{t:"`INDICATOR_SIZE_ICON`",p:"",l:"advanced/class.html#indicator-size-icon",a:"indicator-size-icon"},"1.21":{t:"`INDICATOR_SIZE_MOBILE`",p:"",l:"advanced/class.html#indicator-size-mobile",a:"indicator-size-mobile"},"1.22":{t:"`INDICATOR_SIZE_MOBILE_ICON`",p:"",l:"advanced/class.html#indicator-size-mobile-icon",a:"indicator-size-mobile-icon"},"1.23":{t:"`VOLUME_PANEL_WIDTH`",p:"",l:"advanced/class.html#volume-panel-width",a:"volume-panel-width"},"1.24":{t:"`VOLUME_HANDLE_WIDTH`",p:"",l:"advanced/class.html#volume-handle-width",a:"volume-handle-width"},"1.25":{t:"`RESIZE_TIME`",p:"",l:"advanced/class.html#resize-time",a:"resize-time"},"1.26":{t:"`SCROLL_TIME`",p:"",l:"advanced/class.html#scroll-time",a:"scroll-time"},"1.27":{t:"`SCROLL_GAP`",p:"",l:"advanced/class.html#scroll-gap",a:"scroll-gap"},"1.28":{t:"`AUTO_PLAYBACK_MAX`",p:"",l:"advanced/class.html#auto-playback-max",a:"auto-playback-max"},"1.29":{t:"`AUTO_PLAYBACK_MIN`",p:"",l:"advanced/class.html#auto-playback-min",a:"auto-playback-min"},"1.30":{t:"`AUTO_PLAYBACK_TIMEOUT`",p:"",l:"advanced/class.html#auto-playback-timeout",a:"auto-playback-timeout"},"1.31":{t:"`RECONNECT_TIME_MAX`",p:"",l:"advanced/class.html#reconnect-time-max",a:"reconnect-time-max"},"1.32":{t:"`RECONNECT_SLEEP_TIME`",p:"",l:"advanced/class.html#reconnect-sleep-time",a:"reconnect-sleep-time"},"1.33":{t:"`CONTROL_HIDE_TIME`",p:"",l:"advanced/class.html#control-hide-time",a:"control-hide-time"},"1.34":{t:"`DB_CLICE_TIME`",p:"",l:"advanced/class.html#db-clice-time",a:"db-clice-time"},"1.35":{t:"`MOBILE_AUTO_PLAYBACKRATE`",p:"",l:"advanced/class.html#mobile-auto-playbackrate",a:"mobile-auto-playbackrate"},"1.36":{t:"`MOBILE_AUTO_PLAYBACKRATE_TIME`",p:"",l:"advanced/class.html#mobile-auto-playbackrate-time",a:"mobile-auto-playbackrate-time"},"1.37":{t:"`MOBILE_AUTO_ORIENTATION_TIME`",p:"",l:"advanced/class.html#mobile-auto-orientation-time",a:"mobile-auto-orientation-time"},"1.38":{t:"`INFO_LOOP_TIME`",p:"",l:"advanced/class.html#info-loop-time",a:"info-loop-time"},"1.39":{t:"`FAST_FORWARD_VALUE`",p:"",l:"advanced/class.html#fast-forward-value",a:"fast-forward-value"},"1.40":{t:"`FAST_FORWARD_TIME`",p:"",l:"advanced/class.html#fast-forward-time",a:"fast-forward-time"},"1.41":{t:"`TOUCH_MOVE_RATIO`",p:"",l:"advanced/class.html#touch-move-ratio",a:"touch-move-ratio"},"1.42":{t:"`VOLUME_STEP`",p:"",l:"advanced/class.html#volume-step",a:"volume-step"},"1.43":{t:"`SEEK_STEP`",p:"",l:"advanced/class.html#seek-step",a:"seek-step"},"1.44":{t:"`PROGRESS_HEIGHT`",p:"",l:"advanced/class.html#progress-height",a:"progress-height"},"1.45":{t:"`PLAYBACK_RATE`",p:"",l:"advanced/class.html#playback-rate",a:"playback-rate"},"1.46":{t:"`ASPECT_RATIO`",p:"",l:"advanced/class.html#aspect-ratio",a:"aspect-ratio"},"1.47":{t:"`FLIP`",p:"",l:"advanced/class.html#flip",a:"flip"},"1.48":{t:"`FULLSCREEN_WEB_IN_BODY`",p:"",l:"advanced/class.html#fullscreen-web-in-body",a:"fullscreen-web-in-body"},"2.0":{t:"# 实例事件",p:`播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件
-监听事件:
-<div cl ...`,l:"advanced/event.html",a:"实例事件"},"2.1":{t:"`ready`",p:`当播放器首次可以播放器时触发
-<div className="run-code">▶ Run ...`,l:"advanced/event.html#ready",a:"ready"},"2.2":{t:"`restart`",p:`当播放器切换地址后并可以播放时触发
-<div className="run-code">▶  ...`,l:"advanced/event.html#restart",a:"restart"},"2.3":{t:"`pause`",p:`当播放器暂停时触发
-<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#pause",a:"pause"},"2.4":{t:"`play`",p:`当播放器播放时触发
-<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#play",a:"play"},"2.5":{t:"`hotkey`",p:`当播放器热键被按下时触发
-<div className="run-code">▶ Run C ...`,l:"advanced/event.html#hotkey",a:"hotkey"},"2.6":{t:"`destroy`",p:`当播放器销毁时触发
-<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#destroy",a:"destroy"},"2.7":{t:"`url`",p:`当视频地址变化时触发
-<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#url",a:"url"},"2.8":{t:"`focus`",p:`当播放器获得焦点时触发
-<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#focus",a:"focus"},"2.9":{t:"`blur`",p:`当播放器失去焦点时触发
-<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#blur",a:"blur"},"2.10":{t:"`dblclick`",p:`当播放器被双击时触发
-<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#dblclick",a:"dblclick"},"2.11":{t:"`click`",p:`当播放器被单击时触发
-<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#click",a:"click"},"2.12":{t:"`error`",p:`当播放器加载视频发生错误时触发
-<div className="run-code">▶ Ru ...`,l:"advanced/event.html#error",a:"error"},"2.13":{t:"`hover`",p:`当播放器被鼠标移出或者移入时触发
-<div className="run-code">▶ R ...`,l:"advanced/event.html#hover",a:"hover"},"2.14":{t:"`mousemove`",p:`当播放器被鼠标经过时触发
-<div className="run-code">▶ Run C ...`,l:"advanced/event.html#mousemove",a:"mousemove"},"2.15":{t:"`resize`",p:`当播放器尺寸变化时触发
-<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#resize",a:"resize"},"2.16":{t:"`view`",p:`当播放器出现在视口时触发
-<div className="run-code">▶ Run C ...`,l:"advanced/event.html#view",a:"view"},"2.17":{t:"`aspectRatio`",p:`当播放器长宽比变化时触发
-<div className="run-code">▶ Run C ...`,l:"advanced/event.html#aspectratio",a:"aspectratio"},"2.18":{t:"`autoHeight`",p:`当播放器自动设置高度时触发
-<div className="run-code">▶ Run  ...`,l:"advanced/event.html#autoheight",a:"autoheight"},"2.19":{t:"`autoSize`",p:`当播放器自动设置尺寸时触发
-<div className="run-code">▶ Run  ...`,l:"advanced/event.html#autosize",a:"autosize"},"2.20":{t:"`flip`",p:`当播放器发生翻转时触发
-<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#flip",a:"flip"},"2.21":{t:"`fullscreen`",p:`当播放器发生窗口全屏时触发
-<div className="run-code">▶ Run  ...`,l:"advanced/event.html#fullscreen",a:"fullscreen"},"2.22":{t:"`fullscreenWeb`",p:`当播放器发生网页全屏时触发
-<div className="run-code">▶ Run  ...`,l:"advanced/event.html#fullscreenweb",a:"fullscreenweb"},"2.23":{t:"`mini`",p:`当播放器进入迷你模式时触发
-<div className="run-code">▶ Run  ...`,l:"advanced/event.html#mini",a:"mini"},"2.24":{t:"`pip`",p:`当播放器进入画中画时触发
-<div className="run-code">▶ Run C ...`,l:"advanced/event.html#pip",a:"pip"},"2.25":{t:"`screenshot`",p:`当播放器被截图时触发
-<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#screenshot",a:"screenshot"},"2.26":{t:"`seek`",p:`当播放器发生时间跳转时触发
-<div className="run-code">▶ Run  ...`,l:"advanced/event.html#seek",a:"seek"},"2.27":{t:"`subtitleOffset`",p:`当播放器发生字幕偏移时触发
-<div className="run-code">▶ Run  ...`,l:"advanced/event.html#subtitleoffset",a:"subtitleoffset"},"2.28":{t:"`subtitleUpdate`",p:`当字幕更新时触发
-<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleupdate",a:"subtitleupdate"},"2.29":{t:"`subtitleLoad`",p:`当字幕加载时触发
-<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleload",a:"subtitleload"},"2.30":{t:"`subtitleSwitch`",p:`当字幕切换时触发
-<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleswitch",a:"subtitleswitch"},"2.31":{t:"`info`",p:`当信息面板显示或隐藏时触发
-<div className="run-code">▶ Run  ...`,l:"advanced/event.html#info",a:"info"},"2.32":{t:"`layer`",p:`当自定义层显示或隐藏时触发
-<div className="run-code">▶ Run  ...`,l:"advanced/event.html#layer",a:"layer"},"2.33":{t:"`loading`",p:`当加载器显示或隐藏时触发
-<div className="run-code">▶ Run C ...`,l:"advanced/event.html#loading",a:"loading"},"2.34":{t:"`mask`",p:`当遮罩层显示或隐藏时触发
-<div className="run-code">▶ Run C ...`,l:"advanced/event.html#mask",a:"mask"},"2.35":{t:"`subtitle`",p:`当字幕层显示或隐藏时触发
-<div className="run-code">▶ Run C ...`,l:"advanced/event.html#subtitle",a:"subtitle"},"2.36":{t:"`contextmenu`",p:`当右键菜单显示或隐藏时触发
-<div className="run-code">▶ Run  ...`,l:"advanced/event.html#contextmenu",a:"contextmenu"},"2.37":{t:"`control`",p:`当控制器显示或隐藏时触发
-<div className="run-code">▶ Run C ...`,l:"advanced/event.html#control",a:"control"},"2.38":{t:"`setting`",p:`当设置面板显示或隐藏时触发
-<div className="run-code">▶ Run  ...`,l:"advanced/event.html#setting",a:"setting"},"2.39":{t:"`video:canplay`",p:`浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容
-`,l:"advanced/event.html#video-canplay",a:"video-canplay"},"2.40":{t:"`video:canplaythrough`",p:`浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束
-`,l:"advanced/event.html#video-canplaythrough",a:"video-canplaythrough"},"2.41":{t:"`video:complete`",p:`OfflineAudioContext 渲染完成
-`,l:"advanced/event.html#video-complete",a:"video-complete"},"2.42":{t:"`video:durationchange`",p:`duration 属性的值改变时触发
-`,l:"advanced/event.html#video-durationchange",a:"video-durationchange"},"2.43":{t:"`video:emptied`",p:"媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载 ...",l:"advanced/event.html#video-emptied",a:"video-emptied"},"2.44":{t:"`video:ended`",p:`视频停止播放,因为 media 已经到达结束点
-`,l:"advanced/event.html#video-ended",a:"video-ended"},"2.45":{t:"`video:error`",p:`获取媒体数据时出错,或者资源类型不是受支持的媒体格式
-`,l:"advanced/event.html#video-error",a:"video-error"},"2.46":{t:"`video:loadeddata`",p:`media 中的首帧已经完成加载
-`,l:"advanced/event.html#video-loadeddata",a:"video-loadeddata"},"2.47":{t:"`video:loadedmetadata`",p:`已加载元数据
-`,l:"advanced/event.html#video-loadedmetadata",a:"video-loadedmetadata"},"2.48":{t:"`video:pause`",p:`播放已暂停
-`,l:"advanced/event.html#video-pause",a:"video-pause"},"2.49":{t:"`video:play`",p:`播放已开始
-`,l:"advanced/event.html#video-play",a:"video-play"},"2.50":{t:"`video:playing`",p:`由于缺乏数据而暂停或延迟后,播放准备开始
-`,l:"advanced/event.html#video-playing",a:"video-playing"},"2.51":{t:"`video:progress`",p:`在浏览器加载资源时周期性触发
-`,l:"advanced/event.html#video-progress",a:"video-progress"},"2.52":{t:"`video:ratechange`",p:`播放速率发生变化
-`,l:"advanced/event.html#video-ratechange",a:"video-ratechange"},"2.53":{t:"`video:seeked`",p:`跳帧(seek)操作完成
-`,l:"advanced/event.html#video-seeked",a:"video-seeked"},"2.54":{t:"`video:seeking`",p:`跳帧(seek)操作开始
-`,l:"advanced/event.html#video-seeking",a:"video-seeking"},"2.55":{t:"`video:stalled`",p:`用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现
-`,l:"advanced/event.html#video-stalled",a:"video-stalled"},"2.56":{t:"`video:suspend`",p:`媒体数据加载已暂停
-`,l:"advanced/event.html#video-suspend",a:"video-suspend"},"2.57":{t:"`video:timeupdate`",p:`currentTime 属性指定的时间发生变化
-`,l:"advanced/event.html#video-timeupdate",a:"video-timeupdate"},"2.58":{t:"`video:volumechange`",p:`音量发生变化
-`,l:"advanced/event.html#video-volumechange",a:"video-volumechange"},"2.59":{t:"`video:waiting`",p:`由于暂时缺少数据,播放已停止
-`,l:"advanced/event.html#video-waiting",a:"video-waiting"},"3.0":{t:"# 编写插件",p:`但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事
-可以在实例化的时候加载插件的函数
-<div cla ...`,l:"advanced/plugin.html",a:"编写插件"},"4.0":{t:"# 实例属性",p:`这里的 实例属性 是指挂载在 实例 的 一级属性,比较常用
-`,l:"advanced/property.html",a:"实例属性"},"4.1":{t:"`play`",p:`
-Type: Function
-
-播放视频
-<div className="run-code"&g ...`,l:"advanced/property.html#play",a:"play"},"4.2":{t:"`pause`",p:`
-Type: Function
-
-暂停视频
-<div className="run-code"&g ...`,l:"advanced/property.html#pause",a:"pause"},"4.3":{t:"`toggle`",p:`
-Type: Function
-
-切换视频的播放和暂停
-<div className="run-code&q ...`,l:"advanced/property.html#toggle",a:"toggle"},"4.4":{t:"`destroy`",p:`
-Type: Function
-Parameter: Boolean
-
-销毁播放器,接受一个参数表示是否销毁后同时移除播放器 ...`,l:"advanced/property.html#destroy",a:"destroy"},"4.5":{t:"`seek`",p:`
-Type: Setter
-Parameter: Number
-
-视频时间跳转,单位秒
-<div className= ...`,l:"advanced/property.html#seek",a:"seek"},"4.6":{t:"`forward`",p:`
-Type: Setter
-Parameter: Number
-
-视频时间快进,单位秒
-<div className= ...`,l:"advanced/property.html#forward",a:"forward"},"4.7":{t:"`backward`",p:`
-Type: Setter
-Parameter: Number
-
-视频时间快退,单位秒
-<div className= ...`,l:"advanced/property.html#backward",a:"backward"},"4.8":{t:"`volume`",p:`
-Type: Setter/Getter
-Parameter: Number
-
-设置和获取视频音量,范围在:[0, 1]
-& ...`,l:"advanced/property.html#volume",a:"volume"},"4.9":{t:"`url`",p:`
-Type: Setter/Getter
-Parameter: String
-
-设置和获取视频地址
-<div clas ...`,l:"advanced/property.html#url",a:"url"},"4.10":{t:"`switchUrl`",p:`
-Type: Function
-Parameter: String
-
-设置视频地址,设置时和 url 类似,但会执行一些优化 ...`,l:"advanced/property.html#switchurl",a:"switchurl"},"4.11":{t:"`switchQuality`",p:`
-Type: Function
-Parameter: String
-
-设置视频画质地址,和 switchUrl 类似,但会带 ...`,l:"advanced/property.html#switchquality",a:"switchquality"},"4.12":{t:"`muted`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-设置和获取视频是否静音
-<div c ...`,l:"advanced/property.html#muted",a:"muted"},"4.13":{t:"`currentTime`",p:`
-Type: Setter/Getter
-Parameter: Number
-
-设置和获取视频当前时间,设置时间时和 see ...`,l:"advanced/property.html#currenttime",a:"currenttime"},"4.14":{t:"`duration`",p:`
-Type: Getter
-
-获取视频时长
-<div className="run-code"&g ...`,l:"advanced/property.html#duration",a:"duration"},"4.15":{t:"`screenshot`",p:`
-Type: Function
-
-下载当前视频帧的截图
-<div className="run-code&q ...`,l:"advanced/property.html#screenshot",a:"screenshot"},"4.16":{t:"`getDataURL`",p:`
-Type: Function
-
-获取当前视频帧的截图的base64地址,返回的是一个 Promise
-<div cl ...`,l:"advanced/property.html#getdataurl",a:"getdataurl"},"4.17":{t:"`getBlobUrl`",p:`
-Type: Function
-
-获取当前视频帧的截图的blob地址,返回的是一个 Promise
-<div clas ...`,l:"advanced/property.html#getbloburl",a:"getbloburl"},"4.18":{t:"`fullscreen`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-设置和获取播放器窗口全屏
-<div  ...`,l:"advanced/property.html#fullscreen",a:"fullscreen"},"4.19":{t:"`fullscreenWeb`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-设置和获取播放器网页全屏
-<div  ...`,l:"advanced/property.html#fullscreenweb",a:"fullscreenweb"},"4.20":{t:"`pip`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-设置和获取播放器画中画模式
-<div ...`,l:"advanced/property.html#pip",a:"pip"},"4.21":{t:"`poster`",p:`
-Type: Setter/Getter
-Parameter: String
-
-设置和获取视频海报,只有在视频播放前才能看到 ...`,l:"advanced/property.html#poster",a:"poster"},"4.22":{t:"`mini`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-设置和获取播放器迷你模式
-<div  ...`,l:"advanced/property.html#mini",a:"mini"},"4.23":{t:"`playing`",p:`
-Type: Getter
-Parameter: Boolean
-
-获取视频是否正在播放中
-<div classNam ...`,l:"advanced/property.html#playing",a:"playing"},"4.24":{t:"`autoSize`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-设置视频是否自适应尺寸,设置为 true  ...`,l:"advanced/property.html#autosize",a:"autosize"},"4.25":{t:"`rect`",p:`
-Type: Getter
-
-获取播放器的尺寸和坐标信息
-<div className="run-code& ...`,l:"advanced/property.html#rect",a:"rect"},"4.26":{t:"`flip`",p:`
-Type: Setter/Getter
-Parameter: String
-
-设置和获取播放器翻转,支持normal,   ...`,l:"advanced/property.html#flip",a:"flip"},"4.27":{t:"`playbackRate`",p:`
-Type: Setter/Getter
-Parameter: Number
-
-设置和获取播放器播放速度
-<div c ...`,l:"advanced/property.html#playbackrate",a:"playbackrate"},"4.28":{t:"`aspectRatio`",p:`
-Type: Setter/Getter
-Parameter: String
-
-设置和获取播放器长宽比
-<div cl ...`,l:"advanced/property.html#aspectratio",a:"aspectratio"},"4.29":{t:"`loop`",p:`
-Type: Setter/Getter
-Parameter: Array
-
-设置和获取区间循序播放,单位秒
-<div ...`,l:"advanced/property.html#loop",a:"loop"},"4.30":{t:"`autoHeight`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-当容器只有宽度,该属性可以自动计算出并设置 ...`,l:"advanced/property.html#autoheight",a:"autoheight"},"4.31":{t:"`attr`",p:`
-Type: Function
-Parameter: String
-
-动态获取和设置 video 元素的属性
-<div ...`,l:"advanced/property.html#attr",a:"attr"},"4.32":{t:"`title`",p:`
-Type: Setter/Getter
-Parameter: String
-
-动态获取和设置播放器标题
-<div c ...`,l:"advanced/property.html#title",a:"title"},"4.33":{t:"`type`",p:`
-Type: Setter/Getter
-Parameter: String
-
-动态获取和设置视频类型
-<div cl ...`,l:"advanced/property.html#type",a:"type"},"4.34":{t:"`theme`",p:`
-Type: Setter/Getter
-Parameter: String
-
-动态获取和设置播放器主题颜色
-<div ...`,l:"advanced/property.html#theme",a:"theme"},"4.35":{t:"`airplay`",p:`
-Type: Function
-
-开启隔空播放
-<div className="run-code" ...`,l:"advanced/property.html#airplay",a:"airplay"},"4.36":{t:"`loaded`",p:`
-Type: Getter
-
-视频缓存的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用
-&l ...`,l:"advanced/property.html#loaded",a:"loaded"},"4.37":{t:"`played`",p:`
-Type: Getter
-
-视频播放的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用
-&l ...`,l:"advanced/property.html#played",a:"played"},"4.38":{t:"`proxy`",p:`
-Type: Function
-
-DOM 事件的代理函数,实质上代理了 addEventListener 和 removeE ...`,l:"advanced/property.html#proxy",a:"proxy"},"4.39":{t:"`query`",p:`
-Type: Function
-
-DOM 的查询函数,类似 document.querySelector,但被查询的对象局限 ...`,l:"advanced/property.html#query",a:"query"},"4.40":{t:"`video`",p:`
-Type: Element
-
-快捷返回播放器的 video 元素
-<div className="run- ...`,l:"advanced/property.html#video",a:"video"},"5.0":{t:"# 高级属性",p:`这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用
-`,l:"en/advanced/built-in.html",a:"高级属性"},"5.1":{t:"`option`",p:`播放器的选项
-<div className="run-code">▶ Run Code< ...`,l:"en/advanced/built-in.html#option",a:"option"},"5.2":{t:"`whitelist`",p:`管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能
-<div className=" ...`,l:"en/advanced/built-in.html#whitelist",a:"whitelist"},"5.3":{t:"`template`",p:`管理播放器所有的 DOM 元素
-<div className="run-code">▶ Ru ...`,l:"en/advanced/built-in.html#template",a:"template"},"5.4":{t:"`events`",p:"管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener ...",l:"en/advanced/built-in.html#events",a:"events"},"5.5":{t:"`storage`",p:`管理播放器的本地存储
-
-name 属性用于设置缓存的 key
-set 方法用于设置缓存
-get 方法用于获取缓存
-del 方 ...`,l:"en/advanced/built-in.html#storage",a:"storage"},"5.6":{t:"`icons`",p:`管理播放器所有的 svg 图标
-<div className="run-code">▶ Ru ...`,l:"en/advanced/built-in.html#icons",a:"icons"},"5.7":{t:"`i18n`",p:`管理播放器的 i18n
-
-get 方法用于获取 i18n 的值
-update 方法用于更新 i18n 对象
-
-<div ...`,l:"en/advanced/built-in.html#i18n",a:"i18n"},"5.8":{t:"`notice`",p:`管理播放器的提示语,只有一个 show 属性用于显示提示语
-<div className="run-code ...`,l:"en/advanced/built-in.html#notice",a:"notice"},"5.9":{t:"`layers`",p:`管理播放器的层
-
-add 方法用于动态添加层
-show 属性用于设置是否显示全部层
-toggle 属性用于切换是否显示全部层 ...`,l:"en/advanced/built-in.html#layers",a:"layers"},"5.10":{t:"`controls`",p:`管理播放器的控制器
-
-add 方法用于动态添加控制器
-show 属性用于设置是否显示全部控制器
-toggle 属性用于切换是 ...`,l:"en/advanced/built-in.html#controls",a:"controls"},"5.11":{t:"`contextmenu`",p:`管理播放器的右键菜单
-
-add 方法用于动态添加菜单
-show 属性用于设置是否显示全部菜单
-toggle 属性用于切换是否 ...`,l:"en/advanced/built-in.html#contextmenu",a:"contextmenu"},"5.12":{t:"`subtitle`",p:`管理播放器的字幕功能
-
-url 属性设置和返回当前字幕地址
-style 方法设置当前字幕的样式
-switch 方法设置当前字 ...`,l:"en/advanced/built-in.html#subtitle",a:"subtitle"},"5.13":{t:"`loading`",p:`管理播放器的加载层
-
-show 属性用于设置是否显示加载层
-toggle 属性用于切换是否显示加载层
-
-<div cl ...`,l:"en/advanced/built-in.html#loading",a:"loading"},"5.14":{t:"`hotkey`",p:`管理播放器的快捷键功能
-
-add 方法用于添加快捷键
-remove 方法用于删除快捷键
-
-<div className ...`,l:"en/advanced/built-in.html#hotkey",a:"hotkey"},"5.15":{t:"`mask`",p:`管理播放器的遮罩层
-
-show 属性用于设置是否显示遮罩层
-toggle 属性用于切换是否显示遮罩层
-
-<div cl ...`,l:"en/advanced/built-in.html#mask",a:"mask"},"5.16":{t:"`setting`",p:`管理播放器的设置面板
-
-add 方法用于动态添加设置项
-show 属性用于设置是否显示全部设置项
-toggle 属性用于切换 ...`,l:"en/advanced/built-in.html#setting",a:"setting"},"5.17":{t:"`plugins`",p:`管理播放器的插件功能,只有一个方法 add 用于动态添加插件
-<div className="run-cod ...`,l:"en/advanced/built-in.html#plugins",a:"plugins"},"6.0":{t:"# 静态属性",p:`这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用
-:::warning 提示
-有些属性是全大写的,说明这些属 ...`,l:"en/advanced/class.html",a:"静态属性"},"6.1":{t:"`instances`",p:`返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性
-<div className=" ...`,l:"en/advanced/class.html#instances",a:"instances"},"6.2":{t:"`version`",p:`返回播放器的版本信息
-<div className="run-code">▶ Run Cod ...`,l:"en/advanced/class.html#version",a:"version"},"6.3":{t:"`env`",p:`返回播放器的环境变量
-<div className="run-code">▶ Run Cod ...`,l:"en/advanced/class.html#env",a:"env"},"6.4":{t:"`build`",p:`返回播放器的打包时间
-<div className="run-code">▶ Run Cod ...`,l:"en/advanced/class.html#build",a:"build"},"6.5":{t:"`config`",p:`返回视频的默认配置
-<div className="run-code">▶ Run Code ...`,l:"en/advanced/class.html#config",a:"config"},"6.6":{t:"`utils`",p:`返回播放器的工具函数集合
-<div className="run-code">▶ Run C ...`,l:"en/advanced/class.html#utils",a:"utils"},"6.7":{t:"`scheme`",p:`返回播放器选项的校验方案
-<div className="run-code">▶ Run C ...`,l:"en/advanced/class.html#scheme",a:"scheme"},"6.8":{t:"`Emitter`",p:`返回事件分发器的构造函数
-<div className="run-code">▶ Run C ...`,l:"en/advanced/class.html#emitter",a:"emitter"},"6.9":{t:"`validator`",p:`返回选项的校验函数
-<div className="run-code">▶ Run Code ...`,l:"en/advanced/class.html#validator",a:"validator"},"6.10":{t:"`kindOf`",p:`返回类型检测的函数工具
-<div className="run-code">▶ Run Co ...`,l:"en/advanced/class.html#kindof",a:"kindof"},"6.11":{t:"`html`",p:`返回播放器所需的 html 字符串
-<div className="run-code">▶  ...`,l:"en/advanced/class.html#html",a:"html"},"6.12":{t:"`option`",p:`返回播放器的默认选项
-<div className="run-code">▶ Run Cod ...`,l:"en/advanced/class.html#option",a:"option"},"6.13":{t:"`DEBUG`",p:"",l:"en/advanced/class.html#debug",a:"debug"},"6.14":{t:"`CONTEXTMENU`",p:"",l:"en/advanced/class.html#contextmenu",a:"contextmenu"},"6.15":{t:"`NOTICE_TIME`",p:"",l:"en/advanced/class.html#notice-time",a:"notice-time"},"6.16":{t:"`SETTING_WIDTH`",p:"",l:"en/advanced/class.html#setting-width",a:"setting-width"},"6.17":{t:"`SETTING_ITEM_WIDTH`",p:"",l:"en/advanced/class.html#setting-item-width",a:"setting-item-width"},"6.18":{t:"`SETTING_ITEM_HEIGHT`",p:"",l:"en/advanced/class.html#setting-item-height",a:"setting-item-height"},"6.19":{t:"`INDICATOR_SIZE`",p:"",l:"en/advanced/class.html#indicator-size",a:"indicator-size"},"6.20":{t:"`INDICATOR_SIZE_ICON`",p:"",l:"en/advanced/class.html#indicator-size-icon",a:"indicator-size-icon"},"6.21":{t:"`INDICATOR_SIZE_MOBILE`",p:"",l:"en/advanced/class.html#indicator-size-mobile",a:"indicator-size-mobile"},"6.22":{t:"`INDICATOR_SIZE_MOBILE_ICON`",p:"",l:"en/advanced/class.html#indicator-size-mobile-icon",a:"indicator-size-mobile-icon"},"6.23":{t:"`VOLUME_PANEL_WIDTH`",p:"",l:"en/advanced/class.html#volume-panel-width",a:"volume-panel-width"},"6.24":{t:"`VOLUME_HANDLE_WIDTH`",p:"",l:"en/advanced/class.html#volume-handle-width",a:"volume-handle-width"},"6.25":{t:"`RESIZE_TIME`",p:"",l:"en/advanced/class.html#resize-time",a:"resize-time"},"6.26":{t:"`SCROLL_TIME`",p:"",l:"en/advanced/class.html#scroll-time",a:"scroll-time"},"6.27":{t:"`SCROLL_GAP`",p:"",l:"en/advanced/class.html#scroll-gap",a:"scroll-gap"},"6.28":{t:"`AUTO_PLAYBACK_MAX`",p:"",l:"en/advanced/class.html#auto-playback-max",a:"auto-playback-max"},"6.29":{t:"`AUTO_PLAYBACK_MIN`",p:"",l:"en/advanced/class.html#auto-playback-min",a:"auto-playback-min"},"6.30":{t:"`AUTO_PLAYBACK_TIMEOUT`",p:"",l:"en/advanced/class.html#auto-playback-timeout",a:"auto-playback-timeout"},"6.31":{t:"`RECONNECT_TIME_MAX`",p:"",l:"en/advanced/class.html#reconnect-time-max",a:"reconnect-time-max"},"6.32":{t:"`RECONNECT_SLEEP_TIME`",p:"",l:"en/advanced/class.html#reconnect-sleep-time",a:"reconnect-sleep-time"},"6.33":{t:"`CONTROL_HIDE_TIME`",p:"",l:"en/advanced/class.html#control-hide-time",a:"control-hide-time"},"6.34":{t:"`DB_CLICE_TIME`",p:"",l:"en/advanced/class.html#db-clice-time",a:"db-clice-time"},"6.35":{t:"`MOBILE_AUTO_PLAYBACKRATE`",p:"",l:"en/advanced/class.html#mobile-auto-playbackrate",a:"mobile-auto-playbackrate"},"6.36":{t:"`MOBILE_AUTO_PLAYBACKRATE_TIME`",p:"",l:"en/advanced/class.html#mobile-auto-playbackrate-time",a:"mobile-auto-playbackrate-time"},"6.37":{t:"`MOBILE_AUTO_ORIENTATION_TIME`",p:"",l:"en/advanced/class.html#mobile-auto-orientation-time",a:"mobile-auto-orientation-time"},"6.38":{t:"`INFO_LOOP_TIME`",p:"",l:"en/advanced/class.html#info-loop-time",a:"info-loop-time"},"6.39":{t:"`FAST_FORWARD_VALUE`",p:"",l:"en/advanced/class.html#fast-forward-value",a:"fast-forward-value"},"6.40":{t:"`FAST_FORWARD_TIME`",p:"",l:"en/advanced/class.html#fast-forward-time",a:"fast-forward-time"},"6.41":{t:"`TOUCH_MOVE_RATIO`",p:"",l:"en/advanced/class.html#touch-move-ratio",a:"touch-move-ratio"},"6.42":{t:"`VOLUME_STEP`",p:"",l:"en/advanced/class.html#volume-step",a:"volume-step"},"6.43":{t:"`SEEK_STEP`",p:"",l:"en/advanced/class.html#seek-step",a:"seek-step"},"6.44":{t:"`PROGRESS_HEIGHT`",p:"",l:"en/advanced/class.html#progress-height",a:"progress-height"},"6.45":{t:"`PLAYBACK_RATE`",p:"",l:"en/advanced/class.html#playback-rate",a:"playback-rate"},"6.46":{t:"`ASPECT_RATIO`",p:"",l:"en/advanced/class.html#aspect-ratio",a:"aspect-ratio"},"6.47":{t:"`FLIP`",p:"",l:"en/advanced/class.html#flip",a:"flip"},"6.48":{t:"`FULLSCREEN_WEB_IN_BODY`",p:"",l:"en/advanced/class.html#fullscreen-web-in-body",a:"fullscreen-web-in-body"},"7.0":{t:"# 实例事件",p:`播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件
-监听事件:
-<div cl ...`,l:"en/advanced/event.html",a:"实例事件"},"7.1":{t:"`ready`",p:`当播放器首次可以播放器时触发
-<div className="run-code">▶ Run ...`,l:"en/advanced/event.html#ready",a:"ready"},"7.2":{t:"`restart`",p:`当播放器切换地址后并可以播放时触发
-<div className="run-code">▶  ...`,l:"en/advanced/event.html#restart",a:"restart"},"7.3":{t:"`pause`",p:`当播放器暂停时触发
-<div className="run-code">▶ Run Code ...`,l:"en/advanced/event.html#pause",a:"pause"},"7.4":{t:"`play`",p:`当播放器播放时触发
-<div className="run-code">▶ Run Code ...`,l:"en/advanced/event.html#play",a:"play"},"7.5":{t:"`hotkey`",p:`当播放器热键被按下时触发
-<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#hotkey",a:"hotkey"},"7.6":{t:"`destroy`",p:`当播放器销毁时触发
-<div className="run-code">▶ Run Code ...`,l:"en/advanced/event.html#destroy",a:"destroy"},"7.7":{t:"`url`",p:`当视频地址变化时触发
-<div className="run-code">▶ Run Cod ...`,l:"en/advanced/event.html#url",a:"url"},"7.8":{t:"`focus`",p:`当播放器获得焦点时触发
-<div className="run-code">▶ Run Co ...`,l:"en/advanced/event.html#focus",a:"focus"},"7.9":{t:"`blur`",p:`当播放器失去焦点时触发
-<div className="run-code">▶ Run Co ...`,l:"en/advanced/event.html#blur",a:"blur"},"7.10":{t:"`dblclick`",p:`当播放器被双击时触发
-<div className="run-code">▶ Run Cod ...`,l:"en/advanced/event.html#dblclick",a:"dblclick"},"7.11":{t:"`click`",p:`当播放器被单击时触发
-<div className="run-code">▶ Run Cod ...`,l:"en/advanced/event.html#click",a:"click"},"7.12":{t:"`error`",p:`当播放器加载视频发生错误时触发
-<div className="run-code">▶ Ru ...`,l:"en/advanced/event.html#error",a:"error"},"7.13":{t:"`hover`",p:`当播放器被鼠标移出或者移入时触发
-<div className="run-code">▶ R ...`,l:"en/advanced/event.html#hover",a:"hover"},"7.14":{t:"`mousemove`",p:`当播放器被鼠标经过时触发
-<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#mousemove",a:"mousemove"},"7.15":{t:"`resize`",p:`当播放器尺寸变化时触发
-<div className="run-code">▶ Run Co ...`,l:"en/advanced/event.html#resize",a:"resize"},"7.16":{t:"`view`",p:`当播放器出现在视口时触发
-<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#view",a:"view"},"7.17":{t:"`aspectRatio`",p:`当播放器长宽比变化时触发
-<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#aspectratio",a:"aspectratio"},"7.18":{t:"`autoHeight`",p:`当播放器自动设置高度时触发
-<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#autoheight",a:"autoheight"},"7.19":{t:"`autoSize`",p:`当播放器自动设置尺寸时触发
-<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#autosize",a:"autosize"},"7.20":{t:"`flip`",p:`当播放器发生翻转时触发
-<div className="run-code">▶ Run Co ...`,l:"en/advanced/event.html#flip",a:"flip"},"7.21":{t:"`fullscreen`",p:`当播放器发生窗口全屏时触发
-<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#fullscreen",a:"fullscreen"},"7.22":{t:"`fullscreenWeb`",p:`当播放器发生网页全屏时触发
-<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#fullscreenweb",a:"fullscreenweb"},"7.23":{t:"`mini`",p:`当播放器进入迷你模式时触发
-<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#mini",a:"mini"},"7.24":{t:"`pip`",p:`当播放器进入画中画时触发
-<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#pip",a:"pip"},"7.25":{t:"`screenshot`",p:`当播放器被截图时触发
-<div className="run-code">▶ Run Cod ...`,l:"en/advanced/event.html#screenshot",a:"screenshot"},"7.26":{t:"`seek`",p:`当播放器发生时间跳转时触发
-<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#seek",a:"seek"},"7.27":{t:"`subtitleOffset`",p:`当播放器发生字幕偏移时触发
-<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#subtitleoffset",a:"subtitleoffset"},"7.28":{t:"`subtitleUpdate`",p:`当字幕更新时触发
-<div className="run-code">▶ Run Code& ...`,l:"en/advanced/event.html#subtitleupdate",a:"subtitleupdate"},"7.29":{t:"`subtitleLoad`",p:`当字幕加载时触发
-<div className="run-code">▶ Run Code& ...`,l:"en/advanced/event.html#subtitleload",a:"subtitleload"},"7.30":{t:"`subtitleSwitch`",p:`当字幕切换时触发
-<div className="run-code">▶ Run Code& ...`,l:"en/advanced/event.html#subtitleswitch",a:"subtitleswitch"},"7.31":{t:"`info`",p:`当信息面板显示或隐藏时触发
-<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#info",a:"info"},"7.32":{t:"`layer`",p:`当自定义层显示或隐藏时触发
-<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#layer",a:"layer"},"7.33":{t:"`loading`",p:`当加载器显示或隐藏时触发
-<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#loading",a:"loading"},"7.34":{t:"`mask`",p:`当遮罩层显示或隐藏时触发
-<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#mask",a:"mask"},"7.35":{t:"`subtitle`",p:`当字幕层显示或隐藏时触发
-<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#subtitle",a:"subtitle"},"7.36":{t:"`contextmenu`",p:`当右键菜单显示或隐藏时触发
-<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#contextmenu",a:"contextmenu"},"7.37":{t:"`control`",p:`当控制器显示或隐藏时触发
-<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#control",a:"control"},"7.38":{t:"`setting`",p:`当设置面板显示或隐藏时触发
-<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#setting",a:"setting"},"7.39":{t:"`video:canplay`",p:`浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容
-`,l:"en/advanced/event.html#video-canplay",a:"video-canplay"},"7.40":{t:"`video:canplaythrough`",p:`浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束
-`,l:"en/advanced/event.html#video-canplaythrough",a:"video-canplaythrough"},"7.41":{t:"`video:complete`",p:`OfflineAudioContext 渲染完成
-`,l:"en/advanced/event.html#video-complete",a:"video-complete"},"7.42":{t:"`video:durationchange`",p:`duration 属性的值改变时触发
-`,l:"en/advanced/event.html#video-durationchange",a:"video-durationchange"},"7.43":{t:"`video:emptied`",p:"媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载 ...",l:"en/advanced/event.html#video-emptied",a:"video-emptied"},"7.44":{t:"`video:ended`",p:`视频停止播放,因为 media 已经到达结束点
-`,l:"en/advanced/event.html#video-ended",a:"video-ended"},"7.45":{t:"`video:error`",p:`获取媒体数据时出错,或者资源类型不是受支持的媒体格式
-`,l:"en/advanced/event.html#video-error",a:"video-error"},"7.46":{t:"`video:loadeddata`",p:`media 中的首帧已经完成加载
-`,l:"en/advanced/event.html#video-loadeddata",a:"video-loadeddata"},"7.47":{t:"`video:loadedmetadata`",p:`已加载元数据
-`,l:"en/advanced/event.html#video-loadedmetadata",a:"video-loadedmetadata"},"7.48":{t:"`video:pause`",p:`播放已暂停
-`,l:"en/advanced/event.html#video-pause",a:"video-pause"},"7.49":{t:"`video:play`",p:`播放已开始
-`,l:"en/advanced/event.html#video-play",a:"video-play"},"7.50":{t:"`video:playing`",p:`由于缺乏数据而暂停或延迟后,播放准备开始
-`,l:"en/advanced/event.html#video-playing",a:"video-playing"},"7.51":{t:"`video:progress`",p:`在浏览器加载资源时周期性触发
-`,l:"en/advanced/event.html#video-progress",a:"video-progress"},"7.52":{t:"`video:ratechange`",p:`播放速率发生变化
-`,l:"en/advanced/event.html#video-ratechange",a:"video-ratechange"},"7.53":{t:"`video:seeked`",p:`跳帧(seek)操作完成
-`,l:"en/advanced/event.html#video-seeked",a:"video-seeked"},"7.54":{t:"`video:seeking`",p:`跳帧(seek)操作开始
-`,l:"en/advanced/event.html#video-seeking",a:"video-seeking"},"7.55":{t:"`video:stalled`",p:`用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现
-`,l:"en/advanced/event.html#video-stalled",a:"video-stalled"},"7.56":{t:"`video:suspend`",p:`媒体数据加载已暂停
-`,l:"en/advanced/event.html#video-suspend",a:"video-suspend"},"7.57":{t:"`video:timeupdate`",p:`currentTime 属性指定的时间发生变化
-`,l:"en/advanced/event.html#video-timeupdate",a:"video-timeupdate"},"7.58":{t:"`video:volumechange`",p:`音量发生变化
-`,l:"en/advanced/event.html#video-volumechange",a:"video-volumechange"},"7.59":{t:"`video:waiting`",p:`由于暂时缺少数据,播放已停止
-`,l:"en/advanced/event.html#video-waiting",a:"video-waiting"},"8.0":{t:"# 编写插件",p:`但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事
-可以在实例化的时候加载插件的函数
-<div cla ...`,l:"en/advanced/plugin.html",a:"编写插件"},"9.0":{t:"# Instance Property",p:"The Instance Property here refers to the Primary Property atta ...",l:"en/advanced/property.html",a:"instance-property"},"9.1":{t:"`play`",p:`
-Type: Function
-
-Play video
-<div className="run-code&q ...`,l:"en/advanced/property.html#play",a:"play"},"9.2":{t:"`pause`",p:`
-Type: Function
-
-Pause video
-<div className="run-code& ...`,l:"en/advanced/property.html#pause",a:"pause"},"9.3":{t:"`toggle`",p:`
-Type: Function
-
-Toggle video playback and pause
-<div class ...`,l:"en/advanced/property.html#toggle",a:"toggle"},"9.4":{t:"`destroy`",p:`
-Type: Function
-Parameter: Boolean
-
-To destroy the player, acc ...`,l:"en/advanced/property.html#destroy",a:"destroy"},"9.5":{t:"`seek`",p:`
-Type: Setter
-Parameter: Number
-
-Video time jump in seconds
-&l ...`,l:"en/advanced/property.html#seek",a:"seek"},"9.6":{t:"`forward`",p:`
-Type: Setter
-Parameter: Number
-
-Video time fast forward in se ...`,l:"en/advanced/property.html#forward",a:"forward"},"9.7":{t:"`backward`",p:`
-Type: Setter
-Parameter: Number
-
-Video time rewind in seconds
- ...`,l:"en/advanced/property.html#backward",a:"backward"},"9.8":{t:"`volume`",p:`
-Type: Setter/Getter
-Parameter: Number
-
-Set and get video volu ...`,l:"en/advanced/property.html#volume",a:"volume"},"9.9":{t:"`url`",p:`
-Type: Setter/Getter
-Parameter: String
-
-Set and get video url
- ...`,l:"en/advanced/property.html#url",a:"url"},"9.10":{t:"`switchUrl`",p:`
-Type: Function
-Parameter: String
-
-Setting the video url is si ...`,l:"en/advanced/property.html#switchurl",a:"switchurl"},"9.11":{t:"`switchQuality`",p:`
-Type: Function
-Parameter: String
-
-Set the video quality addre ...`,l:"en/advanced/property.html#switchquality",a:"switchquality"},"9.12":{t:"`muted`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-Set and get whether t ...`,l:"en/advanced/property.html#muted",a:"muted"},"9.13":{t:"`currentTime`",p:`
-Type: Setter/Getter
-Parameter: Number
-
-Set and get the curren ...`,l:"en/advanced/property.html#currenttime",a:"currenttime"},"9.14":{t:"`duration`",p:`
-Type: Getter
-
-Get video duration
-<div className="run- ...`,l:"en/advanced/property.html#duration",a:"duration"},"9.15":{t:"`screenshot`",p:`
-Type: Function
-
-Download a screenshot of the current video fr ...`,l:"en/advanced/property.html#screenshot",a:"screenshot"},"9.16":{t:"`getDataURL`",p:`
-Type: Function
-
-Get the base64 address of the screenshot of t ...`,l:"en/advanced/property.html#getdataurl",a:"getdataurl"},"9.17":{t:"`getBlobUrl`",p:`
-Type: Function
-
-Get the blob address of the screenshot of the ...`,l:"en/advanced/property.html#getbloburl",a:"getbloburl"},"9.18":{t:"`fullscreen`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-Set and get full scre ...`,l:"en/advanced/property.html#fullscreen",a:"fullscreen"},"9.19":{t:"`fullscreenWeb`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-Set and get full scre ...`,l:"en/advanced/property.html#fullscreenweb",a:"fullscreenweb"},"9.20":{t:"`pip`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-Set and get the pictu ...`,l:"en/advanced/property.html#pip",a:"pip"},"9.21":{t:"`poster`",p:`
-Type: Setter/Getter
-Parameter: String
-
-Set and obtain video p ...`,l:"en/advanced/property.html#poster",a:"poster"},"9.22":{t:"`mini`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-Set and get player mi ...`,l:"en/advanced/property.html#mini",a:"mini"},"9.23":{t:"`playing`",p:`
-Type: Getter
-Parameter: Boolean
-
-Get whether the video is pla ...`,l:"en/advanced/property.html#playing",a:"playing"},"9.24":{t:"`autoSize`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-Set whether the video ...`,l:"en/advanced/property.html#autosize",a:"autosize"},"9.25":{t:"`rect`",p:`
-Type: Getter
-
-Get the size and coordinate information of the  ...`,l:"en/advanced/property.html#rect",a:"rect"},"9.26":{t:"`flip`",p:`
-Type: Setter/Getter
-Parameter: String
-
-Set and get player rol ...`,l:"en/advanced/property.html#flip",a:"flip"},"9.27":{t:"`playbackRate`",p:`
-Type: Setter/Getter
-Parameter: Number
-
-Set and get player pla ...`,l:"en/advanced/property.html#playbackrate",a:"playbackrate"},"9.28":{t:"`aspectRatio`",p:`
-Type: Setter/Getter
-Parameter: String
-
-Set and obtain the pla ...`,l:"en/advanced/property.html#aspectratio",a:"aspectratio"},"9.29":{t:"`loop`",p:`
-Type: Setter/Getter
-Parameter: Array
-
-Set and obtain interval ...`,l:"en/advanced/property.html#loop",a:"loop"},"9.30":{t:"`autoHeight`",p:`
-Type: Setter/Getter
-Parameter: Boolean
-
-When the container ha ...`,l:"en/advanced/property.html#autoheight",a:"autoheight"},"9.31":{t:"`attr`",p:`
-Type: Function
-Parameter: String
-
-Get and set the attributes  ...`,l:"en/advanced/property.html#attr",a:"attr"},"9.32":{t:"`title`",p:`
-Type: Setter/Getter
-Parameter: String
-
-Get and set player tit ...`,l:"en/advanced/property.html#title",a:"title"},"9.33":{t:"`type`",p:`
-Type: Setter/Getter
-Parameter: String
-
-Get and set video type ...`,l:"en/advanced/property.html#type",a:"type"},"9.34":{t:"`theme`",p:`
-Type: Setter/Getter
-Parameter: String
-
-Get and set player the ...`,l:"en/advanced/property.html#theme",a:"theme"},"9.35":{t:"`airplay`",p:`
-Type: Function
-
-Enable airplay
-<div className="run-co ...`,l:"en/advanced/property.html#airplay",a:"airplay"},"9.36":{t:"`loaded`",p:`
-Type: Getter
-
-The proportion of video cache, with the range o ...`,l:"en/advanced/property.html#loaded",a:"loaded"},"9.37":{t:"`played`",p:`
-Type: Getter
-
-The proportion of video playback, with the rang ...`,l:"en/advanced/property.html#played",a:"played"},"9.38":{t:"`proxy`",p:`
-Type: Function
-
-The proxy function of DOM event essentially p ...`,l:"en/advanced/property.html#proxy",a:"proxy"},"9.39":{t:"`query`",p:`
-Type: Function
-
-The query function of DOM is similar to docum ...`,l:"en/advanced/property.html#query",a:"query"},"9.40":{t:"`video`",p:`
-Type: Element
-
-Return the video element of the player
-<div ...`,l:"en/advanced/property.html#video",a:"video"},"10.0":{t:"# Install",p:"",l:"en/index.html",a:"install"},"10.1":{t:"Install",p:`::: code-group
-npm install artplayer
-
-yarn add artplayer
-
-pnpm ...`,l:"en/index.html#install",a:"install"},"10.2":{t:"`CDN`",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer/dist/art ...`,l:"en/index.html#cdn",a:"cdn"},"10.3":{t:"Use",p:`::: code-group
-import Artplayer from 'artplayer';
-
-const art = ...`,l:"en/index.html#use",a:"use"},"10.4":{t:"`Vue.js`",p:`::: code-group
-<template>
-  <div ref="artRef&quo ...`,l:"en/index.html#vue-js",a:"vue-js"},"10.5":{t:"`React.js`",p:`::: code-group
-import { useEffect, useRef } from 'react';
-impo ...`,l:"en/index.html#react-js",a:"react-js"},"10.6":{t:"Syntax hint",p:"Sometimes your js file will lose the type prompt of TypeScript ...",l:"en/index.html#syntax-hint",a:"syntax-hint"},"11.0":{t:"# dash.js",p:`👉 https://github.com/Dash-Industry-Forum/dash.js
-<div clas ...`,l:"en/library/dash.html",a:"dash-js"},"12.0":{t:"# flv.js",p:`👉 https://github.com/Bilibili/flv.js
-<div className=" ...`,l:"en/library/flv.html",a:"flv-js"},"13.0":{t:"# hls.js",p:`👉 https://github.com/video-dev/hls.js
-<div className=" ...`,l:"en/library/hls.html",a:"hls-js"},"14.0":{t:"# webtorrent.js",p:`👉 https://github.com/webtorrent/webtorrent
-<div className= ...`,l:"en/library/webtorrent.html",a:"webtorrent-js"},"15.0":{t:"# 视频广告",p:"",l:"en/plugin/ads.html",a:"视频广告"},"15.1":{t:"演示",p:`👉 查看完整演示
-`,l:"en/plugin/ads.html#演示",a:"演示"},"15.2":{t:"安装",p:`::: code-group
-npm install artplayer-plugin-ads
-
-yarn add artp ...`,l:"en/plugin/ads.html#安装",a:"安装"},"15.3":{t:"CDN",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer-plugin-a ...`,l:"en/plugin/ads.html#cdn",a:"cdn"},"15.4":{t:"使用",p:"<div className="run-code" data-libs="./uncom ...",l:"en/plugin/ads.html#使用",a:"使用"},"16.0":{t:"# 控制器皮肤",p:"",l:"en/plugin/control-ui.html",a:"控制器皮肤"},"16.1":{t:"演示",p:`👉 查看完整演示
-`,l:"en/plugin/control-ui.html#演示",a:"演示"},"16.2":{t:"安装",p:`::: code-group
-npm install artplayer-plugin-control
-
-yarn add  ...`,l:"en/plugin/control-ui.html#安装",a:"安装"},"16.3":{t:"CDN",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer-plugin-c ...`,l:"en/plugin/control-ui.html#cdn",a:"cdn"},"16.4":{t:"使用",p:"<div className="run-code" data-libs="./uncom ...",l:"en/plugin/control-ui.html#使用",a:"使用"},"16.5":{t:"`enable`",p:`
-Type: Getter/Setter
-Parameter: Boolean
-
-是否启用新的控制器皮肤
-<div c ...`,l:"en/plugin/control-ui.html#enable",a:"enable"},"17.0":{t:"# Dash 画质",p:"",l:"en/plugin/dash-quality.html",a:"dash-画质"},"17.1":{t:"演示",p:`👉 查看完整演示
-`,l:"en/plugin/dash-quality.html#演示",a:"演示"},"17.2":{t:"安装",p:`::: code-group
-npm install artplayer-plugin-dash-quality
-
-yarn ...`,l:"en/plugin/dash-quality.html#安装",a:"安装"},"17.3":{t:"CDN",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer-plugin-d ...`,l:"en/plugin/dash-quality.html#cdn",a:"cdn"},"18.0":{t:"# HLS 画质",p:"",l:"en/plugin/hls-quality.html",a:"hls-画质"},"18.1":{t:"演示",p:`👉 查看完整演示
-`,l:"en/plugin/hls-quality.html#演示",a:"演示"},"18.2":{t:"安装",p:`::: code-group
-npm install artplayer-plugin-hls-quality
-
-yarn  ...`,l:"en/plugin/hls-quality.html#安装",a:"安装"},"18.3":{t:"CDN",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer-plugin-h ...`,l:"en/plugin/hls-quality.html#cdn",a:"cdn"},"19.0":{t:"# Iframe 控制",p:"",l:"en/plugin/iframe.html",a:"iframe-控制"},"19.1":{t:"说明",p:"通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.htm ...",l:"en/plugin/iframe.html#说明",a:"说明"},"19.2":{t:"演示",p:`👉 查看完整演示
-`,l:"en/plugin/iframe.html#演示",a:"演示"},"19.3":{t:"安装",p:`::: code-group
-npm install artplayer-plugin-iframe
-
-yarn add a ...`,l:"en/plugin/iframe.html#安装",a:"安装"},"19.4":{t:"`CDN`",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer-plugin-i ...`,l:"en/plugin/iframe.html#cdn",a:"cdn"},"19.5":{t:"使用",p:`::: code-group
-<!DOCTYPE html>
-<html>
-    <head ...`,l:"en/plugin/iframe.html#使用",a:"使用"},"19.6":{t:"`index.html` 接口",p:"",l:"en/plugin/iframe.html#index-html-接口",a:"index-html-接口"},"19.7":{t:"`commit`",p:"从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于 ...",l:"en/plugin/iframe.html#commit",a:"commit"},"19.8":{t:"`message`",p:`在 index.html 接收来自 iframe.html 的消息
-iframe.message((event) => ...`,l:"en/plugin/iframe.html#message",a:"message"},"19.9":{t:"`destroy`",p:`销毁后 index.html 无法与 iframe.html 通信
-iframe.destroy();
-
-`,l:"en/plugin/iframe.html#destroy",a:"destroy"},"19.10":{t:"`iframe.html` 接口",p:`:::warning 提示
-iframe.html 接口 只能运行在 iframe.html 里
-:::
-`,l:"en/plugin/iframe.html#iframe-html-接口",a:"iframe-html-接口"},"19.11":{t:"`inject`",p:`注入脚本,接收来自 index.html 的消息
-ArtplayerPluginIframe.inject();
-
-`,l:"en/plugin/iframe.html#inject",a:"inject"},"19.12":{t:"`postMessage`",p:`将消息推送到 index.html
-iframe.message((event) => {
-    console.i ...`,l:"en/plugin/iframe.html#postmessage",a:"postmessage"},"19.13":{t:"例子",p:"最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听  ...",l:"en/plugin/iframe.html#例子",a:"例子"},"20.0":{t:"# Component",p:"The component configuration mentioned here mainly refers to th ...",l:"en/start/component.html",a:"component"},"20.1":{t:"`layers`",p:"Add a layer during instantiation, such as logo or advertisemen ...",l:"en/start/component.html#layers",a:"layers"},"20.2":{t:"`controls`",p:`Add a control during instantiation
-:::warning There are three  ...`,l:"en/start/component.html#controls",a:"controls"},"20.3":{t:"`contextmenu`",p:`Add a contextmenu during instantiation
-<div className=" ...`,l:"en/start/component.html#contextmenu",a:"contextmenu"},"21.0":{t:"# Option",p:"",l:"en/start/option.html",a:"option"},"21.1":{t:"`container`",p:`
-Type: String, Element
-Default: #artplayer
-
-The DOM container  ...`,l:"en/start/option.html#container",a:"container"},"21.2":{t:"`url`",p:`
-Type: String
-Default: ''
-
-Video source address
-<div classN ...`,l:"en/start/option.html#url",a:"url"},"21.3":{t:"`id`",p:`
-Type: String
-Default: ''
-
-The unique identifier of the player ...`,l:"en/start/option.html#id",a:"id"},"21.4":{t:"`onReady`",p:`
-Type: Function
-Default: undefined
-
-The constructor accepts a  ...`,l:"en/start/option.html#onready",a:"onready"},"21.5":{t:"`poster`",p:`
-Type: String
-Default: ''
-
-Video posters will only appear when ...`,l:"en/start/option.html#poster",a:"poster"},"21.6":{t:"`title`",p:`
-Type: String
-Default: ''
-
-Video title, which currently appear ...`,l:"en/start/option.html#title",a:"title"},"21.7":{t:"`theme`",p:`
-Type: String
-Default: #f00
-
-The player theme color is current ...`,l:"en/start/option.html#theme",a:"theme"},"21.8":{t:"`volume`",p:`
-Type: Number
-Default: 0.7
-
-Default volume of player
-<div c ...`,l:"en/start/option.html#volume",a:"volume"},"21.9":{t:"`isLive`",p:`
-Type: Boolean
-Default: false
-
-When using live mode, the progr ...`,l:"en/start/option.html#islive",a:"islive"},"21.10":{t:"`muted`",p:`
-Type: Boolean
-Default: false
-
-Whether to mute by default
-< ...`,l:"en/start/option.html#muted",a:"muted"},"21.11":{t:"`autoplay`",p:`
-Type: Boolean
-Default: false
-
-Whether to play automatically
-& ...`,l:"en/start/option.html#autoplay",a:"autoplay"},"21.12":{t:"`autoSize`",p:`
-Type: Boolean
-Default: false
-
-The size of the player will fil ...`,l:"en/start/option.html#autosize",a:"autosize"},"21.13":{t:"`autoMini`",p:`
-Type: Boolean
-Default: false
-
-When the player scrolls outside ...`,l:"en/start/option.html#automini",a:"automini"},"21.14":{t:"`loop`",p:`
-Type: Boolean
-Default: false
-
-Whether to play in a loop
-<d ...`,l:"en/start/option.html#loop",a:"loop"},"21.15":{t:"`flip`",p:`
-Type: Boolean
-Default: false
-
-Whether to display the video fl ...`,l:"en/start/option.html#flip",a:"flip"},"21.16":{t:"`playbackRate`",p:`
-Type: Boolean
-Default: false
-
-Whether to display the video pl ...`,l:"en/start/option.html#playbackrate",a:"playbackrate"},"21.17":{t:"`aspectRatio`",p:`
-Type: Boolean
-Default: false
-
-Whether to display the video as ...`,l:"en/start/option.html#aspectratio",a:"aspectratio"},"21.18":{t:"`screenshot`",p:`
-Type: Boolean
-Default: false
-
-Whether to display the video sc ...`,l:"en/start/option.html#screenshot",a:"screenshot"},"21.19":{t:"`setting`",p:`
-Type: Boolean
-Default: false
-
-Whether to display the switch b ...`,l:"en/start/option.html#setting",a:"setting"},"21.20":{t:"`hotkey`",p:`
-Type: Boolean
-Default: true
-
-Whether to use shortcut keys
-< ...`,l:"en/start/option.html#hotkey",a:"hotkey"},"21.21":{t:"`pip`",p:`
-Type: Boolean
-Default: false
-
-Whether to display the picture  ...`,l:"en/start/option.html#pip",a:"pip"},"21.22":{t:"`mutex`",p:`
-Type: Boolean
-Default: true
-
-If there are multiple players in ...`,l:"en/start/option.html#mutex",a:"mutex"},"21.23":{t:"`fullscreen`",p:`
-Type: Boolean
-Default: false
-
-Whether to display the player w ...`,l:"en/start/option.html#fullscreen",a:"fullscreen"},"21.24":{t:"`fullscreenWeb`",p:`
-Type: Boolean
-Default: false
-
-Whether to display the player f ...`,l:"en/start/option.html#fullscreenweb",a:"fullscreenweb"},"21.25":{t:"`subtitleOffset`",p:`
-Type: Boolean
-Default: false
-
-Subtitle time offset, with the  ...`,l:"en/start/option.html#subtitleoffset",a:"subtitleoffset"},"21.26":{t:"`miniProgressBar`",p:`
-Type: Boolean
-Default: false
-
-Mini progress bar, only appears ...`,l:"en/start/option.html#miniprogressbar",a:"miniprogressbar"},"21.27":{t:"`useSSR`",p:`
-Type: Boolean
-Default: false
-
-Whether to use the SSR mount mo ...`,l:"en/start/option.html#usessr",a:"usessr"},"21.28":{t:"`playsInline`",p:`
-Type: Boolean
-Default: true
-
-Whether to use the playsInline m ...`,l:"en/start/option.html#playsinline",a:"playsinline"},"21.29":{t:"`layers`",p:`
-Type: Array
-Default: []
-
-Initialize the customized layers
-< ...`,l:"en/start/option.html#layers",a:"layers"},"21.30":{t:"`settings`",p:`
-Type: Array
-Default: []
-
-Initialize the customized Setting
-&l ...`,l:"en/start/option.html#settings",a:"settings"},"21.31":{t:"`contextmenu`",p:`
-Type: Array
-Default: []
-
-Initialize the customized Contextmen ...`,l:"en/start/option.html#contextmenu",a:"contextmenu"},"21.32":{t:"`controls`",p:`
-Type: Array
-Default: []
-
-Initialize the customized Controls
-& ...`,l:"en/start/option.html#controls",a:"controls"},"21.33":{t:"`quality`",p:`
-Type: Array
-Default: []
-
-Whether to display the Quality list  ...`,l:"en/start/option.html#quality",a:"quality"},"21.34":{t:"`highlight`",p:`
-Type: Array
-Default: []
-
-Display highlight on the progress ba ...`,l:"en/start/option.html#highlight",a:"highlight"},"21.35":{t:"`plugins`",p:`
-Type: Array
-Default: []
-
-Initialize customized plugins
-<di ...`,l:"en/start/option.html#plugins",a:"plugins"},"21.36":{t:"`whitelist`",p:`
-Type: Array
-Default: []
-
-Because different mobile devices hav ...`,l:"en/start/option.html#whitelist",a:"whitelist"},"21.37":{t:"`thumbnails`",p:`
-Type: Object
-Default: {}
-
-Set the thumbnails image on the pro ...`,l:"en/start/option.html#thumbnails",a:"thumbnails"},"21.38":{t:"`subtitle`",p:`
-Type: Object
-Default: {}
-
-Set the subtitle of the video and s ...`,l:"en/start/option.html#subtitle",a:"subtitle"},"21.39":{t:"`moreVideoAttr`",p:`
-Type: Object
-Default: {'controls': false,'preload': 'metadata ...`,l:"en/start/option.html#morevideoattr",a:"morevideoattr"},"21.40":{t:"`icons`",p:`
-Type: Object
-Default: {}
-
-It is used to replace the default i ...`,l:"en/start/option.html#icons",a:"icons"},"21.41":{t:"`type`",p:`
-Type: String
-Default: ''
-
-It is used to indicate the format o ...`,l:"en/start/option.html#type",a:"type"},"21.42":{t:"`customType`",p:`
-Type: Object
-Default: {}
-
-By matching the video's type, the v ...`,l:"en/start/option.html#customtype",a:"customtype"},"21.43":{t:"`lang`",p:`
-Type: String
-Default: navigator.language.toLowerCase()
-
-The d ...`,l:"en/start/option.html#lang",a:"lang"},"21.44":{t:"`i18n`",p:`
-Type: Object
-Default: {}
-
-Customize the i18n configuration, w ...`,l:"en/start/option.html#i18n",a:"i18n"},"21.45":{t:"`lock`",p:`
-Type: Boolean
-Default: false
-
-Whether to display a lock butto ...`,l:"en/start/option.html#lock",a:"lock"},"21.46":{t:"`fastForward`",p:`
-Type: Boolean
-Default: false
-
-Whether to add long-press video ...`,l:"en/start/option.html#fastforward",a:"fastforward"},"21.47":{t:"`autoPlayback`",p:`
-Type: Boolean
-Default: false
-
-Whether to use automatic playba ...`,l:"en/start/option.html#autoplayback",a:"autoplayback"},"21.48":{t:"`autoOrientation`",p:`
-Type: Boolean
-Default: false
-
-Whether to rotate the player ac ...`,l:"en/start/option.html#autoorientation",a:"autoorientation"},"21.49":{t:"`airplay`",p:`
-Type: Boolean
-Default: false
-
-Whether to display the airplay  ...`,l:"en/start/option.html#airplay",a:"airplay"},"22.0":{t:"# 设置面板",p:"You need to open the settings panel first. The player has four ...",l:"en/start/setting.html",a:"设置面板"},"22.1":{t:"Selection list",p:`
-
-
-Property
-Type
-Describe
-
-
-
-
-html
-String, Element
-DOM of elem ...`,l:"en/start/setting.html#selection-list",a:"selection-list"},"22.2":{t:"List nesting",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/start/setting.html#list-nesting",a:"list-nesting"},"22.3":{t:"Toggle button",p:`
-
-
-Property
-Type
-Describe
-
-
-
-
-html
-String, Element
-DOM of elem ...`,l:"en/start/setting.html#toggle-button",a:"toggle-button"},"22.4":{t:"Range Slider",p:`
-
-
-Property
-Type
-Describe
-
-
-
-
-html
-String, Element
-DOM of elem ...`,l:"en/start/setting.html#range-slider",a:"range-slider"},"23.0":{t:"# 安装使用",p:"",l:"index.html",a:"安装使用"},"23.1":{t:"安装",p:`::: code-group
-npm install artplayer
-
-yarn add artplayer
-
-pnpm ...`,l:"index.html#安装",a:"安装"},"23.2":{t:"`CDN`",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer/dist/art ...`,l:"index.html#cdn",a:"cdn"},"23.3":{t:"使用",p:`::: code-group
-import Artplayer from 'artplayer';
-
-const art = ...`,l:"index.html#使用",a:"使用"},"23.4":{t:"`Vue.js`",p:`::: code-group
-<template>
-  <div ref="artRef&quo ...`,l:"index.html#vue-js",a:"vue-js"},"23.5":{t:"`React.js`",p:`::: code-group
-import { useEffect, useRef } from 'react';
-impo ...`,l:"index.html#react-js",a:"react-js"},"23.6":{t:"语法提示",p:`有时你的 js 文件会丢失 TypeScript 的类型提示,这时候你可以手动导入类型
-变量:
-/**
- * @type { ...`,l:"index.html#语法提示",a:"语法提示"},"24.0":{t:"# dash.js",p:`👉 https://github.com/Dash-Industry-Forum/dash.js
-<div clas ...`,l:"library/dash.html",a:"dash-js"},"25.0":{t:"# flv.js",p:`👉 https://github.com/Bilibili/flv.js
-<div className=" ...`,l:"library/flv.html",a:"flv-js"},"26.0":{t:"# hls.js",p:`👉 https://github.com/video-dev/hls.js
-<div className=" ...`,l:"library/hls.html",a:"hls-js"},"27.0":{t:"# webtorrent.js",p:`👉 https://github.com/webtorrent/webtorrent
-<div className= ...`,l:"library/webtorrent.html",a:"webtorrent-js"},"28.0":{t:"# 视频广告",p:"",l:"plugin/ads.html",a:"视频广告"},"28.1":{t:"演示",p:`👉 查看完整演示
-`,l:"plugin/ads.html#演示",a:"演示"},"28.2":{t:"安装",p:`::: code-group
-npm install artplayer-plugin-ads
-
-yarn add artp ...`,l:"plugin/ads.html#安装",a:"安装"},"28.3":{t:"CDN",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer-plugin-a ...`,l:"plugin/ads.html#cdn",a:"cdn"},"28.4":{t:"使用",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/ads.html#使用",a:"使用"},"29.0":{t:"# 控制器皮肤",p:"",l:"plugin/control-ui.html",a:"控制器皮肤"},"29.1":{t:"演示",p:`👉 查看完整演示
-`,l:"plugin/control-ui.html#演示",a:"演示"},"29.2":{t:"安装",p:`::: code-group
-npm install artplayer-plugin-control
-
-yarn add  ...`,l:"plugin/control-ui.html#安装",a:"安装"},"29.3":{t:"CDN",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer-plugin-c ...`,l:"plugin/control-ui.html#cdn",a:"cdn"},"29.4":{t:"使用",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/control-ui.html#使用",a:"使用"},"29.5":{t:"`enable`",p:`
-Type: Getter/Setter
-Parameter: Boolean
-
-是否启用新的控制器皮肤
-<div c ...`,l:"plugin/control-ui.html#enable",a:"enable"},"30.0":{t:"# 弹幕库",p:"",l:"plugin/danmuku.html",a:"弹幕库"},"30.1":{t:"演示",p:`👉 查看完整演示
-`,l:"plugin/danmuku.html#演示",a:"演示"},"30.2":{t:"安装",p:`::: code-group
-npm install artplayer-plugin-danmuku
-
-yarn add  ...`,l:"plugin/danmuku.html#安装",a:"安装"},"30.3":{t:"CDN",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer-plugin-d ...`,l:"plugin/danmuku.html#cdn",a:"cdn"},"30.4":{t:"选项",p:`{
-    danmuku: [], // 弹幕库,支持数组, xml 地址, Promise返回数组
-    speed: ...`,l:"plugin/danmuku.html#选项",a:"选项"},"30.5":{t:"使用弹幕数组",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/danmuku.html#使用弹幕数组",a:"使用弹幕数组"},"30.6":{t:"使用弹幕 XML",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/danmuku.html#使用弹幕-xml",a:"使用弹幕-xml"},"30.7":{t:"使用异步调用",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/danmuku.html#使用异步调用",a:"使用异步调用"},"30.8":{t:"`hide/show`",p:`通过方法 hide 和 show 进行隐藏或者显示弹幕
-<div className="run-code&q ...`,l:"plugin/danmuku.html#hide-show",a:"hide-show"},"30.9":{t:"`isHide`",p:`通过属性 isHide 判断当前弹幕是隐藏或者显示
-<div className="run-code&quo ...`,l:"plugin/danmuku.html#ishide",a:"ishide"},"30.10":{t:"`emit`",p:`通过方法 emit 发送一条实时弹幕
-<div className="run-code" data ...`,l:"plugin/danmuku.html#emit",a:"emit"},"30.11":{t:"`config`",p:`通过方法 config 实时改变弹幕配置,支持属性有:
-
-danmuku
-speed
-opacity
-fontSize
-co ...`,l:"plugin/danmuku.html#config",a:"config"},"30.12":{t:"`load`",p:`通过 load 方法可以重载弹幕源,或者切换新弹幕
-<div className="run-code&quo ...`,l:"plugin/danmuku.html#load",a:"load"},"30.13":{t:"`reset`",p:`用于清空当前显示的弹幕
-<div className="run-code" data-libs=& ...`,l:"plugin/danmuku.html#reset",a:"reset"},"30.14":{t:"`option`",p:`用于获取当前弹幕配置
-<div className="run-code" data-libs=&q ...`,l:"plugin/danmuku.html#option",a:"option"},"30.15":{t:"事件",p:`var art = new Artplayer({
-    container: '.artplayer-app',
-    ...`,l:"plugin/danmuku.html#事件",a:"事件"},"31.0":{t:"# Dash 画质",p:"",l:"plugin/dash-quality.html",a:"dash-画质"},"31.1":{t:"演示",p:`👉 查看完整演示
-`,l:"plugin/dash-quality.html#演示",a:"演示"},"31.2":{t:"安装",p:`::: code-group
-npm install artplayer-plugin-dash-quality
-
-yarn ...`,l:"plugin/dash-quality.html#安装",a:"安装"},"31.3":{t:"CDN",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer-plugin-d ...`,l:"plugin/dash-quality.html#cdn",a:"cdn"},"32.0":{t:"# HLS 画质",p:"",l:"plugin/hls-quality.html",a:"hls-画质"},"32.1":{t:"演示",p:`👉 查看完整演示
-`,l:"plugin/hls-quality.html#演示",a:"演示"},"32.2":{t:"安装",p:`::: code-group
-npm install artplayer-plugin-hls-quality
-
-yarn  ...`,l:"plugin/hls-quality.html#安装",a:"安装"},"32.3":{t:"CDN",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer-plugin-h ...`,l:"plugin/hls-quality.html#cdn",a:"cdn"},"33.0":{t:"# Iframe 控制",p:"",l:"plugin/iframe.html",a:"iframe-控制"},"33.1":{t:"说明",p:"通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.htm ...",l:"plugin/iframe.html#说明",a:"说明"},"33.2":{t:"演示",p:`👉 查看完整演示
-`,l:"plugin/iframe.html#演示",a:"演示"},"33.3":{t:"安装",p:`::: code-group
-npm install artplayer-plugin-iframe
-
-yarn add a ...`,l:"plugin/iframe.html#安装",a:"安装"},"33.4":{t:"`CDN`",p:`::: code-group
-https://cdn.jsdelivr.net/npm/artplayer-plugin-i ...`,l:"plugin/iframe.html#cdn",a:"cdn"},"33.5":{t:"使用",p:`::: code-group
-<!DOCTYPE html>
-<html>
-    <head ...`,l:"plugin/iframe.html#使用",a:"使用"},"33.6":{t:"`index.html` 接口",p:"",l:"plugin/iframe.html#index-html-接口",a:"index-html-接口"},"33.7":{t:"`commit`",p:"从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于 ...",l:"plugin/iframe.html#commit",a:"commit"},"33.8":{t:"`message`",p:`在 index.html 接收来自 iframe.html 的消息
-iframe.message((event) => ...`,l:"plugin/iframe.html#message",a:"message"},"33.9":{t:"`destroy`",p:`销毁后 index.html 无法与 iframe.html 通信
-iframe.destroy();
-
-`,l:"plugin/iframe.html#destroy",a:"destroy"},"33.10":{t:"`iframe.html` 接口",p:`:::warning 提示
-iframe.html 接口 只能运行在 iframe.html 里
-:::
-`,l:"plugin/iframe.html#iframe-html-接口",a:"iframe-html-接口"},"33.11":{t:"`inject`",p:`注入脚本,接收来自 index.html 的消息
-ArtplayerPluginIframe.inject();
-
-`,l:"plugin/iframe.html#inject",a:"inject"},"33.12":{t:"`postMessage`",p:`将消息推送到 index.html
-iframe.message((event) => {
-    console.i ...`,l:"plugin/iframe.html#postmessage",a:"postmessage"},"33.13":{t:"例子",p:"最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听  ...",l:"plugin/iframe.html#例子",a:"例子"},"34.0":{t:"# 组件配置",p:`这里所说的组件配置主要是指:layers , controls , contextmenu 这三个共用的配置:
-
-
-
-属性
- ...`,l:"start/component.html",a:"组件配置"},"34.1":{t:"`layers`",p:`实例化时添加一个层,例如可以添加 logo 或者 广告 等等
-<div className="run-cod ...`,l:"start/component.html#layers",a:"layers"},"34.2":{t:"`controls`",p:`实例化时添加一个控制器
-:::warning controls 还有三个额外的选项
-
-position: left 和 ri ...`,l:"start/component.html#controls",a:"controls"},"34.3":{t:"`contextmenu`",p:`实例化时添加一个右键菜单
-<div className="run-code">▶ Run C ...`,l:"start/component.html#contextmenu",a:"contextmenu"},"35.0":{t:"# 基础选项",p:"",l:"start/option.html",a:"基础选项"},"35.1":{t:"`container`",p:`
-Type: String, Element
-Default: #artplayer
-
-播放器挂载的 DOM 容器
-< ...`,l:"start/option.html#container",a:"container"},"35.2":{t:"`url`",p:`
-Type: String
-Default: ''
-
-视频源地址
-<div className="run-c ...`,l:"start/option.html#url",a:"url"},"35.3":{t:"`id`",p:`
-Type: String
-Default: ''
-
-播放器的唯一标识,目前只用于记忆播放 autoplayback
-< ...`,l:"start/option.html#id",a:"id"},"35.4":{t:"`onReady`",p:`
-Type: Function
-Default: undefined
-
-构造函数接受一个函数作为第二个参数,播放器初始化成功 ...`,l:"start/option.html#onready",a:"onready"},"35.5":{t:"`poster`",p:`
-Type: String
-Default: ''
-
-视频的海报,只会出现在播放器初始化且未播放的状态下
-<div c ...`,l:"start/option.html#poster",a:"poster"},"35.6":{t:"`title`",p:`
-Type: String
-Default: ''
-
-视频标题,目前会出现在 视频截图 和 迷你模式 下
-<div c ...`,l:"start/option.html#title",a:"title"},"35.7":{t:"`theme`",p:`
-Type: String
-Default: #f00
-
-播放器主题颜色,目前用于 进度条 和 高亮元素 上
-<div ...`,l:"start/option.html#theme",a:"theme"},"35.8":{t:"`volume`",p:`
-Type: Number
-Default: 0.7
-
-播放器的默认音量
-<div className="r ...`,l:"start/option.html#volume",a:"volume"},"35.9":{t:"`isLive`",p:`
-Type: Boolean
-Default: false
-
-使用直播模式,会隐藏进度条和播放时间
-<div clas ...`,l:"start/option.html#islive",a:"islive"},"35.10":{t:"`muted`",p:`
-Type: Boolean
-Default: false
-
-是否默认静音
-<div className=" ...`,l:"start/option.html#muted",a:"muted"},"35.11":{t:"`autoplay`",p:`
-Type: Boolean
-Default: false
-
-是否自动播放
-<div className=" ...`,l:"start/option.html#autoplay",a:"autoplay"},"35.12":{t:"`autoSize`",p:`
-Type: Boolean
-Default: false
-
-播放器的尺寸默认会填充整个 container 容器尺寸,所以 ...`,l:"start/option.html#autosize",a:"autosize"},"35.13":{t:"`autoMini`",p:`
-Type: Boolean
-Default: false
-
-当播放器滚动到浏览器视口以外时,自动进入 迷你播放 模式
-&l ...`,l:"start/option.html#automini",a:"automini"},"35.14":{t:"`loop`",p:`
-Type: Boolean
-Default: false
-
-是否循环播放
-<div className=" ...`,l:"start/option.html#loop",a:"loop"},"35.15":{t:"`flip`",p:`
-Type: Boolean
-Default: false
-
-是否显示视频翻转功能,目前只出现在 设置面板 和 右键菜单 里 ...`,l:"start/option.html#flip",a:"flip"},"35.16":{t:"`playbackRate`",p:`
-Type: Boolean
-Default: false
-
-是否显示视频播放速度功能,会出现在 设置面板 和 右键菜单 里 ...`,l:"start/option.html#playbackrate",a:"playbackrate"},"35.17":{t:"`aspectRatio`",p:`
-Type: Boolean
-Default: false
-
-是否显示视频长宽比功能,会出现在 设置面板 和 右键菜单 里
- ...`,l:"start/option.html#aspectratio",a:"aspectratio"},"35.18":{t:"`screenshot`",p:`
-Type: Boolean
-Default: false
-
-是否在底部控制栏里显示 视频截图 功能
-<div cla ...`,l:"start/option.html#screenshot",a:"screenshot"},"35.19":{t:"`setting`",p:`
-Type: Boolean
-Default: false
-
-是否在底部控制栏里显示 设置面板 的开关按钮
-<div  ...`,l:"start/option.html#setting",a:"setting"},"35.20":{t:"`hotkey`",p:`
-Type: Boolean
-Default: true
-
-是否使用快捷键
-<div className=" ...`,l:"start/option.html#hotkey",a:"hotkey"},"35.21":{t:"`pip`",p:`
-Type: Boolean
-Default: false
-
-是否在底部控制栏里显示 画中画 的开关按钮
-<div c ...`,l:"start/option.html#pip",a:"pip"},"35.22":{t:"`mutex`",p:`
-Type: Boolean
-Default: true
-
-假如页面里同时存在多个播放器,是否只能让一个播放器播放
-< ...`,l:"start/option.html#mutex",a:"mutex"},"35.23":{t:"`fullscreen`",p:`
-Type: Boolean
-Default: false
-
-是否在底部控制栏里显示播放器 窗口全屏 按钮
-<div  ...`,l:"start/option.html#fullscreen",a:"fullscreen"},"35.24":{t:"`fullscreenWeb`",p:`
-Type: Boolean
-Default: false
-
-是否在底部控制栏里显示播放器 网页全屏 按钮
-<div  ...`,l:"start/option.html#fullscreenweb",a:"fullscreenweb"},"35.25":{t:"`subtitleOffset`",p:`
-Type: Boolean
-Default: false
-
-字幕时间偏移,范围在 [-5s, 5s],出现在 设置面板 里 ...`,l:"start/option.html#subtitleoffset",a:"subtitleoffset"},"35.26":{t:"`miniProgressBar`",p:`
-Type: Boolean
-Default: false
-
-迷你进度条,只在播放器失去焦点后且正在播放时出现
-<di ...`,l:"start/option.html#miniprogressbar",a:"miniprogressbar"},"35.27":{t:"`useSSR`",p:`
-Type: Boolean
-Default: false
-
-是否使用 SSR 挂载模式,假如你希望在播放器挂载前,就提前渲 ...`,l:"start/option.html#usessr",a:"usessr"},"35.28":{t:"`playsInline`",p:`
-Type: Boolean
-Default: true
-
-在移动端是否使用 playsInline 模式
-<div  ...`,l:"start/option.html#playsinline",a:"playsinline"},"35.29":{t:"`layers`",p:`
-Type: Array
-Default: []
-
-初始化自定义的 层
-<div className="ru ...`,l:"start/option.html#layers",a:"layers"},"35.30":{t:"`settings`",p:`
-Type: Array
-Default: []
-
-初始化自定义的 设置面板
-<div className=" ...`,l:"start/option.html#settings",a:"settings"},"35.31":{t:"`contextmenu`",p:`
-Type: Array
-Default: []
-
-初始化自定义的 右键菜单
-<div className=" ...`,l:"start/option.html#contextmenu",a:"contextmenu"},"35.32":{t:"`controls`",p:`
-Type: Array
-Default: []
-
-初始化自定义的底部 控制栏
-<div className=&quo ...`,l:"start/option.html#controls",a:"controls"},"35.33":{t:"`quality`",p:`
-Type: Array
-Default: []
-
-是否在底部控制栏里显示 画质选择 列表
-
-
-
-属性
-类型
-描述
-
-
-
-
- ...`,l:"start/option.html#quality",a:"quality"},"35.34":{t:"`highlight`",p:`
-Type: Array
-Default: []
-
-在进度条上显示 高亮信息
-
-
-
-属性
-类型
-描述
-
-
-
-
-time
-Nu ...`,l:"start/option.html#highlight",a:"highlight"},"35.35":{t:"`plugins`",p:`
-Type: Array
-Default: []
-
-初始化自定义的 插件
-<div className="r ...`,l:"start/option.html#plugins",a:"plugins"},"35.36":{t:"`whitelist`",p:`
-Type: Array
-Default: []
-
-因为不同的移动设备存在多种差异和限制,有时候你希望在某些移动设备上不使用 ...`,l:"start/option.html#whitelist",a:"whitelist"},"35.37":{t:"`thumbnails`",p:`
-Type: Object
-Default: {}
-
-在进度条上设置 预览图
-
-
-
-属性
-类型
-描述
-
-
-
-
-url
-Str ...`,l:"start/option.html#thumbnails",a:"thumbnails"},"35.38":{t:"`subtitle`",p:`
-Type: Object
-Default: {}
-
-设置视频的字幕,支持字幕格式:vtt, srt, ass
-
-
-
-属性
- ...`,l:"start/option.html#subtitle",a:"subtitle"},"35.39":{t:"`moreVideoAttr`",p:`
-Type: Object
-Default: {'controls': false,'preload': 'metadata ...`,l:"start/option.html#morevideoattr",a:"morevideoattr"},"35.40":{t:"`icons`",p:`
-Type: Object
-Default: {}
-
-用于替换默认图标,支持 Html 字符串和 HTMLElement
-& ...`,l:"start/option.html#icons",a:"icons"},"35.41":{t:"`type`",p:`
-Type: String
-Default: ''
-
-用于指明视频的格式,需要配合 customType 一起使用,默认视频 ...`,l:"start/option.html#type",a:"type"},"35.42":{t:"`customType`",p:`
-Type: Object
-Default: {}
-
-通过视频的 type 进行匹配,把视频解码权交给第三方程序进行处理,处 ...`,l:"start/option.html#customtype",a:"customtype"},"35.43":{t:"`lang`",p:`
-Type: String
-Default: navigator.language.toLowerCase()
-
-默认显示语 ...`,l:"start/option.html#lang",a:"lang"},"35.44":{t:"`i18n`",p:`
-Type: Object
-Default: {}
-
-自定义 i18n 配置,该配置会和自带的 i18n 进行深度合并
-新增 ...`,l:"start/option.html#i18n",a:"i18n"},"35.45":{t:"`lock`",p:`
-Type: Boolean
-Default: false
-
-是否在移动端显示一个 锁定按钮 ,用于隐藏底部 控制栏
-< ...`,l:"start/option.html#lock",a:"lock"},"35.46":{t:"`fastForward`",p:`
-Type: Boolean
-Default: false
-
-是否在移动端添加长按视频快进功能
-<div classN ...`,l:"start/option.html#fastforward",a:"fastforward"},"35.47":{t:"`autoPlayback`",p:`
-Type: Boolean
-Default: false
-
-是否使用自动 回放功能
-<div className=& ...`,l:"start/option.html#autoplayback",a:"autoplayback"},"35.48":{t:"`autoOrientation`",p:`
-Type: Boolean
-Default: false
-
-是否在移动端的网页全屏时,根据视频尺寸和视口尺寸,旋转播放器
- ...`,l:"start/option.html#autoorientation",a:"autoorientation"},"35.49":{t:"`airplay`",p:`
-Type: Boolean
-Default: false
-
-是否显示 airplay 按钮,当前只有部分浏览器支持该功能
- ...`,l:"start/option.html#airplay",a:"airplay"},"36.0":{t:"# 设置面板",p:"需先打开设置面板,播放器默认自带四个设置项:flip, playbackRate, aspectRatio, subtitl ...",l:"start/setting.html",a:"设置面板"},"36.1":{t:"选择列表",p:`
-
-
-属性
-类型
-描述
-
-
-
-
-html
-String, Element
-元素的 DOM
-
-
-icon
-String, El ...`,l:"start/setting.html#选择列表",a:"选择列表"},"36.2":{t:"列表嵌套",p:"<div className="run-code">▶ Run Code</div&g ...",l:"start/setting.html#列表嵌套",a:"列表嵌套"},"36.3":{t:"切换按钮",p:`
-
-
-属性
-类型
-描述
-
-
-
-
-html
-String, Element
-元素的 DOM 元素
-
-
-icon
-String, ...`,l:"start/setting.html#切换按钮",a:"切换按钮"},"36.4":{t:"范围滑块",p:`
-
-
-属性
-类型
-描述
-
-
-
-
-html
-String, Element
-元素的 DOM 元素
-
-
-icon
-String, ...`,l:"start/setting.html#范围滑块",a:"范围滑块"}},n={previewLength:62,buttonLabel:"Search",placeholder:"Search docs",allow:[],ignore:[]},a={INDEX_DATA:t,PREVIEW_LOOKUP:e,Options:n};export{a as default};
diff --git a/docs/document/assets/chunks/virtual_search-data.db13757c.js b/docs/document/assets/chunks/virtual_search-data.db13757c.js
new file mode 100644
index 000000000..3757a79f4
--- /dev/null
+++ b/docs/document/assets/chunks/virtual_search-data.db13757c.js
@@ -0,0 +1,1414 @@
+const t={map:'[{"高级属性":["0.0","9.0"],"option":["0.1","1.12","9.1","10.12","27.0","34.14"],"whitelist":["0.2","9.2","27.36","38.36"],"template":["0.3","9.3"],"events":["0.4","9.4"],"storage":["0.5","9.5"],"icons":["0.6","9.6","27.40","38.40"],"i18n":["0.7","9.7","27.44","38.44"],"notice":["0.8","1.15","9.8","10.15"],"layers":["0.9","9.9","27.29","38.29"],"controls":["0.10","9.10","27.32","38.32"],"contextmenu":["0.11","1.14","2.36","9.11","10.14","11.36","27.31","38.31"],"subtitle":["0.12","2.35","9.12","11.35","27.38","38.38"],"loading":["0.13","2.33","9.13","11.33"],"hotkey":["0.14","2.5","9.14","11.5","27.20","38.20"],"mask":["0.15","2.34","9.15","11.34"],"setting":["0.16","1.16","1.17","1.18","2.38","9.16","10.16","10.17","10.18","11.38","27.19","38.19"],"plugins":["0.17","9.17","27.35","38.35"],"静态属性":["1.0","10.0"],"instances":["1.1","10.1"],"version":["1.2","10.2"],"env":["1.3","10.3"],"build":["1.4","10.4"],"config":["1.5","10.5","34.11"],"utils":["1.6","10.6"],"scheme":["1.7","10.7"],"emitter":["1.8","10.8"],"validator":["1.9","10.9"],"kindof":["1.10","10.10"],"html":["1.11","10.11"],"debug":["1.13","10.13"],"indicator":["1.19","1.20","1.21","1.22","10.19","10.20","10.21","10.22"],"volume":["1.23","1.24","1.42","4.8","10.23","10.24","10.42","13.8","27.8","38.8"],"resize":["1.25","2.15","10.25","11.15"],"scroll":["1.26","1.27","10.26","10.27"],"auto":["1.28","1.29","1.30","10.28","10.29","10.30"],"reconnect":["1.31","1.32","10.31","10.32"],"control":["1.33","2.37","10.33","11.37"],"db":["1.34","10.34"],"mobile":["1.35","1.36","1.37","10.35","10.36","10.37"],"info":["1.38","2.31","10.38","11.31"],"fast":["1.39","1.40","10.39","10.40"],"touch":["1.41","10.41"],"seek":["1.43","2.26","4.5","10.43","11.26","13.5"],"progress":["1.44","10.44"],"playback":["1.45","10.45"],"aspect":["1.46","10.46"],"flip":["1.47","2.20","4.26","10.47","11.20","13.26","27.15","38.15"],"fullscreen":["1.48","2.21","4.18","10.48","11.21","13.18","27.23","38.23"],"实例事件":["2.0","11.0"],"ready":["2.1","11.1"],"restart":["2.2","11.2"],"pause":["2.3","4.2","11.3","13.2"],"play":["2.4","4.1","11.4","13.1"],"destroy":["2.6","4.4","11.6","13.4","26.9","37.9"],"url":["2.7","4.9","11.7","13.9","27.2","38.2"],"focus":["2.8","11.8"],"blur":["2.9","11.9"],"dblclick":["2.10","11.10"],"click":["2.11","11.11"],"error":["2.12","11.12"],"hover":["2.13","11.13"],"mousemove":["2.14","11.14"],"view":["2.16","11.16"],"aspectratio":["2.17","4.28","11.17","13.28","27.17","38.17"],"autoheight":["2.18","4.30","11.18","13.30"],"autosize":["2.19","4.24","11.19","13.24","27.12","38.12"],"fullscreenweb":["2.22","4.19","11.22","13.19","27.24","38.24"],"mini":["2.23","4.22","11.23","13.22"],"pip":["2.24","4.20","11.24","13.20","27.21","38.21"],"screenshot":["2.25","4.15","11.25","13.15","27.18","38.18"],"subtitleoffset":["2.27","11.27","27.25","38.25"],"subtitleupdate":["2.28","11.28"],"subtitleload":["2.29","11.29"],"subtitleswitch":["2.30","11.30"],"layer":["2.32","11.32"],"video":["2.39","2.40","2.41","2.42","2.43","2.44","2.45","2.46","2.47","2.48","2.49","2.50","2.51","2.52","2.53","2.54","2.55","2.56","2.57","2.58","2.59","4.40","11.39","11.40","11.41","11.42","11.43","11.44","11.45","11.46","11.47","11.48","11.49","11.50","11.51","11.52","11.53","11.54","11.55","11.56","11.57","11.58","11.59","13.40"],"编写插件":["3.0","12.0"],"实例属性":["4.0"],"toggle":["4.3","13.3"],"forward":["4.6","13.6"],"backward":["4.7","13.7"],"switchurl":["4.10","13.10"],"switchquality":["4.11","13.11"],"muted":["4.12","13.12","27.10","38.10"],"currenttime":["4.13","13.13"],"duration":["4.14","13.14"],"getdataurl":["4.16","13.16"],"getbloburl":["4.17","13.17"],"poster":["4.21","13.21","27.5","38.5"],"playing":["4.23","13.23"],"rect":["4.25","13.25"],"playbackrate":["4.27","13.27","27.16","38.16"],"loop":["4.29","13.29","27.14","38.14"],"attr":["4.31","13.31"],"title":["4.32","13.32","27.6","38.6"],"type":["4.33","13.33","27.41","38.41"],"theme":["4.34","13.34","27.7","38.7"],"airplay":["4.35","13.35","27.49","38.49"],"loaded":["4.36","13.36"],"played":["4.37","13.37"],"proxy":["4.38","13.38"],"query":["4.39","13.39"],"右键菜单":["5.0","14.0"],"配置":["5.1","6.1","7.1","14.1","15.1","16.1"],"创建":["5.2","6.2","7.2","8.2","8.3","8.4","8.5","14.2","15.2","16.2","17.2","17.3","17.4","17.5"],"添加":["5.3","6.3","7.3","8.6","14.3","15.3","16.3","17.6"],"删除":["5.4","6.4","7.4","8.7","14.4","15.4","16.4","17.7"],"更新":["5.5","6.5","7.5","8.8","14.5","15.5","16.5","17.8"],"控制器":["6.0","15.0"],"业务层":["7.0","16.0"],"设置面板":["8.0","17.0"],"内置":["8.1","17.1"],"instance":["13.0"],"danger":["18.0"],"install":["18.1"],"cdn":["18.2","22.3","23.3","24.3","25.3","26.4","28.2","32.3","33.3","34.3","35.3","36.3","37.4"],"use":["18.3"],"vue":["18.4","28.4"],"react":["18.5","28.5"],"syntax":["18.6"],"dash":["19.0","24.0","29.0","35.0"],"flv":["20.0","30.0"],"hls":["21.0","25.0","31.0","36.0"],"视频广告":["22.0","32.0"],"演示":["22.1","23.1","24.1","25.1","26.2","32.1","33.1","34.1","35.1","36.1","37.2"],"安装":["22.2","23.2","24.2","25.2","26.3","28.1","32.2","33.2","34.2","35.2","36.2","37.3"],"使用":["22.4","23.4","26.5","28.3","32.4","33.4","37.5"],"控制器皮肤":["23.0","33.0"],"enable":["23.5","33.5"],"iframe":["26.0","26.10","37.0","37.10"],"说明":["26.1","37.1"],"index":["26.6","37.6"],"commit":["26.7","37.7"],"message":["26.8","37.8"],"inject":["26.11","37.11"],"postmessage":["26.12","37.12"],"例子":["26.13","37.13"],"container":["27.1","38.1"],"id":["27.3","38.3"],"onready":["27.4","38.4"],"islive":["27.9","38.9"],"autoplay":["27.11","38.11"],"automini":["27.13","38.13"],"mutex":["27.22","38.22"],"miniprogressbar":["27.26","38.26"],"usessr":["27.27","38.27"],"playsinline":["27.28","38.28"],"settings":["27.30","38.30"],"quality":["27.33","38.33"],"highlight":["27.34","38.34"],"thumbnails":["27.37","38.37"],"morevideoattr":["27.39","38.39"],"customtype":["27.42","38.42"],"lang":["27.43","38.43"],"lock":["27.45","38.45"],"fastforward":["27.46","38.46"],"autoplayback":["27.47","38.47"],"autoorientation":["27.48","38.48"],"cssvar":["27.50","38.50"],"安装使用":["28.0"],"语法提示":["28.6"],"弹幕库":["34.0"],"选项":["34.4"],"使用弹幕数组":["34.5"],"使用弹幕":["34.6"],"使用异步调用":["34.7"],"hide":["34.8"],"ishide":["34.9"],"emit":["34.10"],"load":["34.12"],"reset":["34.13"],"事件":["34.15"],"基础选项":["38.0"]},{"0":["4.36","4.37","27.8","38.8"],"1":["34.4"],"5":["7.2","16.2","34.4"],"7":["7.3","16.3","27.8"],"10":["34.4"],"15":["3.0","12.0"],"21":["7.5","8.8","16.5","17.8"],"26":["6.5","15.5"],"27":["8.8","17.8"],"这里的":["0.0","1.0","4.0","9.0","10.0"],"播放器的选项":["0.1","9.1"],"div":["0.1","0.2","0.3","0.5","0.6","0.8","0.14","0.17","1.1","1.6","2.0","2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.27","2.28","2.29","2.30","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","3.0","4.1","4.2","4.3","4.14","4.25","4.35","5.2","5.3","5.4","5.5","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.3","8.6","8.7","8.8","9.1","9.2","9.3","9.5","9.6","9.8","9.14","9.17","10.1","10.6","11.0","11.1","11.2","11.3","11.4","11.5","11.6","11.7","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.17","11.18","11.19","11.20","11.21","11.22","11.23","11.24","11.25","11.26","11.27","11.28","11.29","11.30","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","12.0","13.14","14.2","14.3","14.4","14.5","15.2","15.3","15.4","15.5","16.2","16.3","16.4","16.5","17.3","17.6","17.7","17.8","19.0","20.0","21.0","22.4","23.4","23.5","27.2","27.29","27.30","29.0","30.0","31.0","32.4","33.4","33.5","34.5","34.6","34.7","34.8","34.9","34.10","34.12","34.13","34.14","38.2","38.29","38.30","38.31","38.32"],"classname":["0.1","0.2","0.3","0.17","2.0","2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.27","2.28","2.29","2.30","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","3.0","5.2","5.3","5.4","5.5","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.3","8.6","8.7","8.8","9.1","9.2","9.3","9.17","11.0","11.1","11.2","11.3","11.4","11.5","11.6","11.7","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.17","11.18","11.19","11.20","11.21","11.22","11.23","11.24","11.25","11.26","11.27","11.28","11.29","11.30","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","12.0","13.14","14.2","14.3","14.4","14.5","15.2","15.3","15.4","15.5","16.2","16.3","16.4","16.5","17.3","17.6","17.7","17.8","19.0","20.0","21.0","22.4","23.4","27.2","27.29","27.30","29.0","30.0","31.0","32.4","33.4","34.5","34.6","34.7","34.9","34.10","34.12","34.13","34.14","38.2","38.29","38.30"],"run":["0.1","0.3","2.0","2.2","2.6","2.7","2.12","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.27","2.28","2.29","2.30","2.38","3.0","5.2","5.3","5.4","5.5","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.3","8.6","8.7","8.8","9.1","9.3","11.0","11.2","11.6","11.7","11.12","11.17","11.18","11.20","11.21","11.22","11.23","11.24","11.25","11.27","11.28","11.29","11.30","11.38","12.0","14.2","14.3","14.4","14.5","15.2","15.3","15.4","15.5","16.2","16.3","16.4","16.5","17.3","17.6","17.7","17.8","19.0","20.0","21.0","22.4","23.4","27.2","27.29","29.0","30.0","31.0","32.4","33.4","34.5","34.6","34.7","34.9","34.10","34.12","34.13","34.14","38.2","38.29","38.30"],"管理移动设备的白名单功能":["0.2","9.2"],"只有一个属性":["0.2","9.2"],"state":["0.2","9.2"],"返回是否启用播放器功能":["0.2","9.2"],"管理播放器所有的":["0.3","0.4","0.6","9.3","9.4","9.6"],"dom":["0.3","0.4","4.38","4.39","8.2","8.4","8.5","9.3","9.4","13.38","13.39","17.2","17.4","17.5","27.1","38.1"],"元素":["0.3","8.4","8.5","9.3","17.4","17.5"],"事件":["0.4","3.0","9.4","12.0"],"实质上是代理了":["0.4","9.4"],"addeventlistener":["0.4","4.38","9.4","13.38"],"和":["0.4","3.0","4.11","9.4","12.0","34.8","38.4"],"removeeventlistener":["0.4","9.4"],"当使用以下方法来处理事件":["0.4","9.4"],"播放器销毁时也会自动销毁该事件":["0.4","9.4"],"proxy":["0.4","9.4"],"方法用于代理":["0.4","9.4"],"管理播放器的本地存储":["0.5","9.5"],"name":["0.5","3.0","9.5","12.0"],"属性用于设置缓存的":["0.5","9.5"],"key":["0.5","9.5"],"set":["0.5","9.5","13.8","13.11","13.12","13.13","13.18","13.19","13.20","13.21","13.24","13.26","13.28","13.29","27.37","27.38"],"方法用于设置缓存":["0.5","9.5"],"get":["0.5","0.7","9.5","9.7","13.13","13.14","13.16","13.17","13.18","13.20","13.23","13.25","13.31","13.32","13.34"],"方法用于获取缓存":["0.5","9.5"],"del":["0.5","9.5"],"方法用于删除缓存":["0.5","9.5"],"clear":["0.5","9.5"],"方法用于清空缓存":["0.5","9.5"],"svg":["0.6","9.6"],"图标":["0.6","9.6"],"管理播放器的":["0.7","9.7"],"方法用于获取":["0.7","9.7"],"的值":["0.7","9.7"],"update":["0.7","9.7"],"管理播放器的提示语":["0.8","9.8"],"只有一个":["0.8","9.8"],"show":["0.8","0.9","0.10","0.11","0.13","0.15","0.16","9.8","9.9","9.10","9.11","9.13","9.15","9.16","34.8"],"属性用于显示提示语":["0.8","9.8"],"管理播放器的层":["0.9","9.9"],"add":["0.9","0.10","0.11","0.14","0.16","0.17","9.9","9.10","9.11","9.14","9.16","9.17"],"方法用于动态添加层":["0.9","9.9"],"属性用于设置是否显示全部层":["0.9","9.9"],"toggle":["0.9","0.10","0.11","0.13","0.15","0.16","9.9","9.10","9.11","9.13","9.15","9.16"],"管理播放器的控制器":["0.10","9.10"],"方法用于动态添加控制器":["0.10","9.10"],"属性用于设置是否显示全部控制器":["0.10","9.10"],"管理播放器的右键菜单":["0.11","9.11"],"方法用于动态添加菜单":["0.11","9.11"],"属性用于设置是否显示全部菜单":["0.11","9.11"],"管理播放器的字幕功能":["0.12","9.12"],"url":["0.12","9.12","13.10","34.15"],"属性设置和返回当前字幕地址":["0.12","9.12"],"style":["0.12","9.12"],"方法设置当前字幕的样式":["0.12","9.12"],"管理播放器的加载层":["0.13","9.13"],"属性用于设置是否显示加载层":["0.13","9.13"],"管理播放器的快捷键功能":["0.14","9.14"],"方法用于添加快捷键":["0.14","9.14"],"remove":["0.14","9.14"],"方法用于删除快捷键":["0.14","9.14"],"管理播放器的遮罩层":["0.15","9.15"],"属性用于设置是否显示遮罩层":["0.15","9.15"],"管理播放器的设置面板":["0.16","9.16"],"方法用于动态添加设置项":["0.16","9.16"],"属性用于设置是否显示全部设置项":["0.16","9.16"],"属性用于切换是否显示全部设置项":["0.16","9.16"],"管理播放器的插件功能":["0.17","9.17"],"只有一个方法":["0.17","9.17"],"用于动态添加插件":["0.17","9.17"],"返回全部播放器实例的数组":["1.1","10.1"],"假如你想同时管理多个播放器的时候":["1.1","10.1"],"可以用到该属性":["1.1","10.1"],"返回播放器的版本信息":["1.2","10.2"],"返回播放器的环境变量":["1.3","10.3"],"返回播放器的打包时间":["1.4","10.4"],"返回视频的默认配置":["1.5","10.5"],"返回播放器的工具函数集合":["1.6","10.6"],"返回播放器选项的校验方案":["1.7","10.7"],"返回事件分发器的构造函数":["1.8","10.8"],"返回选项的校验函数":["1.9","10.9"],"返回类型检测的函数工具":["1.10","10.10"],"返回播放器所需的":["1.11","10.11"],"返回播放器的默认选项":["1.12","10.12"],"time":["1.15","1.25","1.26","1.31","10.15","10.25","10.26","10.31","27.25"],"width":["1.16","8.2","10.16","13.30","17.2"],"item":["1.17","1.18","10.17","10.18"],"size":["1.19","1.20","1.21","1.22","10.19","10.20","10.21","10.22","13.25","27.12"],"panel":["1.23","10.23"],"handle":["1.24","10.24"],"gap":["1.27","10.27"],"playback":["1.28","1.29","1.30","10.28","10.29","10.30","13.3","27.47"],"sleep":["1.32","10.32"],"hide":["1.33","10.33"],"clice":["1.34","10.34"],"auto":["1.35","1.36","1.37","10.35","10.36","10.37"],"loop":["1.38","10.38"],"forward":["1.39","1.40","10.39","10.40"],"move":["1.41","10.41"],"step":["1.42","1.43","10.42","10.43"],"height":["1.44","10.44"],"rate":["1.45","10.45"],"ratio":["1.46","10.46"],"web":["1.48","10.48"],"播放器的事件分为两种":["2.0","11.0"],"一种视频的":["2.0","11.0"],"原生事件":["2.0","11.0"],"前缀":["2.0","11.0"],"video":["2.0","11.0","13.1","13.2","13.3","13.7","13.10","13.11","13.14","13.36","13.37","21.0","27.2","27.5","27.6","27.38","27.41","27.42","31.0"],"另外一种是":["2.0","11.0"],"自定义事件":["2.0","11.0"],"监听事件":["2.0","11.0"],"code":["2.0","2.7","2.27","2.30","3.0","5.2","5.3","5.4","5.5","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.3","8.6","8.7","8.8","11.0","11.7","11.27","11.30","12.0","14.2","14.3","14.4","14.5","15.2","15.3","15.4","15.5","16.2","16.3","16.4","16.5","17.3","17.6","17.7","17.8","18.1","18.2","18.3","18.4","18.5","19.0","20.0","21.0","22.2","22.3","22.4","23.2","23.3","23.4","24.2","24.3","25.2","25.3","26.3","26.4","26.5","27.2","28.1","28.2","28.3","28.4","28.5","29.0","30.0","31.0","32.2","32.3","32.4","33.2","33.3","33.4","34.2","34.3","34.5","34.6","34.7","34.9","34.10","34.12","34.13","34.14","35.2","35.3","36.2","36.3","37.3","37.4","37.5","38.2","38.29"],"js":["2.0","3.0","5.5","6.2","6.3","6.5","7.2","7.3","7.5","8.3","8.7","8.8","11.0","12.0","14.5","15.2","15.3","15.5","16.2","16.3","16.5","17.3","17.7","17.8","18.3","18.4","18.5","18.6","19.0","20.0","21.0","22.4","28.3","28.4","28.5","28.6","29.0","30.0","31.0","32.4","34.4","34.15"],"当播放器首次可以播放器时触发":["2.1","11.1"],"当播放器切换地址后并可以播放时触发":["2.2","11.2"],"当播放器暂停时触发":["2.3","11.3"],"当播放器播放时触发":["2.4","11.4"],"当播放器热键被按下时触发":["2.5","11.5"],"当播放器销毁时触发":["2.6","11.6"],"当视频地址变化时触发":["2.7","11.7"],"当播放器获得焦点时触发":["2.8","11.8"],"当播放器失去焦点时触发":["2.9","11.9"],"当播放器被双击时触发":["2.10","11.10"],"当播放器被单击时触发":["2.11","11.11"],"当播放器加载视频发生错误时触发":["2.12","11.12"],"当播放器被鼠标移出或者移入时触发":["2.13","11.13"],"当播放器被鼠标经过时触发":["2.14","11.14"],"当播放器尺寸变化时触发":["2.15","11.15"],"当播放器出现在视口时触发":["2.16","11.16"],"当播放器长宽比变化时触发":["2.17","11.17"],"当播放器自动设置高度时触发":["2.18","11.18"],"当播放器自动设置尺寸时触发":["2.19","11.19"],"当播放器发生翻转时触发":["2.20","11.20"],"当播放器发生窗口全屏时触发":["2.21","11.21"],"当播放器发生网页全屏时触发":["2.22","11.22"],"当播放器进入迷你模式时触发":["2.23","11.23"],"当播放器进入画中画时触发":["2.24","11.24"],"当播放器被截图时触发":["2.25","11.25"],"当播放器发生时间跳转时触发":["2.26","11.26"],"当播放器发生字幕偏移时触发":["2.27","11.27"],"当字幕更新时触发":["2.28","11.28"],"当字幕加载时触发":["2.29","11.29"],"当字幕切换时触发":["2.30","11.30"],"当信息面板显示或隐藏时触发":["2.31","11.31"],"当自定义层显示或隐藏时触发":["2.32","11.32"],"当加载器显示或隐藏时触发":["2.33","11.33"],"当遮罩层显示或隐藏时触发":["2.34","11.34"],"当字幕层显示或隐藏时触发":["2.35","11.35"],"当右键菜单显示或隐藏时触发":["2.36","11.36"],"当控制器显示或隐藏时触发":["2.37","11.37"],"当设置面板显示或隐藏时触发":["2.38","11.38"],"canplay":["2.39","11.39"],"canplaythrough":["2.40","11.40"],"complete":["2.41","11.41"],"durationchange":["2.42","11.42"],"emptied":["2.43","11.43"],"ended":["2.44","11.44"],"error":["2.45","11.45"],"loadeddata":["2.46","11.46"],"loadedmetadata":["2.47","11.47"],"pause":["2.48","11.48"],"play":["2.49","11.49","27.11"],"playing":["2.50","11.50"],"progress":["2.51","11.51","27.34"],"ratechange":["2.52","11.52"],"seeked":["2.53","11.53"],"seeking":["2.54","11.54"],"stalled":["2.55","11.55"],"suspend":["2.56","11.56"],"timeupdate":["2.57","11.57"],"volumechange":["2.58","11.58"],"waiting":["2.59","11.59"],"但你已经知道播放器的":["3.0","12.0"],"属性":["3.0","5.1","6.1","7.1","8.2","8.4","8.5","12.0","14.1","15.1","16.1","17.2","17.4","17.5","38.33","38.34","38.37","38.38"],"方法":["3.0","12.0"],"后":["3.0","12.0"],"再编写插件是非常简单的事":["3.0","12.0"],"可以在实例化的时候加载插件的函数":["3.0","12.0"],"function":["3.0","4.1","4.2","4.3","4.4","4.10","4.11","4.15","4.16","4.17","4.31","4.35","4.38","4.39","8.2","12.0","13.1","13.2","13.3","13.4","13.10","13.11","13.15","13.16","13.17","13.31","13.35","13.38","13.39","17.2","27.4","38.4"],"myplugin":["3.0","12.0"],"art":["3.0","6.2","12.0","15.2","34.15"],"console":["3.0","12.0"],"info":["3.0","12.0"],"return":["3.0","12.0","13.40"],"something":["3.0","12.0"],"type":["4.1","4.2","4.3","4.4","4.5","4.6","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.14","4.15","4.16","4.17","4.18","4.19","4.20","4.21","4.22","4.23","4.24","4.25","4.26","4.27","4.28","4.29","4.30","4.31","4.32","4.34","4.35","4.36","4.37","4.38","4.39","4.40","13.1","13.2","13.3","13.4","13.5","13.6","13.7","13.8","13.9","13.10","13.11","13.12","13.13","13.14","13.15","13.16","13.17","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.28","13.29","13.30","13.31","13.32","13.34","13.35","13.36","13.37","13.38","13.39","13.40","23.5","27.1","27.2","27.3","27.4","27.5","27.6","27.7","27.8","27.9","27.10","27.11","27.12","27.13","27.14","27.15","27.16","27.17","27.18","27.19","27.20","27.21","27.22","27.23","27.24","27.25","27.26","27.27","27.28","27.29","27.30","27.31","27.32","27.33","27.34","27.35","27.36","27.37","27.38","27.39","27.40","27.42","27.43","27.44","27.45","27.46","27.47","27.48","27.49","27.50","33.5","38.1","38.2","38.3","38.4","38.5","38.6","38.7","38.8","38.9","38.10","38.11","38.12","38.13","38.14","38.15","38.16","38.17","38.18","38.19","38.20","38.21","38.22","38.23","38.24","38.25","38.26","38.27","38.28","38.29","38.30","38.31","38.32","38.33","38.34","38.35","38.36","38.37","38.38","38.39","38.40","38.42","38.43","38.44","38.45","38.46","38.47","38.48","38.49","38.50"],"播放视频":["4.1"],"暂停视频":["4.2"],"切换视频的播放和暂停":["4.3"],"parameter":["4.4","4.5","4.6","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.18","4.19","4.20","4.21","4.22","4.23","4.24","4.26","4.27","4.28","4.29","4.30","4.31","4.32","4.33","4.34","13.4","13.5","13.6","13.7","13.8","13.9","13.10","13.11","13.12","13.13","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.26","13.27","13.28","13.29","13.30","13.31","13.32","13.33","13.34","23.5","27.4","33.5"],"boolean":["4.4","4.12","4.18","4.19","4.20","4.23","4.24","4.30","6.1","13.4","13.12","13.18","13.19","13.20","13.23","13.24","13.30","15.1","23.5","27.9","27.10","27.11","27.12","27.13","27.14","27.15","27.16","27.17","27.18","27.19","27.20","27.21","27.22","27.23","27.24","27.25","27.26","27.27","27.28","27.45","27.46","27.47","27.48","27.49","33.5","38.9","38.10","38.11","38.12","38.13","38.14","38.15","38.16","38.17","38.18","38.19","38.20","38.21","38.22","38.23","38.24","38.25","38.26","38.27","38.28","38.45","38.46","38.47","38.48","38.49"],"setter":["4.5","4.6","4.7","4.8","4.9","4.12","4.13","4.18","4.19","4.20","4.21","4.22","4.24","4.26","4.27","4.28","4.29","4.30","4.32","4.33","4.34","13.5","13.6","13.7","13.8","13.9","13.12","13.13","13.18","13.19","13.20","13.21","13.22","13.24","13.26","13.27","13.28","13.29","13.30","13.32","13.33","13.34","23.5","33.5"],"number":["4.5","4.6","4.7","4.8","4.13","4.27","13.5","13.6","13.7","13.8","13.13","13.27","27.8","38.8"],"getter":["4.8","4.9","4.12","4.13","4.14","4.18","4.19","4.20","4.21","4.22","4.23","4.24","4.25","4.26","4.27","4.28","4.29","4.30","4.32","4.33","4.34","4.36","4.37","13.8","13.9","13.12","13.13","13.14","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.28","13.29","13.30","13.32","13.33","13.34","13.36","13.37","23.5","33.5"],"string":["4.10","4.11","4.21","4.26","4.28","4.31","4.32","4.33","4.34","8.2","8.4","8.5","13.9","13.10","13.11","13.21","13.26","13.28","13.31","13.32","13.33","13.34","17.2","17.4","17.5","27.1","27.2","27.3","27.5","27.6","27.7","27.41","27.43","38.1","38.2","38.3","38.5","38.6","38.7","38.41","38.43"],"设置视频地址":["4.10"],"设置时和":["4.10"],"设置视频画质地址":["4.11"],"获取视频时长":["4.14"],"下载当前视频帧的截图":["4.15"],"获取当前视频帧的截图的":["4.16","4.17"],"base64":["4.16","13.16"],"地址":["4.16","4.17","34.4"],"blob":["4.17","13.17"],"设置和获取视频海报":["4.21"],"获取播放器的尺寸和坐标信息":["4.25"],"array":["4.29","8.2","13.29","17.2","27.29","27.30","27.31","27.32","27.33","27.34","27.35","27.36","38.29","38.30","38.31","38.32","38.33","38.34","38.35","38.36"],"设置和获取区间循序播放":["4.29"],"单位秒":["4.29","34.4"],"当容器只有宽度":["4.30"],"动态获取和设置":["4.31"],"开启隔空播放":["4.35"],"视频缓存的比例":["4.36"],"范围是":["4.36","4.37"],"视频播放的比例":["4.37"],"事件的代理函数":["4.38"],"实质上代理了":["4.38"],"的查询函数":["4.39"],"element":["4.40","8.2","8.4","8.5","13.40","17.2","17.4","17.5","27.1","38.1"],"快捷返回播放器的":["4.40"],"类型":["5.1","6.1","7.1","8.2","8.4","8.5","14.1","15.1","16.1","17.2","17.4","17.5","38.34","38.37","38.38"],"描述":["5.1","6.1","7.1","8.2","8.4","8.5","14.1","15.1","16.1","17.2","17.4","17.5"],"disable":["5.1","6.1","7.1","14.1","15.1","16.1"],"var":["6.2","8.3","15.2","17.3","34.15"],"new":["6.2","15.2","34.15"],"artplayer":["6.2","15.2","18.3","18.5","22.4","27.1","28.3","28.5","32.4","34.5","34.15","38.1"],"container":["6.2","13.30","15.2","34.15"],"需先打开设置面板":["8.1","17.1"],"然后自带四个内置项":["8.1","17.1"],"flip":["8.1","17.1"],"playbackrate":["8.1","17.1"],"选择列表":["8.2","17.2"],"html":["8.2","8.4","8.5","17.2","17.4","17.5","26.5","26.6","26.7","26.10","26.13","37.5","37.6","37.7","37.10","37.13","38.40"],"元素的":["8.2","8.4","8.5","17.2","17.4","17.5"],"icon":["8.2","8.4","8.5","17.2","17.4","17.5"],"元素的图标":["8.2","17.2"],"selector":["8.2","17.2"],"元素列表":["8.2","17.2"],"onselect":["8.2","17.2"],"元素点击事件":["8.2","17.2"],"列表嵌套":["8.3","17.3"],"切换按钮":["8.4","17.4"],"范围滑块":["8.5","17.5"],"property":["13.0"],"the":["13.0","13.10","13.11","13.16","13.17","13.20","13.25","13.30","13.36","13.37","13.38","13.39","13.40","27.1","27.3","27.4","27.7","27.12","27.27","27.29","27.30","27.31","27.32","27.33","27.34","27.37","27.38","27.41","27.42","27.44"],"to":["13.4","27.1","27.11","27.18","27.20","27.27","27.33","27.40","27.41","27.47","27.48","27.50"],"setting":["13.10","27.30"],"is":["13.10","27.40","27.41"],"similar":["13.10","13.11"],"quality":["13.11"],"address":["13.11","13.16","13.17","27.2"],"and":["13.13","13.18","13.20","13.21","13.25","13.29","13.31","13.38","27.36","27.38"],"download":["13.15"],"a":["13.15","27.4"],"full":["13.18"],"obtain":["13.21","13.29"],"whether":["13.24","27.11","27.15","27.16","27.17","27.18","27.19","27.20","27.21","27.23","27.24","27.27","27.33","27.45","27.46","27.47","27.48","27.49"],"interval":["13.29"],"when":["13.30","27.9","27.13"],"has":["13.30"],"only":["13.30"],"this":["13.30"],"attribute":["13.30"],"enable":["13.35"],"proportion":["13.36","13.37"],"of":["13.36","13.37","13.38","13.39","27.12","27.38","27.41"],"event":["13.38"],"essentially":["13.38"],"proxies":["13.38"],"important":["18.0"],"note":["18.0"],"group":["18.1","18.2","18.3","18.4","18.5","22.2","22.3","23.2","23.3","24.2","24.3","25.2","25.3","26.3","26.4","26.5","28.1","28.2","28.3","28.4","28.5","32.2","32.3","33.2","33.3","34.2","34.3","35.2","35.3","36.2","36.3","37.3","37.4","37.5"],"bash":["18.2","22.2","22.3","23.2","23.3","24.2","24.3","25.2","25.3","26.3","26.4","28.2","32.2","32.3","33.2","33.3","34.2","34.3","35.2","35.3","36.2","36.3","37.3","37.4"],"index":["18.3","22.4","26.5","26.7","26.12","26.13","28.3","32.4","37.5","37.7","37.12","37.13"],"import":["18.3","18.5","28.3","28.5"],"from":["18.3","18.5","28.5"],"jsx":["18.5","28.5"],"useeffect":["18.5","28.5"],"useref":["18.5","28.5"],"hint":["18.6"],"sometimes":["18.6","27.36"],"your":["18.6"],"file":["18.6"],"will":["18.6","27.44"],"https":["19.0","20.0","21.0","29.0","30.0","31.0"],"github":["19.0","20.0","21.0","29.0","30.0","31.0"],"com":["19.0","20.0","21.0","29.0","30.0","31.0"],"industry":["19.0","29.0"],"forum":["19.0","29.0"],"bilibili":["20.0","30.0"],"data":["20.0","21.0","22.4","30.0","31.0","32.4","34.5","34.7","34.9","34.10","34.14"],"dev":["21.0","31.0"],"libs":["21.0","22.4","31.0","32.4","34.5","34.7","34.10"],"查看完整演示":["22.1","23.1","24.1","25.1","26.2","32.1","33.1","34.1","35.1","36.1","37.2"],"jsdelivr":["22.3","23.3","24.3","25.3","26.4","32.3","33.3","34.3","35.3","36.3","37.4"],"uncompiled":["22.4","32.4","34.5"],"plugin":["22.4","32.4","34.5"],"ads":["22.4","32.4"],"是否启用新的控制器皮肤":["23.5","33.5"],"画质":["24.0","25.0","35.0","36.0"],"控制":["26.0","37.0"],"通过该插件":["26.1","37.1"],"你可以轻松在":["26.1","37.1"],"doctype":["26.5","37.5"],"从":["26.7","37.7"],"将消息推送到":["26.7","26.12","37.7","37.12"],"iframe":["26.7","26.13","37.7","37.13"],"该函数将在":["26.7","37.7"],"在":["26.8","37.8"],"销毁后":["26.9","37.9"],"注入脚本":["26.11","37.11"],"最常遇到的问题是":["26.13","37.13"],"播放器在":["26.13","37.13"],"里进行网页全屏":["26.13","37.13"],"但在":["26.13","37.13"],"default":["27.1","27.2","27.3","27.4","27.5","27.6","27.7","27.8","27.9","27.10","27.11","27.12","27.13","27.14","27.15","27.16","27.17","27.18","27.19","27.20","27.21","27.22","27.23","27.24","27.25","27.26","27.27","27.28","27.29","27.30","27.31","27.32","27.33","27.34","27.35","27.36","27.37","27.38","27.39","27.40","27.41","27.42","27.43","27.44","27.45","27.46","27.47","27.48","27.49","27.50","38.1","38.2","38.3","38.4","38.5","38.6","38.7","38.8","38.9","38.10","38.11","38.12","38.13","38.14","38.15","38.16","38.17","38.18","38.19","38.20","38.21","38.22","38.23","38.24","38.25","38.26","38.27","38.28","38.29","38.30","38.31","38.32","38.33","38.34","38.35","38.36","38.37","38.38","38.39","38.40","38.41","38.42","38.43","38.44","38.45","38.46","38.47","38.48","38.49","38.50"],"attached":["27.1"],"source":["27.2"],"unique":["27.3"],"undefined":["27.4","38.4"],"constructor":["27.4"],"accepts":["27.4"],"as":["27.4"],"second":["27.4"],"which":["27.4","27.44"],"posters":["27.5"],"f00":["27.7","38.7"],"false":["27.9","27.10","27.11","27.12","27.13","27.14","27.15","27.16","27.17","27.18","27.19","27.21","27.23","27.24","27.25","27.26","27.27","27.39","27.45","27.46","27.47","27.48","27.49","38.11","38.12","38.13","38.15","38.16","38.17","38.18","38.25","38.27","38.45","38.47","38.49"],"display":["27.18","27.33","27.34"],"true":["27.20","27.22","27.28","38.20"],"use":["27.20","27.27","27.47"],"shortcut":["27.20"],"if":["27.22"],"subtitle":["27.25"],"mini":["27.26"],"ssr":["27.27","38.27"],"initialize":["27.29","27.30","27.31","27.32","27.35"],"customized":["27.29","27.30","27.31","27.32","27.35"],"on":["27.34","27.37"],"because":["27.36"],"different":["27.36"],"mobile":["27.36"],"devices":["27.36"],"have":["27.36"],"many":["27.36"],"differences":["27.36"],"limitations":["27.36"],"you":["27.36"],"want":["27.36"],"object":["27.37","27.38","27.39","27.40","27.42","27.44","27.50","38.37","38.38","38.39","38.40","38.42","38.44","38.50"],"image":["27.37"],"support":["27.38"],"controls":["27.39","38.39"],"preload":["27.39"],"it":["27.40","27.41"],"used":["27.40","27.41","27.50"],"replace":["27.40"],"indicate":["27.41"],"format":["27.41"],"needs":["27.41"],"by":["27.42"],"matching":["27.42"],"s":["27.42"],"navigator":["27.43","38.43"],"language":["27.43","38.43"],"customize":["27.44"],"configuration":["27.44"],"be":["27.44"],"deeply":["27.44"],"merged":["27.44"],"automatic":["27.47"],"有时你的":["28.6"],"文件会丢失":["28.6"],"typescript":["28.6"],"danmuku":["34.4","34.11"],"弹幕库":["34.4"],"支持数组":["34.4"],"xml":["34.4","34.6"],"promise返回数组":["34.4"],"speed":["34.4","34.11"],"弹幕持续时间":["34.4"],"范围在":["34.4"],"opacity":["34.4","34.11"],"通过方法":["34.8","34.10","34.11"],"进行隐藏或者显示弹幕":["34.8"],"通过属性":["34.9"],"判断当前弹幕是隐藏或者显示":["34.9"],"发送一条实时弹幕":["34.10"],"实时改变弹幕配置":["34.11"],"支持属性有":["34.11"],"fontsize":["34.11"],"color":["34.11"],"mode":["34.11"],"margin":["34.11"],"通过":["34.12"],"方法可以重载弹幕源":["34.12"],"或者切换新弹幕":["34.12"],"用于清空当前显示的弹幕":["34.13"],"用于获取当前弹幕配置":["34.14"],"app":["34.15"],"assets":["34.15"],"sample":["34.15"],"播放器挂载的":["38.1"],"视频源地址":["38.2"],"播放器的唯一标识":["38.3"],"构造函数接受一个函数作为第二个参数":["38.4"],"播放器初始化成功且视频可以播放时触发":["38.4"],"ready":["38.4"],"视频的海报":["38.5"],"视频标题":["38.6"],"是否自动播放":["38.11"],"是否使用快捷键":["38.20"],"字幕时间偏移":["38.25"],"是否使用":["38.27"],"初始化自定义的":["38.29","38.30","38.31","38.35"],"层":["38.29"],"设置面板":["38.30"],"右键菜单":["38.31"],"初始化自定义的底部":["38.32"],"控制栏":["38.32"],"是否在底部控制栏里显示":["38.33"],"画质选择":["38.33"],"列表":["38.33"],"在进度条上显示":["38.34"],"高亮信息":["38.34"],"插件":["38.35"],"因为不同的移动设备存在多种差异和限制":["38.36"],"有时候你希望在某些移动设备上不使用本播放器":["38.36"],"而是直接使用原生的功能时":["38.36"],"可以通过该选项控制":["38.36"],"在进度条上设置":["38.37"],"预览图":["38.37"],"设置视频的字幕":["38.38"],"支持字幕格式":["38.38"],"vtt":["38.38"],"srt":["38.38"],"ass":["38.38"],"用于替换默认图标":["38.40"],"支持":["38.40"],"用于指明视频的格式":["38.41"],"需要配合":["38.41"],"customtype":["38.41"],"通过视频的":["38.42"],"自定义":["38.44"],"配置":["38.44"],"该配置会和自带的":["38.44"],"进行深度合并":["38.44"],"新增你的语言":["38.44"],"是否使用自动":["38.47"],"回放功能":["38.47"],"用于改变内置的css变量":["38.50"]},{"0":["4.8","13.8","13.36","13.37","21.0","31.0","34.4"],"1":["4.8","4.36","4.37","13.36","13.37","20.0","30.0"],"2":["19.0","20.0","29.0","30.0"],"3":["21.0","27.2","31.0","38.2"],"4":["5.2","14.2","19.0","27.47","29.0","38.44"],"5":["19.0","27.29","27.30","29.0","38.29","38.30"],"6":["2.0","5.3","6.3","11.0","14.3","15.3","20.0","30.0"],"7":["13.14","38.8"],"8":["21.0","31.0"],"9":["8.6","17.6","38.44"],"10":["2.7","6.2","11.7","15.2"],"11":["2.27","11.27"],"13":["2.30","5.2","5.3","11.30","14.2","14.3"],"14":["8.6","17.6"],"21":["5.4","5.5","6.3","6.4","7.4","14.4","14.5","15.3","15.4","16.4"],"22":["7.2","7.3","8.7","16.2","16.3","17.7"],"23":["27.29","38.29"],"24":["5.5","14.5"],"25":["34.4"],"29":["7.5","16.5"],"34":["27.30","38.30"],"40":["6.5","15.5"],"code":["0.1","0.2","0.3","0.5","0.6","0.7","0.8","0.9","0.10","0.11","0.13","0.14","0.15","0.16","0.17","1.1","1.6","2.1","2.2","2.3","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.12","4.14","4.15","4.18","4.19","4.20","4.21","4.23","4.25","4.27","4.28","4.29","4.31","4.32","4.33","4.34","4.35","8.2","9.1","9.2","9.3","9.5","9.6","9.7","9.8","9.9","9.10","9.11","9.13","9.14","9.15","9.16","9.17","10.1","10.6","11.1","11.2","11.3","11.4","11.5","11.6","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.17","11.18","11.19","11.20","11.21","11.22","11.23","11.24","11.25","11.26","11.28","11.29","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.1","13.2","13.14","13.18","13.29","13.35","17.2","23.5","27.1","27.8","27.11","27.20","27.29","27.30","27.31","27.32","27.35","27.44","27.47","33.5","34.8","34.11","38.1","38.4","38.11","38.20","38.30","38.31","38.32","38.35","38.40","38.44","38.47","38.50"],"run":["0.2","0.5","0.6","0.7","0.8","0.9","0.10","0.11","0.12","0.13","0.14","0.15","0.16","0.17","1.1","1.6","2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.13","2.14","2.15","2.16","2.19","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","4.1","4.2","4.3","4.7","4.9","4.12","4.14","4.15","4.16","4.17","4.18","4.19","4.20","4.21","4.23","4.25","4.27","4.28","4.29","4.30","4.31","4.32","4.33","4.34","4.35","8.1","8.2","9.2","9.5","9.6","9.7","9.8","9.9","9.10","9.11","9.12","9.13","9.14","9.15","9.16","9.17","10.1","10.6","11.1","11.3","11.4","11.5","11.8","11.9","11.10","11.11","11.13","11.14","11.15","11.16","11.19","11.26","11.31","11.32","11.33","11.34","11.35","11.36","11.37","13.1","13.2","13.3","13.14","13.18","13.20","13.29","13.35","17.1","17.2","23.5","27.1","27.8","27.11","27.20","27.30","27.31","27.32","27.35","27.44","27.47","33.5","34.8","34.11","38.1","38.4","38.5","38.8","38.11","38.20","38.31","38.32","38.35","38.40","38.44","38.47","38.50"],"js":["0.2","0.3","0.5","0.14","0.17","2.2","2.7","2.18","2.23","2.27","2.28","2.29","2.30","5.2","5.3","5.4","6.4","7.4","8.2","8.6","9.2","9.3","9.5","9.14","9.17","11.2","11.7","11.18","11.23","11.27","11.28","11.29","11.30","13.14","14.2","14.3","14.4","15.4","16.4","17.2","17.6","26.7","26.12","27.1","27.2","27.29","27.30","27.32","27.47","34.5","34.7","34.9","34.10","34.12","37.7","37.12","38.2","38.4","38.29","38.30","38.32","38.44"],"var":["0.3","0.5","2.0","2.30","3.0","5.2","5.3","5.4","5.5","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.2","8.6","8.7","8.8","9.3","9.5","11.0","11.30","12.0","13.14","14.2","14.3","14.4","14.5","15.3","15.4","15.5","16.2","16.3","16.4","16.5","17.2","17.6","17.7","17.8","22.4","26.7","27.2","27.29","27.30","32.4","34.5","37.7","38.2","38.29","38.30","38.44"],"hover":["0.4","9.4"],"方法用于代理自定义的":["0.4","9.4"],"loadimg":["0.4","9.4"],"方法用于监听图片的":["0.4","9.4"],"load":["0.4","9.4"],"加载事件":["0.4","9.4"],"div":["0.4","0.7","0.9","0.10","0.11","0.12","0.13","0.15","0.16","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","4.5","4.6","4.7","4.8","4.9","4.10","4.12","4.13","4.15","4.16","4.17","4.18","4.19","4.20","4.21","4.22","4.23","4.24","4.26","4.27","4.28","4.29","4.30","4.31","4.32","4.33","4.34","4.38","4.40","8.1","8.2","9.4","9.7","9.9","9.10","9.11","9.12","9.13","9.15","9.16","10.2","10.3","10.4","10.5","10.7","10.8","10.9","10.10","10.11","10.12","13.1","13.2","13.3","13.7","13.18","13.20","13.25","13.29","13.32","13.35","17.1","17.2","18.4","27.1","27.8","27.11","27.20","27.31","27.32","27.35","27.44","27.47","28.4","34.11","38.1","38.3","38.4","38.5","38.8","38.9","38.10","38.11","38.14","38.18","38.20","38.22","38.26","38.35","38.40","38.44","38.46","38.47","38.50"],"classname":["0.5","0.6","0.7","0.8","0.9","0.10","0.11","0.12","0.13","0.14","0.15","0.16","1.1","1.2","1.3","1.4","1.5","1.6","1.7","1.8","1.9","1.10","1.12","4.1","4.2","4.3","4.5","4.6","4.7","4.8","4.9","4.12","4.14","4.15","4.16","4.17","4.18","4.19","4.20","4.21","4.22","4.23","4.24","4.25","4.27","4.28","4.29","4.30","4.31","4.32","4.33","4.34","4.35","4.40","8.1","8.2","9.5","9.6","9.7","9.8","9.9","9.10","9.11","9.12","9.13","9.14","9.15","9.16","10.1","10.2","10.3","10.4","10.5","10.6","10.7","10.8","10.9","10.10","10.12","13.1","13.2","13.3","13.18","13.20","13.25","13.29","13.35","17.1","17.2","23.5","27.1","27.8","27.11","27.20","27.31","27.32","27.35","27.44","27.47","33.5","34.8","34.11","38.1","38.3","38.4","38.5","38.8","38.10","38.11","38.14","38.18","38.20","38.31","38.32","38.35","38.40","38.44","38.46","38.47","38.50"],"art":["0.5","2.0","5.2","5.3","5.4","5.5","6.3","6.4","6.5","7.2","7.3","7.5","8.2","8.3","8.6","8.7","8.8","9.5","11.0","14.2","14.3","14.4","14.5","15.3","15.4","15.5","16.2","16.3","16.5","17.2","17.3","17.6","17.7","17.8","18.3","18.5","22.4","27.2","28.3","32.4","34.5","38.2"],"new":["0.5","2.0","3.0","5.2","5.3","5.4","5.5","6.3","6.4","6.5","7.3","8.2","8.3","8.6","8.7","8.8","9.5","11.0","12.0","14.2","14.3","14.4","14.5","15.3","15.4","15.5","16.3","17.2","17.3","17.6","17.7","17.8","18.3","22.4","27.2","28.3","32.4","38.2"],"artplayer":["0.5","2.0","3.0","5.2","5.3","5.4","5.5","6.3","6.4","6.5","8.2","8.3","8.7","8.8","9.5","11.0","12.0","14.2","14.3","14.4","14.5","15.3","15.4","15.5","17.2","17.3","17.7","17.8","18.4","23.4","23.5","24.2","25.2","26.5","27.2","28.4","33.4","33.5","34.6","34.7","34.8","34.9","34.10","34.12","34.13","34.14","35.2","36.2","37.5","38.2"],"container":["0.5","2.0","3.0","5.4","5.5","6.3","6.5","8.2","8.3","8.7","8.8","9.5","11.0","12.0","14.4","14.5","15.3","15.5","17.2","17.3","17.7","17.8","18.3","22.4","27.2","27.12","28.3","32.4","38.12"],"方法用于更新":["0.7","9.7"],"对象":["0.7","9.7"],"属性用于切换是否显示全部层":["0.9","9.9"],"属性用于切换是否显示全部控制器":["0.10","9.10"],"属性用于切换是否显示全部菜单":["0.11","9.11"],"switch":["0.12","8.4","9.12","17.4","27.19"],"方法设置当前字幕地址和选项":["0.12","9.12"],"属性用于切换是否显示加载层":["0.13","9.13"],"属性用于切换是否显示遮罩层":["0.15","9.15"],"update":["0.16","9.16"],"方法动态更新设置项":["0.16","9.16"],"是指挂载在":["1.0","10.0"],"字符串":["1.11","10.11"],"width":["1.17","1.23","1.24","10.17","10.23","10.24"],"height":["1.18","10.18","13.30"],"icon":["1.20","10.20","27.40"],"mobile":["1.21","1.22","10.21","10.22"],"max":["1.28","1.31","10.28","10.31"],"min":["1.29","10.29","21.0","31.0"],"timeout":["1.30","10.30"],"time":["1.32","1.33","1.34","1.38","1.40","10.32","10.33","10.34","10.38","10.40","13.5","13.6","13.7","13.13","27.34","38.34"],"playbackrate":["1.35","1.36","10.35","10.36"],"orientation":["1.37","10.37"],"value":["1.39","10.39"],"ratio":["1.41","10.41","13.28","27.17"],"in":["1.48","10.48","13.5","13.6","13.7","13.20","13.29","27.6","27.14","27.18","27.21","27.22","27.33","27.44","27.50"],"app":["2.0","3.0","6.2","6.5","8.2","8.3","8.7","8.8","11.0","12.0","15.2","15.5","17.2","17.3","17.7","17.8","18.3","22.4","27.2","32.4"],"url":["2.0","3.0","4.10","6.2","6.5","8.3","8.8","11.0","12.0","15.2","15.5","17.3","17.8","18.3","22.4","27.37","27.38","32.4","38.37","38.38"],"assets":["2.0","3.0","6.2","7.2","7.3","7.4","7.5","8.3","8.8","11.0","12.0","15.2","16.2","16.3","16.4","16.5","17.3","17.8","22.4","27.2","27.29","32.4","38.29"],"sample":["2.0","3.0","6.2","7.2","7.3","7.4","7.5","8.3","8.8","11.0","12.0","15.2","16.2","16.3","16.4","16.5","17.3","17.8","22.4","27.2","27.29","32.4","38.29"],"mp4":["2.0","3.0","6.2","11.0","12.0","15.2","34.15"],"on":["2.0","3.0","11.0","12.0","27.36","27.45"],"canplay":["2.0","11.0"],"浏览器可以播放媒体文件了":["2.39","11.39"],"浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束":["2.40","11.40"],"offlineaudiocontext":["2.41","11.41"],"duration":["2.42","11.42"],"媒体内容变为空":["2.43","11.43"],"例如":["2.43","11.43"],"视频停止播放":["2.44","11.44"],"获取媒体数据时出错":["2.45","11.45"],"media":["2.46","11.46"],"已加载元数据":["2.47","11.47"],"播放已暂停":["2.48","11.48"],"播放已开始":["2.49","11.49"],"由于缺乏数据而暂停或延迟后":["2.50","11.50"],"在浏览器加载资源时周期性触发":["2.51","11.51"],"播放速率发生变化":["2.52","11.52"],"跳帧":["2.53","2.54","11.53","11.54"],"用户代理":["2.55","11.55"],"媒体数据加载已暂停":["2.56","11.56"],"currenttime":["2.57","11.57"],"音量发生变化":["2.58","11.58"],"由于暂时缺少数据":["2.59","11.59"],"dosomething":["3.0","12.0"],"video":["3.0","4.31","4.36","4.37","6.2","8.3","8.8","12.0","13.5","13.6","13.8","13.9","13.12","13.13","13.15","13.16","13.17","13.21","13.23","13.24","13.30","13.31","13.33","15.2","17.3","17.8","27.4","27.15","27.16","27.17","27.18","27.39","27.46","34.15","38.42"],"plugins":["3.0","12.0","34.15"],"ready":["3.0","12.0"],"可以在实例化之后再加载插件的函数":["3.0","12.0"],"销毁播放器":["4.4"],"接受一个参数表示是否销毁后同时移除播放器的":["4.4"],"html":["4.4","26.1","26.8","26.12","27.40","37.1","37.8","37.12","38.27","38.33"],"默认为":["4.4"],"true":["4.4","4.24","4.30","34.15","38.22","38.28"],"视频时间跳转":["4.5"],"单位秒":["4.5","4.6","4.7","38.34"],"视频时间快进":["4.6"],"视频时间快退":["4.7"],"设置和获取视频音量":["4.8"],"范围在":["4.8","38.25"],"string":["4.9","5.1","6.1","7.1","14.1","15.1","16.1","27.37","27.38","27.40","38.33","38.34","38.37","38.38"],"设置和获取视频地址":["4.9"],"类似":["4.10","4.11","4.13","4.39"],"但会执行一些优化操作":["4.10"],"函数支持两个参数":["4.10","4.11"],"第一个为新的视频地址":["4.10","4.11"],"第二个为可选新的视频名字":["4.10","4.11"],"switchurl":["4.11","13.11"],"但会带上之前的播放进度":["4.11"],"设置和获取视频是否静音":["4.12"],"设置和获取视频当前时间":["4.13"],"设置时间时和":["4.13"],"seek":["4.13"],"但它不会触发额外的事件":["4.13"],"返回的是一个":["4.16","4.17"],"promise":["4.16","4.17"],"设置和获取播放器窗口全屏":["4.18"],"设置和获取播放器网页全屏":["4.19"],"设置和获取播放器画中画模式":["4.20"],"只有在视频播放前才能看到海报效果":["4.21"],"boolean":["4.22","5.1","7.1","8.4","13.22","14.1","16.1","17.4","38.33"],"设置和获取播放器迷你模式":["4.22"],"获取视频是否正在播放中":["4.23"],"设置视频是否自适应尺寸":["4.24"],"设置为":["4.24","4.30"],"之后它会只执行一次":["4.24","4.30"],"设置和获取播放器翻转":["4.26"],"支持":["4.26"],"normal":["4.26","13.26"],"horizontal":["4.26"],"vertical":["4.26"],"设置和获取播放器播放速度":["4.27"],"设置和获取播放器长宽比":["4.28"],"该属性可以自动计算出并设置视频的高度":["4.30"],"元素的属性":["4.31"],"动态获取和设置播放器标题":["4.32"],"动态获取和设置视频类型":["4.33"],"动态获取和设置播放器主题颜色":["4.34"],"常配合":["4.36","4.37"],"timeupdate":["4.36","4.37"],"事件使用":["4.36","4.37"],"和":["4.38","38.6","38.7","38.15","38.16","38.17"],"removeeventlistener":["4.38","13.38"],"当使用":["4.38"],"来处理事件":["4.38"],"播放器销毁时也会自动销毁该事件":["4.38"],"document":["4.39","13.39"],"queryselector":["4.39","13.39"],"但被查询的对象局限于当前播放器内":["4.39"],"可以避免同类名的错误":["4.39"],"元素":["4.40"],"是否禁用组件":["5.1","6.1","7.1","14.1","15.1","16.1"],"name":["5.1","6.1","6.2","7.1","14.1","15.1","15.2","16.1"],"组件唯一名称":["6.1","15.1"],"用于标记类名":["6.1","15.1"],"index":["6.1","6.2","15.1","15.2","26.1","26.8","26.9","34.5","34.7","34.9","34.10","34.12","34.14","37.1","37.8","37.9"],"controls":["6.2","15.2"],"your":["6.2","15.2","27.44"],"button":["6.2","15.2","27.19","27.45","27.49"],"img":["7.2","7.3","7.4","7.5","16.2","16.3","16.4","16.5","27.29","38.29"],"layer":["7.2","7.3","7.4","7.5","16.2","16.3","16.4","16.5"],"png":["7.2","7.3","7.5","16.2","16.3","16.5"],"aspectratio":["8.1","17.1"],"subtitleoffset":["8.1","17.1"],"number":["8.2","17.2","27.34","38.34","38.37"],"列表宽度":["8.2","17.2"],"tooltip":["8.2","8.4","8.5","17.2","17.4","17.5"],"提示文本":["8.2","8.5","17.2","17.5"],"元素的图标":["8.4","8.5","17.4","17.5"],"按钮默认状态":["8.4","17.4"],"onswitch":["8.4","17.4"],"function":["8.4","8.5","17.4","17.5","18.5","27.15","27.18","27.47","28.5"],"按钮切换事件":["8.4","17.4"],"range":["8.5","13.8","13.36","13.37","17.5","27.25"],"array":["8.5","17.5"],"默认状态数组":["8.5","17.5"],"onrange":["8.5","17.5"],"完成时触发的事件":["8.5","17.5"],"onchange":["8.5","17.5"],"变化时触发的事件":["8.5","17.5"],"here":["13.0"],"and":["13.3","13.8","13.9","13.12","13.19","13.22","13.26","13.27","13.28","13.30","13.32","13.33","13.34","27.4","27.40"],"pause":["13.3"],"the":["13.4","13.12","13.13","13.15","13.21","13.23","13.24","13.28","13.31","18.0","18.6","27.5","27.9","27.13","27.15","27.16","27.17","27.18","27.19","27.21","27.22","27.23","27.24","27.25","27.28","27.40","27.43","27.48","27.49"],"player":["13.4","13.18","13.19","13.20","13.22","13.25","13.26","13.27","13.28","13.32","13.34","13.38","18.5","27.1","27.3","27.4","27.7","27.8","27.12","27.13","27.23","27.24","27.36","27.48","28.5"],"accept":["13.4"],"a":["13.4","27.45"],"indicating":["13.4"],"whether":["13.4","13.12","13.23","27.10","27.14","27.28"],"jump":["13.5"],"seconds":["13.5","13.7","13.29"],"fast":["13.6"],"rewind":["13.7"],"get":["13.8","13.9","13.12","13.19","13.22","13.26","13.27","13.33"],"set":["13.9","13.22","13.27","13.30","13.31","13.32","13.33","13.34"],"to":["13.10","13.11","13.38","13.39","18.3","27.10","27.14","27.15","27.16","27.17","27.19","27.21","27.23","27.24","27.28","27.36","27.42","27.45","27.46","27.49"],"that":["13.10"],"of":["13.10","13.13","13.15","13.16","13.17","13.18","13.19","13.20","13.25","13.30","13.31","13.40","18.6","27.3","27.8","27.25","27.36"],"but":["13.10","13.11","13.39"],"some":["13.10","27.36"],"optimization":["13.10"],"operations":["13.10"],"will":["13.10","13.38","27.5","27.12","27.39"],"be":["13.10","27.4","27.41"],"with":["13.11","13.36","13.37","27.25","27.41","27.44"],"previous":["13.11"],"playback":["13.11","13.27","13.29","13.37","27.16"],"progress":["13.11","27.9","27.26","27.37"],"is":["13.12","13.23","13.24","13.30","13.38","13.39","27.4","27.7","27.27","27.42"],"current":["13.13","13.15","13.16","13.17"],"setting":["13.13","13.24","34.15"],"screenshot":["13.16","13.17"],"screen":["13.18","13.19"],"window":["13.18","27.23","38.36"],"full":["13.19","27.24"],"picture":["13.20","27.21"],"mode":["13.20","27.9","27.27","34.4"],"posters":["13.21"],"you":["13.21","27.27"],"can":["13.21","13.30","27.4"],"only":["13.21","27.5","27.26"],"see":["13.21"],"effect":["13.21"],"adaptive":["13.24"],"size":["13.24"],"after":["13.24","13.30"],"coordinate":["13.25"],"information":["13.25"],"rollover":["13.26"],"support":["13.26"],"speed":["13.27","27.16"],"obtain":["13.28"],"aspect":["13.28","27.17"],"sequential":["13.29"],"automatically":["13.30","27.11"],"calculate":["13.30"],"it":["13.30"],"attributes":["13.31","27.39"],"element":["13.31"],"titles":["13.32"],"dynamically":["13.32","13.33","13.34"],"types":["13.33"],"color":["13.34","27.7","34.4"],"cache":["13.36"],"when":["13.38","27.4","27.5","27.26"],"used":["13.38"],"process":["13.38"],"similar":["13.39"],"english":["18.0"],"bash":["18.1","28.1"],"npm":["18.1","22.2","23.2","24.2","25.2","26.3","28.1","32.2","33.2","34.2","35.2","36.2","37.3"],"jsdelivr":["18.2","28.2"],"net":["18.2","22.3","23.3","24.3","25.3","26.4","28.2","32.3","33.3","34.3","35.3","36.3","37.4"],"https":["18.2","22.3","23.3","24.3","25.3","26.4","28.2","32.3","33.3","34.3","35.3","36.3","37.4"],"const":["18.3","18.5","28.3","28.5"],"path":["18.3"],"template":["18.4","28.4"],"ref":["18.4"],"export":["18.5","28.5"],"default":["18.5","28.5"],"option":["18.5","28.5"],"getinstance":["18.5","28.5"],"rest":["18.5","28.5"],"artref":["18.5","28.5"],"lose":["18.6"],"type":["18.6"],"prompt":["18.6"],"typescript":["18.6"],"data":["19.0","23.4","23.5","29.0","33.4","33.5","34.6","34.8","34.11","34.12","34.13"],"libs":["19.0","20.0","23.4","23.5","29.0","30.0","33.4","33.5","34.6","34.8","34.9","34.11","34.12","34.13","34.14"],"cdnjs":["19.0","20.0","21.0","29.0","30.0","31.0"],"cloudflare":["19.0","20.0","21.0","29.0","30.0","31.0"],"ajax":["19.0","20.0","21.0","29.0","30.0","31.0"],"dashjs":["19.0","29.0"],"all":["19.0","29.0"],"beta":["21.0","31.0"],"install":["22.2","23.2","24.2","25.2","26.3","32.2","33.2","34.2","35.2","36.2","37.3"],"uncompiled":["23.4","23.5","33.4","33.5","34.6","34.7","34.8","34.9","34.10","34.11","34.12","34.13","34.14"],"plugin":["23.4","23.5","33.4","33.5","34.6","34.7","34.8","34.9","34.10","34.12","34.13","34.14"],"里控制跨域":["26.1","37.1"],"head":["26.5","37.5"],"title":["26.5","37.5"],"meta":["26.5","37.5"],"接口":["26.6","26.10","37.6","37.10"],"内部运行":["26.7","37.7"],"同时它也能用于异步获取":["26.7","37.7"],"里的值":["26.7","37.7"],"warning":["26.10","37.10"],"接收来自":["26.11","37.11"],"iframe":["26.12","37.12"],"是不生效的":["26.13","37.13"],"这时候只要监听":["26.13","37.13"],"里的":["26.13","37.13"],"fullscreenweb":["26.13","37.13"],"事件并通知到":["26.13","37.13"],"identifier":["27.3"],"currently":["27.3","27.6","27.7","27.43"],"triggered":["27.4"],"initialized":["27.4"],"successfully":["27.4"],"played":["27.4"],"just":["27.4"],"appear":["27.5"],"which":["27.6","27.39"],"appears":["27.6","27.26"],"using":["27.9","27.36"],"live":["27.9"],"mute":["27.10"],"by":["27.10","27.12"],"fill":["27.12"],"entire":["27.12"],"scrolls":["27.13"],"outside":["27.13"],"play":["27.14"],"display":["27.15","27.16","27.17","27.19","27.21","27.23","27.24","27.43","27.45","27.49"],"bottom":["27.18","27.33"],"control":["27.18","27.33"],"keys":["27.20"],"there":["27.22"],"are":["27.22"],"multiple":["27.22"],"players":["27.22"],"offset":["27.25"],"5s":["27.25","38.25"],"bar":["27.26","27.33","27.34","27.37"],"mount":["27.27"],"useful":["27.27"],"if":["27.27"],"want":["27.27"],"render":["27.27"],"use":["27.28","27.36"],"list":["27.33"],"property":["27.33","27.34","27.37","27.38"],"describe":["27.33","27.34","27.37","27.38"],"native":["27.36"],"functions":["27.36"],"directly":["27.36"],"instead":["27.36"],"this":["27.36"],"thumbnail":["27.37"],"format":["27.38"],"vtt":["27.38"],"srt":["27.38"],"ass":["27.38"],"metadata":["27.39","38.39"],"more":["27.39"],"supports":["27.40"],"together":["27.41"],"customtype":["27.41"],"decoding":["27.42"],"right":["27.42"],"handed":["27.42"],"over":["27.42"],"tolowercase":["27.43","38.43"],"built":["27.44","27.50"],"add":["27.44","27.46"],"language":["27.44"],"long":["27.46"],"press":["27.46"],"rotate":["27.48"],"according":["27.48"],"change":["27.50"],"css":["27.50"],"variables":["27.50"],"from":["28.3"],"的类型提示":["28.6"],"这时候你可以手动导入类型":["28.6"],"变量":["28.6"],"弹幕透明度":["34.4"],"fontsize":["34.4"],"字体大小":["34.4"],"支持数字和百分比":["34.4"],"ffffff":["34.4"],"默认字体颜色":["34.4"],"默认模式":["34.4"],"danmuku":["34.5","34.7","34.9","34.10","34.12","34.13","34.14","34.15"],"antioverlap":["34.11"],"synchronousplayback":["34.11"],"filter":["34.11"],"locktime":["34.11"],"beforeemit":["34.11"],"artplayerplugindanmuku":["34.15"],"xml":["34.15"],"容器":["38.1"],"目前只用于记忆播放":["38.3"],"autoplayback":["38.3"],"事件一样":["38.4"],"只会出现在播放器初始化且未播放的状态下":["38.5"],"目前会出现在":["38.6"],"视频截图":["38.6","38.18"],"迷你模式":["38.6"],"下":["38.6"],"播放器主题颜色":["38.7"],"目前用于":["38.7"],"进度条":["38.7"],"播放器的默认音量":["38.8"],"false":["38.9","38.10","38.14","38.19","38.21","38.23","38.24","38.26","38.39","38.46","38.48"],"使用直播模式":["38.9"],"会隐藏进度条和播放时间":["38.9"],"是否默认静音":["38.10"],"播放器的尺寸默认会填充整个":["38.12"],"容器尺寸":["38.12"],"所以经常出现黑边":["38.12"],"该值能自动调整播放器尺寸以隐藏黑边":["38.12"],"当播放器滚动到浏览器视口以外时":["38.13"],"自动进入":["38.13"],"迷你播放":["38.13"],"模式":["38.13","38.28"],"是否循环播放":["38.14"],"是否显示视频翻转功能":["38.15"],"目前只出现在":["38.15"],"设置面板":["38.15","38.16","38.17","38.19","38.25"],"右键菜单":["38.15","38.16","38.17"],"是否显示视频播放速度功能":["38.16"],"会出现在":["38.16","38.17"],"是否显示视频长宽比功能":["38.17"],"是否在底部控制栏里显示":["38.18","38.19","38.21"],"功能":["38.18"],"的开关按钮":["38.19","38.21"],"画中画":["38.21"],"假如页面里同时存在多个播放器":["38.22"],"是否只能让一个播放器播放":["38.22"],"是否在底部控制栏里显示播放器":["38.23","38.24"],"窗口全屏":["38.23"],"按钮":["38.23","38.24","38.49"],"网页全屏":["38.24"],"出现在":["38.25"],"迷你进度条":["38.26"],"只在播放器失去焦点后且正在播放时出现":["38.26"],"挂载模式":["38.27"],"假如你希望在播放器挂载前":["38.27"],"就提前渲染好播放器所需的":["38.27"],"时有用":["38.27"],"你可以通过":["38.27"],"在移动端是否使用":["38.28"],"类型":["38.33"],"描述":["38.33","38.34","38.37","38.38"],"默认画质":["38.33"],"画质名字":["38.33"],"高亮时间":["38.34"],"text":["38.34"],"高亮文本":["38.34"],"白名单是一个数组类型":["38.36"],"分别与":["38.36"],"navigator":["38.36"],"useragent":["38.36"],"进行匹配":["38.36","38.42"],"只要其中一项匹配成功则启用播放器":["38.36"],"预览图地址":["38.37"],"预览图数量":["38.37"],"column":["38.37"],"字幕地址":["38.38"],"字幕类型":["38.38"],"可选":["38.38"],"preload":["38.39"],"更多视频属性":["38.39"],"这些属性将直接写入视频元素里":["38.39"],"字符串和":["38.40"],"htmlelement":["38.40"],"一起使用":["38.41"],"默认视频的格式就是视频地址的后缀":["38.41"],"如":["38.41"],"m3u8":["38.41"],"mkv":["38.41"],"ts":["38.41"],"但有时候视频地地址没有正确的后缀":["38.41"],"把视频解码权交给第三方程序进行处理":["38.42"],"处理的函数能接收三个参数":["38.42"],"视频":["38.42"],"dom":["38.42"],"默认显示语言":["38.43"],"目前支持":["38.43"],"en":["38.43"],"zh":["38.43"],"是否在移动端显示一个":["38.45"],"锁定按钮":["38.45"],"用于隐藏底部":["38.45"],"控制栏":["38.45"],"是否在移动端添加长按视频快进功能":["38.46"],"是否在移动端的网页全屏时":["38.48"],"根据视频尺寸和视口尺寸":["38.48"],"旋转播放器":["38.48"],"是否显示":["38.49"],"当前只有部分浏览器支持该功能":["38.49"]},{"0":["8.5","17.5"],"1":["8.5","13.8","17.5"],"2":["27.1","38.1"],"4":["27.8","27.11","27.20","27.31","27.32","27.44","38.11","38.20","38.31","38.32","38.40","38.47","38.50"],"5":["8.5","17.5","27.47","38.47"],"6":["2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","11.1","11.3","11.4","11.5","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.26","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38"],"7":["2.19","2.21","2.22","2.24","2.25","4.14","4.25","4.30","11.19","11.21","11.22","11.24","11.25","27.4","38.4","38.40"],"8":["2.17","2.20","4.1","4.12","4.19","4.27","4.28","4.29","4.31","4.32","4.33","4.34","11.17","11.20","13.29","26.5","37.5","38.38"],"9":["2.28","2.29","4.18","4.20","4.21","11.28","11.29","13.18","13.20","27.4","27.44","38.4"],"10":["2.2","2.6","2.18","2.23","4.35","6.5","8.5","11.2","11.6","11.18","11.23","13.35","15.5","17.5"],"11":["4.2","4.3","4.19","13.2"],"12":["27.31","38.31"],"15":["27.35","38.35"],"16":["27.32","38.32"],"17":["3.0","12.0"],"18":["19.0","29.0"],"19":["20.0","30.0"],"21":["19.0","21.0","29.0","31.0"],"22":["20.0","30.0"],"24":["21.0","31.0"],"25":["19.0","29.0"],"26":["20.0","30.0"],"28":["21.0","31.0"],"250":["8.2","17.2"],"是指挂载在":["0.0","4.0","9.0"],"js":["0.1","0.4","0.6","0.7","0.8","0.9","0.10","0.11","0.12","0.13","0.15","0.16","1.1","2.1","2.3","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.19","2.20","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.9","4.10","4.12","4.14","4.15","4.16","4.17","4.18","4.19","4.20","4.21","4.23","4.24","4.25","4.27","4.28","4.29","4.30","4.31","4.32","4.33","4.34","4.35","4.38","8.1","8.4","8.5","9.1","9.4","9.6","9.7","9.8","9.9","9.10","9.11","9.12","9.13","9.15","9.16","10.1","11.1","11.3","11.4","11.5","11.6","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.17","11.19","11.20","11.21","11.22","11.24","11.25","11.26","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.1","13.2","13.3","13.18","13.20","13.25","13.29","13.35","17.1","17.4","17.5","23.4","23.5","27.4","27.8","27.11","27.20","27.31","27.35","27.44","33.4","33.5","34.6","34.8","34.11","34.13","34.14","38.1","38.8","38.11","38.20","38.31","38.34","38.35","38.40","38.47","38.50"],"var":["0.1","0.2","0.4","0.6","0.7","0.8","0.9","0.10","0.11","0.12","0.13","0.14","0.15","0.16","0.17","2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.27","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.2","4.3","4.12","4.14","4.18","4.20","4.21","4.25","4.27","4.28","4.29","4.31","4.32","4.33","4.34","4.35","8.4","9.1","9.2","9.4","9.6","9.7","9.8","9.9","9.10","9.11","9.12","9.13","9.14","9.15","9.16","9.17","11.1","11.2","11.3","11.4","11.5","11.6","11.7","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.17","11.18","11.19","11.20","11.21","11.22","11.23","11.24","11.25","11.26","11.27","11.28","11.29","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.2","13.18","13.20","13.29","17.4","23.5","27.1","27.4","27.8","27.11","27.20","27.31","27.32","27.44","27.47","33.5","34.7","34.8","34.9","34.10","34.11","34.12","34.14","38.1","38.4","38.11","38.20","38.31","38.32","38.40","38.47"],"art":["0.1","0.2","0.3","0.6","0.7","0.8","0.9","0.10","0.11","0.14","0.16","0.17","2.2","2.6","2.7","2.12","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.27","2.28","2.29","2.30","2.38","4.14","4.18","4.20","4.21","4.25","4.29","7.4","8.4","9.1","9.2","9.3","9.6","9.7","9.8","9.9","9.10","9.11","9.14","9.16","9.17","11.2","11.6","11.7","11.12","11.17","11.18","11.20","11.21","11.22","11.23","11.24","11.25","11.27","11.28","11.29","11.30","11.38","13.14","13.18","13.20","13.29","16.4","17.4","19.0","21.0","26.7","27.1","27.8","27.11","27.20","27.29","27.30","27.31","27.32","27.44","27.47","28.5","28.6","29.0","31.0","34.7","34.9","34.10","34.11","34.12","37.7","38.1","38.4","38.20","38.29","38.30","38.31","38.32","38.35","38.40","38.42","38.44","38.47"],"new":["0.1","0.2","0.3","0.7","0.8","0.9","0.10","0.11","0.14","0.16","0.17","2.2","2.6","2.7","2.17","2.18","2.20","2.23","2.27","2.28","2.29","2.30","4.21","4.29","7.2","7.4","7.5","9.1","9.2","9.3","9.7","9.8","9.9","9.10","9.11","9.14","9.16","9.17","11.2","11.6","11.7","11.17","11.18","11.20","11.23","11.27","11.28","11.29","11.30","13.10","13.11","13.14","13.18","13.20","13.29","16.2","16.4","16.5","18.5","26.7","27.1","27.8","27.11","27.20","27.29","27.30","27.31","27.32","27.44","27.47","28.5","34.5","34.7","34.9","34.10","34.11","34.12","37.7","38.1","38.4","38.29","38.30","38.31","38.32","38.44"],"artplayer":["0.2","0.3","0.4","0.8","0.10","0.11","0.14","0.16","0.17","2.2","2.7","2.18","2.23","2.27","2.28","2.29","2.30","4.21","4.29","7.2","7.3","7.4","7.5","8.6","9.2","9.3","9.4","9.8","9.10","9.11","9.14","9.16","9.17","11.2","11.7","11.18","11.23","11.27","11.28","11.29","11.30","13.14","13.18","13.29","16.2","16.3","16.4","16.5","17.6","18.1","22.2","22.3","23.2","23.3","24.3","25.3","26.3","26.4","26.7","27.8","27.11","27.20","27.29","27.30","27.31","27.32","27.44","27.47","28.1","28.6","32.2","32.3","33.2","33.3","34.2","34.3","34.11","35.3","36.3","37.3","37.4","37.7","38.4","38.27","38.29","38.30","38.31","38.32","38.44"],"container":["0.2","0.3","0.4","0.11","0.14","0.16","0.17","2.7","2.27","2.30","4.29","5.2","5.3","6.4","7.2","7.3","7.4","7.5","8.6","9.2","9.3","9.4","9.11","9.14","9.16","9.17","11.7","11.27","11.30","13.14","13.18","13.29","14.2","14.3","15.4","16.2","16.3","16.4","16.5","17.6","18.5","26.7","27.8","27.11","27.20","27.29","27.30","27.32","27.44","27.47","28.5","34.5","34.9","34.10","34.12","37.7","38.2","38.4","38.29","38.30","38.32","38.44"],"app":["0.2","0.3","0.5","0.14","2.30","5.2","5.3","5.4","5.5","6.3","6.4","7.2","7.3","7.4","7.5","8.6","9.2","9.3","9.5","9.14","11.30","13.14","13.18","14.2","14.3","14.4","14.5","15.3","15.4","16.2","16.3","16.4","16.5","17.6","18.4","26.7","27.1","27.20","27.29","27.30","27.47","28.3","34.5","34.9","34.10","37.7","38.2","38.4","38.29","38.30","38.44"],"url":["0.3","0.5","5.2","5.3","5.4","5.5","6.3","6.4","7.2","7.3","7.5","8.2","8.6","8.7","9.3","9.5","13.11","13.14","14.2","14.3","14.4","14.5","15.3","15.4","16.2","16.3","16.5","17.2","17.6","17.7","19.0","20.0","21.0","26.7","27.29","27.30","27.33","27.47","28.3","29.0","30.0","31.0","34.5","34.10","37.7","38.29","38.30","38.33","38.42","38.44"],"classname":["0.4","1.11","4.4","4.10","4.11","4.13","4.26","4.36","4.37","4.38","4.39","8.4","9.4","10.11","13.5","13.6","13.7","13.8","13.9","13.12","13.15","13.19","13.21","13.22","13.23","13.26","13.27","13.28","13.30","13.31","13.32","13.33","13.34","13.38","13.40","17.4","27.4","27.6","27.10","27.14","27.18","27.34","27.40","27.50","38.6","38.7","38.9","38.13","38.15","38.16","38.17","38.19","38.21","38.22","38.23","38.24","38.25","38.26","38.27","38.28","38.33","38.34","38.39","38.41","38.45","38.48","38.49"],"run":["0.4","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","4.4","4.5","4.6","4.8","4.10","4.11","4.13","4.22","4.24","4.26","4.36","4.37","4.38","4.39","4.40","8.4","9.4","10.2","10.3","10.4","10.5","10.7","10.8","10.9","10.10","10.11","10.12","13.5","13.6","13.7","13.8","13.9","13.12","13.15","13.19","13.21","13.22","13.23","13.25","13.26","13.27","13.28","13.30","13.31","13.32","13.33","13.34","13.38","13.40","17.4","27.4","27.10","27.14","27.18","27.34","27.40","27.50","38.3","38.6","38.7","38.9","38.10","38.13","38.14","38.15","38.16","38.17","38.18","38.19","38.21","38.22","38.23","38.24","38.25","38.26","38.28","38.33","38.34","38.39","38.41","38.45","38.46","38.48","38.49"],"code":["0.4","0.12","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.12","4.4","4.5","4.6","4.7","4.8","4.9","4.10","4.11","4.13","4.16","4.17","4.22","4.24","4.26","4.30","4.36","4.37","4.38","4.39","4.40","8.1","8.4","9.4","9.12","10.2","10.3","10.4","10.5","10.7","10.8","10.9","10.10","10.12","13.3","13.5","13.6","13.7","13.8","13.9","13.12","13.15","13.19","13.20","13.23","13.25","13.26","13.27","13.28","13.30","13.31","13.32","13.33","13.34","13.40","17.1","17.4","26.13","27.4","27.18","27.34","27.40","27.50","37.13","38.3","38.5","38.6","38.8","38.9","38.10","38.13","38.14","38.18","38.19","38.21","38.22","38.23","38.24","38.25","38.26","38.28","38.33","38.34","38.39","38.41","38.45","38.46","38.48","38.49"],"document":["0.4","9.4","18.0","27.1"],"queryselector":["0.4","9.4"],"assets":["0.5","5.2","5.3","5.4","5.5","6.3","6.4","6.5","8.2","8.6","8.7","9.5","13.14","14.2","14.3","14.4","14.5","15.3","15.4","15.5","17.2","17.6","17.7","27.30","27.47","34.5","34.10","38.2","38.30","38.44"],"sample":["0.5","5.2","5.3","5.4","5.5","6.3","6.4","6.5","8.2","8.7","9.5","14.2","14.3","14.4","14.5","15.3","15.4","15.5","17.2","17.7","27.30","34.5","38.2","38.30","38.44"],"video":["0.5","5.2","5.3","5.4","5.5","6.3","6.5","7.2","7.3","7.5","8.2","8.7","9.5","14.2","14.3","14.4","14.5","15.3","15.5","16.2","16.3","16.5","17.2","17.7","18.3","19.0","20.0","22.4","27.30","27.48","28.3","29.0","30.0","32.4","34.5","38.2","38.44"],"mp4":["0.5","5.3","5.4","5.5","6.3","6.5","7.2","7.3","7.5","8.2","8.3","8.7","8.8","9.5","14.3","14.4","14.5","15.3","15.5","16.2","16.3","16.5","17.2","17.3","17.7","17.8","18.3","22.4","27.2","28.3","32.4","38.2"],"test":["0.5","9.5"],"foo":["0.5","9.5"],"bar":["0.5","9.5","27.7","27.9","27.18"],"const":["0.5","8.5","9.5","17.5"],"构造函数":["1.0","10.0"],"的":["1.0","10.0","38.12"],"console":["1.1","2.0","10.1","11.0","34.15"],"icon":["1.22","8.8","10.22","17.8"],"time":["1.36","1.37","10.36","10.37","18.6","27.9","27.22"],"body":["1.48","10.48","26.5","37.5"],"info":["2.0","11.0","34.15"],"只监听一次事件":["2.0","11.0"],"但估计没有足够的数据来支撑播放到结束":["2.39","11.39"],"渲染完成":["2.41","11.41"],"属性的值改变时触发":["2.42","11.42"],"当这个":["2.43","11.43"],"因为":["2.44","11.44"],"或者资源类型不是受支持的媒体格式":["2.45","11.45"],"中的首帧已经完成加载":["2.46","11.46"],"播放准备开始":["2.50","11.50"],"seek":["2.53","2.54","11.53","11.54","13.13"],"user":["2.55","11.55"],"属性指定的时间发生变化":["2.57","11.57"],"播放已停止":["2.59","11.59"],"div":["4.4","4.11","4.36","4.37","4.39","8.4","13.5","13.6","13.8","13.9","13.12","13.15","13.16","13.17","13.19","13.21","13.22","13.23","13.26","13.27","13.28","13.30","13.31","13.33","13.34","13.38","13.40","17.4","27.3","27.4","27.6","27.10","27.14","27.18","27.25","27.34","27.40","27.50","38.6","38.7","38.13","38.15","38.16","38.17","38.19","38.21","38.23","38.24","38.25","38.27","38.28","38.33","38.34","38.36","38.39","38.41","38.42","38.45","38.48","38.49"],"组件唯一名称":["5.1","7.1","14.1","16.1"],"用于标记类名":["5.1","7.1","14.1","16.1"],"index":["5.1","6.5","7.1","14.1","15.5","16.1","23.4","23.5","26.11","33.4","33.5","34.6","34.8","34.11","34.13","37.11"],"number":["5.1","6.1","7.1","14.1","15.1","16.1","27.37"],"contextmenu":["5.4","5.5","14.4","14.5"],"name":["5.5","6.5","8.8","14.5","15.5","17.8","27.33"],"组件索引":["6.1","15.1"],"用于显示的优先级":["6.1","15.1"],"html":["6.1","6.2","8.3","8.8","13.4","15.1","15.2","17.3","17.8","18.3","22.4","26.9","27.27","27.33","32.4","37.9"],"element":["6.1","15.1"],"position":["6.2","6.5","15.2","15.5"],"left":["6.2","15.2"],"tooltip":["6.2","8.8","15.2","17.8"],"style":["6.2","8.2","15.2","17.2","27.38","38.38"],"color":["6.2","15.2"],"red":["6.2","15.2"],"click":["6.2","15.2"],"function":["6.2","15.2","19.0","20.0","21.0","27.16","27.17","27.35","27.42","27.46","29.0","30.0","31.0","38.35"],"args":["6.2","15.2"],"controls":["6.3","6.5","15.3","15.5"],"add":["6.3","15.3"],"button1":["6.5","15.5"],"png":["7.4","16.4","27.29","38.29"],"setting":["8.2","8.3","8.7","8.8","17.2","17.3","17.7","17.8","27.15","27.16","27.17"],"true":["8.2","8.3","8.7","8.8","13.24","13.30","17.2","17.3","17.7","17.8","22.4","32.4","34.4"],"settings":["8.2","8.3","8.8","17.2","17.3","17.8","27.25"],"subtitle":["8.2","17.2"],"01":["8.2","8.3","17.2","17.3"],"default":["8.2","17.2"],"span":["8.2","17.2"],"multi":["8.3","17.3"],"level":["8.3","17.3"],"selector":["8.3","17.3"],"提示文本":["8.4","17.4"],"value":["8.5","17.5","27.12"],"min":["8.5","17.5","19.0","20.0","29.0","30.0"],"flip":["8.7","17.7"],"slider":["8.8","17.8"],"5x":["8.8","17.8"],"refers":["13.0"],"to":["13.0","13.13","13.24","13.30","26.7","28.3","37.7"],"remove":["13.4"],"s":["13.4"],"after":["13.4"],"seconds":["13.6"],"performed":["13.10"],"supports":["13.10","13.11","27.43"],"two":["13.10","13.11"],"parameters":["13.10","13.11"],"first":["13.10","13.11"],"is":["13.11","13.13","13.21","13.36","13.37","27.2","27.5","27.36"],"similar":["13.13"],"but":["13.13","27.41"],"it":["13.13","13.24","13.38","27.13"],"will":["13.13","13.24","13.30","27.9","27.16","27.17"],"frame":["13.15","13.16","13.17"],"and":["13.16","13.17","27.5","27.6","27.7","27.9","27.26","27.48"],"return":["13.16","13.17","18.5"],"a":["13.16","13.17","27.14","27.42"],"promise":["13.16","13.17"],"web":["13.19","27.24"],"page":["13.19","27.22","27.24"],"before":["13.21","27.27"],"played":["13.21","27.5"],"mode":["13.22","27.6","27.28"],"only":["13.24","27.3","27.15","27.49"],"be":["13.24","13.30","27.39"],"executed":["13.24","13.30"],"horizontal":["13.26"],"vertical":["13.26"],"once":["13.30"],"dynamically":["13.31"],"often":["13.36","13.37","27.12"],"used":["13.36","13.37","27.3","27.7"],"in":["13.36","13.37","27.15","27.16","27.17","27.19","27.23","27.24","27.25","27.27"],"conjunction":["13.36","13.37"],"also":["13.38"],"automatically":["13.38","27.12","27.13"],"destroy":["13.38"],"destroyed":["13.38"],"queried":["13.39"],"object":["13.39","38.12"],"limited":["13.39"],"current":["13.39","18.5","28.5"],"player":["13.39","13.40","27.5","27.26","27.27"],"has":["18.0"],"not":["18.0","27.2","27.5"],"head":["18.3"],"title":["18.3"],"demo":["18.3"],"artref":["18.4","28.4"],"if":["18.5","21.0","28.5","31.0"],"typeof":["18.5","28.5"],"at":["18.6","27.2","27.22"],"this":["18.6","27.2","27.12"],"you":["18.6"],"can":["18.6","27.12","27.22","27.36"],"manually":["18.6"],"import":["18.6","28.6"],"plaympd":["19.0","29.0"],"playflv":["20.0","30.0"],"playm3u8":["21.0","31.0"],"plugin":["22.2","22.3","23.2","23.3","24.2","24.3","25.2","25.3","26.3","26.4","32.2","32.3","33.2","33.3","34.2","34.3","34.11","35.2","35.3","36.2","36.3","37.3","37.4"],"ads":["22.2","32.2"],"npm":["22.3","23.3","24.3","25.3","26.4","32.3","33.3","34.3","35.3","36.3","37.4"],"autosize":["22.4","32.4"],"fullscreen":["22.4","32.4"],"fullscreenweb":["22.4","32.4"],"plugins":["22.4","32.4"],"artplayerpluginads":["22.4","32.4"],"html广告":["22.4","32.4"],"假如是视频广告则忽略该值":["22.4","32.4"],"control":["23.2","23.4","23.5","27.36","33.2","33.4","33.5"],"dash":["24.2","24.3","35.2","35.3"],"quality":["24.2","24.3","25.2","25.3","35.2","35.3","36.2","36.3"],"hls":["25.2","25.3","36.2","36.3"],"iframe":["26.1","26.3","26.5","26.8","37.1","37.3","37.5","37.8"],"charset":["26.5","37.5"],"utf":["26.5","37.5","38.38"],"id":["26.5","37.5"],"path":["26.7","28.3","37.7"],"接收来自":["26.8","37.8"],"无法与":["26.9","37.9"],"提示":["26.10","37.10"],"message":["26.12","37.12"],"event":["26.12","27.4","37.12"],"即可":["26.13","37.13"],"group":["26.13","37.13"],"doctype":["26.13","37.13"],"sometimes":["27.2","27.41"],"the":["27.2","27.26","27.36","27.39","27.45","27.46"],"known":["27.2"],"so":["27.2","27.12"],"quickly":["27.2"],"for":["27.3","27.42"],"autoplayback":["27.3"],"like":["27.4"],"ready":["27.4"],"initialized":["27.5"],"screenshot":["27.6"],"mini":["27.6"],"on":["27.7","27.28","27.46","34.15"],"progress":["27.7"],"playback":["27.9"],"black":["27.12"],"edges":["27.12"],"appear":["27.12","27.16","27.17"],"viewport":["27.13","27.48"],"enters":["27.13"],"currently":["27.15","27.49"],"appears":["27.15","27.25"],"of":["27.19"],"bottom":["27.19","27.21","27.23"],"switch":["27.21"],"button":["27.21","27.23","27.24"],"same":["27.22"],"full":["27.23"],"screen":["27.23","27.24"],"loses":["27.26"],"focus":["27.26"],"required":["27.27"],"by":["27.27"],"advance":["27.27"],"mobile":["27.28","27.45"],"end":["27.28","27.45"],"layer":["27.29","38.29"],"boolean":["27.33"],"string":["27.33","27.34"],"text":["27.34"],"myplugin":["27.35","38.35"],"option":["27.36"],"an":["27.36"],"which":["27.36"],"matched":["27.36"],"column":["27.37"],"width":["27.37","38.37"],"encoding":["27.38","38.38"],"directly":["27.39"],"written":["27.39"],"into":["27.39"],"htmlelement":["27.40"],"suffix":["27.41"],"address":["27.41"],"such":["27.41"],"as":["27.41"],"m3u8":["27.41"],"mkv":["27.41"],"ts":["27.41"],"does":["27.41"],"third":["27.42"],"party":["27.42"],"program":["27.42"],"processing":["27.42"],"en":["27.43"],"zh":["27.43"],"cn":["27.43","38.43"],"tw":["27.43","38.43"],"hide":["27.45"],"fast":["27.46"],"forward":["27.46"],"size":["27.48"],"when":["27.48"],"some":["27.49"],"browsers":["27.49"],"support":["27.49"],"install":["28.1"],"ref":["28.4"],"type":["28.6"],"let":["28.6"],"danmuku":["34.2","34.6","34.8"],"滚动":["34.4"],"静止":["34.4"],"margin":["34.4"],"弹幕上下边距":["34.4"],"antioverlap":["34.4"],"是否防重叠":["34.4"],"useworker":["34.4"],"是否使用":["34.4"],"emit":["34.15"],"danmu":["34.15"],"新增弹幕":["34.15"],"loaded":["34.15"],"高亮元素":["38.7"],"上":["38.7"],"类似":["38.12"],"css":["38.12"],"fit":["38.12"],"里":["38.15","38.16","38.17","38.25"],"访问到播放器所需的":["38.27"],"画质地址":["38.33"],"支持":["38.36"],"字符串":["38.36"],"匹配":["38.36"],"函数":["38.36"],"正则":["38.36"],"预览图列数":["38.37"],"预览图宽度":["38.37"],"height":["38.37"],"预览图高度":["38.37"],"字幕样式":["38.38"],"字幕编码":["38.38"],"默认":["38.38"],"escape":["38.38"],"所以需要特别指明":["38.41"],"元素":["38.42"],"视频地址":["38.42"],"当前实例":["38.42"],"cs":["38.43"],"pl":["38.43"],"es":["38.43"]},{"1":["8.2","17.2"],"2":["8.5","17.5","38.3"],"3":["8.5","17.5"],"4":["8.1","17.1","27.18","27.34","27.40","27.50","38.5","38.6","38.8","38.9","38.10","38.14","38.18","38.22","38.25","38.26","38.33","38.34","38.39","38.41","38.46"],"5":["26.7","37.7"],"6":["4.39","4.40"],"7":["4.4","4.5","4.6","4.9","4.15","4.16","4.17","4.22","4.36","4.37","4.38","13.5","13.6","13.9","13.25","13.30","13.38","23.4","27.40","33.4","38.39"],"8":["4.8","4.13","4.23","4.24","4.26","13.1","13.8","13.12","13.19","13.23","13.26","13.27","13.28","13.31","13.32","13.33","13.34","18.3","26.13","27.38","37.13"],"9":["4.10","4.11","13.21"],"10":["4.7","4.38","6.3","6.4","13.7","13.38","15.3","15.4"],"11":["4.30","13.3","13.19","13.30"],"14":["38.33"],"22":["8.8","17.8"],"25":["27.34","38.34"],"50":["34.4"],"111":["34.5"],"150":["8.3","17.3"],"实例":["0.0","4.0","9.0"],"artplayer":["0.1","0.6","0.7","0.9","0.12","0.13","0.15","1.1","2.1","2.3","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.19","2.20","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.14","4.16","4.17","4.18","4.19","4.20","4.23","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","4.38","8.1","8.4","9.1","9.6","9.7","9.9","9.12","9.13","9.15","10.1","11.1","11.3","11.4","11.5","11.6","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.17","11.19","11.20","11.21","11.22","11.24","11.25","11.26","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.2","13.3","13.20","13.25","13.30","13.32","13.35","13.38","17.1","17.4","18.2","26.13","27.4","27.18","27.40","28.2","37.13","38.11","38.20","38.34","38.40","38.41","38.47","38.50"],"container":["0.1","0.6","0.7","0.8","0.9","0.10","0.12","0.13","0.15","2.2","2.5","2.6","2.12","2.13","2.14","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.2","4.3","4.8","4.10","4.12","4.14","4.18","4.19","4.20","4.21","4.25","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","4.38","8.4","9.1","9.6","9.7","9.8","9.9","9.10","9.12","9.13","9.15","11.2","11.5","11.6","11.12","11.13","11.14","11.16","11.17","11.18","11.19","11.20","11.21","11.22","11.23","11.24","11.25","11.26","11.28","11.29","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.2","13.20","13.25","13.38","17.4","23.5","27.4","27.18","27.31","27.40","33.5","34.7","34.8","34.11","34.13","34.14","38.11","38.20","38.31","38.34","38.40","38.47","38.50"],"app":["0.1","0.4","0.6","0.7","0.8","0.9","0.10","0.11","0.16","0.17","2.2","2.6","2.7","2.17","2.18","2.20","2.23","2.27","2.28","2.29","4.14","4.18","4.20","4.21","4.25","4.29","4.31","8.4","9.1","9.4","9.6","9.7","9.8","9.9","9.10","9.11","9.16","9.17","11.2","11.6","11.7","11.17","11.18","11.20","11.23","11.27","11.28","11.29","13.20","13.29","13.30","17.4","23.5","27.4","27.8","27.11","27.31","27.32","27.44","28.4","33.5","34.7","34.8","34.11","34.12","34.14","38.1","38.20","38.31","38.32","38.40","38.47"],"url":["0.2","0.4","0.7","0.8","0.9","0.10","0.11","0.14","0.16","0.17","2.2","2.18","2.23","2.27","2.28","2.29","2.30","4.18","4.21","4.29","7.4","8.4","9.2","9.4","9.7","9.8","9.9","9.10","9.11","9.14","9.16","9.17","11.2","11.18","11.23","11.27","11.28","11.29","11.30","13.18","13.20","13.29","13.30","16.4","17.4","23.5","27.1","27.4","27.8","27.11","27.20","27.31","27.32","27.44","33.5","34.7","34.8","34.9","34.11","34.12","38.1","38.4","38.31","38.32","38.40","38.47"],"assets":["0.2","0.3","0.4","0.7","0.8","0.9","0.10","0.11","0.14","0.16","0.17","2.2","2.7","2.27","2.30","4.21","4.29","8.4","9.2","9.3","9.4","9.7","9.8","9.9","9.10","9.11","9.14","9.16","9.17","11.2","11.7","11.27","11.30","13.18","13.20","13.29","13.30","17.4","23.5","27.1","27.4","27.8","27.11","27.20","27.31","27.32","27.44","33.5","34.7","34.8","34.9","34.11","34.12","38.1","38.4","38.31","38.32"],"sample":["0.2","0.3","0.4","0.7","0.10","0.11","0.14","0.16","0.17","2.7","2.27","2.30","4.21","4.29","8.4","8.6","9.2","9.3","9.4","9.7","9.10","9.11","9.14","9.16","9.17","11.7","11.27","11.30","13.14","13.18","13.20","13.29","17.4","17.6","27.1","27.4","27.8","27.11","27.20","27.31","27.32","27.44","27.47","34.7","34.9","34.10","34.11","34.12","38.4","38.31","38.32"],"video":["0.2","0.3","0.4","0.11","0.14","0.16","0.17","2.7","2.30","4.29","6.4","7.4","8.4","8.6","9.2","9.3","9.4","9.11","9.14","9.16","9.17","11.7","11.30","13.18","13.20","13.29","15.4","16.4","17.4","17.6","26.7","27.1","27.8","27.11","27.20","27.29","27.31","27.32","27.44","27.47","34.7","34.9","34.10","34.11","34.12","37.7","38.4","38.29","38.30","38.32"],"mp4":["0.2","0.3","0.14","0.16","0.17","2.30","4.29","5.2","6.4","7.4","8.4","8.6","9.2","9.3","9.14","9.16","9.17","11.30","13.14","13.18","13.20","13.29","14.2","15.4","16.4","17.4","17.6","26.7","27.1","27.4","27.8","27.11","27.20","27.29","27.30","27.32","27.44","27.47","34.5","34.9","34.10","34.11","34.12","37.7","38.4","38.29","38.30","38.44"],"console":["0.3","0.5","1.6","6.2","9.3","9.5","10.6","13.14","13.29","15.2","26.12","27.35","37.12","38.35"],"info":["0.3","0.5","1.1","6.2","9.3","9.5","10.1","15.2","26.12","27.35","37.12","38.35"],"art":["0.4","0.12","0.13","0.15","2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.13","2.14","2.15","2.16","2.19","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","4.1","4.2","4.3","4.5","4.6","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.15","4.16","4.17","4.19","4.22","4.23","4.24","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","8.1","9.4","9.12","9.13","9.15","11.1","11.3","11.4","11.5","11.8","11.9","11.10","11.11","11.13","11.14","11.15","11.16","11.19","11.26","11.31","11.32","11.33","11.34","11.35","11.36","11.37","13.1","13.2","13.3","13.7","13.8","13.9","13.12","13.21","13.25","13.26","13.27","13.28","13.30","13.31","13.32","13.33","13.34","13.35","17.1","20.0","23.5","27.4","27.18","27.34","27.35","27.40","27.50","30.0","33.5","34.6","34.8","34.13","34.14","38.5","38.8","38.11","38.18","38.33","38.34","38.41","38.50"],"new":["0.4","0.6","0.12","0.13","0.15","2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.19","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.14","4.15","4.16","4.17","4.18","4.19","4.20","4.23","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","8.1","8.4","9.4","9.6","9.12","9.13","9.15","11.1","11.3","11.4","11.5","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.19","11.21","11.22","11.24","11.25","11.26","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.1","13.2","13.3","13.7","13.8","13.21","13.25","13.27","13.28","13.30","13.31","13.32","13.33","13.34","13.35","17.1","17.4","21.0","23.5","27.4","27.18","27.34","27.40","31.0","33.5","34.6","34.8","34.13","34.14","38.8","38.11","38.20","38.34","38.40","38.41","38.47","38.50"],"function":["0.14","5.5","9.14","14.5","27.49","38.38"],"一级属性":["1.0","10.0"],"var":["1.1","4.1","4.5","4.6","4.7","4.8","4.9","4.10","4.11","4.13","4.15","4.16","4.17","4.19","4.22","4.23","4.24","4.26","4.30","4.36","4.37","4.38","4.40","8.1","10.1","13.1","13.3","13.7","13.8","13.9","13.12","13.19","13.21","13.23","13.25","13.26","13.27","13.28","13.30","13.31","13.32","13.33","13.34","13.35","13.38","17.1","23.4","27.18","27.34","27.40","27.50","33.4","34.6","34.13","38.3","38.5","38.8","38.18","38.25","38.33","38.34","38.41","38.50"],"js":["1.6","4.4","4.5","4.6","4.11","4.13","4.22","4.26","4.36","4.37","4.39","4.40","10.6","13.5","13.6","13.7","13.8","13.9","13.12","13.15","13.16","13.17","13.19","13.21","13.22","13.23","13.26","13.27","13.28","13.30","13.31","13.32","13.33","13.34","13.38","13.40","27.18","27.34","27.40","27.50","38.3","38.5","38.6","38.9","38.10","38.13","38.14","38.15","38.16","38.17","38.18","38.19","38.21","38.22","38.23","38.24","38.25","38.26","38.27","38.28","38.33","38.36","38.39","38.41","38.45","38.46","38.48","38.49"],"code":["1.11","8.5","10.11","13.13","13.16","13.17","13.21","13.22","13.24","13.38","17.5","27.3","27.5","27.6","27.10","27.14","27.25","27.28","27.33","27.38","27.39","38.7","38.12","38.15","38.16","38.17","38.27","38.36","38.37","38.42"],"once":["2.0","11.0","13.24"],"subtitle":["2.30","6.2","6.5","11.30","15.2","15.5"],"不必停下来进一步缓冲内容":["2.39","11.39"],"media":["2.43","2.44","11.43","11.44"],"已经加载完成":["2.43","11.43"],"操作完成":["2.53","11.53"],"操作开始":["2.54","11.54"],"agent":["2.55","11.55"],"add":["3.0","5.3","7.3","12.0","14.3","16.3","22.2","23.2","24.2","25.2","26.3","32.2","33.2","34.2","35.2","36.2","37.3"],"例如我想写一个在视频暂停后":["3.0","12.0"],"显示一个图片广告的插件":["3.0","12.0"],"document":["4.38","13.38","38.1"],"queryselector":["4.38","13.38","27.1","38.1"],"组件索引":["5.1","7.1","14.1","16.1"],"用于显示的优先级":["5.1","7.1","14.1","16.1"],"html":["5.1","5.2","5.3","5.4","5.5","6.3","6.5","7.1","7.2","7.3","7.5","8.7","13.18","14.1","14.2","14.3","14.4","14.5","15.3","15.5","16.1","16.2","16.3","16.5","17.7","26.11","27.29","27.30","27.38","28.3","37.11","38.29","38.30","38.38"],"contextmenu":["5.2","5.3","14.2","14.3","27.15","27.16","27.17"],"name":["5.2","5.3","5.4","6.3","6.4","7.2","7.3","7.4","7.5","8.7","13.11","14.2","14.3","14.4","15.3","15.4","16.2","16.3","16.4","16.5","17.7","27.29","27.35","38.29","38.35"],"your":["5.2","5.3","5.4","5.5","6.3","14.2","14.3","14.4","14.5","15.3","27.47","38.44"],"menu":["5.2","5.3","5.4","5.5","14.2","14.3","14.4","14.5"],"click":["5.4","5.5","14.4","14.5"],"args":["5.5","14.5"],"组件的":["6.1","15.1"],"dom":["6.1","15.1","27.42"],"元素":["6.1","15.1"],"style":["6.1","7.2","7.3","7.5","15.1","16.2","16.3","16.5","27.29"],"object":["6.1","15.1"],"mounted":["6.2","15.2","27.27"],"button1":["6.3","6.4","15.3","15.4"],"index":["6.3","6.4","15.3","15.4"],"position":["6.3","13.18","15.3"],"left":["6.3","15.3"],"controls":["6.4","13.18","13.20","15.4"],"right":["6.5","13.18","15.5"],"selector":["6.5","15.5","27.30","38.30"],"default":["6.5","13.4","15.5"],"true":["6.5","8.6","13.4","15.5","17.6","27.4","27.11","27.30","27.47","34.5","38.4","38.30","38.38"],"01":["6.5","15.5"],"layers":["7.2","7.3","7.4","7.5","16.2","16.3","16.4","16.5"],"potser":["7.2","7.3","7.5","16.2","16.3","16.5","27.29","38.29"],"width":["7.2","7.3","7.5","8.3","8.8","16.2","16.3","16.5","17.3","17.8","27.29"],"100px":["7.2","7.3","7.5","16.2","16.3","16.5"],"src":["7.2","7.5","8.8","16.2","16.5","17.8","22.4","32.4"],"color":["8.2","17.2"],"red":["8.2","17.2"],"srt":["8.2","17.2"],"id":["8.2","17.2","27.43","27.47","38.43"],"yellow":["8.2","17.2"],"02":["8.2","17.2"],"setting":["8.4","8.6","17.4","17.6","34.5","38.30"],"max":["8.5","17.5"],"step":["8.5","17.5"],"div":["8.5","13.11","13.13","13.24","13.36","13.37","17.5","18.3","18.5","27.5","27.7","27.9","27.13","27.15","27.16","27.17","27.19","27.21","27.22","27.23","27.24","27.26","27.28","27.33","27.37","27.39","27.41","27.45","27.46","27.49","28.5","38.12","38.37","38.43"],"classname":["8.5","13.13","13.16","13.17","13.24","13.36","13.37","17.5","27.3","27.5","27.7","27.9","27.13","27.15","27.16","27.17","27.19","27.21","27.23","27.24","27.25","27.26","27.28","27.33","27.37","27.39","27.41","27.45","27.46","27.49","38.12","38.36","38.37","38.42","38.43"],"run":["8.5","13.13","13.16","13.17","13.24","13.36","13.37","17.5","27.3","27.5","27.6","27.7","27.9","27.13","27.15","27.16","27.17","27.19","27.21","27.23","27.25","27.26","27.28","27.33","27.37","27.39","27.41","27.46","27.49","38.12","38.27","38.36","38.37","38.42"],"settings":["8.7","17.7"],"slider":["8.7","17.7"],"tooltip":["8.7","17.7"],"5x":["8.7","17.7"],"icon":["8.7","17.7"],"img":["8.8","17.8","22.4","32.4"],"heigth":["8.8","17.8"],"state":["8.8","17.8"],"svg":["8.8","17.8"],"primary":["13.0"],"destruction":["13.4"],"value":["13.4"],"is":["13.4","27.26","27.48"],"and":["13.10","13.11","27.15","27.16","27.17"],"second":["13.10","13.11"],"optional":["13.10","13.11"],"not":["13.13","27.41"],"trigger":["13.13"],"additional":["13.13"],"events":["13.13"],"on":["13.14","13.29"],"ready":["13.14","13.29"],"timeupdate":["13.36","13.37"],"event":["13.36","13.37"],"which":["13.39"],"can":["13.39","27.2","27.27","27.42"],"avoid":["13.39"],"errors":["13.39"],"same":["13.39"],"yet":["18.0"],"been":["18.0"],"yarn":["18.1","22.2","23.2","24.2","25.2","26.3","28.1","32.2","33.2","34.2","35.2","36.2","37.3"],"npm":["18.2","28.2"],"dist":["18.2","22.3","23.3","24.3","25.3","26.4","28.2","32.3","33.3","34.3","35.3","36.3","37.4"],"meta":["18.3","26.13","37.13"],"charset":["18.3","26.13","37.13"],"utf":["18.3","26.13","27.38","37.13"],"body":["18.3"],"class":["18.3"],"get":["18.4","26.7","37.7"],"instance":["18.4"],"destroy":["18.5","19.0","20.0","21.0","28.5","29.0","30.0","31.0"],"false":["18.5","28.5","34.4"],"ref":["18.5","28.5"],"variable":["18.6"],"if":["19.0","20.0","29.0","30.0"],"supportsmediasource":["19.0","29.0"],"const":["19.0","20.0","21.0","29.0","30.0","31.0"],"mediaplayer":["19.0","29.0"],"flvjs":["20.0","30.0"],"issupported":["20.0","21.0","30.0","31.0"],"loadsource":["21.0","31.0"],"ads":["22.3","32.3"],"poster":["22.4","32.4"],"jpg":["22.4","32.4"],"视频广告的地址":["22.4","32.4"],"test1":["22.4","32.4"],"广告跳转网址":["22.4","32.4"],"control":["23.3","27.19","27.21","27.23","27.24","27.45","33.3"],"页面里的播放器":["26.1","37.1"],"如在":["26.1","37.1"],"iframe":["26.4","26.9","37.4","37.9"],"seek":["26.7","37.7"],"the":["26.7","37.7"],"的消息":["26.8","37.8"],"head":["26.13","28.3","37.13"],"title":["26.13","28.3","37.13"],"you":["27.1","27.2"],"may":["27.1"],"time":["27.2"],"set":["27.2"],"asynchronously":["27.2"],"muted":["27.4","38.4"],"highlighted":["27.7"],"element":["27.7","27.39","27.42"],"be":["27.9","27.36"],"hidden":["27.9"],"adjust":["27.12"],"to":["27.12","27.38"],"hide":["27.12"],"mini":["27.13"],"mode":["27.13"],"bar":["27.19","27.21","27.23","27.24","27.45"],"hotkeys":["27.20"],"only":["27.22"],"one":["27.22","27.36"],"player":["27.22"],"play":["27.22","38.44"],"bottom":["27.24","27.45"],"playing":["27.26"],"access":["27.27"],"setting01":["27.30","38.30"],"return":["27.35","28.5","38.35"],"with":["27.36"],"window":["27.36"],"navigator":["27.36"],"useragent":["27.36"],"respectively":["27.36"],"will":["27.36"],"enabled":["27.36"],"as":["27.36"],"long":["27.36"],"height":["27.37"],"escape":["27.38"],"boolean":["27.38","38.38"],"whether":["27.38"],"tag":["27.38"],"have":["27.41"],"correct":["27.41"],"so":["27.41"],"specially":["27.41"],"specified":["27.41"],"receive":["27.42"],"three":["27.42"],"parameters":["27.42"],"cs":["27.43"],"pl":["27.43"],"es":["27.43"],"fa":["27.43","38.43"],"fr":["27.43","38.43"],"lang":["27.44","38.44"],"mobile":["27.46","27.48"],"terminal":["27.46"],"warning":["27.47"],"page":["27.48"],"full":["27.48"],"screen":["27.48"],"this":["27.49"],"null":["28.6"],"参数":["28.6"],"param":["28.6"],"danmuku":["34.3"],"web":["34.4"],"worker":["34.4"],"synchronousplayback":["34.4"],"是否同步到播放速度":["34.4"],"filter":["34.4"],"danmu":["34.4"],"text":["34.4","34.5"],"length":["34.4","34.15"],"弹幕过滤函数":["34.4"],"返回":["34.4"],"则可以发送":["34.4"],"plugins":["34.5","34.9","34.10","34.11","34.12"],"artplayerplugindanmuku":["34.5","34.9","34.10","34.11","34.12"],"弹幕数组":["34.5"],"danmus":["34.15"],"加载弹幕":["34.15"],"error":["34.15"],"有时候":["38.2"],"地址没那么快知道":["38.2"],"这时候你可以异步设置":["38.2"],"cover":["38.12"],"是否转义":["38.38"],"标签":["38.38"],"默认为":["38.38"],"onvttload":["38.38"],"用于修改":["38.38"],"文本的函数":["38.38"],"修改现有的语言":["38.44"]},{"1":["8.8","17.8","34.5"],"2":["8.2","17.2","27.3"],"3":["38.1"],"4":["27.5","27.6","27.9","27.10","27.13","27.14","27.15","27.16","27.17","27.19","27.25","27.26","27.28","27.33","27.37","27.39","27.41","27.46","27.49","38.7","38.12","38.13","38.15","38.16","38.17","38.19","38.21","38.23","38.24","38.28","38.36","38.37","38.38","38.42","38.45","38.48","38.49"],"5":["8.8","13.29","17.8","22.4","27.8","32.4"],"6":["13.40","27.2","38.2"],"7":["13.15","13.16","13.17","13.22","13.36","13.37","27.39","38.27"],"8":["13.13","13.24","27.37","28.3","38.37","38.42"],"9":["13.10","13.11"],"10":["8.8","13.29","17.8"],"11":["38.44"],"12":["38.38"],"14":["27.33"],"22":["8.4","17.4"],"60":["34.4"],"100":["34.4"],"200":["34.4"],"500":["34.4"],"的":["0.0","0.5","4.0","9.0","9.5"],"url":["0.1","0.6","0.13","0.15","2.1","2.3","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.19","2.20","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.11","4.12","4.13","4.14","4.16","4.17","4.19","4.20","4.23","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","8.1","8.5","9.1","9.6","9.13","9.15","11.1","11.3","11.4","11.5","11.6","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.17","11.19","11.20","11.21","11.22","11.24","11.25","11.26","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.1","13.2","13.3","13.7","13.8","13.12","13.21","13.25","13.26","13.27","13.28","13.31","13.32","13.33","13.34","13.35","13.38","17.1","17.5","27.18","27.34","27.40","27.41","27.42","34.6","34.13","34.14","38.8","38.11","38.20","38.34","38.41","38.50"],"assets":["0.1","0.6","0.12","0.13","0.15","2.5","2.6","2.12","2.13","2.14","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.2","4.3","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.14","4.16","4.17","4.18","4.19","4.20","4.23","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","4.35","8.1","8.5","9.1","9.6","9.12","9.13","9.15","11.5","11.6","11.12","11.13","11.14","11.16","11.17","11.18","11.19","11.20","11.21","11.22","11.23","11.24","11.25","11.26","11.28","11.29","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.2","13.3","13.8","13.12","13.21","13.25","13.27","13.28","13.31","13.32","13.33","13.34","13.35","13.38","17.1","17.5","27.18","27.34","27.40","27.41","34.6","34.13","34.14","38.11","38.20","38.33","38.34","38.40","38.41","38.47","38.50"],"sample":["0.1","0.6","0.8","0.9","0.12","0.13","0.15","2.2","2.6","2.12","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.28","2.29","2.38","4.2","4.3","4.8","4.10","4.11","4.12","4.13","4.14","4.16","4.17","4.18","4.19","4.20","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","8.5","9.1","9.6","9.8","9.9","9.12","9.13","9.15","11.2","11.6","11.12","11.17","11.18","11.20","11.21","11.22","11.23","11.24","11.25","11.28","11.29","11.38","13.2","13.21","13.25","13.28","13.30","13.31","13.32","13.38","17.5","23.5","27.18","27.34","27.40","27.41","33.5","34.6","34.8","34.13","34.14","38.1","38.11","38.20","38.33","38.34","38.40","38.41","38.47","38.50"],"video":["0.1","0.6","0.7","0.8","0.9","0.10","0.12","0.13","0.15","2.2","2.6","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.27","2.28","2.29","4.2","4.3","4.8","4.10","4.11","4.12","4.14","4.18","4.20","4.21","4.25","4.27","4.28","4.30","4.32","4.33","4.34","9.1","9.6","9.7","9.8","9.9","9.10","9.12","9.13","9.15","11.2","11.6","11.17","11.18","11.20","11.21","11.22","11.23","11.24","11.25","11.27","11.28","11.29","13.25","13.38","23.5","27.34","27.40","33.5","34.8","34.13","34.14","38.1","38.11","38.20","38.31","38.34","38.40","38.41","38.47"],"ua":["0.2","9.2"],"iphone":["0.2","9.2"],"gi":["0.2","9.2"],"test":["0.2","9.2"],"console":["0.2","0.4","0.7","0.14","0.17","4.29","5.2","5.3","5.4","5.5","8.2","8.3","9.2","9.4","9.7","9.14","9.17","14.2","14.3","14.4","14.5","17.2","17.3","27.30"],"info":["0.2","0.4","0.7","0.14","0.17","1.6","4.29","5.2","5.3","5.4","5.5","8.2","8.3","9.2","9.4","9.7","9.14","9.17","10.6","13.14","13.29","14.2","14.3","14.4","14.5","17.2","17.3","27.30"],"mp4":["0.4","0.6","0.7","0.8","0.9","0.10","0.11","0.12","2.2","2.7","2.17","2.18","2.20","2.23","2.27","2.28","2.29","4.10","4.14","4.18","4.20","4.21","4.25","4.28","4.30","4.31","4.32","9.4","9.6","9.7","9.8","9.9","9.10","9.11","9.12","11.2","11.7","11.17","11.18","11.20","11.23","11.27","11.28","11.29","13.21","13.25","13.30","13.38","23.5","27.18","27.31","27.40","33.5","34.7","34.8","34.13","34.14","38.1","38.11","38.20","38.31","38.32","38.34","38.40","38.47"],"click":["0.4","0.14","5.2","5.3","6.1","6.3","9.4","9.14","13.18","13.20","14.2","14.3","15.1","15.3","27.31","34.10"],"event":["0.4","0.14","8.2","8.3","9.4","9.14","17.2","17.3"],"warning":["0.5","1.0","9.5","10.0","13.14","13.18","18.3","27.8","27.11"],"提示":["0.5","9.5"],"默认所有播放器实例都是共享同一个":["0.5","9.5"],"localstorage":["0.5","9.5"],"而且默认的":["0.5","9.5"],"是":["0.5","9.5"],"settings":["0.5","8.4","9.5","17.4"],"如果你想不同的播放器使用不同的":["0.5","9.5"],"play":["0.7","9.7","27.4","27.44","38.4"],"on":["0.8","0.9","0.10","0.11","2.2","2.7","4.29","6.5","7.5","8.8","9.8","9.9","9.10","9.11","11.2","11.7","13.30","15.5","16.5","17.8","19.0","21.0","29.0","31.0"],"ready":["0.9","0.10","0.11","2.7","4.29","6.5","9.9","9.10","9.11","11.7","13.30","15.5"],"app":["0.12","0.13","0.15","2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.19","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.15","4.16","4.17","4.19","4.23","4.24","4.26","4.27","4.28","4.30","4.32","4.33","4.34","4.35","4.38","8.1","8.5","9.12","9.13","9.15","11.1","11.3","11.4","11.5","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.19","11.21","11.22","11.24","11.25","11.26","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.1","13.2","13.3","13.7","13.8","13.9","13.12","13.19","13.21","13.23","13.25","13.26","13.27","13.28","13.31","13.32","13.33","13.34","13.35","13.38","17.1","17.5","18.5","27.18","27.34","27.40","27.41","27.50","28.5","34.6","34.13","38.8","38.11","38.18","38.25","38.27","38.33","38.34","38.41","38.50"],"hotkeyevent":["0.14","9.14"],"true":["0.16","2.27","6.2","8.4","9.16","11.27","15.2","17.4","23.5","27.18","27.38","33.5"],"flip":["0.16","9.16"],"playbackrate":["0.16","9.16"],"aspectratio":["0.16","9.16"],"function":["0.17","5.2","5.3","5.4","6.1","6.3","8.3","9.17","13.18","13.20","14.2","14.3","14.4","15.1","15.3","17.3","26.7","27.30","27.31","27.36","27.38","28.6","34.10","37.7","38.30"],"myplugin":["0.17","9.17"],"非常少使用":["1.0","10.0"],"art":["1.1","4.4","4.36","4.37","4.38","4.39","4.40","8.5","10.1","13.5","13.6","13.11","13.13","13.15","13.16","13.17","13.19","13.22","13.23","13.24","13.38","13.40","17.5","18.6","23.4","27.3","27.5","27.6","27.10","27.14","27.25","27.33","27.37","27.41","27.42","33.4","38.3","38.6","38.7","38.9","38.10","38.13","38.14","38.15","38.16","38.17","38.19","38.21","38.22","38.23","38.24","38.25","38.26","38.28","38.36","38.37","38.39","38.45","38.46","38.48","38.49"],"new":["1.1","4.4","4.5","4.6","4.22","4.36","4.37","4.38","4.39","4.40","8.5","10.1","13.5","13.6","13.9","13.12","13.13","13.15","13.16","13.17","13.19","13.22","13.23","13.24","13.26","13.38","13.40","17.5","23.4","27.6","27.10","27.25","27.33","27.37","27.41","27.50","33.4","38.3","38.5","38.6","38.9","38.10","38.13","38.14","38.15","38.16","38.17","38.18","38.19","38.21","38.22","38.23","38.24","38.25","38.26","38.28","38.33","38.36","38.37","38.39","38.45","38.46","38.48","38.49"],"container":["1.1","2.1","2.3","2.4","2.8","2.9","2.10","2.11","2.15","4.1","4.4","4.5","4.6","4.7","4.9","4.11","4.13","4.15","4.16","4.17","4.22","4.23","4.24","4.26","4.36","4.37","4.39","4.40","8.1","8.5","10.1","11.1","11.3","11.4","11.8","11.9","11.10","11.11","11.15","13.1","13.3","13.5","13.6","13.7","13.8","13.9","13.12","13.16","13.17","13.19","13.21","13.23","13.24","13.26","13.27","13.28","13.31","13.32","13.33","13.34","13.35","17.1","17.5","23.4","27.25","27.33","27.34","27.41","27.50","33.4","34.6","38.5","38.6","38.8","38.18","38.25","38.27","38.33","38.36","38.37","38.39","38.41"],"js":["1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.12","10.2","10.3","10.4","10.5","10.7","10.8","10.9","10.10","10.12","13.10","13.11","13.13","13.24","13.36","13.37","18.2","22.3","23.3","24.3","25.3","26.4","26.8","26.11","27.3","27.5","27.6","27.7","27.9","27.10","27.13","27.14","27.15","27.16","27.17","27.19","27.21","27.23","27.24","27.25","27.26","27.28","27.33","27.37","27.39","27.41","27.45","27.46","27.49","28.2","32.3","33.3","34.3","35.3","36.3","37.4","37.8","37.11","38.7","38.12","38.37","38.38","38.42","38.43"],"artplayer":["1.6","4.4","4.5","4.6","4.15","4.22","4.36","4.37","4.39","4.40","8.5","10.6","13.1","13.5","13.6","13.7","13.8","13.9","13.12","13.15","13.16","13.17","13.19","13.21","13.22","13.23","13.24","13.26","13.27","13.28","13.31","13.33","13.34","13.40","17.5","18.6","27.25","27.27","27.33","27.34","27.41","27.50","38.3","38.5","38.6","38.8","38.9","38.10","38.14","38.15","38.16","38.17","38.18","38.22","38.25","38.26","38.33","38.36","38.37","38.39","38.46"],"手动触发事件":["2.0","11.0"],"subtitle":["2.27","2.28","2.29","11.27","11.28","11.29"],"srt":["2.30","11.30"],"或者部分加载完成":["2.43","11.43"],"则发送此事件":["2.43","11.43"],"已经到达结束点":["2.44","11.44"],"正在尝试获取媒体数据":["2.55","11.55"],"adsplugin":["3.0","12.0"],"option":["3.0","12.0","18.4","19.0","28.4","29.0","34.15"],"layers":["3.0","12.0"],"ads":["3.0","12.0"],"html":["3.0","6.4","7.4","8.6","12.0","13.20","15.4","16.4","17.6","27.31","27.32","34.9","34.10","34.11","34.12","38.31","38.32"],"img":["3.0","8.4","8.7","12.0","17.4","17.7","38.40"],"style":["3.0","5.1","6.3","7.1","7.4","12.0","14.1","15.3","16.1","16.4","18.4","38.29"],"width":["3.0","7.4","8.4","8.7","12.0","16.4","17.4","17.7","38.29"],"100px":["3.0","7.4","12.0","16.4","27.29","38.29"],"src":["3.0","7.3","7.4","8.7","12.0","16.3","16.4","17.7","27.29","38.29"],"display":["3.0","12.0"],"none":["3.0","12.0"],"position":["3.0","4.18","6.4","7.2","7.3","7.5","12.0","13.20","15.4","16.2","16.3","16.5","27.29","27.32","34.9","34.10","34.11","34.12","38.29","38.32"],"absolute":["3.0","7.2","7.3","7.5","12.0","16.2","16.3","16.5","27.29","38.29"],"top":["3.0","7.2","7.3","7.5","12.0","16.2","16.3","16.5","27.29","38.29"],"20px":["3.0","12.0","27.29","38.29"],"right":["3.0","6.2","6.4","7.2","7.5","12.0","13.20","15.2","15.4","16.2","16.5","27.29","34.9","34.10","34.11","34.12"],"var":["4.4","4.39","8.5","13.5","13.6","13.10","13.11","13.13","13.15","13.16","13.17","13.22","13.24","13.36","13.37","13.40","17.5","27.3","27.5","27.6","27.10","27.14","27.25","27.28","27.33","27.37","27.39","27.41","38.6","38.7","38.9","38.10","38.13","38.14","38.15","38.16","38.17","38.19","38.21","38.22","38.23","38.24","38.26","38.27","38.28","38.36","38.37","38.38","38.39","38.42","38.45","38.46","38.48","38.49"],"controls":["4.18","4.20","23.5","33.5","34.9","34.10","34.11","34.12"],"jpg":["4.21"],"element":["5.1","7.1","14.1","16.1"],"组件的":["5.1","7.1","14.1","16.1"],"dom":["5.1","7.1","8.3","14.1","16.1","17.3"],"元素":["5.1","7.1","14.1","16.1"],"args":["5.2","5.3","5.4","14.2","14.3","14.4","27.30","27.31","38.30"],"show":["5.5","8.6","8.8","14.5","17.6","17.8"],"false":["5.5","14.5","34.5"],"组件样式对象":["6.1","15.1"],"组件点击事件":["6.1","15.1"],"mounted":["6.1","15.1"],"selector":["6.2","15.2"],"default":["6.2","15.2"],"span":["6.2","15.2"],"01":["6.2","15.2","27.30","38.30"],"button":["6.3","6.4","15.3","15.4"],"tooltip":["6.3","6.4","7.2","7.3","15.3","15.4","16.2","16.3","27.32"],"color":["6.3","15.3","34.5"],"red":["6.3","15.3"],"your":["6.4","15.4","27.31","27.32","38.31","38.32","38.47"],"02":["6.5","8.3","15.5","17.3","27.30","38.30"],"settimeout":["6.5","15.5","27.2"],"update":["6.5","15.5"],"the":["6.5","15.5","18.3","27.8","27.47"],"tip":["7.2","7.3","13.14","13.18","16.2","16.3","18.3","27.8","27.11","27.47"],"50px":["7.2","7.3","7.5","16.2","16.3","16.5"],"potser":["7.4","16.4"],"item":["8.2","8.3","17.2","17.3"],"onselect":["8.3","17.3","27.30","38.30"],"pip":["8.4","17.4"],"mode":["8.4","17.4"],"close":["8.4","17.4"],"heigth":["8.4","8.7","17.4","17.7"],"add":["8.6","17.6","18.1","28.1"],"slider":["8.6","17.6"],"state":["8.7","17.7"],"range":["8.8","17.8","34.11"],"attached":["13.0"],"div":["13.4","13.10","13.39","27.27","27.36","27.38","27.42","27.43","27.48","38.38"],"classname":["13.4","13.10","13.11","13.39","27.22","27.27","27.36","27.38","27.42","27.43","27.48","38.38"],"run":["13.4","13.10","13.11","13.39","27.22","27.24","27.27","27.36","27.38","27.42","27.43","27.45","27.48","38.38","38.43"],"code":["13.4","13.10","13.11","13.36","13.37","13.39","27.7","27.9","27.13","27.15","27.16","27.17","27.19","27.21","27.22","27.23","27.24","27.26","27.27","27.36","27.37","27.41","27.43","27.45","27.46","27.48","27.49","38.38","38.43"],"name":["13.10","13.39"],"some":["13.14"],"videos":["13.14"],"have":["13.14"],"switch":["13.18"],"resize":["13.30"],"class":["13.39"],"completed":["18.0"],"everything":["18.0"],"is":["18.0"],"unpkg":["18.2","22.3","23.3","24.3","25.3","26.4","28.2","32.3","33.3","34.3","35.3","36.3","37.4"],"size":["18.3","27.1"],"of":["18.3","27.1"],"getinstance":["18.4","28.4","28.6"],"let":["18.6"],"null":["18.6"],"parameters":["18.6"],"create":["19.0","29.0"],"initialize":["19.0","27.1","29.0"],"autoplay":["19.0","29.0"],"createplayer":["20.0","30.0"],"type":["20.0","30.0","34.11"],"attachmediaelement":["20.0","30.0"],"load":["20.0","30.0"],"attachmedia":["21.0","31.0"],"else":["21.0","31.0"],"canplaytype":["21.0","31.0"],"com":["22.3","23.3","24.3","25.3","26.4","32.3","33.3","34.3","35.3","36.3","37.4"],"为空则不跳转":["22.4","32.4"],"http":["22.4","32.4"],"org":["22.4","32.4"],"必须观看的时长":["22.4","32.4"],"期间不能被跳过":["22.4","32.4"],"单位为秒":["22.4","32.4"],"当该值大于或等于totalduration时":["22.4","32.4"],"不能提前关闭广告":["22.4","32.4"],"当该值等于或小于0时":["22.4","32.4"],"则随时都可以关闭广告":["22.4","32.4"],"playduration":["22.4","32.4"],"fullscreen":["23.5","33.5"],"fullscreenweb":["23.5","33.5"],"里通过代码控制":["26.1","37.1"],"value":["26.7","37.7"],"from":["26.7","37.7"],"async":["26.7","37.7"],"use":["26.7","37.7"],"通信":["26.9","37.9"],"只能运行在":["26.10","37.10"],"的消息":["26.11","37.11"],"commit":["26.12","37.12"],"artplayerpluginiframe":["26.12","37.12"],"body":["26.13","28.3","37.13"],"id":["26.13","37.13","38.47"],"need":["27.1"],"elements":["27.1"],"such":["27.1"],"as":["27.1","27.47"],"css":["27.1","38.1"],"this":["27.4","38.4"],"equivalent":["27.4"],"to":["27.4"],"will":["27.8"],"cache":["27.8"],"muted":["27.11"],"if":["27.11"],"you":["27.11"],"want":["27.11"],"similar":["27.12"],"object":["27.12"],"fit":["27.12"],"contain":["27.12"],"sescribe":["27.20"],"volume":["27.20"],"up":["27.20"],"down":["27.20"],"fast":["27.20"],"forward":["27.20"],"rewind":["27.20"],"through":["27.27"],"opacity":["27.29"],"menu":["27.31","38.31"],"left":["27.32","38.32"],"control":["27.32","38.32"],"something":["27.35","38.35"],"dosomething":["27.35","38.35"],"matches":["27.36"],"successful":["27.36"],"support":["27.36"],"string":["27.36"],"matching":["27.36"],"regular":["27.36"],"onvttload":["27.38"],"functions":["27.38"],"for":["27.38"],"modifying":["27.38"],"text":["27.38","34.10"],"loading":["27.40","38.40"],"player":["27.42","27.47"],"instance":["27.42","28.4"],"modify":["27.44"],"existing":["27.44"],"because":["27.47"],"uses":["27.47"],"key":["27.47"],"by":["27.47"],"demo":["28.3"],"meta":["28.3"],"charset":["28.3"],"utf":["28.3"],"get":["28.4"],"locktime":["34.4"],"输入框锁定时间":["34.4"],"maxlength":["34.4"],"输入框最大可输入的字数":["34.4"],"minwidth":["34.4"],"弹幕文本":["34.5"],"time":["34.5"],"发送时间":["34.5"],"单位秒":["34.5"],"fff":["34.5"],"弹幕局部颜色":["34.5"],"border":["34.5"],"plugins":["34.7","34.8"],"artplayerplugindanmuku":["34.7","34.8"],"使用":["34.7"],"promise":["34.7"],"异步返回":["34.7"],"xml":["34.9","34.10","34.11","34.12"],"隐藏弹幕":["34.9"],"发送弹幕":["34.10"],"弹幕大小":["34.11"],"input":["34.11"],"重载弹幕":["34.12"],"setting":["34.14"],"加载错误":["34.15"],"config":["34.15"],"配置变化":["34.15"],"您可能需要初始化容器元素的大小":["38.1"],"如":["38.1"],"等同于":["38.4"],"document":["38.27"],"queryselector":["38.27"]},{"0":["34.5"],"1":["8.7","17.7","34.11"],"3":["27.1"],"4":["27.7","27.21","27.22","27.23","27.24","27.36","27.38","27.42","27.43","27.45","27.48","38.43"],"5":["4.29","8.7","17.7"],"6":["13.39"],"7":["13.4","27.27"],"8":["27.42"],"9":["27.29","38.29"],"10":["4.10","4.29","8.7","17.7","22.4","32.4"],"11":["27.44"],"12":["27.38","34.11"],"22":["8.5","8.6","17.5","17.6"],"25":["34.11"],"32":["0.14","9.14"],"50":["34.11"],"60":["27.34","38.34"],"120":["38.34"],"150":["8.2","17.2"],"222":["34.5"],"400":["34.4"],"404":["2.12","11.12"],"1000":["27.2"],"二级属性":["0.0","9.0"],"mp4":["0.1","0.13","0.15","2.1","2.3","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.19","2.21","2.22","2.24","2.25","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.7","4.8","4.9","4.11","4.12","4.13","4.16","4.17","4.19","4.23","4.24","4.26","4.27","4.33","4.34","4.35","4.38","8.1","8.5","9.1","9.13","9.15","11.1","11.3","11.4","11.5","11.6","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.19","11.21","11.22","11.24","11.25","11.26","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.1","13.2","13.3","13.7","13.8","13.9","13.11","13.12","13.16","13.17","13.19","13.23","13.24","13.26","13.27","13.28","13.31","13.32","13.33","13.34","13.35","17.1","17.5","18.5","27.33","27.34","27.37","27.50","28.5","34.6","38.8","38.25","38.33","38.36","38.37","38.50"],"console":["0.1","0.6","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","4.8","4.12","4.13","4.14","4.21","4.24","4.25","4.26","4.27","4.28","4.31","4.32","4.33","4.34","6.3","7.2","7.3","9.1","9.6","10.2","10.3","10.4","10.5","10.7","10.8","10.9","10.10","10.11","10.12","13.8","13.25","13.28","13.31","13.32","13.38","15.3","16.2","16.3","27.29","27.31","27.32","38.29","38.30","38.31"],"info":["0.1","0.6","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.12","4.8","4.12","4.14","4.21","4.25","4.27","4.28","4.31","4.32","4.33","4.34","6.3","7.2","7.3","9.1","9.6","10.2","10.3","10.4","10.5","10.7","10.8","10.9","10.10","10.12","13.25","13.31","13.38","15.3","16.2","16.3","27.29","27.31","27.32","38.29","38.30","38.31"],"warning":["0.2","0.3","1.6","4.29","9.2","9.3","10.6","13.20","13.29","13.30","13.38","18.4","27.2","27.4","27.18","27.20","27.41","28.4","38.11","38.41","38.47","38.50"],"提示":["0.2","0.3","1.0","9.2","9.3","10.0","13.30","38.47"],"在上面这个例子中":["0.2","9.2"],"为了方便区别":["0.3","9.3"],"元素和普通对象":["0.3","9.3"],"播放器里的所有":["0.3","9.3"],"mouseenter":["0.4","9.4"],"你可以修改":["0.5","9.5"],"即可":["0.5","9.5"],"zh":["0.7","9.7"],"cn":["0.7","9.7"],"your":["0.7","9.7","13.30","27.3","38.3"],"ready":["0.8","0.12","0.13","0.14","0.15","0.16","2.2","2.6","2.18","2.23","2.30","4.8","4.10","4.11","4.12","4.13","4.14","4.16","4.17","4.21","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","5.5","7.5","8.8","9.8","9.12","9.13","9.14","9.15","9.16","11.2","11.6","11.18","11.23","11.30","13.8","13.12","13.21","13.25","13.26","13.27","13.28","13.31","13.32","13.33","13.34","14.5","16.5","17.8"],"html":["0.9","0.10","0.11","4.18","4.20","9.9","9.10","9.11","23.5","33.5","34.8"],"some":["0.9","0.10","0.11","9.9","9.10","9.11"],"text":["0.9","0.10","0.11","9.9","9.10","9.11"],"settimeout":["0.9","4.10","5.5","7.5","8.8","9.9","14.5","16.5","17.8","38.2"],"position":["0.10","4.20","4.35","6.1","7.4","9.10","15.1","16.4","23.5","33.5","34.8"],"left":["0.10","9.10"],"true":["0.11","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.38","4.2","4.3","4.19","5.2","5.4","5.5","8.1","8.5","9.11","11.17","11.18","11.20","11.21","11.22","11.23","11.24","11.25","11.38","13.2","13.3","13.19","14.2","14.4","14.5","17.1","17.5","34.13","34.14","38.11","38.33","38.47"],"on":["0.12","0.13","0.14","0.15","0.16","2.6","2.12","2.18","2.23","2.30","4.7","4.8","4.9","4.10","4.11","4.12","4.13","4.14","4.16","4.17","4.19","4.21","4.24","4.25","4.26","4.27","4.28","4.30","4.31","4.32","4.33","4.34","5.4","5.5","6.4","9.12","9.13","9.14","9.15","9.16","11.6","11.12","11.18","11.23","11.30","13.7","13.8","13.12","13.21","13.25","13.26","13.27","13.28","13.31","13.32","13.33","13.34","14.4","14.5","15.4","18.3","20.0","27.4","30.0"],"subtitleoffset":["0.16","9.16"],"return":["0.17","8.2","8.3","9.17","17.2","17.3","26.7","34.7","34.10","37.7"],"name":["0.17","9.17"],"something":["0.17","9.17"],"dosomething":["0.17","9.17"],"有些属性是全大写的":["1.0","10.0"],"app":["1.1","4.4","4.5","4.6","4.22","4.36","4.37","4.39","4.40","10.1","13.5","13.6","13.10","13.11","13.13","13.15","13.16","13.17","13.22","13.24","13.36","13.37","13.40","23.4","27.5","27.6","27.10","27.14","27.25","27.33","27.36","27.37","27.38","27.39","33.4","38.5","38.6","38.7","38.9","38.10","38.13","38.14","38.15","38.16","38.17","38.19","38.21","38.22","38.23","38.24","38.26","38.28","38.36","38.37","38.38","38.39","38.42","38.45","38.46","38.48","38.49"],"url":["1.1","4.4","4.5","4.6","4.15","4.22","4.36","4.37","4.38","4.39","4.40","10.1","13.5","13.6","13.13","13.15","13.16","13.17","13.19","13.22","13.23","13.24","13.36","13.37","13.40","18.5","23.4","27.3","27.6","27.25","27.36","27.50","28.5","33.4","38.3","38.5","38.6","38.9","38.10","38.14","38.15","38.16","38.17","38.18","38.22","38.25","38.26","38.36","38.39","38.46"],"assets":["1.1","2.1","2.3","2.4","2.8","2.9","2.10","2.11","2.15","4.1","4.4","4.5","4.6","4.15","4.22","4.36","4.37","4.38","4.39","4.40","10.1","11.1","11.3","11.4","11.8","11.9","11.10","11.11","11.15","13.1","13.5","13.6","13.7","13.9","13.10","13.11","13.13","13.15","13.16","13.17","13.19","13.22","13.23","13.24","13.26","18.5","23.4","27.6","27.25","27.33","27.36","27.37","27.50","28.5","33.4","38.5","38.6","38.8","38.18","38.25","38.36","38.37","38.38","38.39"],"全部工具函数请参考以下地址":["1.6","10.6"],"js":["1.11","10.11","13.4","13.39","26.9","27.22","27.27","27.36","27.38","27.42","27.43","27.48","37.9"],"emit":["2.0","11.0"],"focus":["2.0","11.0"],"移除事件":["2.0","11.0"],"sample":["2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.13","2.14","2.15","2.16","2.19","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","4.1","4.5","4.6","4.7","4.9","4.15","4.22","4.23","4.35","4.36","4.37","4.38","4.39","8.1","11.1","11.3","11.4","11.5","11.8","11.9","11.10","11.11","11.13","11.14","11.15","11.16","11.19","11.26","11.31","11.32","11.33","11.34","11.35","11.36","11.37","13.1","13.3","13.5","13.6","13.7","13.8","13.9","13.10","13.11","13.12","13.13","13.16","13.17","13.19","13.23","13.24","13.26","13.27","13.33","13.34","13.35","17.1","18.5","23.4","27.25","27.33","27.36","27.37","27.50","28.5","33.4","38.5","38.6","38.8","38.18","38.25","38.36","38.37","38.38","38.39"],"video":["2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.13","2.14","2.15","2.16","2.19","2.26","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.5","4.6","4.7","4.9","4.13","4.15","4.16","4.17","4.19","4.22","4.23","4.24","4.26","4.35","4.38","8.1","8.5","11.1","11.3","11.4","11.5","11.8","11.9","11.10","11.11","11.13","11.14","11.15","11.16","11.19","11.26","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.19","13.26","13.27","13.28","13.32","13.34","13.35","17.1","17.5","18.5","27.25","27.33","27.37","27.50","28.5","34.6","38.8","38.18","38.25","38.33","38.36","38.37","38.38","38.50"],"t":["2.7","11.7"],"setting":["2.17","2.20","2.27","8.1","8.5","11.17","11.20","11.27","17.1","17.5","34.13"],"srt":["2.27","2.28","2.29","11.27","11.28","11.29"],"并调用":["2.43","11.43"],"但数据意外未出现":["2.55","11.55"],"show":["3.0","5.2","5.3","5.4","12.0","14.2","14.3","14.4","19.0","20.0","21.0","27.29","27.31","29.0","30.0","31.0"],"block":["3.0","12.0"],"hide":["3.0","12.0"],"controls":["3.0","4.35","12.0","13.35","34.8"],"tooltip":["3.0","6.1","8.6","12.0","15.1","17.6","38.32"],"一级属性":["4.0"],"muted":["4.2","4.3","4.23","13.2","13.3","22.4","32.4","38.11"],"seek":["4.10","4.11"],"right":["4.18","4.20","7.3","7.4","16.3","16.4","23.5","33.5","34.8","38.29"],"switch":["4.18","23.5","33.5"],"click":["4.18","4.20","5.1","7.1","7.2","7.3","13.38","14.1","16.1","16.2","16.3","27.29","27.32","34.8","34.9","34.12","38.29","38.31","38.32"],"function":["4.18","4.20","5.1","7.1","7.2","7.3","14.1","16.1","16.2","16.3","18.6","27.29","27.32","34.7","34.9","34.12","38.29","38.31"],"object":["5.1","7.1","14.1","16.1"],"组件样式对象":["5.1","7.1","14.1","16.1"],"false":["5.2","5.3","5.4","8.4","14.2","14.3","14.4","17.4","22.4","32.4"],"update":["5.5","7.5","8.8","14.5","16.5","17.8"],"组件挂载后触发":["6.1","15.1"],"组件的提示文本":["6.1","15.1"],"yellow":["6.2","15.2"],"02":["6.2","15.2"],"onselect":["6.2","15.2"],"item":["6.2","8.4","15.2","17.4"],"dom":["6.2","15.2"],"args":["6.3","7.2","7.3","15.3","16.2","16.3","27.29","27.32","38.29","38.31"],"mounted":["6.3","7.2","7.3","15.3","16.2","16.3"],"style":["6.4","15.4","18.5","27.32","28.4","28.5","34.11","38.32"],"color":["6.4","15.4","27.32","38.32"],"red":["6.4","15.4"],"control":["6.5","15.5"],"by":["6.5","7.5","8.8","15.5","16.5","17.8","27.11"],"absolute":["7.4","16.4"],"top":["7.4","16.4"],"50px":["7.4","16.4"],"the":["7.5","8.8","13.18","16.5","17.8","27.11"],"quality":["8.2","17.2"],"1080p":["8.2","17.2"],"src":["8.4","17.4","21.0","27.40","31.0","38.40"],"state":["8.4","17.4","27.40","38.40"],"svg":["8.4","8.7","17.4","17.7"],"settings":["8.5","17.5"],"slider":["8.5","17.5"],"5x":["8.5","8.6","17.5","17.6"],"img":["8.5","8.6","17.5","17.6","27.40"],"width":["8.5","8.6","17.5","17.6","18.5","27.1","38.1"],"icon":["8.6","17.6"],"range":["8.7","17.7"],"which":["13.0"],"var":["13.4","13.39","19.0","27.7","27.9","27.13","27.15","27.16","27.17","27.19","27.21","27.22","27.23","27.24","27.26","27.27","27.35","27.36","27.38","27.42","27.43","27.45","27.46","27.48","27.49","29.0","38.12","38.35","38.43"],"art":["13.4","13.10","13.36","13.37","13.39","27.7","27.9","27.13","27.15","27.16","27.17","27.19","27.21","27.22","27.23","27.24","27.26","27.28","27.36","27.38","27.39","27.43","27.45","27.46","27.48","27.49","38.12","38.27","38.38","38.43"],"new":["13.4","13.36","13.37","13.39","19.0","27.3","27.5","27.7","27.9","27.13","27.14","27.15","27.16","27.17","27.19","27.21","27.22","27.23","27.24","27.26","27.28","27.35","27.36","27.38","27.39","27.43","27.45","27.46","27.48","27.49","29.0","38.7","38.12","38.35","38.38","38.42","38.43"],"artplayer":["13.4","13.10","13.11","13.13","13.36","13.37","13.39","19.0","27.3","27.5","27.6","27.7","27.9","27.10","27.13","27.14","27.15","27.16","27.17","27.19","27.21","27.22","27.23","27.24","27.26","27.28","27.35","27.36","27.37","27.38","27.39","27.45","27.46","27.49","29.0","38.7","38.12","38.13","38.19","38.21","38.23","38.24","38.28","38.35","38.38","38.42","38.43","38.45","38.48","38.49"],"container":["13.4","13.10","13.11","13.13","13.15","13.22","13.36","13.37","13.40","27.5","27.6","27.7","27.9","27.10","27.13","27.14","27.15","27.16","27.17","27.19","27.21","27.23","27.26","27.27","27.28","27.36","27.37","27.38","27.39","27.46","27.49","38.3","38.7","38.9","38.10","38.13","38.14","38.15","38.16","38.17","38.19","38.21","38.22","38.23","38.24","38.26","38.28","38.38","38.42","38.45","38.46","38.48","38.49"],"no":["13.14"],"such":["13.14"],"as":["13.14"],"live":["13.14"],"or":["13.14","27.1"],"due":["13.18","13.20","27.18"],"to":["13.18","13.20","13.29","18.0"],"browser":["13.18","13.20","27.18"],"security":["13.18","13.20","27.18"],"mechanism":["13.18","13.20"],"page":["13.18","27.11"],"must":["13.18"],"have":["13.18"],"tip":["13.20","13.29","13.38","18.4","27.2","27.4","27.18","27.20"],"before":["13.20"],"jpg":["13.21"],"json":["13.25"],"stringify":["13.25"],"delete":["13.29"],"looping":["13.29"],"just":["13.29"],"useful":["13.30"],"but":["13.30","27.47"],"if":["13.38","27.47","34.9","34.10"],"you":["13.38"],"subject":["18.0"],"pnpm":["18.1","22.2","23.2","24.2","25.2","26.3","28.1","32.2","33.2","34.2","35.2","36.2","37.3"],"com":["18.2","28.2"],"player":["18.3","27.41"],"depends":["18.3"],"so":["18.3"],"modifying":["18.4"],"https":["18.5","28.5"],"org":["18.5","28.5"],"600px":["18.5"],"height":["18.5","27.1","38.1"],"param":["18.6"],"getinstance":["18.6"],"else":["19.0","20.0","29.0","30.0"],"notice":["19.0","20.0","21.0","29.0","30.0","31.0"],"unsupported":["19.0","20.0","21.0","29.0","30.0","31.0"],"playback":["19.0","20.0","21.0","29.0","30.0","31.0"],"format":["19.0","20.0","21.0","29.0","30.0","31.0"],"mpd":["19.0","29.0"],"application":["21.0","31.0"],"vnd":["21.0","31.0"],"apple":["21.0","31.0"],"mpegurl":["21.0","31.0"],"m3u8":["21.0","31.0"],"广告总时长":["22.4","32.4"],"totalduration":["22.4","32.4"],"视频广告是否默认静音":["22.4","32.4"],"多语言支持":["22.4","32.4"],"i18n":["22.4","32.4"],"close":["22.4","32.4"],"关闭广告":["22.4","32.4"],"countdown":["22.4","32.4"],"s秒":["22.4","32.4"],"button":["23.5","33.5"],"ui":["23.5","33.5"],"播放器的功能":["26.1","37.1"],"keyword":["26.7","37.7"],"currenttime":["26.7","37.7"],"await":["26.7","37.7"],"event":["26.8","34.9","37.8"],"artplayerpluginiframe":["26.11","37.11"],"type":["26.12","37.12"],"400px":["27.1","38.1"],"300px":["27.1","38.1"],"use":["27.1"],"three":["27.2"],"file":["27.2"],"formats":["27.2"],"are":["27.2"],"supported":["27.2"],"size":["27.8"],"last":["27.8"],"and":["27.8"],"enter":["27.11"],"css":["27.12"],"div":["27.12","28.3"],"classname":["27.12"],"run":["27.12"],"code":["27.12","27.42"],"policy":["27.18"],"space":["27.20"],"toggle":["27.20"],"play":["27.20"],"pause":["27.20"],"these":["27.20"],"document":["27.27"],"queryselector":["27.27"],"setting02":["27.30","38.30"],"green":["27.32","38.32"],"one":["27.34","38.34"],"more":["27.34","38.34"],"chance":["27.34","38.34"],"ploading":["27.40","38.40"],"gif":["27.40","38.40"],"identification":["27.41"],"can":["27.41"],"only":["27.41"],"resolve":["27.41"],"this":["27.41"],"cache":["27.47"],"progress":["27.47"],"of":["27.47"],"class":["28.3"],"属性":["28.6"],"export":["28.6"],"输入框最小宽度":["34.4"],"填":["34.4"],"则为无限制":["34.4"],"maxwidth":["34.4"],"输入框最大宽度":["34.4"],"infinity":["34.4"],"是否显示描边":["34.5"],"mode":["34.5"],"弹幕模式":["34.5"],"0表示滚动":["34.5"],"1静止":["34.5"],"plugins":["34.6","34.13","34.14"],"artplayerplugindanmuku":["34.6","34.13","34.14"],"弹幕":["34.6"],"resovle":["34.7"],"xml":["34.8"],"隐藏弹幕":["34.8"],"prompt":["34.10"],"请输入弹幕文本":["34.10"],"弹幕测试文本":["34.10"],"trim":["34.10"],"min":["34.11"],"max":["34.11"],"step":["34.11"],"value":["34.11"],"display":["34.11"],"flex":["34.11"],"alignitems":["34.11"],"stop":["34.15"],"弹幕停止":["34.15"],"start":["34.15"],"或者使用":["38.1"],"aspect":["38.1"],"热键":["38.20"],"描述":["38.20"],"增加音量":["38.20"],"降低音量":["38.20"],"innerhtml":["38.27"],"opacity":["38.29"],"sd":["38.33"],"ua":["38.36"],"后缀的识别":["38.41"],"播放器只能解析这种后缀":["38.41"],"因为播放器默认使用":["38.47"]},{"0":["2.7","11.7","18.5","28.5"],"1":["34.7"],"2":["4.27","34.5"],"4":["27.12"],"5":["4.7","4.8","4.13","13.7","38.8"],"8":["2.0","11.0"],"9":["4.28","27.1"],"10":["4.11","13.10","13.11","27.37"],"16":["4.28","13.28","27.1","34.10","38.1"],"100":["26.5","27.37","37.5","38.37"],"111":["34.7"],"120":["27.34"],"180":["27.34","38.34"],"222":["34.7"],"240":["38.34"],"333":["34.5"],"360":["8.2","17.2"],"720":["8.2","17.2"],"1000":["0.9","0.10","0.11","0.16","9.9","9.10","9.11","9.16","38.2"],"1080":["8.2","17.2"],"5000":["0.14","9.14"],"比较少用":["0.0","9.0"],"warning":["0.1","0.6","0.7","0.8","0.9","0.10","0.11","4.14","4.18","4.20","4.25","4.30","4.38","9.1","9.6","9.7","9.8","9.9","9.10","9.11","13.25","27.29","27.30","27.31","27.32","27.36","27.40","27.50","28.3","38.2","38.4","38.8","38.18","38.20","38.31","38.32","38.40"],"提示":["0.1","4.14","4.18","4.20","4.29","4.30","9.1","28.3","38.2","38.8","38.11","38.18"],"假如直接修改这个":["0.1","9.1"],"当使用":["0.2","9.2"],"访问播放器时":["0.2","9.2"],"会返回":["0.2","9.2"],"元素都是以":["0.3","9.3"],"开头命名的":["0.3","9.3"],"这是所有":["0.3","9.3"],"元素的定义":["0.3","9.3"],"mouseleave":["0.4","9.4"],"poster":["0.4","9.4"],"jpg":["0.4","9.4"],"then":["0.4","9.4"],"img":["0.4","9.4"],"loading":["0.6","9.6"],"这是所有图标的定义":["0.6","9.6"],"types":["0.6","1.6","9.6","10.6","27.50","38.50"],"使用":["0.7","9.7"],"只能更新实例化之后的":["0.7","9.7"],"to":["0.8","9.8","27.2","27.30","27.31","27.32"],"play":["0.8","3.0","4.2","9.8","12.0","13.2","27.2"],"如果想马上隐藏":["0.8","9.8"],"false":["0.9","0.10","0.11","0.15","0.16","9.9","9.10","9.11","9.15","9.16","27.29","27.31","38.29","38.31"],"settimeout":["0.10","0.11","0.13","0.14","0.15","0.16","4.2","4.3","4.7","4.11","4.19","5.4","6.4","7.4","8.7","9.10","9.11","9.13","9.14","9.15","9.16","13.2","13.7","13.10","13.11","14.4","15.4","16.4","17.7"],"srt":["0.12","9.12"],"true":["0.13","2.19","4.1","4.12","4.23","4.31","5.3","9.13","11.19","13.1","13.23","13.31","14.3","23.4","27.25","27.33","33.4","38.18","38.25"],"on":["0.17","2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.13","2.14","2.15","2.16","2.17","2.19","2.20","2.21","2.22","2.24","2.25","2.26","2.27","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","4.1","4.2","4.3","4.4","4.5","4.6","4.15","4.22","4.23","4.36","4.37","7.4","8.7","9.17","11.1","11.3","11.4","11.5","11.8","11.9","11.10","11.11","11.13","11.14","11.15","11.16","11.17","11.19","11.20","11.21","11.22","11.24","11.25","11.26","11.27","11.28","11.29","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","13.1","13.2","13.3","13.5","13.6","13.9","13.10","13.11","13.13","13.15","13.16","13.17","13.19","13.22","13.23","13.24","13.36","13.37","16.4","17.7","22.4","32.4","34.13","34.14","38.4"],"说明这些属性是不稳定的":["1.0","10.0"],"可能会在将来被更改":["1.0","10.0"],"sample":["1.1","4.4","4.40","10.1","13.4","13.15","13.22","13.36","13.37","13.39","13.40","20.0","27.5","27.6","27.7","27.9","27.10","27.13","27.14","27.15","27.16","27.17","27.19","27.21","27.22","27.23","27.24","27.26","27.28","27.35","27.38","27.39","27.42","27.45","27.46","27.49","30.0","38.7","38.9","38.10","38.12","38.13","38.14","38.15","38.16","38.17","38.19","38.21","38.22","38.23","38.24","38.26","38.28","38.35","38.42","38.43","38.45","38.46","38.48","38.49"],"video":["1.1","4.4","4.39","10.1","13.4","13.22","13.39","23.4","27.10","27.14","27.28","27.36","33.4","38.5","38.6","38.7","38.9","38.10","38.13","38.14","38.15","38.16","38.17","38.19","38.21","38.22","38.23","38.24","38.26","38.28","38.39","38.45","38.46","38.48","38.49"],"mp4":["1.1","4.4","4.5","4.6","4.15","4.22","4.36","4.37","4.39","4.40","10.1","13.4","13.5","13.6","13.10","13.13","13.15","13.22","13.36","13.37","13.39","13.40","23.4","27.5","27.6","27.15","27.16","27.17","27.25","27.36","27.38","27.39","33.4","38.5","38.6","38.9","38.10","38.14","38.15","38.16","38.17","38.18","38.22","38.26","38.38","38.39","38.46"],"artplayer":["1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","10.2","10.3","10.4","10.5","10.7","10.8","10.9","10.10","10.11","10.12","20.0","21.0","27.12","27.42","27.43","27.48","30.0","31.0"],"d":["1.6","10.6"],"info":["1.11","4.13","4.24","4.26","4.38","4.39","8.4","10.11","13.8","13.12","13.13","13.21","13.24","13.26","13.27","13.28","13.32","13.33","13.34","17.4","18.5","26.8","28.5","37.8","38.32"],"const":["2.0","4.16","4.17","8.4","11.0","13.16","13.17","17.4","23.5","33.5","34.11"],"onready":["2.0","11.0"],"console":["2.1","2.3","2.4","2.5","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.31","2.32","2.33","2.34","2.35","2.36","2.37","4.23","4.38","4.39","4.40","8.4","11.1","11.3","11.4","11.5","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.17","11.18","11.20","11.21","11.22","11.23","11.24","11.25","11.26","11.28","11.29","11.31","11.32","11.33","11.34","11.35","11.36","11.37","13.12","13.13","13.21","13.24","13.26","13.27","13.33","13.34","13.40","17.4","18.5","22.4","26.8","28.5","32.4","34.14","37.8","38.32"],"event":["2.5","2.14","4.38","8.4","11.5","11.14","17.4"],"reconnecttime":["2.12","11.12"],"state":["2.13","2.16","2.21","2.22","2.23","2.24","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","8.5","8.6","11.13","11.16","11.21","11.22","11.23","11.24","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38","17.5","17.6"],"height":["2.18","11.18","28.5"],"datauri":["2.25","11.25"],"currenttime":["2.26","11.26","26.12","37.12"],"offset":["2.27","11.27"],"text":["2.28","11.28","34.7"],"ass":["2.30","11.30"],"load":["2.43","11.43"],"方法重新加载它":["2.43","11.43"],"click":["3.0","4.35","4.38","12.0","13.35","22.4","23.5","32.4","33.5"],"marginright":["3.0","12.0"],"比较常用":["4.0"],"muted":["4.1","13.1","13.23"],"ready":["4.2","4.3","4.5","4.6","4.7","4.9","4.15","4.19","4.22","4.23","5.4","6.4","7.4","8.7","13.2","13.3","13.5","13.6","13.7","13.9","13.10","13.11","13.13","13.16","13.17","13.19","13.23","13.24","14.4","15.4","16.4","17.7","34.14"],"seek":["4.7","13.7","13.10","13.11"],"t":["4.10","4.21"],"有的视频是没有时长的":["4.14"],"async":["4.16","4.17","13.16","13.17"],"await":["4.16","4.17","13.16","13.17"],"json":["4.25"],"stringify":["4.25"],"删除区间循环播放":["4.29"],"只需要设置":["4.29"],"为":["4.29"],"即可":["4.29"],"resize":["4.30","34.13"],"playsinline":["4.31","13.31","38.39"],"m3u8":["4.33","27.2","38.42"],"000":["4.34"],"right":["4.35","6.1","13.35","15.1"],"html":["4.35","13.35","18.1","28.1"],"组件点击事件":["5.1","7.1","14.1","16.1"],"mounted":["5.1","7.1","14.1","16.1","27.29","34.11","38.29"],"组件挂载后触发":["5.1","7.1","14.1","16.1"],"get":["5.2","5.3","6.2","6.3","7.2","7.3","14.2","14.3","15.2","15.3","16.2","16.3"],"the":["5.2","5.3","5.4","5.5","6.2","6.3","6.4","7.2","7.3","7.4","8.7","13.14","14.2","14.3","14.4","14.5","15.2","15.3","15.4","16.2","16.3","16.4","17.7","27.20"],"element":["5.2","5.3","6.2","6.3","7.2","7.3","14.2","14.3","15.2","15.3","16.2","16.3"],"of":["5.2","5.3","6.2","6.3","7.2","7.3","14.2","14.3","15.2","15.3","16.2","16.3","27.40"],"by":["5.2","5.3","5.4","5.5","6.2","6.4","7.4","14.2","14.3","14.4","14.5","15.2","15.4","16.4","27.2"],"delete":["5.4","6.4","7.4","8.7","14.4","15.4","16.4","17.7"],"left":["6.1","15.1"],"和":["6.1","15.1","34.6"],"控制控制器出现的左右位置":["6.1","15.1"],"selector":["6.1","15.1"],"array":["6.1","15.1"],"return":["6.2","15.2","18.6","28.6"],"control":["6.2","6.3","6.4","15.2","15.3","15.4"],"200px":["7.5","16.5"],"720p":["8.2","17.2"],"360p":["8.2","17.2"],"nextstate":["8.4","17.4"],"heigth":["8.5","8.6","17.5","17.6"],"src":["8.5","8.6","17.5","17.6"],"svg":["8.5","8.6","17.5","17.6"],"show":["8.7","17.7","34.9","38.29","38.31"],"pip":["8.8","17.8"],"mode":["8.8","17.8"],"close":["8.8","17.8"],"is":["13.0","22.4","27.47","32.4"],"more":["13.0","27.11"],"commonly":["13.0"],"app":["13.4","13.39","19.0","20.0","21.0","26.5","26.13","27.3","27.7","27.9","27.12","27.13","27.15","27.16","27.17","27.19","27.21","27.22","27.23","27.24","27.26","27.27","27.28","27.35","27.42","27.43","27.45","27.46","27.48","27.49","29.0","30.0","31.0","37.5","37.13","38.3","38.12","38.35","38.43"],"url":["13.4","13.39","27.5","27.7","27.9","27.10","27.13","27.14","27.15","27.16","27.17","27.19","27.21","27.22","27.23","27.24","27.26","27.28","27.35","27.39","27.43","27.45","27.46","27.48","27.49","38.7","38.12","38.13","38.19","38.21","38.23","38.24","38.27","38.28","38.35","38.43","38.45","38.48","38.49"],"assets":["13.4","13.36","13.37","13.39","13.40","20.0","27.5","27.7","27.9","27.10","27.13","27.14","27.15","27.16","27.17","27.19","27.21","27.22","27.23","27.24","27.26","27.28","27.35","27.38","27.39","27.42","27.43","27.45","27.46","27.48","27.49","30.0","38.3","38.7","38.9","38.10","38.12","38.13","38.14","38.15","38.16","38.17","38.19","38.21","38.22","38.23","38.24","38.26","38.27","38.28","38.35","38.42","38.43","38.45","38.46","38.48","38.49"],"that":["13.14"],"not":["13.14","13.30"],"been":["13.14"],"decoded":["13.14"],"obtained":["13.14"],"interaction":["13.18","13.20"],"before":["13.18"],"triggering":["13.18","13.20"],"for":["13.18","13.20","27.11"],"page":["13.20"],"must":["13.20","18.3","27.11"],"have":["13.20","18.3"],"tip":["13.25","27.36"],"dimension":["13.25"],"option":["13.29"],"aer":["13.29"],"two":["13.29"],"does":["13.30"],"know":["13.30"],"specific":["13.30"],"position":["13.35"],"need":["13.38","27.2","27.47"],"some":["13.38"],"events":["13.38"],"only":["13.38","27.20"],"exist":["13.38"],"in":["13.38","18.4","27.4"],"life":["13.38"],"cycle":["13.38"],"container":["13.39","19.0","20.0","21.0","27.3","27.22","27.24","27.35","27.42","27.43","27.45","27.48","29.0","30.0","31.0","38.35","38.43"],"chinese":["18.0"],"your":["18.3","27.6","38.6"],"a":["18.3"],"following":["18.3","27.31","27.32"],"links":["18.3"],"directly":["18.4"],"will":["18.4","27.20"],"400px":["18.5","28.5"],"margin":["18.5","28.5"],"60px":["18.5","28.5"],"auto":["18.5","28.5"],"properties":["18.6"],"export":["18.6"],"default":["18.6","28.6"],"data":["18.6","26.12","28.6","37.12"],"akamaized":["19.0","29.0"],"net":["19.0","29.0"],"akamai":["19.0","29.0"],"bbb":["19.0","29.0"],"30fps":["19.0","29.0"],"var":["20.0","21.0","27.12","30.0","31.0"],"new":["20.0","27.12","27.27","27.42","30.0","38.27"],"test":["21.0","27.36","31.0","38.36"],"streams":["21.0","31.0"],"mux":["21.0","31.0"],"x36xhzz":["21.0","31.0"],"detail":["22.4","32.4"],"查看详情":["22.4","32.4"],"canbeclosed":["22.4","32.4"],"s秒后可关闭广告":["22.4","32.4"],"ad":["22.4","32.4"],"clicked":["22.4","32.4"],"fullscreen":["23.4","33.4"],"fullscreenweb":["23.4","33.4"],"function":["23.5","33.5","34.8","34.11","38.32"],"plugins":["23.5","33.5"],"artplayerplugincontrol":["23.5","33.5"],"或者获取":["26.1","37.1"],"div":["26.5","26.13","37.5","37.13"],"class":["26.5","26.13","37.5","37.13"],"style":["26.5","37.5"],"width":["26.5","28.5","37.5"],"or":["26.7","27.2","37.7"],"resolve":["26.7","37.7"],"method":["26.7","37.7"],"currenttime2":["26.7","37.7"],"里":["26.10","37.10"],"art":["26.12","27.12","27.27","37.12"],"aspect":["27.1"],"ratio":["27.1","38.1"],"ogg":["27.2","38.2"],"and":["27.2","27.18"],"webm":["27.2","38.2"],"if":["27.2","27.4","27.18"],"callback":["27.4"],"instance":["27.4"],"but":["27.4"],"read":["27.8"],"value":["27.8"],"at":["27.8"],"be":["27.11"],"js":["27.12"],"source":["27.18"],"address":["27.18"],"website":["27.18"],"are":["27.18"],"take":["27.20"],"effect":["27.20"],"after":["27.20"],"player":["27.20"],"gets":["27.20"],"innerhtml":["27.27"],"please":["27.29","27.30","27.31","27.32"],"refer":["27.29","27.30","27.31","27.32"],"sd":["27.33"],"480p":["27.33","38.33"],"谁でもいいはずなのに":["27.34","38.34"],"夏の想い出がまわる":["27.34","38.34"],"ua":["27.36"],"iphone":["27.36","38.36"],"gi":["27.36","38.36"],"png":["27.37","27.40","38.37","38.40"],"definition":["27.40"],"however":["27.41"],"cannot":["27.41"],"resolved":["27.41"],"zh":["27.44","38.44"],"cn":["27.44","38.44"],"tw":["27.44","38.44"],"same":["27.47"],"different":["27.47"],"you":["27.47"],"definitions":["27.50"],"播放器的尺寸依赖于容器":["28.3"],"的尺寸":["28.3"],"所以你的容器":["28.3"],"非响应式":["28.4"],"在":["28.4"],"600px":["28.5"],"则为":["34.4"],"宽度":["34.4"],"theme":["34.4"],"dark":["34.4"],"输入框自定义挂载时的主题色":["34.4"],"默认为":["34.4"],"可以选填亮色":["34.4"],"light":["34.4"],"beforeemit":["34.4"],"trim":["34.4"],"red":["34.5"],"文件":["34.6"],"bilibili":["34.6"],"网站的弹幕格式一致":["34.6"],"time":["34.7"],"target":["34.9"],"innertext":["34.9"],"else":["34.9"],"color":["34.10"],"math":["34.10"],"floor":["34.10"],"random":["34.10"],"0xffffff":["34.10"],"tostring":["34.10"],"center":["34.11"],"setting":["34.11"],"queryselector":["34.11"],"切换弹幕":["34.12"],"config":["34.12"],"xml":["34.13","34.14"],"弹幕开始":["34.15"],"hide":["34.15"],"弹幕隐藏":["34.15"],"默认支持三种视频文件格式":["38.2"],"播放器会缓存最后一次音量的大小":["38.8"],"假如希望默认进入页面就能自动播放视频":["38.11"],"必需为":["38.11"],"视频快进":["38.20"],"视频快退":["38.20"],"space":["38.20"],"切换播放":["38.20"],"暂停":["38.20"],"subtitle":["38.25"],"组件配置":["38.31"],"args":["38.32"],"hd":["38.33"],"webkit":["38.39"],"全部图标的定义":["38.40"],"但无法解析这种后缀":["38.41"],"作为":["38.47"],"key":["38.47"],"来缓存播放进度的":["38.47"],"但假如你的同一个视频的":["38.47"],"写法参考":["38.50"]},{"0":["4.9","4.10","4.11","4.14","4.21","13.9","13.10","13.11","13.14","13.21"],"1":["8.6","17.6"],"2":["4.7","13.7","13.27","34.7"],"3":["34.5","34.7"],"5":["4.5","4.6","8.6","13.5","13.6","13.8","13.13","17.6"],"9":["13.28","38.1"],"10":["8.6","17.6","38.37"],"100":["26.13","37.13"],"240":["27.34"],"300":["27.34","38.34"],"333":["34.7"],"1000":["0.13","0.15","9.13","9.15","26.7","37.7"],"3000":["4.2","4.3","4.7","4.10","4.11","4.19","5.4","5.5","6.4","6.5","7.4","7.5","8.7","8.8","13.2","13.3","13.7","13.10","13.11","13.19","14.4","14.5","15.4","15.5","16.4","16.5","17.7","17.8"],"对象":["0.1","9.1"],"播放器不会马上做出响应":["0.1","9.1"],"false":["0.2","0.13","4.19","8.8","9.2","9.13","13.19","17.8"],"即使用原生的播放器":["0.2","9.2"],"而不是":["0.2","9.2"],"播放器":["0.2","9.2"],"types":["0.3","2.0","9.3","11.0","27.40","27.44","38.40","38.44"],"d":["0.3","0.6","2.0","9.3","9.6","11.0","27.40","27.44","27.50","38.40","38.44","38.50"],"ts":["0.3","0.6","1.6","2.0","9.3","9.6","10.6","11.0","27.40","27.44","27.50","38.40","38.44","38.50"],"warning":["0.4","0.14","0.16","2.0","9.4","9.14","9.16","11.0","18.5","27.1","27.37","27.44","28.5","38.1","38.29","38.30","38.36","38.37","38.44"],"提示":["0.4","0.14","4.25","4.38","9.4","9.14","38.1","38.4","38.20","38.36"],"假如你需要一些":["0.4","4.38","9.4"],"事件只存在于播放器的生命周期上时":["0.4","4.38","9.4"],"强烈建议使用这些函数":["0.4","9.4"],"以避免造成内存泄漏":["0.4","4.38","9.4"],"your":["0.5","9.5"],"假如想在实例化之前更新":["0.7","9.7"],"请使用基础选项的":["0.7","9.7"],"来更新":["0.7","9.7"],"的显示":["0.8","9.8"],"组件配置":["0.9","0.10","0.11","9.9","9.10","9.11","38.29","38.32"],"请参考以下地址":["0.9","0.10","0.11","0.16","9.9","9.10","9.11","9.16","38.29","38.30","38.31","38.32"],"component":["0.9","0.10","0.11","0.16","9.9","9.10","9.11","9.16","27.29","27.30","27.31","27.32","38.29","38.30","38.31","38.32"],"color":["0.12","9.12","27.38","38.38"],"red":["0.12","9.12"],"只在播放器获得焦点后":["0.14","9.14","38.20"],"如点击了播放器后":["0.14","9.14","38.20"],"这些快捷键才会生效":["0.14","9.14","38.20"],"true":["0.15","4.22","9.15","13.12","13.22","27.6","27.9","27.10","27.12","27.13","27.14","27.15","27.16","27.17","27.19","27.21","27.23","27.24","27.26","27.27","27.39","27.45","27.46","27.48","27.49","34.10","38.6","38.9","38.10","38.12","38.13","38.14","38.15","38.16","38.17","38.19","38.21","38.23","38.24","38.26","38.27","38.39","38.45","38.46","38.48","38.49"],"设置面板":["0.16","9.16"],"html":["0.16","9.16","22.2","23.2","24.2","25.2","26.3","32.2","33.2","34.2","35.2","36.2","37.3"],"ready":["0.17","2.0","4.1","4.4","9.17","11.0","13.1","13.4","13.15","13.22","19.0","20.0","21.0","29.0","30.0","31.0"],"off":["2.0","11.0"],"全部事件请参考以下地址":["2.0","11.0"],"events":["2.0","11.0"],"info":["2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.18","2.19","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.27","2.28","2.29","2.30","4.16","4.17","4.23","4.36","4.37","4.40","8.5","11.1","11.2","11.3","11.4","11.5","11.6","11.7","11.8","11.9","11.10","11.11","11.12","11.13","11.14","11.15","11.16","11.17","11.18","11.19","11.20","11.21","11.22","11.23","11.24","11.25","11.26","11.27","11.28","11.29","11.30","13.16","13.17","13.23","13.36","13.37","13.39","13.40","17.5","19.0","20.0","21.0","22.4","29.0","30.0","31.0","32.4","34.14"],"console":["2.2","2.6","2.7","2.19","2.27","2.30","2.38","4.16","4.17","4.36","4.37","8.5","11.2","11.6","11.7","11.19","11.27","11.30","11.38","13.16","13.17","13.23","13.36","13.37","13.39","17.5","19.0","20.0","21.0","29.0","30.0","31.0"],"log":["2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","11.31","11.32","11.33","11.34","11.35","11.36","11.37","11.38"],"pause":["3.0","12.0"],"layer":["3.0","12.0"],"png":["3.0","12.0"],"t":["4.9","4.11","13.9","13.10","13.11","13.21","13.29"],"name":["4.10"],"新视频地址":["4.11"],"例如直播中的视频或者没被解码完成的视频":["4.14"],"这个时候获取的时长会是":["4.14"],"由于浏览器安全机制":["4.18","4.20","38.18"],"触发窗口全屏前":["4.18"],"页面必须先存在交互":["4.18","4.20"],"例如用户点击过页面":["4.18","4.20"],"触发画中画前":["4.20"],"尺寸和坐标信息是通过":["4.25"],"getboundingclientrect":["4.25","13.25"],"获取的":["4.25"],"与":["4.29"],"option":["4.29"],"是两个不同的东西":["4.29"],"请勿弄乱":["4.29"],"当你的容器只有宽度":["4.30"],"但不知道具体高度时":["4.30"],"这个属性很有用":["4.30"],"它能自动计算出视频的高度":["4.30"],"但你需要确定设置这个属性的时机":["4.30"],"强烈建议使用该函数":["4.38"],"tooltip":["5.1","7.1","14.1","16.1"],"组件的提示文本":["5.1","7.1","14.1","16.1"],"remove":["5.4","6.4","7.4","8.7","14.4","15.4","16.4","17.7"],"选择列表的对象数组":["6.1","15.1"],"onselect":["6.1","15.1"],"选择列表的元素被点击时触发的函数":["6.1","15.1"],"by":["6.3","7.2","7.3","8.7","15.3","16.2","16.3","17.7","27.36"],"left":["7.5","16.5","27.2"],"switchquality":["8.2","17.2"],"open":["8.4","17.4"],"return":["8.4","8.5","17.4","17.5"],"item":["8.5","17.5"],"event":["8.5","17.5"],"x":["8.5","17.5"],"range":["8.6","17.6"],"switch":["8.8","17.8"],"used":["13.0","27.36"],"settimeout":["13.3","13.19","26.7","37.7"],"on":["13.4","13.18","13.20","27.2"],"at":["13.14","27.41"],"this":["13.14","13.38"],"time":["13.14","13.30","27.41"],"will":["13.14","18.5","27.4"],"be":["13.14"],"example":["13.18","13.20"],"user":["13.18","13.20"],"has":["13.18","13.20"],"clicked":["13.18","13.20"],"are":["13.25"],"obtained":["13.25"],"through":["13.25"],"different":["13.29"],"things":["13.29"],"please":["13.29","27.2","27.11"],"don":["13.29"],"mix":["13.29"],"them":["13.29"],"up":["13.29"],"you":["13.30","27.41"],"need":["13.30"],"determine":["13.30"],"m3u8":["13.33","27.42","38.2"],"000":["13.34"],"we":["13.38"],"strongly":["13.38"],"recommend":["13.38"],"using":["13.38"],"avoid":["13.38"],"memory":["13.38"],"leakage":["13.38"],"install":["18.0"],"script":["18.1","22.2","23.2","24.2","25.2","26.3","28.1","32.2","33.2","34.2","35.2","36.2","37.3"],"can":["18.3"],"see":["18.3"],"more":["18.3"],"examples":["18.3"],"packages":["18.3","28.3"],"template":["18.3","28.3"],"not":["18.4","18.5","27.4","27.36"],"change":["18.4","18.5","34.11"],"the":["18.4","18.5"],"player":["18.4"],"tip":["18.5","27.1","28.3"],"modifying":["18.5"],"directly":["18.5"],"in":["18.5","27.36"],"type":["19.0","21.0","29.0","31.0"],"customtype":["19.0","20.0","21.0","29.0","30.0","31.0"],"skipped":["22.4","32.4"],"skip":["22.4","32.4"],"plugins":["23.4","33.4"],"artplayerplugincontrol":["23.4","33.4"],"播放器的值":["26.1","37.1"],"height":["26.5","26.13","37.5","37.13"],"style":["26.13","37.13"],"width":["26.13","37.13"],"all":["27.1","27.40"],"options":["27.1"],"only":["27.1"],"is":["27.1"],"required":["27.1"],"flv":["27.2","38.2"],"other":["27.2"],"refer":["27.2"],"libraries":["27.2"],"assets":["27.3","27.12","27.27"],"sample":["27.3","27.12","27.27","27.43","27.48","38.3","38.27"],"video":["27.3","27.7","27.9","27.12","27.13","27.19","27.21","27.22","27.23","27.24","27.26","27.27","27.35","27.43","27.45","27.49","38.3","38.12","38.27","38.35","38.43"],"mp4":["27.3","27.7","27.9","27.10","27.12","27.13","27.14","27.19","27.21","27.22","27.23","27.24","27.26","27.27","27.28","27.35","27.43","27.45","27.46","27.48","27.49","38.3","38.7","38.12","38.13","38.19","38.21","38.23","38.24","38.27","38.28","38.35","38.43","38.45","38.48","38.49"],"uses":["27.4"],"arrow":["27.4"],"point":["27.4"],"jpg":["27.5","38.5"],"ffad00":["27.7","38.7"],"next":["27.8"],"initialization":["27.8"],"such":["27.8","27.20"],"as":["27.8","27.20"],"refreshing":["27.8"],"page":["27.8"],"information":["27.11"],"read":["27.11"],"policy":["27.11","38.11"],"changes":["27.11","38.11"],"url":["27.12","27.27"],"cross":["27.18"],"domain":["27.18"],"may":["27.18"],"fail":["27.18"],"focus":["27.20"],"clicking":["27.20"],"srt":["27.25","38.25"],"setting":["27.25","27.32","38.15","38.16","38.17","38.25"],"to":["27.29"],"following":["27.29","27.30"],"address":["27.29","27.30","27.31","27.32"],"for":["27.29","27.30","27.31","27.32"],"hd":["27.33"],"720p":["27.33","38.33"],"こんなとこにあるはずもないのに":["27.34","38.34"],"终わり":["27.34","38.34"],"if":["27.36","27.41"],"filled":["27.36"],"generate":["27.37"],"preview":["27.37"],"online":["27.37"],"tool":["27.37","38.37"],"03a9f4":["27.38","38.38"],"font":["27.38","38.38"],"size":["27.38","38.38"],"30px":["27.38","38.38"],"webkit":["27.39"],"playsinline":["27.39"],"use":["27.41"],"better":["27.41"],"specify":["27.41"],"same":["27.41"],"definitions":["27.44"],"identify":["27.47"],"unique":["27.47"],"必须是有尺寸的":["28.3"],"以下链接可以看到更多的使用例子":["28.3"],"里直接修改":["28.4","28.5"],"是不会改变播放器的":["28.4","28.5"],"非响应式":["28.5"],"在":["28.5"],"发送弹幕前的自定义校验":["34.4"],"通过":["34.4"],"mount":["34.4"],"选项可以自定义输入框挂载的位置":["34.4"],"默认挂载于播放器底部":["34.4"],"仅在当宽度小于最小值时生效":["34.4"],"document":["34.4"],"queryselector":["34.4"],"artplayer":["34.4"],"green":["34.5"],"显示弹幕":["34.8","34.9"],"hide":["34.9"],"border":["34.10"],"addeventlistener":["34.11"],"number":["34.11"],"v2":["34.12"],"show":["34.15"],"弹幕显示":["34.15"],"destroy":["34.15"],"弹幕销毁":["34.15"],"全部选项里":["38.1"],"只有":["38.1"],"是必填的":["38.1"],"如需要播放":["38.2"],"或者":["38.2"],"等其它格式":["38.2"],"请参考左侧的":["38.2"],"第三方库":["38.2"],"回调函数里的":["38.4"],"就是播放器实例":["38.4"],"但回调函数假如使用了箭头函数":["38.4"],"则不会指向播放器实例":["38.4"],"screenshot":["38.6"],"下次初始化时":["38.8"],"如刷新页面":["38.8"],"播放器会读取该缓存值":["38.8"],"更多信息请阅读":["38.11"],"假如视频源地址和网站是跨域的":["38.18"],"可能会出现截图失败":["38.18"],"假如该选项不填":["38.36"],"则默认使用本播放器":["38.36"],"在线生成预览图":["38.37"],"thumbnail":["38.37"],"所以假如你使用了":["38.41"],"最好同时要指明":["38.41"],"function":["38.42"],"写法参考":["38.44"],"是不同的话":["38.47"],"那么你需要使用":["38.47"],"来标识视频的唯一":["38.47"]}]'},e={"0.0":{t:"# 高级属性",p:`这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用
+`,l:"advanced/built-in.html",a:"高级属性"},"0.1":{t:"`option`",p:`播放器的选项
+<div className="run-code">▶ Run Code< ...`,l:"advanced/built-in.html#option",a:"option"},"0.2":{t:"`whitelist`",p:`管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能
+<div className=" ...`,l:"advanced/built-in.html#whitelist",a:"whitelist"},"0.3":{t:"`template`",p:`管理播放器所有的 DOM 元素
+<div className="run-code">▶ Ru ...`,l:"advanced/built-in.html#template",a:"template"},"0.4":{t:"`events`",p:"管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener ...",l:"advanced/built-in.html#events",a:"events"},"0.5":{t:"`storage`",p:`管理播放器的本地存储
+
+name 属性用于设置缓存的 key
+set 方法用于设置缓存
+get 方法用于获取缓存
+del 方 ...`,l:"advanced/built-in.html#storage",a:"storage"},"0.6":{t:"`icons`",p:`管理播放器所有的 svg 图标
+<div className="run-code">▶ Ru ...`,l:"advanced/built-in.html#icons",a:"icons"},"0.7":{t:"`i18n`",p:`管理播放器的 i18n
+
+get 方法用于获取 i18n 的值
+update 方法用于更新 i18n 对象
+
+<div ...`,l:"advanced/built-in.html#i18n",a:"i18n"},"0.8":{t:"`notice`",p:`管理播放器的提示语,只有一个 show 属性用于显示提示语
+<div className="run-code ...`,l:"advanced/built-in.html#notice",a:"notice"},"0.9":{t:"`layers`",p:`管理播放器的层
+
+add 方法用于动态添加层
+show 属性用于设置是否显示全部层
+toggle 属性用于切换是否显示全部层 ...`,l:"advanced/built-in.html#layers",a:"layers"},"0.10":{t:"`controls`",p:`管理播放器的控制器
+
+add 方法用于动态添加控制器
+show 属性用于设置是否显示全部控制器
+toggle 属性用于切换是 ...`,l:"advanced/built-in.html#controls",a:"controls"},"0.11":{t:"`contextmenu`",p:`管理播放器的右键菜单
+
+add 方法用于动态添加菜单
+show 属性用于设置是否显示全部菜单
+toggle 属性用于切换是否 ...`,l:"advanced/built-in.html#contextmenu",a:"contextmenu"},"0.12":{t:"`subtitle`",p:`管理播放器的字幕功能
+
+url 属性设置和返回当前字幕地址
+style 方法设置当前字幕的样式
+switch 方法设置当前字 ...`,l:"advanced/built-in.html#subtitle",a:"subtitle"},"0.13":{t:"`loading`",p:`管理播放器的加载层
+
+show 属性用于设置是否显示加载层
+toggle 属性用于切换是否显示加载层
+
+<div cl ...`,l:"advanced/built-in.html#loading",a:"loading"},"0.14":{t:"`hotkey`",p:`管理播放器的快捷键功能
+
+add 方法用于添加快捷键
+remove 方法用于删除快捷键
+
+<div className ...`,l:"advanced/built-in.html#hotkey",a:"hotkey"},"0.15":{t:"`mask`",p:`管理播放器的遮罩层
+
+show 属性用于设置是否显示遮罩层
+toggle 属性用于切换是否显示遮罩层
+
+<div cl ...`,l:"advanced/built-in.html#mask",a:"mask"},"0.16":{t:"`setting`",p:`管理播放器的设置面板
+
+add 方法用于动态添加设置项
+show 属性用于设置是否显示全部设置项
+toggle 属性用于切换 ...`,l:"advanced/built-in.html#setting",a:"setting"},"0.17":{t:"`plugins`",p:`管理播放器的插件功能,只有一个方法 add 用于动态添加插件
+<div className="run-cod ...`,l:"advanced/built-in.html#plugins",a:"plugins"},"1.0":{t:"# 静态属性",p:`这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用
+:::warning 提示
+有些属性是全大写的,说明这些属 ...`,l:"advanced/class.html",a:"静态属性"},"1.1":{t:"`instances`",p:`返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性
+<div className=" ...`,l:"advanced/class.html#instances",a:"instances"},"1.2":{t:"`version`",p:`返回播放器的版本信息
+<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#version",a:"version"},"1.3":{t:"`env`",p:`返回播放器的环境变量
+<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#env",a:"env"},"1.4":{t:"`build`",p:`返回播放器的打包时间
+<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#build",a:"build"},"1.5":{t:"`config`",p:`返回视频的默认配置
+<div className="run-code">▶ Run Code ...`,l:"advanced/class.html#config",a:"config"},"1.6":{t:"`utils`",p:`返回播放器的工具函数集合
+<div className="run-code">▶ Run C ...`,l:"advanced/class.html#utils",a:"utils"},"1.7":{t:"`scheme`",p:`返回播放器选项的校验方案
+<div className="run-code">▶ Run C ...`,l:"advanced/class.html#scheme",a:"scheme"},"1.8":{t:"`Emitter`",p:`返回事件分发器的构造函数
+<div className="run-code">▶ Run C ...`,l:"advanced/class.html#emitter",a:"emitter"},"1.9":{t:"`validator`",p:`返回选项的校验函数
+<div className="run-code">▶ Run Code ...`,l:"advanced/class.html#validator",a:"validator"},"1.10":{t:"`kindOf`",p:`返回类型检测的函数工具
+<div className="run-code">▶ Run Co ...`,l:"advanced/class.html#kindof",a:"kindof"},"1.11":{t:"`html`",p:`返回播放器所需的 html 字符串
+<div className="run-code">▶  ...`,l:"advanced/class.html#html",a:"html"},"1.12":{t:"`option`",p:`返回播放器的默认选项
+<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#option",a:"option"},"1.13":{t:"`DEBUG`",p:"",l:"advanced/class.html#debug",a:"debug"},"1.14":{t:"`CONTEXTMENU`",p:"",l:"advanced/class.html#contextmenu",a:"contextmenu"},"1.15":{t:"`NOTICE_TIME`",p:"",l:"advanced/class.html#notice-time",a:"notice-time"},"1.16":{t:"`SETTING_WIDTH`",p:"",l:"advanced/class.html#setting-width",a:"setting-width"},"1.17":{t:"`SETTING_ITEM_WIDTH`",p:"",l:"advanced/class.html#setting-item-width",a:"setting-item-width"},"1.18":{t:"`SETTING_ITEM_HEIGHT`",p:"",l:"advanced/class.html#setting-item-height",a:"setting-item-height"},"1.19":{t:"`INDICATOR_SIZE`",p:"",l:"advanced/class.html#indicator-size",a:"indicator-size"},"1.20":{t:"`INDICATOR_SIZE_ICON`",p:"",l:"advanced/class.html#indicator-size-icon",a:"indicator-size-icon"},"1.21":{t:"`INDICATOR_SIZE_MOBILE`",p:"",l:"advanced/class.html#indicator-size-mobile",a:"indicator-size-mobile"},"1.22":{t:"`INDICATOR_SIZE_MOBILE_ICON`",p:"",l:"advanced/class.html#indicator-size-mobile-icon",a:"indicator-size-mobile-icon"},"1.23":{t:"`VOLUME_PANEL_WIDTH`",p:"",l:"advanced/class.html#volume-panel-width",a:"volume-panel-width"},"1.24":{t:"`VOLUME_HANDLE_WIDTH`",p:"",l:"advanced/class.html#volume-handle-width",a:"volume-handle-width"},"1.25":{t:"`RESIZE_TIME`",p:"",l:"advanced/class.html#resize-time",a:"resize-time"},"1.26":{t:"`SCROLL_TIME`",p:"",l:"advanced/class.html#scroll-time",a:"scroll-time"},"1.27":{t:"`SCROLL_GAP`",p:"",l:"advanced/class.html#scroll-gap",a:"scroll-gap"},"1.28":{t:"`AUTO_PLAYBACK_MAX`",p:"",l:"advanced/class.html#auto-playback-max",a:"auto-playback-max"},"1.29":{t:"`AUTO_PLAYBACK_MIN`",p:"",l:"advanced/class.html#auto-playback-min",a:"auto-playback-min"},"1.30":{t:"`AUTO_PLAYBACK_TIMEOUT`",p:"",l:"advanced/class.html#auto-playback-timeout",a:"auto-playback-timeout"},"1.31":{t:"`RECONNECT_TIME_MAX`",p:"",l:"advanced/class.html#reconnect-time-max",a:"reconnect-time-max"},"1.32":{t:"`RECONNECT_SLEEP_TIME`",p:"",l:"advanced/class.html#reconnect-sleep-time",a:"reconnect-sleep-time"},"1.33":{t:"`CONTROL_HIDE_TIME`",p:"",l:"advanced/class.html#control-hide-time",a:"control-hide-time"},"1.34":{t:"`DB_CLICE_TIME`",p:"",l:"advanced/class.html#db-clice-time",a:"db-clice-time"},"1.35":{t:"`MOBILE_AUTO_PLAYBACKRATE`",p:"",l:"advanced/class.html#mobile-auto-playbackrate",a:"mobile-auto-playbackrate"},"1.36":{t:"`MOBILE_AUTO_PLAYBACKRATE_TIME`",p:"",l:"advanced/class.html#mobile-auto-playbackrate-time",a:"mobile-auto-playbackrate-time"},"1.37":{t:"`MOBILE_AUTO_ORIENTATION_TIME`",p:"",l:"advanced/class.html#mobile-auto-orientation-time",a:"mobile-auto-orientation-time"},"1.38":{t:"`INFO_LOOP_TIME`",p:"",l:"advanced/class.html#info-loop-time",a:"info-loop-time"},"1.39":{t:"`FAST_FORWARD_VALUE`",p:"",l:"advanced/class.html#fast-forward-value",a:"fast-forward-value"},"1.40":{t:"`FAST_FORWARD_TIME`",p:"",l:"advanced/class.html#fast-forward-time",a:"fast-forward-time"},"1.41":{t:"`TOUCH_MOVE_RATIO`",p:"",l:"advanced/class.html#touch-move-ratio",a:"touch-move-ratio"},"1.42":{t:"`VOLUME_STEP`",p:"",l:"advanced/class.html#volume-step",a:"volume-step"},"1.43":{t:"`SEEK_STEP`",p:"",l:"advanced/class.html#seek-step",a:"seek-step"},"1.44":{t:"`PROGRESS_HEIGHT`",p:"",l:"advanced/class.html#progress-height",a:"progress-height"},"1.45":{t:"`PLAYBACK_RATE`",p:"",l:"advanced/class.html#playback-rate",a:"playback-rate"},"1.46":{t:"`ASPECT_RATIO`",p:"",l:"advanced/class.html#aspect-ratio",a:"aspect-ratio"},"1.47":{t:"`FLIP`",p:"",l:"advanced/class.html#flip",a:"flip"},"1.48":{t:"`FULLSCREEN_WEB_IN_BODY`",p:"",l:"advanced/class.html#fullscreen-web-in-body",a:"fullscreen-web-in-body"},"2.0":{t:"# 实例事件",p:`播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件
+监听事件:
+<div cl ...`,l:"advanced/event.html",a:"实例事件"},"2.1":{t:"`ready`",p:`当播放器首次可以播放器时触发
+<div className="run-code">▶ Run ...`,l:"advanced/event.html#ready",a:"ready"},"2.2":{t:"`restart`",p:`当播放器切换地址后并可以播放时触发
+<div className="run-code">▶  ...`,l:"advanced/event.html#restart",a:"restart"},"2.3":{t:"`pause`",p:`当播放器暂停时触发
+<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#pause",a:"pause"},"2.4":{t:"`play`",p:`当播放器播放时触发
+<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#play",a:"play"},"2.5":{t:"`hotkey`",p:`当播放器热键被按下时触发
+<div className="run-code">▶ Run C ...`,l:"advanced/event.html#hotkey",a:"hotkey"},"2.6":{t:"`destroy`",p:`当播放器销毁时触发
+<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#destroy",a:"destroy"},"2.7":{t:"`url`",p:`当视频地址变化时触发
+<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#url",a:"url"},"2.8":{t:"`focus`",p:`当播放器获得焦点时触发
+<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#focus",a:"focus"},"2.9":{t:"`blur`",p:`当播放器失去焦点时触发
+<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#blur",a:"blur"},"2.10":{t:"`dblclick`",p:`当播放器被双击时触发
+<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#dblclick",a:"dblclick"},"2.11":{t:"`click`",p:`当播放器被单击时触发
+<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#click",a:"click"},"2.12":{t:"`error`",p:`当播放器加载视频发生错误时触发
+<div className="run-code">▶ Ru ...`,l:"advanced/event.html#error",a:"error"},"2.13":{t:"`hover`",p:`当播放器被鼠标移出或者移入时触发
+<div className="run-code">▶ R ...`,l:"advanced/event.html#hover",a:"hover"},"2.14":{t:"`mousemove`",p:`当播放器被鼠标经过时触发
+<div className="run-code">▶ Run C ...`,l:"advanced/event.html#mousemove",a:"mousemove"},"2.15":{t:"`resize`",p:`当播放器尺寸变化时触发
+<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#resize",a:"resize"},"2.16":{t:"`view`",p:`当播放器出现在视口时触发
+<div className="run-code">▶ Run C ...`,l:"advanced/event.html#view",a:"view"},"2.17":{t:"`aspectRatio`",p:`当播放器长宽比变化时触发
+<div className="run-code">▶ Run C ...`,l:"advanced/event.html#aspectratio",a:"aspectratio"},"2.18":{t:"`autoHeight`",p:`当播放器自动设置高度时触发
+<div className="run-code">▶ Run  ...`,l:"advanced/event.html#autoheight",a:"autoheight"},"2.19":{t:"`autoSize`",p:`当播放器自动设置尺寸时触发
+<div className="run-code">▶ Run  ...`,l:"advanced/event.html#autosize",a:"autosize"},"2.20":{t:"`flip`",p:`当播放器发生翻转时触发
+<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#flip",a:"flip"},"2.21":{t:"`fullscreen`",p:`当播放器发生窗口全屏时触发
+<div className="run-code">▶ Run  ...`,l:"advanced/event.html#fullscreen",a:"fullscreen"},"2.22":{t:"`fullscreenWeb`",p:`当播放器发生网页全屏时触发
+<div className="run-code">▶ Run  ...`,l:"advanced/event.html#fullscreenweb",a:"fullscreenweb"},"2.23":{t:"`mini`",p:`当播放器进入迷你模式时触发
+<div className="run-code">▶ Run  ...`,l:"advanced/event.html#mini",a:"mini"},"2.24":{t:"`pip`",p:`当播放器进入画中画时触发
+<div className="run-code">▶ Run C ...`,l:"advanced/event.html#pip",a:"pip"},"2.25":{t:"`screenshot`",p:`当播放器被截图时触发
+<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#screenshot",a:"screenshot"},"2.26":{t:"`seek`",p:`当播放器发生时间跳转时触发
+<div className="run-code">▶ Run  ...`,l:"advanced/event.html#seek",a:"seek"},"2.27":{t:"`subtitleOffset`",p:`当播放器发生字幕偏移时触发
+<div className="run-code">▶ Run  ...`,l:"advanced/event.html#subtitleoffset",a:"subtitleoffset"},"2.28":{t:"`subtitleUpdate`",p:`当字幕更新时触发
+<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleupdate",a:"subtitleupdate"},"2.29":{t:"`subtitleLoad`",p:`当字幕加载时触发
+<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleload",a:"subtitleload"},"2.30":{t:"`subtitleSwitch`",p:`当字幕切换时触发
+<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleswitch",a:"subtitleswitch"},"2.31":{t:"`info`",p:`当信息面板显示或隐藏时触发
+<div className="run-code">▶ Run  ...`,l:"advanced/event.html#info",a:"info"},"2.32":{t:"`layer`",p:`当自定义层显示或隐藏时触发
+<div className="run-code">▶ Run  ...`,l:"advanced/event.html#layer",a:"layer"},"2.33":{t:"`loading`",p:`当加载器显示或隐藏时触发
+<div className="run-code">▶ Run C ...`,l:"advanced/event.html#loading",a:"loading"},"2.34":{t:"`mask`",p:`当遮罩层显示或隐藏时触发
+<div className="run-code">▶ Run C ...`,l:"advanced/event.html#mask",a:"mask"},"2.35":{t:"`subtitle`",p:`当字幕层显示或隐藏时触发
+<div className="run-code">▶ Run C ...`,l:"advanced/event.html#subtitle",a:"subtitle"},"2.36":{t:"`contextmenu`",p:`当右键菜单显示或隐藏时触发
+<div className="run-code">▶ Run  ...`,l:"advanced/event.html#contextmenu",a:"contextmenu"},"2.37":{t:"`control`",p:`当控制器显示或隐藏时触发
+<div className="run-code">▶ Run C ...`,l:"advanced/event.html#control",a:"control"},"2.38":{t:"`setting`",p:`当设置面板显示或隐藏时触发
+<div className="run-code">▶ Run  ...`,l:"advanced/event.html#setting",a:"setting"},"2.39":{t:"`video:canplay`",p:`浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容
+`,l:"advanced/event.html#video-canplay",a:"video-canplay"},"2.40":{t:"`video:canplaythrough`",p:`浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束
+`,l:"advanced/event.html#video-canplaythrough",a:"video-canplaythrough"},"2.41":{t:"`video:complete`",p:`OfflineAudioContext 渲染完成
+`,l:"advanced/event.html#video-complete",a:"video-complete"},"2.42":{t:"`video:durationchange`",p:`duration 属性的值改变时触发
+`,l:"advanced/event.html#video-durationchange",a:"video-durationchange"},"2.43":{t:"`video:emptied`",p:"媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载 ...",l:"advanced/event.html#video-emptied",a:"video-emptied"},"2.44":{t:"`video:ended`",p:`视频停止播放,因为 media 已经到达结束点
+`,l:"advanced/event.html#video-ended",a:"video-ended"},"2.45":{t:"`video:error`",p:`获取媒体数据时出错,或者资源类型不是受支持的媒体格式
+`,l:"advanced/event.html#video-error",a:"video-error"},"2.46":{t:"`video:loadeddata`",p:`media 中的首帧已经完成加载
+`,l:"advanced/event.html#video-loadeddata",a:"video-loadeddata"},"2.47":{t:"`video:loadedmetadata`",p:`已加载元数据
+`,l:"advanced/event.html#video-loadedmetadata",a:"video-loadedmetadata"},"2.48":{t:"`video:pause`",p:`播放已暂停
+`,l:"advanced/event.html#video-pause",a:"video-pause"},"2.49":{t:"`video:play`",p:`播放已开始
+`,l:"advanced/event.html#video-play",a:"video-play"},"2.50":{t:"`video:playing`",p:`由于缺乏数据而暂停或延迟后,播放准备开始
+`,l:"advanced/event.html#video-playing",a:"video-playing"},"2.51":{t:"`video:progress`",p:`在浏览器加载资源时周期性触发
+`,l:"advanced/event.html#video-progress",a:"video-progress"},"2.52":{t:"`video:ratechange`",p:`播放速率发生变化
+`,l:"advanced/event.html#video-ratechange",a:"video-ratechange"},"2.53":{t:"`video:seeked`",p:`跳帧(seek)操作完成
+`,l:"advanced/event.html#video-seeked",a:"video-seeked"},"2.54":{t:"`video:seeking`",p:`跳帧(seek)操作开始
+`,l:"advanced/event.html#video-seeking",a:"video-seeking"},"2.55":{t:"`video:stalled`",p:`用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现
+`,l:"advanced/event.html#video-stalled",a:"video-stalled"},"2.56":{t:"`video:suspend`",p:`媒体数据加载已暂停
+`,l:"advanced/event.html#video-suspend",a:"video-suspend"},"2.57":{t:"`video:timeupdate`",p:`currentTime 属性指定的时间发生变化
+`,l:"advanced/event.html#video-timeupdate",a:"video-timeupdate"},"2.58":{t:"`video:volumechange`",p:`音量发生变化
+`,l:"advanced/event.html#video-volumechange",a:"video-volumechange"},"2.59":{t:"`video:waiting`",p:`由于暂时缺少数据,播放已停止
+`,l:"advanced/event.html#video-waiting",a:"video-waiting"},"3.0":{t:"# 编写插件",p:`但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事
+可以在实例化的时候加载插件的函数
+<div cla ...`,l:"advanced/plugin.html",a:"编写插件"},"4.0":{t:"# 实例属性",p:`这里的 实例属性 是指挂载在 实例 的 一级属性,比较常用
+`,l:"advanced/property.html",a:"实例属性"},"4.1":{t:"`play`",p:`
+Type: Function
+
+播放视频
+<div className="run-code"&g ...`,l:"advanced/property.html#play",a:"play"},"4.2":{t:"`pause`",p:`
+Type: Function
+
+暂停视频
+<div className="run-code"&g ...`,l:"advanced/property.html#pause",a:"pause"},"4.3":{t:"`toggle`",p:`
+Type: Function
+
+切换视频的播放和暂停
+<div className="run-code&q ...`,l:"advanced/property.html#toggle",a:"toggle"},"4.4":{t:"`destroy`",p:`
+Type: Function
+Parameter: Boolean
+
+销毁播放器,接受一个参数表示是否销毁后同时移除播放器 ...`,l:"advanced/property.html#destroy",a:"destroy"},"4.5":{t:"`seek`",p:`
+Type: Setter
+Parameter: Number
+
+视频时间跳转,单位秒
+<div className= ...`,l:"advanced/property.html#seek",a:"seek"},"4.6":{t:"`forward`",p:`
+Type: Setter
+Parameter: Number
+
+视频时间快进,单位秒
+<div className= ...`,l:"advanced/property.html#forward",a:"forward"},"4.7":{t:"`backward`",p:`
+Type: Setter
+Parameter: Number
+
+视频时间快退,单位秒
+<div className= ...`,l:"advanced/property.html#backward",a:"backward"},"4.8":{t:"`volume`",p:`
+Type: Setter/Getter
+Parameter: Number
+
+设置和获取视频音量,范围在:[0, 1]
+& ...`,l:"advanced/property.html#volume",a:"volume"},"4.9":{t:"`url`",p:`
+Type: Setter/Getter
+Parameter: String
+
+设置和获取视频地址
+<div clas ...`,l:"advanced/property.html#url",a:"url"},"4.10":{t:"`switchUrl`",p:`
+Type: Function
+Parameter: String
+
+设置视频地址,设置时和 url 类似,但会执行一些优化 ...`,l:"advanced/property.html#switchurl",a:"switchurl"},"4.11":{t:"`switchQuality`",p:`
+Type: Function
+Parameter: String
+
+设置视频画质地址,和 switchUrl 类似,但会带 ...`,l:"advanced/property.html#switchquality",a:"switchquality"},"4.12":{t:"`muted`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+设置和获取视频是否静音
+<div c ...`,l:"advanced/property.html#muted",a:"muted"},"4.13":{t:"`currentTime`",p:`
+Type: Setter/Getter
+Parameter: Number
+
+设置和获取视频当前时间,设置时间时和 see ...`,l:"advanced/property.html#currenttime",a:"currenttime"},"4.14":{t:"`duration`",p:`
+Type: Getter
+
+获取视频时长
+<div className="run-code"&g ...`,l:"advanced/property.html#duration",a:"duration"},"4.15":{t:"`screenshot`",p:`
+Type: Function
+
+下载当前视频帧的截图
+<div className="run-code&q ...`,l:"advanced/property.html#screenshot",a:"screenshot"},"4.16":{t:"`getDataURL`",p:`
+Type: Function
+
+获取当前视频帧的截图的base64地址,返回的是一个 Promise
+<div cl ...`,l:"advanced/property.html#getdataurl",a:"getdataurl"},"4.17":{t:"`getBlobUrl`",p:`
+Type: Function
+
+获取当前视频帧的截图的blob地址,返回的是一个 Promise
+<div clas ...`,l:"advanced/property.html#getbloburl",a:"getbloburl"},"4.18":{t:"`fullscreen`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+设置和获取播放器窗口全屏
+<div  ...`,l:"advanced/property.html#fullscreen",a:"fullscreen"},"4.19":{t:"`fullscreenWeb`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+设置和获取播放器网页全屏
+<div  ...`,l:"advanced/property.html#fullscreenweb",a:"fullscreenweb"},"4.20":{t:"`pip`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+设置和获取播放器画中画模式
+<div ...`,l:"advanced/property.html#pip",a:"pip"},"4.21":{t:"`poster`",p:`
+Type: Setter/Getter
+Parameter: String
+
+设置和获取视频海报,只有在视频播放前才能看到 ...`,l:"advanced/property.html#poster",a:"poster"},"4.22":{t:"`mini`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+设置和获取播放器迷你模式
+<div  ...`,l:"advanced/property.html#mini",a:"mini"},"4.23":{t:"`playing`",p:`
+Type: Getter
+Parameter: Boolean
+
+获取视频是否正在播放中
+<div classNam ...`,l:"advanced/property.html#playing",a:"playing"},"4.24":{t:"`autoSize`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+设置视频是否自适应尺寸,设置为 true  ...`,l:"advanced/property.html#autosize",a:"autosize"},"4.25":{t:"`rect`",p:`
+Type: Getter
+
+获取播放器的尺寸和坐标信息
+<div className="run-code& ...`,l:"advanced/property.html#rect",a:"rect"},"4.26":{t:"`flip`",p:`
+Type: Setter/Getter
+Parameter: String
+
+设置和获取播放器翻转,支持normal,   ...`,l:"advanced/property.html#flip",a:"flip"},"4.27":{t:"`playbackRate`",p:`
+Type: Setter/Getter
+Parameter: Number
+
+设置和获取播放器播放速度
+<div c ...`,l:"advanced/property.html#playbackrate",a:"playbackrate"},"4.28":{t:"`aspectRatio`",p:`
+Type: Setter/Getter
+Parameter: String
+
+设置和获取播放器长宽比
+<div cl ...`,l:"advanced/property.html#aspectratio",a:"aspectratio"},"4.29":{t:"`loop`",p:`
+Type: Setter/Getter
+Parameter: Array
+
+设置和获取区间循序播放,单位秒
+<div ...`,l:"advanced/property.html#loop",a:"loop"},"4.30":{t:"`autoHeight`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+当容器只有宽度,该属性可以自动计算出并设置 ...`,l:"advanced/property.html#autoheight",a:"autoheight"},"4.31":{t:"`attr`",p:`
+Type: Function
+Parameter: String
+
+动态获取和设置 video 元素的属性
+<div ...`,l:"advanced/property.html#attr",a:"attr"},"4.32":{t:"`title`",p:`
+Type: Setter/Getter
+Parameter: String
+
+动态获取和设置播放器标题
+<div c ...`,l:"advanced/property.html#title",a:"title"},"4.33":{t:"`type`",p:`
+Type: Setter/Getter
+Parameter: String
+
+动态获取和设置视频类型
+<div cl ...`,l:"advanced/property.html#type",a:"type"},"4.34":{t:"`theme`",p:`
+Type: Setter/Getter
+Parameter: String
+
+动态获取和设置播放器主题颜色
+<div ...`,l:"advanced/property.html#theme",a:"theme"},"4.35":{t:"`airplay`",p:`
+Type: Function
+
+开启隔空播放
+<div className="run-code" ...`,l:"advanced/property.html#airplay",a:"airplay"},"4.36":{t:"`loaded`",p:`
+Type: Getter
+
+视频缓存的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用
+&l ...`,l:"advanced/property.html#loaded",a:"loaded"},"4.37":{t:"`played`",p:`
+Type: Getter
+
+视频播放的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用
+&l ...`,l:"advanced/property.html#played",a:"played"},"4.38":{t:"`proxy`",p:`
+Type: Function
+
+DOM 事件的代理函数,实质上代理了 addEventListener 和 removeE ...`,l:"advanced/property.html#proxy",a:"proxy"},"4.39":{t:"`query`",p:`
+Type: Function
+
+DOM 的查询函数,类似 document.querySelector,但被查询的对象局限 ...`,l:"advanced/property.html#query",a:"query"},"4.40":{t:"`video`",p:`
+Type: Element
+
+快捷返回播放器的 video 元素
+<div className="run- ...`,l:"advanced/property.html#video",a:"video"},"5.0":{t:"# 右键菜单",p:"",l:"component/contextmenu.html",a:"右键菜单"},"5.1":{t:"配置",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+disable
+Boolean
+是否禁用组件
+
+
+name
+String
+组件唯一名称,用于 ...`,l:"component/contextmenu.html#配置",a:"配置"},"5.2":{t:"创建",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#创建",a:"创建"},"5.3":{t:"添加",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#添加",a:"添加"},"5.4":{t:"删除",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#删除",a:"删除"},"5.5":{t:"更新",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#更新",a:"更新"},"6.0":{t:"# 控制器",p:"",l:"component/controls.html",a:"控制器"},"6.1":{t:"配置",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+disable
+Boolean
+是否禁用组件
+
+
+name
+String
+组件唯一名称,用于 ...`,l:"component/controls.html#配置",a:"配置"},"6.2":{t:"创建",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#创建",a:"创建"},"6.3":{t:"添加",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#添加",a:"添加"},"6.4":{t:"删除",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#删除",a:"删除"},"6.5":{t:"更新",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#更新",a:"更新"},"7.0":{t:"# 业务层",p:"",l:"component/layers.html",a:"业务层"},"7.1":{t:"配置",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+disable
+Boolean
+是否禁用组件
+
+
+name
+String
+组件唯一名称,用于 ...`,l:"component/layers.html#配置",a:"配置"},"7.2":{t:"创建",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#创建",a:"创建"},"7.3":{t:"添加",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#添加",a:"添加"},"7.4":{t:"删除",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#删除",a:"删除"},"7.5":{t:"更新",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#更新",a:"更新"},"8.0":{t:"# 设置面板",p:"",l:"component/setting.html",a:"设置面板"},"8.1":{t:"内置",p:"需先打开设置面板,然后自带四个内置项:flip, playbackRate, aspectRatio, subtitleOf ...",l:"component/setting.html#内置",a:"内置"},"8.2":{t:"创建 - 选择列表",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+html
+String, Element
+元素的 DOM
+
+
+icon
+String, El ...`,l:"component/setting.html#创建-选择列表",a:"创建-选择列表"},"8.3":{t:"创建 - 列表嵌套",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#创建-列表嵌套",a:"创建-列表嵌套"},"8.4":{t:"创建 - 切换按钮",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+html
+String, Element
+元素的 DOM 元素
+
+
+icon
+String, ...`,l:"component/setting.html#创建-切换按钮",a:"创建-切换按钮"},"8.5":{t:"创建 - 范围滑块",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+html
+String, Element
+元素的 DOM 元素
+
+
+icon
+String, ...`,l:"component/setting.html#创建-范围滑块",a:"创建-范围滑块"},"8.6":{t:"添加",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#添加",a:"添加"},"8.7":{t:"删除",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#删除",a:"删除"},"8.8":{t:"更新",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#更新",a:"更新"},"9.0":{t:"# 高级属性",p:`这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用
+`,l:"en/advanced/built-in.html",a:"高级属性"},"9.1":{t:"`option`",p:`播放器的选项
+<div className="run-code">▶ Run Code< ...`,l:"en/advanced/built-in.html#option",a:"option"},"9.2":{t:"`whitelist`",p:`管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能
+<div className=" ...`,l:"en/advanced/built-in.html#whitelist",a:"whitelist"},"9.3":{t:"`template`",p:`管理播放器所有的 DOM 元素
+<div className="run-code">▶ Ru ...`,l:"en/advanced/built-in.html#template",a:"template"},"9.4":{t:"`events`",p:"管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener ...",l:"en/advanced/built-in.html#events",a:"events"},"9.5":{t:"`storage`",p:`管理播放器的本地存储
+
+name 属性用于设置缓存的 key
+set 方法用于设置缓存
+get 方法用于获取缓存
+del 方 ...`,l:"en/advanced/built-in.html#storage",a:"storage"},"9.6":{t:"`icons`",p:`管理播放器所有的 svg 图标
+<div className="run-code">▶ Ru ...`,l:"en/advanced/built-in.html#icons",a:"icons"},"9.7":{t:"`i18n`",p:`管理播放器的 i18n
+
+get 方法用于获取 i18n 的值
+update 方法用于更新 i18n 对象
+
+<div ...`,l:"en/advanced/built-in.html#i18n",a:"i18n"},"9.8":{t:"`notice`",p:`管理播放器的提示语,只有一个 show 属性用于显示提示语
+<div className="run-code ...`,l:"en/advanced/built-in.html#notice",a:"notice"},"9.9":{t:"`layers`",p:`管理播放器的层
+
+add 方法用于动态添加层
+show 属性用于设置是否显示全部层
+toggle 属性用于切换是否显示全部层 ...`,l:"en/advanced/built-in.html#layers",a:"layers"},"9.10":{t:"`controls`",p:`管理播放器的控制器
+
+add 方法用于动态添加控制器
+show 属性用于设置是否显示全部控制器
+toggle 属性用于切换是 ...`,l:"en/advanced/built-in.html#controls",a:"controls"},"9.11":{t:"`contextmenu`",p:`管理播放器的右键菜单
+
+add 方法用于动态添加菜单
+show 属性用于设置是否显示全部菜单
+toggle 属性用于切换是否 ...`,l:"en/advanced/built-in.html#contextmenu",a:"contextmenu"},"9.12":{t:"`subtitle`",p:`管理播放器的字幕功能
+
+url 属性设置和返回当前字幕地址
+style 方法设置当前字幕的样式
+switch 方法设置当前字 ...`,l:"en/advanced/built-in.html#subtitle",a:"subtitle"},"9.13":{t:"`loading`",p:`管理播放器的加载层
+
+show 属性用于设置是否显示加载层
+toggle 属性用于切换是否显示加载层
+
+<div cl ...`,l:"en/advanced/built-in.html#loading",a:"loading"},"9.14":{t:"`hotkey`",p:`管理播放器的快捷键功能
+
+add 方法用于添加快捷键
+remove 方法用于删除快捷键
+
+<div className ...`,l:"en/advanced/built-in.html#hotkey",a:"hotkey"},"9.15":{t:"`mask`",p:`管理播放器的遮罩层
+
+show 属性用于设置是否显示遮罩层
+toggle 属性用于切换是否显示遮罩层
+
+<div cl ...`,l:"en/advanced/built-in.html#mask",a:"mask"},"9.16":{t:"`setting`",p:`管理播放器的设置面板
+
+add 方法用于动态添加设置项
+show 属性用于设置是否显示全部设置项
+toggle 属性用于切换 ...`,l:"en/advanced/built-in.html#setting",a:"setting"},"9.17":{t:"`plugins`",p:`管理播放器的插件功能,只有一个方法 add 用于动态添加插件
+<div className="run-cod ...`,l:"en/advanced/built-in.html#plugins",a:"plugins"},"10.0":{t:"# 静态属性",p:`这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用
+:::warning 提示
+有些属性是全大写的,说明这些属 ...`,l:"en/advanced/class.html",a:"静态属性"},"10.1":{t:"`instances`",p:`返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性
+<div className=" ...`,l:"en/advanced/class.html#instances",a:"instances"},"10.2":{t:"`version`",p:`返回播放器的版本信息
+<div className="run-code">▶ Run Cod ...`,l:"en/advanced/class.html#version",a:"version"},"10.3":{t:"`env`",p:`返回播放器的环境变量
+<div className="run-code">▶ Run Cod ...`,l:"en/advanced/class.html#env",a:"env"},"10.4":{t:"`build`",p:`返回播放器的打包时间
+<div className="run-code">▶ Run Cod ...`,l:"en/advanced/class.html#build",a:"build"},"10.5":{t:"`config`",p:`返回视频的默认配置
+<div className="run-code">▶ Run Code ...`,l:"en/advanced/class.html#config",a:"config"},"10.6":{t:"`utils`",p:`返回播放器的工具函数集合
+<div className="run-code">▶ Run C ...`,l:"en/advanced/class.html#utils",a:"utils"},"10.7":{t:"`scheme`",p:`返回播放器选项的校验方案
+<div className="run-code">▶ Run C ...`,l:"en/advanced/class.html#scheme",a:"scheme"},"10.8":{t:"`Emitter`",p:`返回事件分发器的构造函数
+<div className="run-code">▶ Run C ...`,l:"en/advanced/class.html#emitter",a:"emitter"},"10.9":{t:"`validator`",p:`返回选项的校验函数
+<div className="run-code">▶ Run Code ...`,l:"en/advanced/class.html#validator",a:"validator"},"10.10":{t:"`kindOf`",p:`返回类型检测的函数工具
+<div className="run-code">▶ Run Co ...`,l:"en/advanced/class.html#kindof",a:"kindof"},"10.11":{t:"`html`",p:`返回播放器所需的 html 字符串
+<div className="run-code">▶  ...`,l:"en/advanced/class.html#html",a:"html"},"10.12":{t:"`option`",p:`返回播放器的默认选项
+<div className="run-code">▶ Run Cod ...`,l:"en/advanced/class.html#option",a:"option"},"10.13":{t:"`DEBUG`",p:"",l:"en/advanced/class.html#debug",a:"debug"},"10.14":{t:"`CONTEXTMENU`",p:"",l:"en/advanced/class.html#contextmenu",a:"contextmenu"},"10.15":{t:"`NOTICE_TIME`",p:"",l:"en/advanced/class.html#notice-time",a:"notice-time"},"10.16":{t:"`SETTING_WIDTH`",p:"",l:"en/advanced/class.html#setting-width",a:"setting-width"},"10.17":{t:"`SETTING_ITEM_WIDTH`",p:"",l:"en/advanced/class.html#setting-item-width",a:"setting-item-width"},"10.18":{t:"`SETTING_ITEM_HEIGHT`",p:"",l:"en/advanced/class.html#setting-item-height",a:"setting-item-height"},"10.19":{t:"`INDICATOR_SIZE`",p:"",l:"en/advanced/class.html#indicator-size",a:"indicator-size"},"10.20":{t:"`INDICATOR_SIZE_ICON`",p:"",l:"en/advanced/class.html#indicator-size-icon",a:"indicator-size-icon"},"10.21":{t:"`INDICATOR_SIZE_MOBILE`",p:"",l:"en/advanced/class.html#indicator-size-mobile",a:"indicator-size-mobile"},"10.22":{t:"`INDICATOR_SIZE_MOBILE_ICON`",p:"",l:"en/advanced/class.html#indicator-size-mobile-icon",a:"indicator-size-mobile-icon"},"10.23":{t:"`VOLUME_PANEL_WIDTH`",p:"",l:"en/advanced/class.html#volume-panel-width",a:"volume-panel-width"},"10.24":{t:"`VOLUME_HANDLE_WIDTH`",p:"",l:"en/advanced/class.html#volume-handle-width",a:"volume-handle-width"},"10.25":{t:"`RESIZE_TIME`",p:"",l:"en/advanced/class.html#resize-time",a:"resize-time"},"10.26":{t:"`SCROLL_TIME`",p:"",l:"en/advanced/class.html#scroll-time",a:"scroll-time"},"10.27":{t:"`SCROLL_GAP`",p:"",l:"en/advanced/class.html#scroll-gap",a:"scroll-gap"},"10.28":{t:"`AUTO_PLAYBACK_MAX`",p:"",l:"en/advanced/class.html#auto-playback-max",a:"auto-playback-max"},"10.29":{t:"`AUTO_PLAYBACK_MIN`",p:"",l:"en/advanced/class.html#auto-playback-min",a:"auto-playback-min"},"10.30":{t:"`AUTO_PLAYBACK_TIMEOUT`",p:"",l:"en/advanced/class.html#auto-playback-timeout",a:"auto-playback-timeout"},"10.31":{t:"`RECONNECT_TIME_MAX`",p:"",l:"en/advanced/class.html#reconnect-time-max",a:"reconnect-time-max"},"10.32":{t:"`RECONNECT_SLEEP_TIME`",p:"",l:"en/advanced/class.html#reconnect-sleep-time",a:"reconnect-sleep-time"},"10.33":{t:"`CONTROL_HIDE_TIME`",p:"",l:"en/advanced/class.html#control-hide-time",a:"control-hide-time"},"10.34":{t:"`DB_CLICE_TIME`",p:"",l:"en/advanced/class.html#db-clice-time",a:"db-clice-time"},"10.35":{t:"`MOBILE_AUTO_PLAYBACKRATE`",p:"",l:"en/advanced/class.html#mobile-auto-playbackrate",a:"mobile-auto-playbackrate"},"10.36":{t:"`MOBILE_AUTO_PLAYBACKRATE_TIME`",p:"",l:"en/advanced/class.html#mobile-auto-playbackrate-time",a:"mobile-auto-playbackrate-time"},"10.37":{t:"`MOBILE_AUTO_ORIENTATION_TIME`",p:"",l:"en/advanced/class.html#mobile-auto-orientation-time",a:"mobile-auto-orientation-time"},"10.38":{t:"`INFO_LOOP_TIME`",p:"",l:"en/advanced/class.html#info-loop-time",a:"info-loop-time"},"10.39":{t:"`FAST_FORWARD_VALUE`",p:"",l:"en/advanced/class.html#fast-forward-value",a:"fast-forward-value"},"10.40":{t:"`FAST_FORWARD_TIME`",p:"",l:"en/advanced/class.html#fast-forward-time",a:"fast-forward-time"},"10.41":{t:"`TOUCH_MOVE_RATIO`",p:"",l:"en/advanced/class.html#touch-move-ratio",a:"touch-move-ratio"},"10.42":{t:"`VOLUME_STEP`",p:"",l:"en/advanced/class.html#volume-step",a:"volume-step"},"10.43":{t:"`SEEK_STEP`",p:"",l:"en/advanced/class.html#seek-step",a:"seek-step"},"10.44":{t:"`PROGRESS_HEIGHT`",p:"",l:"en/advanced/class.html#progress-height",a:"progress-height"},"10.45":{t:"`PLAYBACK_RATE`",p:"",l:"en/advanced/class.html#playback-rate",a:"playback-rate"},"10.46":{t:"`ASPECT_RATIO`",p:"",l:"en/advanced/class.html#aspect-ratio",a:"aspect-ratio"},"10.47":{t:"`FLIP`",p:"",l:"en/advanced/class.html#flip",a:"flip"},"10.48":{t:"`FULLSCREEN_WEB_IN_BODY`",p:"",l:"en/advanced/class.html#fullscreen-web-in-body",a:"fullscreen-web-in-body"},"11.0":{t:"# 实例事件",p:`播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件
+监听事件:
+<div cl ...`,l:"en/advanced/event.html",a:"实例事件"},"11.1":{t:"`ready`",p:`当播放器首次可以播放器时触发
+<div className="run-code">▶ Run ...`,l:"en/advanced/event.html#ready",a:"ready"},"11.2":{t:"`restart`",p:`当播放器切换地址后并可以播放时触发
+<div className="run-code">▶  ...`,l:"en/advanced/event.html#restart",a:"restart"},"11.3":{t:"`pause`",p:`当播放器暂停时触发
+<div className="run-code">▶ Run Code ...`,l:"en/advanced/event.html#pause",a:"pause"},"11.4":{t:"`play`",p:`当播放器播放时触发
+<div className="run-code">▶ Run Code ...`,l:"en/advanced/event.html#play",a:"play"},"11.5":{t:"`hotkey`",p:`当播放器热键被按下时触发
+<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#hotkey",a:"hotkey"},"11.6":{t:"`destroy`",p:`当播放器销毁时触发
+<div className="run-code">▶ Run Code ...`,l:"en/advanced/event.html#destroy",a:"destroy"},"11.7":{t:"`url`",p:`当视频地址变化时触发
+<div className="run-code">▶ Run Cod ...`,l:"en/advanced/event.html#url",a:"url"},"11.8":{t:"`focus`",p:`当播放器获得焦点时触发
+<div className="run-code">▶ Run Co ...`,l:"en/advanced/event.html#focus",a:"focus"},"11.9":{t:"`blur`",p:`当播放器失去焦点时触发
+<div className="run-code">▶ Run Co ...`,l:"en/advanced/event.html#blur",a:"blur"},"11.10":{t:"`dblclick`",p:`当播放器被双击时触发
+<div className="run-code">▶ Run Cod ...`,l:"en/advanced/event.html#dblclick",a:"dblclick"},"11.11":{t:"`click`",p:`当播放器被单击时触发
+<div className="run-code">▶ Run Cod ...`,l:"en/advanced/event.html#click",a:"click"},"11.12":{t:"`error`",p:`当播放器加载视频发生错误时触发
+<div className="run-code">▶ Ru ...`,l:"en/advanced/event.html#error",a:"error"},"11.13":{t:"`hover`",p:`当播放器被鼠标移出或者移入时触发
+<div className="run-code">▶ R ...`,l:"en/advanced/event.html#hover",a:"hover"},"11.14":{t:"`mousemove`",p:`当播放器被鼠标经过时触发
+<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#mousemove",a:"mousemove"},"11.15":{t:"`resize`",p:`当播放器尺寸变化时触发
+<div className="run-code">▶ Run Co ...`,l:"en/advanced/event.html#resize",a:"resize"},"11.16":{t:"`view`",p:`当播放器出现在视口时触发
+<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#view",a:"view"},"11.17":{t:"`aspectRatio`",p:`当播放器长宽比变化时触发
+<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#aspectratio",a:"aspectratio"},"11.18":{t:"`autoHeight`",p:`当播放器自动设置高度时触发
+<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#autoheight",a:"autoheight"},"11.19":{t:"`autoSize`",p:`当播放器自动设置尺寸时触发
+<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#autosize",a:"autosize"},"11.20":{t:"`flip`",p:`当播放器发生翻转时触发
+<div className="run-code">▶ Run Co ...`,l:"en/advanced/event.html#flip",a:"flip"},"11.21":{t:"`fullscreen`",p:`当播放器发生窗口全屏时触发
+<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#fullscreen",a:"fullscreen"},"11.22":{t:"`fullscreenWeb`",p:`当播放器发生网页全屏时触发
+<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#fullscreenweb",a:"fullscreenweb"},"11.23":{t:"`mini`",p:`当播放器进入迷你模式时触发
+<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#mini",a:"mini"},"11.24":{t:"`pip`",p:`当播放器进入画中画时触发
+<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#pip",a:"pip"},"11.25":{t:"`screenshot`",p:`当播放器被截图时触发
+<div className="run-code">▶ Run Cod ...`,l:"en/advanced/event.html#screenshot",a:"screenshot"},"11.26":{t:"`seek`",p:`当播放器发生时间跳转时触发
+<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#seek",a:"seek"},"11.27":{t:"`subtitleOffset`",p:`当播放器发生字幕偏移时触发
+<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#subtitleoffset",a:"subtitleoffset"},"11.28":{t:"`subtitleUpdate`",p:`当字幕更新时触发
+<div className="run-code">▶ Run Code& ...`,l:"en/advanced/event.html#subtitleupdate",a:"subtitleupdate"},"11.29":{t:"`subtitleLoad`",p:`当字幕加载时触发
+<div className="run-code">▶ Run Code& ...`,l:"en/advanced/event.html#subtitleload",a:"subtitleload"},"11.30":{t:"`subtitleSwitch`",p:`当字幕切换时触发
+<div className="run-code">▶ Run Code& ...`,l:"en/advanced/event.html#subtitleswitch",a:"subtitleswitch"},"11.31":{t:"`info`",p:`当信息面板显示或隐藏时触发
+<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#info",a:"info"},"11.32":{t:"`layer`",p:`当自定义层显示或隐藏时触发
+<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#layer",a:"layer"},"11.33":{t:"`loading`",p:`当加载器显示或隐藏时触发
+<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#loading",a:"loading"},"11.34":{t:"`mask`",p:`当遮罩层显示或隐藏时触发
+<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#mask",a:"mask"},"11.35":{t:"`subtitle`",p:`当字幕层显示或隐藏时触发
+<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#subtitle",a:"subtitle"},"11.36":{t:"`contextmenu`",p:`当右键菜单显示或隐藏时触发
+<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#contextmenu",a:"contextmenu"},"11.37":{t:"`control`",p:`当控制器显示或隐藏时触发
+<div className="run-code">▶ Run C ...`,l:"en/advanced/event.html#control",a:"control"},"11.38":{t:"`setting`",p:`当设置面板显示或隐藏时触发
+<div className="run-code">▶ Run  ...`,l:"en/advanced/event.html#setting",a:"setting"},"11.39":{t:"`video:canplay`",p:`浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容
+`,l:"en/advanced/event.html#video-canplay",a:"video-canplay"},"11.40":{t:"`video:canplaythrough`",p:`浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束
+`,l:"en/advanced/event.html#video-canplaythrough",a:"video-canplaythrough"},"11.41":{t:"`video:complete`",p:`OfflineAudioContext 渲染完成
+`,l:"en/advanced/event.html#video-complete",a:"video-complete"},"11.42":{t:"`video:durationchange`",p:`duration 属性的值改变时触发
+`,l:"en/advanced/event.html#video-durationchange",a:"video-durationchange"},"11.43":{t:"`video:emptied`",p:"媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载 ...",l:"en/advanced/event.html#video-emptied",a:"video-emptied"},"11.44":{t:"`video:ended`",p:`视频停止播放,因为 media 已经到达结束点
+`,l:"en/advanced/event.html#video-ended",a:"video-ended"},"11.45":{t:"`video:error`",p:`获取媒体数据时出错,或者资源类型不是受支持的媒体格式
+`,l:"en/advanced/event.html#video-error",a:"video-error"},"11.46":{t:"`video:loadeddata`",p:`media 中的首帧已经完成加载
+`,l:"en/advanced/event.html#video-loadeddata",a:"video-loadeddata"},"11.47":{t:"`video:loadedmetadata`",p:`已加载元数据
+`,l:"en/advanced/event.html#video-loadedmetadata",a:"video-loadedmetadata"},"11.48":{t:"`video:pause`",p:`播放已暂停
+`,l:"en/advanced/event.html#video-pause",a:"video-pause"},"11.49":{t:"`video:play`",p:`播放已开始
+`,l:"en/advanced/event.html#video-play",a:"video-play"},"11.50":{t:"`video:playing`",p:`由于缺乏数据而暂停或延迟后,播放准备开始
+`,l:"en/advanced/event.html#video-playing",a:"video-playing"},"11.51":{t:"`video:progress`",p:`在浏览器加载资源时周期性触发
+`,l:"en/advanced/event.html#video-progress",a:"video-progress"},"11.52":{t:"`video:ratechange`",p:`播放速率发生变化
+`,l:"en/advanced/event.html#video-ratechange",a:"video-ratechange"},"11.53":{t:"`video:seeked`",p:`跳帧(seek)操作完成
+`,l:"en/advanced/event.html#video-seeked",a:"video-seeked"},"11.54":{t:"`video:seeking`",p:`跳帧(seek)操作开始
+`,l:"en/advanced/event.html#video-seeking",a:"video-seeking"},"11.55":{t:"`video:stalled`",p:`用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现
+`,l:"en/advanced/event.html#video-stalled",a:"video-stalled"},"11.56":{t:"`video:suspend`",p:`媒体数据加载已暂停
+`,l:"en/advanced/event.html#video-suspend",a:"video-suspend"},"11.57":{t:"`video:timeupdate`",p:`currentTime 属性指定的时间发生变化
+`,l:"en/advanced/event.html#video-timeupdate",a:"video-timeupdate"},"11.58":{t:"`video:volumechange`",p:`音量发生变化
+`,l:"en/advanced/event.html#video-volumechange",a:"video-volumechange"},"11.59":{t:"`video:waiting`",p:`由于暂时缺少数据,播放已停止
+`,l:"en/advanced/event.html#video-waiting",a:"video-waiting"},"12.0":{t:"# 编写插件",p:`但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事
+可以在实例化的时候加载插件的函数
+<div cla ...`,l:"en/advanced/plugin.html",a:"编写插件"},"13.0":{t:"# Instance Property",p:"The Instance Property here refers to the Primary Property atta ...",l:"en/advanced/property.html",a:"instance-property"},"13.1":{t:"`play`",p:`
+Type: Function
+
+Play video
+<div className="run-code&q ...`,l:"en/advanced/property.html#play",a:"play"},"13.2":{t:"`pause`",p:`
+Type: Function
+
+Pause video
+<div className="run-code& ...`,l:"en/advanced/property.html#pause",a:"pause"},"13.3":{t:"`toggle`",p:`
+Type: Function
+
+Toggle video playback and pause
+<div class ...`,l:"en/advanced/property.html#toggle",a:"toggle"},"13.4":{t:"`destroy`",p:`
+Type: Function
+Parameter: Boolean
+
+To destroy the player, acc ...`,l:"en/advanced/property.html#destroy",a:"destroy"},"13.5":{t:"`seek`",p:`
+Type: Setter
+Parameter: Number
+
+Video time jump in seconds
+&l ...`,l:"en/advanced/property.html#seek",a:"seek"},"13.6":{t:"`forward`",p:`
+Type: Setter
+Parameter: Number
+
+Video time fast forward in se ...`,l:"en/advanced/property.html#forward",a:"forward"},"13.7":{t:"`backward`",p:`
+Type: Setter
+Parameter: Number
+
+Video time rewind in seconds
+ ...`,l:"en/advanced/property.html#backward",a:"backward"},"13.8":{t:"`volume`",p:`
+Type: Setter/Getter
+Parameter: Number
+
+Set and get video volu ...`,l:"en/advanced/property.html#volume",a:"volume"},"13.9":{t:"`url`",p:`
+Type: Setter/Getter
+Parameter: String
+
+Set and get video url
+ ...`,l:"en/advanced/property.html#url",a:"url"},"13.10":{t:"`switchUrl`",p:`
+Type: Function
+Parameter: String
+
+Setting the video url is si ...`,l:"en/advanced/property.html#switchurl",a:"switchurl"},"13.11":{t:"`switchQuality`",p:`
+Type: Function
+Parameter: String
+
+Set the video quality addre ...`,l:"en/advanced/property.html#switchquality",a:"switchquality"},"13.12":{t:"`muted`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+Set and get whether t ...`,l:"en/advanced/property.html#muted",a:"muted"},"13.13":{t:"`currentTime`",p:`
+Type: Setter/Getter
+Parameter: Number
+
+Set and get the curren ...`,l:"en/advanced/property.html#currenttime",a:"currenttime"},"13.14":{t:"`duration`",p:`
+Type: Getter
+
+Get video duration
+<div className="run- ...`,l:"en/advanced/property.html#duration",a:"duration"},"13.15":{t:"`screenshot`",p:`
+Type: Function
+
+Download a screenshot of the current video fr ...`,l:"en/advanced/property.html#screenshot",a:"screenshot"},"13.16":{t:"`getDataURL`",p:`
+Type: Function
+
+Get the base64 address of the screenshot of t ...`,l:"en/advanced/property.html#getdataurl",a:"getdataurl"},"13.17":{t:"`getBlobUrl`",p:`
+Type: Function
+
+Get the blob address of the screenshot of the ...`,l:"en/advanced/property.html#getbloburl",a:"getbloburl"},"13.18":{t:"`fullscreen`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+Set and get full scre ...`,l:"en/advanced/property.html#fullscreen",a:"fullscreen"},"13.19":{t:"`fullscreenWeb`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+Set and get full scre ...`,l:"en/advanced/property.html#fullscreenweb",a:"fullscreenweb"},"13.20":{t:"`pip`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+Set and get the pictu ...`,l:"en/advanced/property.html#pip",a:"pip"},"13.21":{t:"`poster`",p:`
+Type: Setter/Getter
+Parameter: String
+
+Set and obtain video p ...`,l:"en/advanced/property.html#poster",a:"poster"},"13.22":{t:"`mini`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+Set and get player mi ...`,l:"en/advanced/property.html#mini",a:"mini"},"13.23":{t:"`playing`",p:`
+Type: Getter
+Parameter: Boolean
+
+Get whether the video is pla ...`,l:"en/advanced/property.html#playing",a:"playing"},"13.24":{t:"`autoSize`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+Set whether the video ...`,l:"en/advanced/property.html#autosize",a:"autosize"},"13.25":{t:"`rect`",p:`
+Type: Getter
+
+Get the size and coordinate information of the  ...`,l:"en/advanced/property.html#rect",a:"rect"},"13.26":{t:"`flip`",p:`
+Type: Setter/Getter
+Parameter: String
+
+Set and get player rol ...`,l:"en/advanced/property.html#flip",a:"flip"},"13.27":{t:"`playbackRate`",p:`
+Type: Setter/Getter
+Parameter: Number
+
+Set and get player pla ...`,l:"en/advanced/property.html#playbackrate",a:"playbackrate"},"13.28":{t:"`aspectRatio`",p:`
+Type: Setter/Getter
+Parameter: String
+
+Set and obtain the pla ...`,l:"en/advanced/property.html#aspectratio",a:"aspectratio"},"13.29":{t:"`loop`",p:`
+Type: Setter/Getter
+Parameter: Array
+
+Set and obtain interval ...`,l:"en/advanced/property.html#loop",a:"loop"},"13.30":{t:"`autoHeight`",p:`
+Type: Setter/Getter
+Parameter: Boolean
+
+When the container ha ...`,l:"en/advanced/property.html#autoheight",a:"autoheight"},"13.31":{t:"`attr`",p:`
+Type: Function
+Parameter: String
+
+Get and set the attributes  ...`,l:"en/advanced/property.html#attr",a:"attr"},"13.32":{t:"`title`",p:`
+Type: Setter/Getter
+Parameter: String
+
+Get and set player tit ...`,l:"en/advanced/property.html#title",a:"title"},"13.33":{t:"`type`",p:`
+Type: Setter/Getter
+Parameter: String
+
+Get and set video type ...`,l:"en/advanced/property.html#type",a:"type"},"13.34":{t:"`theme`",p:`
+Type: Setter/Getter
+Parameter: String
+
+Get and set player the ...`,l:"en/advanced/property.html#theme",a:"theme"},"13.35":{t:"`airplay`",p:`
+Type: Function
+
+Enable airplay
+<div className="run-co ...`,l:"en/advanced/property.html#airplay",a:"airplay"},"13.36":{t:"`loaded`",p:`
+Type: Getter
+
+The proportion of video cache, with the range o ...`,l:"en/advanced/property.html#loaded",a:"loaded"},"13.37":{t:"`played`",p:`
+Type: Getter
+
+The proportion of video playback, with the rang ...`,l:"en/advanced/property.html#played",a:"played"},"13.38":{t:"`proxy`",p:`
+Type: Function
+
+The proxy function of DOM event essentially p ...`,l:"en/advanced/property.html#proxy",a:"proxy"},"13.39":{t:"`query`",p:`
+Type: Function
+
+The query function of DOM is similar to docum ...`,l:"en/advanced/property.html#query",a:"query"},"13.40":{t:"`video`",p:`
+Type: Element
+
+Return the video element of the player
+<div ...`,l:"en/advanced/property.html#video",a:"video"},"14.0":{t:"# 右键菜单",p:"",l:"en/component/contextmenu.html",a:"右键菜单"},"14.1":{t:"配置",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+disable
+Boolean
+是否禁用组件
+
+
+name
+String
+组件唯一名称,用于 ...`,l:"en/component/contextmenu.html#配置",a:"配置"},"14.2":{t:"创建",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#创建",a:"创建"},"14.3":{t:"添加",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#添加",a:"添加"},"14.4":{t:"删除",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#删除",a:"删除"},"14.5":{t:"更新",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#更新",a:"更新"},"15.0":{t:"# 控制器",p:"",l:"en/component/controls.html",a:"控制器"},"15.1":{t:"配置",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+disable
+Boolean
+是否禁用组件
+
+
+name
+String
+组件唯一名称,用于 ...`,l:"en/component/controls.html#配置",a:"配置"},"15.2":{t:"创建",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#创建",a:"创建"},"15.3":{t:"添加",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#添加",a:"添加"},"15.4":{t:"删除",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#删除",a:"删除"},"15.5":{t:"更新",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#更新",a:"更新"},"16.0":{t:"# 业务层",p:"",l:"en/component/layers.html",a:"业务层"},"16.1":{t:"配置",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+disable
+Boolean
+是否禁用组件
+
+
+name
+String
+组件唯一名称,用于 ...`,l:"en/component/layers.html#配置",a:"配置"},"16.2":{t:"创建",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#创建",a:"创建"},"16.3":{t:"添加",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#添加",a:"添加"},"16.4":{t:"删除",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#删除",a:"删除"},"16.5":{t:"更新",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#更新",a:"更新"},"17.0":{t:"# 设置面板",p:"",l:"en/component/setting.html",a:"设置面板"},"17.1":{t:"内置",p:"需先打开设置面板,然后自带四个内置项:flip, playbackRate, aspectRatio, subtitleOf ...",l:"en/component/setting.html#内置",a:"内置"},"17.2":{t:"创建 - 选择列表",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+html
+String, Element
+元素的 DOM
+
+
+icon
+String, El ...`,l:"en/component/setting.html#创建-选择列表",a:"创建-选择列表"},"17.3":{t:"创建 - 列表嵌套",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#创建-列表嵌套",a:"创建-列表嵌套"},"17.4":{t:"创建 - 切换按钮",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+html
+String, Element
+元素的 DOM 元素
+
+
+icon
+String, ...`,l:"en/component/setting.html#创建-切换按钮",a:"创建-切换按钮"},"17.5":{t:"创建 - 范围滑块",p:`
+
+
+属性
+类型
+描述
+
+
+
+
+html
+String, Element
+元素的 DOM 元素
+
+
+icon
+String, ...`,l:"en/component/setting.html#创建-范围滑块",a:"创建-范围滑块"},"17.6":{t:"添加",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#添加",a:"添加"},"17.7":{t:"删除",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#删除",a:"删除"},"17.8":{t:"更新",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#更新",a:"更新"},"18.0":{t:"::: danger Important Note",p:"The English document has not yet been completed, everything is ...",l:"en/index.html",a:"danger-important-note"},"18.1":{t:"Install",p:`::: code-group
+npm install artplayer
+
+yarn add artplayer
+
+pnpm ...`,l:"en/index.html#install",a:"install"},"18.2":{t:"`CDN`",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer/dist/art ...`,l:"en/index.html#cdn",a:"cdn"},"18.3":{t:"Use",p:`::: code-group
+import Artplayer from 'artplayer';
+
+const art = ...`,l:"en/index.html#use",a:"use"},"18.4":{t:"`Vue.js`",p:`::: code-group
+<template>
+  <div ref="artRef&quo ...`,l:"en/index.html#vue-js",a:"vue-js"},"18.5":{t:"`React.js`",p:`::: code-group
+import { useEffect, useRef } from 'react';
+impo ...`,l:"en/index.html#react-js",a:"react-js"},"18.6":{t:"Syntax hint",p:"Sometimes your js file will lose the type prompt of TypeScript ...",l:"en/index.html#syntax-hint",a:"syntax-hint"},"19.0":{t:"# dash.js",p:`👉 https://github.com/Dash-Industry-Forum/dash.js
+<div clas ...`,l:"en/library/dash.html",a:"dash-js"},"20.0":{t:"# flv.js",p:`👉 https://github.com/Bilibili/flv.js
+<div className=" ...`,l:"en/library/flv.html",a:"flv-js"},"21.0":{t:"# hls.js",p:`👉 https://github.com/video-dev/hls.js
+<div className=" ...`,l:"en/library/hls.html",a:"hls-js"},"22.0":{t:"# 视频广告",p:"",l:"en/plugin/ads.html",a:"视频广告"},"22.1":{t:"演示",p:`👉 查看完整演示
+`,l:"en/plugin/ads.html#演示",a:"演示"},"22.2":{t:"安装",p:`::: code-group
+npm install artplayer-plugin-ads
+
+yarn add artp ...`,l:"en/plugin/ads.html#安装",a:"安装"},"22.3":{t:"CDN",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer-plugin-a ...`,l:"en/plugin/ads.html#cdn",a:"cdn"},"22.4":{t:"使用",p:"<div className="run-code" data-libs="./uncom ...",l:"en/plugin/ads.html#使用",a:"使用"},"23.0":{t:"# 控制器皮肤",p:"",l:"en/plugin/control-ui.html",a:"控制器皮肤"},"23.1":{t:"演示",p:`👉 查看完整演示
+`,l:"en/plugin/control-ui.html#演示",a:"演示"},"23.2":{t:"安装",p:`::: code-group
+npm install artplayer-plugin-control
+
+yarn add  ...`,l:"en/plugin/control-ui.html#安装",a:"安装"},"23.3":{t:"CDN",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer-plugin-c ...`,l:"en/plugin/control-ui.html#cdn",a:"cdn"},"23.4":{t:"使用",p:"<div className="run-code" data-libs="./uncom ...",l:"en/plugin/control-ui.html#使用",a:"使用"},"23.5":{t:"`enable`",p:`
+Type: Getter/Setter
+Parameter: Boolean
+
+是否启用新的控制器皮肤
+<div c ...`,l:"en/plugin/control-ui.html#enable",a:"enable"},"24.0":{t:"# Dash 画质",p:"",l:"en/plugin/dash-quality.html",a:"dash-画质"},"24.1":{t:"演示",p:`👉 查看完整演示
+`,l:"en/plugin/dash-quality.html#演示",a:"演示"},"24.2":{t:"安装",p:`::: code-group
+npm install artplayer-plugin-dash-quality
+
+yarn ...`,l:"en/plugin/dash-quality.html#安装",a:"安装"},"24.3":{t:"CDN",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer-plugin-d ...`,l:"en/plugin/dash-quality.html#cdn",a:"cdn"},"25.0":{t:"# HLS 画质",p:"",l:"en/plugin/hls-quality.html",a:"hls-画质"},"25.1":{t:"演示",p:`👉 查看完整演示
+`,l:"en/plugin/hls-quality.html#演示",a:"演示"},"25.2":{t:"安装",p:`::: code-group
+npm install artplayer-plugin-hls-quality
+
+yarn  ...`,l:"en/plugin/hls-quality.html#安装",a:"安装"},"25.3":{t:"CDN",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer-plugin-h ...`,l:"en/plugin/hls-quality.html#cdn",a:"cdn"},"26.0":{t:"# Iframe 控制",p:"",l:"en/plugin/iframe.html",a:"iframe-控制"},"26.1":{t:"说明",p:"通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.htm ...",l:"en/plugin/iframe.html#说明",a:"说明"},"26.2":{t:"演示",p:`👉 查看完整演示
+`,l:"en/plugin/iframe.html#演示",a:"演示"},"26.3":{t:"安装",p:`::: code-group
+npm install artplayer-plugin-iframe
+
+yarn add a ...`,l:"en/plugin/iframe.html#安装",a:"安装"},"26.4":{t:"`CDN`",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer-plugin-i ...`,l:"en/plugin/iframe.html#cdn",a:"cdn"},"26.5":{t:"使用",p:`::: code-group
+<!DOCTYPE html>
+<html>
+    <head ...`,l:"en/plugin/iframe.html#使用",a:"使用"},"26.6":{t:"`index.html` 接口",p:"",l:"en/plugin/iframe.html#index-html-接口",a:"index-html-接口"},"26.7":{t:"`commit`",p:"从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于 ...",l:"en/plugin/iframe.html#commit",a:"commit"},"26.8":{t:"`message`",p:`在 index.html 接收来自 iframe.html 的消息
+iframe.message((event) => ...`,l:"en/plugin/iframe.html#message",a:"message"},"26.9":{t:"`destroy`",p:`销毁后 index.html 无法与 iframe.html 通信
+iframe.destroy();
+
+`,l:"en/plugin/iframe.html#destroy",a:"destroy"},"26.10":{t:"`iframe.html` 接口",p:`:::warning 提示
+iframe.html 接口 只能运行在 iframe.html 里
+:::
+`,l:"en/plugin/iframe.html#iframe-html-接口",a:"iframe-html-接口"},"26.11":{t:"`inject`",p:`注入脚本,接收来自 index.html 的消息
+ArtplayerPluginIframe.inject();
+
+`,l:"en/plugin/iframe.html#inject",a:"inject"},"26.12":{t:"`postMessage`",p:`将消息推送到 index.html
+iframe.message((event) => {
+    console.i ...`,l:"en/plugin/iframe.html#postmessage",a:"postmessage"},"26.13":{t:"例子",p:"最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听  ...",l:"en/plugin/iframe.html#例子",a:"例子"},"27.0":{t:"# Option",p:"",l:"en/start/option.html",a:"option"},"27.1":{t:"`container`",p:`
+Type: String, Element
+Default: #artplayer
+
+The DOM container  ...`,l:"en/start/option.html#container",a:"container"},"27.2":{t:"`url`",p:`
+Type: String
+Default: ''
+
+Video source address
+<div classN ...`,l:"en/start/option.html#url",a:"url"},"27.3":{t:"`id`",p:`
+Type: String
+Default: ''
+
+The unique identifier of the player ...`,l:"en/start/option.html#id",a:"id"},"27.4":{t:"`onReady`",p:`
+Type: Function
+Default: undefined
+
+The constructor accepts a  ...`,l:"en/start/option.html#onready",a:"onready"},"27.5":{t:"`poster`",p:`
+Type: String
+Default: ''
+
+Video posters will only appear when ...`,l:"en/start/option.html#poster",a:"poster"},"27.6":{t:"`title`",p:`
+Type: String
+Default: ''
+
+Video title, which currently appear ...`,l:"en/start/option.html#title",a:"title"},"27.7":{t:"`theme`",p:`
+Type: String
+Default: #f00
+
+The player theme color is current ...`,l:"en/start/option.html#theme",a:"theme"},"27.8":{t:"`volume`",p:`
+Type: Number
+Default: 0.7
+
+Default volume of player
+<div c ...`,l:"en/start/option.html#volume",a:"volume"},"27.9":{t:"`isLive`",p:`
+Type: Boolean
+Default: false
+
+When using live mode, the progr ...`,l:"en/start/option.html#islive",a:"islive"},"27.10":{t:"`muted`",p:`
+Type: Boolean
+Default: false
+
+Whether to mute by default
+< ...`,l:"en/start/option.html#muted",a:"muted"},"27.11":{t:"`autoplay`",p:`
+Type: Boolean
+Default: false
+
+Whether to play automatically
+& ...`,l:"en/start/option.html#autoplay",a:"autoplay"},"27.12":{t:"`autoSize`",p:`
+Type: Boolean
+Default: false
+
+The size of the player will fil ...`,l:"en/start/option.html#autosize",a:"autosize"},"27.13":{t:"`autoMini`",p:`
+Type: Boolean
+Default: false
+
+When the player scrolls outside ...`,l:"en/start/option.html#automini",a:"automini"},"27.14":{t:"`loop`",p:`
+Type: Boolean
+Default: false
+
+Whether to play in a loop
+<d ...`,l:"en/start/option.html#loop",a:"loop"},"27.15":{t:"`flip`",p:`
+Type: Boolean
+Default: false
+
+Whether to display the video fl ...`,l:"en/start/option.html#flip",a:"flip"},"27.16":{t:"`playbackRate`",p:`
+Type: Boolean
+Default: false
+
+Whether to display the video pl ...`,l:"en/start/option.html#playbackrate",a:"playbackrate"},"27.17":{t:"`aspectRatio`",p:`
+Type: Boolean
+Default: false
+
+Whether to display the video as ...`,l:"en/start/option.html#aspectratio",a:"aspectratio"},"27.18":{t:"`screenshot`",p:`
+Type: Boolean
+Default: false
+
+Whether to display the video sc ...`,l:"en/start/option.html#screenshot",a:"screenshot"},"27.19":{t:"`setting`",p:`
+Type: Boolean
+Default: false
+
+Whether to display the switch b ...`,l:"en/start/option.html#setting",a:"setting"},"27.20":{t:"`hotkey`",p:`
+Type: Boolean
+Default: true
+
+Whether to use shortcut keys
+< ...`,l:"en/start/option.html#hotkey",a:"hotkey"},"27.21":{t:"`pip`",p:`
+Type: Boolean
+Default: false
+
+Whether to display the picture  ...`,l:"en/start/option.html#pip",a:"pip"},"27.22":{t:"`mutex`",p:`
+Type: Boolean
+Default: true
+
+If there are multiple players in ...`,l:"en/start/option.html#mutex",a:"mutex"},"27.23":{t:"`fullscreen`",p:`
+Type: Boolean
+Default: false
+
+Whether to display the player w ...`,l:"en/start/option.html#fullscreen",a:"fullscreen"},"27.24":{t:"`fullscreenWeb`",p:`
+Type: Boolean
+Default: false
+
+Whether to display the player f ...`,l:"en/start/option.html#fullscreenweb",a:"fullscreenweb"},"27.25":{t:"`subtitleOffset`",p:`
+Type: Boolean
+Default: false
+
+Subtitle time offset, with the  ...`,l:"en/start/option.html#subtitleoffset",a:"subtitleoffset"},"27.26":{t:"`miniProgressBar`",p:`
+Type: Boolean
+Default: false
+
+Mini progress bar, only appears ...`,l:"en/start/option.html#miniprogressbar",a:"miniprogressbar"},"27.27":{t:"`useSSR`",p:`
+Type: Boolean
+Default: false
+
+Whether to use the SSR mount mo ...`,l:"en/start/option.html#usessr",a:"usessr"},"27.28":{t:"`playsInline`",p:`
+Type: Boolean
+Default: true
+
+Whether to use the playsInline m ...`,l:"en/start/option.html#playsinline",a:"playsinline"},"27.29":{t:"`layers`",p:`
+Type: Array
+Default: []
+
+Initialize the customized layers
+< ...`,l:"en/start/option.html#layers",a:"layers"},"27.30":{t:"`settings`",p:`
+Type: Array
+Default: []
+
+Initialize the customized Setting
+&l ...`,l:"en/start/option.html#settings",a:"settings"},"27.31":{t:"`contextmenu`",p:`
+Type: Array
+Default: []
+
+Initialize the customized Contextmen ...`,l:"en/start/option.html#contextmenu",a:"contextmenu"},"27.32":{t:"`controls`",p:`
+Type: Array
+Default: []
+
+Initialize the customized Controls
+& ...`,l:"en/start/option.html#controls",a:"controls"},"27.33":{t:"`quality`",p:`
+Type: Array
+Default: []
+
+Whether to display the Quality list  ...`,l:"en/start/option.html#quality",a:"quality"},"27.34":{t:"`highlight`",p:`
+Type: Array
+Default: []
+
+Display highlight on the progress ba ...`,l:"en/start/option.html#highlight",a:"highlight"},"27.35":{t:"`plugins`",p:`
+Type: Array
+Default: []
+
+Initialize customized plugins
+<di ...`,l:"en/start/option.html#plugins",a:"plugins"},"27.36":{t:"`whitelist`",p:`
+Type: Array
+Default: []
+
+Because different mobile devices hav ...`,l:"en/start/option.html#whitelist",a:"whitelist"},"27.37":{t:"`thumbnails`",p:`
+Type: Object
+Default: {}
+
+Set the thumbnails image on the pro ...`,l:"en/start/option.html#thumbnails",a:"thumbnails"},"27.38":{t:"`subtitle`",p:`
+Type: Object
+Default: {}
+
+Set the subtitle of the video and s ...`,l:"en/start/option.html#subtitle",a:"subtitle"},"27.39":{t:"`moreVideoAttr`",p:`
+Type: Object
+Default: {'controls': false,'preload': 'metadata ...`,l:"en/start/option.html#morevideoattr",a:"morevideoattr"},"27.40":{t:"`icons`",p:`
+Type: Object
+Default: {}
+
+It is used to replace the default i ...`,l:"en/start/option.html#icons",a:"icons"},"27.41":{t:"`type`",p:`
+Type: String
+Default: ''
+
+It is used to indicate the format o ...`,l:"en/start/option.html#type",a:"type"},"27.42":{t:"`customType`",p:`
+Type: Object
+Default: {}
+
+By matching the video's type, the v ...`,l:"en/start/option.html#customtype",a:"customtype"},"27.43":{t:"`lang`",p:`
+Type: String
+Default: navigator.language.toLowerCase()
+
+The d ...`,l:"en/start/option.html#lang",a:"lang"},"27.44":{t:"`i18n`",p:`
+Type: Object
+Default: {}
+
+Customize the i18n configuration, w ...`,l:"en/start/option.html#i18n",a:"i18n"},"27.45":{t:"`lock`",p:`
+Type: Boolean
+Default: false
+
+Whether to display a lock butto ...`,l:"en/start/option.html#lock",a:"lock"},"27.46":{t:"`fastForward`",p:`
+Type: Boolean
+Default: false
+
+Whether to add long-press video ...`,l:"en/start/option.html#fastforward",a:"fastforward"},"27.47":{t:"`autoPlayback`",p:`
+Type: Boolean
+Default: false
+
+Whether to use automatic playba ...`,l:"en/start/option.html#autoplayback",a:"autoplayback"},"27.48":{t:"`autoOrientation`",p:`
+Type: Boolean
+Default: false
+
+Whether to rotate the player ac ...`,l:"en/start/option.html#autoorientation",a:"autoorientation"},"27.49":{t:"`airplay`",p:`
+Type: Boolean
+Default: false
+
+Whether to display the airplay  ...`,l:"en/start/option.html#airplay",a:"airplay"},"27.50":{t:"`cssVar`",p:`
+Type: Object
+Default: {}
+
+Used to change built-in CSS variabl ...`,l:"en/start/option.html#cssvar",a:"cssvar"},"28.0":{t:"# 安装使用",p:"",l:"index.html",a:"安装使用"},"28.1":{t:"安装",p:`::: code-group
+npm install artplayer
+
+yarn add artplayer
+
+pnpm ...`,l:"index.html#安装",a:"安装"},"28.2":{t:"`CDN`",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer/dist/art ...`,l:"index.html#cdn",a:"cdn"},"28.3":{t:"使用",p:`::: code-group
+import Artplayer from 'artplayer';
+
+const art = ...`,l:"index.html#使用",a:"使用"},"28.4":{t:"`Vue.js`",p:`::: code-group
+<template>
+  <div ref="artRef&quo ...`,l:"index.html#vue-js",a:"vue-js"},"28.5":{t:"`React.js`",p:`::: code-group
+import { useEffect, useRef } from 'react';
+impo ...`,l:"index.html#react-js",a:"react-js"},"28.6":{t:"语法提示",p:`有时你的 js 文件会丢失 TypeScript 的类型提示,这时候你可以手动导入类型
+变量:
+/**
+ * @type { ...`,l:"index.html#语法提示",a:"语法提示"},"29.0":{t:"# dash.js",p:`👉 https://github.com/Dash-Industry-Forum/dash.js
+<div clas ...`,l:"library/dash.html",a:"dash-js"},"30.0":{t:"# flv.js",p:`👉 https://github.com/Bilibili/flv.js
+<div className=" ...`,l:"library/flv.html",a:"flv-js"},"31.0":{t:"# hls.js",p:`👉 https://github.com/video-dev/hls.js
+<div className=" ...`,l:"library/hls.html",a:"hls-js"},"32.0":{t:"# 视频广告",p:"",l:"plugin/ads.html",a:"视频广告"},"32.1":{t:"演示",p:`👉 查看完整演示
+`,l:"plugin/ads.html#演示",a:"演示"},"32.2":{t:"安装",p:`::: code-group
+npm install artplayer-plugin-ads
+
+yarn add artp ...`,l:"plugin/ads.html#安装",a:"安装"},"32.3":{t:"CDN",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer-plugin-a ...`,l:"plugin/ads.html#cdn",a:"cdn"},"32.4":{t:"使用",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/ads.html#使用",a:"使用"},"33.0":{t:"# 控制器皮肤",p:"",l:"plugin/control-ui.html",a:"控制器皮肤"},"33.1":{t:"演示",p:`👉 查看完整演示
+`,l:"plugin/control-ui.html#演示",a:"演示"},"33.2":{t:"安装",p:`::: code-group
+npm install artplayer-plugin-control
+
+yarn add  ...`,l:"plugin/control-ui.html#安装",a:"安装"},"33.3":{t:"CDN",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer-plugin-c ...`,l:"plugin/control-ui.html#cdn",a:"cdn"},"33.4":{t:"使用",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/control-ui.html#使用",a:"使用"},"33.5":{t:"`enable`",p:`
+Type: Getter/Setter
+Parameter: Boolean
+
+是否启用新的控制器皮肤
+<div c ...`,l:"plugin/control-ui.html#enable",a:"enable"},"34.0":{t:"# 弹幕库",p:"",l:"plugin/danmuku.html",a:"弹幕库"},"34.1":{t:"演示",p:`👉 查看完整演示
+`,l:"plugin/danmuku.html#演示",a:"演示"},"34.2":{t:"安装",p:`::: code-group
+npm install artplayer-plugin-danmuku
+
+yarn add  ...`,l:"plugin/danmuku.html#安装",a:"安装"},"34.3":{t:"CDN",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer-plugin-d ...`,l:"plugin/danmuku.html#cdn",a:"cdn"},"34.4":{t:"选项",p:`{
+    danmuku: [], // 弹幕库,支持数组, xml 地址, Promise返回数组
+    speed: ...`,l:"plugin/danmuku.html#选项",a:"选项"},"34.5":{t:"使用弹幕数组",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/danmuku.html#使用弹幕数组",a:"使用弹幕数组"},"34.6":{t:"使用弹幕 XML",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/danmuku.html#使用弹幕-xml",a:"使用弹幕-xml"},"34.7":{t:"使用异步调用",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/danmuku.html#使用异步调用",a:"使用异步调用"},"34.8":{t:"`hide/show`",p:`通过方法 hide 和 show 进行隐藏或者显示弹幕
+<div className="run-code&q ...`,l:"plugin/danmuku.html#hide-show",a:"hide-show"},"34.9":{t:"`isHide`",p:`通过属性 isHide 判断当前弹幕是隐藏或者显示
+<div className="run-code&quo ...`,l:"plugin/danmuku.html#ishide",a:"ishide"},"34.10":{t:"`emit`",p:`通过方法 emit 发送一条实时弹幕
+<div className="run-code" data ...`,l:"plugin/danmuku.html#emit",a:"emit"},"34.11":{t:"`config`",p:`通过方法 config 实时改变弹幕配置,支持属性有:
+
+danmuku
+speed
+opacity
+fontSize
+co ...`,l:"plugin/danmuku.html#config",a:"config"},"34.12":{t:"`load`",p:`通过 load 方法可以重载弹幕源,或者切换新弹幕
+<div className="run-code&quo ...`,l:"plugin/danmuku.html#load",a:"load"},"34.13":{t:"`reset`",p:`用于清空当前显示的弹幕
+<div className="run-code" data-libs=& ...`,l:"plugin/danmuku.html#reset",a:"reset"},"34.14":{t:"`option`",p:`用于获取当前弹幕配置
+<div className="run-code" data-libs=&q ...`,l:"plugin/danmuku.html#option",a:"option"},"34.15":{t:"事件",p:`var art = new Artplayer({
+    container: '.artplayer-app',
+    ...`,l:"plugin/danmuku.html#事件",a:"事件"},"35.0":{t:"# Dash 画质",p:"",l:"plugin/dash-quality.html",a:"dash-画质"},"35.1":{t:"演示",p:`👉 查看完整演示
+`,l:"plugin/dash-quality.html#演示",a:"演示"},"35.2":{t:"安装",p:`::: code-group
+npm install artplayer-plugin-dash-quality
+
+yarn ...`,l:"plugin/dash-quality.html#安装",a:"安装"},"35.3":{t:"CDN",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer-plugin-d ...`,l:"plugin/dash-quality.html#cdn",a:"cdn"},"36.0":{t:"# HLS 画质",p:"",l:"plugin/hls-quality.html",a:"hls-画质"},"36.1":{t:"演示",p:`👉 查看完整演示
+`,l:"plugin/hls-quality.html#演示",a:"演示"},"36.2":{t:"安装",p:`::: code-group
+npm install artplayer-plugin-hls-quality
+
+yarn  ...`,l:"plugin/hls-quality.html#安装",a:"安装"},"36.3":{t:"CDN",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer-plugin-h ...`,l:"plugin/hls-quality.html#cdn",a:"cdn"},"37.0":{t:"# Iframe 控制",p:"",l:"plugin/iframe.html",a:"iframe-控制"},"37.1":{t:"说明",p:"通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.htm ...",l:"plugin/iframe.html#说明",a:"说明"},"37.2":{t:"演示",p:`👉 查看完整演示
+`,l:"plugin/iframe.html#演示",a:"演示"},"37.3":{t:"安装",p:`::: code-group
+npm install artplayer-plugin-iframe
+
+yarn add a ...`,l:"plugin/iframe.html#安装",a:"安装"},"37.4":{t:"`CDN`",p:`::: code-group
+https://cdn.jsdelivr.net/npm/artplayer-plugin-i ...`,l:"plugin/iframe.html#cdn",a:"cdn"},"37.5":{t:"使用",p:`::: code-group
+<!DOCTYPE html>
+<html>
+    <head ...`,l:"plugin/iframe.html#使用",a:"使用"},"37.6":{t:"`index.html` 接口",p:"",l:"plugin/iframe.html#index-html-接口",a:"index-html-接口"},"37.7":{t:"`commit`",p:"从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于 ...",l:"plugin/iframe.html#commit",a:"commit"},"37.8":{t:"`message`",p:`在 index.html 接收来自 iframe.html 的消息
+iframe.message((event) => ...`,l:"plugin/iframe.html#message",a:"message"},"37.9":{t:"`destroy`",p:`销毁后 index.html 无法与 iframe.html 通信
+iframe.destroy();
+
+`,l:"plugin/iframe.html#destroy",a:"destroy"},"37.10":{t:"`iframe.html` 接口",p:`:::warning 提示
+iframe.html 接口 只能运行在 iframe.html 里
+:::
+`,l:"plugin/iframe.html#iframe-html-接口",a:"iframe-html-接口"},"37.11":{t:"`inject`",p:`注入脚本,接收来自 index.html 的消息
+ArtplayerPluginIframe.inject();
+
+`,l:"plugin/iframe.html#inject",a:"inject"},"37.12":{t:"`postMessage`",p:`将消息推送到 index.html
+iframe.message((event) => {
+    console.i ...`,l:"plugin/iframe.html#postmessage",a:"postmessage"},"37.13":{t:"例子",p:"最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听  ...",l:"plugin/iframe.html#例子",a:"例子"},"38.0":{t:"# 基础选项",p:"",l:"start/option.html",a:"基础选项"},"38.1":{t:"`container`",p:`
+Type: String, Element
+Default: #artplayer
+
+播放器挂载的 DOM 容器
+< ...`,l:"start/option.html#container",a:"container"},"38.2":{t:"`url`",p:`
+Type: String
+Default: ''
+
+视频源地址
+<div className="run-c ...`,l:"start/option.html#url",a:"url"},"38.3":{t:"`id`",p:`
+Type: String
+Default: ''
+
+播放器的唯一标识,目前只用于记忆播放 autoplayback
+< ...`,l:"start/option.html#id",a:"id"},"38.4":{t:"`onReady`",p:`
+Type: Function
+Default: undefined
+
+构造函数接受一个函数作为第二个参数,播放器初始化成功 ...`,l:"start/option.html#onready",a:"onready"},"38.5":{t:"`poster`",p:`
+Type: String
+Default: ''
+
+视频的海报,只会出现在播放器初始化且未播放的状态下
+<div c ...`,l:"start/option.html#poster",a:"poster"},"38.6":{t:"`title`",p:`
+Type: String
+Default: ''
+
+视频标题,目前会出现在 视频截图 和 迷你模式 下
+<div c ...`,l:"start/option.html#title",a:"title"},"38.7":{t:"`theme`",p:`
+Type: String
+Default: #f00
+
+播放器主题颜色,目前用于 进度条 和 高亮元素 上
+<div ...`,l:"start/option.html#theme",a:"theme"},"38.8":{t:"`volume`",p:`
+Type: Number
+Default: 0.7
+
+播放器的默认音量
+<div className="r ...`,l:"start/option.html#volume",a:"volume"},"38.9":{t:"`isLive`",p:`
+Type: Boolean
+Default: false
+
+使用直播模式,会隐藏进度条和播放时间
+<div clas ...`,l:"start/option.html#islive",a:"islive"},"38.10":{t:"`muted`",p:`
+Type: Boolean
+Default: false
+
+是否默认静音
+<div className=" ...`,l:"start/option.html#muted",a:"muted"},"38.11":{t:"`autoplay`",p:`
+Type: Boolean
+Default: false
+
+是否自动播放
+<div className=" ...`,l:"start/option.html#autoplay",a:"autoplay"},"38.12":{t:"`autoSize`",p:`
+Type: Boolean
+Default: false
+
+播放器的尺寸默认会填充整个 container 容器尺寸,所以 ...`,l:"start/option.html#autosize",a:"autosize"},"38.13":{t:"`autoMini`",p:`
+Type: Boolean
+Default: false
+
+当播放器滚动到浏览器视口以外时,自动进入 迷你播放 模式
+&l ...`,l:"start/option.html#automini",a:"automini"},"38.14":{t:"`loop`",p:`
+Type: Boolean
+Default: false
+
+是否循环播放
+<div className=" ...`,l:"start/option.html#loop",a:"loop"},"38.15":{t:"`flip`",p:`
+Type: Boolean
+Default: false
+
+是否显示视频翻转功能,目前只出现在 设置面板 和 右键菜单 里 ...`,l:"start/option.html#flip",a:"flip"},"38.16":{t:"`playbackRate`",p:`
+Type: Boolean
+Default: false
+
+是否显示视频播放速度功能,会出现在 设置面板 和 右键菜单 里 ...`,l:"start/option.html#playbackrate",a:"playbackrate"},"38.17":{t:"`aspectRatio`",p:`
+Type: Boolean
+Default: false
+
+是否显示视频长宽比功能,会出现在 设置面板 和 右键菜单 里
+ ...`,l:"start/option.html#aspectratio",a:"aspectratio"},"38.18":{t:"`screenshot`",p:`
+Type: Boolean
+Default: false
+
+是否在底部控制栏里显示 视频截图 功能
+<div cla ...`,l:"start/option.html#screenshot",a:"screenshot"},"38.19":{t:"`setting`",p:`
+Type: Boolean
+Default: false
+
+是否在底部控制栏里显示 设置面板 的开关按钮
+<div  ...`,l:"start/option.html#setting",a:"setting"},"38.20":{t:"`hotkey`",p:`
+Type: Boolean
+Default: true
+
+是否使用快捷键
+<div className=" ...`,l:"start/option.html#hotkey",a:"hotkey"},"38.21":{t:"`pip`",p:`
+Type: Boolean
+Default: false
+
+是否在底部控制栏里显示 画中画 的开关按钮
+<div c ...`,l:"start/option.html#pip",a:"pip"},"38.22":{t:"`mutex`",p:`
+Type: Boolean
+Default: true
+
+假如页面里同时存在多个播放器,是否只能让一个播放器播放
+< ...`,l:"start/option.html#mutex",a:"mutex"},"38.23":{t:"`fullscreen`",p:`
+Type: Boolean
+Default: false
+
+是否在底部控制栏里显示播放器 窗口全屏 按钮
+<div  ...`,l:"start/option.html#fullscreen",a:"fullscreen"},"38.24":{t:"`fullscreenWeb`",p:`
+Type: Boolean
+Default: false
+
+是否在底部控制栏里显示播放器 网页全屏 按钮
+<div  ...`,l:"start/option.html#fullscreenweb",a:"fullscreenweb"},"38.25":{t:"`subtitleOffset`",p:`
+Type: Boolean
+Default: false
+
+字幕时间偏移,范围在 [-5s, 5s],出现在 设置面板 里 ...`,l:"start/option.html#subtitleoffset",a:"subtitleoffset"},"38.26":{t:"`miniProgressBar`",p:`
+Type: Boolean
+Default: false
+
+迷你进度条,只在播放器失去焦点后且正在播放时出现
+<di ...`,l:"start/option.html#miniprogressbar",a:"miniprogressbar"},"38.27":{t:"`useSSR`",p:`
+Type: Boolean
+Default: false
+
+是否使用 SSR 挂载模式,假如你希望在播放器挂载前,就提前渲 ...`,l:"start/option.html#usessr",a:"usessr"},"38.28":{t:"`playsInline`",p:`
+Type: Boolean
+Default: true
+
+在移动端是否使用 playsInline 模式
+<div  ...`,l:"start/option.html#playsinline",a:"playsinline"},"38.29":{t:"`layers`",p:`
+Type: Array
+Default: []
+
+初始化自定义的 层
+<div className="ru ...`,l:"start/option.html#layers",a:"layers"},"38.30":{t:"`settings`",p:`
+Type: Array
+Default: []
+
+初始化自定义的 设置面板
+<div className=" ...`,l:"start/option.html#settings",a:"settings"},"38.31":{t:"`contextmenu`",p:`
+Type: Array
+Default: []
+
+初始化自定义的 右键菜单
+<div className=" ...`,l:"start/option.html#contextmenu",a:"contextmenu"},"38.32":{t:"`controls`",p:`
+Type: Array
+Default: []
+
+初始化自定义的底部 控制栏
+<div className=&quo ...`,l:"start/option.html#controls",a:"controls"},"38.33":{t:"`quality`",p:`
+Type: Array
+Default: []
+
+是否在底部控制栏里显示 画质选择 列表
+
+
+
+属性
+类型
+描述
+
+
+
+
+ ...`,l:"start/option.html#quality",a:"quality"},"38.34":{t:"`highlight`",p:`
+Type: Array
+Default: []
+
+在进度条上显示 高亮信息
+
+
+
+属性
+类型
+描述
+
+
+
+
+time
+Nu ...`,l:"start/option.html#highlight",a:"highlight"},"38.35":{t:"`plugins`",p:`
+Type: Array
+Default: []
+
+初始化自定义的 插件
+<div className="r ...`,l:"start/option.html#plugins",a:"plugins"},"38.36":{t:"`whitelist`",p:`
+Type: Array
+Default: []
+
+因为不同的移动设备存在多种差异和限制,有时候你希望在某些移动设备上不使用 ...`,l:"start/option.html#whitelist",a:"whitelist"},"38.37":{t:"`thumbnails`",p:`
+Type: Object
+Default: {}
+
+在进度条上设置 预览图
+
+
+
+属性
+类型
+描述
+
+
+
+
+url
+Str ...`,l:"start/option.html#thumbnails",a:"thumbnails"},"38.38":{t:"`subtitle`",p:`
+Type: Object
+Default: {}
+
+设置视频的字幕,支持字幕格式:vtt, srt, ass
+
+
+
+属性
+ ...`,l:"start/option.html#subtitle",a:"subtitle"},"38.39":{t:"`moreVideoAttr`",p:`
+Type: Object
+Default: {'controls': false,'preload': 'metadata ...`,l:"start/option.html#morevideoattr",a:"morevideoattr"},"38.40":{t:"`icons`",p:`
+Type: Object
+Default: {}
+
+用于替换默认图标,支持 Html 字符串和 HTMLElement
+& ...`,l:"start/option.html#icons",a:"icons"},"38.41":{t:"`type`",p:`
+Type: String
+Default: ''
+
+用于指明视频的格式,需要配合 customType 一起使用,默认视频 ...`,l:"start/option.html#type",a:"type"},"38.42":{t:"`customType`",p:`
+Type: Object
+Default: {}
+
+通过视频的 type 进行匹配,把视频解码权交给第三方程序进行处理,处 ...`,l:"start/option.html#customtype",a:"customtype"},"38.43":{t:"`lang`",p:`
+Type: String
+Default: navigator.language.toLowerCase()
+
+默认显示语 ...`,l:"start/option.html#lang",a:"lang"},"38.44":{t:"`i18n`",p:`
+Type: Object
+Default: {}
+
+自定义 i18n 配置,该配置会和自带的 i18n 进行深度合并
+新增 ...`,l:"start/option.html#i18n",a:"i18n"},"38.45":{t:"`lock`",p:`
+Type: Boolean
+Default: false
+
+是否在移动端显示一个 锁定按钮 ,用于隐藏底部 控制栏
+< ...`,l:"start/option.html#lock",a:"lock"},"38.46":{t:"`fastForward`",p:`
+Type: Boolean
+Default: false
+
+是否在移动端添加长按视频快进功能
+<div classN ...`,l:"start/option.html#fastforward",a:"fastforward"},"38.47":{t:"`autoPlayback`",p:`
+Type: Boolean
+Default: false
+
+是否使用自动 回放功能
+<div className=& ...`,l:"start/option.html#autoplayback",a:"autoplayback"},"38.48":{t:"`autoOrientation`",p:`
+Type: Boolean
+Default: false
+
+是否在移动端的网页全屏时,根据视频尺寸和视口尺寸,旋转播放器
+ ...`,l:"start/option.html#autoorientation",a:"autoorientation"},"38.49":{t:"`airplay`",p:`
+Type: Boolean
+Default: false
+
+是否显示 airplay 按钮,当前只有部分浏览器支持该功能
+ ...`,l:"start/option.html#airplay",a:"airplay"},"38.50":{t:"`cssVar`",p:`
+Type: Object
+Default: {}
+
+用于改变内置的css变量
+<div className=&quo ...`,l:"start/option.html#cssvar",a:"cssvar"}},n={previewLength:62,buttonLabel:"Search",placeholder:"Search docs",allow:[],ignore:[]},a={INDEX_DATA:t,PREVIEW_LOOKUP:e,Options:n};export{a as default};
diff --git a/docs/document/assets/component_contextmenu.md.59792b84.js b/docs/document/assets/component_contextmenu.md.59792b84.js
new file mode 100644
index 000000000..b9deac4af
--- /dev/null
+++ b/docs/document/assets/component_contextmenu.md.59792b84.js
@@ -0,0 +1,83 @@
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"右键菜单","description":"","frontmatter":{},"headers":[],"relativePath":"component/contextmenu.md","lastUpdated":1682222294000}'),o={name:"component/contextmenu.md"},e=s('

右键菜单 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

创建 ​

',4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+// Get the Element of contextmenu by name
+console.info(art.contextmenu['your-menu']);

添加 ​

`,2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.contextmenu.add({
+    name: 'your-menu',
+    html: 'Your Menu',
+    click: function (...args) {
+        console.info(args);
+        art.contextmenu.show = false;
+    },
+});
+
+art.contextmenu.show = true;
+
+// Get the Element of contextmenu by name
+console.info(art.contextmenu['your-menu']);

删除 ​

`,2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the contextmenu by name
+        art.contextmenu.remove('your-menu')
+    }, 3000);
+});

更新 ​

`,2),A=n("div",{className:"run-code"},"▶ Run Code",-1),i=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the contextmenu by name
+        art.contextmenu.update({
+            name: 'your-menu',
+            html: 'Your New Menu',
+        })
+    }, 3000);
+});
`,1),C=[e,t,r,c,D,F,y,A,i];function d(b,u,m,h,_,g){return p(),l("div",null,C)}const x=a(o,[["render",d]]);export{f as __pageData,x as default}; diff --git a/docs/document/assets/component_contextmenu.md.59792b84.lean.js b/docs/document/assets/component_contextmenu.md.59792b84.lean.js new file mode 100644 index 000000000..8c439e3b2 --- /dev/null +++ b/docs/document/assets/component_contextmenu.md.59792b84.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"右键菜单","description":"","frontmatter":{},"headers":[],"relativePath":"component/contextmenu.md","lastUpdated":1682222294000}'),o={name:"component/contextmenu.md"},e=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",2),A=n("div",{className:"run-code"},"▶ Run Code",-1),i=s("",1),C=[e,t,r,c,D,F,y,A,i];function d(b,u,m,h,_,g){return p(),l("div",null,C)}const x=a(o,[["render",d]]);export{f as __pageData,x as default}; diff --git a/docs/document/assets/component_controls.md.7cf7e297.js b/docs/document/assets/component_controls.md.7cf7e297.js new file mode 100644 index 000000000..74fd4f11f --- /dev/null +++ b/docs/document/assets/component_controls.md.7cf7e297.js @@ -0,0 +1,130 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"控制器","description":"","frontmatter":{},"headers":[],"relativePath":"component/controls.md","lastUpdated":1682222294000}'),o={name:"component/controls.md"},e=s('

控制器 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本
positionStringleft 和 right 控制控制器出现的左右位置
selectorArray选择列表的对象数组
onSelectFunction选择列表的元素被点击时触发的函数

创建 ​

',4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'your-button',
+            index: 10,
+            position: 'left',
+            html: 'Your Button',
+            tooltip: 'Your Button',
+            style: {
+                color: 'red',
+            },
+            click: function (...args) {
+                console.info('click', args);
+            },
+            mounted: function (...args) {
+                console.info('mounted', args);
+            },
+        },
+        {
+            name: 'subtitle',
+            position: 'right',
+            html: 'Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: '<span style="color:red">subtitle 01</span>',
+                },
+                {
+                    html: '<span style="color:yellow">subtitle 02</span>',
+                },
+            ],
+            onSelect: function (item, $dom) {
+                console.info(item, $dom);
+                return 'Your ' + item.html;
+            },
+        },
+    ],
+});
+
+// Get the Element of control by name
+console.info(art.controls['your-button']);
+console.info(art.controls.subtitle);

添加 ​

`,2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.controls.add({
+    name: 'button1',
+    index: 10,
+    position: 'left',
+    html: 'Your Button',
+    tooltip: 'Your Button',
+    style: {
+        color: 'red',
+    },
+    click: function (...args) {
+        console.info('click', args);
+    },
+    mounted: function (...args) {
+        console.info('mounted', args);
+    },
+});
+
+// Get the Element of control by name
+console.info(art.controls.button1);

删除 ​

`,2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'Your Button',
+            tooltip: 'Your Button',
+            style: {
+                color: 'red',
+            },
+        }
+    ]
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the control by name
+        art.controls.remove('button1');
+    }, 3000);
+});

更新 ​

`,2),i=n("div",{className:"run-code"},"▶ Run Code",-1),C=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: 'subtitle 01',
+                },
+                {
+                    html: 'subtitle 02',
+                },
+            ],
+        }
+    ]
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the control by name
+        art.controls.update({
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'New Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: 'new subtitle 01',
+                },
+                {
+                    html: 'new subtitle 02',
+                },
+            ],
+        });
+    }, 3000);
+});
`,1),A=[e,t,r,c,D,F,y,i,C];function b(d,u,m,h,g,_){return p(),l("div",null,A)}const T=a(o,[["render",b]]);export{f as __pageData,T as default}; diff --git a/docs/document/assets/component_controls.md.7cf7e297.lean.js b/docs/document/assets/component_controls.md.7cf7e297.lean.js new file mode 100644 index 000000000..7b4c25061 --- /dev/null +++ b/docs/document/assets/component_controls.md.7cf7e297.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"控制器","description":"","frontmatter":{},"headers":[],"relativePath":"component/controls.md","lastUpdated":1682222294000}'),o={name:"component/controls.md"},e=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",2),i=n("div",{className:"run-code"},"▶ Run Code",-1),C=s("",1),A=[e,t,r,c,D,F,y,i,C];function b(d,u,m,h,g,_){return p(),l("div",null,A)}const T=a(o,[["render",b]]);export{f as __pageData,T as default}; diff --git a/docs/document/assets/component_layers.md.8388a343.js b/docs/document/assets/component_layers.md.8388a343.js new file mode 100644 index 000000000..4d4a45479 --- /dev/null +++ b/docs/document/assets/component_layers.md.8388a343.js @@ -0,0 +1,102 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const v=JSON.parse('{"title":"业务层","description":"","frontmatter":{},"headers":[],"relativePath":"component/layers.md","lastUpdated":1682224571000}'),o={name:"component/layers.md"},e=s('

业务层 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

创建 ​

',4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: \`<img style="width: 100px" src="\${img}">\`,
+            tooltip: 'Potser Tip',
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+            click: function (...args) {
+                console.info('click', args);
+            },
+            mounted: function (...args) {
+                console.info('mounted', args);
+            },
+        },
+    ],
+});
+
+// Get the Element of layer by name
+console.info(art.layers['potser']);

添加 ​

`,2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.layers.add({
+    name: 'potser',
+    html: \`<img style="width: 100px" src="\${img}">\`,
+    tooltip: 'Potser Tip',
+    style: {
+        position: 'absolute',
+        top: '50px',
+        right: '50px',
+    },
+    click: function (...args) {
+        console.info('click', args);
+    },
+    mounted: function (...args) {
+        console.info('mounted', args);
+    },
+});
+
+// Get the Element of layer by name
+console.info(art.layers['potser']);

删除 ​

`,2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: \`<img style="width: 100px" src="\${img}">\`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+        },
+    ],
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the layer by name
+        art.layers.remove('potser');
+    }, 3000);
+});

更新 ​

`,2),i=n("div",{className:"run-code"},"▶ Run Code",-1),C=s(`
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: \`<img style="width: 100px" src="\${img}">\`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+        },
+    ],
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the layer by name
+        art.layers.update({
+            name: 'potser',
+            html: \`<img style="width: 200px" src="\${img}">\`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                left: '50px',
+            },
+        });
+    }, 3000);
+});
`,1),A=[e,t,r,c,D,F,y,i,C];function b(d,h,m,u,g,_){return p(),l("div",null,A)}const f=a(o,[["render",b]]);export{v as __pageData,f as default}; diff --git a/docs/document/assets/component_layers.md.8388a343.lean.js b/docs/document/assets/component_layers.md.8388a343.lean.js new file mode 100644 index 000000000..45e83882c --- /dev/null +++ b/docs/document/assets/component_layers.md.8388a343.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const v=JSON.parse('{"title":"业务层","description":"","frontmatter":{},"headers":[],"relativePath":"component/layers.md","lastUpdated":1682224571000}'),o={name:"component/layers.md"},e=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",2),i=n("div",{className:"run-code"},"▶ Run Code",-1),C=s("",1),A=[e,t,r,c,D,F,y,i,C];function b(d,h,m,u,g,_){return p(),l("div",null,A)}const f=a(o,[["render",b]]);export{v as __pageData,f as default}; diff --git a/docs/document/assets/en_start_setting.md.124e026d.js b/docs/document/assets/component_setting.md.149ac42e.js similarity index 61% rename from docs/document/assets/en_start_setting.md.124e026d.js rename to docs/document/assets/component_setting.md.149ac42e.js index 9f570ed91..184e08f14 100644 --- a/docs/document/assets/en_start_setting.md.124e026d.js +++ b/docs/document/assets/component_setting.md.149ac42e.js @@ -1,4 +1,4 @@ -import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/setting.md","lastUpdated":1674271220000}'),e={name:"en/start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-label":'Permalink to "设置面板"'},"​")],-1),r=s("p",null,[n("You need to open the settings panel first. The player has four settings by default: "),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),c=s("div",{className:"run-code"},"▶ Run Code",-1),D=a(`
js
var art = new Artplayer({
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const k=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"component/setting.md","lastUpdated":1682223765000}'),o={name:"component/setting.md"},e=s('

设置面板 ​

内置 ​

需先打开设置面板,然后自带四个内置项:flip, playbackRate, aspectRatio, subtitleOffset

',3),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 	setting: true,
@@ -6,7 +6,7 @@ import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js"
     playbackRate: true,
     aspectRatio: true,
     subtitleOffset: true,
-});

Selection list ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
selectorArrayElement list
onSelectFunctionElement click event
widthNumberList width
tooltipStringPrompt text
`,3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a(`
js
var art = new Artplayer({
+});

创建 - 选择列表 ​

属性类型描述
htmlString, Element元素的 DOM
iconString, Element元素的图标
selectorArray元素列表
onSelectFunction元素点击事件
widthNumber列表宽度
tooltipString提示文本
`,3),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -58,7 +58,7 @@ import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js"
             },
         },
     ],
-});

List nesting ​

`,2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a(`
js
var art = new Artplayer({
+});

创建 - 列表嵌套 ​

`,2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -101,7 +101,7 @@ import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js"
             ],
         },
     ],
-});

Toggle button ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
switchBooleanButton default state
onSwitchFunctionButton switching event
tooltipStringPrompt text
`,3),i=s("div",{className:"run-code"},"▶ Run Code",-1),d=a(`
js
var art = new Artplayer({
+});

创建 - 切换按钮 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
switchBoolean按钮默认状态
onSwitchFunction按钮切换事件
tooltipString提示文本
`,3),C=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -120,11 +120,11 @@ import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js"
             },
         },
     ],
-});

Range Slider ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
rangeArrayDefault state array
onRangeFunctionEvent triggered on completion
onChangeFunctionEvents triggered when changing
tooltipStringPrompt text
js
const range = [5, 1, 10, 1];
+});

创建 - 范围滑块 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
rangeArray默认状态数组
onRangeFunction完成时触发的事件
onChangeFunction变化时触发的事件
tooltipString提示文本
js
const range = [5, 1, 10, 1];
 const value = range[0];
 const min = range[1];
 const max = range[2];
-const step = range[3];
`,4),b=s("div",{className:"run-code"},"▶ Run Code",-1),m=a(`
js
var art = new Artplayer({
+const step = range[3];
`,4),i=n("div",{className:"run-code"},"▶ Run Code",-1),b=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -140,4 +140,68 @@ import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js"
             },
         },
     ],
-});
`,1),u=[t,r,c,D,y,F,C,A,i,d,b,m];function h(g,_,E,f,v,S){return o(),p("div",null,u)}const P=l(e,[["render",h]]);export{w as __pageData,P as default}; +});

添加 ​

`,2),d=n("div",{className:"run-code"},"▶ Run Code",-1),u=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+});
+
+art.setting.show = true;
+
+art.setting.add({
+    html: 'Slider',
+    tooltip: '5x',
+    icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+    range: [5, 1, 10, 1],
+});

删除 ​

`,2),m=n("div",{className:"run-code"},"▶ Run Code",-1),h=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+    flip: true,
+    settings: [
+        {
+            name: 'slider',
+            html: 'Slider',
+            tooltip: '5x',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            range: [5, 1, 10, 1],
+        },
+    ],
+});
+
+art.setting.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the setting by name
+        art.setting.remove('slider');
+    }, 3000);
+});

更新 ​

`,2),g=n("div",{className:"run-code"},"▶ Run Code",-1),_=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+    settings: [
+        {
+            name: 'slider',
+            html: 'Slider',
+            tooltip: '5x',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            range: [5, 1, 10, 1],
+        },
+    ],
+});
+
+art.setting.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the setting by name
+        art.setting.update({
+            name: 'slider',
+            html: 'PIP Mode',
+            tooltip: 'Close',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            switch: false,
+        });
+    }, 3000);
+});
`,1),E=[e,t,r,c,D,F,y,C,A,i,b,d,u,m,h,g,_];function v(f,S,q,T,w,P){return p(),l("div",null,E)}const R=a(o,[["render",v]]);export{k as __pageData,R as default}; diff --git a/docs/document/assets/component_setting.md.149ac42e.lean.js b/docs/document/assets/component_setting.md.149ac42e.lean.js new file mode 100644 index 000000000..adef46d05 --- /dev/null +++ b/docs/document/assets/component_setting.md.149ac42e.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const k=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"component/setting.md","lastUpdated":1682223765000}'),o={name:"component/setting.md"},e=s("",3),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",3),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",3),C=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",4),i=n("div",{className:"run-code"},"▶ Run Code",-1),b=s("",2),d=n("div",{className:"run-code"},"▶ Run Code",-1),u=s("",2),m=n("div",{className:"run-code"},"▶ Run Code",-1),h=s("",2),g=n("div",{className:"run-code"},"▶ Run Code",-1),_=s("",1),E=[e,t,r,c,D,F,y,C,A,i,b,d,u,m,h,g,_];function v(f,S,q,T,w,P){return p(),l("div",null,E)}const R=a(o,[["render",v]]);export{k as __pageData,R as default}; diff --git a/docs/document/assets/en_advanced_built-in.md.3df06886.js b/docs/document/assets/en_advanced_built-in.md.9cf203af.js similarity index 95% rename from docs/document/assets/en_advanced_built-in.md.3df06886.js rename to docs/document/assets/en_advanced_built-in.md.9cf203af.js index 5d5abab64..153ea2bca 100644 --- a/docs/document/assets/en_advanced_built-in.md.3df06886.js +++ b/docs/document/assets/en_advanced_built-in.md.9cf203af.js @@ -85,7 +85,7 @@ import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";c setTimeout(() => { art.layers.show = false; }, 1000); -});

组件配置 请参考以下地址:

/start/component.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
`,5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/layers.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
`,5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -99,7 +99,7 @@ import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";c
 	setTimeout(() => {
 		art.controls.show = false;
 	}, 1000);
-});

组件配置 请参考以下地址:

/start/component.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
`,5),P=n("div",{className:"run-code"},"▶ Run Code",-1),S=s(`
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/controls.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
`,5),P=n("div",{className:"run-code"},"▶ Run Code",-1),S=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -113,7 +113,7 @@ import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";c
 	setTimeout(() => {
 		art.contextmenu.show = false;
 	}, 1000);
-});

组件配置 请参考以下地址:

/start/component.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
`,5),I=n("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/contextmenu.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
`,5),I=n("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -172,7 +172,7 @@ import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";c
 	setTimeout(() => {
 		art.setting.show = false;
 	}, 1000);
-});

设置面板 请参考以下地址

/start/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

`,4),z=n("div",{className:"run-code"},"▶ Run Code",-1),B=s(`
js
var art = new Artplayer({
+});

设置面板 请参考以下地址

/component/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

`,4),z=n("div",{className:"run-code"},"▶ Run Code",-1),B=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
diff --git a/docs/document/assets/en_advanced_built-in.md.3df06886.lean.js b/docs/document/assets/en_advanced_built-in.md.9cf203af.lean.js
similarity index 100%
rename from docs/document/assets/en_advanced_built-in.md.3df06886.lean.js
rename to docs/document/assets/en_advanced_built-in.md.9cf203af.lean.js
diff --git a/docs/document/assets/en_component_contextmenu.md.81d8a231.js b/docs/document/assets/en_component_contextmenu.md.81d8a231.js
new file mode 100644
index 000000000..b246b8fc8
--- /dev/null
+++ b/docs/document/assets/en_component_contextmenu.md.81d8a231.js
@@ -0,0 +1,83 @@
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"右键菜单","description":"","frontmatter":{},"headers":[],"relativePath":"en/component/contextmenu.md","lastUpdated":null}'),o={name:"en/component/contextmenu.md"},e=s('

右键菜单 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

创建 ​

',4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+// Get the Element of contextmenu by name
+console.info(art.contextmenu['your-menu']);

添加 ​

`,2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.contextmenu.add({
+    name: 'your-menu',
+    html: 'Your Menu',
+    click: function (...args) {
+        console.info(args);
+        art.contextmenu.show = false;
+    },
+});
+
+art.contextmenu.show = true;
+
+// Get the Element of contextmenu by name
+console.info(art.contextmenu['your-menu']);

删除 ​

`,2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the contextmenu by name
+        art.contextmenu.remove('your-menu')
+    }, 3000);
+});

更新 ​

`,2),A=n("div",{className:"run-code"},"▶ Run Code",-1),i=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the contextmenu by name
+        art.contextmenu.update({
+            name: 'your-menu',
+            html: 'Your New Menu',
+        })
+    }, 3000);
+});
`,1),C=[e,t,r,c,D,F,y,A,i];function d(b,u,m,h,_,g){return p(),l("div",null,C)}const x=a(o,[["render",d]]);export{f as __pageData,x as default}; diff --git a/docs/document/assets/en_component_contextmenu.md.81d8a231.lean.js b/docs/document/assets/en_component_contextmenu.md.81d8a231.lean.js new file mode 100644 index 000000000..82ac80c4c --- /dev/null +++ b/docs/document/assets/en_component_contextmenu.md.81d8a231.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"右键菜单","description":"","frontmatter":{},"headers":[],"relativePath":"en/component/contextmenu.md","lastUpdated":null}'),o={name:"en/component/contextmenu.md"},e=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",2),A=n("div",{className:"run-code"},"▶ Run Code",-1),i=s("",1),C=[e,t,r,c,D,F,y,A,i];function d(b,u,m,h,_,g){return p(),l("div",null,C)}const x=a(o,[["render",d]]);export{f as __pageData,x as default}; diff --git a/docs/document/assets/en_component_controls.md.b71709d0.js b/docs/document/assets/en_component_controls.md.b71709d0.js new file mode 100644 index 000000000..57f6cd2e2 --- /dev/null +++ b/docs/document/assets/en_component_controls.md.b71709d0.js @@ -0,0 +1,130 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"控制器","description":"","frontmatter":{},"headers":[],"relativePath":"en/component/controls.md","lastUpdated":null}'),o={name:"en/component/controls.md"},e=s('

控制器 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本
positionStringleft 和 right 控制控制器出现的左右位置
selectorArray选择列表的对象数组
onSelectFunction选择列表的元素被点击时触发的函数

创建 ​

',4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'your-button',
+            index: 10,
+            position: 'left',
+            html: 'Your Button',
+            tooltip: 'Your Button',
+            style: {
+                color: 'red',
+            },
+            click: function (...args) {
+                console.info('click', args);
+            },
+            mounted: function (...args) {
+                console.info('mounted', args);
+            },
+        },
+        {
+            name: 'subtitle',
+            position: 'right',
+            html: 'Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: '<span style="color:red">subtitle 01</span>',
+                },
+                {
+                    html: '<span style="color:yellow">subtitle 02</span>',
+                },
+            ],
+            onSelect: function (item, $dom) {
+                console.info(item, $dom);
+                return 'Your ' + item.html;
+            },
+        },
+    ],
+});
+
+// Get the Element of control by name
+console.info(art.controls['your-button']);
+console.info(art.controls.subtitle);

添加 ​

`,2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.controls.add({
+    name: 'button1',
+    index: 10,
+    position: 'left',
+    html: 'Your Button',
+    tooltip: 'Your Button',
+    style: {
+        color: 'red',
+    },
+    click: function (...args) {
+        console.info('click', args);
+    },
+    mounted: function (...args) {
+        console.info('mounted', args);
+    },
+});
+
+// Get the Element of control by name
+console.info(art.controls.button1);

删除 ​

`,2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'Your Button',
+            tooltip: 'Your Button',
+            style: {
+                color: 'red',
+            },
+        }
+    ]
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the control by name
+        art.controls.remove('button1');
+    }, 3000);
+});

更新 ​

`,2),i=n("div",{className:"run-code"},"▶ Run Code",-1),C=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: 'subtitle 01',
+                },
+                {
+                    html: 'subtitle 02',
+                },
+            ],
+        }
+    ]
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the control by name
+        art.controls.update({
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'New Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: 'new subtitle 01',
+                },
+                {
+                    html: 'new subtitle 02',
+                },
+            ],
+        });
+    }, 3000);
+});
`,1),A=[e,t,r,c,D,F,y,i,C];function b(d,u,m,h,g,_){return p(),l("div",null,A)}const T=a(o,[["render",b]]);export{f as __pageData,T as default}; diff --git a/docs/document/assets/en_component_controls.md.b71709d0.lean.js b/docs/document/assets/en_component_controls.md.b71709d0.lean.js new file mode 100644 index 000000000..f8e7999f3 --- /dev/null +++ b/docs/document/assets/en_component_controls.md.b71709d0.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"控制器","description":"","frontmatter":{},"headers":[],"relativePath":"en/component/controls.md","lastUpdated":null}'),o={name:"en/component/controls.md"},e=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",2),i=n("div",{className:"run-code"},"▶ Run Code",-1),C=s("",1),A=[e,t,r,c,D,F,y,i,C];function b(d,u,m,h,g,_){return p(),l("div",null,A)}const T=a(o,[["render",b]]);export{f as __pageData,T as default}; diff --git a/docs/document/assets/en_component_layers.md.5214ae90.js b/docs/document/assets/en_component_layers.md.5214ae90.js new file mode 100644 index 000000000..4aa7efa27 --- /dev/null +++ b/docs/document/assets/en_component_layers.md.5214ae90.js @@ -0,0 +1,102 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const v=JSON.parse('{"title":"业务层","description":"","frontmatter":{},"headers":[],"relativePath":"en/component/layers.md","lastUpdated":null}'),o={name:"en/component/layers.md"},e=s('

业务层 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

创建 ​

',4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: \`<img style="width: 100px" src="\${img}">\`,
+            tooltip: 'Potser Tip',
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+            click: function (...args) {
+                console.info('click', args);
+            },
+            mounted: function (...args) {
+                console.info('mounted', args);
+            },
+        },
+    ],
+});
+
+// Get the Element of layer by name
+console.info(art.layers['potser']);

添加 ​

`,2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.layers.add({
+    name: 'potser',
+    html: \`<img style="width: 100px" src="\${img}">\`,
+    tooltip: 'Potser Tip',
+    style: {
+        position: 'absolute',
+        top: '50px',
+        right: '50px',
+    },
+    click: function (...args) {
+        console.info('click', args);
+    },
+    mounted: function (...args) {
+        console.info('mounted', args);
+    },
+});
+
+// Get the Element of layer by name
+console.info(art.layers['potser']);

删除 ​

`,2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: \`<img style="width: 100px" src="\${img}">\`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+        },
+    ],
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the layer by name
+        art.layers.remove('potser');
+    }, 3000);
+});

更新 ​

`,2),i=n("div",{className:"run-code"},"▶ Run Code",-1),C=s(`
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: \`<img style="width: 100px" src="\${img}">\`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+        },
+    ],
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the layer by name
+        art.layers.update({
+            name: 'potser',
+            html: \`<img style="width: 200px" src="\${img}">\`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                left: '50px',
+            },
+        });
+    }, 3000);
+});
`,1),A=[e,t,r,c,D,F,y,i,C];function b(d,h,m,u,g,_){return p(),l("div",null,A)}const f=a(o,[["render",b]]);export{v as __pageData,f as default}; diff --git a/docs/document/assets/en_component_layers.md.5214ae90.lean.js b/docs/document/assets/en_component_layers.md.5214ae90.lean.js new file mode 100644 index 000000000..d14e27d41 --- /dev/null +++ b/docs/document/assets/en_component_layers.md.5214ae90.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const v=JSON.parse('{"title":"业务层","description":"","frontmatter":{},"headers":[],"relativePath":"en/component/layers.md","lastUpdated":null}'),o={name:"en/component/layers.md"},e=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",2),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",2),i=n("div",{className:"run-code"},"▶ Run Code",-1),C=s("",1),A=[e,t,r,c,D,F,y,i,C];function b(d,h,m,u,g,_){return p(),l("div",null,A)}const f=a(o,[["render",b]]);export{v as __pageData,f as default}; diff --git a/docs/document/assets/start_setting.md.c779c019.js b/docs/document/assets/en_component_setting.md.9cd8bba3.js similarity index 61% rename from docs/document/assets/start_setting.md.c779c019.js rename to docs/document/assets/en_component_setting.md.9cd8bba3.js index ad11d56b9..6ba7d9b92 100644 --- a/docs/document/assets/start_setting.md.c779c019.js +++ b/docs/document/assets/en_component_setting.md.9cd8bba3.js @@ -1,4 +1,4 @@ -import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"start/setting.md","lastUpdated":1674271220000}'),e={name:"start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-label":'Permalink to "设置面板"'},"​")],-1),c=s("p",null,[n("需先打开设置面板,播放器默认自带四个设置项:"),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),r=s("div",{className:"run-code"},"▶ Run Code",-1),D=a(`
js
var art = new Artplayer({
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const k=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"en/component/setting.md","lastUpdated":null}'),o={name:"en/component/setting.md"},e=s('

设置面板 ​

内置 ​

需先打开设置面板,然后自带四个内置项:flip, playbackRate, aspectRatio, subtitleOffset

',3),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 	setting: true,
@@ -6,7 +6,7 @@ import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js"
     playbackRate: true,
     aspectRatio: true,
     subtitleOffset: true,
-});

选择列表 ​

属性类型描述
htmlString, Element元素的 DOM
iconString, Element元素的图标
selectorArray元素列表
onSelectFunction元素点击事件
widthNumber列表宽度
tooltipString提示文本
`,3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a(`
js
var art = new Artplayer({
+});

创建 - 选择列表 ​

属性类型描述
htmlString, Element元素的 DOM
iconString, Element元素的图标
selectorArray元素列表
onSelectFunction元素点击事件
widthNumber列表宽度
tooltipString提示文本
`,3),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -58,7 +58,7 @@ import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js"
             },
         },
     ],
-});

列表嵌套 ​

`,2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a(`
js
var art = new Artplayer({
+});

创建 - 列表嵌套 ​

`,2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -101,7 +101,7 @@ import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js"
             ],
         },
     ],
-});

切换按钮 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
switchBoolean按钮默认状态
onSwitchFunction按钮切换事件
tooltipString提示文本
`,3),i=s("div",{className:"run-code"},"▶ Run Code",-1),b=a(`
js
var art = new Artplayer({
+});

创建 - 切换按钮 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
switchBoolean按钮默认状态
onSwitchFunction按钮切换事件
tooltipString提示文本
`,3),C=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -120,11 +120,11 @@ import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js"
             },
         },
     ],
-});

范围滑块 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
rangeArray默认状态数组
onRangeFunction完成时触发的事件
onChangeFunction变化时触发的事件
tooltipString提示文本
js
const range = [5, 1, 10, 1];
+});

创建 - 范围滑块 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
rangeArray默认状态数组
onRangeFunction完成时触发的事件
onChangeFunction变化时触发的事件
tooltipString提示文本
js
const range = [5, 1, 10, 1];
 const value = range[0];
 const min = range[1];
 const max = range[2];
-const step = range[3];
`,4),d=s("div",{className:"run-code"},"▶ Run Code",-1),m=a(`
js
var art = new Artplayer({
+const step = range[3];
`,4),i=n("div",{className:"run-code"},"▶ Run Code",-1),b=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -140,4 +140,68 @@ import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js"
             },
         },
     ],
-});
`,1),u=[t,c,r,D,y,F,C,A,i,b,d,m];function h(_,g,E,v,f,S){return o(),p("div",null,u)}const q=l(e,[["render",h]]);export{w as __pageData,q as default}; +});

添加 ​

`,2),d=n("div",{className:"run-code"},"▶ Run Code",-1),u=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+});
+
+art.setting.show = true;
+
+art.setting.add({
+    html: 'Slider',
+    tooltip: '5x',
+    icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+    range: [5, 1, 10, 1],
+});

删除 ​

`,2),m=n("div",{className:"run-code"},"▶ Run Code",-1),h=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+    flip: true,
+    settings: [
+        {
+            name: 'slider',
+            html: 'Slider',
+            tooltip: '5x',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            range: [5, 1, 10, 1],
+        },
+    ],
+});
+
+art.setting.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the setting by name
+        art.setting.remove('slider');
+    }, 3000);
+});

更新 ​

`,2),g=n("div",{className:"run-code"},"▶ Run Code",-1),_=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+    settings: [
+        {
+            name: 'slider',
+            html: 'Slider',
+            tooltip: '5x',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            range: [5, 1, 10, 1],
+        },
+    ],
+});
+
+art.setting.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the setting by name
+        art.setting.update({
+            name: 'slider',
+            html: 'PIP Mode',
+            tooltip: 'Close',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            switch: false,
+        });
+    }, 3000);
+});
`,1),E=[e,t,r,c,D,F,y,C,A,i,b,d,u,m,h,g,_];function v(f,S,q,T,w,P){return p(),l("div",null,E)}const R=a(o,[["render",v]]);export{k as __pageData,R as default}; diff --git a/docs/document/assets/en_component_setting.md.9cd8bba3.lean.js b/docs/document/assets/en_component_setting.md.9cd8bba3.lean.js new file mode 100644 index 000000000..98426e348 --- /dev/null +++ b/docs/document/assets/en_component_setting.md.9cd8bba3.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const k=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"en/component/setting.md","lastUpdated":null}'),o={name:"en/component/setting.md"},e=s("",3),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",3),c=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",2),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",3),C=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",4),i=n("div",{className:"run-code"},"▶ Run Code",-1),b=s("",2),d=n("div",{className:"run-code"},"▶ Run Code",-1),u=s("",2),m=n("div",{className:"run-code"},"▶ Run Code",-1),h=s("",2),g=n("div",{className:"run-code"},"▶ Run Code",-1),_=s("",1),E=[e,t,r,c,D,F,y,C,A,i,b,d,u,m,h,g,_];function v(f,S,q,T,w,P){return p(),l("div",null,E)}const R=a(o,[["render",v]]);export{k as __pageData,R as default}; diff --git a/docs/document/assets/en_index.md.57889b30.js b/docs/document/assets/en_index.md.912b6c47.js similarity index 88% rename from docs/document/assets/en_index.md.57889b30.js rename to docs/document/assets/en_index.md.912b6c47.js index 9a9a7756a..fa6e1648b 100644 --- a/docs/document/assets/en_index.md.57889b30.js +++ b/docs/document/assets/en_index.md.912b6c47.js @@ -1,4 +1,4 @@ -import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","lastUpdated":1677208560000}'),p={name:"en/index.md"},e=l(`

Install ​

Install ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

Use ​

js
import Artplayer from 'artplayer';
+import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","lastUpdated":1677208560000}'),p={name:"en/index.md"},e=l(`

Important Note

The English document has not yet been completed, everything is subject to the Chinese document.

Install ​

Install ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

Use ​

js
import Artplayer from 'artplayer';
 
 const art = new Artplayer({
     container: '.artplayer-app',
@@ -17,7 +17,7 @@ import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=
     <body>
         <div class="artplayer-app"></div>
     </body>
-</html>

Tip

The size of the player depends on the size of the container, so your container must have a size

The following links can see more use examples

/packages/artplayer-template

Vue.js ​

vue
<template>
+</html>

Tip

The size of the player depends on the size of the container, so your container must have a size

The following links can see more use examples

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -81,7 +81,7 @@ import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=
     },
   },
 };
-</script>

Tip

Modifying option directly in Vue.js will not change the player

React.js ​

jsx
import { useEffect, useRef } from 'react';
+</script>

Tip

Modifying option directly in Vue.js will not change the player

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
@@ -143,4 +143,4 @@ import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=
       art: null,
     }
   }
-}
`,23),o=[e];function t(r,c,y,F,D,i){return a(),n("div",null,o)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; +}
`,24),o=[e];function t(r,c,y,F,i,D){return a(),n("div",null,o)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; diff --git a/docs/document/assets/en_index.md.57889b30.lean.js b/docs/document/assets/en_index.md.912b6c47.lean.js similarity index 65% rename from docs/document/assets/en_index.md.57889b30.lean.js rename to docs/document/assets/en_index.md.912b6c47.lean.js index bbe1f2504..7957cf372 100644 --- a/docs/document/assets/en_index.md.57889b30.lean.js +++ b/docs/document/assets/en_index.md.912b6c47.lean.js @@ -1 +1 @@ -import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","lastUpdated":1677208560000}'),p={name:"en/index.md"},e=l("",23),o=[e];function t(r,c,y,F,D,i){return a(),n("div",null,o)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; +import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","lastUpdated":1677208560000}'),p={name:"en/index.md"},e=l("",24),o=[e];function t(r,c,y,F,i,D){return a(),n("div",null,o)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; diff --git a/docs/document/assets/en_library_dash.md.f15e4e22.js b/docs/document/assets/en_library_dash.md.8b398743.js similarity index 71% rename from docs/document/assets/en_library_dash.md.f15e4e22.js rename to docs/document/assets/en_library_dash.md.8b398743.js index dacaf1135..9acf78ab5 100644 --- a/docs/document/assets/en_library_dash.md.f15e4e22.js +++ b/docs/document/assets/en_library_dash.md.8b398743.js @@ -1,12 +1,10 @@ -import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/dash.md","lastUpdated":1676696783000}'),e={name:"en/library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playMpd(video, url, art) {
+import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/dash.md","lastUpdated":1682180498000}'),e={name:"en/library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),y=o(`
js
function playMpd(video, url, art) {
     if (dashjs.supportsMediaSource()) {
+        if (art.dash) art.dash.destroy();
         const dash = dashjs.MediaPlayer().create();
         dash.initialize(video, url, art.option.autoplay);
-
-        // optional
         art.dash = dash; 
-        art.once('url', () => dash.destroy());
-        art.once('destroy', () => dash.destroy());
+        art.on('destroy', () => dash.destroy());
     } else {
         art.notice.show = 'Unsupported playback format: mpd';
     }
@@ -15,12 +13,12 @@ import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js"
 var art = new Artplayer({
     container: '.artplayer-app',
     url: 'https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd',
-    type: 'mpd',
-    customType: {
+    type: 'mpd',
+    customType: {
         mpd: playMpd
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.dash);
-});
`,1),y=[r,t,c,F];function D(A,i,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; + console.info(art.dash); +});
`,1),F=[r,t,c,y];function D(A,i,C,d,b,h){return p(),l("div",null,F)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/en_library_dash.md.f15e4e22.lean.js b/docs/document/assets/en_library_dash.md.8b398743.lean.js similarity index 77% rename from docs/document/assets/en_library_dash.md.f15e4e22.lean.js rename to docs/document/assets/en_library_dash.md.8b398743.lean.js index 9596ddbe9..30d063500 100644 --- a/docs/document/assets/en_library_dash.md.f15e4e22.lean.js +++ b/docs/document/assets/en_library_dash.md.8b398743.lean.js @@ -1 +1 @@ -import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/dash.md","lastUpdated":1676696783000}'),e={name:"en/library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; +import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/dash.md","lastUpdated":1682180498000}'),e={name:"en/library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),y=o("",1),F=[r,t,c,y];function D(A,i,C,d,b,h){return p(),l("div",null,F)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/en_library_flv.md.8c77cd21.js b/docs/document/assets/en_library_flv.md.2d06f5d7.js similarity index 72% rename from docs/document/assets/en_library_flv.md.8c77cd21.js rename to docs/document/assets/en_library_flv.md.2d06f5d7.js index f640a8f6e..3aca63319 100644 --- a/docs/document/assets/en_library_flv.md.8c77cd21.js +++ b/docs/document/assets/en_library_flv.md.2d06f5d7.js @@ -1,13 +1,11 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/flv.md","lastUpdated":1673692792000}'),e={name:"en/library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playFlv(video, url, art) {
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/flv.md","lastUpdated":1682180498000}'),e={name:"en/library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playFlv(video, url, art) {
     if (flvjs.isSupported()) {
+        if (art.flv) art.flv.destroy();
         const flv = flvjs.createPlayer({ type: 'flv', url });
         flv.attachMediaElement(video);
         flv.load();
-
-        // optional
         art.flv = flv; 
-        art.once('url', () => flv.destroy());
-        art.once('destroy', () => flv.destroy());
+        art.on('destroy', () => flv.destroy());
     } else {
         art.notice.show = 'Unsupported playback format: flv';
     }
@@ -16,12 +14,12 @@ import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.7583725
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.flv',
-    type: 'flv',
-    customType: {
+    type: 'flv',
+    customType: {
         flv: playFlv,
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.flv);
-});
`,1),y=[r,t,c,F];function D(i,A,C,b,d,u){return p(),l("div",null,y)}const h=a(e,[["render",D]]);export{f as __pageData,h as default}; + console.info(art.flv); +});
`,1),y=[r,t,c,F];function D(A,i,C,b,d,f){return p(),l("div",null,y)}const v=a(e,[["render",D]]);export{m as __pageData,v as default}; diff --git a/docs/document/assets/en_library_flv.md.8c77cd21.lean.js b/docs/document/assets/en_library_flv.md.2d06f5d7.lean.js similarity index 69% rename from docs/document/assets/en_library_flv.md.8c77cd21.lean.js rename to docs/document/assets/en_library_flv.md.2d06f5d7.lean.js index 1d24ea465..b1e9d1849 100644 --- a/docs/document/assets/en_library_flv.md.8c77cd21.lean.js +++ b/docs/document/assets/en_library_flv.md.2d06f5d7.lean.js @@ -1 +1 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/flv.md","lastUpdated":1673692792000}'),e={name:"en/library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,d,u){return p(),l("div",null,y)}const h=a(e,[["render",D]]);export{f as __pageData,h as default}; +import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/flv.md","lastUpdated":1682180498000}'),e={name:"en/library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,b,d,f){return p(),l("div",null,y)}const v=a(e,[["render",D]]);export{m as __pageData,v as default}; diff --git a/docs/document/assets/en_library_hls.md.8c1ffd65.js b/docs/document/assets/en_library_hls.md.33b1553c.js similarity index 74% rename from docs/document/assets/en_library_hls.md.8c1ffd65.js rename to docs/document/assets/en_library_hls.md.33b1553c.js index 7eef2c75f..b10b221eb 100644 --- a/docs/document/assets/en_library_hls.md.8c1ffd65.js +++ b/docs/document/assets/en_library_hls.md.33b1553c.js @@ -1,13 +1,11 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/hls.md","lastUpdated":1673692792000}'),e={name:"en/library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playM3u8(video, url, art) {
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/hls.md","lastUpdated":1682180498000}'),e={name:"en/library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playM3u8(video, url, art) {
     if (Hls.isSupported()) {
+        if (art.hls) art.hls.destroy();
         const hls = new Hls();
         hls.loadSource(url);
         hls.attachMedia(video);
-
-        // optional
         art.hls = hls;
-        art.once('url', () => hls.destroy());
-        art.once('destroy', () => hls.destroy());
+        art.on('destroy', () => hls.destroy());
     } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
         video.src = url;
     } else {
@@ -18,12 +16,12 @@ import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.7583725
 var art = new Artplayer({
     container: '.artplayer-app',
     url: 'https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8',
-    type: 'm3u8',
-    customType: {
+    type: 'm3u8',
+    customType: {
         m3u8: playM3u8,
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.hls);
-});
`,1),y=[r,t,c,F];function D(i,A,C,b,h,u){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; + console.info(art.hls); +});
`,1),y=[r,t,c,F];function D(A,i,C,b,h,d){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/en_library_hls.md.8c1ffd65.lean.js b/docs/document/assets/en_library_hls.md.33b1553c.lean.js similarity index 84% rename from docs/document/assets/en_library_hls.md.8c1ffd65.lean.js rename to docs/document/assets/en_library_hls.md.33b1553c.lean.js index 32e4a8dad..0ae03c324 100644 --- a/docs/document/assets/en_library_hls.md.8c1ffd65.lean.js +++ b/docs/document/assets/en_library_hls.md.33b1553c.lean.js @@ -1 +1 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/hls.md","lastUpdated":1673692792000}'),e={name:"en/library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,h,u){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; +import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/hls.md","lastUpdated":1682180498000}'),e={name:"en/library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,b,h,d){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/en_library_webtorrent.md.3073edce.js b/docs/document/assets/en_library_webtorrent.md.3073edce.js deleted file mode 100644 index 68c63c939..000000000 --- a/docs/document/assets/en_library_webtorrent.md.3073edce.js +++ /dev/null @@ -1,28 +0,0 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"en/library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-label":'Permalink to "webtorrent.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playTorrent(video, url, art) {
-    const torrent = new WebTorrent();
-    torrent.add(url, function (torrent) {
-        var file = torrent.files[0];
-        file.renderTo(video, {
-            autoplay: art.option.autoplay,
-        });
-    });
-
-    // optional
-    art.torrent = torrent;
-    art.once('url', () => torrent.destroy());
-    art.once('destroy', () => torrent.destroy());
-}
-
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&dn=sintel.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=wss%3A%2F%2Ftracker.webtorrent.io&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel-1024-surround.mp4',
-    type: 'torrent',
-    customType: {
-        torrent: playTorrent,
-    },
-});
-
-art.on('ready', () => {
-    art.video.controls = false;
-    console.info(art.torrent);
-});
`,1),y=[r,t,c,F];function D(A,i,C,b,d,m){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{h as __pageData,_ as default}; diff --git a/docs/document/assets/en_library_webtorrent.md.3073edce.lean.js b/docs/document/assets/en_library_webtorrent.md.3073edce.lean.js deleted file mode 100644 index 7d0c1ad8e..000000000 --- a/docs/document/assets/en_library_webtorrent.md.3073edce.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"en/library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-label":'Permalink to "webtorrent.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,b,d,m){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{h as __pageData,_ as default}; diff --git a/docs/document/assets/en_plugin_ads.md.e256e7de.js b/docs/document/assets/en_plugin_ads.md.e62440cc.js similarity index 96% rename from docs/document/assets/en_plugin_ads.md.e256e7de.js rename to docs/document/assets/en_plugin_ads.md.e62440cc.js index 9c0808659..20040ce97 100644 --- a/docs/document/assets/en_plugin_ads.md.e256e7de.js +++ b/docs/document/assets/en_plugin_ads.md.e62440cc.js @@ -1,4 +1,4 @@ -import{_ as a,c as n,o as l,U as s,x as p}from"./chunks/framework.75837252.js";const u=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/ads.md","lastUpdated":1673692792000}'),e={name:"en/plugin/ads.md"},o=s('

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
bash
yarn add artplayer-plugin-ads
bash
pnpm add artplayer-plugin-ads
html
<script src="path/to/artplayer-plugin-ads.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js

使用 ​

',8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
+import{_ as a,c as n,o as l,U as s,x as p}from"./chunks/framework.75837252.js";const u=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/ads.md","lastUpdated":1673692792000}'),e={name:"en/plugin/ads.md"},o=s('

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
bash
yarn add artplayer-plugin-ads
bash
pnpm add artplayer-plugin-ads
html
<script src="path/to/artplayer-plugin-ads.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js

使用 ​

',8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
diff --git a/docs/document/assets/en_plugin_ads.md.e256e7de.lean.js b/docs/document/assets/en_plugin_ads.md.e62440cc.lean.js
similarity index 100%
rename from docs/document/assets/en_plugin_ads.md.e256e7de.lean.js
rename to docs/document/assets/en_plugin_ads.md.e62440cc.lean.js
diff --git a/docs/document/assets/en_plugin_control-ui.md.4ee7fcbc.js b/docs/document/assets/en_plugin_control-ui.md.3e743a6b.js
similarity index 95%
rename from docs/document/assets/en_plugin_control-ui.md.4ee7fcbc.js
rename to docs/document/assets/en_plugin_control-ui.md.3e743a6b.js
index 0d19e6811..d592c60c6 100644
--- a/docs/document/assets/en_plugin_control-ui.md.4ee7fcbc.js
+++ b/docs/document/assets/en_plugin_control-ui.md.3e743a6b.js
@@ -1,4 +1,4 @@
-import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/control-ui.md","lastUpdated":1673692792000}'),e={name:"en/plugin/control-ui.md"},o=s('

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
bash
yarn add artplayer-plugin-control
bash
pnpm add artplayer-plugin-control
html
<script src="path/to/artplayer-plugin-control.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js

使用 ​

',8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
+import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/control-ui.md","lastUpdated":1673692792000}'),e={name:"en/plugin/control-ui.md"},o=s('

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
bash
yarn add artplayer-plugin-control
bash
pnpm add artplayer-plugin-control
html
<script src="path/to/artplayer-plugin-control.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js

使用 ​

',8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
diff --git a/docs/document/assets/en_plugin_control-ui.md.4ee7fcbc.lean.js b/docs/document/assets/en_plugin_control-ui.md.3e743a6b.lean.js
similarity index 100%
rename from docs/document/assets/en_plugin_control-ui.md.4ee7fcbc.lean.js
rename to docs/document/assets/en_plugin_control-ui.md.3e743a6b.lean.js
diff --git a/docs/document/assets/en_plugin_dash-quality.md.9a871ce3.js b/docs/document/assets/en_plugin_dash-quality.md.0383c370.js
similarity index 86%
rename from docs/document/assets/en_plugin_dash-quality.md.9a871ce3.js
rename to docs/document/assets/en_plugin_dash-quality.md.0383c370.js
index 387842540..aa5e14aea 100644
--- a/docs/document/assets/en_plugin_dash-quality.md.9a871ce3.js
+++ b/docs/document/assets/en_plugin_dash-quality.md.0383c370.js
@@ -1 +1 @@
-import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"en/plugin/dash-quality.md"},t=l('

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
bash
yarn add artplayer-plugin-dash-quality
bash
pnpm add artplayer-plugin-dash-quality
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
',7),p=[t];function i(r,o,c,d,u,h){return e(),s("div",null,p)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; +import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"en/plugin/dash-quality.md"},t=l('

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
bash
yarn add artplayer-plugin-dash-quality
bash
pnpm add artplayer-plugin-dash-quality
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
',7),p=[t];function i(r,o,d,c,u,h){return e(),s("div",null,p)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_dash-quality.md.9a871ce3.lean.js b/docs/document/assets/en_plugin_dash-quality.md.0383c370.lean.js similarity index 84% rename from docs/document/assets/en_plugin_dash-quality.md.9a871ce3.lean.js rename to docs/document/assets/en_plugin_dash-quality.md.0383c370.lean.js index c1844e0c9..a268df62c 100644 --- a/docs/document/assets/en_plugin_dash-quality.md.9a871ce3.lean.js +++ b/docs/document/assets/en_plugin_dash-quality.md.0383c370.lean.js @@ -1 +1 @@ -import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"en/plugin/dash-quality.md"},t=l("",7),p=[t];function i(r,o,c,d,u,h){return e(),s("div",null,p)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; +import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"en/plugin/dash-quality.md"},t=l("",7),p=[t];function i(r,o,d,c,u,h){return e(),s("div",null,p)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_hls-quality.md.80113e69.js b/docs/document/assets/en_plugin_hls-quality.md.0c9fdf30.js similarity index 82% rename from docs/document/assets/en_plugin_hls-quality.md.80113e69.js rename to docs/document/assets/en_plugin_hls-quality.md.0c9fdf30.js index e43ead4df..381a8f49b 100644 --- a/docs/document/assets/en_plugin_hls-quality.md.80113e69.js +++ b/docs/document/assets/en_plugin_hls-quality.md.0c9fdf30.js @@ -1 +1 @@ -import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/hls-quality.md","lastUpdated":1673692792000}'),n={name:"en/plugin/hls-quality.md"},t=l('

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
bash
yarn add artplayer-plugin-hls-quality
bash
pnpm add artplayer-plugin-hls-quality
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
',7),p=[t];function r(i,o,c,d,u,h){return e(),s("div",null,p)}const m=a(n,[["render",r]]);export{y as __pageData,m as default}; +import{_ as a,c as s,o as l,U as e}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/hls-quality.md","lastUpdated":1673692792000}'),n={name:"en/plugin/hls-quality.md"},t=e('

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
bash
yarn add artplayer-plugin-hls-quality
bash
pnpm add artplayer-plugin-hls-quality
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
',7),p=[t];function r(i,o,c,d,u,h){return l(),s("div",null,p)}const m=a(n,[["render",r]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_hls-quality.md.80113e69.lean.js b/docs/document/assets/en_plugin_hls-quality.md.0c9fdf30.lean.js similarity index 68% rename from docs/document/assets/en_plugin_hls-quality.md.80113e69.lean.js rename to docs/document/assets/en_plugin_hls-quality.md.0c9fdf30.lean.js index b54a0dbda..33a62231f 100644 --- a/docs/document/assets/en_plugin_hls-quality.md.80113e69.lean.js +++ b/docs/document/assets/en_plugin_hls-quality.md.0c9fdf30.lean.js @@ -1 +1 @@ -import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/hls-quality.md","lastUpdated":1673692792000}'),n={name:"en/plugin/hls-quality.md"},t=l("",7),p=[t];function r(i,o,c,d,u,h){return e(),s("div",null,p)}const m=a(n,[["render",r]]);export{y as __pageData,m as default}; +import{_ as a,c as s,o as l,U as e}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/hls-quality.md","lastUpdated":1673692792000}'),n={name:"en/plugin/hls-quality.md"},t=e("",7),p=[t];function r(i,o,c,d,u,h){return l(),s("div",null,p)}const m=a(n,[["render",r]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_iframe.md.03b2efcb.js b/docs/document/assets/en_plugin_iframe.md.125c11bb.js similarity index 98% rename from docs/document/assets/en_plugin_iframe.md.03b2efcb.js rename to docs/document/assets/en_plugin_iframe.md.125c11bb.js index 53ae5f68e..0bde62fbc 100644 --- a/docs/document/assets/en_plugin_iframe.md.03b2efcb.js +++ b/docs/document/assets/en_plugin_iframe.md.125c11bb.js @@ -1,4 +1,4 @@ -import{_ as s,c as a,o as n,U as l}from"./chunks/framework.75837252.js";const A=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/iframe.md","lastUpdated":1680272727000}'),p={name:"en/plugin/iframe.md"},o=l(`

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
bash
yarn add artplayer-plugin-iframe
bash
pnpm add artplayer-plugin-iframe
html
<script src="path/to/artplayer-plugin-iframe.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js

使用 ​

html
<!DOCTYPE html>
+import{_ as s,c as a,o as n,U as l}from"./chunks/framework.75837252.js";const A=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/iframe.md","lastUpdated":1680272727000}'),p={name:"en/plugin/iframe.md"},o=l(`

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
bash
yarn add artplayer-plugin-iframe
bash
pnpm add artplayer-plugin-iframe
html
<script src="path/to/artplayer-plugin-iframe.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js

使用 ​

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -83,7 +83,7 @@ import{_ as s,c as a,o as n,U as l}from"./chunks/framework.75837252.js";const A=
         type: 'currentTime',
         data: art.currentTime,
     });
-});

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html
<!DOCTYPE html>
+});

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
diff --git a/docs/document/assets/en_plugin_iframe.md.03b2efcb.lean.js b/docs/document/assets/en_plugin_iframe.md.125c11bb.lean.js
similarity index 100%
rename from docs/document/assets/en_plugin_iframe.md.03b2efcb.lean.js
rename to docs/document/assets/en_plugin_iframe.md.125c11bb.lean.js
diff --git a/docs/document/assets/en_start_component.md.9301478b.js b/docs/document/assets/en_start_component.md.9301478b.js
deleted file mode 100644
index 3696ee5cc..000000000
--- a/docs/document/assets/en_start_component.md.9301478b.js
+++ /dev/null
@@ -1,141 +0,0 @@
-import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const T=JSON.parse('{"title":"Component","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/component.md","lastUpdated":1674028264000}'),o={name:"en/start/component.md"},e=s('

Component ​

The component configuration mentioned here mainly refers to three common configurations: layers, controls and contextmenu:

PropertyTypeDescribe
disableBooleanWhether to disable components
nameStringComponent unique name, used to mark the class name
indexNumberComponent index, used to display the priority of
htmlString, ElementDOM element of component
styleObjectComponent Style Object
clickFunctionComponent click event
mountedFunctionTriggered after the component is mounted
tooltipStringPrompt text for component

Tip

  • The current component can only be added, not destroyed
  • Use the 'name' option to quickly obtain the 'DOM' element of a component
  • The order in which components appear can be controlled through the 'index' option

layers ​

Add a layer during instantiation, such as logo or advertisement

',6),t=n("div",{className:"run-code"},"▶ Run Code",-1),c=s(`
js
var img = '/assets/sample/layer.png';
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    layers: [
-        {
-            name: 'potser',
-            html: \`<img style="width: 100px" src="\${img}">\`,
-            tooltip: 'Potser Tip',
-            style: {
-                position: 'absolute',
-                top: '50px',
-                right: '50px',
-            },
-            click: function (...args) {
-                console.info('click', args);
-            },
-            mounted: function (...args) {
-                console.info('mounted', args);
-            },
-        },
-    ],
-});
-
-console.info(art.layers.potser);

You can also add a layer after instantiation

`,2),r=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var img = '/assets/sample/layer.png';
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.layers.add({
-    name: 'potser',
-    html: \`<img style="width: 100px" src="\${img}">\`,
-    tooltip: 'Potser Tip',
-    style: {
-        position: 'absolute',
-        top: '50px',
-        right: '50px',
-    },
-    click: function (...args) {
-        console.info('click', args);
-    },
-    mounted: function (...args) {
-        console.info('mounted', args);
-    },
-});
-
-console.info(art.layers.potser);

controls ​

Add a control during instantiation

There are three additional options for controls

  • position: left and right positions of control controller
  • selector: Object array of selection list
  • onSelect: Function triggered when an element of the selection list is clicked
`,4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    controls: [
-        {
-            name: 'your-button',
-            index: 10,
-            position: 'left',
-            html: 'Your Button',
-            tooltip: 'Your Button',
-            style: {
-                color: 'red',
-            },
-            click: function (...args) {
-                console.info('click', args);
-            },
-            mounted: function (...args) {
-                console.info('mounted', args);
-            },
-        },
-        {
-            name: 'subtitle',
-            position: 'right',
-            html: 'Subtitle',
-            selector: [
-                {
-                    default: true,
-                    html: '<span style="color:red">subtitle 01</span>',
-                },
-                {
-                    html: '<span style="color:yellow">subtitle 02</span>',
-                },
-            ],
-            onSelect: function (item, $dom) {
-                console.info(item, $dom);
-                return 'Your ' + item.html;
-            },
-        },
-    ],
-});
-
-console.info(art.controls['your-button']);
-console.info(art.controls.subtitle);

You can also add a control after instantiation

js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.controls.add({
-    name: 'button1',
-    index: 10,
-    position: 'left',
-    html: 'Your Button',
-    tooltip: 'Your Button',
-    style: {
-        color: 'red',
-    },
-    click: function (...args) {
-        console.info('click', args);
-    },
-    mounted: function (...args) {
-        console.info('mounted', args);
-    },
-});
-
-console.info(art.controls.button1);

contextmenu ​

Add a contextmenu during instantiation

`,5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    contextmenu: [
-        {
-            name: 'your-menu',
-            html: 'Your Menu',
-            click: function (...args) {
-                console.info(args);
-                art.contextmenu.show = false;
-            },
-        },
-    ],
-});
-
-console.info(art.contextmenu['your-menu']);

You can also add a contextmenu after instantiation

`,2),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.contextmenu.add({
-    name: 'your-menu',
-    html: 'Your Menu',
-    click: function (...args) {
-        console.info(args);
-        art.contextmenu.show = false;
-    },
-});
-
-console.info(art.contextmenu['your-menu']);
`,1),b=[e,t,c,r,D,F,y,i,A,C,d];function h(u,m,g,_,E,f){return p(),l("div",null,b)}const x=a(o,[["render",h]]);export{T as __pageData,x as default}; diff --git a/docs/document/assets/en_start_component.md.9301478b.lean.js b/docs/document/assets/en_start_component.md.9301478b.lean.js deleted file mode 100644 index 5f8b4ebf5..000000000 --- a/docs/document/assets/en_start_component.md.9301478b.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const T=JSON.parse('{"title":"Component","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/component.md","lastUpdated":1674028264000}'),o={name:"en/start/component.md"},e=s("",6),t=n("div",{className:"run-code"},"▶ Run Code",-1),c=s("",2),r=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",2),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",1),b=[e,t,c,r,D,F,y,i,A,C,d];function h(u,m,g,_,E,f){return p(),l("div",null,b)}const x=a(o,[["render",h]]);export{T as __pageData,x as default}; diff --git a/docs/document/assets/en_start_option.md.c90e1db6.js b/docs/document/assets/en_start_option.md.74e5492e.js similarity index 94% rename from docs/document/assets/en_start_option.md.c90e1db6.js rename to docs/document/assets/en_start_option.md.74e5492e.js index 25c26601c..dc0fe3e5c 100644 --- a/docs/document/assets/en_start_option.md.c90e1db6.js +++ b/docs/document/assets/en_start_option.md.74e5492e.js @@ -1,4 +1,4 @@ -import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const ia=JSON.parse('{"title":"Option","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/option.md","lastUpdated":1677226299000}'),e={name:"en/start/option.md"},o=s('

Option ​

container ​

  • Type: String, Element
  • Default: #artplayer

The DOM container attached to the player

',4),t=a("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
+import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const ya=JSON.parse('{"title":"Option","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/option.md","lastUpdated":1677226299000}'),e={name:"en/start/option.md"},o=s('

Option ​

container ​

  • Type: String, Element
  • Default: #artplayer

The DOM container attached to the player

',4),t=a("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
     container: '.artplayer-app', 
     // container: document.querySelector('.artplayer-app'),
     url: '/assets/sample/video.mp4',
@@ -67,15 +67,15 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
     url: '/assets/sample/video.mp4',
     autoplay: true,
     muted: true,
-});

Tip

If you want to enter the page by default to automatically play the video, muted must be true. For more information, please read Autoplay Policy Changes

autoSize ​

  • Type: Boolean
  • Default: false

The size of the player will fill the entire container size by default, so black edges often appear. This value can automatically adjust the size of the player to hide the black edges, similar to the object-fit: contain of css

`,5),q=a("div",{className:"run-code"},"▶ Run Code",-1),I=s(`
js
var art = new Artplayer({
+});

Tip

If you want to enter the page by default to automatically play the video, muted must be true. For more information, please read Autoplay Policy Changes

autoSize ​

  • Type: Boolean
  • Default: false

The size of the player will fill the entire container size by default, so black edges often appear. This value can automatically adjust the size of the player to hide the black edges, similar to the object-fit: contain of css

`,5),q=a("div",{className:"run-code"},"▶ Run Code",-1),V=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
-});

autoMini ​

  • Type: Boolean
  • Default: false

When the player scrolls outside the viewport, it automatically enters the mini mode

`,4),j=a("div",{className:"run-code"},"▶ Run Code",-1),R=s(`
js
var art = new Artplayer({
+});

autoMini ​

  • Type: Boolean
  • Default: false

When the player scrolls outside the viewport, it automatically enters the mini mode

`,4),I=a("div",{className:"run-code"},"▶ Run Code",-1),j=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoMini: true,
-});

loop ​

  • Type: Boolean
  • Default: false

Whether to play in a loop

`,4),V=a("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
+});

loop ​

  • Type: Boolean
  • Default: false

Whether to play in a loop

`,4),R=a("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     loop: true,
@@ -102,7 +102,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
-});

hotkey ​

  • Type: Boolean
  • Default: true

Whether to use shortcut keys

`,4),Q=a("div",{className:"run-code"},"▶ Run Code",-1),U=s(`
js
var art = new Artplayer({
+});

hotkey ​

  • Type: Boolean
  • Default: true

Whether to use shortcut keys

`,4),U=a("div",{className:"run-code"},"▶ Run Code",-1),Q=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     hotkey: true,
@@ -168,7 +168,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
             },
         },
     ],
-});

Please refer to the following address for Component:

/start/component.html

settings ​

  • Type: Array
  • Default: []

Initialize the customized Setting

`,5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s(`
js
var art = new Artplayer({
+});

Please refer to the following address for Component:

/component/layers.html

settings ​

  • Type: Array
  • Default: []

Initialize the customized Setting

`,5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -202,7 +202,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
             },
         },
     ],
-});

Please refer to the following address for Setting

/start/setting.html

contextmenu ​

  • Type: Array
  • Default: []

Initialize the customized Contextmenu

`,5),ds=a("div",{className:"run-code"},"▶ Run Code",-1),As=s(`
js
var art = new Artplayer({
+});

Please refer to the following address for Setting

/component/setting.html

contextmenu ​

  • Type: Array
  • Default: []

Initialize the customized Contextmenu

`,5),ds=a("div",{className:"run-code"},"▶ Run Code",-1),As=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -214,7 +214,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
             },
         },
     ],
-});

Please refer to the following address for Component:

/start/component.html

controls ​

  • Type: Array
  • Default: []

Initialize the customized Controls

`,5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s(`
js
var art = new Artplayer({
+});

Please refer to the following address for Component:

/component/contextmenu.html

controls ​

  • Type: Array
  • Default: []

Initialize the customized Controls

`,5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -230,7 +230,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
             },
         },
     ],
-});

Please refer to the following address for Setting

/start/setting.html

quality ​

  • Type: Array
  • Default: []

Whether to display the Quality list in the bottom control bar

PropertyTypeDescribe
defaultBooleanDefault quality
htmlStringQuality name
urlStringQuality name
`,6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s(`
js
var art = new Artplayer({
+});

Please refer to the following address for Setting

/component/controls.html

quality ​

  • Type: Array
  • Default: []

Whether to display the Quality list in the bottom control bar

PropertyTypeDescribe
defaultBooleanDefault quality
htmlStringQuality name
urlStringQuality name
`,6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     quality: [
@@ -298,7 +298,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
         number: 100,
         column: 10,
     },
-});

Generate preview thumbnails online

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

Set the subtitle of the video and support the subtitle format: vtt, srt, ass

PropertyTypeDescribe
urlStringSubtitle url
typeStringSubtitle type: vtt, srt, ass
styleObjectSubtitle style
encodingStringSubtitle code, Default: utf-8
escapeBooleanWhether to escape the html tag,Default: true
`,6),ks=a("div",{className:"run-code"},"▶ Run Code",-1),Ps=s(`
js
var art = new Artplayer({
+});

Generate preview thumbnails online

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

Set the subtitle of the video and support the subtitle format: vtt, srt, ass

PropertyTypeDescribe
urlStringSubtitle url
typeStringSubtitle type: vtt, srt, ass
styleObjectSubtitle style
encodingStringSubtitle code, Default: utf-8
escapeBooleanWhether to escape the html tag,Default: true
onVttLoadFunctionFunctions for modifying vtt text
`,6),ks=a("div",{className:"run-code"},"▶ Run Code",-1),Ps=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -311,21 +311,21 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
             'font-size': '30px',
         },
     },
-});

moreVideoAttr ​

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

More video attributes, which will be directly written into the video element

`,4),qs=a("div",{className:"run-code"},"▶ Run Code",-1),Is=s(`
js
var art = new Artplayer({
+});

moreVideoAttr ​

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

More video attributes, which will be directly written into the video element

`,4),qs=a("div",{className:"run-code"},"▶ Run Code",-1),Vs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     moreVideoAttr: {
         'webkit-playsinline': true,
         playsInline: true,
     },
-});

icons ​

  • Type: Object
  • Default: {}

It is used to replace the default icon and supports Html String and HTMLElement

`,4),js=a("div",{className:"run-code"},"▶ Run Code",-1),Rs=s(`
js
var art = new Artplayer({
+});

icons ​

  • Type: Object
  • Default: {}

It is used to replace the default icon and supports Html String and HTMLElement

`,4),Is=a("div",{className:"run-code"},"▶ Run Code",-1),js=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     icons: {
         loading: '<img src="/assets/img/ploading.gif">',
         state: '<img src="/assets/img/state.png">',
     },
-});

Definition of all icons

artplayer/types/icons.d.ts

type ​

  • Type: String
  • Default: ''

It is used to indicate the format of the video. It needs to be used together with the customType. The default format of the video is the suffix of the video address (such as .m3u8, .mkv, .ts). But sometimes the video address does not have the correct suffix, so it needs to be specially specified

`,5),Vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ns=s(`
js
var art = new Artplayer({
+});

Definition of all icons

artplayer/types/icons.d.ts

type ​

  • Type: String
  • Default: ''

It is used to indicate the format of the video. It needs to be used together with the customType. The default format of the video is the suffix of the video address (such as .m3u8, .mkv, .ts). But sometimes the video address does not have the correct suffix, so it needs to be specially specified

`,5),Rs=a("div",{className:"run-code"},"▶ Run Code",-1),Ns=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.m3u8',
     type: 'm3u8',
@@ -365,7 +365,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lock: true,
-});

fastForward ​

  • Type: Boolean
  • Default: false

Whether to add long-press video fast-forward function on the mobile terminal

`,4),Qs=a("div",{className:"run-code"},"▶ Run Code",-1),Us=s(`
js
var art = new Artplayer({
+});

fastForward ​

  • Type: Boolean
  • Default: false

Whether to add long-press video fast-forward function on the mobile terminal

`,4),Us=a("div",{className:"run-code"},"▶ Run Code",-1),Qs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fastForward: true,
@@ -382,4 +382,10 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     airplay: true,
-});
`,1),aa=[o,t,r,c,i,D,y,F,C,d,A,h,u,b,m,g,_,v,T,f,E,S,w,k,P,q,I,j,R,V,N,x,B,z,W,O,M,H,L,$,Y,Q,U,G,J,K,X,Z,ss,as,ns,ls,ps,es,os,ts,rs,cs,is,Ds,ys,Fs,Cs,ds,As,hs,us,bs,ms,gs,_s,vs,Ts,fs,Es,Ss,ws,ks,Ps,qs,Is,js,Rs,Vs,Ns,xs,Bs,zs,Ws,Os,Ms,Hs,Ls,$s,Ys,Qs,Us,Gs,Js,Ks,Xs,Zs,sa];function na(la,pa,ea,oa,ta,ra){return p(),l("div",null,aa)}const Da=n(e,[["render",na]]);export{ia as __pageData,Da as default}; +});

cssVar ​

  • Type: Object
  • Default: {}

Used to change built-in CSS variables

`,4),aa=a("div",{className:"run-code"},"▶ Run Code",-1),na=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    cssVar: {
+        //
+    },
+});
`,2),la=[o,t,r,c,i,D,y,F,C,d,A,h,u,b,m,g,_,v,T,f,E,S,w,k,P,q,V,I,j,R,N,x,B,z,W,O,M,H,L,$,Y,U,Q,G,J,K,X,Z,ss,as,ns,ls,ps,es,os,ts,rs,cs,is,Ds,ys,Fs,Cs,ds,As,hs,us,bs,ms,gs,_s,vs,Ts,fs,Es,Ss,ws,ks,Ps,qs,Vs,Is,js,Rs,Ns,xs,Bs,zs,Ws,Os,Ms,Hs,Ls,$s,Ys,Us,Qs,Gs,Js,Ks,Xs,Zs,sa,aa,na];function pa(ea,oa,ta,ra,ca,ia){return p(),l("div",null,la)}const Fa=n(e,[["render",pa]]);export{ya as __pageData,Fa as default}; diff --git a/docs/document/assets/en_start_option.md.c90e1db6.lean.js b/docs/document/assets/en_start_option.md.74e5492e.lean.js similarity index 74% rename from docs/document/assets/en_start_option.md.c90e1db6.lean.js rename to docs/document/assets/en_start_option.md.74e5492e.lean.js index 86ab260bd..34f32b437 100644 --- a/docs/document/assets/en_start_option.md.c90e1db6.lean.js +++ b/docs/document/assets/en_start_option.md.74e5492e.lean.js @@ -1 +1 @@ -import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const ia=JSON.parse('{"title":"Option","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/option.md","lastUpdated":1677226299000}'),e={name:"en/start/option.md"},o=s("",4),t=a("div",{className:"run-code"},"▶ Run Code",-1),r=s("",9),c=a("div",{className:"run-code"},"▶ Run Code",-1),i=s("",2),D=a("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),F=a("div",{className:"run-code"},"▶ Run Code",-1),C=s("",4),d=a("div",{className:"run-code"},"▶ Run Code",-1),A=s("",7),h=a("div",{className:"run-code"},"▶ Run Code",-1),u=s("",4),b=a("div",{className:"run-code"},"▶ Run Code",-1),m=s("",4),g=a("div",{className:"run-code"},"▶ Run Code",-1),_=s("",4),v=a("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),f=a("div",{className:"run-code"},"▶ Run Code",-1),E=s("",4),S=a("div",{className:"run-code"},"▶ Run Code",-1),w=s("",4),k=a("div",{className:"run-code"},"▶ Run Code",-1),P=s("",5),q=a("div",{className:"run-code"},"▶ Run Code",-1),I=s("",4),j=a("div",{className:"run-code"},"▶ Run Code",-1),R=s("",4),V=a("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),x=a("div",{className:"run-code"},"▶ Run Code",-1),B=s("",4),z=a("div",{className:"run-code"},"▶ Run Code",-1),W=s("",4),O=a("div",{className:"run-code"},"▶ Run Code",-1),M=s("",4),H=a("div",{className:"run-code"},"▶ Run Code",-1),L=s("",5),$=a("div",{className:"run-code"},"▶ Run Code",-1),Y=s("",4),Q=a("div",{className:"run-code"},"▶ Run Code",-1),U=s("",6),G=a("div",{className:"run-code"},"▶ Run Code",-1),J=s("",4),K=a("div",{className:"run-code"},"▶ Run Code",-1),X=s("",4),Z=a("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),as=a("div",{className:"run-code"},"▶ Run Code",-1),ns=s("",4),ls=a("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),es=a("div",{className:"run-code"},"▶ Run Code",-1),os=s("",5),ts=a("div",{className:"run-code"},"▶ Run Code",-1),rs=s("",4),cs=a("div",{className:"run-code"},"▶ Run Code",-1),is=s("",4),Ds=a("div",{className:"run-code"},"▶ Run Code",-1),ys=s("",5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s("",5),ds=a("div",{className:"run-code"},"▶ Run Code",-1),As=s("",5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s("",6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s("",5),gs=a("div",{className:"run-code"},"▶ Run Code",-1),_s=s("",4),vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",6),fs=a("div",{className:"run-code"},"▶ Run Code",-1),Es=s("",6),Ss=a("div",{className:"run-code"},"▶ Run Code",-1),ws=s("",6),ks=a("div",{className:"run-code"},"▶ Run Code",-1),Ps=s("",4),qs=a("div",{className:"run-code"},"▶ Run Code",-1),Is=s("",4),js=a("div",{className:"run-code"},"▶ Run Code",-1),Rs=s("",5),Vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ns=s("",6),xs=a("div",{className:"run-code"},"▶ Run Code",-1),Bs=s("",4),zs=a("div",{className:"run-code"},"▶ Run Code",-1),Ws=s("",5),Os=a("div",{className:"run-code"},"▶ Run Code",-1),Ms=s("",2),Hs=a("div",{className:"run-code"},"▶ Run Code",-1),Ls=s("",5),$s=a("div",{className:"run-code"},"▶ Run Code",-1),Ys=s("",4),Qs=a("div",{className:"run-code"},"▶ Run Code",-1),Us=s("",4),Gs=a("div",{className:"run-code"},"▶ Run Code",-1),Js=s("",5),Ks=a("div",{className:"run-code"},"▶ Run Code",-1),Xs=s("",4),Zs=a("div",{className:"run-code"},"▶ Run Code",-1),sa=s("",1),aa=[o,t,r,c,i,D,y,F,C,d,A,h,u,b,m,g,_,v,T,f,E,S,w,k,P,q,I,j,R,V,N,x,B,z,W,O,M,H,L,$,Y,Q,U,G,J,K,X,Z,ss,as,ns,ls,ps,es,os,ts,rs,cs,is,Ds,ys,Fs,Cs,ds,As,hs,us,bs,ms,gs,_s,vs,Ts,fs,Es,Ss,ws,ks,Ps,qs,Is,js,Rs,Vs,Ns,xs,Bs,zs,Ws,Os,Ms,Hs,Ls,$s,Ys,Qs,Us,Gs,Js,Ks,Xs,Zs,sa];function na(la,pa,ea,oa,ta,ra){return p(),l("div",null,aa)}const Da=n(e,[["render",na]]);export{ia as __pageData,Da as default}; +import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const ya=JSON.parse('{"title":"Option","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/option.md","lastUpdated":1677226299000}'),e={name:"en/start/option.md"},o=s("",4),t=a("div",{className:"run-code"},"▶ Run Code",-1),r=s("",9),c=a("div",{className:"run-code"},"▶ Run Code",-1),i=s("",2),D=a("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),F=a("div",{className:"run-code"},"▶ Run Code",-1),C=s("",4),d=a("div",{className:"run-code"},"▶ Run Code",-1),A=s("",7),h=a("div",{className:"run-code"},"▶ Run Code",-1),u=s("",4),b=a("div",{className:"run-code"},"▶ Run Code",-1),m=s("",4),g=a("div",{className:"run-code"},"▶ Run Code",-1),_=s("",4),v=a("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),f=a("div",{className:"run-code"},"▶ Run Code",-1),E=s("",4),S=a("div",{className:"run-code"},"▶ Run Code",-1),w=s("",4),k=a("div",{className:"run-code"},"▶ Run Code",-1),P=s("",5),q=a("div",{className:"run-code"},"▶ Run Code",-1),V=s("",4),I=a("div",{className:"run-code"},"▶ Run Code",-1),j=s("",4),R=a("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),x=a("div",{className:"run-code"},"▶ Run Code",-1),B=s("",4),z=a("div",{className:"run-code"},"▶ Run Code",-1),W=s("",4),O=a("div",{className:"run-code"},"▶ Run Code",-1),M=s("",4),H=a("div",{className:"run-code"},"▶ Run Code",-1),L=s("",5),$=a("div",{className:"run-code"},"▶ Run Code",-1),Y=s("",4),U=a("div",{className:"run-code"},"▶ Run Code",-1),Q=s("",6),G=a("div",{className:"run-code"},"▶ Run Code",-1),J=s("",4),K=a("div",{className:"run-code"},"▶ Run Code",-1),X=s("",4),Z=a("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),as=a("div",{className:"run-code"},"▶ Run Code",-1),ns=s("",4),ls=a("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),es=a("div",{className:"run-code"},"▶ Run Code",-1),os=s("",5),ts=a("div",{className:"run-code"},"▶ Run Code",-1),rs=s("",4),cs=a("div",{className:"run-code"},"▶ Run Code",-1),is=s("",4),Ds=a("div",{className:"run-code"},"▶ Run Code",-1),ys=s("",5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s("",5),ds=a("div",{className:"run-code"},"▶ Run Code",-1),As=s("",5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s("",6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s("",5),gs=a("div",{className:"run-code"},"▶ Run Code",-1),_s=s("",4),vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",6),fs=a("div",{className:"run-code"},"▶ Run Code",-1),Es=s("",6),Ss=a("div",{className:"run-code"},"▶ Run Code",-1),ws=s("",6),ks=a("div",{className:"run-code"},"▶ Run Code",-1),Ps=s("",4),qs=a("div",{className:"run-code"},"▶ Run Code",-1),Vs=s("",4),Is=a("div",{className:"run-code"},"▶ Run Code",-1),js=s("",5),Rs=a("div",{className:"run-code"},"▶ Run Code",-1),Ns=s("",6),xs=a("div",{className:"run-code"},"▶ Run Code",-1),Bs=s("",4),zs=a("div",{className:"run-code"},"▶ Run Code",-1),Ws=s("",5),Os=a("div",{className:"run-code"},"▶ Run Code",-1),Ms=s("",2),Hs=a("div",{className:"run-code"},"▶ Run Code",-1),Ls=s("",5),$s=a("div",{className:"run-code"},"▶ Run Code",-1),Ys=s("",4),Us=a("div",{className:"run-code"},"▶ Run Code",-1),Qs=s("",4),Gs=a("div",{className:"run-code"},"▶ Run Code",-1),Js=s("",5),Ks=a("div",{className:"run-code"},"▶ Run Code",-1),Xs=s("",4),Zs=a("div",{className:"run-code"},"▶ Run Code",-1),sa=s("",4),aa=a("div",{className:"run-code"},"▶ Run Code",-1),na=s("",2),la=[o,t,r,c,i,D,y,F,C,d,A,h,u,b,m,g,_,v,T,f,E,S,w,k,P,q,V,I,j,R,N,x,B,z,W,O,M,H,L,$,Y,U,Q,G,J,K,X,Z,ss,as,ns,ls,ps,es,os,ts,rs,cs,is,Ds,ys,Fs,Cs,ds,As,hs,us,bs,ms,gs,_s,vs,Ts,fs,Es,Ss,ws,ks,Ps,qs,Vs,Is,js,Rs,Ns,xs,Bs,zs,Ws,Os,Ms,Hs,Ls,$s,Ys,Us,Qs,Gs,Js,Ks,Xs,Zs,sa,aa,na];function pa(ea,oa,ta,ra,ca,ia){return p(),l("div",null,la)}const Fa=n(e,[["render",pa]]);export{ya as __pageData,Fa as default}; diff --git a/docs/document/assets/en_start_setting.md.124e026d.lean.js b/docs/document/assets/en_start_setting.md.124e026d.lean.js deleted file mode 100644 index 4b49e7652..000000000 --- a/docs/document/assets/en_start_setting.md.124e026d.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/setting.md","lastUpdated":1674271220000}'),e={name:"en/start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-label":'Permalink to "设置面板"'},"​")],-1),r=s("p",null,[n("You need to open the settings panel first. The player has four settings by default: "),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),c=s("div",{className:"run-code"},"▶ Run Code",-1),D=a("",3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a("",2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a("",3),i=s("div",{className:"run-code"},"▶ Run Code",-1),d=a("",4),b=s("div",{className:"run-code"},"▶ Run Code",-1),m=a("",1),u=[t,r,c,D,y,F,C,A,i,d,b,m];function h(g,_,E,f,v,S){return o(),p("div",null,u)}const P=l(e,[["render",h]]);export{w as __pageData,P as default}; diff --git a/docs/document/assets/index.md.3ab0a387.js b/docs/document/assets/index.md.92d2a836.js similarity index 97% rename from docs/document/assets/index.md.3ab0a387.js rename to docs/document/assets/index.md.92d2a836.js index f65a3b1c2..00650865b 100644 --- a/docs/document/assets/index.md.3ab0a387.js +++ b/docs/document/assets/index.md.92d2a836.js @@ -1,4 +1,4 @@ -import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=JSON.parse('{"title":"安装使用","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","lastUpdated":1677208560000}'),p={name:"index.md"},o=l(`

安装使用 ​

安装 ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

使用 ​

js
import Artplayer from 'artplayer';
+import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=JSON.parse('{"title":"安装使用","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","lastUpdated":1677208560000}'),p={name:"index.md"},o=l(`

安装使用 ​

安装 ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

使用 ​

js
import Artplayer from 'artplayer';
 
 const art = new Artplayer({
     container: '.artplayer-app',
@@ -17,7 +17,7 @@ import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=
     <body>
         <div class="artplayer-app"></div>
     </body>
-</html>

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js ​

vue
<template>
+</html>

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -81,7 +81,7 @@ import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=
     },
   },
 };
-</script>

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js ​

jsx
import { useEffect, useRef } from 'react';
+</script>

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
diff --git a/docs/document/assets/index.md.3ab0a387.lean.js b/docs/document/assets/index.md.92d2a836.lean.js
similarity index 100%
rename from docs/document/assets/index.md.3ab0a387.lean.js
rename to docs/document/assets/index.md.92d2a836.lean.js
diff --git a/docs/document/assets/library_dash.md.66064310.js b/docs/document/assets/library_dash.md.09925449.js
similarity index 71%
rename from docs/document/assets/library_dash.md.66064310.js
rename to docs/document/assets/library_dash.md.09925449.js
index c0daef542..7ab8f6448 100644
--- a/docs/document/assets/library_dash.md.66064310.js
+++ b/docs/document/assets/library_dash.md.09925449.js
@@ -1,12 +1,10 @@
-import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/dash.md","lastUpdated":1676696783000}'),e={name:"library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playMpd(video, url, art) {
+import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/dash.md","lastUpdated":1682180498000}'),e={name:"library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),y=o(`
js
function playMpd(video, url, art) {
     if (dashjs.supportsMediaSource()) {
+        if (art.dash) art.dash.destroy();
         const dash = dashjs.MediaPlayer().create();
         dash.initialize(video, url, art.option.autoplay);
-
-        // optional
         art.dash = dash; 
-        art.once('url', () => dash.destroy());
-        art.once('destroy', () => dash.destroy());
+        art.on('destroy', () => dash.destroy());
     } else {
         art.notice.show = 'Unsupported playback format: mpd';
     }
@@ -15,12 +13,12 @@ import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js"
 var art = new Artplayer({
     container: '.artplayer-app',
     url: 'https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd',
-    type: 'mpd',
-    customType: {
+    type: 'mpd',
+    customType: {
         mpd: playMpd
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.dash);
-});
`,1),y=[r,t,c,F];function D(A,i,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; + console.info(art.dash); +});
`,1),F=[r,t,c,y];function D(A,i,C,d,b,h){return p(),l("div",null,F)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/library_dash.md.66064310.lean.js b/docs/document/assets/library_dash.md.09925449.lean.js similarity index 77% rename from docs/document/assets/library_dash.md.66064310.lean.js rename to docs/document/assets/library_dash.md.09925449.lean.js index 20886b2f9..2df20cafb 100644 --- a/docs/document/assets/library_dash.md.66064310.lean.js +++ b/docs/document/assets/library_dash.md.09925449.lean.js @@ -1 +1 @@ -import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/dash.md","lastUpdated":1676696783000}'),e={name:"library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; +import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/dash.md","lastUpdated":1682180498000}'),e={name:"library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),y=o("",1),F=[r,t,c,y];function D(A,i,C,d,b,h){return p(),l("div",null,F)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/library_flv.md.9f4608d0.js b/docs/document/assets/library_flv.md.7521724e.js similarity index 72% rename from docs/document/assets/library_flv.md.9f4608d0.js rename to docs/document/assets/library_flv.md.7521724e.js index b052eb081..dc29150a2 100644 --- a/docs/document/assets/library_flv.md.9f4608d0.js +++ b/docs/document/assets/library_flv.md.7521724e.js @@ -1,13 +1,11 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/flv.md","lastUpdated":1673441101000}'),e={name:"library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playFlv(video, url, art) {
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/flv.md","lastUpdated":1682180498000}'),e={name:"library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playFlv(video, url, art) {
     if (flvjs.isSupported()) {
+        if (art.flv) art.flv.destroy();
         const flv = flvjs.createPlayer({ type: 'flv', url });
         flv.attachMediaElement(video);
         flv.load();
-
-        // optional
         art.flv = flv; 
-        art.once('url', () => flv.destroy());
-        art.once('destroy', () => flv.destroy());
+        art.on('destroy', () => flv.destroy());
     } else {
         art.notice.show = 'Unsupported playback format: flv';
     }
@@ -16,12 +14,12 @@ import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.7583725
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.flv',
-    type: 'flv',
-    customType: {
+    type: 'flv',
+    customType: {
         flv: playFlv,
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.flv);
-});
`,1),y=[r,t,c,F];function D(i,A,C,b,d,u){return p(),l("div",null,y)}const h=a(e,[["render",D]]);export{f as __pageData,h as default}; + console.info(art.flv); +});
`,1),y=[r,t,c,F];function D(A,i,C,b,d,f){return p(),l("div",null,y)}const v=a(e,[["render",D]]);export{m as __pageData,v as default}; diff --git a/docs/document/assets/library_flv.md.9f4608d0.lean.js b/docs/document/assets/library_flv.md.7521724e.lean.js similarity index 69% rename from docs/document/assets/library_flv.md.9f4608d0.lean.js rename to docs/document/assets/library_flv.md.7521724e.lean.js index 15005f4d2..3e4eacc7f 100644 --- a/docs/document/assets/library_flv.md.9f4608d0.lean.js +++ b/docs/document/assets/library_flv.md.7521724e.lean.js @@ -1 +1 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/flv.md","lastUpdated":1673441101000}'),e={name:"library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,d,u){return p(),l("div",null,y)}const h=a(e,[["render",D]]);export{f as __pageData,h as default}; +import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/flv.md","lastUpdated":1682180498000}'),e={name:"library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,b,d,f){return p(),l("div",null,y)}const v=a(e,[["render",D]]);export{m as __pageData,v as default}; diff --git a/docs/document/assets/library_hls.md.0e673c5b.js b/docs/document/assets/library_hls.md.b985859f.js similarity index 74% rename from docs/document/assets/library_hls.md.0e673c5b.js rename to docs/document/assets/library_hls.md.b985859f.js index b4838e1a5..4be4c82cc 100644 --- a/docs/document/assets/library_hls.md.0e673c5b.js +++ b/docs/document/assets/library_hls.md.b985859f.js @@ -1,13 +1,11 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/hls.md","lastUpdated":1673441101000}'),e={name:"library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playM3u8(video, url, art) {
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/hls.md","lastUpdated":1682180498000}'),e={name:"library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playM3u8(video, url, art) {
     if (Hls.isSupported()) {
+        if (art.hls) art.hls.destroy();
         const hls = new Hls();
         hls.loadSource(url);
         hls.attachMedia(video);
-
-        // optional
         art.hls = hls;
-        art.once('url', () => hls.destroy());
-        art.once('destroy', () => hls.destroy());
+        art.on('destroy', () => hls.destroy());
     } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
         video.src = url;
     } else {
@@ -18,12 +16,12 @@ import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.7583725
 var art = new Artplayer({
     container: '.artplayer-app',
     url: 'https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8',
-    type: 'm3u8',
-    customType: {
+    type: 'm3u8',
+    customType: {
         m3u8: playM3u8,
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.hls);
-});
`,1),y=[r,t,c,F];function D(i,A,C,b,h,u){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; + console.info(art.hls); +});
`,1),y=[r,t,c,F];function D(A,i,C,b,h,d){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/library_hls.md.0e673c5b.lean.js b/docs/document/assets/library_hls.md.b985859f.lean.js similarity index 84% rename from docs/document/assets/library_hls.md.0e673c5b.lean.js rename to docs/document/assets/library_hls.md.b985859f.lean.js index a90e1be70..d62d32687 100644 --- a/docs/document/assets/library_hls.md.0e673c5b.lean.js +++ b/docs/document/assets/library_hls.md.b985859f.lean.js @@ -1 +1 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/hls.md","lastUpdated":1673441101000}'),e={name:"library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,h,u){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; +import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/hls.md","lastUpdated":1682180498000}'),e={name:"library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,b,h,d){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/library_webtorrent.md.b2c88e20.js b/docs/document/assets/library_webtorrent.md.b2c88e20.js deleted file mode 100644 index 317e368ed..000000000 --- a/docs/document/assets/library_webtorrent.md.b2c88e20.js +++ /dev/null @@ -1,28 +0,0 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-label":'Permalink to "webtorrent.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playTorrent(video, url, art) {
-    const torrent = new WebTorrent();
-    torrent.add(url, function (torrent) {
-        var file = torrent.files[0];
-        file.renderTo(video, {
-            autoplay: art.option.autoplay,
-        });
-    });
-
-    // optional
-    art.torrent = torrent;
-    art.once('url', () => torrent.destroy());
-    art.once('destroy', () => torrent.destroy());
-}
-
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&dn=sintel.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=wss%3A%2F%2Ftracker.webtorrent.io&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel-1024-surround.mp4',
-    type: 'torrent',
-    customType: {
-        torrent: playTorrent,
-    },
-});
-
-art.on('ready', () => {
-    art.video.controls = false;
-    console.info(art.torrent);
-});
`,1),y=[r,t,c,F];function D(A,i,C,b,d,m){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{h as __pageData,_ as default}; diff --git a/docs/document/assets/library_webtorrent.md.b2c88e20.lean.js b/docs/document/assets/library_webtorrent.md.b2c88e20.lean.js deleted file mode 100644 index 4bb97b05e..000000000 --- a/docs/document/assets/library_webtorrent.md.b2c88e20.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-label":'Permalink to "webtorrent.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,b,d,m){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{h as __pageData,_ as default}; diff --git a/docs/document/assets/plugin_ads.md.98973d5f.js b/docs/document/assets/plugin_ads.md.47987cb5.js similarity index 96% rename from docs/document/assets/plugin_ads.md.98973d5f.js rename to docs/document/assets/plugin_ads.md.47987cb5.js index dfd948c62..13155f9a3 100644 --- a/docs/document/assets/plugin_ads.md.98973d5f.js +++ b/docs/document/assets/plugin_ads.md.47987cb5.js @@ -1,4 +1,4 @@ -import{_ as a,c as n,o as l,U as s,x as p}from"./chunks/framework.75837252.js";const u=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/ads.md","lastUpdated":1673441101000}'),e={name:"plugin/ads.md"},o=s('

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
bash
yarn add artplayer-plugin-ads
bash
pnpm add artplayer-plugin-ads
html
<script src="path/to/artplayer-plugin-ads.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js

使用 ​

',8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
+import{_ as a,c as n,o as l,U as s,x as p}from"./chunks/framework.75837252.js";const u=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/ads.md","lastUpdated":1673441101000}'),e={name:"plugin/ads.md"},o=s('

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
bash
yarn add artplayer-plugin-ads
bash
pnpm add artplayer-plugin-ads
html
<script src="path/to/artplayer-plugin-ads.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js

使用 ​

',8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
diff --git a/docs/document/assets/plugin_ads.md.98973d5f.lean.js b/docs/document/assets/plugin_ads.md.47987cb5.lean.js
similarity index 100%
rename from docs/document/assets/plugin_ads.md.98973d5f.lean.js
rename to docs/document/assets/plugin_ads.md.47987cb5.lean.js
diff --git a/docs/document/assets/plugin_control-ui.md.fa2d3a76.js b/docs/document/assets/plugin_control-ui.md.3bdfe915.js
similarity index 95%
rename from docs/document/assets/plugin_control-ui.md.fa2d3a76.js
rename to docs/document/assets/plugin_control-ui.md.3bdfe915.js
index 75fa6bad7..e88868589 100644
--- a/docs/document/assets/plugin_control-ui.md.fa2d3a76.js
+++ b/docs/document/assets/plugin_control-ui.md.3bdfe915.js
@@ -1,4 +1,4 @@
-import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/control-ui.md","lastUpdated":1673441101000}'),e={name:"plugin/control-ui.md"},o=s('

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
bash
yarn add artplayer-plugin-control
bash
pnpm add artplayer-plugin-control
html
<script src="path/to/artplayer-plugin-control.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js

使用 ​

',8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
+import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/control-ui.md","lastUpdated":1673441101000}'),e={name:"plugin/control-ui.md"},o=s('

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
bash
yarn add artplayer-plugin-control
bash
pnpm add artplayer-plugin-control
html
<script src="path/to/artplayer-plugin-control.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js

使用 ​

',8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
diff --git a/docs/document/assets/plugin_control-ui.md.fa2d3a76.lean.js b/docs/document/assets/plugin_control-ui.md.3bdfe915.lean.js
similarity index 100%
rename from docs/document/assets/plugin_control-ui.md.fa2d3a76.lean.js
rename to docs/document/assets/plugin_control-ui.md.3bdfe915.lean.js
diff --git a/docs/document/assets/plugin_danmuku.md.0a2404fe.js b/docs/document/assets/plugin_danmuku.md.8f07145d.js
similarity index 99%
rename from docs/document/assets/plugin_danmuku.md.0a2404fe.js
rename to docs/document/assets/plugin_danmuku.md.8f07145d.js
index c0ba797a7..63bdac94d 100644
--- a/docs/document/assets/plugin_danmuku.md.0a2404fe.js
+++ b/docs/document/assets/plugin_danmuku.md.8f07145d.js
@@ -1,4 +1,4 @@
-import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const I=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","lastUpdated":1673441101000}'),o={name:"plugin/danmuku.md"},e=s(`

弹幕库 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-danmuku
bash
yarn add artplayer-plugin-danmuku
bash
pnpm add artplayer-plugin-danmuku
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js

选项 ​

js
{
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const N=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","lastUpdated":1673441101000}'),o={name:"plugin/danmuku.md"},e=s(`

弹幕库 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-danmuku
bash
yarn add artplayer-plugin-danmuku
bash
pnpm add artplayer-plugin-danmuku
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js

选项 ​

js
{
     danmuku: [], // 弹幕库,支持数组, xml 地址, Promise返回数组
     speed: 5, // 弹幕持续时间,单位秒,范围在[1 ~ 10]
     opacity: 1, // 弹幕透明度,范围在[0 ~ 1]
@@ -209,7 +209,7 @@ import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";c
             },
         },
     ],
-});

reset ​

用于清空当前显示的弹幕

`,3),E=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),k=s(`
js
var art = new Artplayer({
+});

reset ​

用于清空当前显示的弹幕

`,3),E=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),v=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -222,7 +222,7 @@ import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";c
 
 art.on('resize', () => {
     art.plugins.artplayerPluginDanmuku.reset();
-});

option ​

用于获取当前弹幕配置

`,3),v=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),f=s(`
js
var art = new Artplayer({
+});

option ​

用于获取当前弹幕配置

`,3),k=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),f=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -280,4 +280,4 @@ import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";c
 
 art.on('artplayerPluginDanmuku:destroy', () => {
     console.info('弹幕销毁');
-});
`,3),P=[e,r,c,t,D,F,y,i,C,A,u,b,m,d,h,g,_,E,k,v,f];function T(x,B,q,j,S,w){return p(),l("div",null,P)}const V=a(o,[["render",T]]);export{I as __pageData,V as default}; +});
`,3),P=[e,r,c,t,D,F,y,i,C,A,u,b,m,d,h,g,_,E,v,k,f];function T(x,B,q,j,S,w){return p(),l("div",null,P)}const V=a(o,[["render",T]]);export{N as __pageData,V as default}; diff --git a/docs/document/assets/plugin_danmuku.md.0a2404fe.lean.js b/docs/document/assets/plugin_danmuku.md.8f07145d.lean.js similarity index 84% rename from docs/document/assets/plugin_danmuku.md.0a2404fe.lean.js rename to docs/document/assets/plugin_danmuku.md.8f07145d.lean.js index 61fcc8391..7c31a8af5 100644 --- a/docs/document/assets/plugin_danmuku.md.0a2404fe.lean.js +++ b/docs/document/assets/plugin_danmuku.md.8f07145d.lean.js @@ -1 +1 @@ -import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const I=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","lastUpdated":1673441101000}'),o={name:"plugin/danmuku.md"},e=s("",10),r=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),c=s("",2),t=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),D=s("",2),F=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),y=s("",3),i=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),C=s("",3),A=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),u=s("",3),b=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),m=s("",4),d=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),h=s("",3),g=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),_=s("",3),E=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),k=s("",3),v=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),f=s("",3),P=[e,r,c,t,D,F,y,i,C,A,u,b,m,d,h,g,_,E,k,v,f];function T(x,B,q,j,S,w){return p(),l("div",null,P)}const V=a(o,[["render",T]]);export{I as __pageData,V as default}; +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const N=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","lastUpdated":1673441101000}'),o={name:"plugin/danmuku.md"},e=s("",10),r=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),c=s("",2),t=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),D=s("",2),F=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),y=s("",3),i=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),C=s("",3),A=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),u=s("",3),b=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),m=s("",4),d=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),h=s("",3),g=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),_=s("",3),E=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),v=s("",3),k=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),f=s("",3),P=[e,r,c,t,D,F,y,i,C,A,u,b,m,d,h,g,_,E,v,k,f];function T(x,B,q,j,S,w){return p(),l("div",null,P)}const V=a(o,[["render",T]]);export{N as __pageData,V as default}; diff --git a/docs/document/assets/plugin_dash-quality.md.423df0fd.js b/docs/document/assets/plugin_dash-quality.md.8d733387.js similarity index 85% rename from docs/document/assets/plugin_dash-quality.md.423df0fd.js rename to docs/document/assets/plugin_dash-quality.md.8d733387.js index 680053942..4c9571f8b 100644 --- a/docs/document/assets/plugin_dash-quality.md.423df0fd.js +++ b/docs/document/assets/plugin_dash-quality.md.8d733387.js @@ -1 +1 @@ -import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"plugin/dash-quality.md"},t=l('

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
bash
yarn add artplayer-plugin-dash-quality
bash
pnpm add artplayer-plugin-dash-quality
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
',7),p=[t];function r(i,o,d,c,u,h){return e(),s("div",null,p)}const m=a(n,[["render",r]]);export{y as __pageData,m as default}; +import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"plugin/dash-quality.md"},t=l('

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
bash
yarn add artplayer-plugin-dash-quality
bash
pnpm add artplayer-plugin-dash-quality
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
',7),p=[t];function r(i,o,c,d,u,h){return e(),s("div",null,p)}const m=a(n,[["render",r]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/plugin_dash-quality.md.423df0fd.lean.js b/docs/document/assets/plugin_dash-quality.md.8d733387.lean.js similarity index 84% rename from docs/document/assets/plugin_dash-quality.md.423df0fd.lean.js rename to docs/document/assets/plugin_dash-quality.md.8d733387.lean.js index ec98071b6..791a125d2 100644 --- a/docs/document/assets/plugin_dash-quality.md.423df0fd.lean.js +++ b/docs/document/assets/plugin_dash-quality.md.8d733387.lean.js @@ -1 +1 @@ -import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"plugin/dash-quality.md"},t=l("",7),p=[t];function r(i,o,d,c,u,h){return e(),s("div",null,p)}const m=a(n,[["render",r]]);export{y as __pageData,m as default}; +import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"plugin/dash-quality.md"},t=l("",7),p=[t];function r(i,o,c,d,u,h){return e(),s("div",null,p)}const m=a(n,[["render",r]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/plugin_hls-quality.md.7c7007b4.js b/docs/document/assets/plugin_hls-quality.md.20e2774e.js similarity index 81% rename from docs/document/assets/plugin_hls-quality.md.7c7007b4.js rename to docs/document/assets/plugin_hls-quality.md.20e2774e.js index 48dd5d8b7..bde0df5f0 100644 --- a/docs/document/assets/plugin_hls-quality.md.7c7007b4.js +++ b/docs/document/assets/plugin_hls-quality.md.20e2774e.js @@ -1 +1 @@ -import{_ as a,c as s,o as l,U as e}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/hls-quality.md","lastUpdated":1673441101000}'),n={name:"plugin/hls-quality.md"},t=e('

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
bash
yarn add artplayer-plugin-hls-quality
bash
pnpm add artplayer-plugin-hls-quality
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
',7),p=[t];function r(i,o,c,d,u,b){return l(),s("div",null,p)}const m=a(n,[["render",r]]);export{y as __pageData,m as default}; +import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/hls-quality.md","lastUpdated":1673441101000}'),n={name:"plugin/hls-quality.md"},t=l('

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
bash
yarn add artplayer-plugin-hls-quality
bash
pnpm add artplayer-plugin-hls-quality
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
',7),p=[t];function i(r,o,c,d,u,b){return e(),s("div",null,p)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/plugin_hls-quality.md.7c7007b4.lean.js b/docs/document/assets/plugin_hls-quality.md.20e2774e.lean.js similarity index 51% rename from docs/document/assets/plugin_hls-quality.md.7c7007b4.lean.js rename to docs/document/assets/plugin_hls-quality.md.20e2774e.lean.js index f04289e63..999f653b6 100644 --- a/docs/document/assets/plugin_hls-quality.md.7c7007b4.lean.js +++ b/docs/document/assets/plugin_hls-quality.md.20e2774e.lean.js @@ -1 +1 @@ -import{_ as a,c as s,o as l,U as e}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/hls-quality.md","lastUpdated":1673441101000}'),n={name:"plugin/hls-quality.md"},t=e("",7),p=[t];function r(i,o,c,d,u,b){return l(),s("div",null,p)}const m=a(n,[["render",r]]);export{y as __pageData,m as default}; +import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/hls-quality.md","lastUpdated":1673441101000}'),n={name:"plugin/hls-quality.md"},t=l("",7),p=[t];function i(r,o,c,d,u,b){return e(),s("div",null,p)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/plugin_iframe.md.a080ef12.js b/docs/document/assets/plugin_iframe.md.05c2ebd5.js similarity index 98% rename from docs/document/assets/plugin_iframe.md.a080ef12.js rename to docs/document/assets/plugin_iframe.md.05c2ebd5.js index df900d18c..8f3a70a28 100644 --- a/docs/document/assets/plugin_iframe.md.a080ef12.js +++ b/docs/document/assets/plugin_iframe.md.05c2ebd5.js @@ -1,4 +1,4 @@ -import{_ as s,c as a,o as n,U as l}from"./chunks/framework.75837252.js";const A=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/iframe.md","lastUpdated":1680272727000}'),p={name:"plugin/iframe.md"},o=l(`

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
bash
yarn add artplayer-plugin-iframe
bash
pnpm add artplayer-plugin-iframe
html
<script src="path/to/artplayer-plugin-iframe.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js

使用 ​

html
<!DOCTYPE html>
+import{_ as s,c as a,o as n,U as l}from"./chunks/framework.75837252.js";const A=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/iframe.md","lastUpdated":1680272727000}'),p={name:"plugin/iframe.md"},o=l(`

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
bash
yarn add artplayer-plugin-iframe
bash
pnpm add artplayer-plugin-iframe
html
<script src="path/to/artplayer-plugin-iframe.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js

使用 ​

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -83,7 +83,7 @@ import{_ as s,c as a,o as n,U as l}from"./chunks/framework.75837252.js";const A=
         type: 'currentTime',
         data: art.currentTime,
     });
-});

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html
<!DOCTYPE html>
+});

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
diff --git a/docs/document/assets/plugin_iframe.md.a080ef12.lean.js b/docs/document/assets/plugin_iframe.md.05c2ebd5.lean.js
similarity index 100%
rename from docs/document/assets/plugin_iframe.md.a080ef12.lean.js
rename to docs/document/assets/plugin_iframe.md.05c2ebd5.lean.js
diff --git a/docs/document/assets/start_component.md.58d8db9b.js b/docs/document/assets/start_component.md.58d8db9b.js
deleted file mode 100644
index 6292af180..000000000
--- a/docs/document/assets/start_component.md.58d8db9b.js
+++ /dev/null
@@ -1,141 +0,0 @@
-import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const T=JSON.parse('{"title":"组件配置","description":"","frontmatter":{},"headers":[],"relativePath":"start/component.md","lastUpdated":1674028264000}'),o={name:"start/component.md"},e=s('

组件配置 ​

这里所说的组件配置主要是指:layers , controls , contextmenu 这三个共用的配置:

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

提示

  • 当前组件只能添加,并没有销毁的功能
  • 通过 name 选项可以快速获取组件的 DOM 元素
  • 通过 index 选项可以控制组件出现的顺序

layers ​

实例化时添加一个层,例如可以添加 logo 或者 广告 等等

',6),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var img = '/assets/sample/layer.png';
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    layers: [
-        {
-            name: 'potser',
-            html: \`<img style="width: 100px" src="\${img}">\`,
-            tooltip: 'Potser Tip',
-            style: {
-                position: 'absolute',
-                top: '50px',
-                right: '50px',
-            },
-            click: function (...args) {
-                console.info('click', args);
-            },
-            mounted: function (...args) {
-                console.info('mounted', args);
-            },
-        },
-    ],
-});
-
-console.info(art.layers.potser);

也可以实例化之后添加一个层

`,2),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var img = '/assets/sample/layer.png';
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.layers.add({
-    name: 'potser',
-    html: \`<img style="width: 100px" src="\${img}">\`,
-    tooltip: 'Potser Tip',
-    style: {
-        position: 'absolute',
-        top: '50px',
-        right: '50px',
-    },
-    click: function (...args) {
-        console.info('click', args);
-    },
-    mounted: function (...args) {
-        console.info('mounted', args);
-    },
-});
-
-console.info(art.layers.potser);

controls ​

实例化时添加一个控制器

controls 还有三个额外的选项

  • position: left 和 right 控制控制器出现的左右位置
  • selector: 选择列表的对象数组
  • onSelect: 选择列表的元素被点击时触发的函数
`,4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    controls: [
-        {
-            name: 'your-button',
-            index: 10,
-            position: 'left',
-            html: 'Your Button',
-            tooltip: 'Your Button',
-            style: {
-                color: 'red',
-            },
-            click: function (...args) {
-                console.info('click', args);
-            },
-            mounted: function (...args) {
-                console.info('mounted', args);
-            },
-        },
-        {
-            name: 'subtitle',
-            position: 'right',
-            html: 'Subtitle',
-            selector: [
-                {
-                    default: true,
-                    html: '<span style="color:red">subtitle 01</span>',
-                },
-                {
-                    html: '<span style="color:yellow">subtitle 02</span>',
-                },
-            ],
-            onSelect: function (item, $dom) {
-                console.info(item, $dom);
-                return 'Your ' + item.html;
-            },
-        },
-    ],
-});
-
-console.info(art.controls['your-button']);
-console.info(art.controls.subtitle);

也可以实例化之后添加一个控制器

js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.controls.add({
-    name: 'button1',
-    index: 10,
-    position: 'left',
-    html: 'Your Button',
-    tooltip: 'Your Button',
-    style: {
-        color: 'red',
-    },
-    click: function (...args) {
-        console.info('click', args);
-    },
-    mounted: function (...args) {
-        console.info('mounted', args);
-    },
-});
-
-console.info(art.controls.button1);

contextmenu ​

实例化时添加一个右键菜单

`,5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    contextmenu: [
-        {
-            name: 'your-menu',
-            html: 'Your Menu',
-            click: function (...args) {
-                console.info(args);
-                art.contextmenu.show = false;
-            },
-        },
-    ],
-});
-
-console.info(art.contextmenu['your-menu']);

也可以实例化之后添加一个右键菜单

`,2),C=n("div",{className:"run-code"},"▶ Run Code",-1),b=s(`
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.contextmenu.add({
-    name: 'your-menu',
-    html: 'Your Menu',
-    click: function (...args) {
-        console.info(args);
-        art.contextmenu.show = false;
-    },
-});
-
-console.info(art.contextmenu['your-menu']);
`,1),d=[e,c,r,t,D,F,y,i,A,C,b];function h(u,m,g,_,E,f){return p(),l("div",null,d)}const x=a(o,[["render",h]]);export{T as __pageData,x as default}; diff --git a/docs/document/assets/start_component.md.58d8db9b.lean.js b/docs/document/assets/start_component.md.58d8db9b.lean.js deleted file mode 100644 index 788106122..000000000 --- a/docs/document/assets/start_component.md.58d8db9b.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const T=JSON.parse('{"title":"组件配置","description":"","frontmatter":{},"headers":[],"relativePath":"start/component.md","lastUpdated":1674028264000}'),o={name:"start/component.md"},e=s("",6),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",2),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",2),C=n("div",{className:"run-code"},"▶ Run Code",-1),b=s("",1),d=[e,c,r,t,D,F,y,i,A,C,b];function h(u,m,g,_,E,f){return p(),l("div",null,d)}const x=a(o,[["render",h]]);export{T as __pageData,x as default}; diff --git a/docs/document/assets/start_option.md.4b8e6e65.js b/docs/document/assets/start_option.md.c93020db.js similarity index 94% rename from docs/document/assets/start_option.md.4b8e6e65.js rename to docs/document/assets/start_option.md.c93020db.js index 4dec0eba1..2cd41d34a 100644 --- a/docs/document/assets/start_option.md.4b8e6e65.js +++ b/docs/document/assets/start_option.md.c93020db.js @@ -1,4 +1,4 @@ -import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const Da=JSON.parse('{"title":"基础选项","description":"","frontmatter":{},"headers":[],"relativePath":"start/option.md","lastUpdated":1677226299000}'),e={name:"start/option.md"},o=s('

基础选项 ​

container ​

  • Type: String, Element
  • Default: #artplayer

播放器挂载的 DOM 容器

',4),c=a("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
+import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const ya=JSON.parse('{"title":"基础选项","description":"","frontmatter":{},"headers":[],"relativePath":"start/option.md","lastUpdated":1682222294000}'),e={name:"start/option.md"},o=s('

基础选项 ​

container ​

  • Type: String, Element
  • Default: #artplayer

播放器挂载的 DOM 容器

',4),c=a("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
     container: '.artplayer-app', 
     // container: document.querySelector('.artplayer-app'),
     url: '/assets/sample/video.mp4',
@@ -58,24 +58,24 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     isLive: true,
-});

muted ​

  • Type: Boolean
  • Default: false

是否默认静音

`,4),S=a("div",{className:"run-code"},"▶ Run Code",-1),P=s(`
js
var art = new Artplayer({
+});

muted ​

  • Type: Boolean
  • Default: false

是否默认静音

`,4),S=a("div",{className:"run-code"},"▶ Run Code",-1),k=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
-});

autoplay ​

  • Type: Boolean
  • Default: false

是否自动播放

`,4),k=a("div",{className:"run-code"},"▶ Run Code",-1),w=s(`
js
var art = new Artplayer({
+});

autoplay ​

  • Type: Boolean
  • Default: false

是否自动播放

`,4),P=a("div",{className:"run-code"},"▶ Run Code",-1),w=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoplay: true,
     muted: true,
-});

提示

假如希望默认进入页面就能自动播放视频,muted 必需为 true,更多信息请阅读 Autoplay Policy Changes

autoSize ​

  • Type: Boolean
  • Default: false

播放器的尺寸默认会填充整个 container 容器尺寸,所以经常出现黑边,该值能自动调整播放器尺寸以隐藏黑边,类似 css 的 object-fit: cover;

`,5),R=a("div",{className:"run-code"},"▶ Run Code",-1),q=s(`
js
var art = new Artplayer({
+});

提示

假如希望默认进入页面就能自动播放视频,muted 必需为 true,更多信息请阅读 Autoplay Policy Changes

autoSize ​

  • Type: Boolean
  • Default: false

播放器的尺寸默认会填充整个 container 容器尺寸,所以经常出现黑边,该值能自动调整播放器尺寸以隐藏黑边,类似 css 的 object-fit: cover;

`,5),R=a("div",{className:"run-code"},"▶ Run Code",-1),V=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
-});

autoMini ​

  • Type: Boolean
  • Default: false

当播放器滚动到浏览器视口以外时,自动进入 迷你播放 模式

`,4),j=a("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
+});

autoMini ​

  • Type: Boolean
  • Default: false

当播放器滚动到浏览器视口以外时,自动进入 迷你播放 模式

`,4),j=a("div",{className:"run-code"},"▶ Run Code",-1),q=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoMini: true,
-});

loop ​

  • Type: Boolean
  • Default: false

是否循环播放

`,4),I=a("div",{className:"run-code"},"▶ Run Code",-1),V=s(`
js
var art = new Artplayer({
+});

loop ​

  • Type: Boolean
  • Default: false

是否循环播放

`,4),N=a("div",{className:"run-code"},"▶ Run Code",-1),I=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     loop: true,
@@ -89,7 +89,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
     url: '/assets/sample/video.mp4',
     playbackRate: true,
     setting: true,
-});

aspectRatio ​

  • Type: Boolean
  • Default: false

是否显示视频长宽比功能,会出现在 设置面板 和 右键菜单 里

`,4),M=a("div",{className:"run-code"},"▶ Run Code",-1),L=s(`
js
var art = new Artplayer({
+});

aspectRatio ​

  • Type: Boolean
  • Default: false

是否显示视频长宽比功能,会出现在 设置面板 和 右键菜单 里

`,4),L=a("div",{className:"run-code"},"▶ Run Code",-1),M=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     aspectRatio: true,
@@ -168,7 +168,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
             },
         },
     ],
-});

组件配置 请参考以下地址:

/start/component.html

settings ​

  • Type: Array
  • Default: []

初始化自定义的 设置面板

`,5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s(`
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/layers.html

settings ​

  • Type: Array
  • Default: []

初始化自定义的 设置面板

`,5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -202,7 +202,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
             },
         },
     ],
-});

设置面板 请参考以下地址

/start/setting.html

contextmenu ​

  • Type: Array
  • Default: []

初始化自定义的 右键菜单

`,5),As=a("div",{className:"run-code"},"▶ Run Code",-1),ds=s(`
js
var art = new Artplayer({
+});

设置面板 请参考以下地址

/component/setting.html

contextmenu ​

  • Type: Array
  • Default: []

初始化自定义的 右键菜单

`,5),As=a("div",{className:"run-code"},"▶ Run Code",-1),ds=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -214,7 +214,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
             },
         },
     ],
-});

组件配置 请参考以下地址:

/start/component.html- Type:

controls ​

  • Type: Array
  • Default: []

初始化自定义的底部 控制栏

`,5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s(`
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/contextmenu.html- Type:

controls ​

  • Type: Array
  • Default: []

初始化自定义的底部 控制栏

`,5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -230,7 +230,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
             },
         },
     ],
-});

组件配置 请参考以下地址:

/start/component.html

quality ​

  • Type: Array
  • Default: []

是否在底部控制栏里显示 画质选择 列表

属性类型描述
defaultBoolean默认画质
htmlString画质名字
urlString画质地址
`,6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s(`
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/controls.html

quality ​

  • Type: Array
  • Default: []

是否在底部控制栏里显示 画质选择 列表

属性类型描述
defaultBoolean默认画质
htmlString画质名字
urlString画质地址
`,6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     quality: [
@@ -290,7 +290,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
     whitelist: [(ua) => /iPhone/gi.test(ua)],
     // whitelist: [/iPhone/gi],
     // whitelist: ['iPhone'],
-});

提示

假如该选项不填,则默认使用本播放器

thumbnails ​

  • Type: Object
  • Default: {}

在进度条上设置 预览图

属性类型描述
urlString预览图地址
numberNumber预览图数量
columnNumber预览图列数
widthNumber预览图宽度
heightNumber预览图高度
`,6),Ss=a("div",{className:"run-code"},"▶ Run Code",-1),Ps=s(`
js
var art = new Artplayer({
+});

提示

假如该选项不填,则默认使用本播放器

thumbnails ​

  • Type: Object
  • Default: {}

在进度条上设置 预览图

属性类型描述
urlString预览图地址
numberNumber预览图数量
columnNumber预览图列数
widthNumber预览图宽度
heightNumber预览图高度
`,6),Ss=a("div",{className:"run-code"},"▶ Run Code",-1),ks=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     thumbnails: {
@@ -298,7 +298,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
         number: 100,
         column: 10,
     },
-});

在线生成预览图

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

设置视频的字幕,支持字幕格式:vtt, srt, ass

属性类型描述
urlString字幕地址
typeString字幕类型,可选 vtt, srt, ass
styleObject字幕样式
encodingString字幕编码,默认 utf-8
escapeBoolean是否转义 html 标签,默认为 true
`,6),ks=a("div",{className:"run-code"},"▶ Run Code",-1),ws=s(`
js
var art = new Artplayer({
+});

在线生成预览图

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

设置视频的字幕,支持字幕格式:vtt, srt, ass

属性类型描述
urlString字幕地址
typeString字幕类型,可选 vtt, srt, ass
styleObject字幕样式
encodingString字幕编码,默认 utf-8
escapeBoolean是否转义 html 标签,默认为 true
onVttLoadFunction用于修改 vtt 文本的函数
`,6),Ps=a("div",{className:"run-code"},"▶ Run Code",-1),ws=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -311,21 +311,21 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
             'font-size': '30px',
         },
     },
-});

moreVideoAttr ​

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

更多视频属性,这些属性将直接写入视频元素里

`,4),Rs=a("div",{className:"run-code"},"▶ Run Code",-1),qs=s(`
js
var art = new Artplayer({
+});

moreVideoAttr ​

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

更多视频属性,这些属性将直接写入视频元素里

`,4),Rs=a("div",{className:"run-code"},"▶ Run Code",-1),Vs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     moreVideoAttr: {
         'webkit-playsinline': true,
         playsInline: true,
     },
-});

icons ​

  • Type: Object
  • Default: {}

用于替换默认图标,支持 Html 字符串和 HTMLElement

`,4),js=a("div",{className:"run-code"},"▶ Run Code",-1),Ns=s(`
js
var art = new Artplayer({
+});

icons ​

  • Type: Object
  • Default: {}

用于替换默认图标,支持 Html 字符串和 HTMLElement

`,4),js=a("div",{className:"run-code"},"▶ Run Code",-1),qs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     icons: {
         loading: '<img src="/assets/img/ploading.gif">',
         state: '<img src="/assets/img/state.png">',
     },
-});

全部图标的定义

artplayer/types/icons.d.ts

type ​

  • Type: String
  • Default: ''

用于指明视频的格式,需要配合 customType 一起使用,默认视频的格式就是视频地址的后缀(如 .m3u8, .mkv, .ts),但有时候视频地地址没有正确的后缀,所以需要特别指明

`,5),Is=a("div",{className:"run-code"},"▶ Run Code",-1),Vs=s(`
js
var art = new Artplayer({
+});

全部图标的定义

artplayer/types/icons.d.ts

type ​

  • Type: String
  • Default: ''

用于指明视频的格式,需要配合 customType 一起使用,默认视频的格式就是视频地址的后缀(如 .m3u8, .mkv, .ts),但有时候视频地地址没有正确的后缀,所以需要特别指明

`,5),Ns=a("div",{className:"run-code"},"▶ Run Code",-1),Is=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.m3u8',
     type: 'm3u8',
@@ -341,7 +341,7 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'en',
-});

i18n ​

  • Type: Object
  • Default: {}

自定义 i18n 配置,该配置会和自带的 i18n 进行深度合并

新增你的语言:

`,5),Ms=a("div",{className:"run-code"},"▶ Run Code",-1),Ls=s(`
js
var art = new Artplayer({
+});

i18n ​

  • Type: Object
  • Default: {}

自定义 i18n 配置,该配置会和自带的 i18n 进行深度合并

新增你的语言:

`,5),Ls=a("div",{className:"run-code"},"▶ Run Code",-1),Ms=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'your-lang',
@@ -382,4 +382,10 @@ import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";c
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     airplay: true,
-});
`,1),aa=[o,c,r,t,D,i,y,F,C,A,d,h,u,b,m,g,_,v,T,E,f,S,P,k,w,R,q,j,N,I,V,x,B,O,z,M,L,$,H,Y,W,U,J,G,K,Q,X,Z,ss,as,ns,ls,ps,es,os,cs,rs,ts,Ds,is,ys,Fs,Cs,As,ds,hs,us,bs,ms,gs,_s,vs,Ts,Es,fs,Ss,Ps,ks,ws,Rs,qs,js,Ns,Is,Vs,xs,Bs,Os,zs,Ms,Ls,$s,Hs,Ys,Ws,Us,Js,Gs,Ks,Qs,Xs,Zs,sa];function na(la,pa,ea,oa,ca,ra){return p(),l("div",null,aa)}const ia=n(e,[["render",na]]);export{Da as __pageData,ia as default}; +});

cssVar ​

  • Type: Object
  • Default: {}

用于改变内置的css变量

`,4),aa=a("div",{className:"run-code"},"▶ Run Code",-1),na=s(`
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    cssVar: {
+        //
+    },
+});
`,2),la=[o,c,r,t,D,i,y,F,C,A,d,h,u,b,m,g,_,v,T,E,f,S,k,P,w,R,V,j,q,N,I,x,B,O,z,L,M,$,H,Y,W,U,J,G,K,Q,X,Z,ss,as,ns,ls,ps,es,os,cs,rs,ts,Ds,is,ys,Fs,Cs,As,ds,hs,us,bs,ms,gs,_s,vs,Ts,Es,fs,Ss,ks,Ps,ws,Rs,Vs,js,qs,Ns,Is,xs,Bs,Os,zs,Ls,Ms,$s,Hs,Ys,Ws,Us,Js,Gs,Ks,Qs,Xs,Zs,sa,aa,na];function pa(ea,oa,ca,ra,ta,Da){return p(),l("div",null,la)}const Fa=n(e,[["render",pa]]);export{ya as __pageData,Fa as default}; diff --git a/docs/document/assets/start_option.md.4b8e6e65.lean.js b/docs/document/assets/start_option.md.c93020db.lean.js similarity index 66% rename from docs/document/assets/start_option.md.4b8e6e65.lean.js rename to docs/document/assets/start_option.md.c93020db.lean.js index eeedb83f4..5fa50b001 100644 --- a/docs/document/assets/start_option.md.4b8e6e65.lean.js +++ b/docs/document/assets/start_option.md.c93020db.lean.js @@ -1 +1 @@ -import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const Da=JSON.parse('{"title":"基础选项","description":"","frontmatter":{},"headers":[],"relativePath":"start/option.md","lastUpdated":1677226299000}'),e={name:"start/option.md"},o=s("",4),c=a("div",{className:"run-code"},"▶ Run Code",-1),r=s("",9),t=a("div",{className:"run-code"},"▶ Run Code",-1),D=s("",2),i=a("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),F=a("div",{className:"run-code"},"▶ Run Code",-1),C=s("",4),A=a("div",{className:"run-code"},"▶ Run Code",-1),d=s("",7),h=a("div",{className:"run-code"},"▶ Run Code",-1),u=s("",4),b=a("div",{className:"run-code"},"▶ Run Code",-1),m=s("",4),g=a("div",{className:"run-code"},"▶ Run Code",-1),_=s("",4),v=a("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),E=a("div",{className:"run-code"},"▶ Run Code",-1),f=s("",4),S=a("div",{className:"run-code"},"▶ Run Code",-1),P=s("",4),k=a("div",{className:"run-code"},"▶ Run Code",-1),w=s("",5),R=a("div",{className:"run-code"},"▶ Run Code",-1),q=s("",4),j=a("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),I=a("div",{className:"run-code"},"▶ Run Code",-1),V=s("",4),x=a("div",{className:"run-code"},"▶ Run Code",-1),B=s("",4),O=a("div",{className:"run-code"},"▶ Run Code",-1),z=s("",4),M=a("div",{className:"run-code"},"▶ Run Code",-1),L=s("",4),$=a("div",{className:"run-code"},"▶ Run Code",-1),H=s("",5),Y=a("div",{className:"run-code"},"▶ Run Code",-1),W=s("",4),U=a("div",{className:"run-code"},"▶ Run Code",-1),J=s("",6),G=a("div",{className:"run-code"},"▶ Run Code",-1),K=s("",4),Q=a("div",{className:"run-code"},"▶ Run Code",-1),X=s("",4),Z=a("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),as=a("div",{className:"run-code"},"▶ Run Code",-1),ns=s("",4),ls=a("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),es=a("div",{className:"run-code"},"▶ Run Code",-1),os=s("",5),cs=a("div",{className:"run-code"},"▶ Run Code",-1),rs=s("",4),ts=a("div",{className:"run-code"},"▶ Run Code",-1),Ds=s("",4),is=a("div",{className:"run-code"},"▶ Run Code",-1),ys=s("",5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s("",5),As=a("div",{className:"run-code"},"▶ Run Code",-1),ds=s("",5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s("",6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s("",5),gs=a("div",{className:"run-code"},"▶ Run Code",-1),_s=s("",4),vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",6),Es=a("div",{className:"run-code"},"▶ Run Code",-1),fs=s("",6),Ss=a("div",{className:"run-code"},"▶ Run Code",-1),Ps=s("",6),ks=a("div",{className:"run-code"},"▶ Run Code",-1),ws=s("",4),Rs=a("div",{className:"run-code"},"▶ Run Code",-1),qs=s("",4),js=a("div",{className:"run-code"},"▶ Run Code",-1),Ns=s("",5),Is=a("div",{className:"run-code"},"▶ Run Code",-1),Vs=s("",6),xs=a("div",{className:"run-code"},"▶ Run Code",-1),Bs=s("",4),Os=a("div",{className:"run-code"},"▶ Run Code",-1),zs=s("",5),Ms=a("div",{className:"run-code"},"▶ Run Code",-1),Ls=s("",2),$s=a("div",{className:"run-code"},"▶ Run Code",-1),Hs=s("",5),Ys=a("div",{className:"run-code"},"▶ Run Code",-1),Ws=s("",4),Us=a("div",{className:"run-code"},"▶ Run Code",-1),Js=s("",4),Gs=a("div",{className:"run-code"},"▶ Run Code",-1),Ks=s("",5),Qs=a("div",{className:"run-code"},"▶ Run Code",-1),Xs=s("",4),Zs=a("div",{className:"run-code"},"▶ Run Code",-1),sa=s("",1),aa=[o,c,r,t,D,i,y,F,C,A,d,h,u,b,m,g,_,v,T,E,f,S,P,k,w,R,q,j,N,I,V,x,B,O,z,M,L,$,H,Y,W,U,J,G,K,Q,X,Z,ss,as,ns,ls,ps,es,os,cs,rs,ts,Ds,is,ys,Fs,Cs,As,ds,hs,us,bs,ms,gs,_s,vs,Ts,Es,fs,Ss,Ps,ks,ws,Rs,qs,js,Ns,Is,Vs,xs,Bs,Os,zs,Ms,Ls,$s,Hs,Ys,Ws,Us,Js,Gs,Ks,Qs,Xs,Zs,sa];function na(la,pa,ea,oa,ca,ra){return p(),l("div",null,aa)}const ia=n(e,[["render",na]]);export{Da as __pageData,ia as default}; +import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const ya=JSON.parse('{"title":"基础选项","description":"","frontmatter":{},"headers":[],"relativePath":"start/option.md","lastUpdated":1682222294000}'),e={name:"start/option.md"},o=s("",4),c=a("div",{className:"run-code"},"▶ Run Code",-1),r=s("",9),t=a("div",{className:"run-code"},"▶ Run Code",-1),D=s("",2),i=a("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),F=a("div",{className:"run-code"},"▶ Run Code",-1),C=s("",4),A=a("div",{className:"run-code"},"▶ Run Code",-1),d=s("",7),h=a("div",{className:"run-code"},"▶ Run Code",-1),u=s("",4),b=a("div",{className:"run-code"},"▶ Run Code",-1),m=s("",4),g=a("div",{className:"run-code"},"▶ Run Code",-1),_=s("",4),v=a("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),E=a("div",{className:"run-code"},"▶ Run Code",-1),f=s("",4),S=a("div",{className:"run-code"},"▶ Run Code",-1),k=s("",4),P=a("div",{className:"run-code"},"▶ Run Code",-1),w=s("",5),R=a("div",{className:"run-code"},"▶ Run Code",-1),V=s("",4),j=a("div",{className:"run-code"},"▶ Run Code",-1),q=s("",4),N=a("div",{className:"run-code"},"▶ Run Code",-1),I=s("",4),x=a("div",{className:"run-code"},"▶ Run Code",-1),B=s("",4),O=a("div",{className:"run-code"},"▶ Run Code",-1),z=s("",4),L=a("div",{className:"run-code"},"▶ Run Code",-1),M=s("",4),$=a("div",{className:"run-code"},"▶ Run Code",-1),H=s("",5),Y=a("div",{className:"run-code"},"▶ Run Code",-1),W=s("",4),U=a("div",{className:"run-code"},"▶ Run Code",-1),J=s("",6),G=a("div",{className:"run-code"},"▶ Run Code",-1),K=s("",4),Q=a("div",{className:"run-code"},"▶ Run Code",-1),X=s("",4),Z=a("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),as=a("div",{className:"run-code"},"▶ Run Code",-1),ns=s("",4),ls=a("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),es=a("div",{className:"run-code"},"▶ Run Code",-1),os=s("",5),cs=a("div",{className:"run-code"},"▶ Run Code",-1),rs=s("",4),ts=a("div",{className:"run-code"},"▶ Run Code",-1),Ds=s("",4),is=a("div",{className:"run-code"},"▶ Run Code",-1),ys=s("",5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s("",5),As=a("div",{className:"run-code"},"▶ Run Code",-1),ds=s("",5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s("",6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s("",5),gs=a("div",{className:"run-code"},"▶ Run Code",-1),_s=s("",4),vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",6),Es=a("div",{className:"run-code"},"▶ Run Code",-1),fs=s("",6),Ss=a("div",{className:"run-code"},"▶ Run Code",-1),ks=s("",6),Ps=a("div",{className:"run-code"},"▶ Run Code",-1),ws=s("",4),Rs=a("div",{className:"run-code"},"▶ Run Code",-1),Vs=s("",4),js=a("div",{className:"run-code"},"▶ Run Code",-1),qs=s("",5),Ns=a("div",{className:"run-code"},"▶ Run Code",-1),Is=s("",6),xs=a("div",{className:"run-code"},"▶ Run Code",-1),Bs=s("",4),Os=a("div",{className:"run-code"},"▶ Run Code",-1),zs=s("",5),Ls=a("div",{className:"run-code"},"▶ Run Code",-1),Ms=s("",2),$s=a("div",{className:"run-code"},"▶ Run Code",-1),Hs=s("",5),Ys=a("div",{className:"run-code"},"▶ Run Code",-1),Ws=s("",4),Us=a("div",{className:"run-code"},"▶ Run Code",-1),Js=s("",4),Gs=a("div",{className:"run-code"},"▶ Run Code",-1),Ks=s("",5),Qs=a("div",{className:"run-code"},"▶ Run Code",-1),Xs=s("",4),Zs=a("div",{className:"run-code"},"▶ Run Code",-1),sa=s("",4),aa=a("div",{className:"run-code"},"▶ Run Code",-1),na=s("",2),la=[o,c,r,t,D,i,y,F,C,A,d,h,u,b,m,g,_,v,T,E,f,S,k,P,w,R,V,j,q,N,I,x,B,O,z,L,M,$,H,Y,W,U,J,G,K,Q,X,Z,ss,as,ns,ls,ps,es,os,cs,rs,ts,Ds,is,ys,Fs,Cs,As,ds,hs,us,bs,ms,gs,_s,vs,Ts,Es,fs,Ss,ks,Ps,ws,Rs,Vs,js,qs,Ns,Is,xs,Bs,Os,zs,Ls,Ms,$s,Hs,Ys,Ws,Us,Js,Gs,Ks,Qs,Xs,Zs,sa,aa,na];function pa(ea,oa,ca,ra,ta,Da){return p(),l("div",null,la)}const Fa=n(e,[["render",pa]]);export{ya as __pageData,Fa as default}; diff --git a/docs/document/assets/start_setting.md.c779c019.lean.js b/docs/document/assets/start_setting.md.c779c019.lean.js deleted file mode 100644 index e25affa1d..000000000 --- a/docs/document/assets/start_setting.md.c779c019.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"start/setting.md","lastUpdated":1674271220000}'),e={name:"start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-label":'Permalink to "设置面板"'},"​")],-1),c=s("p",null,[n("需先打开设置面板,播放器默认自带四个设置项:"),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),r=s("div",{className:"run-code"},"▶ Run Code",-1),D=a("",3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a("",2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a("",3),i=s("div",{className:"run-code"},"▶ Run Code",-1),b=a("",4),d=s("div",{className:"run-code"},"▶ Run Code",-1),m=a("",1),u=[t,c,r,D,y,F,C,A,i,b,d,m];function h(_,g,E,v,f,S){return o(),p("div",null,u)}const q=l(e,[["render",h]]);export{w as __pageData,q as default}; diff --git a/docs/document/component/contextmenu.html b/docs/document/component/contextmenu.html new file mode 100644 index 000000000..31b1daa47 --- /dev/null +++ b/docs/document/component/contextmenu.html @@ -0,0 +1,107 @@ + + + + + + 右键菜单 | Artplayer.js + + + + + + + + + + + + + +
Skip to content
On this page

右键菜单 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

创建 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+// Get the Element of contextmenu by name
+console.info(art.contextmenu['your-menu']);

添加 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.contextmenu.add({
+    name: 'your-menu',
+    html: 'Your Menu',
+    click: function (...args) {
+        console.info(args);
+        art.contextmenu.show = false;
+    },
+});
+
+art.contextmenu.show = true;
+
+// Get the Element of contextmenu by name
+console.info(art.contextmenu['your-menu']);

删除 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the contextmenu by name
+        art.contextmenu.remove('your-menu')
+    }, 3000);
+});

更新 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the contextmenu by name
+        art.contextmenu.update({
+            name: 'your-menu',
+            html: 'Your New Menu',
+        })
+    }, 3000);
+});
+ + + + \ No newline at end of file diff --git a/docs/document/component/controls.html b/docs/document/component/controls.html new file mode 100644 index 000000000..ef2f2119f --- /dev/null +++ b/docs/document/component/controls.html @@ -0,0 +1,154 @@ + + + + + + 控制器 | Artplayer.js + + + + + + + + + + + + + +
Skip to content
On this page

控制器 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本
positionStringleft 和 right 控制控制器出现的左右位置
selectorArray选择列表的对象数组
onSelectFunction选择列表的元素被点击时触发的函数

创建 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'your-button',
+            index: 10,
+            position: 'left',
+            html: 'Your Button',
+            tooltip: 'Your Button',
+            style: {
+                color: 'red',
+            },
+            click: function (...args) {
+                console.info('click', args);
+            },
+            mounted: function (...args) {
+                console.info('mounted', args);
+            },
+        },
+        {
+            name: 'subtitle',
+            position: 'right',
+            html: 'Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: '<span style="color:red">subtitle 01</span>',
+                },
+                {
+                    html: '<span style="color:yellow">subtitle 02</span>',
+                },
+            ],
+            onSelect: function (item, $dom) {
+                console.info(item, $dom);
+                return 'Your ' + item.html;
+            },
+        },
+    ],
+});
+
+// Get the Element of control by name
+console.info(art.controls['your-button']);
+console.info(art.controls.subtitle);

添加 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.controls.add({
+    name: 'button1',
+    index: 10,
+    position: 'left',
+    html: 'Your Button',
+    tooltip: 'Your Button',
+    style: {
+        color: 'red',
+    },
+    click: function (...args) {
+        console.info('click', args);
+    },
+    mounted: function (...args) {
+        console.info('mounted', args);
+    },
+});
+
+// Get the Element of control by name
+console.info(art.controls.button1);

删除 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'Your Button',
+            tooltip: 'Your Button',
+            style: {
+                color: 'red',
+            },
+        }
+    ]
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the control by name
+        art.controls.remove('button1');
+    }, 3000);
+});

更新 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: 'subtitle 01',
+                },
+                {
+                    html: 'subtitle 02',
+                },
+            ],
+        }
+    ]
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the control by name
+        art.controls.update({
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'New Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: 'new subtitle 01',
+                },
+                {
+                    html: 'new subtitle 02',
+                },
+            ],
+        });
+    }, 3000);
+});
+ + + + \ No newline at end of file diff --git a/docs/document/component/layers.html b/docs/document/component/layers.html new file mode 100644 index 000000000..0ad9695c4 --- /dev/null +++ b/docs/document/component/layers.html @@ -0,0 +1,126 @@ + + + + + + 业务层 | Artplayer.js + + + + + + + + + + + + + +
Skip to content
On this page

业务层 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

创建 ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: `<img style="width: 100px" src="${img}">`,
+            tooltip: 'Potser Tip',
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+            click: function (...args) {
+                console.info('click', args);
+            },
+            mounted: function (...args) {
+                console.info('mounted', args);
+            },
+        },
+    ],
+});
+
+// Get the Element of layer by name
+console.info(art.layers['potser']);

添加 ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.layers.add({
+    name: 'potser',
+    html: `<img style="width: 100px" src="${img}">`,
+    tooltip: 'Potser Tip',
+    style: {
+        position: 'absolute',
+        top: '50px',
+        right: '50px',
+    },
+    click: function (...args) {
+        console.info('click', args);
+    },
+    mounted: function (...args) {
+        console.info('mounted', args);
+    },
+});
+
+// Get the Element of layer by name
+console.info(art.layers['potser']);

删除 ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: `<img style="width: 100px" src="${img}">`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+        },
+    ],
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the layer by name
+        art.layers.remove('potser');
+    }, 3000);
+});

更新 ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: `<img style="width: 100px" src="${img}">`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+        },
+    ],
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the layer by name
+        art.layers.update({
+            name: 'potser',
+            html: `<img style="width: 200px" src="${img}">`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                left: '50px',
+            },
+        });
+    }, 3000);
+});
+ + + + \ No newline at end of file diff --git a/docs/document/start/setting.html b/docs/document/component/setting.html similarity index 58% rename from docs/document/start/setting.html rename to docs/document/component/setting.html index be310eb66..52d372cd6 100644 --- a/docs/document/start/setting.html +++ b/docs/document/component/setting.html @@ -6,18 +6,18 @@ 设置面板 | Artplayer.js - + - - + + -
Skip to content
On this page

设置面板 ​

需先打开设置面板,播放器默认自带四个设置项:flip, playbackRate, aspectRatio, subtitleOffset

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

设置面板 ​

内置 ​

需先打开设置面板,然后自带四个内置项:flip, playbackRate, aspectRatio, subtitleOffset

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 	setting: true,
@@ -25,7 +25,7 @@
     playbackRate: true,
     aspectRatio: true,
     subtitleOffset: true,
-});

选择列表 ​

属性类型描述
htmlString, Element元素的 DOM
iconString, Element元素的图标
selectorArray元素列表
onSelectFunction元素点击事件
widthNumber列表宽度
tooltipString提示文本
▶ Run Code
js
var art = new Artplayer({
+});

创建 - 选择列表 ​

属性类型描述
htmlString, Element元素的 DOM
iconString, Element元素的图标
selectorArray元素列表
onSelectFunction元素点击事件
widthNumber列表宽度
tooltipString提示文本
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -77,7 +77,7 @@
             },
         },
     ],
-});

列表嵌套 ​

▶ Run Code
js
var art = new Artplayer({
+});

创建 - 列表嵌套 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -120,7 +120,7 @@
             ],
         },
     ],
-});

切换按钮 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
switchBoolean按钮默认状态
onSwitchFunction按钮切换事件
tooltipString提示文本
▶ Run Code
js
var art = new Artplayer({
+});

创建 - 切换按钮 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
switchBoolean按钮默认状态
onSwitchFunction按钮切换事件
tooltipString提示文本
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -139,7 +139,7 @@
             },
         },
     ],
-});

范围滑块 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
rangeArray默认状态数组
onRangeFunction完成时触发的事件
onChangeFunction变化时触发的事件
tooltipString提示文本
js
const range = [5, 1, 10, 1];
+});

创建 - 范围滑块 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
rangeArray默认状态数组
onRangeFunction完成时触发的事件
onChangeFunction变化时触发的事件
tooltipString提示文本
js
const range = [5, 1, 10, 1];
 const value = range[0];
 const min = range[1];
 const max = range[2];
@@ -159,9 +159,73 @@
             },
         },
     ],
-});
- +});

添加 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+});
+
+art.setting.show = true;
+
+art.setting.add({
+    html: 'Slider',
+    tooltip: '5x',
+    icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+    range: [5, 1, 10, 1],
+});

删除 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+    flip: true,
+    settings: [
+        {
+            name: 'slider',
+            html: 'Slider',
+            tooltip: '5x',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            range: [5, 1, 10, 1],
+        },
+    ],
+});
+
+art.setting.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the setting by name
+        art.setting.remove('slider');
+    }, 3000);
+});

更新 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+    settings: [
+        {
+            name: 'slider',
+            html: 'Slider',
+            tooltip: '5x',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            range: [5, 1, 10, 1],
+        },
+    ],
+});
+
+art.setting.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the setting by name
+        art.setting.update({
+            name: 'slider',
+            html: 'PIP Mode',
+            tooltip: 'Close',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            switch: false,
+        });
+    }, 3000);
+});
+ \ No newline at end of file diff --git a/docs/document/en/advanced/built-in.html b/docs/document/en/advanced/built-in.html index 9158cfb72..683f51ed8 100644 --- a/docs/document/en/advanced/built-in.html +++ b/docs/document/en/advanced/built-in.html @@ -6,18 +6,18 @@ 高级属性 | Artplayer.js - + - - + + -
Skip to content
On this page

高级属性 ​

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option ​

播放器的选项

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

高级属性 ​

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option ​

播放器的选项

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -104,7 +104,7 @@
 	setTimeout(() => {
 		art.layers.show = false;
 	}, 1000);
-});

组件配置 请参考以下地址:

/start/component.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
▶ Run Code
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/layers.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -118,7 +118,7 @@
 	setTimeout(() => {
 		art.controls.show = false;
 	}, 1000);
-});

组件配置 请参考以下地址:

/start/component.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
▶ Run Code
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/controls.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -132,7 +132,7 @@
 	setTimeout(() => {
 		art.contextmenu.show = false;
 	}, 1000);
-});

组件配置 请参考以下地址:

/start/component.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
▶ Run Code
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/contextmenu.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -191,7 +191,7 @@
 	setTimeout(() => {
 		art.setting.show = false;
 	}, 1000);
-});

设置面板 请参考以下地址

/start/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

▶ Run Code
js
var art = new Artplayer({
+});

设置面板 请参考以下地址

/component/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -210,8 +210,8 @@
 art.on('ready', () => {
     art.plugins.add(myPlugin);
 });
- + \ No newline at end of file diff --git a/docs/document/en/advanced/class.html b/docs/document/en/advanced/class.html index 0f20e490d..2dd7a403a 100644 --- a/docs/document/en/advanced/class.html +++ b/docs/document/en/advanced/class.html @@ -6,10 +6,10 @@ 静态属性 | Artplayer.js - + - + @@ -17,7 +17,7 @@ -
Skip to content
On this page

静态属性 ​

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances ​

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

▶ Run Code
js
console.info([...Artplayer.instances]);
+    
Skip to content
On this page

静态属性 ​

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances ​

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

▶ Run Code
js
console.info([...Artplayer.instances]);
 
 var art = new Artplayer({
     container: '.artplayer-app',
@@ -25,8 +25,8 @@
 });
 
 console.info([...Artplayer.instances]);

version ​

返回播放器的版本信息

▶ Run Code
js
console.info(Artplayer.version);

env ​

返回播放器的环境变量

▶ Run Code
js
console.info(Artplayer.env);

build ​

返回播放器的打包时间

▶ Run Code
js
console.info(Artplayer.build);

config ​

返回视频的默认配置

▶ Run Code
js
console.info(Artplayer.config);

utils ​

返回播放器的工具函数集合

▶ Run Code
js
console.info(Artplayer.utils);

全部工具函数请参考以下地址:

artplayer/types/utils.d.ts

scheme ​

返回播放器选项的校验方案

▶ Run Code
js
console.info(Artplayer.scheme);

Emitter ​

返回事件分发器的构造函数

▶ Run Code
js
console.info(Artplayer.Emitter);

validator ​

返回选项的校验函数

▶ Run Code
js
console.info(Artplayer.validator);

kindOf ​

返回类型检测的函数工具

▶ Run Code
js
console.info(Artplayer.kindOf);

html ​

返回播放器所需的 html 字符串

▶ Run Code
js
console.info(Artplayer.html);

option ​

返回播放器的默认选项

▶ Run Code
js
console.info(Artplayer.option);

DEBUG ​

CONTEXTMENU ​

NOTICE_TIME ​

SETTING_WIDTH ​

SETTING_ITEM_WIDTH ​

SETTING_ITEM_HEIGHT ​

INDICATOR_SIZE ​

INDICATOR_SIZE_ICON ​

INDICATOR_SIZE_MOBILE ​

INDICATOR_SIZE_MOBILE_ICON ​

VOLUME_PANEL_WIDTH ​

VOLUME_HANDLE_WIDTH ​

RESIZE_TIME ​

SCROLL_TIME ​

SCROLL_GAP ​

AUTO_PLAYBACK_MAX ​

AUTO_PLAYBACK_MIN ​

AUTO_PLAYBACK_TIMEOUT ​

RECONNECT_TIME_MAX ​

RECONNECT_SLEEP_TIME ​

CONTROL_HIDE_TIME ​

DB_CLICE_TIME ​

MOBILE_AUTO_PLAYBACKRATE ​

MOBILE_AUTO_PLAYBACKRATE_TIME ​

MOBILE_AUTO_ORIENTATION_TIME ​

INFO_LOOP_TIME ​

FAST_FORWARD_VALUE ​

FAST_FORWARD_TIME ​

TOUCH_MOVE_RATIO ​

VOLUME_STEP ​

SEEK_STEP ​

PROGRESS_HEIGHT ​

PLAYBACK_RATE ​

ASPECT_RATIO ​

FLIP ​

FULLSCREEN_WEB_IN_BODY ​

- + \ No newline at end of file diff --git a/docs/document/en/advanced/event.html b/docs/document/en/advanced/event.html index af037a6f2..ecc2f5acd 100644 --- a/docs/document/en/advanced/event.html +++ b/docs/document/en/advanced/event.html @@ -6,10 +6,10 @@ 实例事件 | Artplayer.js - + - + @@ -17,7 +17,7 @@ -
Skip to content
On this page

实例事件 ​

播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件

监听事件:

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

实例事件 ​

播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件

监听事件:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -361,8 +361,8 @@
 art.on('setting', (state) => {
     console.log(state);
 });

video:canplay ​

浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容

video:canplaythrough ​

浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束

video:complete ​

OfflineAudioContext 渲染完成

video:durationchange ​

duration 属性的值改变时触发

video:emptied ​

媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载它

video:ended ​

视频停止播放,因为 media 已经到达结束点

video:error ​

获取媒体数据时出错,或者资源类型不是受支持的媒体格式

video:loadeddata ​

media 中的首帧已经完成加载

video:loadedmetadata ​

已加载元数据

video:pause ​

播放已暂停

video:play ​

播放已开始

video:playing ​

由于缺乏数据而暂停或延迟后,播放准备开始

video:progress ​

在浏览器加载资源时周期性触发

video:ratechange ​

播放速率发生变化

video:seeked ​

跳帧(seek)操作完成

video:seeking ​

跳帧(seek)操作开始

video:stalled ​

用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现

video:suspend ​

媒体数据加载已暂停

video:timeupdate ​

currentTime 属性指定的时间发生变化

video:volumechange ​

音量发生变化

video:waiting ​

由于暂时缺少数据,播放已停止

- + \ No newline at end of file diff --git a/docs/document/en/advanced/plugin.html b/docs/document/en/advanced/plugin.html index 8ecdc8cc5..b7c6eef36 100644 --- a/docs/document/en/advanced/plugin.html +++ b/docs/document/en/advanced/plugin.html @@ -6,10 +6,10 @@ 编写插件 | Artplayer.js - + - + @@ -17,7 +17,7 @@ -
Skip to content
On this page

编写插件 ​

但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事

可以在实例化的时候加载插件的函数

▶ Run Code
js
function myPlugin(art) {
+    
Skip to content
On this page

编写插件 ​

但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事

可以在实例化的时候加载插件的函数

▶ Run Code
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -116,8 +116,8 @@
         })
     ],
 });
- + \ No newline at end of file diff --git a/docs/document/en/advanced/property.html b/docs/document/en/advanced/property.html index d8f917b14..da65b1104 100644 --- a/docs/document/en/advanced/property.html +++ b/docs/document/en/advanced/property.html @@ -6,10 +6,10 @@ Instance Property | Artplayer.js - + - + @@ -17,7 +17,7 @@ -
Skip to content
On this page

Instance Property ​

The Instance Property here refers to the Primary Property attached to the Instance, which is more commonly used

play ​

  • Type: Function

Play video

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

Instance Property ​

The Instance Property here refers to the Primary Property attached to the Instance, which is more commonly used

play ​

  • Type: Function

Play video

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -370,9 +370,9 @@
 	url: '/assets/sample/video.mp4',
 });
 
-console.info(art.video);
- +console.info(art.video);
+ \ No newline at end of file diff --git a/docs/document/en/component/contextmenu.html b/docs/document/en/component/contextmenu.html new file mode 100644 index 000000000..b25ceb987 --- /dev/null +++ b/docs/document/en/component/contextmenu.html @@ -0,0 +1,107 @@ + + + + + + 右键菜单 | Artplayer.js + + + + + + + + + + + + + +
Skip to content
On this page

右键菜单 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

创建 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+// Get the Element of contextmenu by name
+console.info(art.contextmenu['your-menu']);

添加 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.contextmenu.add({
+    name: 'your-menu',
+    html: 'Your Menu',
+    click: function (...args) {
+        console.info(args);
+        art.contextmenu.show = false;
+    },
+});
+
+art.contextmenu.show = true;
+
+// Get the Element of contextmenu by name
+console.info(art.contextmenu['your-menu']);

删除 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the contextmenu by name
+        art.contextmenu.remove('your-menu')
+    }, 3000);
+});

更新 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    contextmenu: [
+        {
+            name: 'your-menu',
+            html: 'Your Menu',
+            click: function (...args) {
+                console.info(args);
+                art.contextmenu.show = false;
+            },
+        },
+    ],
+});
+
+art.contextmenu.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the contextmenu by name
+        art.contextmenu.update({
+            name: 'your-menu',
+            html: 'Your New Menu',
+        })
+    }, 3000);
+});
+ + + + \ No newline at end of file diff --git a/docs/document/en/component/controls.html b/docs/document/en/component/controls.html new file mode 100644 index 000000000..0629e12dc --- /dev/null +++ b/docs/document/en/component/controls.html @@ -0,0 +1,154 @@ + + + + + + 控制器 | Artplayer.js + + + + + + + + + + + + + +
Skip to content
On this page

控制器 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本
positionStringleft 和 right 控制控制器出现的左右位置
selectorArray选择列表的对象数组
onSelectFunction选择列表的元素被点击时触发的函数

创建 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'your-button',
+            index: 10,
+            position: 'left',
+            html: 'Your Button',
+            tooltip: 'Your Button',
+            style: {
+                color: 'red',
+            },
+            click: function (...args) {
+                console.info('click', args);
+            },
+            mounted: function (...args) {
+                console.info('mounted', args);
+            },
+        },
+        {
+            name: 'subtitle',
+            position: 'right',
+            html: 'Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: '<span style="color:red">subtitle 01</span>',
+                },
+                {
+                    html: '<span style="color:yellow">subtitle 02</span>',
+                },
+            ],
+            onSelect: function (item, $dom) {
+                console.info(item, $dom);
+                return 'Your ' + item.html;
+            },
+        },
+    ],
+});
+
+// Get the Element of control by name
+console.info(art.controls['your-button']);
+console.info(art.controls.subtitle);

添加 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.controls.add({
+    name: 'button1',
+    index: 10,
+    position: 'left',
+    html: 'Your Button',
+    tooltip: 'Your Button',
+    style: {
+        color: 'red',
+    },
+    click: function (...args) {
+        console.info('click', args);
+    },
+    mounted: function (...args) {
+        console.info('mounted', args);
+    },
+});
+
+// Get the Element of control by name
+console.info(art.controls.button1);

删除 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'Your Button',
+            tooltip: 'Your Button',
+            style: {
+                color: 'red',
+            },
+        }
+    ]
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the control by name
+        art.controls.remove('button1');
+    }, 3000);
+});

更新 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    controls: [
+        {
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: 'subtitle 01',
+                },
+                {
+                    html: 'subtitle 02',
+                },
+            ],
+        }
+    ]
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the control by name
+        art.controls.update({
+            name: 'button1',
+            index: 10,
+            position: 'right',
+            html: 'New Subtitle',
+            selector: [
+                {
+                    default: true,
+                    html: 'new subtitle 01',
+                },
+                {
+                    html: 'new subtitle 02',
+                },
+            ],
+        });
+    }, 3000);
+});
+ + + + \ No newline at end of file diff --git a/docs/document/en/component/layers.html b/docs/document/en/component/layers.html new file mode 100644 index 000000000..1dc2e6f2c --- /dev/null +++ b/docs/document/en/component/layers.html @@ -0,0 +1,126 @@ + + + + + + 业务层 | Artplayer.js + + + + + + + + + + + + + +
Skip to content
On this page

业务层 ​

配置 ​

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

创建 ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: `<img style="width: 100px" src="${img}">`,
+            tooltip: 'Potser Tip',
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+            click: function (...args) {
+                console.info('click', args);
+            },
+            mounted: function (...args) {
+                console.info('mounted', args);
+            },
+        },
+    ],
+});
+
+// Get the Element of layer by name
+console.info(art.layers['potser']);

添加 ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+art.layers.add({
+    name: 'potser',
+    html: `<img style="width: 100px" src="${img}">`,
+    tooltip: 'Potser Tip',
+    style: {
+        position: 'absolute',
+        top: '50px',
+        right: '50px',
+    },
+    click: function (...args) {
+        console.info('click', args);
+    },
+    mounted: function (...args) {
+        console.info('mounted', args);
+    },
+});
+
+// Get the Element of layer by name
+console.info(art.layers['potser']);

删除 ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: `<img style="width: 100px" src="${img}">`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+        },
+    ],
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the layer by name
+        art.layers.remove('potser');
+    }, 3000);
+});

更新 ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    layers: [
+        {
+            name: 'potser',
+            html: `<img style="width: 100px" src="${img}">`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                right: '50px',
+            },
+        },
+    ],
+});
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the layer by name
+        art.layers.update({
+            name: 'potser',
+            html: `<img style="width: 200px" src="${img}">`,
+            style: {
+                position: 'absolute',
+                top: '50px',
+                left: '50px',
+            },
+        });
+    }, 3000);
+});
+ + + + \ No newline at end of file diff --git a/docs/document/en/start/setting.html b/docs/document/en/component/setting.html similarity index 58% rename from docs/document/en/start/setting.html rename to docs/document/en/component/setting.html index ffc7a05eb..a0cf4c244 100644 --- a/docs/document/en/start/setting.html +++ b/docs/document/en/component/setting.html @@ -6,18 +6,18 @@ 设置面板 | Artplayer.js - + - - + + -
Skip to content
On this page

设置面板 ​

You need to open the settings panel first. The player has four settings by default: flip, playbackRate, aspectRatio, subtitleOffset

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

设置面板 ​

内置 ​

需先打开设置面板,然后自带四个内置项:flip, playbackRate, aspectRatio, subtitleOffset

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 	setting: true,
@@ -25,7 +25,7 @@
     playbackRate: true,
     aspectRatio: true,
     subtitleOffset: true,
-});

Selection list ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
selectorArrayElement list
onSelectFunctionElement click event
widthNumberList width
tooltipStringPrompt text
▶ Run Code
js
var art = new Artplayer({
+});

创建 - 选择列表 ​

属性类型描述
htmlString, Element元素的 DOM
iconString, Element元素的图标
selectorArray元素列表
onSelectFunction元素点击事件
widthNumber列表宽度
tooltipString提示文本
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -77,7 +77,7 @@
             },
         },
     ],
-});

List nesting ​

▶ Run Code
js
var art = new Artplayer({
+});

创建 - 列表嵌套 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -120,7 +120,7 @@
             ],
         },
     ],
-});

Toggle button ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
switchBooleanButton default state
onSwitchFunctionButton switching event
tooltipStringPrompt text
▶ Run Code
js
var art = new Artplayer({
+});

创建 - 切换按钮 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
switchBoolean按钮默认状态
onSwitchFunction按钮切换事件
tooltipString提示文本
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -139,7 +139,7 @@
             },
         },
     ],
-});

Range Slider ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
rangeArrayDefault state array
onRangeFunctionEvent triggered on completion
onChangeFunctionEvents triggered when changing
tooltipStringPrompt text
js
const range = [5, 1, 10, 1];
+});

创建 - 范围滑块 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
rangeArray默认状态数组
onRangeFunction完成时触发的事件
onChangeFunction变化时触发的事件
tooltipString提示文本
js
const range = [5, 1, 10, 1];
 const value = range[0];
 const min = range[1];
 const max = range[2];
@@ -159,9 +159,73 @@
             },
         },
     ],
-});
- +});

添加 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+});
+
+art.setting.show = true;
+
+art.setting.add({
+    html: 'Slider',
+    tooltip: '5x',
+    icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+    range: [5, 1, 10, 1],
+});

删除 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+    flip: true,
+    settings: [
+        {
+            name: 'slider',
+            html: 'Slider',
+            tooltip: '5x',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            range: [5, 1, 10, 1],
+        },
+    ],
+});
+
+art.setting.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Delete the setting by name
+        art.setting.remove('slider');
+    }, 3000);
+});

更新 ​

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    setting: true,
+    settings: [
+        {
+            name: 'slider',
+            html: 'Slider',
+            tooltip: '5x',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            range: [5, 1, 10, 1],
+        },
+    ],
+});
+
+art.setting.show = true;
+
+art.on('ready', () => {
+    setTimeout(() => {
+        // Update the setting by name
+        art.setting.update({
+            name: 'slider',
+            html: 'PIP Mode',
+            tooltip: 'Close',
+            icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
+            switch: false,
+        });
+    }, 3000);
+});
+ \ No newline at end of file diff --git a/docs/document/en/index.html b/docs/document/en/index.html index c294c4a24..71d9389d8 100644 --- a/docs/document/en/index.html +++ b/docs/document/en/index.html @@ -6,18 +6,18 @@ Install | Artplayer.js - + - - + + -
Skip to content
On this page

Install ​

Install ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

Use ​

js
import Artplayer from 'artplayer';
+    
Skip to content
On this page

Important Note

The English document has not yet been completed, everything is subject to the Chinese document.

Install ​

Install ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

Use ​

js
import Artplayer from 'artplayer';
 
 const art = new Artplayer({
     container: '.artplayer-app',
@@ -36,7 +36,7 @@
     <body>
         <div class="artplayer-app"></div>
     </body>
-</html>

Tip

The size of the player depends on the size of the container, so your container must have a size

The following links can see more use examples

/packages/artplayer-template

Vue.js ​

vue
<template>
+</html>

Tip

The size of the player depends on the size of the container, so your container must have a size

The following links can see more use examples

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -100,7 +100,7 @@
     },
   },
 };
-</script>

Tip

Modifying option directly in Vue.js will not change the player

React.js ​

jsx
import { useEffect, useRef } from 'react';
+</script>

Tip

Modifying option directly in Vue.js will not change the player

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
@@ -163,8 +163,8 @@
     }
   }
 }
- + \ No newline at end of file diff --git a/docs/document/en/library/dash.html b/docs/document/en/library/dash.html index cc0dca2f9..7c26992a4 100644 --- a/docs/document/en/library/dash.html +++ b/docs/document/en/library/dash.html @@ -6,26 +6,24 @@ dash.js | Artplayer.js - + - - + + -
Skip to content
On this page

dash.js ​

👉 https://github.com/Dash-Industry-Forum/dash.js

▶ Run Code
js
function playMpd(video, url, art) {
+    
Skip to content
On this page

dash.js ​

👉 https://github.com/Dash-Industry-Forum/dash.js

▶ Run Code
js
function playMpd(video, url, art) {
     if (dashjs.supportsMediaSource()) {
+        if (art.dash) art.dash.destroy();
         const dash = dashjs.MediaPlayer().create();
         dash.initialize(video, url, art.option.autoplay);
-
-        // optional
         art.dash = dash; 
-        art.once('url', () => dash.destroy());
-        art.once('destroy', () => dash.destroy());
+        art.on('destroy', () => dash.destroy());
     } else {
         art.notice.show = 'Unsupported playback format: mpd';
     }
@@ -34,17 +32,17 @@
 var art = new Artplayer({
     container: '.artplayer-app',
     url: 'https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd',
-    type: 'mpd',
-    customType: {
+    type: 'mpd',
+    customType: {
         mpd: playMpd
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.dash);
-});
- + console.info(art.dash); +});
+ \ No newline at end of file diff --git a/docs/document/en/library/flv.html b/docs/document/en/library/flv.html index 2605731c7..d3383f41f 100644 --- a/docs/document/en/library/flv.html +++ b/docs/document/en/library/flv.html @@ -6,27 +6,25 @@ flv.js | Artplayer.js - + - - + + -
Skip to content
On this page

flv.js ​

👉 https://github.com/Bilibili/flv.js

▶ Run Code
js
function playFlv(video, url, art) {
+    
Skip to content
On this page

flv.js ​

👉 https://github.com/Bilibili/flv.js

▶ Run Code
js
function playFlv(video, url, art) {
     if (flvjs.isSupported()) {
+        if (art.flv) art.flv.destroy();
         const flv = flvjs.createPlayer({ type: 'flv', url });
         flv.attachMediaElement(video);
         flv.load();
-
-        // optional
         art.flv = flv; 
-        art.once('url', () => flv.destroy());
-        art.once('destroy', () => flv.destroy());
+        art.on('destroy', () => flv.destroy());
     } else {
         art.notice.show = 'Unsupported playback format: flv';
     }
@@ -35,17 +33,17 @@
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.flv',
-    type: 'flv',
-    customType: {
+    type: 'flv',
+    customType: {
         flv: playFlv,
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.flv);
-});
- + console.info(art.flv); +});
+ \ No newline at end of file diff --git a/docs/document/en/library/hls.html b/docs/document/en/library/hls.html index d7d4cce7a..eaede4e13 100644 --- a/docs/document/en/library/hls.html +++ b/docs/document/en/library/hls.html @@ -6,27 +6,25 @@ hls.js | Artplayer.js - + - - + + -
Skip to content
On this page

hls.js ​

👉 https://github.com/video-dev/hls.js

▶ Run Code
js
function playM3u8(video, url, art) {
+    
Skip to content
On this page

hls.js ​

👉 https://github.com/video-dev/hls.js

▶ Run Code
js
function playM3u8(video, url, art) {
     if (Hls.isSupported()) {
+        if (art.hls) art.hls.destroy();
         const hls = new Hls();
         hls.loadSource(url);
         hls.attachMedia(video);
-
-        // optional
         art.hls = hls;
-        art.once('url', () => hls.destroy());
-        art.once('destroy', () => hls.destroy());
+        art.on('destroy', () => hls.destroy());
     } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
         video.src = url;
     } else {
@@ -37,17 +35,17 @@
 var art = new Artplayer({
     container: '.artplayer-app',
     url: 'https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8',
-    type: 'm3u8',
-    customType: {
+    type: 'm3u8',
+    customType: {
         m3u8: playM3u8,
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.hls);
-});
- + console.info(art.hls); +});
+ \ No newline at end of file diff --git a/docs/document/en/library/webtorrent.html b/docs/document/en/library/webtorrent.html deleted file mode 100644 index 04315bd8d..000000000 --- a/docs/document/en/library/webtorrent.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - webtorrent.js | Artplayer.js - - - - - - - - - - - - - -
Skip to content
On this page

webtorrent.js ​

👉 https://github.com/webtorrent/webtorrent

▶ Run Code
js
function playTorrent(video, url, art) {
-    const torrent = new WebTorrent();
-    torrent.add(url, function (torrent) {
-        var file = torrent.files[0];
-        file.renderTo(video, {
-            autoplay: art.option.autoplay,
-        });
-    });
-
-    // optional
-    art.torrent = torrent;
-    art.once('url', () => torrent.destroy());
-    art.once('destroy', () => torrent.destroy());
-}
-
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&dn=sintel.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=wss%3A%2F%2Ftracker.webtorrent.io&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel-1024-surround.mp4',
-    type: 'torrent',
-    customType: {
-        torrent: playTorrent,
-    },
-});
-
-art.on('ready', () => {
-    art.video.controls = false;
-    console.info(art.torrent);
-});
- - - - \ No newline at end of file diff --git a/docs/document/en/plugin/ads.html b/docs/document/en/plugin/ads.html index c50a1ba9a..24bd17a18 100644 --- a/docs/document/en/plugin/ads.html +++ b/docs/document/en/plugin/ads.html @@ -6,18 +6,18 @@ 视频广告 | Artplayer.js - + - - + + -
Skip to content
On this page

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
bash
yarn add artplayer-plugin-ads
bash
pnpm add artplayer-plugin-ads
html
<script src="path/to/artplayer-plugin-ads.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js

使用 ​

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
bash
yarn add artplayer-plugin-ads
bash
pnpm add artplayer-plugin-ads
html
<script src="path/to/artplayer-plugin-ads.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js

使用 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
@@ -65,8 +65,8 @@
 art.on('artplayerPluginAds:skip', (ads) => {
     console.info(ads);
 });
- + \ No newline at end of file diff --git a/docs/document/en/plugin/control-ui.html b/docs/document/en/plugin/control-ui.html index a5db0fe7b..7168f7b4e 100644 --- a/docs/document/en/plugin/control-ui.html +++ b/docs/document/en/plugin/control-ui.html @@ -6,18 +6,18 @@ 控制器皮肤 | Artplayer.js - + - - + + -
Skip to content
On this page

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
bash
yarn add artplayer-plugin-control
bash
pnpm add artplayer-plugin-control
html
<script src="path/to/artplayer-plugin-control.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js

使用 ​

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
bash
yarn add artplayer-plugin-control
bash
pnpm add artplayer-plugin-control
html
<script src="path/to/artplayer-plugin-control.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js

使用 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -44,8 +44,8 @@
         artplayerPluginControl(),
     ],
 });
- + \ No newline at end of file diff --git a/docs/document/en/plugin/dash-quality.html b/docs/document/en/plugin/dash-quality.html index 761c608d6..c57b7cce5 100644 --- a/docs/document/en/plugin/dash-quality.html +++ b/docs/document/en/plugin/dash-quality.html @@ -6,20 +6,20 @@ Dash 画质 | Artplayer.js - + - - + + -
Skip to content
On this page

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
bash
yarn add artplayer-plugin-dash-quality
bash
pnpm add artplayer-plugin-dash-quality
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
- +
Skip to content
On this page

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
bash
yarn add artplayer-plugin-dash-quality
bash
pnpm add artplayer-plugin-dash-quality
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
+ \ No newline at end of file diff --git a/docs/document/en/plugin/hls-quality.html b/docs/document/en/plugin/hls-quality.html index e2a73a29d..ac1aae33c 100644 --- a/docs/document/en/plugin/hls-quality.html +++ b/docs/document/en/plugin/hls-quality.html @@ -6,20 +6,20 @@ HLS 画质 | Artplayer.js - + - - + + -
Skip to content
On this page

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
bash
yarn add artplayer-plugin-hls-quality
bash
pnpm add artplayer-plugin-hls-quality
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
- +
Skip to content
On this page

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
bash
yarn add artplayer-plugin-hls-quality
bash
pnpm add artplayer-plugin-hls-quality
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
+ \ No newline at end of file diff --git a/docs/document/en/plugin/iframe.html b/docs/document/en/plugin/iframe.html index e8829e381..e71aee678 100644 --- a/docs/document/en/plugin/iframe.html +++ b/docs/document/en/plugin/iframe.html @@ -6,18 +6,18 @@ Iframe 控制 | Artplayer.js - + - - + + -
Skip to content
On this page

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
bash
yarn add artplayer-plugin-iframe
bash
pnpm add artplayer-plugin-iframe
html
<script src="path/to/artplayer-plugin-iframe.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js

使用 ​

html
<!DOCTYPE html>
+    
Skip to content
On this page

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
bash
yarn add artplayer-plugin-iframe
bash
pnpm add artplayer-plugin-iframe
html
<script src="path/to/artplayer-plugin-iframe.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js

使用 ​

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -102,7 +102,7 @@
         type: 'currentTime',
         data: art.currentTime,
     });
-});

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html
<!DOCTYPE html>
+});

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -183,8 +183,8 @@
         </script>
     </body>
 </html>
- + \ No newline at end of file diff --git a/docs/document/en/start/component.html b/docs/document/en/start/component.html deleted file mode 100644 index e8608e7b5..000000000 --- a/docs/document/en/start/component.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - Component | Artplayer.js - - - - - - - - - - - - - -
Skip to content
On this page

Component ​

The component configuration mentioned here mainly refers to three common configurations: layers, controls and contextmenu:

PropertyTypeDescribe
disableBooleanWhether to disable components
nameStringComponent unique name, used to mark the class name
indexNumberComponent index, used to display the priority of
htmlString, ElementDOM element of component
styleObjectComponent Style Object
clickFunctionComponent click event
mountedFunctionTriggered after the component is mounted
tooltipStringPrompt text for component

Tip

  • The current component can only be added, not destroyed
  • Use the 'name' option to quickly obtain the 'DOM' element of a component
  • The order in which components appear can be controlled through the 'index' option

layers ​

Add a layer during instantiation, such as logo or advertisement

▶ Run Code
js
var img = '/assets/sample/layer.png';
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    layers: [
-        {
-            name: 'potser',
-            html: `<img style="width: 100px" src="${img}">`,
-            tooltip: 'Potser Tip',
-            style: {
-                position: 'absolute',
-                top: '50px',
-                right: '50px',
-            },
-            click: function (...args) {
-                console.info('click', args);
-            },
-            mounted: function (...args) {
-                console.info('mounted', args);
-            },
-        },
-    ],
-});
-
-console.info(art.layers.potser);

You can also add a layer after instantiation

▶ Run Code
js
var img = '/assets/sample/layer.png';
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.layers.add({
-    name: 'potser',
-    html: `<img style="width: 100px" src="${img}">`,
-    tooltip: 'Potser Tip',
-    style: {
-        position: 'absolute',
-        top: '50px',
-        right: '50px',
-    },
-    click: function (...args) {
-        console.info('click', args);
-    },
-    mounted: function (...args) {
-        console.info('mounted', args);
-    },
-});
-
-console.info(art.layers.potser);

controls ​

Add a control during instantiation

There are three additional options for controls

  • position: left and right positions of control controller
  • selector: Object array of selection list
  • onSelect: Function triggered when an element of the selection list is clicked
▶ Run Code
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    controls: [
-        {
-            name: 'your-button',
-            index: 10,
-            position: 'left',
-            html: 'Your Button',
-            tooltip: 'Your Button',
-            style: {
-                color: 'red',
-            },
-            click: function (...args) {
-                console.info('click', args);
-            },
-            mounted: function (...args) {
-                console.info('mounted', args);
-            },
-        },
-        {
-            name: 'subtitle',
-            position: 'right',
-            html: 'Subtitle',
-            selector: [
-                {
-                    default: true,
-                    html: '<span style="color:red">subtitle 01</span>',
-                },
-                {
-                    html: '<span style="color:yellow">subtitle 02</span>',
-                },
-            ],
-            onSelect: function (item, $dom) {
-                console.info(item, $dom);
-                return 'Your ' + item.html;
-            },
-        },
-    ],
-});
-
-console.info(art.controls['your-button']);
-console.info(art.controls.subtitle);

You can also add a control after instantiation

js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.controls.add({
-    name: 'button1',
-    index: 10,
-    position: 'left',
-    html: 'Your Button',
-    tooltip: 'Your Button',
-    style: {
-        color: 'red',
-    },
-    click: function (...args) {
-        console.info('click', args);
-    },
-    mounted: function (...args) {
-        console.info('mounted', args);
-    },
-});
-
-console.info(art.controls.button1);

contextmenu ​

Add a contextmenu during instantiation

▶ Run Code
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    contextmenu: [
-        {
-            name: 'your-menu',
-            html: 'Your Menu',
-            click: function (...args) {
-                console.info(args);
-                art.contextmenu.show = false;
-            },
-        },
-    ],
-});
-
-console.info(art.contextmenu['your-menu']);

You can also add a contextmenu after instantiation

▶ Run Code
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.contextmenu.add({
-    name: 'your-menu',
-    html: 'Your Menu',
-    click: function (...args) {
-        console.info(args);
-        art.contextmenu.show = false;
-    },
-});
-
-console.info(art.contextmenu['your-menu']);
- - - - \ No newline at end of file diff --git a/docs/document/en/start/option.html b/docs/document/en/start/option.html index 4df7219da..c8370d0c7 100644 --- a/docs/document/en/start/option.html +++ b/docs/document/en/start/option.html @@ -6,18 +6,18 @@ Option | Artplayer.js - + - - + + -
Skip to content
On this page

Option ​

container ​

  • Type: String, Element
  • Default: #artplayer

The DOM container attached to the player

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

Option ​

container ​

  • Type: String, Element
  • Default: #artplayer

The DOM container attached to the player

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app', 
     // container: document.querySelector('.artplayer-app'),
     url: '/assets/sample/video.mp4',
@@ -187,7 +187,7 @@
             },
         },
     ],
-});

Please refer to the following address for Component:

/start/component.html

settings ​

  • Type: Array
  • Default: []

Initialize the customized Setting

▶ Run Code
js
var art = new Artplayer({
+});

Please refer to the following address for Component:

/component/layers.html

settings ​

  • Type: Array
  • Default: []

Initialize the customized Setting

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -221,7 +221,7 @@
             },
         },
     ],
-});

Please refer to the following address for Setting

/start/setting.html

contextmenu ​

  • Type: Array
  • Default: []

Initialize the customized Contextmenu

▶ Run Code
js
var art = new Artplayer({
+});

Please refer to the following address for Setting

/component/setting.html

contextmenu ​

  • Type: Array
  • Default: []

Initialize the customized Contextmenu

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -233,7 +233,7 @@
             },
         },
     ],
-});

Please refer to the following address for Component:

/start/component.html

controls ​

  • Type: Array
  • Default: []

Initialize the customized Controls

▶ Run Code
js
var art = new Artplayer({
+});

Please refer to the following address for Component:

/component/contextmenu.html

controls ​

  • Type: Array
  • Default: []

Initialize the customized Controls

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -249,7 +249,7 @@
             },
         },
     ],
-});

Please refer to the following address for Setting

/start/setting.html

quality ​

  • Type: Array
  • Default: []

Whether to display the Quality list in the bottom control bar

PropertyTypeDescribe
defaultBooleanDefault quality
htmlStringQuality name
urlStringQuality name
▶ Run Code
js
var art = new Artplayer({
+});

Please refer to the following address for Setting

/component/controls.html

quality ​

  • Type: Array
  • Default: []

Whether to display the Quality list in the bottom control bar

PropertyTypeDescribe
defaultBooleanDefault quality
htmlStringQuality name
urlStringQuality name
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     quality: [
@@ -317,7 +317,7 @@
         number: 100,
         column: 10,
     },
-});

Generate preview thumbnails online

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

Set the subtitle of the video and support the subtitle format: vtt, srt, ass

PropertyTypeDescribe
urlStringSubtitle url
typeStringSubtitle type: vtt, srt, ass
styleObjectSubtitle style
encodingStringSubtitle code, Default: utf-8
escapeBooleanWhether to escape the html tag,Default: true
▶ Run Code
js
var art = new Artplayer({
+});

Generate preview thumbnails online

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

Set the subtitle of the video and support the subtitle format: vtt, srt, ass

PropertyTypeDescribe
urlStringSubtitle url
typeStringSubtitle type: vtt, srt, ass
styleObjectSubtitle style
encodingStringSubtitle code, Default: utf-8
escapeBooleanWhether to escape the html tag,Default: true
onVttLoadFunctionFunctions for modifying vtt text
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -401,9 +401,15 @@
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     airplay: true,
-});
- +});

cssVar ​

  • Type: Object
  • Default: {}

Used to change built-in CSS variables

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    cssVar: {
+        //
+    },
+});
+ \ No newline at end of file diff --git a/docs/document/hashmap.json b/docs/document/hashmap.json index c940d8547..4527ba106 100644 --- a/docs/document/hashmap.json +++ b/docs/document/hashmap.json @@ -1 +1 @@ -{"advanced_plugin.md":"c038a79b","advanced_class.md":"0179e979","advanced_built-in.md":"8bf77420","en_advanced_class.md":"e9e4a82c","en_advanced_built-in.md":"3df06886","en_library_dash.md":"f15e4e22","en_plugin_control-ui.md":"4ee7fcbc","en_advanced_plugin.md":"d034965b","en_plugin_dash-quality.md":"9a871ce3","en_plugin_hls-quality.md":"80113e69","en_start_component.md":"9301478b","en_library_webtorrent.md":"3073edce","en_library_hls.md":"8c1ffd65","en_plugin_iframe.md":"03b2efcb","advanced_property.md":"9e1218a4","index.md":"3ab0a387","en_advanced_property.md":"51bf3329","en_start_setting.md":"124e026d","library_flv.md":"9f4608d0","library_dash.md":"66064310","library_webtorrent.md":"b2c88e20","library_hls.md":"0e673c5b","advanced_event.md":"7faf2290","plugin_ads.md":"98973d5f","en_index.md":"57889b30","en_plugin_ads.md":"e256e7de","en_library_flv.md":"8c77cd21","plugin_hls-quality.md":"7c7007b4","en_advanced_event.md":"f26b123b","plugin_control-ui.md":"fa2d3a76","plugin_dash-quality.md":"423df0fd","plugin_iframe.md":"a080ef12","start_component.md":"58d8db9b","plugin_danmuku.md":"0a2404fe","en_start_option.md":"c90e1db6","start_setting.md":"c779c019","start_option.md":"4b8e6e65"} +{"advanced_class.md":"0179e979","advanced_built-in.md":"3965493e","component_contextmenu.md":"59792b84","en_advanced_class.md":"e9e4a82c","advanced_plugin.md":"c038a79b","en_advanced_built-in.md":"9cf203af","en_advanced_plugin.md":"d034965b","component_controls.md":"7cf7e297","component_layers.md":"8388a343","advanced_event.md":"7faf2290","en_advanced_event.md":"f26b123b","advanced_property.md":"9e1218a4","component_setting.md":"149ac42e","en_advanced_property.md":"51bf3329","en_component_contextmenu.md":"81d8a231","en_component_controls.md":"b71709d0","en_component_layers.md":"5214ae90","en_library_dash.md":"8b398743","en_library_hls.md":"33b1553c","en_plugin_hls-quality.md":"0c9fdf30","en_library_flv.md":"2d06f5d7","en_plugin_ads.md":"e62440cc","en_plugin_dash-quality.md":"0383c370","en_plugin_control-ui.md":"3e743a6b","en_index.md":"912b6c47","library_dash.md":"09925449","en_component_setting.md":"9cd8bba3","en_plugin_iframe.md":"125c11bb","plugin_control-ui.md":"3bdfe915","library_hls.md":"b985859f","library_flv.md":"7521724e","plugin_ads.md":"47987cb5","index.md":"92d2a836","plugin_dash-quality.md":"8d733387","plugin_hls-quality.md":"20e2774e","plugin_iframe.md":"05c2ebd5","en_start_option.md":"74e5492e","plugin_danmuku.md":"8f07145d","start_option.md":"c93020db"} diff --git a/docs/document/index.html b/docs/document/index.html index 89ea0fa52..23cde8761 100644 --- a/docs/document/index.html +++ b/docs/document/index.html @@ -6,18 +6,18 @@ 安装使用 | Artplayer.js - + - - + + -
Skip to content
On this page

安装使用 ​

安装 ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

使用 ​

js
import Artplayer from 'artplayer';
+    
Skip to content
On this page

安装使用 ​

安装 ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
html
<script src="path/to/artplayer.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
bash
https://unpkg.com/artplayer/dist/artplayer.js

使用 ​

js
import Artplayer from 'artplayer';
 
 const art = new Artplayer({
     container: '.artplayer-app',
@@ -36,7 +36,7 @@
     <body>
         <div class="artplayer-app"></div>
     </body>
-</html>

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js ​

vue
<template>
+</html>

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -100,7 +100,7 @@
     },
   },
 };
-</script>

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js ​

jsx
import { useEffect, useRef } from 'react';
+</script>

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
@@ -163,8 +163,8 @@
     }
   }
 }
- + \ No newline at end of file diff --git a/docs/document/library/dash.html b/docs/document/library/dash.html index de367a32a..e8d9d52ce 100644 --- a/docs/document/library/dash.html +++ b/docs/document/library/dash.html @@ -6,26 +6,24 @@ dash.js | Artplayer.js - + - - + + -
Skip to content
On this page

dash.js ​

👉 https://github.com/Dash-Industry-Forum/dash.js

▶ Run Code
js
function playMpd(video, url, art) {
+    
Skip to content
On this page

dash.js ​

👉 https://github.com/Dash-Industry-Forum/dash.js

▶ Run Code
js
function playMpd(video, url, art) {
     if (dashjs.supportsMediaSource()) {
+        if (art.dash) art.dash.destroy();
         const dash = dashjs.MediaPlayer().create();
         dash.initialize(video, url, art.option.autoplay);
-
-        // optional
         art.dash = dash; 
-        art.once('url', () => dash.destroy());
-        art.once('destroy', () => dash.destroy());
+        art.on('destroy', () => dash.destroy());
     } else {
         art.notice.show = 'Unsupported playback format: mpd';
     }
@@ -34,17 +32,17 @@
 var art = new Artplayer({
     container: '.artplayer-app',
     url: 'https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd',
-    type: 'mpd',
-    customType: {
+    type: 'mpd',
+    customType: {
         mpd: playMpd
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.dash);
-});
- + console.info(art.dash); +});
+ \ No newline at end of file diff --git a/docs/document/library/flv.html b/docs/document/library/flv.html index 6b70996c9..94e4b4587 100644 --- a/docs/document/library/flv.html +++ b/docs/document/library/flv.html @@ -6,27 +6,25 @@ flv.js | Artplayer.js - + - - + + -
Skip to content
On this page

flv.js ​

👉 https://github.com/Bilibili/flv.js

▶ Run Code
js
function playFlv(video, url, art) {
+    
Skip to content
On this page

flv.js ​

👉 https://github.com/Bilibili/flv.js

▶ Run Code
js
function playFlv(video, url, art) {
     if (flvjs.isSupported()) {
+        if (art.flv) art.flv.destroy();
         const flv = flvjs.createPlayer({ type: 'flv', url });
         flv.attachMediaElement(video);
         flv.load();
-
-        // optional
         art.flv = flv; 
-        art.once('url', () => flv.destroy());
-        art.once('destroy', () => flv.destroy());
+        art.on('destroy', () => flv.destroy());
     } else {
         art.notice.show = 'Unsupported playback format: flv';
     }
@@ -35,17 +33,17 @@
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.flv',
-    type: 'flv',
-    customType: {
+    type: 'flv',
+    customType: {
         flv: playFlv,
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.flv);
-});
- + console.info(art.flv); +});
+ \ No newline at end of file diff --git a/docs/document/library/hls.html b/docs/document/library/hls.html index 2aa039df1..cda4e6181 100644 --- a/docs/document/library/hls.html +++ b/docs/document/library/hls.html @@ -6,27 +6,25 @@ hls.js | Artplayer.js - + - - + + -
Skip to content
On this page

hls.js ​

👉 https://github.com/video-dev/hls.js

▶ Run Code
js
function playM3u8(video, url, art) {
+    
Skip to content
On this page

hls.js ​

👉 https://github.com/video-dev/hls.js

▶ Run Code
js
function playM3u8(video, url, art) {
     if (Hls.isSupported()) {
+        if (art.hls) art.hls.destroy();
         const hls = new Hls();
         hls.loadSource(url);
         hls.attachMedia(video);
-
-        // optional
         art.hls = hls;
-        art.once('url', () => hls.destroy());
-        art.once('destroy', () => hls.destroy());
+        art.on('destroy', () => hls.destroy());
     } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
         video.src = url;
     } else {
@@ -37,17 +35,17 @@
 var art = new Artplayer({
     container: '.artplayer-app',
     url: 'https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8',
-    type: 'm3u8',
-    customType: {
+    type: 'm3u8',
+    customType: {
         m3u8: playM3u8,
     },
-});
-
+});
+
 art.on('ready', () => {
-    console.info(art.hls);
-});
- + console.info(art.hls); +});
+ \ No newline at end of file diff --git a/docs/document/library/webtorrent.html b/docs/document/library/webtorrent.html deleted file mode 100644 index 4e690632a..000000000 --- a/docs/document/library/webtorrent.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - webtorrent.js | Artplayer.js - - - - - - - - - - - - - -
Skip to content
On this page

webtorrent.js ​

👉 https://github.com/webtorrent/webtorrent

▶ Run Code
js
function playTorrent(video, url, art) {
-    const torrent = new WebTorrent();
-    torrent.add(url, function (torrent) {
-        var file = torrent.files[0];
-        file.renderTo(video, {
-            autoplay: art.option.autoplay,
-        });
-    });
-
-    // optional
-    art.torrent = torrent;
-    art.once('url', () => torrent.destroy());
-    art.once('destroy', () => torrent.destroy());
-}
-
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&dn=sintel.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=wss%3A%2F%2Ftracker.webtorrent.io&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel-1024-surround.mp4',
-    type: 'torrent',
-    customType: {
-        torrent: playTorrent,
-    },
-});
-
-art.on('ready', () => {
-    art.video.controls = false;
-    console.info(art.torrent);
-});
- - - - \ No newline at end of file diff --git a/docs/document/plugin/ads.html b/docs/document/plugin/ads.html index ffcb9297e..08d4c98fe 100644 --- a/docs/document/plugin/ads.html +++ b/docs/document/plugin/ads.html @@ -6,18 +6,18 @@ 视频广告 | Artplayer.js - + - - + + -
Skip to content
On this page

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
bash
yarn add artplayer-plugin-ads
bash
pnpm add artplayer-plugin-ads
html
<script src="path/to/artplayer-plugin-ads.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js

使用 ​

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
bash
yarn add artplayer-plugin-ads
bash
pnpm add artplayer-plugin-ads
html
<script src="path/to/artplayer-plugin-ads.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js

使用 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
@@ -65,8 +65,8 @@
 art.on('artplayerPluginAds:skip', (ads) => {
     console.info(ads);
 });
- + \ No newline at end of file diff --git a/docs/document/plugin/control-ui.html b/docs/document/plugin/control-ui.html index ad733a86d..47884bb84 100644 --- a/docs/document/plugin/control-ui.html +++ b/docs/document/plugin/control-ui.html @@ -6,18 +6,18 @@ 控制器皮肤 | Artplayer.js - + - - + + -
Skip to content
On this page

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
bash
yarn add artplayer-plugin-control
bash
pnpm add artplayer-plugin-control
html
<script src="path/to/artplayer-plugin-control.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js

使用 ​

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
bash
yarn add artplayer-plugin-control
bash
pnpm add artplayer-plugin-control
html
<script src="path/to/artplayer-plugin-control.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js

使用 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -44,8 +44,8 @@
         artplayerPluginControl(),
     ],
 });
- + \ No newline at end of file diff --git a/docs/document/plugin/danmuku.html b/docs/document/plugin/danmuku.html index cf4065b82..ecf9237e2 100644 --- a/docs/document/plugin/danmuku.html +++ b/docs/document/plugin/danmuku.html @@ -6,18 +6,18 @@ 弹幕库 | Artplayer.js - + - - + + -
Skip to content
On this page

弹幕库 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-danmuku
bash
yarn add artplayer-plugin-danmuku
bash
pnpm add artplayer-plugin-danmuku
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js

选项 ​

js
{
+    
Skip to content
On this page

弹幕库 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-danmuku
bash
yarn add artplayer-plugin-danmuku
bash
pnpm add artplayer-plugin-danmuku
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js

选项 ​

js
{
     danmuku: [], // 弹幕库,支持数组, xml 地址, Promise返回数组
     speed: 5, // 弹幕持续时间,单位秒,范围在[1 ~ 10]
     opacity: 1, // 弹幕透明度,范围在[0 ~ 1]
@@ -300,8 +300,8 @@
 art.on('artplayerPluginDanmuku:destroy', () => {
     console.info('弹幕销毁');
 });
- + \ No newline at end of file diff --git a/docs/document/plugin/dash-quality.html b/docs/document/plugin/dash-quality.html index 58288e380..bacef624d 100644 --- a/docs/document/plugin/dash-quality.html +++ b/docs/document/plugin/dash-quality.html @@ -6,20 +6,20 @@ Dash 画质 | Artplayer.js - + - - + + -
Skip to content
On this page

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
bash
yarn add artplayer-plugin-dash-quality
bash
pnpm add artplayer-plugin-dash-quality
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
- +
Skip to content
On this page

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
bash
yarn add artplayer-plugin-dash-quality
bash
pnpm add artplayer-plugin-dash-quality
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
+ \ No newline at end of file diff --git a/docs/document/plugin/hls-quality.html b/docs/document/plugin/hls-quality.html index b05aa0364..d59dfdb7d 100644 --- a/docs/document/plugin/hls-quality.html +++ b/docs/document/plugin/hls-quality.html @@ -6,20 +6,20 @@ HLS 画质 | Artplayer.js - + - - + + -
Skip to content
On this page

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
bash
yarn add artplayer-plugin-hls-quality
bash
pnpm add artplayer-plugin-hls-quality
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
- +
Skip to content
On this page

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
bash
yarn add artplayer-plugin-hls-quality
bash
pnpm add artplayer-plugin-hls-quality
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
+ \ No newline at end of file diff --git a/docs/document/plugin/iframe.html b/docs/document/plugin/iframe.html index 7188e9937..5fbe77203 100644 --- a/docs/document/plugin/iframe.html +++ b/docs/document/plugin/iframe.html @@ -6,18 +6,18 @@ Iframe 控制 | Artplayer.js - + - - + + -
Skip to content
On this page

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
bash
yarn add artplayer-plugin-iframe
bash
pnpm add artplayer-plugin-iframe
html
<script src="path/to/artplayer-plugin-iframe.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js

使用 ​

html
<!DOCTYPE html>
+    
Skip to content
On this page

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
bash
yarn add artplayer-plugin-iframe
bash
pnpm add artplayer-plugin-iframe
html
<script src="path/to/artplayer-plugin-iframe.js"></script>

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js

使用 ​

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -102,7 +102,7 @@
         type: 'currentTime',
         data: art.currentTime,
     });
-});

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html
<!DOCTYPE html>
+});

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -183,8 +183,8 @@
         </script>
     </body>
 </html>
- + \ No newline at end of file diff --git a/docs/document/start/component.html b/docs/document/start/component.html deleted file mode 100644 index 250488eef..000000000 --- a/docs/document/start/component.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - 组件配置 | Artplayer.js - - - - - - - - - - - - - -
Skip to content
On this page

组件配置 ​

这里所说的组件配置主要是指:layers , controls , contextmenu 这三个共用的配置:

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

提示

  • 当前组件只能添加,并没有销毁的功能
  • 通过 name 选项可以快速获取组件的 DOM 元素
  • 通过 index 选项可以控制组件出现的顺序

layers ​

实例化时添加一个层,例如可以添加 logo 或者 广告 等等

▶ Run Code
js
var img = '/assets/sample/layer.png';
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    layers: [
-        {
-            name: 'potser',
-            html: `<img style="width: 100px" src="${img}">`,
-            tooltip: 'Potser Tip',
-            style: {
-                position: 'absolute',
-                top: '50px',
-                right: '50px',
-            },
-            click: function (...args) {
-                console.info('click', args);
-            },
-            mounted: function (...args) {
-                console.info('mounted', args);
-            },
-        },
-    ],
-});
-
-console.info(art.layers.potser);

也可以实例化之后添加一个层

▶ Run Code
js
var img = '/assets/sample/layer.png';
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.layers.add({
-    name: 'potser',
-    html: `<img style="width: 100px" src="${img}">`,
-    tooltip: 'Potser Tip',
-    style: {
-        position: 'absolute',
-        top: '50px',
-        right: '50px',
-    },
-    click: function (...args) {
-        console.info('click', args);
-    },
-    mounted: function (...args) {
-        console.info('mounted', args);
-    },
-});
-
-console.info(art.layers.potser);

controls ​

实例化时添加一个控制器

controls 还有三个额外的选项

  • position: left 和 right 控制控制器出现的左右位置
  • selector: 选择列表的对象数组
  • onSelect: 选择列表的元素被点击时触发的函数
▶ Run Code
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    controls: [
-        {
-            name: 'your-button',
-            index: 10,
-            position: 'left',
-            html: 'Your Button',
-            tooltip: 'Your Button',
-            style: {
-                color: 'red',
-            },
-            click: function (...args) {
-                console.info('click', args);
-            },
-            mounted: function (...args) {
-                console.info('mounted', args);
-            },
-        },
-        {
-            name: 'subtitle',
-            position: 'right',
-            html: 'Subtitle',
-            selector: [
-                {
-                    default: true,
-                    html: '<span style="color:red">subtitle 01</span>',
-                },
-                {
-                    html: '<span style="color:yellow">subtitle 02</span>',
-                },
-            ],
-            onSelect: function (item, $dom) {
-                console.info(item, $dom);
-                return 'Your ' + item.html;
-            },
-        },
-    ],
-});
-
-console.info(art.controls['your-button']);
-console.info(art.controls.subtitle);

也可以实例化之后添加一个控制器

js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.controls.add({
-    name: 'button1',
-    index: 10,
-    position: 'left',
-    html: 'Your Button',
-    tooltip: 'Your Button',
-    style: {
-        color: 'red',
-    },
-    click: function (...args) {
-        console.info('click', args);
-    },
-    mounted: function (...args) {
-        console.info('mounted', args);
-    },
-});
-
-console.info(art.controls.button1);

contextmenu ​

实例化时添加一个右键菜单

▶ Run Code
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    contextmenu: [
-        {
-            name: 'your-menu',
-            html: 'Your Menu',
-            click: function (...args) {
-                console.info(args);
-                art.contextmenu.show = false;
-            },
-        },
-    ],
-});
-
-console.info(art.contextmenu['your-menu']);

也可以实例化之后添加一个右键菜单

▶ Run Code
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-art.contextmenu.add({
-    name: 'your-menu',
-    html: 'Your Menu',
-    click: function (...args) {
-        console.info(args);
-        art.contextmenu.show = false;
-    },
-});
-
-console.info(art.contextmenu['your-menu']);
- - - - \ No newline at end of file diff --git a/docs/document/start/option.html b/docs/document/start/option.html index f26604815..b77d4857a 100644 --- a/docs/document/start/option.html +++ b/docs/document/start/option.html @@ -6,18 +6,18 @@ 基础选项 | Artplayer.js - + - - + + -
Skip to content
On this page

基础选项 ​

container ​

  • Type: String, Element
  • Default: #artplayer

播放器挂载的 DOM 容器

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

基础选项 ​

container ​

  • Type: String, Element
  • Default: #artplayer

播放器挂载的 DOM 容器

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app', 
     // container: document.querySelector('.artplayer-app'),
     url: '/assets/sample/video.mp4',
@@ -187,7 +187,7 @@
             },
         },
     ],
-});

组件配置 请参考以下地址:

/start/component.html

settings ​

  • Type: Array
  • Default: []

初始化自定义的 设置面板

▶ Run Code
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/layers.html

settings ​

  • Type: Array
  • Default: []

初始化自定义的 设置面板

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -221,7 +221,7 @@
             },
         },
     ],
-});

设置面板 请参考以下地址

/start/setting.html

contextmenu ​

  • Type: Array
  • Default: []

初始化自定义的 右键菜单

▶ Run Code
js
var art = new Artplayer({
+});

设置面板 请参考以下地址

/component/setting.html

contextmenu ​

  • Type: Array
  • Default: []

初始化自定义的 右键菜单

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -233,7 +233,7 @@
             },
         },
     ],
-});

组件配置 请参考以下地址:

/start/component.html- Type:

controls ​

  • Type: Array
  • Default: []

初始化自定义的底部 控制栏

▶ Run Code
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/contextmenu.html- Type:

controls ​

  • Type: Array
  • Default: []

初始化自定义的底部 控制栏

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -249,7 +249,7 @@
             },
         },
     ],
-});

组件配置 请参考以下地址:

/start/component.html

quality ​

  • Type: Array
  • Default: []

是否在底部控制栏里显示 画质选择 列表

属性类型描述
defaultBoolean默认画质
htmlString画质名字
urlString画质地址
▶ Run Code
js
var art = new Artplayer({
+});

组件配置 请参考以下地址:

/component/controls.html

quality ​

  • Type: Array
  • Default: []

是否在底部控制栏里显示 画质选择 列表

属性类型描述
defaultBoolean默认画质
htmlString画质名字
urlString画质地址
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     quality: [
@@ -317,7 +317,7 @@
         number: 100,
         column: 10,
     },
-});

在线生成预览图

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

设置视频的字幕,支持字幕格式:vtt, srt, ass

属性类型描述
urlString字幕地址
typeString字幕类型,可选 vtt, srt, ass
styleObject字幕样式
encodingString字幕编码,默认 utf-8
escapeBoolean是否转义 html 标签,默认为 true
▶ Run Code
js
var art = new Artplayer({
+});

在线生成预览图

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

设置视频的字幕,支持字幕格式:vtt, srt, ass

属性类型描述
urlString字幕地址
typeString字幕类型,可选 vtt, srt, ass
styleObject字幕样式
encodingString字幕编码,默认 utf-8
escapeBoolean是否转义 html 标签,默认为 true
onVttLoadFunction用于修改 vtt 文本的函数
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -401,9 +401,15 @@
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     airplay: true,
-});
- +});

cssVar ​

  • Type: Object
  • Default: {}

用于改变内置的css变量

▶ Run Code
js
var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+    cssVar: {
+        //
+    },
+});
+ \ No newline at end of file diff --git a/docs/mobile-ads.html b/docs/mobile-ads.html new file mode 100644 index 000000000..4f7b897ec --- /dev/null +++ b/docs/mobile-ads.html @@ -0,0 +1,56 @@ + + + + + + Artplayer.js + + + + + + + + + + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/docs/sw.js b/docs/sw.js index 6bbc34eae..c46140572 100644 --- a/docs/sw.js +++ b/docs/sw.js @@ -1 +1 @@ -if(!self.define){let s,a={};const e=(e,i)=>(e=new URL(e+".js",i).href,a[e]||new Promise((a=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=a,document.head.appendChild(s)}else s=e,importScripts(e),a()})).then((()=>{let s=a[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(i,b)=>{const l=s||("document"in self?document.currentScript.src:"")||location.href;if(a[l])return;let c={};const r=s=>e(s,l),n={module:{uri:l},exports:c,require:r};a[l]=Promise.all(i.map((s=>n[s]||r(s)))).then((s=>(b(...s),c)))}}define(["./workbox-d249b2c8"],(function(s){"use strict";self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"assets/css/normalize.css",revision:"be7f3425b44480dcf3aab3408f632f37"},{url:"assets/css/style.css",revision:"3864dc17cd2f864ec41e257eae2445c9"},{url:"assets/example/ads.js",revision:"389d77de2c5d399002030a1b346343d1"},{url:"assets/example/control.js",revision:"5ed1b3db4292aaf52208d8126535ea7e"},{url:"assets/example/danmuku.js",revision:"d16edf04e1ef87914559a0ff0ea2c661"},{url:"assets/example/dash.quality.js",revision:"a50cbcf686cb95e783a2111a2846f059"},{url:"assets/example/hls.quality.js",revision:"47fe5c4bcf6cc602438bb5526ac28fdc"},{url:"assets/example/iframe.js",revision:"24893a44a55daeb33399be3b38a01273"},{url:"assets/example/index.js",revision:"eaca2dcf80c3b90ebd8b53ac6df11fc7"},{url:"assets/example/thumbnail.js",revision:"ed1119d0517accdea6b88aa08cd4fc27"},{url:"assets/example/vtt.thumbnail.js",revision:"f7ec84294fa73ee4815abc088eac6bcb"},{url:"assets/img/danmu-off.svg",revision:"a1483de76b68dd12a2fdf2c3734537ea"},{url:"assets/img/danmu-on.svg",revision:"1b846589a581e9d2ed720973d00a8a38"},{url:"assets/img/indicator.svg",revision:"696037ccd6fb7db7c68d82d2c69e7e6c"},{url:"assets/img/logo.png",revision:"113f758a35e9c71b8d9c41240da8233b"},{url:"assets/img/pause.svg",revision:"dab341d85c778a097caa2f6603ffce87"},{url:"assets/img/state.svg",revision:"2e9bac37536c46c09a38e74a480b56c6"},{url:"assets/img/subtitle.svg",revision:"9a231c6167f7a8b168b5f19cc892b170"},{url:"assets/js/common.js",revision:"5535e42fc50672f151b0a914cdb8a638"},{url:"assets/js/console.js",revision:"4e9a2c80679b6bbf78a4809a4a90f64a"},{url:"assets/js/JavascriptSubtitlesOctopus/subtitles-octopus-worker.js",revision:"cef7e5f6ef27a8e01d7c1bcb78cbbe4d"},{url:"assets/js/JavascriptSubtitlesOctopus/subtitles-octopus.js",revision:"a02d9bcf0639259b92b1c8ddfc45b994"},{url:"assets/js/polyfill/core.js",revision:"1d2194332562ff4194b431f2bad8ad68"},{url:"assets/js/polyfill/encoding-indexes.js",revision:"50f27403be5972eae4831f5b69db1f80"},{url:"assets/js/polyfill/encoding.js",revision:"022884ab2a5bd42b6f4fff580fa0dd34"},{url:"assets/js/polyfill/fetch.polyfill.js",revision:"f625f62b3249b03ef6d9aef1aa375342"},{url:"assets/js/vconsole.min.js",revision:"e637889f2f4e869003f4950cce737ba6"},{url:"assets/js/vs/base/worker/workerMain.js",revision:"ff1e00116d48f10b29a7f4f0deac2cd3"},{url:"assets/js/vs/basic-languages/abap/abap.js",revision:"0d31790a1a820013ebfceaaea520086e"},{url:"assets/js/vs/basic-languages/apex/apex.js",revision:"7ed571a41e7a0f49e3813733ee9668ab"},{url:"assets/js/vs/basic-languages/azcli/azcli.js",revision:"2c95f109efa42b39efd112e1ca3f6156"},{url:"assets/js/vs/basic-languages/bat/bat.js",revision:"3a19616507d8d1f534c6155dd45075b7"},{url:"assets/js/vs/basic-languages/bicep/bicep.js",revision:"a454b074c4897916902a31bc7488c7c6"},{url:"assets/js/vs/basic-languages/cameligo/cameligo.js",revision:"714bc3d62760814c66d2722403956093"},{url:"assets/js/vs/basic-languages/clojure/clojure.js",revision:"bc3dfd6ec24e73dd26c7acb5fdf0026e"},{url:"assets/js/vs/basic-languages/coffee/coffee.js",revision:"72268e931cec85bc41f6677416e86cbd"},{url:"assets/js/vs/basic-languages/cpp/cpp.js",revision:"400136ec6edf93a21103ab54fe244b44"},{url:"assets/js/vs/basic-languages/csharp/csharp.js",revision:"60763afe31e9a27b3e11f31ca07222d0"},{url:"assets/js/vs/basic-languages/csp/csp.js",revision:"7c7a0ecfa43e63dea1c5c3b90e3669ee"},{url:"assets/js/vs/basic-languages/css/css.js",revision:"6ee9d8b753ab02e86d2fef1cd6839bae"},{url:"assets/js/vs/basic-languages/dart/dart.js",revision:"994c907e6e2fca9831c70fb220a8dfe7"},{url:"assets/js/vs/basic-languages/dockerfile/dockerfile.js",revision:"886100cd736f23bfcdf61029439ebb91"},{url:"assets/js/vs/basic-languages/ecl/ecl.js",revision:"59c4e667668ebbb528ba64fd2b76411c"},{url:"assets/js/vs/basic-languages/elixir/elixir.js",revision:"9adf3da05ba73c8728db04aa24479830"},{url:"assets/js/vs/basic-languages/flow9/flow9.js",revision:"07f962e581808968eaf81b4757ba427d"},{url:"assets/js/vs/basic-languages/fsharp/fsharp.js",revision:"4a059944d9de46a22b1e7f3b636beb98"},{url:"assets/js/vs/basic-languages/go/go.js",revision:"1e78e6e22eca1bf5ad47108dead26490"},{url:"assets/js/vs/basic-languages/graphql/graphql.js",revision:"33366aac3f03b0c919818dff9e228bad"},{url:"assets/js/vs/basic-languages/handlebars/handlebars.js",revision:"9a05aa526495f0a1e241f3ac142e91a9"},{url:"assets/js/vs/basic-languages/hcl/hcl.js",revision:"710a5636d53b53e1290873211ddb6a9e"},{url:"assets/js/vs/basic-languages/html/html.js",revision:"2b130bc85c8c8646e5bea546d14a0b41"},{url:"assets/js/vs/basic-languages/ini/ini.js",revision:"2c52fccc7378467c65c40d246cbd05a4"},{url:"assets/js/vs/basic-languages/java/java.js",revision:"b6bd764730176bec564b8ed428790b5b"},{url:"assets/js/vs/basic-languages/javascript/javascript.js",revision:"a2e9534e6798dec260a05c3af6995ab6"},{url:"assets/js/vs/basic-languages/julia/julia.js",revision:"31b9ccddbca591c0a144e2854ad1df6f"},{url:"assets/js/vs/basic-languages/kotlin/kotlin.js",revision:"47f9a5dda454ed959e63ad41d7ed5d0f"},{url:"assets/js/vs/basic-languages/less/less.js",revision:"141d7e275a8415231fbd59f8113923b3"},{url:"assets/js/vs/basic-languages/lexon/lexon.js",revision:"8c87d858060a5a0a3f5d865f4e0f3b6e"},{url:"assets/js/vs/basic-languages/liquid/liquid.js",revision:"7f54c34250cd122147b9f479b0df9ad7"},{url:"assets/js/vs/basic-languages/lua/lua.js",revision:"00eb2f7a1c0ff215b1412b2f7d547293"},{url:"assets/js/vs/basic-languages/m3/m3.js",revision:"3fea60c45ed2c3cccfd37c02ec8eb611"},{url:"assets/js/vs/basic-languages/markdown/markdown.js",revision:"a17bd15cd9a17844d5c7533bb75aa75c"},{url:"assets/js/vs/basic-languages/mips/mips.js",revision:"b8e1fe126721a24f76b063625f00a99d"},{url:"assets/js/vs/basic-languages/msdax/msdax.js",revision:"cbb4a2dcff92b9bdbe236b176628d71e"},{url:"assets/js/vs/basic-languages/mysql/mysql.js",revision:"aa1c6fe8896c11c04822fa56609a2ed9"},{url:"assets/js/vs/basic-languages/objective-c/objective-c.js",revision:"6598c5e2591909635986178ca0273677"},{url:"assets/js/vs/basic-languages/pascal/pascal.js",revision:"373d426bb58b2a8fb1d14db8185cd34d"},{url:"assets/js/vs/basic-languages/pascaligo/pascaligo.js",revision:"eb41b781bbbf5bfa1cef31c666380302"},{url:"assets/js/vs/basic-languages/perl/perl.js",revision:"00ef4985b150a11a8e55632baa389942"},{url:"assets/js/vs/basic-languages/pgsql/pgsql.js",revision:"ab269b493eb717b4b49248569c63ba94"},{url:"assets/js/vs/basic-languages/php/php.js",revision:"5193d1ca2571967f42dffc9b0ec4d77c"},{url:"assets/js/vs/basic-languages/pla/pla.js",revision:"015b1b777840e2ff60d7d05da0c5833b"},{url:"assets/js/vs/basic-languages/postiats/postiats.js",revision:"0bebc84a5a7934887c44d81df346fa5b"},{url:"assets/js/vs/basic-languages/powerquery/powerquery.js",revision:"7a73f17d3e48b9a8c55492aea11a7e89"},{url:"assets/js/vs/basic-languages/powershell/powershell.js",revision:"6fa0bf908c12ff12186dc2f6948b7e68"},{url:"assets/js/vs/basic-languages/protobuf/protobuf.js",revision:"14343c432c7bc348af5b4a577906a338"},{url:"assets/js/vs/basic-languages/pug/pug.js",revision:"03e47508816771cbbc9dac8bb2cbba68"},{url:"assets/js/vs/basic-languages/python/python.js",revision:"020e23b1bdb676936ebe868a21a653b7"},{url:"assets/js/vs/basic-languages/qsharp/qsharp.js",revision:"5d8f229a1be1fec9c98532584c05bbf7"},{url:"assets/js/vs/basic-languages/r/r.js",revision:"4b585406c67d68af9cec6882d7b71b68"},{url:"assets/js/vs/basic-languages/razor/razor.js",revision:"4106dc94db262064c0f993ee27e1f1e6"},{url:"assets/js/vs/basic-languages/redis/redis.js",revision:"0dd6e471ef6fda3a0f9d9526c65dcd8c"},{url:"assets/js/vs/basic-languages/redshift/redshift.js",revision:"85edaf030683e5ba5e97a63df1fabd22"},{url:"assets/js/vs/basic-languages/restructuredtext/restructuredtext.js",revision:"8a5eec0e86d673a4b045d1b76fd178da"},{url:"assets/js/vs/basic-languages/ruby/ruby.js",revision:"9301210ab438575bce0f3b807dde974f"},{url:"assets/js/vs/basic-languages/rust/rust.js",revision:"e79c2eac7164955ca1f6f18a0711bdff"},{url:"assets/js/vs/basic-languages/sb/sb.js",revision:"a5b5f477d4bb446c3656cb3004e10a13"},{url:"assets/js/vs/basic-languages/scala/scala.js",revision:"4b05491d91202206f8e6cbb7f0552464"},{url:"assets/js/vs/basic-languages/scheme/scheme.js",revision:"642c56a7f33709481000481c1cfacf3f"},{url:"assets/js/vs/basic-languages/scss/scss.js",revision:"bb6b3db21c6aec0eaa5154231fd022cb"},{url:"assets/js/vs/basic-languages/shell/shell.js",revision:"c58d441824914a525210f72d05d4deae"},{url:"assets/js/vs/basic-languages/solidity/solidity.js",revision:"ab530c388e337be309fe44c9fe3b9101"},{url:"assets/js/vs/basic-languages/sophia/sophia.js",revision:"d2fb2b60b1701b26ef21dfd69bfd4bb3"},{url:"assets/js/vs/basic-languages/sparql/sparql.js",revision:"04ecb7894faf838af73f6e45ec5e849b"},{url:"assets/js/vs/basic-languages/sql/sql.js",revision:"e902f67b2ae9356456eb80f799935743"},{url:"assets/js/vs/basic-languages/st/st.js",revision:"184cf06d81cc6db926108652253788a8"},{url:"assets/js/vs/basic-languages/swift/swift.js",revision:"257edb0d4785f7dc2b87d40b9ffd9f2a"},{url:"assets/js/vs/basic-languages/systemverilog/systemverilog.js",revision:"5f463d344d22b4c25db7427863ffc785"},{url:"assets/js/vs/basic-languages/tcl/tcl.js",revision:"1b87289b43d801c746f0983263f159be"},{url:"assets/js/vs/basic-languages/twig/twig.js",revision:"8e8e7e5b4fe4530a376e1fd9871bb3c0"},{url:"assets/js/vs/basic-languages/typescript/typescript.js",revision:"9550dfbf82d3d02b4085778bdc2f5144"},{url:"assets/js/vs/basic-languages/vb/vb.js",revision:"98ea1d711b815f7e0058403cfb2f47f7"},{url:"assets/js/vs/basic-languages/xml/xml.js",revision:"843ca49336b9c8afad3cebe31e3499ba"},{url:"assets/js/vs/basic-languages/yaml/yaml.js",revision:"e65d368240a0a33f5dd8517042d22baf"},{url:"assets/js/vs/editor/editor.main.css",revision:"30994a557d1488ddd0e46487aa9282f1"},{url:"assets/js/vs/editor/editor.main.nls.de.js",revision:"5ac795573e517a9f7cd61f94f5ba53b6"},{url:"assets/js/vs/editor/editor.main.nls.es.js",revision:"18c8b0b6dcc1916afb3e31d4ba05a424"},{url:"assets/js/vs/editor/editor.main.nls.fr.js",revision:"e1e0a8bc716d8717a1c88333f03ad98a"},{url:"assets/js/vs/editor/editor.main.nls.it.js",revision:"b6602f2a32698f3997942dbbf8bdc78a"},{url:"assets/js/vs/editor/editor.main.nls.ja.js",revision:"41b561666c3c30da46e5e11460968596"},{url:"assets/js/vs/editor/editor.main.nls.js",revision:"be9bc3c87be5debf24bb958b0ad7b061"},{url:"assets/js/vs/editor/editor.main.nls.ko.js",revision:"59aa975695c2f9fef08fcf66c6fb5837"},{url:"assets/js/vs/editor/editor.main.nls.ru.js",revision:"f6ac240c2d24025c522e106784940f10"},{url:"assets/js/vs/editor/editor.main.nls.zh-cn.js",revision:"c82a3dc31d6fb1934849c477ccea7e52"},{url:"assets/js/vs/editor/editor.main.nls.zh-tw.js",revision:"ec3212f2680c449b23a3f4d5d5856f90"},{url:"assets/js/vs/language/css/cssMode.js",revision:"09d7edb49c180ae4361016eff500b956"},{url:"assets/js/vs/language/css/cssWorker.js",revision:"19c30b90021b645cb3bf1af079c818ec"},{url:"assets/js/vs/language/html/htmlMode.js",revision:"dad776df2f75d75a10246ebe1318796e"},{url:"assets/js/vs/language/html/htmlWorker.js",revision:"8f26bf62f45fa6b3099c6bb95a269791"},{url:"assets/js/vs/language/json/jsonMode.js",revision:"4a8b21fa884d86cfa39534e0fd72a936"},{url:"assets/js/vs/language/json/jsonWorker.js",revision:"994d228233541bafc0540bb0f6f678cc"},{url:"assets/js/vs/language/typescript/tsMode.js",revision:"3735e7b6c27ed7880c641c572d40b4c0"},{url:"assets/js/vs/loader.js",revision:"a223df1cdea17a435e1ab7bc6761ddd8"},{url:"assets/sample/bbb-sprite.jpg",revision:"6ab02ab0ffe5bc3e122444f957553021"},{url:"assets/sample/layer.png",revision:"73966368866d0ea547be0799c99a2cf4"},{url:"assets/sample/poster.jpg",revision:"01421f680dfa206faf700ac60e394c3b"},{url:"assets/sample/test.png",revision:"28d1af6531f1463ea16654750d2b6928"},{url:"assets/sample/thumbnails.png",revision:"773f00bee2e4b58eb7418bc6318991f9"},{url:"assets/sample/thumbnails/thumbnail_1.jpg",revision:"890d671ff24609fe664591e532369ef0"},{url:"assets/sample/thumbnails/thumbnail_10.jpg",revision:"a7663ab4dfdf9193324209308ffbb7a5"},{url:"assets/sample/thumbnails/thumbnail_11.jpg",revision:"a08bdfedcc3aeac05f016e56a689653e"},{url:"assets/sample/thumbnails/thumbnail_12.jpg",revision:"1ced197e631315c5e9382d9a96ccfe46"},{url:"assets/sample/thumbnails/thumbnail_13.jpg",revision:"bf23e98f786d724bccda04ad09aec530"},{url:"assets/sample/thumbnails/thumbnail_14.jpg",revision:"2c0c50d2ba6ec12d5a2114f233cb8feb"},{url:"assets/sample/thumbnails/thumbnail_15.jpg",revision:"742f369717cf8df7e8571d3a5d0ac237"},{url:"assets/sample/thumbnails/thumbnail_16.jpg",revision:"2a20d4f23e08f20e70b43c3b239b2d63"},{url:"assets/sample/thumbnails/thumbnail_17.jpg",revision:"0111a62a4d1d1d33fce9353c7b4a7c91"},{url:"assets/sample/thumbnails/thumbnail_18.jpg",revision:"f3b04f2dfd5637a6b776263366ad4e4f"},{url:"assets/sample/thumbnails/thumbnail_19.jpg",revision:"2edd56f02f4be9ad1cdafe6fb5d84b26"},{url:"assets/sample/thumbnails/thumbnail_2.jpg",revision:"5f10723ac5c3db6026aa412e9a1b502d"},{url:"assets/sample/thumbnails/thumbnail_20.jpg",revision:"cfa252ef04b723cef9cc55975ba37cc7"},{url:"assets/sample/thumbnails/thumbnail_21.jpg",revision:"4568c38ddede0ac141c63c48a67e8476"},{url:"assets/sample/thumbnails/thumbnail_22.jpg",revision:"da810e7381acf11fdc0f271b42545d6d"},{url:"assets/sample/thumbnails/thumbnail_23.jpg",revision:"3f2ec2efaeff3179d5deb83012cd1a8c"},{url:"assets/sample/thumbnails/thumbnail_24.jpg",revision:"c3076ef8687470207a1efc92a7064350"},{url:"assets/sample/thumbnails/thumbnail_25.jpg",revision:"1bdf905f9d9a480ab069a6ba9557deb0"},{url:"assets/sample/thumbnails/thumbnail_26.jpg",revision:"12bea1094da0ca575b7cb69b27f83193"},{url:"assets/sample/thumbnails/thumbnail_27.jpg",revision:"51ea6f2bf02352123ab4f82e1689d515"},{url:"assets/sample/thumbnails/thumbnail_28.jpg",revision:"23f6c6910d48bec39154cb4ec89e43a2"},{url:"assets/sample/thumbnails/thumbnail_29.jpg",revision:"9911d20ad159762c487ceaa1f94fe55e"},{url:"assets/sample/thumbnails/thumbnail_3.jpg",revision:"590503a9cd098b113e4ad12aa899289f"},{url:"assets/sample/thumbnails/thumbnail_30.jpg",revision:"06c29411daedee89327b416a10689f45"},{url:"assets/sample/thumbnails/thumbnail_31.jpg",revision:"afc3783603b2f1616b5c2847a7a0c1d2"},{url:"assets/sample/thumbnails/thumbnail_32.jpg",revision:"146450d476a314e4c642b9c4fc7f9985"},{url:"assets/sample/thumbnails/thumbnail_33.jpg",revision:"397ec56c329d4dab7e137b1ca34bda9a"},{url:"assets/sample/thumbnails/thumbnail_34.jpg",revision:"f8acf52926bd804923183c82e7afbd46"},{url:"assets/sample/thumbnails/thumbnail_35.jpg",revision:"da27980a581f6a36874135ded47d6379"},{url:"assets/sample/thumbnails/thumbnail_36.jpg",revision:"0d832f8e56d49e08b7d0071fce424d74"},{url:"assets/sample/thumbnails/thumbnail_37.jpg",revision:"d6df71542bee77d04b5cd7a4df4f53d1"},{url:"assets/sample/thumbnails/thumbnail_38.jpg",revision:"ff247fdc930dfbb5711292870ea2c2ca"},{url:"assets/sample/thumbnails/thumbnail_39.jpg",revision:"cf9f9280e85a4958478bd03d8f51b87a"},{url:"assets/sample/thumbnails/thumbnail_4.jpg",revision:"a42f2b695d6e83b8f55354e4969b6aae"},{url:"assets/sample/thumbnails/thumbnail_40.jpg",revision:"07b27e70b7b4a125aa6cebeb4bc974d1"},{url:"assets/sample/thumbnails/thumbnail_41.jpg",revision:"f59aa668eef771af88ba970943b2b76d"},{url:"assets/sample/thumbnails/thumbnail_42.jpg",revision:"7ec9856c7ece414262b4c048e2d8a67e"},{url:"assets/sample/thumbnails/thumbnail_43.jpg",revision:"40fbf64bceb65aaf250d56041414c615"},{url:"assets/sample/thumbnails/thumbnail_44.jpg",revision:"63ebb0f8b33273037ea44a014ba1512e"},{url:"assets/sample/thumbnails/thumbnail_45.jpg",revision:"77c0cc31fa7022becdac5cc35b97e040"},{url:"assets/sample/thumbnails/thumbnail_46.jpg",revision:"8f35febea549973aac957b95a3f6b450"},{url:"assets/sample/thumbnails/thumbnail_47.jpg",revision:"8511eed5538ead79decdd473f4e648dc"},{url:"assets/sample/thumbnails/thumbnail_48.jpg",revision:"8450abbd5c545c5e20b378f651f18ebc"},{url:"assets/sample/thumbnails/thumbnail_49.jpg",revision:"8eaf81670a54dd2945ff9152f1d36e50"},{url:"assets/sample/thumbnails/thumbnail_5.jpg",revision:"ef90dd12b9c5eb0ad3b205c844045416"},{url:"assets/sample/thumbnails/thumbnail_50.jpg",revision:"2dae99bab8a8a0cac445c483c8d5524e"},{url:"assets/sample/thumbnails/thumbnail_51.jpg",revision:"4c3a94aeafa5102d8f999da8db05b8ac"},{url:"assets/sample/thumbnails/thumbnail_52.jpg",revision:"b63727ad0ea2de79b14f034140f23b6c"},{url:"assets/sample/thumbnails/thumbnail_53.jpg",revision:"b14e77f7ac281e6791f2dd6a897635f4"},{url:"assets/sample/thumbnails/thumbnail_54.jpg",revision:"84d5f6ac22f76b1a80b426647205314d"},{url:"assets/sample/thumbnails/thumbnail_55.jpg",revision:"3f8c9153990819828a0c40d8b6f93c96"},{url:"assets/sample/thumbnails/thumbnail_56.jpg",revision:"e321896fd577815dad0c224e3c0c99b6"},{url:"assets/sample/thumbnails/thumbnail_57.jpg",revision:"d04385f715f75c105034bcf1f1ea169c"},{url:"assets/sample/thumbnails/thumbnail_58.jpg",revision:"bb0abc4058799551e057dbe525a8032c"},{url:"assets/sample/thumbnails/thumbnail_59.jpg",revision:"0a641a8e43ebfd9982acaffeb772e41c"},{url:"assets/sample/thumbnails/thumbnail_6.jpg",revision:"5068cbd2ba1e7112f09e601126787082"},{url:"assets/sample/thumbnails/thumbnail_60.jpg",revision:"a3485360065e8aee489314f9fb6105ed"},{url:"assets/sample/thumbnails/thumbnail_7.jpg",revision:"9107a2b9ef154590427f4edd30a7af61"},{url:"assets/sample/thumbnails/thumbnail_8.jpg",revision:"0f22ef7e53e42d47d260707b7a4416eb"},{url:"assets/sample/thumbnails/thumbnail_9.jpg",revision:"d2dd29ef088dcfa125565a6e0fe1b834"}],{})})); +if(!self.define){let s,a={};const e=(e,i)=>(e=new URL(e+".js",i).href,a[e]||new Promise((a=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=a,document.head.appendChild(s)}else s=e,importScripts(e),a()})).then((()=>{let s=a[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(i,b)=>{const l=s||("document"in self?document.currentScript.src:"")||location.href;if(a[l])return;let c={};const r=s=>e(s,l),n={module:{uri:l},exports:c,require:r};a[l]=Promise.all(i.map((s=>n[s]||r(s)))).then((s=>(b(...s),c)))}}define(["./workbox-d249b2c8"],(function(s){"use strict";self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"assets/css/normalize.css",revision:"be7f3425b44480dcf3aab3408f632f37"},{url:"assets/css/style.css",revision:"3864dc17cd2f864ec41e257eae2445c9"},{url:"assets/example/ads.js",revision:"389d77de2c5d399002030a1b346343d1"},{url:"assets/example/control.js",revision:"6aaeb6a5f57196cbfc52945f8b335843"},{url:"assets/example/danmuku.js",revision:"d16edf04e1ef87914559a0ff0ea2c661"},{url:"assets/example/dash.quality.js",revision:"da369d188bb3487a0139d36ce0d05c34"},{url:"assets/example/hls.quality.js",revision:"81fb6d089d7e687fa5a43a40ecd61804"},{url:"assets/example/iframe.js",revision:"24893a44a55daeb33399be3b38a01273"},{url:"assets/example/index.js",revision:"eaca2dcf80c3b90ebd8b53ac6df11fc7"},{url:"assets/example/thumbnail.js",revision:"ed1119d0517accdea6b88aa08cd4fc27"},{url:"assets/example/vtt.thumbnail.js",revision:"f7ec84294fa73ee4815abc088eac6bcb"},{url:"assets/img/danmu-off.svg",revision:"a1483de76b68dd12a2fdf2c3734537ea"},{url:"assets/img/danmu-on.svg",revision:"1b846589a581e9d2ed720973d00a8a38"},{url:"assets/img/indicator.svg",revision:"696037ccd6fb7db7c68d82d2c69e7e6c"},{url:"assets/img/logo.png",revision:"113f758a35e9c71b8d9c41240da8233b"},{url:"assets/img/pause.svg",revision:"dab341d85c778a097caa2f6603ffce87"},{url:"assets/img/state.svg",revision:"2e9bac37536c46c09a38e74a480b56c6"},{url:"assets/img/subtitle.svg",revision:"9a231c6167f7a8b168b5f19cc892b170"},{url:"assets/js/common.js",revision:"5535e42fc50672f151b0a914cdb8a638"},{url:"assets/js/console.js",revision:"4e9a2c80679b6bbf78a4809a4a90f64a"},{url:"assets/js/JavascriptSubtitlesOctopus/subtitles-octopus-worker.js",revision:"cef7e5f6ef27a8e01d7c1bcb78cbbe4d"},{url:"assets/js/JavascriptSubtitlesOctopus/subtitles-octopus.js",revision:"a02d9bcf0639259b92b1c8ddfc45b994"},{url:"assets/js/polyfill/core.js",revision:"1d2194332562ff4194b431f2bad8ad68"},{url:"assets/js/polyfill/encoding-indexes.js",revision:"50f27403be5972eae4831f5b69db1f80"},{url:"assets/js/polyfill/encoding.js",revision:"022884ab2a5bd42b6f4fff580fa0dd34"},{url:"assets/js/polyfill/fetch.polyfill.js",revision:"f625f62b3249b03ef6d9aef1aa375342"},{url:"assets/js/vconsole.min.js",revision:"e637889f2f4e869003f4950cce737ba6"},{url:"assets/js/vs/base/worker/workerMain.js",revision:"ff1e00116d48f10b29a7f4f0deac2cd3"},{url:"assets/js/vs/basic-languages/abap/abap.js",revision:"0d31790a1a820013ebfceaaea520086e"},{url:"assets/js/vs/basic-languages/apex/apex.js",revision:"7ed571a41e7a0f49e3813733ee9668ab"},{url:"assets/js/vs/basic-languages/azcli/azcli.js",revision:"2c95f109efa42b39efd112e1ca3f6156"},{url:"assets/js/vs/basic-languages/bat/bat.js",revision:"3a19616507d8d1f534c6155dd45075b7"},{url:"assets/js/vs/basic-languages/bicep/bicep.js",revision:"a454b074c4897916902a31bc7488c7c6"},{url:"assets/js/vs/basic-languages/cameligo/cameligo.js",revision:"714bc3d62760814c66d2722403956093"},{url:"assets/js/vs/basic-languages/clojure/clojure.js",revision:"bc3dfd6ec24e73dd26c7acb5fdf0026e"},{url:"assets/js/vs/basic-languages/coffee/coffee.js",revision:"72268e931cec85bc41f6677416e86cbd"},{url:"assets/js/vs/basic-languages/cpp/cpp.js",revision:"400136ec6edf93a21103ab54fe244b44"},{url:"assets/js/vs/basic-languages/csharp/csharp.js",revision:"60763afe31e9a27b3e11f31ca07222d0"},{url:"assets/js/vs/basic-languages/csp/csp.js",revision:"7c7a0ecfa43e63dea1c5c3b90e3669ee"},{url:"assets/js/vs/basic-languages/css/css.js",revision:"6ee9d8b753ab02e86d2fef1cd6839bae"},{url:"assets/js/vs/basic-languages/dart/dart.js",revision:"994c907e6e2fca9831c70fb220a8dfe7"},{url:"assets/js/vs/basic-languages/dockerfile/dockerfile.js",revision:"886100cd736f23bfcdf61029439ebb91"},{url:"assets/js/vs/basic-languages/ecl/ecl.js",revision:"59c4e667668ebbb528ba64fd2b76411c"},{url:"assets/js/vs/basic-languages/elixir/elixir.js",revision:"9adf3da05ba73c8728db04aa24479830"},{url:"assets/js/vs/basic-languages/flow9/flow9.js",revision:"07f962e581808968eaf81b4757ba427d"},{url:"assets/js/vs/basic-languages/fsharp/fsharp.js",revision:"4a059944d9de46a22b1e7f3b636beb98"},{url:"assets/js/vs/basic-languages/go/go.js",revision:"1e78e6e22eca1bf5ad47108dead26490"},{url:"assets/js/vs/basic-languages/graphql/graphql.js",revision:"33366aac3f03b0c919818dff9e228bad"},{url:"assets/js/vs/basic-languages/handlebars/handlebars.js",revision:"9a05aa526495f0a1e241f3ac142e91a9"},{url:"assets/js/vs/basic-languages/hcl/hcl.js",revision:"710a5636d53b53e1290873211ddb6a9e"},{url:"assets/js/vs/basic-languages/html/html.js",revision:"2b130bc85c8c8646e5bea546d14a0b41"},{url:"assets/js/vs/basic-languages/ini/ini.js",revision:"2c52fccc7378467c65c40d246cbd05a4"},{url:"assets/js/vs/basic-languages/java/java.js",revision:"b6bd764730176bec564b8ed428790b5b"},{url:"assets/js/vs/basic-languages/javascript/javascript.js",revision:"a2e9534e6798dec260a05c3af6995ab6"},{url:"assets/js/vs/basic-languages/julia/julia.js",revision:"31b9ccddbca591c0a144e2854ad1df6f"},{url:"assets/js/vs/basic-languages/kotlin/kotlin.js",revision:"47f9a5dda454ed959e63ad41d7ed5d0f"},{url:"assets/js/vs/basic-languages/less/less.js",revision:"141d7e275a8415231fbd59f8113923b3"},{url:"assets/js/vs/basic-languages/lexon/lexon.js",revision:"8c87d858060a5a0a3f5d865f4e0f3b6e"},{url:"assets/js/vs/basic-languages/liquid/liquid.js",revision:"7f54c34250cd122147b9f479b0df9ad7"},{url:"assets/js/vs/basic-languages/lua/lua.js",revision:"00eb2f7a1c0ff215b1412b2f7d547293"},{url:"assets/js/vs/basic-languages/m3/m3.js",revision:"3fea60c45ed2c3cccfd37c02ec8eb611"},{url:"assets/js/vs/basic-languages/markdown/markdown.js",revision:"a17bd15cd9a17844d5c7533bb75aa75c"},{url:"assets/js/vs/basic-languages/mips/mips.js",revision:"b8e1fe126721a24f76b063625f00a99d"},{url:"assets/js/vs/basic-languages/msdax/msdax.js",revision:"cbb4a2dcff92b9bdbe236b176628d71e"},{url:"assets/js/vs/basic-languages/mysql/mysql.js",revision:"aa1c6fe8896c11c04822fa56609a2ed9"},{url:"assets/js/vs/basic-languages/objective-c/objective-c.js",revision:"6598c5e2591909635986178ca0273677"},{url:"assets/js/vs/basic-languages/pascal/pascal.js",revision:"373d426bb58b2a8fb1d14db8185cd34d"},{url:"assets/js/vs/basic-languages/pascaligo/pascaligo.js",revision:"eb41b781bbbf5bfa1cef31c666380302"},{url:"assets/js/vs/basic-languages/perl/perl.js",revision:"00ef4985b150a11a8e55632baa389942"},{url:"assets/js/vs/basic-languages/pgsql/pgsql.js",revision:"ab269b493eb717b4b49248569c63ba94"},{url:"assets/js/vs/basic-languages/php/php.js",revision:"5193d1ca2571967f42dffc9b0ec4d77c"},{url:"assets/js/vs/basic-languages/pla/pla.js",revision:"015b1b777840e2ff60d7d05da0c5833b"},{url:"assets/js/vs/basic-languages/postiats/postiats.js",revision:"0bebc84a5a7934887c44d81df346fa5b"},{url:"assets/js/vs/basic-languages/powerquery/powerquery.js",revision:"7a73f17d3e48b9a8c55492aea11a7e89"},{url:"assets/js/vs/basic-languages/powershell/powershell.js",revision:"6fa0bf908c12ff12186dc2f6948b7e68"},{url:"assets/js/vs/basic-languages/protobuf/protobuf.js",revision:"14343c432c7bc348af5b4a577906a338"},{url:"assets/js/vs/basic-languages/pug/pug.js",revision:"03e47508816771cbbc9dac8bb2cbba68"},{url:"assets/js/vs/basic-languages/python/python.js",revision:"020e23b1bdb676936ebe868a21a653b7"},{url:"assets/js/vs/basic-languages/qsharp/qsharp.js",revision:"5d8f229a1be1fec9c98532584c05bbf7"},{url:"assets/js/vs/basic-languages/r/r.js",revision:"4b585406c67d68af9cec6882d7b71b68"},{url:"assets/js/vs/basic-languages/razor/razor.js",revision:"4106dc94db262064c0f993ee27e1f1e6"},{url:"assets/js/vs/basic-languages/redis/redis.js",revision:"0dd6e471ef6fda3a0f9d9526c65dcd8c"},{url:"assets/js/vs/basic-languages/redshift/redshift.js",revision:"85edaf030683e5ba5e97a63df1fabd22"},{url:"assets/js/vs/basic-languages/restructuredtext/restructuredtext.js",revision:"8a5eec0e86d673a4b045d1b76fd178da"},{url:"assets/js/vs/basic-languages/ruby/ruby.js",revision:"9301210ab438575bce0f3b807dde974f"},{url:"assets/js/vs/basic-languages/rust/rust.js",revision:"e79c2eac7164955ca1f6f18a0711bdff"},{url:"assets/js/vs/basic-languages/sb/sb.js",revision:"a5b5f477d4bb446c3656cb3004e10a13"},{url:"assets/js/vs/basic-languages/scala/scala.js",revision:"4b05491d91202206f8e6cbb7f0552464"},{url:"assets/js/vs/basic-languages/scheme/scheme.js",revision:"642c56a7f33709481000481c1cfacf3f"},{url:"assets/js/vs/basic-languages/scss/scss.js",revision:"bb6b3db21c6aec0eaa5154231fd022cb"},{url:"assets/js/vs/basic-languages/shell/shell.js",revision:"c58d441824914a525210f72d05d4deae"},{url:"assets/js/vs/basic-languages/solidity/solidity.js",revision:"ab530c388e337be309fe44c9fe3b9101"},{url:"assets/js/vs/basic-languages/sophia/sophia.js",revision:"d2fb2b60b1701b26ef21dfd69bfd4bb3"},{url:"assets/js/vs/basic-languages/sparql/sparql.js",revision:"04ecb7894faf838af73f6e45ec5e849b"},{url:"assets/js/vs/basic-languages/sql/sql.js",revision:"e902f67b2ae9356456eb80f799935743"},{url:"assets/js/vs/basic-languages/st/st.js",revision:"184cf06d81cc6db926108652253788a8"},{url:"assets/js/vs/basic-languages/swift/swift.js",revision:"257edb0d4785f7dc2b87d40b9ffd9f2a"},{url:"assets/js/vs/basic-languages/systemverilog/systemverilog.js",revision:"5f463d344d22b4c25db7427863ffc785"},{url:"assets/js/vs/basic-languages/tcl/tcl.js",revision:"1b87289b43d801c746f0983263f159be"},{url:"assets/js/vs/basic-languages/twig/twig.js",revision:"8e8e7e5b4fe4530a376e1fd9871bb3c0"},{url:"assets/js/vs/basic-languages/typescript/typescript.js",revision:"9550dfbf82d3d02b4085778bdc2f5144"},{url:"assets/js/vs/basic-languages/vb/vb.js",revision:"98ea1d711b815f7e0058403cfb2f47f7"},{url:"assets/js/vs/basic-languages/xml/xml.js",revision:"843ca49336b9c8afad3cebe31e3499ba"},{url:"assets/js/vs/basic-languages/yaml/yaml.js",revision:"e65d368240a0a33f5dd8517042d22baf"},{url:"assets/js/vs/editor/editor.main.css",revision:"30994a557d1488ddd0e46487aa9282f1"},{url:"assets/js/vs/editor/editor.main.nls.de.js",revision:"5ac795573e517a9f7cd61f94f5ba53b6"},{url:"assets/js/vs/editor/editor.main.nls.es.js",revision:"18c8b0b6dcc1916afb3e31d4ba05a424"},{url:"assets/js/vs/editor/editor.main.nls.fr.js",revision:"e1e0a8bc716d8717a1c88333f03ad98a"},{url:"assets/js/vs/editor/editor.main.nls.it.js",revision:"b6602f2a32698f3997942dbbf8bdc78a"},{url:"assets/js/vs/editor/editor.main.nls.ja.js",revision:"41b561666c3c30da46e5e11460968596"},{url:"assets/js/vs/editor/editor.main.nls.js",revision:"be9bc3c87be5debf24bb958b0ad7b061"},{url:"assets/js/vs/editor/editor.main.nls.ko.js",revision:"59aa975695c2f9fef08fcf66c6fb5837"},{url:"assets/js/vs/editor/editor.main.nls.ru.js",revision:"f6ac240c2d24025c522e106784940f10"},{url:"assets/js/vs/editor/editor.main.nls.zh-cn.js",revision:"c82a3dc31d6fb1934849c477ccea7e52"},{url:"assets/js/vs/editor/editor.main.nls.zh-tw.js",revision:"ec3212f2680c449b23a3f4d5d5856f90"},{url:"assets/js/vs/language/css/cssMode.js",revision:"09d7edb49c180ae4361016eff500b956"},{url:"assets/js/vs/language/css/cssWorker.js",revision:"19c30b90021b645cb3bf1af079c818ec"},{url:"assets/js/vs/language/html/htmlMode.js",revision:"dad776df2f75d75a10246ebe1318796e"},{url:"assets/js/vs/language/html/htmlWorker.js",revision:"8f26bf62f45fa6b3099c6bb95a269791"},{url:"assets/js/vs/language/json/jsonMode.js",revision:"4a8b21fa884d86cfa39534e0fd72a936"},{url:"assets/js/vs/language/json/jsonWorker.js",revision:"994d228233541bafc0540bb0f6f678cc"},{url:"assets/js/vs/language/typescript/tsMode.js",revision:"3735e7b6c27ed7880c641c572d40b4c0"},{url:"assets/js/vs/loader.js",revision:"a223df1cdea17a435e1ab7bc6761ddd8"},{url:"assets/sample/bbb-sprite.jpg",revision:"6ab02ab0ffe5bc3e122444f957553021"},{url:"assets/sample/layer.png",revision:"73966368866d0ea547be0799c99a2cf4"},{url:"assets/sample/poster.jpg",revision:"01421f680dfa206faf700ac60e394c3b"},{url:"assets/sample/test.png",revision:"28d1af6531f1463ea16654750d2b6928"},{url:"assets/sample/thumbnails.png",revision:"773f00bee2e4b58eb7418bc6318991f9"},{url:"assets/sample/thumbnails/thumbnail_1.jpg",revision:"890d671ff24609fe664591e532369ef0"},{url:"assets/sample/thumbnails/thumbnail_10.jpg",revision:"a7663ab4dfdf9193324209308ffbb7a5"},{url:"assets/sample/thumbnails/thumbnail_11.jpg",revision:"a08bdfedcc3aeac05f016e56a689653e"},{url:"assets/sample/thumbnails/thumbnail_12.jpg",revision:"1ced197e631315c5e9382d9a96ccfe46"},{url:"assets/sample/thumbnails/thumbnail_13.jpg",revision:"bf23e98f786d724bccda04ad09aec530"},{url:"assets/sample/thumbnails/thumbnail_14.jpg",revision:"2c0c50d2ba6ec12d5a2114f233cb8feb"},{url:"assets/sample/thumbnails/thumbnail_15.jpg",revision:"742f369717cf8df7e8571d3a5d0ac237"},{url:"assets/sample/thumbnails/thumbnail_16.jpg",revision:"2a20d4f23e08f20e70b43c3b239b2d63"},{url:"assets/sample/thumbnails/thumbnail_17.jpg",revision:"0111a62a4d1d1d33fce9353c7b4a7c91"},{url:"assets/sample/thumbnails/thumbnail_18.jpg",revision:"f3b04f2dfd5637a6b776263366ad4e4f"},{url:"assets/sample/thumbnails/thumbnail_19.jpg",revision:"2edd56f02f4be9ad1cdafe6fb5d84b26"},{url:"assets/sample/thumbnails/thumbnail_2.jpg",revision:"5f10723ac5c3db6026aa412e9a1b502d"},{url:"assets/sample/thumbnails/thumbnail_20.jpg",revision:"cfa252ef04b723cef9cc55975ba37cc7"},{url:"assets/sample/thumbnails/thumbnail_21.jpg",revision:"4568c38ddede0ac141c63c48a67e8476"},{url:"assets/sample/thumbnails/thumbnail_22.jpg",revision:"da810e7381acf11fdc0f271b42545d6d"},{url:"assets/sample/thumbnails/thumbnail_23.jpg",revision:"3f2ec2efaeff3179d5deb83012cd1a8c"},{url:"assets/sample/thumbnails/thumbnail_24.jpg",revision:"c3076ef8687470207a1efc92a7064350"},{url:"assets/sample/thumbnails/thumbnail_25.jpg",revision:"1bdf905f9d9a480ab069a6ba9557deb0"},{url:"assets/sample/thumbnails/thumbnail_26.jpg",revision:"12bea1094da0ca575b7cb69b27f83193"},{url:"assets/sample/thumbnails/thumbnail_27.jpg",revision:"51ea6f2bf02352123ab4f82e1689d515"},{url:"assets/sample/thumbnails/thumbnail_28.jpg",revision:"23f6c6910d48bec39154cb4ec89e43a2"},{url:"assets/sample/thumbnails/thumbnail_29.jpg",revision:"9911d20ad159762c487ceaa1f94fe55e"},{url:"assets/sample/thumbnails/thumbnail_3.jpg",revision:"590503a9cd098b113e4ad12aa899289f"},{url:"assets/sample/thumbnails/thumbnail_30.jpg",revision:"06c29411daedee89327b416a10689f45"},{url:"assets/sample/thumbnails/thumbnail_31.jpg",revision:"afc3783603b2f1616b5c2847a7a0c1d2"},{url:"assets/sample/thumbnails/thumbnail_32.jpg",revision:"146450d476a314e4c642b9c4fc7f9985"},{url:"assets/sample/thumbnails/thumbnail_33.jpg",revision:"397ec56c329d4dab7e137b1ca34bda9a"},{url:"assets/sample/thumbnails/thumbnail_34.jpg",revision:"f8acf52926bd804923183c82e7afbd46"},{url:"assets/sample/thumbnails/thumbnail_35.jpg",revision:"da27980a581f6a36874135ded47d6379"},{url:"assets/sample/thumbnails/thumbnail_36.jpg",revision:"0d832f8e56d49e08b7d0071fce424d74"},{url:"assets/sample/thumbnails/thumbnail_37.jpg",revision:"d6df71542bee77d04b5cd7a4df4f53d1"},{url:"assets/sample/thumbnails/thumbnail_38.jpg",revision:"ff247fdc930dfbb5711292870ea2c2ca"},{url:"assets/sample/thumbnails/thumbnail_39.jpg",revision:"cf9f9280e85a4958478bd03d8f51b87a"},{url:"assets/sample/thumbnails/thumbnail_4.jpg",revision:"a42f2b695d6e83b8f55354e4969b6aae"},{url:"assets/sample/thumbnails/thumbnail_40.jpg",revision:"07b27e70b7b4a125aa6cebeb4bc974d1"},{url:"assets/sample/thumbnails/thumbnail_41.jpg",revision:"f59aa668eef771af88ba970943b2b76d"},{url:"assets/sample/thumbnails/thumbnail_42.jpg",revision:"7ec9856c7ece414262b4c048e2d8a67e"},{url:"assets/sample/thumbnails/thumbnail_43.jpg",revision:"40fbf64bceb65aaf250d56041414c615"},{url:"assets/sample/thumbnails/thumbnail_44.jpg",revision:"63ebb0f8b33273037ea44a014ba1512e"},{url:"assets/sample/thumbnails/thumbnail_45.jpg",revision:"77c0cc31fa7022becdac5cc35b97e040"},{url:"assets/sample/thumbnails/thumbnail_46.jpg",revision:"8f35febea549973aac957b95a3f6b450"},{url:"assets/sample/thumbnails/thumbnail_47.jpg",revision:"8511eed5538ead79decdd473f4e648dc"},{url:"assets/sample/thumbnails/thumbnail_48.jpg",revision:"8450abbd5c545c5e20b378f651f18ebc"},{url:"assets/sample/thumbnails/thumbnail_49.jpg",revision:"8eaf81670a54dd2945ff9152f1d36e50"},{url:"assets/sample/thumbnails/thumbnail_5.jpg",revision:"ef90dd12b9c5eb0ad3b205c844045416"},{url:"assets/sample/thumbnails/thumbnail_50.jpg",revision:"2dae99bab8a8a0cac445c483c8d5524e"},{url:"assets/sample/thumbnails/thumbnail_51.jpg",revision:"4c3a94aeafa5102d8f999da8db05b8ac"},{url:"assets/sample/thumbnails/thumbnail_52.jpg",revision:"b63727ad0ea2de79b14f034140f23b6c"},{url:"assets/sample/thumbnails/thumbnail_53.jpg",revision:"b14e77f7ac281e6791f2dd6a897635f4"},{url:"assets/sample/thumbnails/thumbnail_54.jpg",revision:"84d5f6ac22f76b1a80b426647205314d"},{url:"assets/sample/thumbnails/thumbnail_55.jpg",revision:"3f8c9153990819828a0c40d8b6f93c96"},{url:"assets/sample/thumbnails/thumbnail_56.jpg",revision:"e321896fd577815dad0c224e3c0c99b6"},{url:"assets/sample/thumbnails/thumbnail_57.jpg",revision:"d04385f715f75c105034bcf1f1ea169c"},{url:"assets/sample/thumbnails/thumbnail_58.jpg",revision:"bb0abc4058799551e057dbe525a8032c"},{url:"assets/sample/thumbnails/thumbnail_59.jpg",revision:"0a641a8e43ebfd9982acaffeb772e41c"},{url:"assets/sample/thumbnails/thumbnail_6.jpg",revision:"5068cbd2ba1e7112f09e601126787082"},{url:"assets/sample/thumbnails/thumbnail_60.jpg",revision:"a3485360065e8aee489314f9fb6105ed"},{url:"assets/sample/thumbnails/thumbnail_7.jpg",revision:"9107a2b9ef154590427f4edd30a7af61"},{url:"assets/sample/thumbnails/thumbnail_8.jpg",revision:"0f22ef7e53e42d47d260707b7a4416eb"},{url:"assets/sample/thumbnails/thumbnail_9.jpg",revision:"d2dd29ef088dcfa125565a6e0fe1b834"}],{})})); diff --git a/docs/uncompiled/artplayer-plugin-control/index.js b/docs/uncompiled/artplayer-plugin-control/index.js index 1351221ec..94207e38d 100644 --- a/docs/uncompiled/artplayer-plugin-control/index.js +++ b/docs/uncompiled/artplayer-plugin-control/index.js @@ -187,7 +187,7 @@ function artplayerPluginControl() { exports.default = artplayerPluginControl; artplayerPluginControl.env = "development"; artplayerPluginControl.version = "2.0.0"; -artplayerPluginControl.build = "2023-04-16 22:13:48"; +artplayerPluginControl.build = "2023-04-23 10:16:27"; if (typeof document !== "undefined") { if (!document.getElementById("artplayer-plugin-control")) { const $style = document.createElement("style"); @@ -199,7 +199,7 @@ if (typeof document !== "undefined") { if (typeof window !== "undefined") window["artplayerPluginControl"] = artplayerPluginControl; },{"bundle-text:./style.less":"cLvfB","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"cLvfB":[function(require,module,exports) { -module.exports = ".artplayer-plugin-control .art-bottom {\n height: 68px;\n width: 400px;\n user-select: none;\n -webkit-backdrop-filter: saturate(180%) blur(20px);\n backdrop-filter: saturate(180%) blur(20px);\n pointer-events: auto;\n background-color: #000000b3;\n background-image: none;\n border-radius: 10px;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n padding: 13px 0 0;\n font-size: 13px;\n display: flex;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n box-shadow: 0 10px 15px -3px #0003, 0 4px 6px -4px #0003;\n bottom: 10px !important;\n}\n\n.artplayer-plugin-control .art-bottom .art-progress {\n width: 65%;\n justify-content: space-between;\n align-items: center;\n gap: 10px;\n display: flex;\n}\n\n.artplayer-plugin-control .art-bottom .art-progress .art-control-thumbnails {\n bottom: 25px;\n}\n\n.artplayer-plugin-control .art-bottom .art-progress .art-control-progress {\n width: 100%;\n}\n\n.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-control-progress-inner, .artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-progress-loaded, .artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-progress-played {\n border-radius: 5px;\n}\n\n.artplayer-plugin-control .art-bottom .art-progress .art-progress-tip {\n top: -40px !important;\n}\n\n.artplayer-plugin-control .art-bottom .art-controls {\n width: 100%;\n flex: 1;\n}\n\n.artplayer-plugin-control .art-bottom .art-controls .art-control-time, .artplayer-plugin-control .art-bottom .art-controls .art-controls-center {\n display: none;\n}\n\n.artplayer-plugin-control .art-bottom .art-selector-list {\n background-color: #000c !important;\n}\n\n.artplayer-plugin-control .art-bottom .apa-control-current, .artplayer-plugin-control .art-bottom .apa-control-duration {\n width: 17.5%;\n justify-content: center;\n line-height: 1;\n display: flex;\n position: absolute;\n top: 10px;\n}\n\n.artplayer-plugin-control .art-bottom .apa-control-current {\n left: 0;\n}\n\n.artplayer-plugin-control .art-bottom .apa-control-duration {\n right: 0;\n}\n\n.artplayer-plugin-control .art-settings {\n bottom: 85px;\n}\n\n.artplayer-plugin-control .art-layer-auto-playback {\n bottom: 90px;\n}\n\n.artplayer-plugin-control.art-control-show .art-subtitle {\n bottom: 80px;\n}\n\n.apa-control-current, .apa-control-duration {\n display: none;\n}\n\n"; +module.exports = ".artplayer-plugin-control .apa-control-current, .artplayer-plugin-control .apa-control-duration {\n display: flex;\n}\n\n.artplayer-plugin-control .art-control-time, .artplayer-plugin-control .art-controls-center {\n display: none;\n}\n\n.artplayer-plugin-control .art-settings {\n bottom: 85px;\n}\n\n.artplayer-plugin-control .art-bottom {\n height: 70px;\n width: 400px;\n -webkit-backdrop-filter: saturate(180%) blur(20px);\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000b3;\n background-image: none;\n border-radius: 10px;\n align-items: center;\n margin-left: -200px;\n inset: auto auto 10px 50%;\n overflow: visible;\n box-shadow: 0 10px 15px -3px #0003, 0 4px 6px -4px #0003;\n}\n\n.artplayer-plugin-control .art-bottom .art-progress {\n width: 70%;\n}\n\n.artplayer-plugin-control .art-bottom .art-controls {\n width: 100%;\n}\n\n.artplayer-plugin-control .art-bottom .apa-control-current, .artplayer-plugin-control .art-bottom .apa-control-duration {\n width: 15%;\n justify-content: center;\n font-size: 12px;\n line-height: 1;\n display: flex;\n position: absolute;\n top: 10px;\n}\n\n.artplayer-plugin-control .art-bottom .apa-control-current {\n left: 0;\n}\n\n.artplayer-plugin-control .art-bottom .apa-control-duration {\n right: 0;\n}\n\n.apa-control-current, .apa-control-duration {\n display: none;\n}\n\n"; },{}],"5dUr6":[function(require,module,exports) { exports.interopDefault = function(a) { diff --git a/docs/uncompiled/artplayer-plugin-danmuku/index.js b/docs/uncompiled/artplayer-plugin-danmuku/index.js index 3c26b6529..a5e75b4b2 100644 --- a/docs/uncompiled/artplayer-plugin-danmuku/index.js +++ b/docs/uncompiled/artplayer-plugin-danmuku/index.js @@ -183,8 +183,8 @@ function artplayerPluginDanmuku(option) { } exports.default = artplayerPluginDanmuku; artplayerPluginDanmuku.env = "development"; -artplayerPluginDanmuku.version = "4.4.11"; -artplayerPluginDanmuku.build = "2023-04-16 22:40:26"; +artplayerPluginDanmuku.version = "5.0.0"; +artplayerPluginDanmuku.build = "2023-04-23 10:11:14"; if (typeof window !== "undefined") window["artplayerPluginDanmuku"] = artplayerPluginDanmuku; },{"./danmuku":"cv7fe","./setting":"cI0ih","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"cv7fe":[function(require,module,exports) { @@ -221,8 +221,7 @@ class Danmuku { art.on("video:playing", this.start); art.on("video:pause", this.stop); art.on("video:waiting", this.stop); - art.on("fullscreen", this.reset); - art.on("fullscreenWeb", this.reset); + art.on("resize", this.reset); art.on("destroy", this.destroy); this.load(); } diff --git a/docs/uncompiled/artplayer-plugin-danmuku/index.js.map b/docs/uncompiled/artplayer-plugin-danmuku/index.js.map index df137ecc9..ebf295317 100644 --- a/docs/uncompiled/artplayer-plugin-danmuku/index.js.map +++ b/docs/uncompiled/artplayer-plugin-danmuku/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["packages/artplayer-plugin-danmuku/src/index.js","packages/artplayer-plugin-danmuku/src/danmuku.js","packages/artplayer-plugin-danmuku/src/bilibili.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","packages/artplayer-plugin-danmuku/src/getDanmuTop.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b61db27680d5896e.js","packages/artplayer-plugin-danmuku/src/setting.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e633bd0642c0f6d8.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6b6314fb95d0f9c4.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-63e2f0a59f61ce30.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8c344af6de265517.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-5db94c18a44eaa0a.js"],"sourcesContent":["import Danmuku from './danmuku';\nimport setting from './setting';\n\nfunction checkVersion(art) {\n const {\n version,\n utils: { errorHandle },\n } = art.constructor;\n const arr = version.split('.').map(Number);\n const major = arr[0];\n const minor = arr[1] / 100;\n errorHandle(major + minor >= 5, `Artplayer.js@${version} 不兼容该弹幕库,请更新到 5 版本以上`);\n}\n\nexport default function artplayerPluginDanmuku(option) {\n return (art) => {\n checkVersion(art);\n const danmuku = new Danmuku(art, option);\n setting(art, danmuku);\n return {\n name: 'artplayerPluginDanmuku',\n emit: danmuku.emit.bind(danmuku),\n load: danmuku.load.bind(danmuku),\n config: danmuku.config.bind(danmuku),\n hide: danmuku.hide.bind(danmuku),\n show: danmuku.show.bind(danmuku),\n reset: danmuku.reset.bind(danmuku),\n get option() {\n return danmuku.option;\n },\n get isHide() {\n return danmuku.isHide;\n },\n get isStop() {\n return danmuku.isStop;\n },\n };\n };\n}\n\nartplayerPluginDanmuku.env = process.env.NODE_ENV;\nartplayerPluginDanmuku.version = process.env.APP_VER;\nartplayerPluginDanmuku.build = process.env.BUILD_DATE;\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginDanmuku'] = artplayerPluginDanmuku;\n}\n","import { bilibiliDanmuParseFromUrl } from './bilibili';\nimport getDanmuTop from './getDanmuTop';\n\nexport default class Danmuku {\n constructor(art, option) {\n const { constructor, template } = art;\n\n this.utils = constructor.utils;\n this.validator = constructor.validator;\n this.$danmuku = template.$danmuku;\n this.$player = template.$player;\n\n this.art = art;\n this.queue = [];\n this.option = {};\n this.$refs = [];\n this.isStop = false;\n this.isHide = false;\n this.timer = null;\n this.config(option);\n\n if (this.option.useWorker) {\n try {\n this.worker = new Worker(new URL('data-url:./worker.js', import.meta.url));\n } catch (error) {\n //\n }\n }\n\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n this.reset = this.reset.bind(this);\n this.destroy = this.destroy.bind(this);\n\n art.on('video:play', this.start);\n art.on('video:playing', this.start);\n art.on('video:pause', this.stop);\n art.on('video:waiting', this.stop);\n art.on('fullscreen', this.reset);\n art.on('fullscreenWeb', this.reset);\n art.on('destroy', this.destroy);\n\n this.load();\n }\n\n static get option() {\n return {\n danmuku: [],\n speed: 5,\n margin: ['2%', '25%'],\n opacity: 1,\n color: '#FFFFFF',\n mode: 0,\n fontSize: 25,\n filter: () => true,\n antiOverlap: true,\n useWorker: true,\n synchronousPlayback: false,\n lockTime: 5,\n maxLength: 100,\n minWidth: 200,\n maxWidth: 400,\n mount: undefined,\n theme: 'dark',\n beforeEmit: () => true,\n };\n }\n\n static get scheme() {\n return {\n danmuku: 'array|function|string',\n speed: 'number',\n margin: 'array',\n opacity: 'number',\n color: 'string',\n mode: 'number',\n fontSize: 'number|string',\n filter: 'function',\n antiOverlap: 'boolean',\n useWorker: 'boolean',\n synchronousPlayback: 'boolean',\n lockTime: 'number',\n maxLength: 'number',\n minWidth: 'number',\n maxWidth: 'number',\n mount: 'undefined|htmldivelement',\n theme: 'string',\n beforeEmit: 'function',\n };\n }\n\n get isRotate() {\n return this.art.plugins.autoOrientation && this.art.plugins.autoOrientation.state;\n }\n\n get marginTop() {\n const { clamp } = this.utils;\n const value = this.option.margin[0];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, clientHeight);\n }\n\n return Danmuku.option.margin[0];\n }\n\n get marginBottom() {\n const { clamp } = this.utils;\n const value = this.option.margin[1];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, clientHeight);\n }\n\n return Danmuku.option.margin[1];\n }\n\n filter(state, callback) {\n return this.queue.filter((danmu) => danmu.$state === state).map(callback);\n }\n\n getLeft($ref) {\n const rect = $ref.getBoundingClientRect();\n return this.isRotate ? rect.top : rect.left;\n }\n\n getRef() {\n const $refCache = this.$refs.pop();\n if ($refCache) return $refCache;\n\n const $ref = document.createElement('div');\n\n $ref.style.cssText = `\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, \"Microsoft JhengHei\", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n `;\n\n return $ref;\n }\n\n getReady() {\n const { currentTime } = this.art;\n return this.queue.filter((danmu) => {\n return (\n danmu.$state === 'ready' ||\n (danmu.$state === 'wait' && currentTime + 0.1 >= danmu.time && danmu.time >= currentTime - 0.1)\n );\n });\n }\n\n getEmits() {\n const result = [];\n const { clientWidth } = this.$player;\n const clientLeft = this.getLeft(this.$player);\n\n this.filter('emit', (danmu) => {\n const top = danmu.$ref.offsetTop;\n const left = this.getLeft(danmu.$ref) - clientLeft;\n const height = danmu.$ref.clientHeight;\n const width = danmu.$ref.clientWidth;\n const distance = left + width;\n const right = clientWidth - distance;\n const speed = distance / danmu.$restTime;\n\n const emit = {};\n emit.top = top;\n emit.left = left;\n emit.height = height;\n emit.width = width;\n emit.right = right;\n emit.speed = speed;\n emit.distance = distance;\n emit.time = danmu.$restTime;\n emit.mode = danmu.mode;\n\n result.push(emit);\n });\n\n return result;\n }\n\n getFontSize(fontSize) {\n const { clamp } = this.utils;\n const { clientHeight } = this.$player;\n\n if (typeof fontSize === 'number') {\n return clamp(fontSize, 12, clientHeight);\n }\n\n if (typeof fontSize === 'string' && fontSize.endsWith('%')) {\n const ratio = parseFloat(fontSize) / 100;\n return clamp(clientHeight * ratio, 12, clientHeight);\n }\n\n return Danmuku.option.fontSize;\n }\n\n postMessage(message = {}) {\n return new Promise((resolve) => {\n if (this.option.useWorker && this.worker && this.worker.postMessage) {\n message.id = Date.now();\n this.worker.postMessage(message);\n this.worker.onmessage = (event) => {\n const { data } = event;\n if (data.id === message.id) {\n resolve(data);\n }\n };\n } else {\n const top = getDanmuTop(message);\n resolve({ top });\n }\n });\n }\n\n async load() {\n try {\n let danmus = [];\n if (typeof this.option.danmuku === 'function') {\n danmus = await this.option.danmuku();\n } else if (typeof this.option.danmuku.then === 'function') {\n danmus = await this.option.danmuku;\n } else if (typeof this.option.danmuku === 'string') {\n danmus = await bilibiliDanmuParseFromUrl(this.option.danmuku);\n } else {\n danmus = this.option.danmuku;\n }\n\n this.utils.errorHandle(Array.isArray(danmus), 'Danmuku need return an array as result');\n this.art.emit('artplayerPluginDanmuku:loaded', danmus);\n\n this.queue = [];\n this.$danmuku.innerText = '';\n danmus.forEach((danmu) => this.emit(danmu));\n } catch (error) {\n this.art.emit('artplayerPluginDanmuku:error', error);\n throw error;\n }\n\n return this;\n }\n\n config(option) {\n const { clamp } = this.utils;\n\n this.option = Object.assign({}, Danmuku.option, this.option, option);\n this.validator(this.option, Danmuku.scheme);\n\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n this.option.lockTime = clamp(Math.floor(this.option.lockTime), 0, 60);\n this.option.maxLength = clamp(this.option.maxLength, 0, 500);\n this.option.minWidth = clamp(this.option.minWidth, 0, 500);\n this.option.maxWidth = clamp(this.option.maxWidth, 0, Infinity);\n\n if (option.fontSize) {\n this.option.fontSize = this.getFontSize(this.option.fontSize);\n this.reset();\n }\n\n this.art.emit('artplayerPluginDanmuku:config', this.option);\n\n return this;\n }\n\n makeWait(danmu) {\n danmu.$state = 'wait';\n if (danmu.$ref) {\n danmu.$ref.style.visibility = 'hidden';\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n\n continue() {\n const { clientWidth } = this.$player;\n this.filter('stop', (danmu) => {\n danmu.$state = 'emit';\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n case 0: {\n const translateX = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n suspend() {\n const { clientWidth } = this.$player;\n this.filter('emit', (danmu) => {\n danmu.$state = 'stop';\n switch (danmu.mode) {\n case 0: {\n const translateX = clientWidth - (this.getLeft(danmu.$ref) - this.getLeft(this.$player));\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n reset() {\n this.queue.forEach((danmu) => this.makeWait(danmu));\n return this;\n }\n\n update() {\n this.timer = window.requestAnimationFrame(async () => {\n if (this.art.playing && !this.isHide) {\n this.filter('emit', (danmu) => {\n const emitTime = (Date.now() - danmu.$lastStartTime) / 1000;\n danmu.$restTime -= emitTime;\n danmu.$lastStartTime = Date.now();\n if (danmu.$restTime <= 0) {\n this.makeWait(danmu);\n }\n });\n\n const readys = this.getReady();\n const { clientWidth, clientHeight } = this.$player;\n for (let index = 0; index < readys.length; index++) {\n const danmu = readys[index];\n danmu.$ref = this.getRef();\n danmu.$ref.innerText = danmu.text;\n this.$danmuku.appendChild(danmu.$ref);\n\n danmu.$ref.style.left = `${clientWidth}px`;\n danmu.$ref.style.opacity = this.option.opacity;\n danmu.$ref.style.fontSize = `${this.option.fontSize}px`;\n danmu.$ref.style.color = danmu.color;\n danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color}` : null;\n danmu.$ref.style.backgroundColor = danmu.border ? 'rgb(0 0 0 / 50%)' : null;\n danmu.$ref.style.marginLeft = '0px';\n\n danmu.$lastStartTime = Date.now();\n danmu.$restTime =\n this.option.synchronousPlayback && this.art.playbackRate\n ? this.option.speed / Number(this.art.playbackRate)\n : this.option.speed;\n\n const target = {\n mode: danmu.mode,\n height: danmu.$ref.clientHeight,\n speed: (clientWidth + danmu.$ref.clientWidth) / danmu.$restTime,\n };\n\n const { top } = await this.postMessage({\n target,\n emits: this.getEmits(),\n antiOverlap: this.option.antiOverlap,\n clientWidth: clientWidth,\n clientHeight: clientHeight,\n marginBottom: this.marginBottom,\n marginTop: this.marginTop,\n });\n\n if (danmu.$ref) {\n if (!this.isStop && top !== undefined) {\n danmu.$state = 'emit';\n danmu.$ref.style.visibility = 'visible';\n\n switch (danmu.mode) {\n case 0: {\n danmu.$ref.style.top = `${top}px`;\n const translateX = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n case 1:\n danmu.$ref.style.left = '50%';\n danmu.$ref.style.top = `${top}px`;\n danmu.$ref.style.marginLeft = `-${danmu.$ref.clientWidth / 2}px`;\n break;\n default:\n break;\n }\n } else {\n danmu.$state = 'ready';\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n }\n }\n\n if (!this.isStop) {\n this.update();\n }\n });\n return this;\n }\n\n stop() {\n this.isStop = true;\n this.suspend();\n window.cancelAnimationFrame(this.timer);\n this.art.emit('artplayerPluginDanmuku:stop');\n return this;\n }\n\n start() {\n this.isStop = false;\n this.continue();\n this.update();\n this.art.emit('artplayerPluginDanmuku:start');\n return this;\n }\n\n show() {\n this.isHide = false;\n this.start();\n this.$danmuku.style.display = 'block';\n this.art.emit('artplayerPluginDanmuku:show');\n return this;\n }\n\n hide() {\n this.isHide = true;\n this.stop();\n this.queue.forEach((item) => this.makeWait(item));\n this.$danmuku.style.display = 'none';\n this.art.emit('artplayerPluginDanmuku:hide');\n return this;\n }\n\n emit(danmu) {\n this.validator(danmu, {\n text: 'string',\n mode: 'number|undefined',\n color: 'string|undefined',\n time: 'number|undefined',\n border: 'boolean|undefined',\n });\n\n if (!danmu.text.trim()) return this;\n if (!this.option.filter(danmu)) return this;\n\n if (danmu.time) {\n danmu.time = this.utils.clamp(danmu.time, 0, Infinity);\n } else {\n danmu.time = this.art.currentTime + 0.5;\n }\n\n if (danmu.mode === undefined) {\n danmu.mode = this.option.mode;\n }\n\n if (danmu.color === undefined) {\n danmu.color = this.option.color;\n }\n\n this.queue.push({\n ...danmu,\n $state: 'wait',\n $ref: null,\n $restTime: 0,\n $lastStartTime: 0,\n });\n\n return this;\n }\n\n destroy() {\n this.stop();\n if (this.worker && this.worker.terminate) this.worker.terminate();\n this.art.off('video:play', this.start);\n this.art.off('video:playing', this.start);\n this.art.off('video:pause', this.stop);\n this.art.off('video:waiting', this.stop);\n this.art.off('fullscreen', this.reset);\n this.art.off('fullscreenWeb', this.reset);\n this.art.off('destroy', this.destroy);\n this.art.emit('artplayerPluginDanmuku:destroy');\n }\n}\n","export function getMode(key) {\n switch (key) {\n case 1:\n case 2:\n case 3:\n return 0;\n case 4:\n case 5:\n return 1;\n default:\n return 0;\n }\n}\n\nexport function bilibiliDanmuParseFromXml(xmlString) {\n if (typeof xmlString !== 'string') return [];\n const matches = xmlString.matchAll(/.+?)\"(?: .*?)?>(?.+?)<\\/d>/gs);\n return Array.from(matches)\n .map((match) => {\n const attr = match.groups.p.split(',');\n if (attr.length >= 8) {\n const text = match.groups.text\n .trim()\n .replaceAll('"', '\"')\n .replaceAll(''', \"'\")\n .replaceAll('<', '<')\n .replaceAll('>', '>')\n .replaceAll('&', '&');\n\n return {\n text,\n time: Number(attr[0]),\n mode: getMode(Number(attr[1])),\n fontSize: Number(attr[2]),\n color: `#${Number(attr[3]).toString(16)}`,\n timestamp: Number(attr[4]),\n pool: Number(attr[5]),\n userID: attr[6],\n rowID: Number(attr[7]),\n };\n } else {\n return null;\n }\n })\n .filter(Boolean);\n}\n\nexport function bilibiliDanmuParseFromUrl(url) {\n return fetch(url)\n .then((res) => res.text())\n .then((xmlString) => bilibiliDanmuParseFromXml(xmlString));\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","export default function getDanmuTop({\n target,\n emits,\n clientWidth,\n clientHeight,\n marginBottom,\n marginTop,\n antiOverlap,\n}) {\n const danmus = emits\n .filter((item) => item.mode === target.mode && item.top <= clientHeight - marginBottom)\n .sort((prev, next) => prev.top - next.top);\n\n if (danmus.length === 0) {\n return marginTop;\n }\n\n danmus.unshift({\n top: 0,\n left: 0,\n right: 0,\n height: marginTop,\n width: clientWidth,\n speed: 0,\n distance: clientWidth,\n });\n\n danmus.push({\n top: clientHeight - marginBottom,\n left: 0,\n right: 0,\n height: marginBottom,\n width: clientWidth,\n speed: 0,\n distance: clientWidth,\n });\n\n for (let index = 1; index < danmus.length; index += 1) {\n const item = danmus[index];\n const prev = danmus[index - 1];\n const prevBottom = prev.top + prev.height;\n const diff = item.top - prevBottom;\n if (diff >= target.height) {\n return prevBottom;\n }\n }\n\n const topMap = [];\n for (let index = 1; index < danmus.length - 1; index += 1) {\n const item = danmus[index];\n if (topMap.length) {\n const last = topMap[topMap.length - 1];\n if (last[0].top === item.top) {\n last.push(item);\n } else {\n topMap.push([item]);\n }\n } else {\n topMap.push([item]);\n }\n }\n\n if (antiOverlap) {\n switch (target.mode) {\n case 0: {\n const result = topMap.find((list) => {\n return list.every((danmu) => {\n if (clientWidth < danmu.distance) return false;\n if (target.speed < danmu.speed) return true;\n const overlapTime = danmu.right / (target.speed - danmu.speed);\n if (overlapTime > danmu.time) return true;\n return false;\n });\n });\n\n return result && result[0] ? result[0].top : undefined;\n }\n case 1:\n return undefined;\n default:\n break;\n }\n } else {\n switch (target.mode) {\n case 0:\n topMap.sort((prev, next) => {\n const nextMinRight = Math.min(...next.map((item) => item.right));\n const prevMinRight = Math.min(...prev.map((item) => item.right));\n return nextMinRight * next.length - prevMinRight * prev.length;\n });\n break;\n case 1:\n topMap.sort((prev, next) => {\n const nextMaxWidth = Math.max(...next.map((item) => item.width));\n const prevMaxWidth = Math.max(...prev.map((item) => item.width));\n return prevMaxWidth * prev.length - nextMaxWidth * next.length;\n });\n break;\n default:\n break;\n }\n\n return topMap[0][0].top;\n }\n}\n","module.exports = \"f89064c706e65d5d\";","import style from 'bundle-text:./style.less';\nimport danmuOn from 'bundle-text:./img/danmu-on.svg';\nimport danmuOff from 'bundle-text:./img/danmu-off.svg';\nimport danmuConfig from 'bundle-text:./img/danmu-config.svg';\nimport danmuStyle from 'bundle-text:./img/danmu-style.svg';\n\nexport default function setting(art, danmuku) {\n const { option } = danmuku;\n const {\n template: { $controlsCenter, $player },\n constructor: {\n utils: { removeClass, addClass, append, setStyle, tooltip, query, inverseClass },\n },\n } = art;\n\n function getIcon(svg, key) {\n const icon = document.createElement('i');\n append(icon, svg);\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n return icon;\n }\n\n setStyle($controlsCenter, 'display', 'flex');\n const $danmuOn = getIcon(danmuOn, 'danmu-on');\n const $danmuOff = getIcon(danmuOff, 'danmu-off');\n const $danmuConfig = getIcon(danmuConfig, 'danmu-config');\n const $danmuStyle = getIcon(danmuStyle, 'danmu-style');\n\n function addEmitter() {\n const colors = [\n '#FE0302',\n '#FF7204',\n '#FFAA02',\n '#FFD302',\n '#FFFF00',\n '#A0EE00',\n '#00CD00',\n '#019899',\n '#4266BE',\n '#89D5FF',\n '#CC0273',\n '#222222',\n '#9B9B9B',\n '#FFFFFF',\n ].map((item) => {\n const isCurrent = option.color === item ? ' art-current' : '';\n return `
`;\n });\n\n const $emitter = append(\n $controlsCenter,\n `\n
\n
\n
\n
\n
\n
模式
\n
\n
滚动
\n
静止
\n
\n
颜色
\n
\n ${colors.join('')}\n
\n
\n
\n
\n \n
\n
发送
\n
\n `,\n );\n\n const $style = query('.art-danmuku-style', $emitter);\n const $input = query('.art-danmuku-input', $emitter);\n const $send = query('.art-danmuku-send', $emitter);\n const $panel = query('.art-danmuku-style-panel-inner', $emitter);\n const $modes = query('.art-danmuku-style-panel-modes', $emitter);\n const $colors = query('.art-danmuku-style-panel-colors', $emitter);\n const $layer = option.mount || append($player, '
');\n\n if (art.option.backdrop) {\n addClass($panel, 'art-backdrop-filter');\n }\n\n if (option.theme) {\n addClass($emitter, `art-danmuku-theme-${option.theme}`);\n }\n\n let timer = null;\n let mode = option.mode;\n let color = option.color;\n append($style, $danmuStyle);\n\n function countdown(time) {\n if (time <= 0) {\n timer = null;\n $send.innerText = '发送';\n removeClass($send, 'art-disabled');\n } else {\n $send.innerText = time;\n timer = setTimeout(() => countdown(time - 1), 1000);\n }\n }\n\n function onSend() {\n const danmu = {\n mode,\n color,\n border: true,\n text: $input.value.trim(),\n };\n\n if (timer === null && option.beforeEmit(danmu)) {\n $input.value = '';\n danmuku.emit(danmu);\n addClass($send, 'art-disabled');\n countdown(option.lockTime);\n art.emit('artplayerPluginDanmuku:emit', danmu);\n }\n }\n\n function onResize() {\n if ($controlsCenter.clientWidth < option.minWidth) {\n append($layer, $emitter);\n setStyle($layer, 'display', 'flex');\n addClass($emitter, 'art-danmuku-mount');\n\n if (!option.mount) {\n setStyle($player, 'marginBottom', '40px');\n }\n } else {\n append($controlsCenter, $emitter);\n setStyle($layer, 'display', 'none');\n removeClass($emitter, 'art-danmuku-mount');\n\n if (!option.mount) {\n setStyle($player, 'marginBottom', null);\n }\n }\n }\n\n art.proxy($send, 'click', onSend);\n\n art.proxy($input, 'keypress', (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n onSend();\n }\n });\n\n art.proxy($modes, 'click', (event) => {\n const { dataset } = event.target;\n if (dataset.mode) {\n mode = Number(dataset.mode);\n inverseClass(event.target, 'art-current');\n }\n });\n\n art.proxy($colors, 'click', (event) => {\n const { dataset } = event.target;\n if (dataset.color) {\n color = dataset.color;\n inverseClass(event.target, 'art-current');\n }\n });\n\n onResize();\n art.on('resize', () => {\n if (!art.isInput) {\n onResize();\n }\n });\n\n art.on('destroy', () => {\n if (option.mount && $emitter.parentElement === option.mount) {\n option.mount.removeChild($emitter);\n }\n });\n }\n\n function addControl() {\n art.controls.add({\n position: 'right',\n name: 'danmuku',\n click: function () {\n if (danmuku.isHide) {\n danmuku.show();\n art.notice.show = '弹幕显示';\n setStyle($danmuOn, 'display', null);\n setStyle($danmuOff, 'display', 'none');\n } else {\n danmuku.hide();\n art.notice.show = '弹幕隐藏';\n setStyle($danmuOn, 'display', 'none');\n setStyle($danmuOff, 'display', null);\n }\n },\n mounted($ref) {\n append($ref, $danmuOn);\n append($ref, $danmuOff);\n tooltip($ref, '弹幕开关');\n setStyle($danmuOff, 'display', 'none');\n },\n });\n }\n\n function addSetting() {\n art.setting.add({\n name: 'danmuku',\n html: '弹幕设置',\n tooltip: '更多',\n icon: $danmuConfig,\n selector: [\n {\n width: 200,\n html: '播放速度',\n icon: '',\n tooltip: '适中',\n selector: [\n {\n html: '极慢',\n time: 10,\n },\n {\n html: '较慢',\n time: 7.5,\n },\n {\n default: true,\n html: '适中',\n time: 5,\n },\n {\n html: '较快',\n time: 2.5,\n },\n {\n html: '极快',\n time: 1,\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n speed: item.time,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '字体大小',\n icon: '',\n tooltip: '适中',\n selector: [\n {\n html: '极小',\n fontSize: '4%',\n },\n {\n html: '较小',\n fontSize: '5%',\n },\n {\n default: true,\n html: '适中',\n fontSize: '6%',\n },\n {\n html: '较大',\n fontSize: '7%',\n },\n {\n html: '极大',\n fontSize: '8%',\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n fontSize: item.fontSize,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '不透明度',\n icon: '',\n tooltip: '100%',\n selector: [\n {\n default: true,\n opacity: 1,\n html: '100%',\n },\n {\n opacity: 0.75,\n html: '75%',\n },\n {\n opacity: 0.5,\n html: '50%',\n },\n {\n opacity: 0.25,\n html: '25%',\n },\n {\n opacity: 0,\n html: '0%',\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n opacity: item.opacity,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '显示范围',\n icon: '',\n tooltip: '3/4',\n selector: [\n {\n html: '1/4',\n margin: [10, '75%'],\n },\n {\n html: '半屏',\n margin: [10, '50%'],\n },\n {\n default: true,\n html: '3/4',\n margin: [10, '25%'],\n },\n {\n html: '满屏',\n margin: [10, 10],\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n margin: item.margin,\n });\n return item.html;\n },\n },\n {\n html: '弹幕防重叠',\n icon: '',\n tooltip: option.antiOverlap ? '开启' : '关闭',\n switch: option.antiOverlap,\n onSwitch(item) {\n danmuku.config({\n antiOverlap: !item.switch,\n });\n item.tooltip = item.switch ? '关闭' : '开启';\n return !item.switch;\n },\n },\n {\n html: '同步视频速度',\n icon: '',\n tooltip: option.synchronousPlayback ? '开启' : '关闭',\n switch: option.synchronousPlayback,\n onSwitch(item) {\n danmuku.config({\n synchronousPlayback: !item.switch,\n });\n item.tooltip = item.switch ? '关闭' : '开启';\n return !item.switch;\n },\n },\n ],\n });\n }\n\n addEmitter();\n addControl();\n addSetting();\n}\n\nif (typeof document !== 'undefined') {\n if (!document.getElementById('artplayer-plugin-danmuku')) {\n const $style = document.createElement('style');\n $style.id = 'artplayer-plugin-danmuku';\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n","module.exports = \"c09c1588fb4faeee\";","module.exports = \"ed96d9cba019193e\";","module.exports = \"50e63783768a51c7\";","module.exports = \"6d994b91570c2465\";","module.exports = \"5e37f7b89903ad61\";"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file +{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAAA;;AACA;;AAEA,SAAS,aAAa,GAAG,EAAE;IACvB,MAAM,EACF,QAAO,EACP,OAAO,EAAE,YAAW,EAAE,CAAA,EACzB,GAAG,IAAI,WAAW;IACnB,MAAM,MAAM,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAC;IACnC,MAAM,QAAQ,GAAG,CAAC,EAAE;IACpB,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG;IACvB,YAAY,QAAQ,SAAS,GAAG,CAAC,aAAa,EAAE,QAAQ,oBAAoB,CAAC;AACjF;AAEe,SAAS,uBAAuB,MAAM,EAAE;IACnD,OAAO,CAAC,MAAQ;QACZ,aAAa;QACb,MAAM,UAAU,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,KAAK;QACjC,CAAA,GAAA,uBAAO,AAAD,EAAE,KAAK;QACb,OAAO;YACH,MAAM;YACN,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC;YACxB,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC;YACxB,QAAQ,QAAQ,MAAM,CAAC,IAAI,CAAC;YAC5B,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC;YACxB,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC;YACxB,OAAO,QAAQ,KAAK,CAAC,IAAI,CAAC;YAC1B,IAAI,UAAS;gBACT,OAAO,QAAQ,MAAM;YACzB;YACA,IAAI,UAAS;gBACT,OAAO,QAAQ,MAAM;YACzB;YACA,IAAI,UAAS;gBACT,OAAO,QAAQ,MAAM;YACzB;QACJ;IACJ;AACJ;kBAxBwB;AA0BxB,uBAAuB,GAAG;AAC1B,uBAAuB,OAAO;AAC9B,uBAAuB,KAAK;AAE5B,IAAI,OAAO,WAAW,aAClB,MAAM,CAAC,yBAAyB,GAAG;;;AC7CvC;;AAAA;AACA;;AAEe,MAAM;IACjB,YAAY,GAAG,EAAE,MAAM,CAAE;QACrB,MAAM,EAAE,YAAW,EAAE,SAAQ,EAAE,GAAG;QAElC,IAAI,CAAC,KAAK,GAAG,YAAY,KAAK;QAC9B,IAAI,CAAC,SAAS,GAAG,YAAY,SAAS;QACtC,IAAI,CAAC,QAAQ,GAAG,SAAS,QAAQ;QACjC,IAAI,CAAC,OAAO,GAAG,SAAS,OAAO;QAE/B,IAAI,CAAC,GAAG,GAAG;QACX,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI;QACjB,IAAI,CAAC,MAAM,CAAC;QAEZ,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,IAAI;YACA,IAAI,CAAC,MAAM,GAAG,IAAI;QACtB,EAAE,OAAO,OAAO;QACZ,EAAE;QACN;QAGJ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;QAErC,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,KAAK;QAC/B,IAAI,EAAE,CAAC,iBAAiB,IAAI,CAAC,KAAK;QAClC,IAAI,EAAE,CAAC,eAAe,IAAI,CAAC,IAAI;QAC/B,IAAI,EAAE,CAAC,iBAAiB,IAAI,CAAC,IAAI;QACjC,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,KAAK;QAC3B,IAAI,EAAE,CAAC,WAAW,IAAI,CAAC,OAAO;QAE9B,IAAI,CAAC,IAAI;IACb;IAEA,WAAW,SAAS;QAChB,OAAO;YACH,SAAS,EAAE;YACX,OAAO;YACP,QAAQ;gBAAC;gBAAM;aAAM;YACrB,SAAS;YACT,OAAO;YACP,MAAM;YACN,UAAU;YACV,QAAQ,IAAM,IAAI;YAClB,aAAa,IAAI;YACjB,WAAW,IAAI;YACf,qBAAqB,KAAK;YAC1B,UAAU;YACV,WAAW;YACX,UAAU;YACV,UAAU;YACV,OAAO;YACP,OAAO;YACP,YAAY,IAAM,IAAI;QAC1B;IACJ;IAEA,WAAW,SAAS;QAChB,OAAO;YACH,SAAS;YACT,OAAO;YACP,QAAQ;YACR,SAAS;YACT,OAAO;YACP,MAAM;YACN,UAAU;YACV,QAAQ;YACR,aAAa;YACb,WAAW;YACX,qBAAqB;YACrB,UAAU;YACV,WAAW;YACX,UAAU;YACV,UAAU;YACV,OAAO;YACP,OAAO;YACP,YAAY;QAChB;IACJ;IAEA,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK;IACrF;IAEA,IAAI,YAAY;QACZ,MAAM,EAAE,MAAK,EAAE,GAAG,IAAI,CAAC,KAAK;QAC5B,MAAM,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACnC,MAAM,EAAE,aAAY,EAAE,GAAG,IAAI,CAAC,OAAO;QAErC,IAAI,OAAO,UAAU,UACjB,OAAO,MAAM,OAAO,GAAG;QAG3B,IAAI,OAAO,UAAU,YAAY,MAAM,QAAQ,CAAC,MAAM;YAClD,MAAM,QAAQ,WAAW,SAAS;YAClC,OAAO,MAAM,eAAe,OAAO,GAAG;QAC1C,CAAC;QAED,OAAO,QAAQ,MAAM,CAAC,MAAM,CAAC,EAAE;IACnC;IAEA,IAAI,eAAe;QACf,MAAM,EAAE,MAAK,EAAE,GAAG,IAAI,CAAC,KAAK;QAC5B,MAAM,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACnC,MAAM,EAAE,aAAY,EAAE,GAAG,IAAI,CAAC,OAAO;QAErC,IAAI,OAAO,UAAU,UACjB,OAAO,MAAM,OAAO,GAAG;QAG3B,IAAI,OAAO,UAAU,YAAY,MAAM,QAAQ,CAAC,MAAM;YAClD,MAAM,QAAQ,WAAW,SAAS;YAClC,OAAO,MAAM,eAAe,OAAO,GAAG;QAC1C,CAAC;QAED,OAAO,QAAQ,MAAM,CAAC,MAAM,CAAC,EAAE;IACnC;IAEA,OAAO,KAAK,EAAE,QAAQ,EAAE;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAU,MAAM,MAAM,KAAK,OAAO,GAAG,CAAC;IACpE;IAEA,QAAQ,IAAI,EAAE;QACV,MAAM,OAAO,KAAK,qBAAqB;QACvC,OAAO,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,GAAG,KAAK,IAAI;IAC/C;IAEA,SAAS;QACL,MAAM,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG;QAChC,IAAI,WAAW,OAAO;QAEtB,MAAM,OAAO,SAAS,aAAa,CAAC;QAEpC,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC;;;;;;;;;;;;;QAatB,CAAC;QAED,OAAO;IACX;IAEA,WAAW;QACP,MAAM,EAAE,YAAW,EAAE,GAAG,IAAI,CAAC,GAAG;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAU;YAChC,OACI,MAAM,MAAM,KAAK,WAChB,MAAM,MAAM,KAAK,UAAU,cAAc,OAAO,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,cAAc;QAEnG;IACJ;IAEA,WAAW;QACP,MAAM,SAAS,EAAE;QACjB,MAAM,EAAE,YAAW,EAAE,GAAG,IAAI,CAAC,OAAO;QACpC,MAAM,aAAa,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;QAE5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAU;YAC3B,MAAM,MAAM,MAAM,IAAI,CAAC,SAAS;YAChC,MAAM,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI;YACxC,MAAM,SAAS,MAAM,IAAI,CAAC,YAAY;YACtC,MAAM,QAAQ,MAAM,IAAI,CAAC,WAAW;YACpC,MAAM,WAAW,OAAO;YACxB,MAAM,QAAQ,cAAc;YAC5B,MAAM,QAAQ,WAAW,MAAM,SAAS;YAExC,MAAM,OAAO,CAAC;YACd,KAAK,GAAG,GAAG;YACX,KAAK,IAAI,GAAG;YACZ,KAAK,MAAM,GAAG;YACd,KAAK,KAAK,GAAG;YACb,KAAK,KAAK,GAAG;YACb,KAAK,KAAK,GAAG;YACb,KAAK,QAAQ,GAAG;YAChB,KAAK,IAAI,GAAG,MAAM,SAAS;YAC3B,KAAK,IAAI,GAAG,MAAM,IAAI;YAEtB,OAAO,IAAI,CAAC;QAChB;QAEA,OAAO;IACX;IAEA,YAAY,QAAQ,EAAE;QAClB,MAAM,EAAE,MAAK,EAAE,GAAG,IAAI,CAAC,KAAK;QAC5B,MAAM,EAAE,aAAY,EAAE,GAAG,IAAI,CAAC,OAAO;QAErC,IAAI,OAAO,aAAa,UACpB,OAAO,MAAM,UAAU,IAAI;QAG/B,IAAI,OAAO,aAAa,YAAY,SAAS,QAAQ,CAAC,MAAM;YACxD,MAAM,QAAQ,WAAW,YAAY;YACrC,OAAO,MAAM,eAAe,OAAO,IAAI;QAC3C,CAAC;QAED,OAAO,QAAQ,MAAM,CAAC,QAAQ;IAClC;IAEA,YAAY,UAAU,CAAC,CAAC,EAAE;QACtB,OAAO,IAAI,QAAQ,CAAC,UAAY;YAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBACjE,QAAQ,EAAE,GAAG,KAAK,GAAG;gBACrB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,QAAU;oBAC/B,MAAM,EAAE,KAAI,EAAE,GAAG;oBACjB,IAAI,KAAK,EAAE,KAAK,QAAQ,EAAE,EACtB,QAAQ;gBAEhB;YACJ,OAAO;gBACH,MAAM,MAAM,CAAA,GAAA,2BAAW,AAAD,EAAE;gBACxB,QAAQ;oBAAE;gBAAI;YAClB,CAAC;QACL;IACJ;IAEA,MAAM,OAAO;QACT,IAAI;YACA,IAAI,SAAS,EAAE;YACf,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,YAC/B,SAAS,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO;iBAC/B,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,YAC3C,SAAS,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO;iBAC/B,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,UACtC,SAAS,MAAM,CAAA,GAAA,mCAAyB,AAAD,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;iBAE5D,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO;YAGhC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,OAAO,CAAC,SAAS;YAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC;YAE/C,IAAI,CAAC,KAAK,GAAG,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG;YAC1B,OAAO,OAAO,CAAC,CAAC,QAAU,IAAI,CAAC,IAAI,CAAC;QACxC,EAAE,OAAO,OAAO;YACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC;YAC9C,MAAM,MAAM;QAChB;QAEA,OAAO,IAAI;IACf;IAEA,OAAO,MAAM,EAAE;QACX,MAAM,EAAE,MAAK,EAAE,GAAG,IAAI,CAAC,KAAK;QAE5B,IAAI,CAAC,MAAM,GAAG,OAAO,MAAM,CAAC,CAAC,GAAG,QAAQ,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,MAAM;QAE1C,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG;QAChD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG;QACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG;QAClE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG;QACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG;QACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG;QAEtD,IAAI,OAAO,QAAQ,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC5D,IAAI,CAAC,KAAK;QACd,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,MAAM;QAE1D,OAAO,IAAI;IACf;IAEA,SAAS,KAAK,EAAE;QACZ,MAAM,MAAM,GAAG;QACf,IAAI,MAAM,IAAI,EAAE;YACZ,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI;YAC1B,MAAM,IAAI,GAAG,IAAI;QACrB,CAAC;IACL;IAEA,WAAW;QACP,MAAM,EAAE,YAAW,EAAE,GAAG,IAAI,CAAC,OAAO;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAU;YAC3B,MAAM,MAAM,GAAG;YACf,MAAM,cAAc,GAAG,KAAK,GAAG;YAC/B,OAAQ,MAAM,IAAI;gBACd,KAAK;oBAAG;wBACJ,MAAM,aAAa,cAAc,MAAM,IAAI,CAAC,WAAW;wBACvD,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,WAAW,EAAE,CAAC,WAAW,GAAG,CAAC;wBAC3D,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,UAAU,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC;wBACvE,KAAM;oBACV;gBACA;oBACI,KAAM;YACd;QACJ;QAEA,OAAO,IAAI;IACf;IAEA,UAAU;QACN,MAAM,EAAE,YAAW,EAAE,GAAG,IAAI,CAAC,OAAO;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAU;YAC3B,MAAM,MAAM,GAAG;YACf,OAAQ,MAAM,IAAI;gBACd,KAAK;oBAAG;wBACJ,MAAM,aAAa,cAAe,CAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAA;wBACtF,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,WAAW,EAAE,CAAC,WAAW,GAAG,CAAC;wBAC3D,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;wBAC9B,KAAM;oBACV;gBACA;oBACI,KAAM;YACd;QACJ;QAEA,OAAO,IAAI;IACf;IAEA,QAAQ;QACJ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAU,IAAI,CAAC,QAAQ,CAAC;QAC5C,OAAO,IAAI;IACf;IAEA,SAAS;QACL,IAAI,CAAC,KAAK,GAAG,OAAO,qBAAqB,CAAC,UAAY;YAClD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAU;oBAC3B,MAAM,WAAW,AAAC,CAAA,KAAK,GAAG,KAAK,MAAM,cAAc,AAAD,IAAK;oBACvD,MAAM,SAAS,IAAI;oBACnB,MAAM,cAAc,GAAG,KAAK,GAAG;oBAC/B,IAAI,MAAM,SAAS,IAAI,GACnB,IAAI,CAAC,QAAQ,CAAC;gBAEtB;gBAEA,MAAM,SAAS,IAAI,CAAC,QAAQ;gBAC5B,MAAM,EAAE,YAAW,EAAE,aAAY,EAAE,GAAG,IAAI,CAAC,OAAO;gBAClD,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,MAAM,EAAE,QAAS;oBAChD,MAAM,QAAQ,MAAM,CAAC,MAAM;oBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM;oBACxB,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI;oBACjC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,IAAI;oBAEpC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC;oBAC1C,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;oBAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,KAAK;oBACpC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,CAAC,GAAG,IAAI;oBAC1E,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,MAAM,GAAG,qBAAqB,IAAI;oBAC3E,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;oBAE9B,MAAM,cAAc,GAAG,KAAK,GAAG;oBAC/B,MAAM,SAAS,GACX,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,GAClD,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,IAChD,IAAI,CAAC,MAAM,CAAC,KAAK;oBAE3B,MAAM,SAAS;wBACX,MAAM,MAAM,IAAI;wBAChB,QAAQ,MAAM,IAAI,CAAC,YAAY;wBAC/B,OAAO,AAAC,CAAA,cAAc,MAAM,IAAI,CAAC,WAAW,AAAD,IAAK,MAAM,SAAS;oBACnE;oBAEA,MAAM,EAAE,IAAG,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;wBACnC;wBACA,OAAO,IAAI,CAAC,QAAQ;wBACpB,aAAa,IAAI,CAAC,MAAM,CAAC,WAAW;wBACpC,aAAa;wBACb,cAAc;wBACd,cAAc,IAAI,CAAC,YAAY;wBAC/B,WAAW,IAAI,CAAC,SAAS;oBAC7B;oBAEA,IAAI,MAAM,IAAI;wBACV,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,WAAW;4BACnC,MAAM,MAAM,GAAG;4BACf,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;4BAE9B,OAAQ,MAAM,IAAI;gCACd,KAAK;oCAAG;wCACJ,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;wCACjC,MAAM,aAAa,cAAc,MAAM,IAAI,CAAC,WAAW;wCACvD,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,WAAW,EAAE,CAAC,WAAW,GAAG,CAAC;wCAC3D,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,UAAU,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC;wCACvE,KAAM;oCACV;gCACA,KAAK;oCACD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG;oCACxB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;oCACjC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;oCAChE,KAAM;gCACV;oCACI,KAAM;4BACd;wBACJ,OAAO;4BACH,MAAM,MAAM,GAAG;4BACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI;4BAC1B,MAAM,IAAI,GAAG,IAAI;wBACrB,CAAC;qBACJ;gBACL;YACJ,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,EACZ,IAAI,CAAC,MAAM;QAEnB;QACA,OAAO,IAAI;IACf;IAEA,OAAO;QACH,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,IAAI,CAAC,OAAO;QACZ,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK;QACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACd,OAAO,IAAI;IACf;IAEA,QAAQ;QACJ,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACd,OAAO,IAAI;IACf;IAEA,OAAO;QACH,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACd,OAAO,IAAI;IACf;IAEA,OAAO;QACH,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,IAAI,CAAC,IAAI;QACT,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAS,IAAI,CAAC,QAAQ,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACd,OAAO,IAAI;IACf;IAEA,KAAK,KAAK,EAAE;QACR,IAAI,CAAC,SAAS,CAAC,OAAO;YAClB,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,QAAQ;QACZ;QAEA,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,IAAI;QAE3C,IAAI,MAAM,IAAI,EACV,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,GAAG;aAE7C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG;QAGxC,IAAI,MAAM,IAAI,KAAK,WACf,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;QAGjC,IAAI,MAAM,KAAK,KAAK,WAChB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;QAGnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACZ,GAAG,KAAK;YACR,QAAQ;YACR,MAAM,IAAI;YACV,WAAW;YACX,gBAAgB;QACpB;QAEA,OAAO,IAAI;IACf;IAEA,UAAU;QACN,IAAI,CAAC,IAAI;QACT,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;QAC/D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,KAAK;QACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,KAAK;QACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,IAAI;QACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI;QACvC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,KAAK;QACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,KAAK;QACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,OAAO;QACpC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IAClB;AACJ;kBA5fqB;;;ACHrB;;AAAA,6CAAgB;AAchB,+DAAgB;AAiChB,+DAAgB;AA/CT,SAAS,QAAQ,GAAG,EAAE;IACzB,OAAQ;QACJ,KAAK;QACL,KAAK;QACL,KAAK;YACD,OAAO;QACX,KAAK;QACL,KAAK;YACD,OAAO;QACX;YACI,OAAO;IACf;AACJ;AAEO,SAAS,0BAA0B,SAAS,EAAE;IACjD,IAAI,OAAO,cAAc,UAAU,OAAO,EAAE;IAC5C,MAAM,UAAU,UAAU,QAAQ,CAAC;IACnC,OAAO,MAAM,IAAI,CAAC,SACb,GAAG,CAAC,CAAC,QAAU;QACZ,MAAM,OAAO,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,IAAI,KAAK,MAAM,IAAI,GAAG;YAClB,MAAM,OAAO,MAAM,MAAM,CAAC,IAAI,CACzB,IAAI,GACJ,UAAU,CAAC,UAAU,KACrB,UAAU,CAAC,UAAU,KACrB,UAAU,CAAC,QAAQ,KACnB,UAAU,CAAC,QAAQ,KACnB,UAAU,CAAC,SAAS;YAEzB,OAAO;gBACH;gBACA,MAAM,OAAO,IAAI,CAAC,EAAE;gBACpB,MAAM,QAAQ,OAAO,IAAI,CAAC,EAAE;gBAC5B,UAAU,OAAO,IAAI,CAAC,EAAE;gBACxB,OAAO,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC;gBACzC,WAAW,OAAO,IAAI,CAAC,EAAE;gBACzB,MAAM,OAAO,IAAI,CAAC,EAAE;gBACpB,QAAQ,IAAI,CAAC,EAAE;gBACf,OAAO,OAAO,IAAI,CAAC,EAAE;YACzB;QACJ,OACI,OAAO,IAAI;IAEnB,GACC,MAAM,CAAC;AAChB;AAEO,SAAS,0BAA0B,GAAG,EAAE;IAC3C,OAAO,MAAM,KACR,IAAI,CAAC,CAAC,MAAQ,IAAI,IAAI,IACtB,IAAI,CAAC,CAAC,YAAc,0BAA0B;AACvD;;;ACnDA,QAAQ,cAAc,GAAG,SAAU,CAAC,EAAE;IACpC,OAAO,KAAK,EAAE,UAAU,GAAG,IAAI;QAAC,SAAS;IAAC,CAAC;AAC7C;AAEA,QAAQ,iBAAiB,GAAG,SAAU,CAAC,EAAE;IACvC,OAAO,cAAc,CAAC,GAAG,cAAc;QAAC,OAAO,IAAI;IAAA;AACrD;AAEA,QAAQ,SAAS,GAAG,SAAU,MAAM,EAAE,IAAI,EAAE;IAC1C,OAAO,IAAI,CAAC,QAAQ,OAAO,CAAC,SAAU,GAAG,EAAE;QACzC,IAAI,QAAQ,aAAa,QAAQ,gBAAgB,KAAK,cAAc,CAAC,MACnE;QAGF,OAAO,cAAc,CAAC,MAAM,KAAK;YAC/B,YAAY,IAAI;YAChB,KAAK,WAAY;gBACf,OAAO,MAAM,CAAC,IAAI;YACpB;QACF;IACF;IAEA,OAAO;AACT;AAEA,QAAQ,MAAM,GAAG,SAAU,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;IAC9C,OAAO,cAAc,CAAC,MAAM,UAAU;QACpC,YAAY,IAAI;QAChB,KAAK;IACP;AACF;;;AC9BA;;AAAe,SAAS,YAAY,EAChC,OAAM,EACN,MAAK,EACL,YAAW,EACX,aAAY,EACZ,aAAY,EACZ,UAAS,EACT,YAAW,EACd,EAAE;IACC,MAAM,SAAS,MACV,MAAM,CAAC,CAAC,OAAS,KAAK,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,GAAG,IAAI,eAAe,cACzE,IAAI,CAAC,CAAC,MAAM,OAAS,KAAK,GAAG,GAAG,KAAK,GAAG;IAE7C,IAAI,OAAO,MAAM,KAAK,GAClB,OAAO;IAGX,OAAO,OAAO,CAAC;QACX,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,UAAU;IACd;IAEA,OAAO,IAAI,CAAC;QACR,KAAK,eAAe;QACpB,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,UAAU;IACd;IAEA,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,MAAM,EAAE,SAAS,EAAG;QACnD,MAAM,OAAO,MAAM,CAAC,MAAM;QAC1B,MAAM,OAAO,MAAM,CAAC,QAAQ,EAAE;QAC9B,MAAM,aAAa,KAAK,GAAG,GAAG,KAAK,MAAM;QACzC,MAAM,OAAO,KAAK,GAAG,GAAG;QACxB,IAAI,QAAQ,OAAO,MAAM,EACrB,OAAO;IAEf;IAEA,MAAM,SAAS,EAAE;IACjB,IAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,MAAM,GAAG,GAAG,SAAS,EAAG;QACvD,MAAM,OAAO,MAAM,CAAC,MAAM;QAC1B,IAAI,OAAO,MAAM,EAAE;YACf,MAAM,OAAO,MAAM,CAAC,OAAO,MAAM,GAAG,EAAE;YACtC,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,KAAK,GAAG,EACxB,KAAK,IAAI,CAAC;iBAEV,OAAO,IAAI,CAAC;gBAAC;aAAK;QAE1B,OACI,OAAO,IAAI,CAAC;YAAC;SAAK;IAE1B;IAEA,IAAI,aACA,OAAQ,OAAO,IAAI;QACf,KAAK;YAAG;gBACJ,MAAM,SAAS,OAAO,IAAI,CAAC,CAAC,OAAS;oBACjC,OAAO,KAAK,KAAK,CAAC,CAAC,QAAU;wBACzB,IAAI,cAAc,MAAM,QAAQ,EAAE,OAAO,KAAK;wBAC9C,IAAI,OAAO,KAAK,GAAG,MAAM,KAAK,EAAE,OAAO,IAAI;wBAC3C,MAAM,cAAc,MAAM,KAAK,GAAI,CAAA,OAAO,KAAK,GAAG,MAAM,KAAK,AAAD;wBAC5D,IAAI,cAAc,MAAM,IAAI,EAAE,OAAO,IAAI;wBACzC,OAAO,KAAK;oBAChB;gBACJ;gBAEA,OAAO,UAAU,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,SAAS;YAC1D;QACA,KAAK;YACD,OAAO;QACX;YACI,KAAM;IACd;SACG;QACH,OAAQ,OAAO,IAAI;YACf,KAAK;gBACD,OAAO,IAAI,CAAC,CAAC,MAAM,OAAS;oBACxB,MAAM,eAAe,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,OAAS,KAAK,KAAK;oBAC9D,MAAM,eAAe,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,OAAS,KAAK,KAAK;oBAC9D,OAAO,eAAe,KAAK,MAAM,GAAG,eAAe,KAAK,MAAM;gBAClE;gBACA,KAAM;YACV,KAAK;gBACD,OAAO,IAAI,CAAC,CAAC,MAAM,OAAS;oBACxB,MAAM,eAAe,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,OAAS,KAAK,KAAK;oBAC9D,MAAM,eAAe,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,OAAS,KAAK,KAAK;oBAC9D,OAAO,eAAe,KAAK,MAAM,GAAG,eAAe,KAAK,MAAM;gBAClE;gBACA,KAAM;YACV;gBACI,KAAM;QACd;QAEA,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG;IAC3B,CAAC;AACL;kBAxGwB;;;ACAxB,OAAO,OAAO,GAAG;;;ACAjB;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEe,SAAS,QAAQ,GAAG,EAAE,OAAO,EAAE;IAC1C,MAAM,EAAE,OAAM,EAAE,GAAG;IACnB,MAAM,EACF,UAAU,EAAE,gBAAe,EAAE,QAAO,EAAE,CAAA,EACtC,aAAa,EACT,OAAO,EAAE,YAAW,EAAE,SAAQ,EAAE,OAAM,EAAE,SAAQ,EAAE,QAAO,EAAE,MAAK,EAAE,aAAY,EAAE,CAAA,EACnF,CAAA,EACJ,GAAG;IAEJ,SAAS,QAAQ,GAAG,EAAE,GAAG,EAAE;QACvB,MAAM,OAAO,SAAS,aAAa,CAAC;QACpC,OAAO,MAAM;QACb,SAAS,MAAM;QACf,SAAS,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;QAChC,OAAO;IACX;IAEA,SAAS,iBAAiB,WAAW;IACrC,MAAM,WAAW,QAAQ,CAAA,GAAA,0BAAO,AAAD,GAAG;IAClC,MAAM,YAAY,QAAQ,CAAA,GAAA,2BAAQ,AAAD,GAAG;IACpC,MAAM,eAAe,QAAQ,CAAA,GAAA,8BAAW,AAAD,GAAG;IAC1C,MAAM,cAAc,QAAQ,CAAA,GAAA,6BAAU,AAAD,GAAG;IAExC,SAAS,aAAa;QAClB,MAAM,SAAS;YACX;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACH,CAAC,GAAG,CAAC,CAAC,OAAS;YACZ,MAAM,YAAY,OAAO,KAAK,KAAK,OAAO,iBAAiB,EAAE;YAC7D,OAAO,CAAC,yCAAyC,EAAE,UAAU,cAAc,EAAE,KAAK,0BAA0B,EAAE,KAAK,QAAQ,CAAC;QAChI;QAEA,MAAM,WAAW,OACb,iBACA,CAAC;+DACkD,EAAE,OAAO,QAAQ,GAAG,CAAC,EAAE,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;;;;;;;;;;;;oCAY/E,EAAE,OAAO,IAAI,CAAC,IAAI;;;;;gEAKU,EAAE,OAAO,SAAS,CAAC;;;;YAIvE,CAAC;QAGL,MAAM,SAAS,MAAM,sBAAsB;QAC3C,MAAM,SAAS,MAAM,sBAAsB;QAC3C,MAAM,QAAQ,MAAM,qBAAqB;QACzC,MAAM,SAAS,MAAM,kCAAkC;QACvD,MAAM,SAAS,MAAM,kCAAkC;QACvD,MAAM,UAAU,MAAM,mCAAmC;QACzD,MAAM,SAAS,OAAO,KAAK,IAAI,OAAO,SAAS;QAE/C,IAAI,IAAI,MAAM,CAAC,QAAQ,EACnB,SAAS,QAAQ;QAGrB,IAAI,OAAO,KAAK,EACZ,SAAS,UAAU,CAAC,kBAAkB,EAAE,OAAO,KAAK,CAAC,CAAC;QAG1D,IAAI,QAAQ,IAAI;QAChB,IAAI,OAAO,OAAO,IAAI;QACtB,IAAI,QAAQ,OAAO,KAAK;QACxB,OAAO,QAAQ;QAEf,SAAS,UAAU,IAAI,EAAE;YACrB,IAAI,QAAQ,GAAG;gBACX,QAAQ,IAAI;gBACZ,MAAM,SAAS,GAAG;gBAClB,YAAY,OAAO;YACvB,OAAO;gBACH,MAAM,SAAS,GAAG;gBAClB,QAAQ,WAAW,IAAM,UAAU,OAAO,IAAI;YAClD,CAAC;QACL;QAEA,SAAS,SAAS;YACd,MAAM,QAAQ;gBACV;gBACA;gBACA,QAAQ,IAAI;gBACZ,MAAM,OAAO,KAAK,CAAC,IAAI;YAC3B;YAEA,IAAI,UAAU,IAAI,IAAI,OAAO,UAAU,CAAC,QAAQ;gBAC5C,OAAO,KAAK,GAAG;gBACf,QAAQ,IAAI,CAAC;gBACb,SAAS,OAAO;gBAChB,UAAU,OAAO,QAAQ;gBACzB,IAAI,IAAI,CAAC,+BAA+B;YAC5C,CAAC;QACL;QAEA,SAAS,WAAW;YAChB,IAAI,gBAAgB,WAAW,GAAG,OAAO,QAAQ,EAAE;gBAC/C,OAAO,QAAQ;gBACf,SAAS,QAAQ,WAAW;gBAC5B,SAAS,UAAU;gBAEnB,IAAI,CAAC,OAAO,KAAK,EACb,SAAS,SAAS,gBAAgB;YAE1C,OAAO;gBACH,OAAO,iBAAiB;gBACxB,SAAS,QAAQ,WAAW;gBAC5B,YAAY,UAAU;gBAEtB,IAAI,CAAC,OAAO,KAAK,EACb,SAAS,SAAS,gBAAgB,IAAI;YAE9C,CAAC;QACL;QAEA,IAAI,KAAK,CAAC,OAAO,SAAS;QAE1B,IAAI,KAAK,CAAC,QAAQ,YAAY,CAAC,QAAU;YACrC,IAAI,MAAM,GAAG,KAAK,SAAS;gBACvB,MAAM,cAAc;gBACpB;YACJ,CAAC;QACL;QAEA,IAAI,KAAK,CAAC,QAAQ,SAAS,CAAC,QAAU;YAClC,MAAM,EAAE,QAAO,EAAE,GAAG,MAAM,MAAM;YAChC,IAAI,QAAQ,IAAI,EAAE;gBACd,OAAO,OAAO,QAAQ,IAAI;gBAC1B,aAAa,MAAM,MAAM,EAAE;YAC/B,CAAC;QACL;QAEA,IAAI,KAAK,CAAC,SAAS,SAAS,CAAC,QAAU;YACnC,MAAM,EAAE,QAAO,EAAE,GAAG,MAAM,MAAM;YAChC,IAAI,QAAQ,KAAK,EAAE;gBACf,QAAQ,QAAQ,KAAK;gBACrB,aAAa,MAAM,MAAM,EAAE;YAC/B,CAAC;QACL;QAEA;QACA,IAAI,EAAE,CAAC,UAAU,IAAM;YACnB,IAAI,CAAC,IAAI,OAAO,EACZ;QAER;QAEA,IAAI,EAAE,CAAC,WAAW,IAAM;YACpB,IAAI,OAAO,KAAK,IAAI,SAAS,aAAa,KAAK,OAAO,KAAK,EACvD,OAAO,KAAK,CAAC,WAAW,CAAC;QAEjC;IACJ;IAEA,SAAS,aAAa;QAClB,IAAI,QAAQ,CAAC,GAAG,CAAC;YACb,UAAU;YACV,MAAM;YACN,OAAO,WAAY;gBACf,IAAI,QAAQ,MAAM,EAAE;oBAChB,QAAQ,IAAI;oBACZ,IAAI,MAAM,CAAC,IAAI,GAAG;oBAClB,SAAS,UAAU,WAAW,IAAI;oBAClC,SAAS,WAAW,WAAW;gBACnC,OAAO;oBACH,QAAQ,IAAI;oBACZ,IAAI,MAAM,CAAC,IAAI,GAAG;oBAClB,SAAS,UAAU,WAAW;oBAC9B,SAAS,WAAW,WAAW,IAAI;gBACvC,CAAC;YACL;YACA,SAAQ,IAAI,EAAE;gBACV,OAAO,MAAM;gBACb,OAAO,MAAM;gBACb,QAAQ,MAAM;gBACd,SAAS,WAAW,WAAW;YACnC;QACJ;IACJ;IAEA,SAAS,aAAa;QAClB,IAAI,OAAO,CAAC,GAAG,CAAC;YACZ,MAAM;YACN,MAAM;YACN,SAAS;YACT,MAAM;YACN,UAAU;gBACN;oBACI,OAAO;oBACP,MAAM;oBACN,MAAM;oBACN,SAAS;oBACT,UAAU;wBACN;4BACI,MAAM;4BACN,MAAM;wBACV;wBACA;4BACI,MAAM;4BACN,MAAM;wBACV;wBACA;4BACI,SAAS,IAAI;4BACb,MAAM;4BACN,MAAM;wBACV;wBACA;4BACI,MAAM;4BACN,MAAM;wBACV;wBACA;4BACI,MAAM;4BACN,MAAM;wBACV;qBACH;oBACD,UAAU,SAAU,IAAI,EAAE;wBACtB,QAAQ,MAAM,CAAC;4BACX,OAAO,KAAK,IAAI;wBACpB;wBACA,OAAO,KAAK,IAAI;oBACpB;gBACJ;gBACA;oBACI,OAAO;oBACP,MAAM;oBACN,MAAM;oBACN,SAAS;oBACT,UAAU;wBACN;4BACI,MAAM;4BACN,UAAU;wBACd;wBACA;4BACI,MAAM;4BACN,UAAU;wBACd;wBACA;4BACI,SAAS,IAAI;4BACb,MAAM;4BACN,UAAU;wBACd;wBACA;4BACI,MAAM;4BACN,UAAU;wBACd;wBACA;4BACI,MAAM;4BACN,UAAU;wBACd;qBACH;oBACD,UAAU,SAAU,IAAI,EAAE;wBACtB,QAAQ,MAAM,CAAC;4BACX,UAAU,KAAK,QAAQ;wBAC3B;wBACA,OAAO,KAAK,IAAI;oBACpB;gBACJ;gBACA;oBACI,OAAO;oBACP,MAAM;oBACN,MAAM;oBACN,SAAS;oBACT,UAAU;wBACN;4BACI,SAAS,IAAI;4BACb,SAAS;4BACT,MAAM;wBACV;wBACA;4BACI,SAAS;4BACT,MAAM;wBACV;wBACA;4BACI,SAAS;4BACT,MAAM;wBACV;wBACA;4BACI,SAAS;4BACT,MAAM;wBACV;wBACA;4BACI,SAAS;4BACT,MAAM;wBACV;qBACH;oBACD,UAAU,SAAU,IAAI,EAAE;wBACtB,QAAQ,MAAM,CAAC;4BACX,SAAS,KAAK,OAAO;wBACzB;wBACA,OAAO,KAAK,IAAI;oBACpB;gBACJ;gBACA;oBACI,OAAO;oBACP,MAAM;oBACN,MAAM;oBACN,SAAS;oBACT,UAAU;wBACN;4BACI,MAAM;4BACN,QAAQ;gCAAC;gCAAI;6BAAM;wBACvB;wBACA;4BACI,MAAM;4BACN,QAAQ;gCAAC;gCAAI;6BAAM;wBACvB;wBACA;4BACI,SAAS,IAAI;4BACb,MAAM;4BACN,QAAQ;gCAAC;gCAAI;6BAAM;wBACvB;wBACA;4BACI,MAAM;4BACN,QAAQ;gCAAC;gCAAI;6BAAG;wBACpB;qBACH;oBACD,UAAU,SAAU,IAAI,EAAE;wBACtB,QAAQ,MAAM,CAAC;4BACX,QAAQ,KAAK,MAAM;wBACvB;wBACA,OAAO,KAAK,IAAI;oBACpB;gBACJ;gBACA;oBACI,MAAM;oBACN,MAAM;oBACN,SAAS,OAAO,WAAW,GAAG,OAAO,IAAI;oBACzC,QAAQ,OAAO,WAAW;oBAC1B,UAAS,IAAI,EAAE;wBACX,QAAQ,MAAM,CAAC;4BACX,aAAa,CAAC,KAAK,MAAM;wBAC7B;wBACA,KAAK,OAAO,GAAG,KAAK,MAAM,GAAG,OAAO,IAAI;wBACxC,OAAO,CAAC,KAAK,MAAM;oBACvB;gBACJ;gBACA;oBACI,MAAM;oBACN,MAAM;oBACN,SAAS,OAAO,mBAAmB,GAAG,OAAO,IAAI;oBACjD,QAAQ,OAAO,mBAAmB;oBAClC,UAAS,IAAI,EAAE;wBACX,QAAQ,MAAM,CAAC;4BACX,qBAAqB,CAAC,KAAK,MAAM;wBACrC;wBACA,KAAK,OAAO,GAAG,KAAK,MAAM,GAAG,OAAO,IAAI;wBACxC,OAAO,CAAC,KAAK,MAAM;oBACvB;gBACJ;aACH;QACL;IACJ;IAEA;IACA;IACA;AACJ;kBA7XwB;AA+XxB,IAAI,OAAO,aAAa,aACpB;IAAA,IAAI,CAAC,SAAS,cAAc,CAAC,6BAA6B;QACtD,MAAM,SAAS,SAAS,aAAa,CAAC;QACtC,OAAO,EAAE,GAAG;QACZ,OAAO,WAAW,GAAG,CAAA,GAAA,yBAAK,AAAD;QACzB,SAAS,IAAI,CAAC,WAAW,CAAC;IAC9B,CAAC;AAAD,CACH;;;AC5YD,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG;;;ACAjB,OAAO,OAAO,GAAG","sources":["packages/artplayer-plugin-danmuku/src/index.js","packages/artplayer-plugin-danmuku/src/danmuku.js","packages/artplayer-plugin-danmuku/src/bilibili.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","packages/artplayer-plugin-danmuku/src/getDanmuTop.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b61db27680d5896e.js","packages/artplayer-plugin-danmuku/src/setting.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e633bd0642c0f6d8.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6b6314fb95d0f9c4.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-63e2f0a59f61ce30.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8c344af6de265517.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-5db94c18a44eaa0a.js"],"sourcesContent":["import Danmuku from './danmuku';\nimport setting from './setting';\n\nfunction checkVersion(art) {\n const {\n version,\n utils: { errorHandle },\n } = art.constructor;\n const arr = version.split('.').map(Number);\n const major = arr[0];\n const minor = arr[1] / 100;\n errorHandle(major + minor >= 5, `Artplayer.js@${version} 不兼容该弹幕库,请更新到 5 版本以上`);\n}\n\nexport default function artplayerPluginDanmuku(option) {\n return (art) => {\n checkVersion(art);\n const danmuku = new Danmuku(art, option);\n setting(art, danmuku);\n return {\n name: 'artplayerPluginDanmuku',\n emit: danmuku.emit.bind(danmuku),\n load: danmuku.load.bind(danmuku),\n config: danmuku.config.bind(danmuku),\n hide: danmuku.hide.bind(danmuku),\n show: danmuku.show.bind(danmuku),\n reset: danmuku.reset.bind(danmuku),\n get option() {\n return danmuku.option;\n },\n get isHide() {\n return danmuku.isHide;\n },\n get isStop() {\n return danmuku.isStop;\n },\n };\n };\n}\n\nartplayerPluginDanmuku.env = process.env.NODE_ENV;\nartplayerPluginDanmuku.version = process.env.APP_VER;\nartplayerPluginDanmuku.build = process.env.BUILD_DATE;\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginDanmuku'] = artplayerPluginDanmuku;\n}\n","import { bilibiliDanmuParseFromUrl } from './bilibili';\nimport getDanmuTop from './getDanmuTop';\n\nexport default class Danmuku {\n constructor(art, option) {\n const { constructor, template } = art;\n\n this.utils = constructor.utils;\n this.validator = constructor.validator;\n this.$danmuku = template.$danmuku;\n this.$player = template.$player;\n\n this.art = art;\n this.queue = [];\n this.option = {};\n this.$refs = [];\n this.isStop = false;\n this.isHide = false;\n this.timer = null;\n this.config(option);\n\n if (this.option.useWorker) {\n try {\n this.worker = new Worker(new URL('data-url:./worker.js', import.meta.url));\n } catch (error) {\n //\n }\n }\n\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n this.reset = this.reset.bind(this);\n this.destroy = this.destroy.bind(this);\n\n art.on('video:play', this.start);\n art.on('video:playing', this.start);\n art.on('video:pause', this.stop);\n art.on('video:waiting', this.stop);\n art.on('resize', this.reset);\n art.on('destroy', this.destroy);\n\n this.load();\n }\n\n static get option() {\n return {\n danmuku: [],\n speed: 5,\n margin: ['2%', '25%'],\n opacity: 1,\n color: '#FFFFFF',\n mode: 0,\n fontSize: 25,\n filter: () => true,\n antiOverlap: true,\n useWorker: true,\n synchronousPlayback: false,\n lockTime: 5,\n maxLength: 100,\n minWidth: 200,\n maxWidth: 400,\n mount: undefined,\n theme: 'dark',\n beforeEmit: () => true,\n };\n }\n\n static get scheme() {\n return {\n danmuku: 'array|function|string',\n speed: 'number',\n margin: 'array',\n opacity: 'number',\n color: 'string',\n mode: 'number',\n fontSize: 'number|string',\n filter: 'function',\n antiOverlap: 'boolean',\n useWorker: 'boolean',\n synchronousPlayback: 'boolean',\n lockTime: 'number',\n maxLength: 'number',\n minWidth: 'number',\n maxWidth: 'number',\n mount: 'undefined|htmldivelement',\n theme: 'string',\n beforeEmit: 'function',\n };\n }\n\n get isRotate() {\n return this.art.plugins.autoOrientation && this.art.plugins.autoOrientation.state;\n }\n\n get marginTop() {\n const { clamp } = this.utils;\n const value = this.option.margin[0];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, clientHeight);\n }\n\n return Danmuku.option.margin[0];\n }\n\n get marginBottom() {\n const { clamp } = this.utils;\n const value = this.option.margin[1];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, clientHeight);\n }\n\n return Danmuku.option.margin[1];\n }\n\n filter(state, callback) {\n return this.queue.filter((danmu) => danmu.$state === state).map(callback);\n }\n\n getLeft($ref) {\n const rect = $ref.getBoundingClientRect();\n return this.isRotate ? rect.top : rect.left;\n }\n\n getRef() {\n const $refCache = this.$refs.pop();\n if ($refCache) return $refCache;\n\n const $ref = document.createElement('div');\n\n $ref.style.cssText = `\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, \"Microsoft JhengHei\", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n `;\n\n return $ref;\n }\n\n getReady() {\n const { currentTime } = this.art;\n return this.queue.filter((danmu) => {\n return (\n danmu.$state === 'ready' ||\n (danmu.$state === 'wait' && currentTime + 0.1 >= danmu.time && danmu.time >= currentTime - 0.1)\n );\n });\n }\n\n getEmits() {\n const result = [];\n const { clientWidth } = this.$player;\n const clientLeft = this.getLeft(this.$player);\n\n this.filter('emit', (danmu) => {\n const top = danmu.$ref.offsetTop;\n const left = this.getLeft(danmu.$ref) - clientLeft;\n const height = danmu.$ref.clientHeight;\n const width = danmu.$ref.clientWidth;\n const distance = left + width;\n const right = clientWidth - distance;\n const speed = distance / danmu.$restTime;\n\n const emit = {};\n emit.top = top;\n emit.left = left;\n emit.height = height;\n emit.width = width;\n emit.right = right;\n emit.speed = speed;\n emit.distance = distance;\n emit.time = danmu.$restTime;\n emit.mode = danmu.mode;\n\n result.push(emit);\n });\n\n return result;\n }\n\n getFontSize(fontSize) {\n const { clamp } = this.utils;\n const { clientHeight } = this.$player;\n\n if (typeof fontSize === 'number') {\n return clamp(fontSize, 12, clientHeight);\n }\n\n if (typeof fontSize === 'string' && fontSize.endsWith('%')) {\n const ratio = parseFloat(fontSize) / 100;\n return clamp(clientHeight * ratio, 12, clientHeight);\n }\n\n return Danmuku.option.fontSize;\n }\n\n postMessage(message = {}) {\n return new Promise((resolve) => {\n if (this.option.useWorker && this.worker && this.worker.postMessage) {\n message.id = Date.now();\n this.worker.postMessage(message);\n this.worker.onmessage = (event) => {\n const { data } = event;\n if (data.id === message.id) {\n resolve(data);\n }\n };\n } else {\n const top = getDanmuTop(message);\n resolve({ top });\n }\n });\n }\n\n async load() {\n try {\n let danmus = [];\n if (typeof this.option.danmuku === 'function') {\n danmus = await this.option.danmuku();\n } else if (typeof this.option.danmuku.then === 'function') {\n danmus = await this.option.danmuku;\n } else if (typeof this.option.danmuku === 'string') {\n danmus = await bilibiliDanmuParseFromUrl(this.option.danmuku);\n } else {\n danmus = this.option.danmuku;\n }\n\n this.utils.errorHandle(Array.isArray(danmus), 'Danmuku need return an array as result');\n this.art.emit('artplayerPluginDanmuku:loaded', danmus);\n\n this.queue = [];\n this.$danmuku.innerText = '';\n danmus.forEach((danmu) => this.emit(danmu));\n } catch (error) {\n this.art.emit('artplayerPluginDanmuku:error', error);\n throw error;\n }\n\n return this;\n }\n\n config(option) {\n const { clamp } = this.utils;\n\n this.option = Object.assign({}, Danmuku.option, this.option, option);\n this.validator(this.option, Danmuku.scheme);\n\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n this.option.lockTime = clamp(Math.floor(this.option.lockTime), 0, 60);\n this.option.maxLength = clamp(this.option.maxLength, 0, 500);\n this.option.minWidth = clamp(this.option.minWidth, 0, 500);\n this.option.maxWidth = clamp(this.option.maxWidth, 0, Infinity);\n\n if (option.fontSize) {\n this.option.fontSize = this.getFontSize(this.option.fontSize);\n this.reset();\n }\n\n this.art.emit('artplayerPluginDanmuku:config', this.option);\n\n return this;\n }\n\n makeWait(danmu) {\n danmu.$state = 'wait';\n if (danmu.$ref) {\n danmu.$ref.style.visibility = 'hidden';\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n\n continue() {\n const { clientWidth } = this.$player;\n this.filter('stop', (danmu) => {\n danmu.$state = 'emit';\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n case 0: {\n const translateX = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n suspend() {\n const { clientWidth } = this.$player;\n this.filter('emit', (danmu) => {\n danmu.$state = 'stop';\n switch (danmu.mode) {\n case 0: {\n const translateX = clientWidth - (this.getLeft(danmu.$ref) - this.getLeft(this.$player));\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n reset() {\n this.queue.forEach((danmu) => this.makeWait(danmu));\n return this;\n }\n\n update() {\n this.timer = window.requestAnimationFrame(async () => {\n if (this.art.playing && !this.isHide) {\n this.filter('emit', (danmu) => {\n const emitTime = (Date.now() - danmu.$lastStartTime) / 1000;\n danmu.$restTime -= emitTime;\n danmu.$lastStartTime = Date.now();\n if (danmu.$restTime <= 0) {\n this.makeWait(danmu);\n }\n });\n\n const readys = this.getReady();\n const { clientWidth, clientHeight } = this.$player;\n for (let index = 0; index < readys.length; index++) {\n const danmu = readys[index];\n danmu.$ref = this.getRef();\n danmu.$ref.innerText = danmu.text;\n this.$danmuku.appendChild(danmu.$ref);\n\n danmu.$ref.style.left = `${clientWidth}px`;\n danmu.$ref.style.opacity = this.option.opacity;\n danmu.$ref.style.fontSize = `${this.option.fontSize}px`;\n danmu.$ref.style.color = danmu.color;\n danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color}` : null;\n danmu.$ref.style.backgroundColor = danmu.border ? 'rgb(0 0 0 / 50%)' : null;\n danmu.$ref.style.marginLeft = '0px';\n\n danmu.$lastStartTime = Date.now();\n danmu.$restTime =\n this.option.synchronousPlayback && this.art.playbackRate\n ? this.option.speed / Number(this.art.playbackRate)\n : this.option.speed;\n\n const target = {\n mode: danmu.mode,\n height: danmu.$ref.clientHeight,\n speed: (clientWidth + danmu.$ref.clientWidth) / danmu.$restTime,\n };\n\n const { top } = await this.postMessage({\n target,\n emits: this.getEmits(),\n antiOverlap: this.option.antiOverlap,\n clientWidth: clientWidth,\n clientHeight: clientHeight,\n marginBottom: this.marginBottom,\n marginTop: this.marginTop,\n });\n\n if (danmu.$ref) {\n if (!this.isStop && top !== undefined) {\n danmu.$state = 'emit';\n danmu.$ref.style.visibility = 'visible';\n\n switch (danmu.mode) {\n case 0: {\n danmu.$ref.style.top = `${top}px`;\n const translateX = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n case 1:\n danmu.$ref.style.left = '50%';\n danmu.$ref.style.top = `${top}px`;\n danmu.$ref.style.marginLeft = `-${danmu.$ref.clientWidth / 2}px`;\n break;\n default:\n break;\n }\n } else {\n danmu.$state = 'ready';\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n }\n }\n\n if (!this.isStop) {\n this.update();\n }\n });\n return this;\n }\n\n stop() {\n this.isStop = true;\n this.suspend();\n window.cancelAnimationFrame(this.timer);\n this.art.emit('artplayerPluginDanmuku:stop');\n return this;\n }\n\n start() {\n this.isStop = false;\n this.continue();\n this.update();\n this.art.emit('artplayerPluginDanmuku:start');\n return this;\n }\n\n show() {\n this.isHide = false;\n this.start();\n this.$danmuku.style.display = 'block';\n this.art.emit('artplayerPluginDanmuku:show');\n return this;\n }\n\n hide() {\n this.isHide = true;\n this.stop();\n this.queue.forEach((item) => this.makeWait(item));\n this.$danmuku.style.display = 'none';\n this.art.emit('artplayerPluginDanmuku:hide');\n return this;\n }\n\n emit(danmu) {\n this.validator(danmu, {\n text: 'string',\n mode: 'number|undefined',\n color: 'string|undefined',\n time: 'number|undefined',\n border: 'boolean|undefined',\n });\n\n if (!danmu.text.trim()) return this;\n if (!this.option.filter(danmu)) return this;\n\n if (danmu.time) {\n danmu.time = this.utils.clamp(danmu.time, 0, Infinity);\n } else {\n danmu.time = this.art.currentTime + 0.5;\n }\n\n if (danmu.mode === undefined) {\n danmu.mode = this.option.mode;\n }\n\n if (danmu.color === undefined) {\n danmu.color = this.option.color;\n }\n\n this.queue.push({\n ...danmu,\n $state: 'wait',\n $ref: null,\n $restTime: 0,\n $lastStartTime: 0,\n });\n\n return this;\n }\n\n destroy() {\n this.stop();\n if (this.worker && this.worker.terminate) this.worker.terminate();\n this.art.off('video:play', this.start);\n this.art.off('video:playing', this.start);\n this.art.off('video:pause', this.stop);\n this.art.off('video:waiting', this.stop);\n this.art.off('fullscreen', this.reset);\n this.art.off('fullscreenWeb', this.reset);\n this.art.off('destroy', this.destroy);\n this.art.emit('artplayerPluginDanmuku:destroy');\n }\n}\n","export function getMode(key) {\n switch (key) {\n case 1:\n case 2:\n case 3:\n return 0;\n case 4:\n case 5:\n return 1;\n default:\n return 0;\n }\n}\n\nexport function bilibiliDanmuParseFromXml(xmlString) {\n if (typeof xmlString !== 'string') return [];\n const matches = xmlString.matchAll(/.+?)\"(?: .*?)?>(?.+?)<\\/d>/gs);\n return Array.from(matches)\n .map((match) => {\n const attr = match.groups.p.split(',');\n if (attr.length >= 8) {\n const text = match.groups.text\n .trim()\n .replaceAll('"', '\"')\n .replaceAll(''', \"'\")\n .replaceAll('<', '<')\n .replaceAll('>', '>')\n .replaceAll('&', '&');\n\n return {\n text,\n time: Number(attr[0]),\n mode: getMode(Number(attr[1])),\n fontSize: Number(attr[2]),\n color: `#${Number(attr[3]).toString(16)}`,\n timestamp: Number(attr[4]),\n pool: Number(attr[5]),\n userID: attr[6],\n rowID: Number(attr[7]),\n };\n } else {\n return null;\n }\n })\n .filter(Boolean);\n}\n\nexport function bilibiliDanmuParseFromUrl(url) {\n return fetch(url)\n .then((res) => res.text())\n .then((xmlString) => bilibiliDanmuParseFromXml(xmlString));\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","export default function getDanmuTop({\n target,\n emits,\n clientWidth,\n clientHeight,\n marginBottom,\n marginTop,\n antiOverlap,\n}) {\n const danmus = emits\n .filter((item) => item.mode === target.mode && item.top <= clientHeight - marginBottom)\n .sort((prev, next) => prev.top - next.top);\n\n if (danmus.length === 0) {\n return marginTop;\n }\n\n danmus.unshift({\n top: 0,\n left: 0,\n right: 0,\n height: marginTop,\n width: clientWidth,\n speed: 0,\n distance: clientWidth,\n });\n\n danmus.push({\n top: clientHeight - marginBottom,\n left: 0,\n right: 0,\n height: marginBottom,\n width: clientWidth,\n speed: 0,\n distance: clientWidth,\n });\n\n for (let index = 1; index < danmus.length; index += 1) {\n const item = danmus[index];\n const prev = danmus[index - 1];\n const prevBottom = prev.top + prev.height;\n const diff = item.top - prevBottom;\n if (diff >= target.height) {\n return prevBottom;\n }\n }\n\n const topMap = [];\n for (let index = 1; index < danmus.length - 1; index += 1) {\n const item = danmus[index];\n if (topMap.length) {\n const last = topMap[topMap.length - 1];\n if (last[0].top === item.top) {\n last.push(item);\n } else {\n topMap.push([item]);\n }\n } else {\n topMap.push([item]);\n }\n }\n\n if (antiOverlap) {\n switch (target.mode) {\n case 0: {\n const result = topMap.find((list) => {\n return list.every((danmu) => {\n if (clientWidth < danmu.distance) return false;\n if (target.speed < danmu.speed) return true;\n const overlapTime = danmu.right / (target.speed - danmu.speed);\n if (overlapTime > danmu.time) return true;\n return false;\n });\n });\n\n return result && result[0] ? result[0].top : undefined;\n }\n case 1:\n return undefined;\n default:\n break;\n }\n } else {\n switch (target.mode) {\n case 0:\n topMap.sort((prev, next) => {\n const nextMinRight = Math.min(...next.map((item) => item.right));\n const prevMinRight = Math.min(...prev.map((item) => item.right));\n return nextMinRight * next.length - prevMinRight * prev.length;\n });\n break;\n case 1:\n topMap.sort((prev, next) => {\n const nextMaxWidth = Math.max(...next.map((item) => item.width));\n const prevMaxWidth = Math.max(...prev.map((item) => item.width));\n return prevMaxWidth * prev.length - nextMaxWidth * next.length;\n });\n break;\n default:\n break;\n }\n\n return topMap[0][0].top;\n }\n}\n","module.exports = \"f89064c706e65d5d\";","import style from 'bundle-text:./style.less';\nimport danmuOn from 'bundle-text:./img/danmu-on.svg';\nimport danmuOff from 'bundle-text:./img/danmu-off.svg';\nimport danmuConfig from 'bundle-text:./img/danmu-config.svg';\nimport danmuStyle from 'bundle-text:./img/danmu-style.svg';\n\nexport default function setting(art, danmuku) {\n const { option } = danmuku;\n const {\n template: { $controlsCenter, $player },\n constructor: {\n utils: { removeClass, addClass, append, setStyle, tooltip, query, inverseClass },\n },\n } = art;\n\n function getIcon(svg, key) {\n const icon = document.createElement('i');\n append(icon, svg);\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n return icon;\n }\n\n setStyle($controlsCenter, 'display', 'flex');\n const $danmuOn = getIcon(danmuOn, 'danmu-on');\n const $danmuOff = getIcon(danmuOff, 'danmu-off');\n const $danmuConfig = getIcon(danmuConfig, 'danmu-config');\n const $danmuStyle = getIcon(danmuStyle, 'danmu-style');\n\n function addEmitter() {\n const colors = [\n '#FE0302',\n '#FF7204',\n '#FFAA02',\n '#FFD302',\n '#FFFF00',\n '#A0EE00',\n '#00CD00',\n '#019899',\n '#4266BE',\n '#89D5FF',\n '#CC0273',\n '#222222',\n '#9B9B9B',\n '#FFFFFF',\n ].map((item) => {\n const isCurrent = option.color === item ? ' art-current' : '';\n return `
`;\n });\n\n const $emitter = append(\n $controlsCenter,\n `\n
\n
\n
\n
\n
\n
模式
\n
\n
滚动
\n
静止
\n
\n
颜色
\n
\n ${colors.join('')}\n
\n
\n
\n
\n \n
\n
发送
\n
\n `,\n );\n\n const $style = query('.art-danmuku-style', $emitter);\n const $input = query('.art-danmuku-input', $emitter);\n const $send = query('.art-danmuku-send', $emitter);\n const $panel = query('.art-danmuku-style-panel-inner', $emitter);\n const $modes = query('.art-danmuku-style-panel-modes', $emitter);\n const $colors = query('.art-danmuku-style-panel-colors', $emitter);\n const $layer = option.mount || append($player, '
');\n\n if (art.option.backdrop) {\n addClass($panel, 'art-backdrop-filter');\n }\n\n if (option.theme) {\n addClass($emitter, `art-danmuku-theme-${option.theme}`);\n }\n\n let timer = null;\n let mode = option.mode;\n let color = option.color;\n append($style, $danmuStyle);\n\n function countdown(time) {\n if (time <= 0) {\n timer = null;\n $send.innerText = '发送';\n removeClass($send, 'art-disabled');\n } else {\n $send.innerText = time;\n timer = setTimeout(() => countdown(time - 1), 1000);\n }\n }\n\n function onSend() {\n const danmu = {\n mode,\n color,\n border: true,\n text: $input.value.trim(),\n };\n\n if (timer === null && option.beforeEmit(danmu)) {\n $input.value = '';\n danmuku.emit(danmu);\n addClass($send, 'art-disabled');\n countdown(option.lockTime);\n art.emit('artplayerPluginDanmuku:emit', danmu);\n }\n }\n\n function onResize() {\n if ($controlsCenter.clientWidth < option.minWidth) {\n append($layer, $emitter);\n setStyle($layer, 'display', 'flex');\n addClass($emitter, 'art-danmuku-mount');\n\n if (!option.mount) {\n setStyle($player, 'marginBottom', '40px');\n }\n } else {\n append($controlsCenter, $emitter);\n setStyle($layer, 'display', 'none');\n removeClass($emitter, 'art-danmuku-mount');\n\n if (!option.mount) {\n setStyle($player, 'marginBottom', null);\n }\n }\n }\n\n art.proxy($send, 'click', onSend);\n\n art.proxy($input, 'keypress', (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n onSend();\n }\n });\n\n art.proxy($modes, 'click', (event) => {\n const { dataset } = event.target;\n if (dataset.mode) {\n mode = Number(dataset.mode);\n inverseClass(event.target, 'art-current');\n }\n });\n\n art.proxy($colors, 'click', (event) => {\n const { dataset } = event.target;\n if (dataset.color) {\n color = dataset.color;\n inverseClass(event.target, 'art-current');\n }\n });\n\n onResize();\n art.on('resize', () => {\n if (!art.isInput) {\n onResize();\n }\n });\n\n art.on('destroy', () => {\n if (option.mount && $emitter.parentElement === option.mount) {\n option.mount.removeChild($emitter);\n }\n });\n }\n\n function addControl() {\n art.controls.add({\n position: 'right',\n name: 'danmuku',\n click: function () {\n if (danmuku.isHide) {\n danmuku.show();\n art.notice.show = '弹幕显示';\n setStyle($danmuOn, 'display', null);\n setStyle($danmuOff, 'display', 'none');\n } else {\n danmuku.hide();\n art.notice.show = '弹幕隐藏';\n setStyle($danmuOn, 'display', 'none');\n setStyle($danmuOff, 'display', null);\n }\n },\n mounted($ref) {\n append($ref, $danmuOn);\n append($ref, $danmuOff);\n tooltip($ref, '弹幕开关');\n setStyle($danmuOff, 'display', 'none');\n },\n });\n }\n\n function addSetting() {\n art.setting.add({\n name: 'danmuku',\n html: '弹幕设置',\n tooltip: '更多',\n icon: $danmuConfig,\n selector: [\n {\n width: 200,\n html: '播放速度',\n icon: '',\n tooltip: '适中',\n selector: [\n {\n html: '极慢',\n time: 10,\n },\n {\n html: '较慢',\n time: 7.5,\n },\n {\n default: true,\n html: '适中',\n time: 5,\n },\n {\n html: '较快',\n time: 2.5,\n },\n {\n html: '极快',\n time: 1,\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n speed: item.time,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '字体大小',\n icon: '',\n tooltip: '适中',\n selector: [\n {\n html: '极小',\n fontSize: '4%',\n },\n {\n html: '较小',\n fontSize: '5%',\n },\n {\n default: true,\n html: '适中',\n fontSize: '6%',\n },\n {\n html: '较大',\n fontSize: '7%',\n },\n {\n html: '极大',\n fontSize: '8%',\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n fontSize: item.fontSize,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '不透明度',\n icon: '',\n tooltip: '100%',\n selector: [\n {\n default: true,\n opacity: 1,\n html: '100%',\n },\n {\n opacity: 0.75,\n html: '75%',\n },\n {\n opacity: 0.5,\n html: '50%',\n },\n {\n opacity: 0.25,\n html: '25%',\n },\n {\n opacity: 0,\n html: '0%',\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n opacity: item.opacity,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '显示范围',\n icon: '',\n tooltip: '3/4',\n selector: [\n {\n html: '1/4',\n margin: [10, '75%'],\n },\n {\n html: '半屏',\n margin: [10, '50%'],\n },\n {\n default: true,\n html: '3/4',\n margin: [10, '25%'],\n },\n {\n html: '满屏',\n margin: [10, 10],\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n margin: item.margin,\n });\n return item.html;\n },\n },\n {\n html: '弹幕防重叠',\n icon: '',\n tooltip: option.antiOverlap ? '开启' : '关闭',\n switch: option.antiOverlap,\n onSwitch(item) {\n danmuku.config({\n antiOverlap: !item.switch,\n });\n item.tooltip = item.switch ? '关闭' : '开启';\n return !item.switch;\n },\n },\n {\n html: '同步视频速度',\n icon: '',\n tooltip: option.synchronousPlayback ? '开启' : '关闭',\n switch: option.synchronousPlayback,\n onSwitch(item) {\n danmuku.config({\n synchronousPlayback: !item.switch,\n });\n item.tooltip = item.switch ? '关闭' : '开启';\n return !item.switch;\n },\n },\n ],\n });\n }\n\n addEmitter();\n addControl();\n addSetting();\n}\n\nif (typeof document !== 'undefined') {\n if (!document.getElementById('artplayer-plugin-danmuku')) {\n const $style = document.createElement('style');\n $style.id = 'artplayer-plugin-danmuku';\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n","module.exports = \"c09c1588fb4faeee\";","module.exports = \"ed96d9cba019193e\";","module.exports = \"50e63783768a51c7\";","module.exports = \"6d994b91570c2465\";","module.exports = \"5e37f7b89903ad61\";"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file diff --git a/docs/uncompiled/artplayer-plugin-dash-quality/index.js b/docs/uncompiled/artplayer-plugin-dash-quality/index.js index 42ae31825..da28a4bbf 100644 --- a/docs/uncompiled/artplayer-plugin-dash-quality/index.js +++ b/docs/uncompiled/artplayer-plugin-dash-quality/index.js @@ -169,7 +169,7 @@ function artplayerPluginDashQuality(option) { } } }; - if (option.control) art.controls.add({ + if (option.control) art.controls.update({ name: "dash-quality", position: "right", html: defaultHtml, @@ -190,7 +190,7 @@ function artplayerPluginDashQuality(option) { return item.html; } }); - if (option.setting) art.setting.add({ + if (option.setting) art.setting.update({ name: "dash-quality", tooltip: defaultHtml, html: title, @@ -212,6 +212,7 @@ function artplayerPluginDashQuality(option) { }); } art.on("ready", update); + art.on("restart", update); return { name: "artplayerPluginDashQuality" }; @@ -219,8 +220,8 @@ function artplayerPluginDashQuality(option) { } exports.default = artplayerPluginDashQuality; artplayerPluginDashQuality.env = "development"; -artplayerPluginDashQuality.version = "1.0.1"; -artplayerPluginDashQuality.build = "2023-02-18 12:24:09"; +artplayerPluginDashQuality.version = "2.0.0"; +artplayerPluginDashQuality.build = "2023-04-23 09:50:27"; if (typeof window !== "undefined") window["artplayerPluginDashQuality"] = artplayerPluginDashQuality; },{"bundle-text:./image.svg":"78FlN","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"78FlN":[function(require,module,exports) { diff --git a/docs/uncompiled/artplayer-plugin-dash-quality/index.js.map b/docs/uncompiled/artplayer-plugin-dash-quality/index.js.map index 2c1474329..513bf0a07 100644 --- a/docs/uncompiled/artplayer-plugin-dash-quality/index.js.map +++ b/docs/uncompiled/artplayer-plugin-dash-quality/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["packages/artplayer-plugin-dash-quality/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-64c514a205c07416.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import image from 'bundle-text:./image.svg';\n\nexport default function artplayerPluginDashQuality(option) {\n return (art) => {\n const { $video } = art.template;\n const { errorHandle } = art.constructor.utils;\n\n function update() {\n const dash = art.dash || window.dash;\n errorHandle(\n dash && dash.getVideoElement() === $video,\n 'Cannot find instance of Dash from \"art.dash\" or \"window.dash\"',\n );\n const auto = option.auto || 'Auto';\n const title = option.title || 'Quality';\n const levels = dash.getBitrateInfoListFor('video');\n const currentLevel = dash.getQualityFor('video');\n const getResolution = option.getResolution || ((level) => (level.height || 'Unknown ') + 'P');\n const settings = dash.getSettings();\n const defaultLevel = levels[currentLevel];\n const defaultHtml = settings?.streaming?.abr?.autoSwitchBitrate?.video ? auto : getResolution(defaultLevel);\n\n const cfg = {\n streaming: {\n abr: {\n autoSwitchBitrate: {},\n },\n },\n };\n\n if (option.control) {\n art.controls.add({\n name: 'dash-quality',\n position: 'right',\n html: defaultHtml,\n style: { padding: '0 10px' },\n selector: levels.map((item, index) => {\n return {\n html: getResolution(item),\n level: index,\n default: defaultLevel === item,\n };\n }),\n onSelect(item) {\n cfg.streaming.abr.autoSwitchBitrate['video'] = false;\n dash.updateSettings(cfg);\n dash.setQualityFor('video', item.level, true);\n return item.html;\n },\n });\n }\n\n if (option.setting) {\n art.setting.add({\n name: 'dash-quality',\n tooltip: defaultHtml,\n html: title,\n icon: image,\n width: 200,\n selector: levels.map((item, index) => {\n return {\n html: getResolution(item),\n level: index,\n default: defaultLevel === item,\n };\n }),\n onSelect: function (item) {\n cfg.streaming.abr.autoSwitchBitrate['video'] = false;\n dash.updateSettings(cfg);\n dash.setQualityFor('video', item.level, true);\n return item.html;\n },\n });\n }\n }\n\n art.on('ready', update);\n\n return {\n name: 'artplayerPluginDashQuality',\n };\n };\n}\n\nartplayerPluginDashQuality.env = process.env.NODE_ENV;\nartplayerPluginDashQuality.version = process.env.APP_VER;\nartplayerPluginDashQuality.build = process.env.BUILD_DATE;\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginDashQuality'] = artplayerPluginDashQuality;\n}\n","module.exports = \"d31e9ff5943c7d76\";","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file +{"mappings":"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","sources":["packages/artplayer-plugin-dash-quality/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-64c514a205c07416.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import image from 'bundle-text:./image.svg';\n\nexport default function artplayerPluginDashQuality(option) {\n return (art) => {\n const { $video } = art.template;\n const { errorHandle } = art.constructor.utils;\n\n function update() {\n const dash = art.dash || window.dash;\n errorHandle(\n dash && dash.getVideoElement() === $video,\n 'Cannot find instance of Dash from \"art.dash\" or \"window.dash\"',\n );\n const auto = option.auto || 'Auto';\n const title = option.title || 'Quality';\n const levels = dash.getBitrateInfoListFor('video');\n const currentLevel = dash.getQualityFor('video');\n const getResolution = option.getResolution || ((level) => (level.height || 'Unknown ') + 'P');\n const settings = dash.getSettings();\n const defaultLevel = levels[currentLevel];\n const defaultHtml = settings?.streaming?.abr?.autoSwitchBitrate?.video ? auto : getResolution(defaultLevel);\n\n const cfg = {\n streaming: {\n abr: {\n autoSwitchBitrate: {},\n },\n },\n };\n\n if (option.control) {\n art.controls.update({\n name: 'dash-quality',\n position: 'right',\n html: defaultHtml,\n style: { padding: '0 10px' },\n selector: levels.map((item, index) => {\n return {\n html: getResolution(item),\n level: index,\n default: defaultLevel === item,\n };\n }),\n onSelect(item) {\n cfg.streaming.abr.autoSwitchBitrate['video'] = false;\n dash.updateSettings(cfg);\n dash.setQualityFor('video', item.level, true);\n return item.html;\n },\n });\n }\n\n if (option.setting) {\n art.setting.update({\n name: 'dash-quality',\n tooltip: defaultHtml,\n html: title,\n icon: image,\n width: 200,\n selector: levels.map((item, index) => {\n return {\n html: getResolution(item),\n level: index,\n default: defaultLevel === item,\n };\n }),\n onSelect: function (item) {\n cfg.streaming.abr.autoSwitchBitrate['video'] = false;\n dash.updateSettings(cfg);\n dash.setQualityFor('video', item.level, true);\n return item.html;\n },\n });\n }\n }\n\n art.on('ready', update);\n art.on('restart', update);\n\n return {\n name: 'artplayerPluginDashQuality',\n };\n };\n}\n\nartplayerPluginDashQuality.env = process.env.NODE_ENV;\nartplayerPluginDashQuality.version = process.env.APP_VER;\nartplayerPluginDashQuality.build = process.env.BUILD_DATE;\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginDashQuality'] = artplayerPluginDashQuality;\n}\n","module.exports = \"d31e9ff5943c7d76\";","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file diff --git a/docs/uncompiled/artplayer-plugin-hls-quality/index.js b/docs/uncompiled/artplayer-plugin-hls-quality/index.js index 556cce0ad..613726588 100644 --- a/docs/uncompiled/artplayer-plugin-hls-quality/index.js +++ b/docs/uncompiled/artplayer-plugin-hls-quality/index.js @@ -209,7 +209,7 @@ function artplayerPluginHlsQuality(option) { exports.default = artplayerPluginHlsQuality; artplayerPluginHlsQuality.env = "development"; artplayerPluginHlsQuality.version = "1.0.2"; -artplayerPluginHlsQuality.build = "2023-04-22 23:57:31"; +artplayerPluginHlsQuality.build = "2023-04-23 09:44:07"; if (typeof window !== "undefined") window["artplayerPluginHlsQuality"] = artplayerPluginHlsQuality; },{"bundle-text:./image.svg":"1HFaU","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"1HFaU":[function(require,module,exports) { diff --git a/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js b/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js index ddde74051..c78f9475b 100644 --- a/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js +++ b/docs/uncompiled/artplayer-plugin-vtt-thumbnail/index.js @@ -196,7 +196,7 @@ function artplayerPluginVttThumbnail(option) { exports.default = artplayerPluginVttThumbnail; artplayerPluginVttThumbnail.env = "development"; artplayerPluginVttThumbnail.version = "1.0.0"; -artplayerPluginVttThumbnail.build = "2023-01-15 10:25:17"; +artplayerPluginVttThumbnail.build = "2023-04-23 09:57:46"; if (typeof window !== "undefined") window["artplayerPluginVttThumbnail"] = artplayerPluginVttThumbnail; },{"./getVttArray":"gSM1I","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gSM1I":[function(require,module,exports) { diff --git a/docs/uncompiled/artplayer/index.js b/docs/uncompiled/artplayer/index.js index fb0d53d2f..6e530c01e 100644 --- a/docs/uncompiled/artplayer/index.js +++ b/docs/uncompiled/artplayer/index.js @@ -201,7 +201,7 @@ class Artplayer extends (0, _emitterDefault.default) { super(); this.id = ++id; const mergeOption = _utils.mergeDeep(Artplayer.option, option); - if (option.container instanceof Element) mergeOption.container = option.container; + mergeOption.container = option.container; this.option = (0, _optionValidatorDefault.default)(mergeOption, (0, _schemeDefault.default)); this.isLock = false; this.isReady = false; @@ -249,7 +249,7 @@ class Artplayer extends (0, _emitterDefault.default) { return "development"; } static get build() { - return "2023-04-23 00:03:34"; + return "2023-04-23 12:16:56"; } static get config() { return 0, _configDefault.default; @@ -419,7 +419,7 @@ if (typeof window !== "undefined") window["Artplayer"] = Artplayer; console.log(`%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`, "color: #fff; background: #5f5f5f", "color: #fff; background: #4bc729", ""); },{"bundle-text:./style/index.less":"SvnDa","option-validator":"2tbdu","./utils/emitter":"elSLF","./utils":"jmgNb","./scheme":"gL38d","./config":"2ZnKD","./whitelist":"gd0pl","./template":"bDTDS","./i18n":"k0CtI","./player":"35XKf","./control":"faO0X","./contextmenu":"5npaZ","./info":"6vVKE","./subtitle":"4exyO","./events":"dz5ul","./hotkey":"1nFqF","./layer":"fvy8V","./loading":"h8KPY","./notice":"cr1XY","./mask":"llnR4","./icons":"gP6M7","./setting":"e5Aaq","./storage":"feFxw","./plugins":"h1hfO","./mobile":"c9n1Y","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"SvnDa":[function(require,module,exports) { -module.exports = ".art-video-player {\n --art-theme: red;\n --art-font-color: #fff;\n --art-background-color: #000;\n --art-text-shadow-color: #00000080;\n --art-transition-duration: .2s;\n --art-padding: 10px;\n --art-border-radius: 3px;\n --art-progress-height: 6px;\n --art-progress-color: #fff3;\n --art-hover-color: #ffffff80;\n --art-loaded-color: #fff3;\n --art-loop-color: #ffffffbf;\n --art-state-size: 80px;\n --art-state-opacity: .8;\n --art-bottom-height: 100px;\n --art-bottom-offset: -20px;\n --art-bottom-gap: 5px;\n --art-highlight-width: 8px;\n --art-highlight-color: #ffffff80;\n --art-loop-width: 2px;\n --art-control-height: 46px;\n --art-control-opacity: .75;\n --art-control-icon-size: 36px;\n --art-control-icon-scale: 1.1;\n --art-volume-height: 120px;\n --art-volume-handle-size: 14px;\n --art-lock-size: 36px;\n --art-indicator-scale: 0;\n --art-indicator-size: 16px;\n --art-fullscreen-web-index: 9999;\n --art-settings-scale: 1;\n --art-settings-icon-size: 24px;\n --art-settings-max-height: 300px;\n --art-selector-max-height: 300px;\n --art-contextmenus-min-width: 250px;\n --art-subtitle-font-size: 20px;\n --art-subtitle-gap: 5px;\n --art-subtitle-bottom: 15px;\n --art-subtitle-border: #000;\n --art-widget-background: #000000d9;\n --art-tip-background: #00000080;\n --art-scrollbar-size: 4px;\n --art-scrollbar-background: #ffffff40;\n --art-scrollbar-background-hover: #ffffff80;\n --art-mini-progress-height: 2px;\n}\n\n.art-bg-cover {\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n.art-bottom-gradient {\n background-image: linear-gradient(to top, #000, #0006, #0000);\n background-position: bottom;\n background-repeat: repeat-x;\n}\n\n.art-backdrop-filter {\n -webkit-backdrop-filter: saturate(180%) blur(20px);\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000bf !important;\n}\n\n.art-truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.art-video-player {\n width: 100%;\n height: 100%;\n zoom: 1;\n text-align: left;\n direction: ltr;\n user-select: none;\n box-sizing: border-box;\n color: var(--art-font-color);\n background-color: var(--art-background-color);\n text-shadow: 0 0 2px var(--art-text-shadow-color);\n -webkit-tap-highlight-color: #0000;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n -ms-high-contrast-adjust: none;\n outline: 0;\n margin: 0 auto;\n padding: 0;\n font-family: PingFang SC, Helvetica Neue, Microsoft YaHei, Roboto, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.3;\n position: relative;\n overflow: hidden;\n}\n\n.art-video-player *, .art-video-player :before, .art-video-player :after {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\n.art-video-player ::-webkit-scrollbar {\n width: var(--art-scrollbar-size);\n height: var(--art-scrollbar-size);\n}\n\n.art-video-player ::-webkit-scrollbar-thumb {\n background-color: var(--art-scrollbar-background);\n}\n\n.art-video-player ::-webkit-scrollbar-thumb:hover {\n background-color: var(--art-scrollbar-background-hover);\n}\n\n.art-video-player img {\n max-width: 100%;\n vertical-align: top;\n}\n\n.art-video-player svg {\n fill: var(--art-font-color);\n}\n\n.art-video-player a {\n color: var(--art-font-color);\n text-decoration: none;\n}\n\n.art-icon {\n justify-content: center;\n align-items: center;\n line-height: 1;\n display: flex;\n}\n\n.art-video-player.art-backdrop .art-contextmenus, .art-video-player.art-backdrop .art-info, .art-video-player.art-backdrop .art-settings, .art-video-player.art-backdrop .art-layer-auto-playback, .art-video-player.art-backdrop .art-selector-list, .art-video-player.art-backdrop .art-volume-inner {\n -webkit-backdrop-filter: saturate(180%) blur(20px);\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000bf !important;\n}\n\n.art-video {\n z-index: 10;\n width: 100%;\n height: 100%;\n cursor: pointer;\n position: absolute;\n inset: 0;\n}\n\n.art-poster {\n z-index: 11;\n width: 100%;\n height: 100%;\n pointer-events: none;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-subtitle {\n z-index: 20;\n width: 100%;\n text-align: center;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n gap: var(--art-subtitle-gap);\n bottom: var(--art-subtitle-bottom);\n font-size: var(--art-subtitle-font-size);\n transition: bottom var(--art-transition-duration) ease;\n text-shadow: var(--art-subtitle-border) 1px 0 1px, var(--art-subtitle-border) 0 1px 1px, var(--art-subtitle-border) -1px 0 1px, var(--art-subtitle-border) 0 -1px 1px, var(--art-subtitle-border) 1px 1px 1px, var(--art-subtitle-border) -1px -1px 1px, var(--art-subtitle-border) 1px -1px 1px, var(--art-subtitle-border) -1px 1px 1px;\n flex-direction: column;\n padding: 0 5%;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-subtitle p {\n word-break: break-all;\n height: fit-content;\n}\n\n.art-video-player.art-subtitle-show .art-subtitle {\n display: flex;\n}\n\n.art-video-player.art-control-show .art-subtitle {\n bottom: calc(var(--art-control-height) + var(--art-subtitle-bottom));\n}\n\n.art-danmuku {\n z-index: 30;\n width: 100%;\n height: 100%;\n pointer-events: none;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-layers {\n z-index: 40;\n width: 100%;\n height: 100%;\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-layers .art-layer {\n pointer-events: auto;\n}\n\n.art-video-player.art-layer-show .art-layers {\n display: flex;\n}\n\n.art-video-player .art-mask {\n z-index: 50;\n width: 100%;\n height: 100%;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-mask .art-state {\n opacity: 0;\n width: var(--art-state-size);\n height: var(--art-state-size);\n transition: all var(--art-transition-duration) ease;\n justify-content: center;\n align-items: center;\n display: flex;\n transform: scale(2);\n}\n\n.art-video-player.art-mask-show .art-state {\n cursor: pointer;\n pointer-events: auto;\n opacity: var(--art-state-opacity);\n transform: scale(1);\n}\n\n.art-video-player.art-loading-show .art-state {\n display: none;\n}\n\n.art-video-player .art-loading {\n z-index: 70;\n width: 100%;\n height: 100%;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player.art-loading-show .art-loading {\n display: flex;\n}\n\n.art-video-player .art-bottom {\n z-index: 60;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n justify-content: end;\n gap: var(--art-bottom-gap);\n inset: auto 0 0;\n bottom: var(--art-bottom-offset);\n height: var(--art-bottom-height);\n padding: 0 var(--art-padding);\n transition: all var(--art-transition-duration) ease;\n background-image: linear-gradient(to top, #000, #0006, #0000);\n background-position: bottom;\n background-repeat: repeat-x;\n flex-direction: column;\n display: flex;\n position: absolute;\n}\n\n.art-video-player.art-control-show .art-bottom, .art-video-player.art-hover .art-bottom {\n opacity: 1;\n bottom: 0;\n}\n\n.art-bottom .art-progress {\n z-index: 0;\n pointer-events: auto;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress {\n cursor: pointer;\n height: var(--art-progress-height);\n justify-content: center;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner {\n height: 50%;\n width: 100%;\n transition: height var(--art-transition-duration) ease;\n background-color: var(--art-progress-color);\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover {\n z-index: 0;\n width: 100%;\n height: 100%;\n width: 0%;\n background-color: var(--art-hover-color);\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded {\n z-index: 10;\n width: 100%;\n height: 100%;\n width: 0%;\n background-color: var(--art-loaded-color);\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played {\n z-index: 20;\n width: 100%;\n height: 100%;\n width: 0%;\n background-color: var(--art-theme);\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight {\n z-index: 30;\n width: 100%;\n height: 100%;\n pointer-events: none;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span {\n z-index: 0;\n width: 100%;\n height: 100%;\n pointer-events: auto;\n width: var(--art-highlight-width);\n transform: translateX(calc(var(--art-highlight-width) / -2));\n background-color: var(--art-highlight-color);\n position: absolute;\n inset: 0 auto 0 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n z-index: 40;\n width: var(--art-indicator-size);\n height: var(--art-indicator-size);\n transform: scale(var(--art-indicator-scale));\n margin-left: calc(var(--art-indicator-size) / -2);\n transition: transform var(--art-transition-duration) ease;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n left: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon {\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover {\n transform: scale(1.2) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active {\n transform: scale(1) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip {\n z-index: 50;\n border-radius: var(--art-border-radius);\n white-space: nowrap;\n background-color: var(--art-tip-background);\n padding: 3px 5px;\n font-size: 12px;\n line-height: 1;\n display: none;\n position: absolute;\n top: -25px;\n left: 0;\n}\n\n.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner {\n height: 100%;\n}\n\n.art-bottom .art-progress .art-control-thumbnails {\n border-radius: var(--art-border-radius);\n pointer-events: none;\n background-color: var(--art-widget-background);\n display: none;\n position: absolute;\n bottom: 10px;\n left: 0;\n box-shadow: 0 1px 3px #0003, 0 1px 2px -1px #0003;\n}\n\n.art-bottom .art-progress .art-control-loop {\n z-index: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-loop .art-loop-point {\n z-index: 0;\n width: 100%;\n height: 100%;\n width: var(--art-loop-width);\n background-color: var(--art-loop-color);\n transform: translateX(calc(var(--art-loop-width) / -2)) scaleY(1.5);\n position: absolute;\n inset: 0 0 0 0%;\n}\n\n.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n transform: scale(1);\n}\n\n.art-controls {\n z-index: 10;\n pointer-events: auto;\n height: var(--art-control-height);\n justify-content: space-between;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-controls .art-controls-left, .art-controls .art-controls-right {\n height: 100%;\n display: flex;\n}\n\n.art-controls .art-controls-center {\n height: 100%;\n flex: 1;\n justify-content: center;\n align-items: center;\n padding: 0 10px;\n display: none;\n}\n\n.art-controls .art-controls-right {\n justify-content: flex-end;\n}\n\n.art-controls .art-control {\n cursor: pointer;\n white-space: nowrap;\n opacity: var(--art-control-opacity);\n min-height: var(--art-control-height);\n min-width: var(--art-control-height);\n transition: opacity var(--art-transition-duration) ease;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-controls .art-control .art-icon {\n height: var(--art-control-icon-size);\n width: var(--art-control-icon-size);\n transform: scale(var(--art-control-icon-scale));\n transition: transform var(--art-transition-duration) ease;\n}\n\n.art-controls .art-control .art-icon:active {\n transform: scale(calc(var(--art-control-icon-scale) * .8));\n}\n\n.art-controls .art-control:hover {\n opacity: 1;\n}\n\n.art-control-volume {\n position: relative;\n}\n\n.art-control-volume .art-volume-panel {\n text-align: center;\n cursor: default;\n opacity: 0;\n pointer-events: none;\n left: 0;\n right: 0;\n bottom: var(--art-control-height);\n width: var(--art-control-height);\n height: var(--art-volume-height);\n transition: all var(--art-transition-duration) ease;\n justify-content: center;\n align-items: center;\n padding: 0 5px;\n font-size: 12px;\n display: flex;\n position: absolute;\n transform: translateY(10px);\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner {\n height: 100%;\n width: 100%;\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n flex-direction: column;\n align-items: center;\n gap: 10px;\n padding: 10px 0 12px;\n display: flex;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider {\n width: 100%;\n cursor: pointer;\n flex: 1;\n justify-content: center;\n display: flex;\n position: relative;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle {\n width: 2px;\n border-radius: var(--art-border-radius);\n background-color: #ffffff40;\n justify-content: center;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded {\n z-index: 0;\n width: 100%;\n height: 100%;\n background-color: var(--art-theme);\n position: absolute;\n inset: 0;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator {\n width: var(--art-volume-handle-size);\n height: var(--art-volume-handle-size);\n margin-top: calc(var(--art-volume-handle-size) / -2);\n background-color: var(--art-theme);\n transition: transform var(--art-transition-duration) ease;\n border-radius: 100%;\n flex-shrink: 0;\n position: absolute;\n transform: scale(1);\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator {\n transform: scale(.9);\n}\n\n.art-control-volume:hover .art-volume-panel {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n.art-video-player .art-notice {\n z-index: 80;\n width: 100%;\n height: 100%;\n height: auto;\n padding: var(--art-padding);\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0 0 auto;\n}\n\n.art-video-player .art-notice .art-notice-inner {\n border-radius: var(--art-border-radius);\n background-color: var(--art-tip-background);\n padding: 5px;\n line-height: 1;\n display: inline-flex;\n}\n\n.art-video-player.art-notice-show .art-notice {\n display: flex;\n}\n\n.art-video-player .art-contextmenus {\n z-index: 120;\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n min-width: var(--art-contextmenus-min-width);\n flex-direction: column;\n padding: 5px 0;\n font-size: 12px;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu {\n cursor: pointer;\n border-bottom: 1px solid #ffffff1a;\n padding: 10px 15px;\n display: flex;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span {\n padding: 0 8px;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span:hover, .art-video-player .art-contextmenus .art-contextmenu span.art-current {\n color: var(--art-theme);\n}\n\n.art-video-player .art-contextmenus .art-contextmenu:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu:last-child {\n border-bottom: none;\n}\n\n.art-video-player.art-contextmenu-show .art-contextmenus {\n display: flex;\n}\n\n.art-video-player .art-settings {\n z-index: 90;\n border-radius: var(--art-border-radius);\n transform-origin: 100% 100%;\n max-height: var(--art-settings-max-height);\n left: auto;\n right: var(--art-padding);\n bottom: var(--art-control-height);\n transform: scale(var(--art-settings-scale));\n transition: all var(--art-transition-duration) ease;\n background-color: var(--art-widget-background);\n flex-direction: column;\n display: none;\n position: absolute;\n overflow: hidden auto;\n}\n\n.art-video-player .art-settings .art-setting-panel {\n flex-direction: column;\n display: none;\n}\n\n.art-video-player .art-settings .art-setting-panel.art-current {\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item {\n height: 35px;\n cursor: pointer;\n transition: background-color var(--art-transition-duration) ease;\n justify-content: space-between;\n align-items: center;\n padding: 0 5px;\n line-height: 1;\n display: flex;\n overflow: hidden;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current {\n color: var(--art-theme);\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check {\n visibility: hidden;\n height: 15px;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check {\n visibility: visible;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left {\n justify-content: center;\n align-items: center;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon {\n height: var(--art-settings-icon-size);\n width: var(--art-settings-icon-size);\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right {\n justify-content: center;\n align-items: center;\n gap: 5px;\n font-size: 12px;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip {\n white-space: nowrap;\n color: #ffffff80;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon {\n min-width: 32px;\n height: 24px;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range {\n height: 3px;\n width: 80px;\n appearance: none;\n background-color: #fff3;\n outline: none;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item-back {\n border-bottom: 1px solid #ffffff1a;\n}\n\n.art-video-player.art-setting-show .art-settings {\n display: flex;\n}\n\n.art-video-player .art-info {\n left: var(--art-padding);\n top: var(--art-padding);\n z-index: 100;\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n padding: 10px;\n font-size: 12px;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-info .art-info-panel {\n flex-direction: column;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item {\n align-items: center;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item .art-info-title {\n width: 100px;\n text-align: right;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item .art-info-content {\n width: 250px;\n text-overflow: ellipsis;\n white-space: nowrap;\n user-select: all;\n overflow: hidden;\n}\n\n.art-video-player .art-info .art-info-close {\n cursor: pointer;\n position: absolute;\n top: 5px;\n right: 5px;\n}\n\n.art-video-player.art-info-show .art-info {\n display: flex;\n}\n\n.art-hide-cursor * {\n cursor: none !important;\n}\n\n.art-video-player[data-aspect-ratio] video {\n box-sizing: content-box;\n object-fit: fill;\n}\n\n.art-fullscreen-web {\n z-index: var(--art-fullscreen-web-index);\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n overflow: visible;\n}\n\n.art-mini-popup {\n z-index: 9999;\n width: 320px;\n height: 180px;\n border-radius: var(--art-border-radius);\n cursor: move;\n user-select: none;\n background: #000;\n transition: opacity .2s;\n position: fixed;\n overflow: hidden;\n box-shadow: 0 0 5px #00000080;\n}\n\n.art-mini-popup svg {\n fill: #fff;\n}\n\n.art-mini-popup .art-video {\n pointer-events: none;\n}\n\n.art-mini-popup .art-mini-close {\n z-index: 20;\n cursor: pointer;\n opacity: 0;\n transition: opacity .2s;\n position: absolute;\n top: 10px;\n right: 10px;\n}\n\n.art-mini-popup .art-mini-state {\n z-index: 30;\n width: 100%;\n height: 100%;\n pointer-events: none;\n opacity: 0;\n background-color: #00000040;\n justify-content: center;\n align-items: center;\n transition: opacity .2s;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.art-mini-popup .art-mini-state .art-icon {\n opacity: .75;\n cursor: pointer;\n pointer-events: auto;\n transition: transform .2s;\n transform: scale(3);\n}\n\n.art-mini-popup .art-mini-state .art-icon:active {\n transform: scale(2.5);\n}\n\n.art-mini-popup.art-mini-droging {\n opacity: .9;\n}\n\n.art-mini-popup:hover .art-mini-close, .art-mini-popup:hover .art-mini-state {\n opacity: 1;\n}\n\n.art-auto-size {\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-auto-size .art-video-player {\n transition: width, height var(--art-transition-duration) ease;\n}\n\n.art-video-player[data-flip=\"horizontal\"] .art-video {\n transform: scaleX(-1);\n}\n\n.art-video-player[data-flip=\"vertical\"] .art-video {\n transform: scaleY(-1);\n}\n\n.art-video-player .art-layer-mini-progress-bar {\n z-index: 0;\n width: 100%;\n height: 100%;\n height: var(--art-mini-progress-height);\n background-color: var(--art-theme);\n display: flex;\n position: absolute;\n inset: auto 0 0;\n}\n\n.art-video-player .art-layer-lock {\n height: var(--art-lock-size);\n width: var(--art-lock-size);\n top: 50%;\n left: var(--art-padding);\n background-color: var(--art-tip-background);\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n transform: translateY(-50%);\n}\n\n.art-video-player .art-layer-auto-playback {\n border-radius: var(--art-border-radius);\n left: var(--art-padding);\n bottom: calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);\n background-color: var(--art-widget-background);\n align-items: center;\n gap: 10px;\n padding: 10px;\n line-height: 1;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-close {\n cursor: pointer;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-close svg {\n width: 15px;\n height: 15px;\n fill: var(--art-theme);\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-jump {\n color: var(--art-theme);\n cursor: pointer;\n}\n\n.art-video-player.art-lock .art-bottom {\n display: none !important;\n}\n\n.art-video-player.art-lock .art-subtitle {\n bottom: var(--art-subtitle-bottom) !important;\n}\n\n.art-video-player.art-lock .art-layer-mini-progress-bar {\n display: flex !important;\n}\n\n.art-video-player.art-control-show .art-layer-mini-progress-bar {\n display: none;\n}\n\n.art-video-player.art-control-show .art-layer-lock {\n display: flex;\n}\n\n.art-control-selector {\n position: relative;\n}\n\n.art-control-selector .art-selector-list {\n text-align: center;\n border-radius: var(--art-border-radius);\n opacity: 0;\n pointer-events: none;\n bottom: var(--art-control-height);\n max-height: var(--art-selector-max-height);\n background-color: var(--art-widget-background);\n transition: all var(--art-transition-duration) ease;\n flex-direction: column;\n justify-content: center;\n display: flex;\n position: absolute;\n overflow: hidden auto;\n transform: translateY(10px);\n}\n\n.art-control-selector .art-selector-list .art-selector-item {\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n padding: 10px 15px;\n line-height: 1;\n display: flex;\n}\n\n.art-control-selector .art-selector-list .art-selector-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-control-selector .art-selector-list .art-selector-item:hover, .art-control-selector .art-selector-list .art-selector-item.art-current {\n color: var(--art-theme);\n}\n\n.art-control-selector:hover .art-selector-list {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n[class*=\"hint--\"] {\n font-style: normal;\n display: inline-block;\n position: relative;\n}\n\n[class*=\"hint--\"]:before, [class*=\"hint--\"]:after {\n visibility: hidden;\n opacity: 0;\n z-index: 1000000;\n pointer-events: none;\n transition: all .3s;\n transition-delay: 0s;\n position: absolute;\n transform: translate3d(0, 0, 0);\n}\n\n[class*=\"hint--\"]:hover:before, [class*=\"hint--\"]:hover:after {\n visibility: visible;\n opacity: 1;\n transition-delay: .1s;\n}\n\n[class*=\"hint--\"]:before {\n content: \"\";\n z-index: 1000001;\n background: none;\n border: 6px solid #0000;\n position: absolute;\n}\n\n[class*=\"hint--\"]:after {\n color: #fff;\n white-space: nowrap;\n background: #000;\n padding: 8px 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 12px;\n line-height: 12px;\n}\n\n[class*=\"hint--\"][aria-label]:after {\n content: attr(aria-label);\n}\n\n[class*=\"hint--\"][data-hint]:after {\n content: attr(data-hint);\n}\n\n[aria-label=\"\"]:before, [aria-label=\"\"]:after, [data-hint=\"\"]:before, [data-hint=\"\"]:after {\n display: none !important;\n}\n\n.hint--top-left:before, .hint--top-right:before, .hint--top:before {\n border-top-color: #000;\n}\n\n.hint--bottom-left:before, .hint--bottom-right:before, .hint--bottom:before {\n border-bottom-color: #000;\n}\n\n.hint--left:before {\n border-left-color: #000;\n}\n\n.hint--right:before {\n border-right-color: #000;\n}\n\n.hint--top:before {\n margin-bottom: -11px;\n}\n\n.hint--top:before, .hint--top:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top:before {\n left: calc(50% - 6px);\n}\n\n.hint--top:after {\n transform: translateX(-50%);\n}\n\n.hint--top:hover:before {\n transform: translateY(-8px);\n}\n\n.hint--top:hover:after {\n transform: translateX(-50%)translateY(-8px);\n}\n\n.hint--bottom:before {\n margin-top: -11px;\n}\n\n.hint--bottom:before, .hint--bottom:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom:after {\n transform: translateX(-50%);\n}\n\n.hint--bottom:hover:before {\n transform: translateY(8px);\n}\n\n.hint--bottom:hover:after {\n transform: translateX(-50%)translateY(8px);\n}\n\n.hint--right:before {\n margin-bottom: -6px;\n margin-left: -11px;\n}\n\n.hint--right:after {\n margin-bottom: -14px;\n}\n\n.hint--right:before, .hint--right:after {\n bottom: 50%;\n left: 100%;\n}\n\n.hint--right:hover:before, .hint--right:hover:after {\n transform: translateX(8px);\n}\n\n.hint--left:before {\n margin-bottom: -6px;\n margin-right: -11px;\n}\n\n.hint--left:after {\n margin-bottom: -14px;\n}\n\n.hint--left:before, .hint--left:after {\n bottom: 50%;\n right: 100%;\n}\n\n.hint--left:hover:before, .hint--left:hover:after {\n transform: translateX(-8px);\n}\n\n.hint--top-left:before {\n margin-bottom: -11px;\n}\n\n.hint--top-left:before, .hint--top-left:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top-left:before {\n left: calc(50% - 6px);\n}\n\n.hint--top-left:after {\n margin-left: 12px;\n transform: translateX(-100%);\n}\n\n.hint--top-left:hover:before {\n transform: translateY(-8px);\n}\n\n.hint--top-left:hover:after {\n transform: translateX(-100%)translateY(-8px);\n}\n\n.hint--top-right:before {\n margin-bottom: -11px;\n}\n\n.hint--top-right:before, .hint--top-right:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top-right:before {\n left: calc(50% - 6px);\n}\n\n.hint--top-right:after {\n margin-left: -12px;\n transform: translateX(0);\n}\n\n.hint--top-right:hover:before, .hint--top-right:hover:after {\n transform: translateY(-8px);\n}\n\n.hint--bottom-left:before {\n margin-top: -11px;\n}\n\n.hint--bottom-left:before, .hint--bottom-left:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom-left:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom-left:after {\n margin-left: 12px;\n transform: translateX(-100%);\n}\n\n.hint--bottom-left:hover:before {\n transform: translateY(8px);\n}\n\n.hint--bottom-left:hover:after {\n transform: translateX(-100%)translateY(8px);\n}\n\n.hint--bottom-right:before {\n margin-top: -11px;\n}\n\n.hint--bottom-right:before, .hint--bottom-right:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom-right:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom-right:after {\n margin-left: -12px;\n transform: translateX(0);\n}\n\n.hint--bottom-right:hover:before, .hint--bottom-right:hover:after {\n transform: translateY(8px);\n}\n\n.hint--small:after, .hint--medium:after, .hint--large:after {\n white-space: normal;\n word-wrap: break-word;\n line-height: 1.4em;\n}\n\n.hint--small:after {\n width: 80px;\n}\n\n.hint--medium:after {\n width: 150px;\n}\n\n.hint--large:after {\n width: 300px;\n}\n\n[class*=\"hint--\"]:after {\n text-shadow: 0 -1px #000;\n box-shadow: 4px 4px 8px #0000004d;\n}\n\n.hint--error:after {\n text-shadow: 0 -1px #592726;\n background-color: #b34e4d;\n}\n\n.hint--error.hint--top-left:before, .hint--error.hint--top-right:before, .hint--error.hint--top:before {\n border-top-color: #b34e4d;\n}\n\n.hint--error.hint--bottom-left:before, .hint--error.hint--bottom-right:before, .hint--error.hint--bottom:before {\n border-bottom-color: #b34e4d;\n}\n\n.hint--error.hint--left:before {\n border-left-color: #b34e4d;\n}\n\n.hint--error.hint--right:before {\n border-right-color: #b34e4d;\n}\n\n.hint--warning:after {\n text-shadow: 0 -1px #6c5328;\n background-color: #c09854;\n}\n\n.hint--warning.hint--top-left:before, .hint--warning.hint--top-right:before, .hint--warning.hint--top:before {\n border-top-color: #c09854;\n}\n\n.hint--warning.hint--bottom-left:before, .hint--warning.hint--bottom-right:before, .hint--warning.hint--bottom:before {\n border-bottom-color: #c09854;\n}\n\n.hint--warning.hint--left:before {\n border-left-color: #c09854;\n}\n\n.hint--warning.hint--right:before {\n border-right-color: #c09854;\n}\n\n.hint--info:after {\n text-shadow: 0 -1px #1a3c4d;\n background-color: #3986ac;\n}\n\n.hint--info.hint--top-left:before, .hint--info.hint--top-right:before, .hint--info.hint--top:before {\n border-top-color: #3986ac;\n}\n\n.hint--info.hint--bottom-left:before, .hint--info.hint--bottom-right:before, .hint--info.hint--bottom:before {\n border-bottom-color: #3986ac;\n}\n\n.hint--info.hint--left:before {\n border-left-color: #3986ac;\n}\n\n.hint--info.hint--right:before {\n border-right-color: #3986ac;\n}\n\n.hint--success:after {\n text-shadow: 0 -1px #1a321a;\n background-color: #458746;\n}\n\n.hint--success.hint--top-left:before, .hint--success.hint--top-right:before, .hint--success.hint--top:before {\n border-top-color: #458746;\n}\n\n.hint--success.hint--bottom-left:before, .hint--success.hint--bottom-right:before, .hint--success.hint--bottom:before {\n border-bottom-color: #458746;\n}\n\n.hint--success.hint--left:before {\n border-left-color: #458746;\n}\n\n.hint--success.hint--right:before {\n border-right-color: #458746;\n}\n\n.hint--always:after, .hint--always:before {\n opacity: 1;\n visibility: visible;\n}\n\n.hint--always.hint--top:before {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--top:after {\n transform: translateX(-50%)translateY(-8px);\n}\n\n.hint--always.hint--top-left:before {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--top-left:after {\n transform: translateX(-100%)translateY(-8px);\n}\n\n.hint--always.hint--top-right:before, .hint--always.hint--top-right:after {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--bottom:before {\n transform: translateY(8px);\n}\n\n.hint--always.hint--bottom:after {\n transform: translateX(-50%)translateY(8px);\n}\n\n.hint--always.hint--bottom-left:before {\n transform: translateY(8px);\n}\n\n.hint--always.hint--bottom-left:after {\n transform: translateX(-100%)translateY(8px);\n}\n\n.hint--always.hint--bottom-right:before, .hint--always.hint--bottom-right:after {\n transform: translateY(8px);\n}\n\n.hint--always.hint--left:before, .hint--always.hint--left:after {\n transform: translateX(-8px);\n}\n\n.hint--always.hint--right:before, .hint--always.hint--right:after {\n transform: translateX(8px);\n}\n\n.hint--rounded:after {\n border-radius: 4px;\n}\n\n.hint--no-animate:before, .hint--no-animate:after {\n transition-duration: 0s;\n}\n\n.hint--bounce:before, .hint--bounce:after {\n -webkit-transition: opacity .3s, visibility .3s, -webkit-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n -moz-transition: opacity .3s, visibility .3s, -moz-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n transition: opacity .3s, visibility .3s, transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n}\n\n.hint--no-shadow:before, .hint--no-shadow:after {\n text-shadow: initial;\n box-shadow: initial;\n}\n\n.hint--no-arrow:before {\n display: none;\n}\n\n.art-mobile {\n --art-bottom-gap: 10px;\n --art-control-height: 38px;\n --art-control-icon-scale: 1;\n --art-state-size: 60px;\n --art-settings-scale: .85;\n --art-settings-max-height: 180px;\n --art-selector-max-height: 180px;\n --art-indicator-scale: 1;\n --art-control-opacity: 1;\n}\n\n.art-mobile .art-controls-left {\n margin-left: calc(var(--art-padding) / -1);\n}\n\n.art-mobile .art-controls-right {\n margin-right: calc(var(--art-padding) / -1);\n}\n\n"; +module.exports = ".art-video-player {\n --art-theme: red;\n --art-font-color: #fff;\n --art-background-color: #000;\n --art-text-shadow-color: #00000080;\n --art-transition-duration: .2s;\n --art-padding: 10px;\n --art-border-radius: 3px;\n --art-progress-height: 6px;\n --art-progress-color: #fff3;\n --art-hover-color: #ffffff80;\n --art-loaded-color: #fff3;\n --art-loop-color: #ffffffbf;\n --art-state-size: 80px;\n --art-state-opacity: .8;\n --art-bottom-height: 100px;\n --art-bottom-offset: 20px;\n --art-bottom-gap: 5px;\n --art-highlight-width: 8px;\n --art-highlight-color: #ffffff80;\n --art-loop-width: 2px;\n --art-control-height: 46px;\n --art-control-opacity: .75;\n --art-control-icon-size: 36px;\n --art-control-icon-scale: 1.1;\n --art-volume-height: 120px;\n --art-volume-handle-size: 14px;\n --art-lock-size: 36px;\n --art-indicator-scale: 0;\n --art-indicator-size: 16px;\n --art-fullscreen-web-index: 9999;\n --art-settings-scale: 1;\n --art-settings-icon-size: 24px;\n --art-settings-max-height: 300px;\n --art-selector-max-height: 300px;\n --art-contextmenus-min-width: 250px;\n --art-subtitle-font-size: 20px;\n --art-subtitle-gap: 5px;\n --art-subtitle-bottom: 15px;\n --art-subtitle-border: #000;\n --art-widget-background: #000000d9;\n --art-tip-background: #00000080;\n --art-scrollbar-size: 4px;\n --art-scrollbar-background: #ffffff40;\n --art-scrollbar-background-hover: #ffffff80;\n --art-mini-progress-height: 2px;\n}\n\n.art-bg-cover {\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n.art-bottom-gradient {\n background-image: linear-gradient(to top, #000, #0006, #0000);\n background-position: bottom;\n background-repeat: repeat-x;\n}\n\n.art-backdrop-filter {\n -webkit-backdrop-filter: saturate(180%) blur(20px);\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000bf !important;\n}\n\n.art-truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.art-video-player {\n width: 100%;\n height: 100%;\n zoom: 1;\n text-align: left;\n direction: ltr;\n user-select: none;\n box-sizing: border-box;\n color: var(--art-font-color);\n background-color: var(--art-background-color);\n text-shadow: 0 0 2px var(--art-text-shadow-color);\n -webkit-tap-highlight-color: #0000;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n -ms-high-contrast-adjust: none;\n outline: 0;\n margin: 0 auto;\n padding: 0;\n font-family: PingFang SC, Helvetica Neue, Microsoft YaHei, Roboto, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.3;\n position: relative;\n}\n\n.art-video-player *, .art-video-player :before, .art-video-player :after {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\n.art-video-player ::-webkit-scrollbar {\n width: var(--art-scrollbar-size);\n height: var(--art-scrollbar-size);\n}\n\n.art-video-player ::-webkit-scrollbar-thumb {\n background-color: var(--art-scrollbar-background);\n}\n\n.art-video-player ::-webkit-scrollbar-thumb:hover {\n background-color: var(--art-scrollbar-background-hover);\n}\n\n.art-video-player img {\n max-width: 100%;\n vertical-align: top;\n}\n\n.art-video-player svg {\n fill: var(--art-font-color);\n}\n\n.art-video-player a {\n color: var(--art-font-color);\n text-decoration: none;\n}\n\n.art-icon {\n justify-content: center;\n align-items: center;\n line-height: 1;\n display: flex;\n}\n\n.art-video-player.art-backdrop .art-contextmenus, .art-video-player.art-backdrop .art-info, .art-video-player.art-backdrop .art-settings, .art-video-player.art-backdrop .art-layer-auto-playback, .art-video-player.art-backdrop .art-selector-list, .art-video-player.art-backdrop .art-volume-inner {\n -webkit-backdrop-filter: saturate(180%) blur(20px);\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000bf !important;\n}\n\n.art-video {\n z-index: 10;\n width: 100%;\n height: 100%;\n cursor: pointer;\n position: absolute;\n inset: 0;\n}\n\n.art-poster {\n z-index: 11;\n width: 100%;\n height: 100%;\n pointer-events: none;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-subtitle {\n z-index: 20;\n width: 100%;\n text-align: center;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n gap: var(--art-subtitle-gap);\n bottom: var(--art-subtitle-bottom);\n font-size: var(--art-subtitle-font-size);\n transition: bottom var(--art-transition-duration) ease;\n text-shadow: var(--art-subtitle-border) 1px 0 1px, var(--art-subtitle-border) 0 1px 1px, var(--art-subtitle-border) -1px 0 1px, var(--art-subtitle-border) 0 -1px 1px, var(--art-subtitle-border) 1px 1px 1px, var(--art-subtitle-border) -1px -1px 1px, var(--art-subtitle-border) 1px -1px 1px, var(--art-subtitle-border) -1px 1px 1px;\n flex-direction: column;\n padding: 0 5%;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-subtitle p {\n word-break: break-all;\n height: fit-content;\n}\n\n.art-video-player.art-subtitle-show .art-subtitle {\n display: flex;\n}\n\n.art-video-player.art-control-show .art-subtitle {\n bottom: calc(var(--art-control-height) + var(--art-subtitle-bottom));\n}\n\n.art-danmuku {\n z-index: 30;\n width: 100%;\n height: 100%;\n pointer-events: none;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-layers {\n z-index: 40;\n width: 100%;\n height: 100%;\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-layers .art-layer {\n pointer-events: auto;\n}\n\n.art-video-player.art-layer-show .art-layers {\n display: flex;\n}\n\n.art-video-player .art-mask {\n z-index: 50;\n width: 100%;\n height: 100%;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-mask .art-state {\n opacity: 0;\n width: var(--art-state-size);\n height: var(--art-state-size);\n transition: all var(--art-transition-duration) ease;\n justify-content: center;\n align-items: center;\n display: flex;\n transform: scale(2);\n}\n\n.art-video-player.art-mask-show .art-state {\n cursor: pointer;\n pointer-events: auto;\n opacity: var(--art-state-opacity);\n transform: scale(1);\n}\n\n.art-video-player.art-loading-show .art-state {\n display: none;\n}\n\n.art-video-player .art-loading {\n z-index: 70;\n width: 100%;\n height: 100%;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player.art-loading-show .art-loading {\n display: flex;\n}\n\n.art-video-player .art-bottom {\n z-index: 60;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n justify-content: end;\n gap: var(--art-bottom-gap);\n padding: 0 var(--art-padding);\n transform: translateY(var(--art-bottom-offset));\n transition: all var(--art-transition-duration) ease;\n background-size: 100% var(--art-bottom-height);\n background-image: linear-gradient(to top, #000, #0006, #0000);\n background-position: bottom;\n background-repeat: repeat-x;\n flex-direction: column;\n display: flex;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player.art-control-show .art-bottom, .art-video-player.art-hover .art-bottom {\n opacity: 1;\n transform: translateY(0);\n}\n\n.art-bottom .art-progress {\n z-index: 0;\n pointer-events: auto;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress {\n cursor: pointer;\n height: var(--art-progress-height);\n justify-content: center;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner {\n height: 50%;\n width: 100%;\n transition: height var(--art-transition-duration) ease;\n background-color: var(--art-progress-color);\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover {\n z-index: 0;\n width: 100%;\n height: 100%;\n width: 0%;\n background-color: var(--art-hover-color);\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded {\n z-index: 10;\n width: 100%;\n height: 100%;\n width: 0%;\n background-color: var(--art-loaded-color);\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played {\n z-index: 20;\n width: 100%;\n height: 100%;\n width: 0%;\n background-color: var(--art-theme);\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight {\n z-index: 30;\n width: 100%;\n height: 100%;\n pointer-events: none;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span {\n z-index: 0;\n width: 100%;\n height: 100%;\n pointer-events: auto;\n width: var(--art-highlight-width);\n transform: translateX(calc(var(--art-highlight-width) / -2));\n background-color: var(--art-highlight-color);\n position: absolute;\n inset: 0 auto 0 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n z-index: 40;\n width: var(--art-indicator-size);\n height: var(--art-indicator-size);\n transform: scale(var(--art-indicator-scale));\n margin-left: calc(var(--art-indicator-size) / -2);\n transition: transform var(--art-transition-duration) ease;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n left: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon {\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover {\n transform: scale(1.2) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active {\n transform: scale(1) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip {\n z-index: 50;\n border-radius: var(--art-border-radius);\n white-space: nowrap;\n background-color: var(--art-tip-background);\n padding: 3px 5px;\n font-size: 12px;\n line-height: 1;\n display: none;\n position: absolute;\n top: -25px;\n left: 0;\n}\n\n.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner {\n height: 100%;\n}\n\n.art-bottom .art-progress .art-control-thumbnails {\n border-radius: var(--art-border-radius);\n pointer-events: none;\n background-color: var(--art-widget-background);\n display: none;\n position: absolute;\n bottom: 10px;\n left: 0;\n box-shadow: 0 1px 3px #0003, 0 1px 2px -1px #0003;\n}\n\n.art-bottom .art-progress .art-control-loop {\n z-index: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-loop .art-loop-point {\n z-index: 0;\n width: 100%;\n height: 100%;\n width: var(--art-loop-width);\n background-color: var(--art-loop-color);\n transform: translateX(calc(var(--art-loop-width) / -2)) scaleY(1.5);\n position: absolute;\n inset: 0 0 0 0%;\n}\n\n.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n transform: scale(1);\n}\n\n.art-controls {\n z-index: 10;\n pointer-events: auto;\n height: var(--art-control-height);\n justify-content: space-between;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-controls .art-controls-left, .art-controls .art-controls-right {\n height: 100%;\n display: flex;\n}\n\n.art-controls .art-controls-center {\n height: 100%;\n flex: 1;\n justify-content: center;\n align-items: center;\n padding: 0 10px;\n display: none;\n}\n\n.art-controls .art-controls-right {\n justify-content: flex-end;\n}\n\n.art-controls .art-control {\n cursor: pointer;\n white-space: nowrap;\n opacity: var(--art-control-opacity);\n min-height: var(--art-control-height);\n min-width: var(--art-control-height);\n transition: opacity var(--art-transition-duration) ease;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-controls .art-control .art-icon {\n height: var(--art-control-icon-size);\n width: var(--art-control-icon-size);\n transform: scale(var(--art-control-icon-scale));\n transition: transform var(--art-transition-duration) ease;\n}\n\n.art-controls .art-control .art-icon:active {\n transform: scale(calc(var(--art-control-icon-scale) * .8));\n}\n\n.art-controls .art-control:hover {\n opacity: 1;\n}\n\n.art-control-volume {\n position: relative;\n}\n\n.art-control-volume .art-volume-panel {\n text-align: center;\n cursor: default;\n opacity: 0;\n pointer-events: none;\n left: 0;\n right: 0;\n bottom: var(--art-control-height);\n width: var(--art-control-height);\n height: var(--art-volume-height);\n transition: all var(--art-transition-duration) ease;\n justify-content: center;\n align-items: center;\n padding: 0 5px;\n font-size: 12px;\n display: flex;\n position: absolute;\n transform: translateY(10px);\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner {\n height: 100%;\n width: 100%;\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n flex-direction: column;\n align-items: center;\n gap: 10px;\n padding: 10px 0 12px;\n display: flex;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider {\n width: 100%;\n cursor: pointer;\n flex: 1;\n justify-content: center;\n display: flex;\n position: relative;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle {\n width: 2px;\n border-radius: var(--art-border-radius);\n background-color: #ffffff40;\n justify-content: center;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded {\n z-index: 0;\n width: 100%;\n height: 100%;\n background-color: var(--art-theme);\n position: absolute;\n inset: 0;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator {\n width: var(--art-volume-handle-size);\n height: var(--art-volume-handle-size);\n margin-top: calc(var(--art-volume-handle-size) / -2);\n background-color: var(--art-theme);\n transition: transform var(--art-transition-duration) ease;\n border-radius: 100%;\n flex-shrink: 0;\n position: absolute;\n transform: scale(1);\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator {\n transform: scale(.9);\n}\n\n.art-control-volume:hover .art-volume-panel {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n.art-video-player .art-notice {\n z-index: 80;\n width: 100%;\n height: 100%;\n height: auto;\n padding: var(--art-padding);\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0 0 auto;\n}\n\n.art-video-player .art-notice .art-notice-inner {\n border-radius: var(--art-border-radius);\n background-color: var(--art-tip-background);\n padding: 5px;\n line-height: 1;\n display: inline-flex;\n}\n\n.art-video-player.art-notice-show .art-notice {\n display: flex;\n}\n\n.art-video-player .art-contextmenus {\n z-index: 120;\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n min-width: var(--art-contextmenus-min-width);\n flex-direction: column;\n padding: 5px 0;\n font-size: 12px;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu {\n cursor: pointer;\n border-bottom: 1px solid #ffffff1a;\n padding: 10px 15px;\n display: flex;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span {\n padding: 0 8px;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span:hover, .art-video-player .art-contextmenus .art-contextmenu span.art-current {\n color: var(--art-theme);\n}\n\n.art-video-player .art-contextmenus .art-contextmenu:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu:last-child {\n border-bottom: none;\n}\n\n.art-video-player.art-contextmenu-show .art-contextmenus {\n display: flex;\n}\n\n.art-video-player .art-settings {\n z-index: 90;\n border-radius: var(--art-border-radius);\n transform-origin: 100% 100%;\n max-height: var(--art-settings-max-height);\n left: auto;\n right: var(--art-padding);\n bottom: var(--art-control-height);\n transform: scale(var(--art-settings-scale));\n transition: all var(--art-transition-duration) ease;\n background-color: var(--art-widget-background);\n flex-direction: column;\n display: none;\n position: absolute;\n overflow: hidden auto;\n}\n\n.art-video-player .art-settings .art-setting-panel {\n flex-direction: column;\n display: none;\n}\n\n.art-video-player .art-settings .art-setting-panel.art-current {\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item {\n height: 35px;\n cursor: pointer;\n transition: background-color var(--art-transition-duration) ease;\n justify-content: space-between;\n align-items: center;\n padding: 0 5px;\n line-height: 1;\n display: flex;\n overflow: hidden;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current {\n color: var(--art-theme);\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check {\n visibility: hidden;\n height: 15px;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check {\n visibility: visible;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left {\n justify-content: center;\n align-items: center;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon {\n height: var(--art-settings-icon-size);\n width: var(--art-settings-icon-size);\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right {\n justify-content: center;\n align-items: center;\n gap: 5px;\n font-size: 12px;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip {\n white-space: nowrap;\n color: #ffffff80;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon {\n min-width: 32px;\n height: 24px;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range {\n height: 3px;\n width: 80px;\n appearance: none;\n background-color: #fff3;\n outline: none;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item-back {\n border-bottom: 1px solid #ffffff1a;\n}\n\n.art-video-player.art-setting-show .art-settings {\n display: flex;\n}\n\n.art-video-player .art-info {\n left: var(--art-padding);\n top: var(--art-padding);\n z-index: 100;\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n padding: 10px;\n font-size: 12px;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-info .art-info-panel {\n flex-direction: column;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item {\n align-items: center;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item .art-info-title {\n width: 100px;\n text-align: right;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item .art-info-content {\n width: 250px;\n text-overflow: ellipsis;\n white-space: nowrap;\n user-select: all;\n overflow: hidden;\n}\n\n.art-video-player .art-info .art-info-close {\n cursor: pointer;\n position: absolute;\n top: 5px;\n right: 5px;\n}\n\n.art-video-player.art-info-show .art-info {\n display: flex;\n}\n\n.art-hide-cursor * {\n cursor: none !important;\n}\n\n.art-video-player[data-aspect-ratio] video {\n box-sizing: content-box;\n object-fit: fill;\n}\n\n.art-fullscreen-web {\n z-index: var(--art-fullscreen-web-index);\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-mini-popup {\n z-index: 9999;\n width: 320px;\n height: 180px;\n border-radius: var(--art-border-radius);\n cursor: move;\n user-select: none;\n background: #000;\n transition: opacity .2s;\n position: fixed;\n overflow: hidden;\n box-shadow: 0 0 5px #00000080;\n}\n\n.art-mini-popup svg {\n fill: #fff;\n}\n\n.art-mini-popup .art-video {\n pointer-events: none;\n}\n\n.art-mini-popup .art-mini-close {\n z-index: 20;\n cursor: pointer;\n opacity: 0;\n transition: opacity .2s;\n position: absolute;\n top: 10px;\n right: 10px;\n}\n\n.art-mini-popup .art-mini-state {\n z-index: 30;\n width: 100%;\n height: 100%;\n pointer-events: none;\n opacity: 0;\n background-color: #00000040;\n justify-content: center;\n align-items: center;\n transition: opacity .2s;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.art-mini-popup .art-mini-state .art-icon {\n opacity: .75;\n cursor: pointer;\n pointer-events: auto;\n transition: transform .2s;\n transform: scale(3);\n}\n\n.art-mini-popup .art-mini-state .art-icon:active {\n transform: scale(2.5);\n}\n\n.art-mini-popup.art-mini-droging {\n opacity: .9;\n}\n\n.art-mini-popup:hover .art-mini-close, .art-mini-popup:hover .art-mini-state {\n opacity: 1;\n}\n\n.art-auto-size {\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-auto-size .art-video-player {\n transition: width, height var(--art-transition-duration) ease;\n}\n\n.art-video-player[data-flip=\"horizontal\"] .art-video {\n transform: scaleX(-1);\n}\n\n.art-video-player[data-flip=\"vertical\"] .art-video {\n transform: scaleY(-1);\n}\n\n.art-video-player .art-layer-mini-progress-bar {\n z-index: 0;\n width: 100%;\n height: 100%;\n height: var(--art-mini-progress-height);\n background-color: var(--art-theme);\n display: flex;\n position: absolute;\n inset: auto 0 0;\n}\n\n.art-video-player .art-layer-lock {\n height: var(--art-lock-size);\n width: var(--art-lock-size);\n top: 50%;\n left: var(--art-padding);\n background-color: var(--art-tip-background);\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n transform: translateY(-50%);\n}\n\n.art-video-player .art-layer-auto-playback {\n border-radius: var(--art-border-radius);\n left: var(--art-padding);\n bottom: calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);\n background-color: var(--art-widget-background);\n align-items: center;\n gap: 10px;\n padding: 10px;\n line-height: 1;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-close {\n cursor: pointer;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-close svg {\n width: 15px;\n height: 15px;\n fill: var(--art-theme);\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-jump {\n color: var(--art-theme);\n cursor: pointer;\n}\n\n.art-video-player.art-lock .art-bottom {\n display: none !important;\n}\n\n.art-video-player.art-lock .art-subtitle {\n bottom: var(--art-subtitle-bottom) !important;\n}\n\n.art-video-player.art-lock .art-layer-mini-progress-bar {\n display: flex !important;\n}\n\n.art-video-player.art-control-show .art-layer-mini-progress-bar {\n display: none;\n}\n\n.art-video-player.art-control-show .art-layer-lock {\n display: flex;\n}\n\n.art-control-selector {\n position: relative;\n}\n\n.art-control-selector .art-selector-list {\n text-align: center;\n border-radius: var(--art-border-radius);\n opacity: 0;\n pointer-events: none;\n bottom: var(--art-control-height);\n max-height: var(--art-selector-max-height);\n background-color: var(--art-widget-background);\n transition: all var(--art-transition-duration) ease;\n flex-direction: column;\n justify-content: center;\n display: flex;\n position: absolute;\n overflow: hidden auto;\n transform: translateY(10px);\n}\n\n.art-control-selector .art-selector-list .art-selector-item {\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n padding: 10px 15px;\n line-height: 1;\n display: flex;\n}\n\n.art-control-selector .art-selector-list .art-selector-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-control-selector .art-selector-list .art-selector-item:hover, .art-control-selector .art-selector-list .art-selector-item.art-current {\n color: var(--art-theme);\n}\n\n.art-control-selector:hover .art-selector-list {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n[class*=\"hint--\"] {\n font-style: normal;\n display: inline-block;\n position: relative;\n}\n\n[class*=\"hint--\"]:before, [class*=\"hint--\"]:after {\n visibility: hidden;\n opacity: 0;\n z-index: 1000000;\n pointer-events: none;\n transition: all .3s;\n transition-delay: 0s;\n position: absolute;\n transform: translate3d(0, 0, 0);\n}\n\n[class*=\"hint--\"]:hover:before, [class*=\"hint--\"]:hover:after {\n visibility: visible;\n opacity: 1;\n transition-delay: .1s;\n}\n\n[class*=\"hint--\"]:before {\n content: \"\";\n z-index: 1000001;\n background: none;\n border: 6px solid #0000;\n position: absolute;\n}\n\n[class*=\"hint--\"]:after {\n color: #fff;\n white-space: nowrap;\n background: #000;\n padding: 8px 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 12px;\n line-height: 12px;\n}\n\n[class*=\"hint--\"][aria-label]:after {\n content: attr(aria-label);\n}\n\n[class*=\"hint--\"][data-hint]:after {\n content: attr(data-hint);\n}\n\n[aria-label=\"\"]:before, [aria-label=\"\"]:after, [data-hint=\"\"]:before, [data-hint=\"\"]:after {\n display: none !important;\n}\n\n.hint--top-left:before, .hint--top-right:before, .hint--top:before {\n border-top-color: #000;\n}\n\n.hint--bottom-left:before, .hint--bottom-right:before, .hint--bottom:before {\n border-bottom-color: #000;\n}\n\n.hint--left:before {\n border-left-color: #000;\n}\n\n.hint--right:before {\n border-right-color: #000;\n}\n\n.hint--top:before {\n margin-bottom: -11px;\n}\n\n.hint--top:before, .hint--top:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top:before {\n left: calc(50% - 6px);\n}\n\n.hint--top:after {\n transform: translateX(-50%);\n}\n\n.hint--top:hover:before {\n transform: translateY(-8px);\n}\n\n.hint--top:hover:after {\n transform: translateX(-50%)translateY(-8px);\n}\n\n.hint--bottom:before {\n margin-top: -11px;\n}\n\n.hint--bottom:before, .hint--bottom:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom:after {\n transform: translateX(-50%);\n}\n\n.hint--bottom:hover:before {\n transform: translateY(8px);\n}\n\n.hint--bottom:hover:after {\n transform: translateX(-50%)translateY(8px);\n}\n\n.hint--right:before {\n margin-bottom: -6px;\n margin-left: -11px;\n}\n\n.hint--right:after {\n margin-bottom: -14px;\n}\n\n.hint--right:before, .hint--right:after {\n bottom: 50%;\n left: 100%;\n}\n\n.hint--right:hover:before, .hint--right:hover:after {\n transform: translateX(8px);\n}\n\n.hint--left:before {\n margin-bottom: -6px;\n margin-right: -11px;\n}\n\n.hint--left:after {\n margin-bottom: -14px;\n}\n\n.hint--left:before, .hint--left:after {\n bottom: 50%;\n right: 100%;\n}\n\n.hint--left:hover:before, .hint--left:hover:after {\n transform: translateX(-8px);\n}\n\n.hint--top-left:before {\n margin-bottom: -11px;\n}\n\n.hint--top-left:before, .hint--top-left:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top-left:before {\n left: calc(50% - 6px);\n}\n\n.hint--top-left:after {\n margin-left: 12px;\n transform: translateX(-100%);\n}\n\n.hint--top-left:hover:before {\n transform: translateY(-8px);\n}\n\n.hint--top-left:hover:after {\n transform: translateX(-100%)translateY(-8px);\n}\n\n.hint--top-right:before {\n margin-bottom: -11px;\n}\n\n.hint--top-right:before, .hint--top-right:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top-right:before {\n left: calc(50% - 6px);\n}\n\n.hint--top-right:after {\n margin-left: -12px;\n transform: translateX(0);\n}\n\n.hint--top-right:hover:before, .hint--top-right:hover:after {\n transform: translateY(-8px);\n}\n\n.hint--bottom-left:before {\n margin-top: -11px;\n}\n\n.hint--bottom-left:before, .hint--bottom-left:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom-left:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom-left:after {\n margin-left: 12px;\n transform: translateX(-100%);\n}\n\n.hint--bottom-left:hover:before {\n transform: translateY(8px);\n}\n\n.hint--bottom-left:hover:after {\n transform: translateX(-100%)translateY(8px);\n}\n\n.hint--bottom-right:before {\n margin-top: -11px;\n}\n\n.hint--bottom-right:before, .hint--bottom-right:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom-right:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom-right:after {\n margin-left: -12px;\n transform: translateX(0);\n}\n\n.hint--bottom-right:hover:before, .hint--bottom-right:hover:after {\n transform: translateY(8px);\n}\n\n.hint--small:after, .hint--medium:after, .hint--large:after {\n white-space: normal;\n word-wrap: break-word;\n line-height: 1.4em;\n}\n\n.hint--small:after {\n width: 80px;\n}\n\n.hint--medium:after {\n width: 150px;\n}\n\n.hint--large:after {\n width: 300px;\n}\n\n[class*=\"hint--\"]:after {\n text-shadow: 0 -1px #000;\n box-shadow: 4px 4px 8px #0000004d;\n}\n\n.hint--error:after {\n text-shadow: 0 -1px #592726;\n background-color: #b34e4d;\n}\n\n.hint--error.hint--top-left:before, .hint--error.hint--top-right:before, .hint--error.hint--top:before {\n border-top-color: #b34e4d;\n}\n\n.hint--error.hint--bottom-left:before, .hint--error.hint--bottom-right:before, .hint--error.hint--bottom:before {\n border-bottom-color: #b34e4d;\n}\n\n.hint--error.hint--left:before {\n border-left-color: #b34e4d;\n}\n\n.hint--error.hint--right:before {\n border-right-color: #b34e4d;\n}\n\n.hint--warning:after {\n text-shadow: 0 -1px #6c5328;\n background-color: #c09854;\n}\n\n.hint--warning.hint--top-left:before, .hint--warning.hint--top-right:before, .hint--warning.hint--top:before {\n border-top-color: #c09854;\n}\n\n.hint--warning.hint--bottom-left:before, .hint--warning.hint--bottom-right:before, .hint--warning.hint--bottom:before {\n border-bottom-color: #c09854;\n}\n\n.hint--warning.hint--left:before {\n border-left-color: #c09854;\n}\n\n.hint--warning.hint--right:before {\n border-right-color: #c09854;\n}\n\n.hint--info:after {\n text-shadow: 0 -1px #1a3c4d;\n background-color: #3986ac;\n}\n\n.hint--info.hint--top-left:before, .hint--info.hint--top-right:before, .hint--info.hint--top:before {\n border-top-color: #3986ac;\n}\n\n.hint--info.hint--bottom-left:before, .hint--info.hint--bottom-right:before, .hint--info.hint--bottom:before {\n border-bottom-color: #3986ac;\n}\n\n.hint--info.hint--left:before {\n border-left-color: #3986ac;\n}\n\n.hint--info.hint--right:before {\n border-right-color: #3986ac;\n}\n\n.hint--success:after {\n text-shadow: 0 -1px #1a321a;\n background-color: #458746;\n}\n\n.hint--success.hint--top-left:before, .hint--success.hint--top-right:before, .hint--success.hint--top:before {\n border-top-color: #458746;\n}\n\n.hint--success.hint--bottom-left:before, .hint--success.hint--bottom-right:before, .hint--success.hint--bottom:before {\n border-bottom-color: #458746;\n}\n\n.hint--success.hint--left:before {\n border-left-color: #458746;\n}\n\n.hint--success.hint--right:before {\n border-right-color: #458746;\n}\n\n.hint--always:after, .hint--always:before {\n opacity: 1;\n visibility: visible;\n}\n\n.hint--always.hint--top:before {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--top:after {\n transform: translateX(-50%)translateY(-8px);\n}\n\n.hint--always.hint--top-left:before {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--top-left:after {\n transform: translateX(-100%)translateY(-8px);\n}\n\n.hint--always.hint--top-right:before, .hint--always.hint--top-right:after {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--bottom:before {\n transform: translateY(8px);\n}\n\n.hint--always.hint--bottom:after {\n transform: translateX(-50%)translateY(8px);\n}\n\n.hint--always.hint--bottom-left:before {\n transform: translateY(8px);\n}\n\n.hint--always.hint--bottom-left:after {\n transform: translateX(-100%)translateY(8px);\n}\n\n.hint--always.hint--bottom-right:before, .hint--always.hint--bottom-right:after {\n transform: translateY(8px);\n}\n\n.hint--always.hint--left:before, .hint--always.hint--left:after {\n transform: translateX(-8px);\n}\n\n.hint--always.hint--right:before, .hint--always.hint--right:after {\n transform: translateX(8px);\n}\n\n.hint--rounded:after {\n border-radius: 4px;\n}\n\n.hint--no-animate:before, .hint--no-animate:after {\n transition-duration: 0s;\n}\n\n.hint--bounce:before, .hint--bounce:after {\n -webkit-transition: opacity .3s, visibility .3s, -webkit-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n -moz-transition: opacity .3s, visibility .3s, -moz-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n transition: opacity .3s, visibility .3s, transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n}\n\n.hint--no-shadow:before, .hint--no-shadow:after {\n text-shadow: initial;\n box-shadow: initial;\n}\n\n.hint--no-arrow:before {\n display: none;\n}\n\n.art-mobile {\n --art-bottom-gap: 10px;\n --art-control-height: 38px;\n --art-control-icon-scale: 1;\n --art-state-size: 60px;\n --art-settings-scale: .85;\n --art-settings-max-height: 180px;\n --art-selector-max-height: 180px;\n --art-indicator-scale: 1;\n --art-control-opacity: 1;\n}\n\n.art-mobile .art-controls-left {\n margin-left: calc(var(--art-padding) / -1);\n}\n\n.art-mobile .art-controls-right {\n margin-right: calc(var(--art-padding) / -1);\n}\n\n"; },{}],"2tbdu":[function(require,module,exports) { !function(r, t) { @@ -3081,7 +3081,7 @@ class Component { } exports.default = Component; -},{"./dom":"dNynC","./error":"622b3","option-validator":"2tbdu","../scheme":"gL38d","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6","./format":"eWip5"}],"bHDMy":[function(require,module,exports) { +},{"./dom":"dNynC","./format":"eWip5","./error":"622b3","option-validator":"2tbdu","../scheme":"gL38d","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bHDMy":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -4578,6 +4578,7 @@ var _subtitleOffset = require("./subtitleOffset"); var _subtitleOffsetDefault = parcelHelpers.interopDefault(_subtitleOffset); var _component = require("../utils/component"); var _componentDefault = parcelHelpers.interopDefault(_component); +var _error = require("../utils/error"); var _utils = require("../utils"); class Setting extends (0, _componentDefault.default) { constructor(art){ @@ -4589,7 +4590,7 @@ class Setting extends (0, _componentDefault.default) { this.events = []; this.cache = new Map(); if (option.setting) { - this.update(option.settings); + this.init(); art.on("blur", ()=>{ if (this.show) { this.show = false; @@ -4624,28 +4625,56 @@ class Setting extends (0, _componentDefault.default) { if (option.subtitleOffset) result.push((0, _subtitleOffsetDefault.default)(this.art)); return result; } - remove() { + init() { + const { option } = this.art; + const mergeSettings = [ + ...this.defaultSettings, + ...option.settings + ]; + this.option = Setting.makeRecursion(mergeSettings); + this.destroy(); + this.render(this.option); + } + destroy() { for(let index = 0; index < this.events.length; index++)this.art.events.remove(this.events[index]); this.$parent.innerHTML = ""; this.events = []; this.cache = new Map(); } - update(settings) { - this.remove(); - const settingsCopy = settings.map((item)=>(0, _utils.mergeDeep)({}, item)); - const mergeSettings = [ - ...this.defaultSettings, - ...settingsCopy - ]; - this.option = Setting.makeRecursion(mergeSettings); + find(name = "", option = this.option) { + for(let index = 0; index < option.length; index++){ + const item = option[index]; + if (item.name === name) return item; + else { + const result = this.find(name, item.selector || []); + if (result) return result; + } + } + } + remove(name) { + const item = this.find(name); + (0, _error.errorHandle)(item, `Can't find [${name}] from the [setting]`); + const parent = item.$parentItem?.selector || this.option; + parent.splice(parent.indexOf(item), 1); + this.option = Setting.makeRecursion(this.option); + this.destroy(); this.render(this.option); return this.option; } + update(setting) { + const item = this.find(setting.name); + if (item) { + Object.assign(item, setting); + this.option = Setting.makeRecursion(this.option); + this.destroy(); + this.render(this.option); + } else this.add(setting); + return this.option; + } add(setting) { - this.remove(); - const settingCopy = (0, _utils.mergeDeep)({}, setting); - this.option.push(settingCopy); + this.option.push(setting); this.option = Setting.makeRecursion(this.option); + this.destroy(); this.render(this.option); return this.option; } @@ -4889,7 +4918,7 @@ class Setting extends (0, _componentDefault.default) { } exports.default = Setting; -},{"./flip":"7rVpZ","./aspectRatio":"9hfUt","./playbackRate":"8RIYy","./subtitleOffset":"aVPfi","../utils/component":"bgug2","../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"7rVpZ":[function(require,module,exports) { +},{"./flip":"7rVpZ","./aspectRatio":"9hfUt","./playbackRate":"8RIYy","./subtitleOffset":"aVPfi","../utils/component":"bgug2","../utils/error":"622b3","../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"7rVpZ":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -4902,12 +4931,14 @@ function flip(art) { } return { width: SETTING_ITEM_WIDTH, + name: "flip", html: i18n.get("Video Flip"), tooltip: i18n.get((0, _utils.capitalize)(art.flip)), icon: icons.flip, selector: FLIP.map((item)=>{ return { value: item, + name: `aspect-ratio-${item}`, default: item === art.flip, html: i18n.get((0, _utils.capitalize)(item)) }; @@ -4942,12 +4973,14 @@ function aspectRatio(art) { } return { width: SETTING_ITEM_WIDTH, + name: "aspect-ratio", html: i18n.get("Aspect Ratio"), icon: icons.aspectRatio, tooltip: getI18n(art.aspectRatio), selector: ASPECT_RATIO.map((item)=>{ return { value: item, + name: `aspect-ratio-${item}`, default: item === art.aspectRatio, html: getI18n(item) }; @@ -4982,12 +5015,14 @@ function playbackRate(art) { } return { width: SETTING_ITEM_WIDTH, + name: "playback-rate", html: i18n.get("Play Speed"), tooltip: getI18n(art.playbackRate), icon: icons.playbackRate, selector: PLAYBACK_RATE.map((item)=>{ return { value: item, + name: `aspect-ratio-${item}`, default: item === art.playbackRate, html: getI18n(item) }; @@ -5013,6 +5048,7 @@ function subtitleOffset(art) { const { i18n , icons , constructor } = art; return { width: constructor.SETTING_ITEM_WIDTH, + name: "subtitle-offset", html: i18n.get("Subtitle Offset"), icon: icons.subtitle, tooltip: "0s", diff --git a/docs/uncompiled/artplayer/index.js.map b/docs/uncompiled/artplayer/index.js.map index 237c922a5..c4a3ac811 100644 --- a/docs/uncompiled/artplayer/index.js.map +++ b/docs/uncompiled/artplayer/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["packages/artplayer/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-36399c71fd65785e.js","node_modules/option-validator/dist/option-validator.js","packages/artplayer/src/utils/emitter.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","packages/artplayer/src/utils/index.js","packages/artplayer/src/utils/dom.js","packages/artplayer/src/utils/compatibility.js","packages/artplayer/src/utils/error.js","packages/artplayer/src/utils/subtitle.js","packages/artplayer/src/utils/file.js","packages/artplayer/src/utils/property.js","packages/artplayer/src/utils/time.js","packages/artplayer/src/utils/format.js","packages/artplayer/src/scheme/index.js","packages/artplayer/src/config/index.js","packages/artplayer/src/whitelist.js","packages/artplayer/src/template.js","packages/artplayer/src/i18n/index.js","packages/artplayer/src/i18n/zh-cn.json","packages/artplayer/src/i18n/zh-tw.json","packages/artplayer/src/i18n/pl.json","packages/artplayer/src/i18n/cs.json","packages/artplayer/src/i18n/es.json","packages/artplayer/src/i18n/fa.json","packages/artplayer/src/i18n/fr.json","packages/artplayer/src/i18n/id.json","packages/artplayer/src/i18n/ru.json","packages/artplayer/src/player/index.js","packages/artplayer/src/player/urlMix.js","packages/artplayer/src/player/attrMix.js","packages/artplayer/src/player/playMix.js","packages/artplayer/src/player/pauseMix.js","packages/artplayer/src/player/toggleMix.js","packages/artplayer/src/player/seekMix.js","packages/artplayer/src/player/volumeMix.js","packages/artplayer/src/player/currentTimeMix.js","packages/artplayer/src/player/durationMix.js","packages/artplayer/src/player/switchMix.js","packages/artplayer/src/player/playbackRateMix.js","packages/artplayer/src/player/aspectRatioMix.js","packages/artplayer/src/player/screenshotMix.js","packages/artplayer/src/player/fullscreenMix.js","packages/artplayer/src/libs/screenfull.js","packages/artplayer/src/player/fullscreenWebMix.js","packages/artplayer/src/player/pipMix.js","packages/artplayer/src/player/loadedMix.js","packages/artplayer/src/player/playedMix.js","packages/artplayer/src/player/playingMix.js","packages/artplayer/src/player/autoSizeMix.js","packages/artplayer/src/player/rectMix.js","packages/artplayer/src/player/flipMix.js","packages/artplayer/src/player/miniMix.js","packages/artplayer/src/player/loopMix.js","packages/artplayer/src/player/posterMix.js","packages/artplayer/src/player/autoHeightMix.js","packages/artplayer/src/player/cssVarMix.js","packages/artplayer/src/player/themeMix.js","packages/artplayer/src/player/titleMix.js","packages/artplayer/src/player/typeMix.js","packages/artplayer/src/player/stateMix.js","packages/artplayer/src/player/subtitleOffsetMix.js","packages/artplayer/src/player/airplayMix.js","packages/artplayer/src/player/optionInit.js","packages/artplayer/src/player/eventInit.js","packages/artplayer/src/control/index.js","packages/artplayer/src/utils/component.js","packages/artplayer/src/control/fullscreen.js","packages/artplayer/src/control/fullscreenWeb.js","packages/artplayer/src/control/pip.js","packages/artplayer/src/control/playAndPause.js","packages/artplayer/src/control/progress.js","packages/artplayer/src/control/time.js","packages/artplayer/src/control/volume.js","packages/artplayer/src/control/setting.js","packages/artplayer/src/control/thumbnails.js","packages/artplayer/src/control/screenshot.js","packages/artplayer/src/control/quality.js","packages/artplayer/src/control/loop.js","packages/artplayer/src/control/airplay.js","packages/artplayer/src/contextmenu/index.js","packages/artplayer/src/contextmenu/playbackRate.js","packages/artplayer/src/contextmenu/aspectRatio.js","packages/artplayer/src/contextmenu/flip.js","packages/artplayer/src/contextmenu/info.js","packages/artplayer/src/contextmenu/version.js","packages/artplayer/src/contextmenu/close.js","packages/artplayer/src/info.js","packages/artplayer/src/subtitle.js","packages/artplayer/src/events/index.js","packages/artplayer/src/events/clickInit.js","packages/artplayer/src/events/hoverInit.js","packages/artplayer/src/events/moveInit.js","packages/artplayer/src/events/resizeInit.js","packages/artplayer/src/events/gestureInit.js","packages/artplayer/src/events/viewInit.js","packages/artplayer/src/events/documentInit.js","packages/artplayer/src/hotkey.js","packages/artplayer/src/layer.js","packages/artplayer/src/loading.js","packages/artplayer/src/notice.js","packages/artplayer/src/mask.js","packages/artplayer/src/icons/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-cc1465de590716c3.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7354687a49315faa.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-16dba6b497e57200.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-f488ca9613523a89.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-944df7462f092344.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-905e2a3a5bf8821e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7ca6634310de48a5.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ead51c22e001d3e4.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-5f406cb67e8ce068.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-4c8d4bdd32e5eb21.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-4e595cc5186a564d.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c0889fbdfa73dc08.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-48946af7015cb1ff.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-424af5bfda438aed.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7214ee73e4711a3f.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d30b61330c0a5e8f.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-aea71df79a337dd1.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-446c9535ee37c4cf.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3e81c0d117284ebb.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6be8b022bb1f1d0e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-5ac93b92a83bb1c2.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-bcccb383a7b6e33b.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-472cc0769143224b.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-714e675b41750899.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-bfedbb03557d8834.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-900fbd1165be66ff.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-925c7dcd24de3b97.js","packages/artplayer/src/setting/index.js","packages/artplayer/src/setting/flip.js","packages/artplayer/src/setting/aspectRatio.js","packages/artplayer/src/setting/playbackRate.js","packages/artplayer/src/setting/subtitleOffset.js","packages/artplayer/src/storage.js","packages/artplayer/src/plugins/index.js","packages/artplayer/src/plugins/miniProgressBar.js","packages/artplayer/src/plugins/autoOrientation.js","packages/artplayer/src/plugins/autoPlayback.js","packages/artplayer/src/plugins/fastForward.js","packages/artplayer/src/plugins/lock.js","packages/artplayer/src/mobile.js"],"sourcesContent":["import style from 'bundle-text:./style/index.less';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option, readyCallback) {\n super();\n\n this.id = ++id;\n\n const mergeOption = utils.mergeDeep(Artplayer.option, option);\n\n if (option.container instanceof Element) {\n mergeOption.container = option.container;\n }\n\n this.option = validator(mergeOption, scheme);\n\n this.isLock = false;\n this.isReady = false;\n this.isFocus = false;\n this.isInput = false;\n this.isRotate = false;\n this.isDestroy = false;\n\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n if (typeof readyCallback === 'function') {\n this.on('ready', () => readyCallback.call(this, this));\n }\n\n if (Artplayer.DEBUG) {\n const log = (msg) => console.log(`[ART.${this.id}] -> ${msg}`);\n log('Version@' + Artplayer.version);\n log('Env@' + Artplayer.env);\n log('Build@' + Artplayer.build);\n for (let index = 0; index < config.events.length; index++) {\n this.on('video:' + config.events[index], (event) => log('Event@' + event.type));\n }\n }\n\n instances.push(this);\n }\n\n static get instances() {\n return instances;\n }\n\n static get version() {\n return process.env.APP_VER;\n }\n\n static get env() {\n return process.env.NODE_ENV;\n }\n\n static get build() {\n return process.env.BUILD_DATE;\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n id: '',\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n type: '',\n theme: '#f00',\n volume: 0.7,\n isLive: false,\n muted: false,\n autoplay: false,\n autoSize: false,\n autoMini: false,\n loop: false,\n flip: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n useSSR: false,\n playsInline: true,\n lock: false,\n fastForward: false,\n autoPlayback: false,\n autoOrientation: false,\n airplay: false,\n layers: [],\n contextmenu: [],\n controls: [],\n settings: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n thumbnails: {\n url: '',\n number: 60,\n column: 10,\n width: 0,\n height: 0,\n },\n subtitle: {\n url: '',\n type: '',\n style: {},\n escape: true,\n encoding: 'utf-8',\n onVttLoad: (vtt) => vtt,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n i18n: {},\n icons: {},\n cssVar: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n get proxy() {\n return this.events.proxy;\n }\n\n get query() {\n return this.template.query;\n }\n\n get video() {\n return this.template.$video;\n }\n\n destroy(removeHtml = true) {\n this.events.destroy();\n this.template.destroy(removeHtml);\n instances.splice(instances.indexOf(this), 1);\n this.isDestroy = true;\n this.emit('destroy');\n }\n}\n\nArtplayer.DEBUG = false;\nArtplayer.CONTEXTMENU = true;\nArtplayer.NOTICE_TIME = 2000;\nArtplayer.SETTING_WIDTH = 250;\nArtplayer.SETTING_ITEM_WIDTH = 200;\nArtplayer.SETTING_ITEM_HEIGHT = 35;\nArtplayer.RESIZE_TIME = 500;\nArtplayer.SCROLL_TIME = 200;\nArtplayer.SCROLL_GAP = 50;\nArtplayer.AUTO_PLAYBACK_MAX = 10;\nArtplayer.AUTO_PLAYBACK_MIN = 5;\nArtplayer.AUTO_PLAYBACK_TIMEOUT = 3000;\nArtplayer.RECONNECT_TIME_MAX = 5;\nArtplayer.RECONNECT_SLEEP_TIME = 1000;\nArtplayer.CONTROL_HIDE_TIME = 3000;\nArtplayer.DBCLICK_TIME = 300;\nArtplayer.DBCLICK_FULLSCREEN = true;\nArtplayer.MOBILE_DBCLICK_PLAY = true;\nArtplayer.MOBILE_CLICK_PLAY = false;\nArtplayer.MOBILE_AUTO_PLAYBACKRATE = 3;\nArtplayer.MOBILE_AUTO_PLAYBACKRATE_TIME = 1000;\nArtplayer.MOBILE_AUTO_ORIENTATION_TIME = 200;\nArtplayer.INFO_LOOP_TIME = 1000;\nArtplayer.FAST_FORWARD_VALUE = 3;\nArtplayer.FAST_FORWARD_TIME = 1000;\nArtplayer.TOUCH_MOVE_RATIO = 0.5;\nArtplayer.VOLUME_STEP = 0.1;\nArtplayer.SEEK_STEP = 5;\nArtplayer.PLAYBACK_RATE = [0.5, 0.75, 1, 1.25, 1.5, 2];\nArtplayer.ASPECT_RATIO = ['default', '4:3', '16:9'];\nArtplayer.FLIP = ['normal', 'horizontal', 'vertical'];\nArtplayer.FULLSCREEN_WEB_IN_BODY = false;\n\nif (typeof document !== 'undefined') {\n if (!document.getElementById('artplayer-style')) {\n const $style = utils.createElement('style');\n $style.id = 'artplayer-style';\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n\nif (typeof window !== 'undefined') {\n window['Artplayer'] = Artplayer;\n}\n\nconsole.log(\n `%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`,\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n","module.exports = \"028e47e77afa80d5\";","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'top') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n addClass(target, 'hint--rounded');\n addClass(target, `hint--${pos}`);\n}\n\nexport function isInViewport(el, offset = 0) {\n const rect = el.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n const vertInView = rect.top - offset <= windowHeight && rect.top + rect.height + offset >= 0;\n const horInView = rect.left - offset <= windowWidth + offset && rect.left + rect.width + offset >= 0;\n return vertInView && horInView;\n}\n\nexport function includeFromEvent(event, target) {\n return event.composedPath && event.composedPath().indexOf(target) > -1;\n}\n\nexport function replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n}\n\nexport function createElement(tag) {\n return document.createElement(tag);\n}\n\nexport function getIcon(key = '', html = '') {\n const icon = createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, html);\n return icon;\n}\n","export const userAgent = typeof window !== 'undefined' ? window.navigator.userAgent : '';\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent);\nexport const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nexport const isWechat = /MicroMessenger/i.test(userAgent);\nexport const isIE = /MSIE|Trident/i.test(userAgent);\nexport const isAndroid = /android/i.test(userAgent);\nexport const isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream;\n","export class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n return condition;\n}\n","function fixSrt(srt) {\n return srt.replace(/(\\d\\d:\\d\\d:\\d\\d)[,.](\\d+)/g, (_, $1, $2) => {\n let ms = $2.slice(0, 3);\n if ($2.length === 1) {\n ms = $2 + '00';\n }\n if ($2.length === 2) {\n ms = $2 + '0';\n }\n return `${$1},${ms}`;\n });\n}\n\nexport function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n fixSrt(srtText)\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .replace(/{[\\s\\S]*?}/g, '')\n .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map((line) => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map((item) => item.trim())\n .join('\\n'),\n };\n })\n .filter((line) => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter((line) => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = (item) => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function isStringOrNumber(val) {\n return ['string', 'number'].includes(typeof val);\n}\n\nexport function secondToTime(second) {\n const add0 = (num) => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n (tag) =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","import { errorHandle } from '../utils';\n\nconst a = 'array';\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(\n type === s || type === n || value instanceof Element,\n `${paths.join('.')} require '${s}' or 'Element' type`,\n );\n}\n\nexport const ComponentOption = {\n html: validElement,\n disable: `?${b}`,\n name: `?${s}`,\n index: `?${n}`,\n style: `?${o}`,\n click: `?${f}`,\n mounted: `?${f}`,\n tooltip: `?${s}|${n}`,\n width: `?${n}`,\n selector: `?${a}`,\n onSelect: `?${f}`,\n switch: `?${b}`,\n onSwitch: `?${f}`,\n range: `?${a}`,\n onRange: `?${f}`,\n onChange: `?${f}`,\n};\n\nexport default {\n id: s,\n container: validElement,\n url: s,\n poster: s,\n title: s,\n type: s,\n theme: s,\n lang: s,\n volume: n,\n isLive: b,\n muted: b,\n autoplay: b,\n autoSize: b,\n autoMini: b,\n loop: b,\n flip: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n useSSR: b,\n playsInline: b,\n lock: b,\n fastForward: b,\n autoPlayback: b,\n autoOrientation: b,\n airplay: b,\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [ComponentOption],\n contextmenu: [ComponentOption],\n settings: [ComponentOption],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths) => {\n const position = ['top', 'left', 'right'];\n return errorHandle(\n position.includes(value),\n `${paths.join('.')} only accept ${position.toString()} as parameters`,\n );\n },\n },\n ],\n quality: [\n {\n default: `?${b}`,\n html: s,\n url: s,\n },\n ],\n highlight: [\n {\n time: n,\n text: s,\n },\n ],\n thumbnails: {\n url: s,\n number: n,\n column: n,\n width: n,\n height: n,\n },\n subtitle: {\n url: s,\n type: s,\n style: o,\n escape: b,\n encoding: s,\n onVttLoad: f,\n },\n moreVideoAttr: o,\n i18n: o,\n icons: o,\n cssVar: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: ['addTextTrack', 'canPlayType', 'load', 'play', 'pause'],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster',\n 'webkitDecodedFrameCount',\n 'webkitDroppedFrameCount',\n 'playsInline',\n 'webkitSupportsFullscreen',\n 'webkitDisplayingFullscreen',\n 'onenterpictureinpicture',\n 'onleavepictureinpicture',\n 'disablePictureInPicture',\n 'cancelVideoFrameCallback',\n 'requestVideoFrameCallback',\n 'getVideoPlaybackQuality',\n 'requestPictureInPicture',\n 'webkitEnterFullScreen',\n 'webkitEnterFullscreen',\n 'webkitExitFullScreen',\n 'webkitExitFullscreen',\n ],\n};\n","import { userAgent, isMobile } from './utils';\n\nexport default class Whitelist {\n constructor(art) {\n this.art = art;\n }\n\n get state() {\n const {\n option,\n constructor: { kindOf },\n } = this.art;\n\n return (\n !isMobile ||\n !option.whitelist.length ||\n option.whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || userAgent.indexOf(item) > -1;\n case 'function':\n return item(userAgent);\n case 'regexp':\n return item.test(userAgent);\n default:\n return false;\n }\n })\n );\n }\n}\n","import { errorHandle, query, addClass, replaceElement, isMobile } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n const { option, constructor, whitelist } = art;\n\n if (option.container instanceof Element) {\n this.$container = option.container;\n } else {\n this.$container = query(option.container);\n errorHandle(this.$container, `No container element found by ${option.container}`);\n }\n\n const type = this.$container.tagName.toLowerCase();\n errorHandle(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`);\n\n errorHandle(\n constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n this.query = this.query.bind(this);\n this.$container.dataset.artId = art.id;\n this.$original = this.$container.cloneNode(true);\n\n if (whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
${process.env.APP_VER}
\n
\n
\n
Video url:
\n
\n
\n
\n
Video volume:
\n
\n
\n
\n
Video time:
\n
\n
\n
\n
Video duration:
\n
\n
\n
\n
Video resolution:
\n
\n x \n
\n
\n
\n
[x]
\n
\n
\n
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { option } = this.art;\n\n if (!option.useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$track = this.query('track');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$controlsCenter = this.query('.art-controls-center');\n this.$controlsRight = this.query('.art-controls-right');\n this.$layer = this.query('.art-layers');\n this.$loading = this.query('.art-loading');\n this.$notice = this.query('.art-notice');\n this.$noticeInner = this.query('.art-notice-inner');\n this.$mask = this.query('.art-mask');\n this.$state = this.query('.art-state');\n this.$setting = this.query('.art-settings');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n if (option.backdrop) {\n addClass(this.$player, 'art-backdrop');\n }\n\n if (isMobile) {\n addClass(this.$player, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(removeHtml) {\n if (removeHtml) {\n replaceElement(this.$original, this.$container);\n } else {\n addClass(this.$player, 'art-destroy');\n }\n }\n}\n","import { mergeDeep } from '../utils';\nimport zhCn from './zh-cn.json';\nimport zhTw from './zh-tw.json';\nimport pl from './pl.json';\nimport cs from './cs.json';\nimport es from './es.json';\nimport fa from './fa.json';\nimport fr from './fr.json';\nimport id from './id.json';\nimport ru from './ru.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n pl: pl,\n cs: cs,\n es: es,\n fa: fa,\n fr: fr,\n id: id,\n ru: ru,\n };\n\n this.update(art.option.i18n);\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","{\n \"Video Info\": \"统计信息\",\n \"Close\": \"关闭\",\n \"Video Load Failed\": \"加载失败\",\n \"Volume\": \"音量\",\n \"Play\": \"播放\",\n \"Pause\": \"暂停\",\n \"Rate\": \"速度\",\n \"Mute\": \"静音\",\n \"Video Flip\": \"画面翻转\",\n \"Horizontal\": \"水平\",\n \"Vertical\": \"垂直\",\n \"Reconnect\": \"重新连接\",\n \"Show Setting\": \"显示设置\",\n \"Hide Setting\": \"隐藏设置\",\n \"Screenshot\": \"截图\",\n \"Play Speed\": \"播放速度\",\n \"Aspect Ratio\": \"画面比例\",\n \"Default\": \"默认\",\n \"Normal\": \"正常\",\n \"Open\": \"打开\",\n \"Switch Video\": \"切换\",\n \"Switch Subtitle\": \"切换字幕\",\n \"Fullscreen\": \"全屏\",\n \"Exit Fullscreen\": \"退出全屏\",\n \"Web Fullscreen\": \"网页全屏\",\n \"Exit Web Fullscreen\": \"退出网页全屏\",\n \"Mini Player\": \"迷你播放器\",\n \"PIP Mode\": \"开启画中画\",\n \"Exit PIP Mode\": \"退出画中画\",\n \"PIP Not Supported\": \"不支持画中画\",\n \"Fullscreen Not Supported\": \"不支持全屏\",\n \"Subtitle Offset\": \"字幕偏移\",\n \"Last Seen\": \"上次看到\",\n \"Jump Play\": \"跳转播放\",\n \"AirPlay\": \"隔空播放\",\n \"AirPlay Not Available\": \"隔空播放不可用\"\n}\n","{\n \"Video Info\": \"統計訊息\",\n \"Close\": \"關閉\",\n \"Video Load Failed\": \"載入失敗\",\n \"Volume\": \"音量\",\n \"Play\": \"播放\",\n \"Pause\": \"暫停\",\n \"Rate\": \"速度\",\n \"Mute\": \"靜音\",\n \"Video Flip\": \"畫面翻轉\",\n \"Horizontal\": \"水平\",\n \"Vertical\": \"垂直\",\n \"Reconnect\": \"重新連接\",\n \"Show Setting\": \"顯示设置\",\n \"Hide Setting\": \"隱藏设置\",\n \"Screenshot\": \"截圖\",\n \"Play Speed\": \"播放速度\",\n \"Aspect Ratio\": \"畫面比例\",\n \"Default\": \"默認\",\n \"Normal\": \"正常\",\n \"Open\": \"打開\",\n \"Switch Video\": \"切換\",\n \"Switch Subtitle\": \"切換字幕\",\n \"Fullscreen\": \"全屏\",\n \"Exit Fullscreen\": \"退出全屏\",\n \"Web Fullscreen\": \"網頁全屏\",\n \"Exit Web Fullscreen\": \"退出網頁全屏\",\n \"Mini Player\": \"迷你播放器\",\n \"PIP Mode\": \"開啟畫中畫\",\n \"Exit PIP Mode\": \"退出畫中畫\",\n \"PIP Not Supported\": \"不支持畫中畫\",\n \"Fullscreen Not Supported\": \"不支持全屏\",\n \"Subtitle Offset\": \"字幕偏移\",\n \"Last Seen\": \"上次看到\",\n \"Jump Play\": \"跳轉播放\",\n \"AirPlay\": \"隔空播放\",\n \"AirPlay Not Available\": \"隔空播放不可用\"\n}\n","{\n \"Video Info\": \"Informacje o wideo\",\n \"Close\": \"Zamknij\",\n \"Video Load Failed\": \"Błąd ładowania wideo\",\n \"Volume\": \"Głośność\",\n \"Play\": \"Odtwórz\",\n \"Pause\": \"Wstrzymaj\",\n \"Rate\": \"Oceń\",\n \"Mute\": \"Wycisz\",\n \"Video Flip\": \"Rotacja wideo\",\n \"Horizontal\": \"Pozioma\",\n \"Vertical\": \"Pionowa\",\n \"Reconnect\": \"Połącz ponownie\",\n \"Show Setting\": \"Pokaż ustawienia\",\n \"Hide Setting\": \"Ukryj ustawienia\",\n \"Screenshot\": \"Zrzut ekranu\",\n \"Play Speed\": \"Prędkość odtwarzania\",\n \"Aspect Ratio\": \"Współczynnik proporcji\",\n \"Default\": \"Domyślny\",\n \"Normal\": \"Normalny\",\n \"Open\": \"Otwórz\",\n \"Switch Video\": \"Przełącz wideo\",\n \"Switch Subtitle\": \"Przełącz napisy\",\n \"Fullscreen\": \"Pełny ekran\",\n \"Exit Fullscreen\": \"Zamknij pełny ekran\",\n \"Web Fullscreen\": \"Tryb pełnej strony\",\n \"Exit Web Fullscreen\": \"Zamknij tryb pełnej strony\",\n \"Mini Player\": \"Miniodtwarzacz\",\n \"PIP Mode\": \"Tryb PiP\",\n \"Exit PIP Mode\": \"Zamknij tryb PiP\",\n \"PIP Not Supported\": \"Tryb PiP nieobsługiwany\",\n \"Fullscreen Not Supported\": \"Pełny ekran nieobsługiwany\",\n \"Subtitle Offset\": \"Przesunięcie napisów\",\n \"Last Seen\": \"Ostatnio widziany\",\n \"Jump Play\": \"Skocz do gry\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay nie jest dostępny\"\n}\n","{\n \"Video Info\": \"Info o videu\",\n \"Close\": \"Zavřít\",\n \"Video Load Failed\": \"Nahrání videa selhalo\",\n \"Volume\": \"Hlasitost\",\n \"Play\": \"Přehrát\",\n \"Pause\": \"Pozastavit\",\n \"Rate\": \"Hodnocení\",\n \"Mute\": \"Ztlumit\",\n \"Video Flip\": \"Otočit video\",\n \"Horizontal\": \"Horizontálně\",\n \"Vertical\": \"Vertikálně\",\n \"Reconnect\": \"Opětovné připojení\",\n \"Show Setting\": \"Zobrazit nastavení\",\n \"Hide Setting\": \"Skrýt nastavení\",\n \"Screenshot\": \"Snímek obrazovky\",\n \"Play Speed\": \"Rychlost přehrávání\",\n \"Aspect Ratio\": \"Poměr stran\",\n \"Default\": \"Výchozí\",\n \"Normal\": \"Normální\",\n \"Open\": \"Otevřít\",\n \"Switch Video\": \"Přepnout video\",\n \"Switch Subtitle\": \"Přepnout titulky\",\n \"Fullscreen\": \"Celá obrazovka\",\n \"Exit Fullscreen\": \"Opustit režim celé obrazovky\",\n \"Web Fullscreen\": \"Celá stránka\",\n \"Exit Web Fullscreen\": \"Zavřít režim celé stránky\",\n \"Mini Player\": \"Mini přehrávač\",\n \"PIP Mode\": \"Režim PIP\",\n \"Exit PIP Mode\": \"Opustit režim PIP\",\n \"PIP Not Supported\": \"Režim PIP není podporován\",\n \"Fullscreen Not Supported\": \"Režim celé obrazovky není podporován\",\n \"Subtitle Offset\": \"Posun titulků\",\n \"Last Seen\": \"Naposledy viděn\",\n \"Jump Play\": \"Hra na skok\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay není k dispozici\"\n}\n","{\n \"Video Info\": \"Información del video\",\n \"Close\": \"Cerrar\",\n \"Video Load Failed\": \"Falló carga de video\",\n \"Volume\": \"Volumen\",\n \"Play\": \"Reproduciendo\",\n \"Pause\": \"Pausa\",\n \"Rate\": \"Velocidad\",\n \"Mute\": \"Silencio\",\n \"Video Flip\": \"Rotar video\",\n \"Horizontal\": \"Horizontal\",\n \"Vertical\": \"Vertical\",\n \"Reconnect\": \"Reconectando\",\n \"Show Setting\": \"Mostrar ajustes\",\n \"Hide Setting\": \"Ocultar ajustes\",\n \"Screenshot\": \"Captura de Pantalla\",\n \"Play Speed\": \"Velocidad de reproducción\",\n \"Aspect Ratio\": \"Relación de aspecto\",\n \"Default\": \"Por defecto\",\n \"Normal\": \"Normal\",\n \"Open\": \"Abrir\",\n \"Switch Video\": \"Cambiar video\",\n \"Switch Subtitle\": \"Cambiar subtítulo\",\n \"Fullscreen\": \"Pantalla completa\",\n \"Exit Fullscreen\": \"Salir de Pantalla completa\",\n \"Web Fullscreen\": \"Pantalla completa Web\",\n \"Exit Web Fullscreen\": \"Salir de Pantalla completa\",\n \"Mini Player\": \"Mini reproductor\",\n \"PIP Mode\": \"Modo PiP\",\n \"Exit PIP Mode\": \"Cerrar modo PiP\",\n \"PIP Not Supported\": \"Modo PiP no compatible\",\n \"Fullscreen Not Supported\": \"Pantalla completa no soportada\",\n \"Subtitle Offset\": \"Ajuste subtítulo\",\n \"Last Seen\": \"Visto última vez\",\n \"Jump Play\": \"Saltar\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay no disponible\"\n}\n","{\n \"Video Info\": \"اطلاعات ویدیو\",\n \"Close\": \"بستن\",\n \"Video Load Failed\": \"بارگذاری ناموفق\",\n \"Play\": \"پخش\",\n \"Volume\": \"میزان صدا\",\n \"Pause\": \"توقف\",\n \"Rate\": \"نرخ\",\n \"Mute\": \"سکوت\",\n \"Video Flip\": \"چرخش تصویر\",\n \"Horizontal\": \"افقی\",\n \"Vertical\": \"عمودی\",\n \"Reconnect\": \"اتصال مجدد\",\n \"Show Setting\": \"تنظیمات\",\n \"Hide Setting\": \"بستن تنظیمات\",\n \"Screenshot\": \"عکس از صفحه\",\n \"Play Speed\": \"سرعت پخش\",\n \"Aspect Ratio\": \"نسبت تصویر\",\n \"Default\": \"حالت پیشفرض\",\n \"Normal\": \" حالت عادی\",\n \"Open\": \"بازکردن\",\n \"Switch Video\": \"تغییر ویدیو\",\n \"Switch Subtitle\": \"نغییر زیرنویس\",\n \"Fullscreen\": \"تمام صفحه\",\n \"Exit Fullscreen\": \"کوچک کردن\",\n \"Web Fullscreen\": \"حالت تئاتر\",\n \"Exit Web Fullscreen\": \"خروج از حالت تئاتر\",\n \"Mini Player\": \"حالت پخش کوچک\",\n \"PIP Mode\": \" مینی پلیر\",\n \"Exit PIP Mode\": \"خروج از مینی پلیر\",\n \"PIP Not Supported\": \"عدم پشتیبانی از مینی پلیر\",\n \"Fullscreen Not Supported\": \"عدم پشتیبانی از حالت تمام صفحه\",\n \"Subtitle Offset\": \"افست زیرنویس\",\n \"Last Seen\": \"آخرین بازدید\",\n \"Jump Play\": \"جامپ پلی\",\n \"AirPlay\": \"ایر پلی\",\n \"AirPlay Not Available\": \"عدم پشتیبانی از ایرپلی\"\n}\n","{\n \"Video Info\": \"Informations de la vidéo\",\n \"Close\": \"Fermer\",\n \"Video Load Failed\": \"Téléchargement de la vidéo échoué\",\n \"Volume\": \"Volume\",\n \"Play\": \"Lire\",\n \"Pause\": \"Pause\",\n \"Rate\": \"Vitesse\",\n \"Mute\": \"Muet\",\n \"Video Flip\": \"Rotation de la vidéo\",\n \"Horizontal\": \"Horizontal\",\n \"Vertical\": \"Vertical\",\n \"Reconnect\": \"Reconnexion\",\n \"Show Setting\": \"Afficher les paramètres\",\n \"Hide Setting\": \"Cacher les paramètres\",\n \"Screenshot\": \"Capture d'écran\",\n \"Play Speed\": \"Vitesse de lecture\",\n \"Aspect Ratio\": \"Rapport d'aspect\",\n \"Default\": \"Défaut\",\n \"Normal\": \"Normal\",\n \"Open\": \"Ouvrir\",\n \"Switch Video\": \"Basculer la vidéo\",\n \"Switch Subtitle\": \"Basculer le sous-titre\",\n \"Fullscreen\": \"Plein écran\",\n \"Exit Fullscreen\": \"Quitter le plein écran\",\n \"Web Fullscreen\": \"Plein écran Web\",\n \"Exit Web Fullscreen\": \"Quitter le plein écran Web\",\n \"Mini Player\": \"Mini lecteur\",\n \"PIP Mode\": \"Mode PiP\",\n \"Exit PIP Mode\": \"Fermer le mode PiP\",\n \"PIP Not Supported\": \"Mode PiP non supporté\",\n \"Fullscreen Not Supported\": \"Plein écran non supporté\",\n \"Subtitle Offset\": \"Réglage des sous-titres\",\n \"Last Seen\": \"Dernière position\",\n \"Jump Play\": \"Continuer\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay non disponible\"\n}\n","{\n \"Video Info\": \"Informasi Video\",\n \"Close\": \"Tutup\",\n \"Video Load Failed\": \"Gagal Memuat Video\",\n \"Volume\": \"Volume\",\n \"Play\": \"Putar\",\n \"Pause\": \"Jeda\",\n \"Rate\": \"Kecepatan\",\n \"Mute\": \"Senyap\",\n \"Video Flip\": \"Memutar Video\",\n \"Horizontal\": \"Horizontal\",\n \"Vertical\": \"Vertikal\",\n \"Reconnect\": \"Menyambung Kembali\",\n \"Show Setting\": \"Tampilkan Pengaturan\",\n \"Hide Setting\": \"Sembunyikan Pengaturan\",\n \"Screenshot\": \"Tangkapan Layar\",\n \"Play Speed\": \"Kecepatan Putar\",\n \"Aspect Ratio\": \"Rasio Aspek\",\n \"Default\": \"Default\",\n \"Normal\": \"Normal\",\n \"Open\": \"Buka\",\n \"Switch Video\": \"Ganti Video\",\n \"Switch Subtitle\": \"Ganti Subtitle\",\n \"Fullscreen\": \"Layar Penuh\",\n \"Exit Fullscreen\": \"Keluar dari Layar Penuh\",\n \"Web Fullscreen\": \"Layar Penuh Web\",\n \"Exit Web Fullscreen\": \"Keluar dari Layar Penuh Web\",\n \"Mini Player\": \"Pemutar Mini\",\n \"PIP Mode\": \"Mode PIP\",\n \"Exit PIP Mode\": \"Keluar dari Mode PIP\",\n \"PIP Not Supported\": \"PIP Tidak Didukung\",\n \"Fullscreen Not Supported\": \"Layar Penuh Tidak Didukung\",\n \"Subtitle Offset\": \"Pergeseran Subtitle\",\n \"Last Seen\": \"Terakhir Dilihat\",\n \"Jump Play\": \"Lompat Putar\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay Tidak Tersedia\"\n}\n","{\n \"Video Info\": \"Информация\",\n \"Close\": \"Закрыть\",\n \"Video Load Failed\": \"Ошибка загрузки видео\",\n \"Volume\": \"Громкость\",\n \"Play\": \"Играть\",\n \"Pause\": \"Пауза\",\n \"Rate\": \"Скорость\",\n \"Mute\": \"Заглушить\",\n \"Video Flip\": \"Развернуть видео\",\n \"Horizontal\": \"Горизонтально\",\n \"Vertical\": \"Вертикально\",\n \"Reconnect\": \"Переподключенине\",\n \"Show Setting\": \"Показать настройки\",\n \"Hide Setting\": \"Скрыть настройки\",\n \"Screenshot\": \"Скриншот\",\n \"Play Speed\": \"Скорость воспроизведения\",\n \"Aspect Ratio\": \"Соотношение сторон\",\n \"Default\": \"По-умолчанию\",\n \"Normal\": \"Нормальный\",\n \"Open\": \"Открыть\",\n \"Switch Video\": \"Переключить видео\",\n \"Switch Subtitle\": \"Переключить субтитры\",\n \"Fullscreen\": \"Полноэкранный режим\",\n \"Exit Fullscreen\": \"Выход из полноэкранного режима\",\n \"Web Fullscreen\": \"На все окно браузера\",\n \"Exit Web Fullscreen\": \"Выход из режима полного окна\",\n \"Mini Player\": \"Мини проигрыватель\",\n \"PIP Mode\": \"Картинка в картинке\",\n \"Exit PIP Mode\": \"Закрыть картинку в картинке\",\n \"PIP Not Supported\": \"Картинка в картинке не поддерживается\",\n \"Fullscreen Not Supported\": \"Полноэкранный режим не поддерживается\",\n \"Subtitle Offset\": \"Настройка субтитров\",\n \"Last Seen\": \"Последнее просмотренное\",\n \"Jump Play\": \"Перейти\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay недоступен\"\n}\n","import urlMix from './urlMix';\nimport attrMix from './attrMix';\nimport playMix from './playMix';\nimport pauseMix from './pauseMix';\nimport toggleMix from './toggleMix';\nimport seekMix from './seekMix';\nimport volumeMix from './volumeMix';\nimport currentTimeMix from './currentTimeMix';\nimport durationMix from './durationMix';\nimport switchMix from './switchMix';\nimport playbackRateMix from './playbackRateMix';\nimport aspectRatioMix from './aspectRatioMix';\nimport screenshotMix from './screenshotMix';\nimport fullscreenMix from './fullscreenMix';\nimport fullscreenWebMix from './fullscreenWebMix';\nimport pipMix from './pipMix';\nimport loadedMix from './loadedMix';\nimport playedMix from './playedMix';\nimport playingMix from './playingMix';\nimport autoSizeMix from './autoSizeMix';\nimport rectMix from './rectMix';\nimport flipMix from './flipMix';\nimport miniMix from './miniMix';\nimport loopMix from './loopMix';\nimport posterMix from './posterMix';\nimport autoHeightMix from './autoHeightMix';\nimport cssVarMix from './cssVarMix';\nimport themeMix from './themeMix';\nimport titleMix from './titleMix';\nimport typeMix from './typeMix';\nimport stateMix from './stateMix';\nimport subtitleOffsetMix from './subtitleOffsetMix';\nimport airplayMix from './airplayMix';\nimport optionInit from './optionInit';\nimport eventInit from './eventInit';\n\nexport default class Player {\n constructor(art) {\n urlMix(art);\n attrMix(art);\n playMix(art);\n pauseMix(art);\n toggleMix(art);\n seekMix(art);\n volumeMix(art);\n currentTimeMix(art);\n durationMix(art);\n switchMix(art);\n playbackRateMix(art);\n aspectRatioMix(art);\n screenshotMix(art);\n fullscreenMix(art);\n fullscreenWebMix(art);\n pipMix(art);\n loadedMix(art);\n playedMix(art);\n playingMix(art);\n autoSizeMix(art);\n rectMix(art);\n flipMix(art);\n miniMix(art);\n loopMix(art);\n posterMix(art);\n autoHeightMix(art);\n cssVarMix(art);\n themeMix(art);\n titleMix(art);\n typeMix(art);\n stateMix(art);\n subtitleOffsetMix(art);\n airplayMix(art);\n eventInit(art);\n optionInit(art);\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(art, 'url', {\n get() {\n return $video.src;\n },\n async set(url) {\n if (url) {\n const oldUrl = art.url;\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n\n if (typeName && typeCallback) {\n await sleep();\n art.loading.show = true;\n typeCallback.call(art, $video, url, art);\n } else {\n $video.src = url;\n }\n\n if (oldUrl !== art.url) {\n art.option.url = url;\n if (art.isReady && oldUrl) {\n art.once('video:canplay', () => {\n art.emit('restart', url);\n });\n }\n }\n } else {\n await sleep();\n art.loading.show = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function attrMix(art) {\n const {\n template: { $video },\n } = art;\n\n def(art, 'attr', {\n value(key, value) {\n if (value === undefined) return $video[key];\n $video[key] = value;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art) {\n const {\n i18n,\n notice,\n option,\n constructor: { instances },\n template: { $video },\n } = art;\n\n def(art, 'play', {\n value: async function () {\n const result = await $video.play();\n notice.show = i18n.get('Play');\n art.emit('play');\n\n if (option.mutex) {\n for (let index = 0; index < instances.length; index++) {\n const instance = instances[index];\n if (instance !== art) {\n instance.pause();\n }\n }\n }\n\n return result;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'pause', {\n value() {\n const result = $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n return result;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art) {\n def(art, 'toggle', {\n value() {\n if (art.playing) {\n return art.pause();\n } else {\n return art.play();\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art) {\n const { notice } = art;\n\n def(art, 'seek', {\n set(time) {\n art.currentTime = time;\n art.emit('seek', art.currentTime);\n if (art.duration) {\n notice.show = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n }\n },\n });\n\n def(art, 'forward', {\n set(time) {\n art.seek = art.currentTime + time;\n },\n });\n\n def(art, 'backward', {\n set(time) {\n art.seek = art.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(art, 'volume', {\n get: () => $video.volume || 0,\n set: (percentage) => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n },\n });\n\n def(art, 'muted', {\n get: () => $video.muted,\n set: (muted) => {\n $video.muted = muted;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art) {\n const { $video } = art.template;\n\n def(art, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n time = parseFloat(time);\n if (Number.isNaN(time)) return;\n $video.currentTime = clamp(time, 0, art.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art) {\n def(art, 'duration', {\n get: () => {\n const { duration } = art.template.$video;\n if (duration === Infinity) return 0;\n return duration || 0;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function switchMix(art) {\n const { i18n, option, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n return new Promise((resolve) => {\n if (url === art.url) return resolve(url);\n const { playing } = art;\n art.pause();\n URL.revokeObjectURL(art.url);\n art.url = url;\n art.once('video:canplay', () => {\n art.playbackRate = false;\n art.aspectRatio = false;\n art.flip = 'normal';\n art.autoSize = option.autoSize;\n art.currentTime = currentTime;\n art.notice.show = '';\n if (playing) {\n art.play();\n }\n if (name) {\n notice.show = `${i18n.get('Switch Video')}: ${name}`;\n }\n resolve(url);\n });\n });\n }\n\n def(art, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, art.currentTime);\n },\n });\n\n def(art, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playbackRateMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'playbackRate', {\n get() {\n return $video.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $video.playbackRate) return;\n $video.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n } else {\n art.playbackRate = 1;\n }\n },\n });\n}\n","import { setStyle, def } from '../utils';\n\nexport default function aspectRatioMix(art) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(art, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || 'default';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':').map(Number);\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(art, 'aspectRatioReset', {\n value() {\n const { aspectRatio } = art;\n art.aspectRatio = aspectRatio;\n },\n });\n}\n","import { secondToTime, download, def, createElement } from '../utils';\n\nexport default function screenshotMix(art) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = createElement('canvas');\n\n def(art, 'getDataURL', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n resolve($canvas.toDataURL('image/png'));\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'getBlobUrl', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n $canvas.toBlob((blob) => {\n resolve(URL.createObjectURL(blob));\n });\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'screenshot', {\n value: async () => {\n const dataUri = await art.getDataURL();\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n },\n });\n}\n","import screenfull from '../libs/screenfull';\nimport { addClass, removeClass, def, get } from '../utils';\n\nexport default function fullscreenMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art;\n\n const nativeScreenfull = (art) => {\n screenfull.on('change', () => {\n art.emit('fullscreen', screenfull.isFullscreen);\n });\n\n def(art, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n async set(value) {\n if (value) {\n art.state = 'fullscreen';\n art.aspectRatioReset();\n art.autoSize = false;\n await screenfull.request($player);\n addClass($player, 'art-fullscreen');\n art.emit('resize');\n notice.show = '';\n } else {\n art.aspectRatioReset();\n art.autoSize = art.option.autoSize;\n await screenfull.exit();\n removeClass($player, 'art-fullscreen');\n art.emit('resize');\n notice.show = '';\n }\n },\n });\n };\n\n const webkitScreenfull = (art) => {\n def(art, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n art.state = 'fullscreen';\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n notice.show = '';\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen', false);\n notice.show = '';\n }\n },\n });\n };\n\n art.once('video:loadedmetadata', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art);\n } else {\n def(art, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen Not Supported');\n },\n });\n }\n\n // Asynchronous setting\n def(art, 'fullscreen', get(art, 'fullscreen'));\n });\n}\n","const methodMap = [\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror',\n ],\n // New WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n // Old WebKit\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror',\n ],\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError',\n ],\n];\n\nconst nativeAPI = (() => {\n if (typeof document === 'undefined') {\n return false;\n }\n\n const unprefixedMethods = methodMap[0];\n const returnValue = {};\n\n for (const methodList of methodMap) {\n const exitFullscreenMethod = methodList[1];\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries()) {\n returnValue[unprefixedMethods[index]] = method;\n }\n\n return returnValue;\n }\n }\n\n return false;\n})();\n\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror,\n};\n\nlet screenfull = {\n request(element = document.documentElement, options) {\n return new Promise((resolve, reject) => {\n const onFullScreenEntered = () => {\n screenfull.off('change', onFullScreenEntered);\n resolve();\n };\n\n screenfull.on('change', onFullScreenEntered);\n\n const returnPromise = element[nativeAPI.requestFullscreen](options);\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject);\n }\n });\n },\n exit() {\n return new Promise((resolve, reject) => {\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n\n const onFullScreenExit = () => {\n screenfull.off('change', onFullScreenExit);\n resolve();\n };\n\n screenfull.on('change', onFullScreenExit);\n\n const returnPromise = document[nativeAPI.exitFullscreen]();\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject);\n }\n });\n },\n toggle(element, options) {\n return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n },\n onchange(callback) {\n screenfull.on('change', callback);\n },\n onerror(callback) {\n screenfull.on('error', callback);\n },\n on(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.addEventListener(eventName, callback, false);\n }\n },\n off(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.removeEventListener(eventName, callback, false);\n }\n },\n raw: nativeAPI,\n};\n\nObject.defineProperties(screenfull, {\n isFullscreen: {\n get: () => Boolean(document[nativeAPI.fullscreenElement]),\n },\n element: {\n enumerable: true,\n get: () => document[nativeAPI.fullscreenElement],\n },\n isEnabled: {\n enumerable: true,\n get: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n },\n});\n\nif (!nativeAPI) {\n screenfull = { isEnabled: false };\n}\n\nexport default screenfull;\n","import { addClass, removeClass, hasClass, def, append } from '../utils';\n\nexport default function fullscreenWebMix(art) {\n const {\n option,\n notice,\n constructor,\n template: { $container, $player },\n } = art;\n\n let cssText = '';\n def(art, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n cssText = $player.style.cssText;\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append(document.body, $player);\n }\n art.state = 'fullscreenWeb';\n addClass($player, 'art-fullscreen-web');\n art.aspectRatioReset();\n art.autoSize = false;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n notice.show = '';\n } else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append($container, $player);\n }\n if (cssText) {\n $player.style.cssText = cssText;\n cssText = '';\n }\n removeClass($player, 'art-fullscreen-web');\n art.aspectRatioReset();\n art.autoSize = option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb', false);\n notice.show = '';\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art) {\n const {\n template: { $video },\n proxy,\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(art, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n art.state = 'pip';\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip', false);\n });\n}\n\nfunction webkitPip(art) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(art, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n art.state = 'pip';\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip', false);\n }\n },\n });\n}\n\nexport default function pipMix(art) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art);\n } else {\n def(art, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP Not Supported');\n },\n });\n }\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art) {\n const { $video } = art.template;\n\n def(art, 'loaded', {\n get: () => art.loadedTime / $video.duration,\n });\n\n def(art, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art) {\n def(art, 'played', {\n get: () => art.currentTime / art.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art) {\n const { $video } = art.template;\n def(art, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art) {\n const { $container, $player, $video } = art.template;\n\n def(art, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art) {\n def(art, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n const keys = ['bottom', 'height', 'left', 'right', 'top', 'width'];\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index];\n def(art, key, {\n get: () => {\n return art.rect[key];\n },\n });\n }\n\n def(art, 'x', {\n get: () => {\n return art.left + window.pageXOffset;\n },\n });\n\n def(art, 'y', {\n get: () => {\n return art.top + window.pageYOffset;\n },\n });\n}\n","import { def, capitalize } from '../utils';\n\nexport default function flipMix(art) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(art, 'flip', {\n get() {\n return $player.dataset.flip || 'normal';\n },\n set(flip) {\n if (!flip) flip = 'normal';\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n $player.dataset.flip = flip;\n }\n\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get(capitalize(flip))}`;\n art.emit('flip', flip);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport, createElement } from '../utils';\n\nexport default function miniMix(art) {\n const {\n icons,\n proxy,\n storage,\n template: { $player, $video },\n } = art;\n\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n\n function hideMini() {\n const { $mini } = art.template;\n if ($mini) {\n removeClass($player, 'art-mini');\n setStyle($mini, 'display', 'none');\n $player.prepend($video);\n art.emit('mini', false);\n }\n }\n\n function initState($play, $pause) {\n if (art.playing) {\n setStyle($play, 'display', `none`);\n setStyle($pause, 'display', `flex`);\n } else {\n setStyle($play, 'display', `flex`);\n setStyle($pause, 'display', `none`);\n }\n }\n\n function createMini() {\n const { $mini } = art.template;\n if ($mini) {\n append($mini, $video);\n return setStyle($mini, 'display', 'flex');\n } else {\n const $mini = createElement('div');\n addClass($mini, 'art-mini-popup');\n append(document.body, $mini);\n art.template.$mini = $mini;\n append($mini, $video);\n\n const $close = append($mini, `
`);\n append($close, icons.close);\n proxy($close, 'click', hideMini);\n\n const $state = append($mini, `
`);\n const $play = append($state, icons.play);\n const $pause = append($state, icons.pause);\n proxy($play, 'click', () => art.play());\n proxy($pause, 'click', () => art.pause());\n initState($play, $pause);\n art.on('video:playing', () => initState($play, $pause));\n art.on('video:pause', () => initState($play, $pause));\n art.on('video:timeupdate', () => initState($play, $pause));\n\n proxy($mini, 'mousedown', (event) => {\n isDroging = event.button === 0;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n addClass($mini, 'art-mini-droging');\n const x = event.pageX - lastPageX;\n const y = event.pageY - lastPageY;\n setStyle($mini, 'transform', `translate(${x}px, ${y}px)`);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($mini, 'art-mini-droging');\n const rect = $mini.getBoundingClientRect();\n storage.set('left', rect.left);\n storage.set('top', rect.top);\n setStyle($mini, 'left', `${rect.left}px`);\n setStyle($mini, 'top', `${rect.top}px`);\n setStyle($mini, 'transform', null);\n }\n });\n\n return $mini;\n }\n }\n\n function initMini() {\n const { $mini } = art.template;\n const rect = $mini.getBoundingClientRect();\n const top = window.innerHeight - rect.height - 50;\n const left = window.innerWidth - rect.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n }\n\n def(art, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n addClass($player, 'art-mini');\n const $mini = createMini();\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n if (!isInViewport($mini)) {\n initMini();\n }\n } else {\n initMini();\n }\n art.emit('mini', true);\n } else {\n hideMini();\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMix(art) {\n let interval = [];\n def(art, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], art.duration));\n const end = clamp(value[1], start, art.duration);\n if (end - start >= 1) {\n interval = [start, end];\n } else {\n interval = [];\n }\n } else {\n interval = [];\n }\n art.emit('loop', interval);\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (art.currentTime < interval[0] || art.currentTime > interval[1]) {\n art.seek = interval[0];\n }\n }\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(art, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import { setStyle, hasClass, addClass, removeClass, def } from '../utils';\n\nexport default function autoHeightMix(art) {\n const {\n option,\n template: { $container, $video },\n } = art;\n\n const heightCache = $container.style.height;\n\n def(art, 'autoHeight', {\n get() {\n return hasClass($container, 'art-auto-height');\n },\n set(value) {\n if (value) {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n setStyle($container, 'height', height + 'px');\n addClass($container, 'art-auto-height');\n art.autoSize = option.autoSize;\n art.emit('autoHeight', height);\n } else {\n setStyle($container, 'height', heightCache);\n removeClass($container, 'art-auto-height');\n art.autoSize = option.autoSize;\n art.emit('autoHeight');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function cssVarMix(art) {\n const { $player } = art.template;\n\n def(art, 'cssVar', {\n value(key, value) {\n if (value) {\n return $player.style.setProperty(key, value);\n } else {\n return getComputedStyle($player).getPropertyValue(key);\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function themeMix(art) {\n const { option } = art;\n\n def(art, 'theme', {\n get() {\n return art.cssProperty('--art-theme');\n },\n set(theme) {\n option.theme = theme;\n art.cssProperty('--art-theme', theme);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function titleMix(art) {\n def(art, 'title', {\n get() {\n return art.option.title;\n },\n set(title) {\n art.option.title = title;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function typeMix(art) {\n def(art, 'type', {\n get() {\n return art.option.type;\n },\n set(type) {\n art.option.type = type;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function stateMix(art) {\n const states = ['mini', 'pip', 'fullscreen', 'fullscreenWeb'];\n def(art, 'state', {\n get: () => states.find((name) => art[name]) || 'standard',\n set(name) {\n for (let index = 0; index < states.length; index++) {\n const prop = states[index];\n if (prop !== name && art[prop]) {\n art[prop] = false;\n }\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function subtitleOffsetMix(art) {\n const { clamp } = art.constructor.utils;\n const { notice, template, i18n } = art;\n\n let offsetCache = 0;\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n def(art, 'subtitleOffset', {\n get() {\n return offsetCache;\n },\n set(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n offsetCache = clamp(value, -5, 5);\n\n for (let index = 0; index < cues.length; index++) {\n const cue = cues[index];\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + offsetCache, 0, art.duration);\n cue.endTime = clamp(cuesCache[index].endTime + offsetCache, 0, art.duration);\n }\n\n art.subtitle.update();\n notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n art.emit('subtitleOffset', 0);\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function airplayMix(art) {\n const {\n i18n,\n notice,\n proxy,\n template: { $video },\n } = art;\n\n let available = true;\n\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) {\n proxy($video, 'webkitplaybacktargetavailabilitychanged', (event) => {\n switch (event.availability) {\n case 'available':\n available = true;\n break;\n case 'not-available':\n available = false;\n break;\n }\n });\n } else {\n available = false;\n }\n\n def(art, 'airplay', {\n value() {\n if (available) {\n $video.webkitShowPlaybackTargetPicker();\n art.emit('airplay');\n } else {\n notice.show = i18n.get('AirPlay Not Available');\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n for (const key in option.moreVideoAttr) {\n art.attr(key, option.moreVideoAttr[key]);\n }\n\n if (option.muted) {\n art.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volumeStorage = storage.get('volume');\n if (typeof volumeStorage === 'number') {\n $video.volume = clamp(volumeStorage, 0, 1);\n }\n\n if (option.poster) {\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n\n if (option.theme) {\n option.cssVar['--art-theme'] = option.theme;\n }\n\n for (const key in option.cssVar) {\n art.cssVar(key, option.cssVar[key]);\n }\n\n art.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle, isMobile } from '../utils';\n\nexport default function eventInit(art) {\n const {\n i18n,\n notice,\n option,\n constructor,\n proxy,\n template: { $player, $video, $poster },\n } = art;\n\n let reconnectTime = 0;\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event);\n });\n }\n\n // art.on('video:abort', () => {\n\n // });\n\n art.on('video:canplay', () => {\n reconnectTime = 0;\n art.loading.show = false;\n });\n\n art.once('video:canplay', () => {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n art.isReady = true;\n art.emit('ready');\n });\n\n // art.on('video:canplaythrough', () => {\n\n // });\n\n // art.on('video:durationchange', () => {\n\n // });\n\n // art.on('video:emptied', () => {\n\n // });\n\n art.on('video:ended', () => {\n if (option.loop) {\n art.seek = 0;\n art.play();\n art.controls.show = false;\n art.mask.show = false;\n } else {\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:error', async (error) => {\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n reconnectTime += 1;\n art.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', error, reconnectTime);\n } else {\n art.mask.show = true;\n art.loading.show = false;\n art.controls.show = true;\n addClass($player, 'art-error');\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n notice.show = i18n.get('Video Load Failed');\n art.destroy(false);\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n art.autoSize = option.autoSize;\n if (isMobile) {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:loadstart', () => {\n art.loading.show = true;\n art.mask.show = false;\n art.controls.show = true;\n });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n\n // art.on('video:stalled', () => {\n\n // });\n\n // art.on('video:suspend', () => {\n\n // });\n\n art.on('video:timeupdate', () => {\n art.mask.show = false;\n });\n\n // art.on('video:volumechange', () => {\n\n // });\n\n art.on('video:waiting', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n}\n","import { errorHandle, addClass, removeClass, isMobile } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\nimport airplay from './airplay';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n proxy,\n constructor,\n template: { $player },\n } = art;\n\n let activeTime = Date.now();\n\n proxy($player, ['click', 'mousemove', 'touchstart', 'touchmove'], () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n activeTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (!art.isInput && art.playing && this.show && Date.now() - activeTime >= constructor.CONTROL_HIDE_TIME) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n this.init();\n }\n\n init() {\n const { option } = this.art;\n\n if (!option.isLive) {\n this.add(\n progress({\n name: 'progress',\n position: 'top',\n index: 10,\n }),\n );\n }\n\n if (option.thumbnails.url && !option.isLive && !isMobile) {\n this.add(\n thumbnails({\n name: 'thumbnails',\n position: 'top',\n index: 20,\n }),\n );\n }\n\n this.add(\n loop({\n name: 'loop',\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n position: 'left',\n index: 20,\n }),\n );\n\n if (!option.isLive) {\n this.add(\n time({\n name: 'time',\n position: 'left',\n index: 30,\n }),\n );\n }\n\n if (option.quality.length) {\n this.add(\n quality({\n name: 'quality',\n position: 'right',\n index: 10,\n }),\n );\n }\n\n if (option.screenshot && !isMobile) {\n this.add(\n screenshot({\n name: 'screenshot',\n position: 'right',\n index: 20,\n }),\n );\n }\n\n if (option.setting) {\n this.add(\n setting({\n name: 'setting',\n position: 'right',\n index: 30,\n }),\n );\n }\n\n if (option.pip) {\n this.add(\n pip({\n name: 'pip',\n position: 'right',\n index: 40,\n }),\n );\n }\n\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) {\n this.add(\n airplay({\n name: 'airplay',\n position: 'right',\n index: 50,\n }),\n );\n }\n\n if (option.fullscreenWeb) {\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60,\n }),\n );\n }\n\n if (option.fullscreen) {\n this.add(\n fullscreen({\n name: 'fullscreen',\n position: 'right',\n index: 70,\n }),\n );\n }\n\n for (let index = 0; index < option.controls.length; index++) {\n this.add(option.controls[index]);\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import {\n remove,\n append,\n tooltip,\n hasClass,\n addClass,\n getStyle,\n setStyles,\n removeClass,\n inverseClass,\n createElement,\n} from './dom';\nimport { isStringOrNumber } from './format';\nimport { errorHandle } from './error';\nimport validator from 'option-validator';\nimport { ComponentOption } from '../scheme';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.cache = new Map();\n this.add = this.add.bind(this);\n this.remove = this.remove.bind(this);\n this.update = this.update.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n toggle() {\n this.show = !this.show;\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n option.html = option.html || '';\n validator(option, ComponentOption);\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n const item = this.cache.get(name);\n errorHandle(!item, `Can't add an existing [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n const events = [];\n if (option.click) {\n const destroyEvent = this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n events.push(destroyEvent);\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.addSelector(option, $ref, events);\n }\n\n this[name] = $ref;\n this.cache.set(name, { $ref, events, option });\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n return $ref;\n }\n\n addSelector(option, $ref, events) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector\n .map(\n (item, index) =>\n `
${\n item.html\n }
`,\n )\n .join('');\n const $list = createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n const refWidth = getStyle($ref, 'width');\n const listWidth = getStyle($list, 'width');\n const left = refWidth / 2 - listWidth / 2;\n $list.style.left = `${left}px`;\n };\n\n hover($ref, setLeft);\n\n const destroyEvent = proxy($list, 'click', async (event) => {\n const path = event.composedPath() || [];\n const $item = path.find((item) => hasClass(item, 'art-selector-item'));\n if (!$item) return;\n inverseClass($item, 'art-current');\n const index = Number($item.dataset.index);\n const find = option.selector[index] || {};\n $value.innerText = $item.innerText;\n if (option.onSelect) {\n const result = await option.onSelect.call(this.art, find, $item, event);\n if (isStringOrNumber(result)) {\n $value.innerHTML = result;\n }\n }\n setLeft();\n });\n\n events.push(destroyEvent);\n }\n\n remove(name) {\n const item = this.cache.get(name);\n errorHandle(item, `Can't find [${name}] from the [${this.name}]`);\n\n if (item.option.beforeUnmount) {\n item.option.beforeUnmount.call(this.art, item.$ref);\n }\n\n for (let index = 0; index < item.events.length; index++) {\n this.art.events.remove(item.events[index]);\n }\n\n this.cache.delete(name);\n delete this[name];\n remove(item.$ref);\n }\n\n update(option) {\n const item = this.cache.get(option.name);\n if (item) this.remove(option.name);\n return this.add(option);\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreen(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $fullscreenOn = append($control, icons.fullscreenOn);\n const $fullscreenOff = append($control, icons.fullscreenOff);\n setStyle($fullscreenOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreen = !art.fullscreen;\n });\n\n art.on('fullscreen', (state) => {\n if (state) {\n tooltip($control, i18n.get('Exit Fullscreen'));\n setStyle($fullscreenOn, 'display', 'none');\n setStyle($fullscreenOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Fullscreen'));\n setStyle($fullscreenOn, 'display', 'inline-flex');\n setStyle($fullscreenOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $fullscreenWebOn = append($control, icons.fullscreenWebOn);\n const $fullscreenWebOff = append($control, icons.fullscreenWebOff);\n setStyle($fullscreenWebOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreenWeb = !art.fullscreenWeb;\n });\n\n art.on('fullscreenWeb', (value) => {\n if (value) {\n tooltip($control, i18n.get('Exit Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'none');\n setStyle($fullscreenWebOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'inline-flex');\n setStyle($fullscreenWebOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n art.pip = !art.pip;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n art.play();\n });\n\n proxy($pause, 'click', () => {\n art.pause();\n });\n\n function showPlay() {\n setStyle($play, 'display', 'flex');\n setStyle($pause, 'display', 'none');\n }\n\n function showPause() {\n setStyle($play, 'display', 'none');\n setStyle($pause, 'display', 'flex');\n }\n\n if (art.playing) {\n showPause();\n } else {\n showPlay();\n }\n\n art.on('video:playing', () => {\n showPause();\n });\n\n art.on('video:pause', () => {\n showPlay();\n });\n },\n });\n}\n","import { query, clamp, append, setStyle, secondToTime, includeFromEvent, isMobile } from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = $progress.getBoundingClientRect();\n const eventLeft = isMobile ? event.touches[0].clientX : event.pageX;\n const width = clamp(eventLeft - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * art.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport function setCurrentTime(art, event) {\n if (art.isRotate) {\n const percentage = event.touches[0].clientY / art.height;\n const second = percentage * art.duration;\n art.emit('setBar', 'played', percentage);\n art.seek = second;\n } else {\n const { second, percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'played', percentage);\n art.seek = second;\n }\n}\n\nexport default function progress(options) {\n return (art) => {\n const { icons, option, proxy } = art;\n\n return {\n ...options,\n html: `\n
\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let isDroging = false;\n const $hover = query('.art-progress-hover', $control);\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n if (icons.indicator) {\n append($indicator, icons.indicator);\n } else {\n setStyle($indicator, 'backgroundColor', 'var(--art-theme)');\n }\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle($indicator, 'left', `${percentage * 100}%`);\n }\n }\n\n function setHover(event) {\n const { width } = getPosFromEvent(art, event);\n setStyle($hover, 'width', `${width}px`);\n setStyle($hover, 'display', 'flex');\n }\n\n art.on('video:loadedmetadata', () => {\n for (let index = 0; index < option.highlight.length; index++) {\n const item = option.highlight[index];\n const left = (clamp(item.time, 0, art.duration) / art.duration) * 100;\n const html = ``;\n append($highlight, html);\n }\n });\n\n setBar('loaded', art.loaded);\n\n art.on('setBar', (type, percentage) => {\n setBar(type, percentage);\n });\n\n art.on('video:progress', () => {\n setBar('loaded', art.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', art.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n if (!isMobile) {\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n setCurrentTime(art, event);\n }\n });\n\n proxy($control, 'mousemove', (event) => {\n setHover(event);\n setStyle($tip, 'display', 'flex');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseleave', () => {\n setStyle($tip, 'display', 'none');\n setStyle($hover, 'display', 'none');\n });\n\n proxy($control, 'mousedown', (event) => {\n isDroging = event.button === 0;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n art.seek = second;\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n }\n },\n };\n };\n}\n","import { secondToTime, isMobile } from '../utils';\n\nexport default function time(option) {\n return (art) => ({\n ...option,\n style: isMobile\n ? {\n fontSize: '12px',\n padding: '0 5px',\n }\n : {\n cursor: 'auto',\n padding: '0 10px',\n },\n mounted: ($control) => {\n function getTime() {\n const newTime = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n\n const events = ['video:loadedmetadata', 'video:timeupdate', 'video:progress'];\n for (let index = 0; index < events.length; index++) {\n art.on(events[index], getTime);\n }\n },\n });\n}\n","import { append, setStyle, isMobile } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons } = art;\n\n const $volume = append($control, icons.volume);\n const $close = append($control, icons.volumeClose);\n const $panel = append($control, '
');\n const $inner = append($panel, '
');\n const $value = append($inner, `
`);\n const $slider = append($inner, `
`);\n const $handle = append($slider, `
`);\n const $loaded = append($handle, `
`);\n const $indicator = append($slider, `
`);\n\n function getVolumeFromEvent(event) {\n const { top, height } = $slider.getBoundingClientRect();\n return 1 - (event.pageY - top) / height;\n }\n\n function update() {\n if (art.muted || art.volume === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($close, 'display', 'flex');\n setStyle($indicator, 'top', '100%');\n setStyle($loaded, 'top', '100%');\n $value.innerText = 0;\n } else {\n const percentage = art.volume * 100;\n setStyle($volume, 'display', 'flex');\n setStyle($close, 'display', 'none');\n setStyle($indicator, 'top', `${100 - percentage}%`);\n setStyle($loaded, 'top', `${100 - percentage}%`);\n $value.innerText = Math.floor(percentage);\n }\n }\n\n update();\n art.on('video:volumechange', update);\n\n proxy($volume, 'click', () => {\n art.muted = true;\n });\n\n proxy($close, 'click', () => {\n art.muted = false;\n });\n\n if (isMobile) {\n setStyle($panel, 'display', 'none');\n } else {\n let isDroging = false;\n\n proxy($slider, 'mousedown', (event) => {\n isDroging = event.button === 0;\n art.volume = getVolumeFromEvent(event);\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n art.muted = false;\n art.volume = getVolumeFromEvent(event);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n }\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n art.setting.toggle();\n art.setting.updateStyle();\n });\n\n art.on('setting', (value) => {\n tooltip($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(options) {\n return (art) => ({\n ...options,\n mounted: ($control) => {\n const {\n option,\n template: { $progress, $video },\n events: { proxy, loadImg },\n } = art;\n\n let image = null;\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, number, column, width, height } = option.thumbnails;\n const width2 = width || image.naturalWidth / column;\n const height2 = height || width2 / ($video.videoWidth / $video.videoHeight);\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height2}px`);\n setStyle($control, 'width', `${width2}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`);\n if (posWidth <= width2 / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width2 / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width2}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width2 / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', async (event) => {\n if (!loading) {\n loading = true;\n const img = await loadImg(option.thumbnails.url);\n image = img;\n isLoad = true;\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'flex');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseleave', () => {\n setStyle($control, 'display', 'none');\n });\n\n art.on('hover', (state) => {\n if (!state) {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control) => {\n const { proxy, icons } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n art.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n style: {\n marginRight: '10px',\n },\n html: qualityDefault ? qualityDefault.html : '',\n selector: qualityOption,\n onSelect(item) {\n art.switchQuality(item.url, item.html);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value && value.length) {\n setStyle($control, 'display', 'flex');\n setStyle($left, 'left', `calc(${(value[0] / art.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / art.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control) => {\n const { proxy, icons } = art;\n append($control, icons.airplay);\n proxy($control, 'click', () => art.airplay());\n },\n });\n}\n","import { setStyles, includeFromEvent, isMobile } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport flip from './flip';\nimport info from './info';\nimport version from './version';\nimport close from './close';\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'contextmenu';\n this.$parent = art.template.$contextmenu;\n\n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n option,\n proxy,\n template: { $player, $contextmenu },\n } = this.art;\n\n if (option.playbackRate) {\n this.add(\n playbackRate({\n name: 'playbackRate',\n index: 10,\n }),\n );\n }\n\n if (option.aspectRatio) {\n this.add(\n aspectRatio({\n name: 'aspectRatio',\n index: 20,\n }),\n );\n }\n\n if (option.flip) {\n this.add(\n flip({\n name: 'flip',\n index: 30,\n }),\n );\n }\n\n this.add(\n info({\n name: 'info',\n index: 40,\n }),\n );\n\n this.add(\n version({\n name: 'version',\n index: 50,\n }),\n );\n\n this.add(\n close({\n name: 'close',\n index: 60,\n }),\n );\n\n for (let index = 0; index < option.contextmenu.length; index++) {\n this.add(option.contextmenu[index]);\n }\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n if (!this.art.constructor.CONTEXTMENU) return;\n\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n this.art.on('blur', () => {\n this.show = false;\n });\n }\n}\n","import { inverseClass, query, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const {\n i18n,\n constructor: { PLAYBACK_RATE },\n } = art;\n\n const html = PLAYBACK_RATE.map(\n (item) => `${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Play Speed')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.playbackRate = Number(value);\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"1\"]', $panel);\n if ($default) inverseClass($default, 'art-current');\n art.on('video:ratechange', () => {\n const $current = queryAll('span', $panel).find(\n (item) => Number(item.dataset.value) === art.playbackRate,\n );\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, query, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const {\n i18n,\n constructor: { ASPECT_RATIO },\n } = art;\n\n const html = ASPECT_RATIO.map(\n (item) => `${item === 'default' ? i18n.get('Default') : item}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Aspect Ratio')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.aspectRatio = value;\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"default\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\n art.on('aspectRatio', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, query, queryAll, capitalize } from '../utils';\n\nexport default function flip(option) {\n return (art) => {\n const {\n i18n,\n constructor: { FLIP },\n } = art;\n\n const html = FLIP.map((item) => `${i18n.get(capitalize(item))}`).join('');\n\n return {\n ...option,\n html: `${i18n.get('Video Flip')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.flip = value.toLowerCase();\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"normal\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\n art.on('flip', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return (art) => ({\n ...option,\n html: art.i18n.get('Video Info'),\n click: (contextmenu) => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: `ArtPlayer ${process.env.APP_VER}`,\n };\n}\n","export default function close(option) {\n return (art) => ({\n ...option,\n html: art.i18n.get('Close'),\n click: (contextmenu) => {\n contextmenu.show = false;\n },\n });\n}\n","import { queryAll, isMobile } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.name = 'info';\n\n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n proxy,\n constructor,\n template: { $infoPanel, $infoClose, $video },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const $types = queryAll('[data-video]', $infoPanel) || [];\n this.art.on('destroy', () => clearTimeout(timer));\n\n function loop() {\n for (let index = 0; index < $types.length; index++) {\n const item = $types[index];\n const value = $video[item.dataset.video];\n const innerText = typeof value === 'number' ? value.toFixed(2) : value;\n if (item.innerText !== innerText) {\n item.innerText = innerText;\n }\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME);\n }\n\n loop();\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n escape,\n remove,\n append,\n createElement,\n} from './utils';\nimport Component from './utils/component';\nimport validator from 'option-validator';\nimport scheme from './scheme';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n this.name = 'subtitle';\n this.eventDestroy = () => null;\n this.init(art.option.subtitle);\n\n let lastState = false;\n art.on('video:timeupdate', () => {\n if (!this.url) return;\n const state = this.art.template.$video.webkitDisplayingFullscreen;\n if (typeof state !== 'boolean') return;\n if (state !== lastState) {\n lastState = state;\n this.createTrack(state ? 'subtitles' : 'metadata', this.url);\n }\n });\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n set url(url) {\n this.switch(url);\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n if (this.art.option.subtitle.escape) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

${escape(item)}

`)\n .join('');\n } else {\n $subtitle.innerHTML = this.activeCue.text;\n }\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art;\n const subtitleOption = { ...option.subtitle, ...newOption, url };\n const subUrl = await this.init(subtitleOption);\n if (newOption.name) {\n notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`;\n }\n return subUrl;\n }\n\n createTrack(kind, url) {\n const { template, proxy } = this.art;\n const { $video, $track } = template;\n\n const $newTrack = createElement('track');\n $newTrack.default = true;\n $newTrack.kind = kind;\n $newTrack.src = url;\n $newTrack.track.mode = 'hidden';\n\n this.eventDestroy();\n remove($track);\n\n append($video, $newTrack);\n template.$track = $newTrack;\n this.eventDestroy = proxy(this.textTrack, 'cuechange', () => this.update());\n }\n\n async init(subtitleOption) {\n const {\n notice,\n template: { $subtitle },\n } = this.art;\n\n validator(subtitleOption, scheme.subtitle);\n if (!subtitleOption.url) return;\n this.style(subtitleOption.style);\n\n return fetch(subtitleOption.url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n this.art.emit('subtitleLoad', subtitleOption.url);\n switch (subtitleOption.type || getExt(subtitleOption.url)) {\n case 'srt': {\n const vtt = srtToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'ass': {\n const vtt = assToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'vtt': {\n const vttNew = subtitleOption.onVttLoad(text);\n return vttToBlob(vttNew);\n }\n default:\n return subtitleOption.url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.createTrack('metadata', subUrl);\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport moveInit from './moveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\nimport documentInit from './documentInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n clickInit(art, this);\n hoverInit(art, this);\n moveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n documentInit(art, this);\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n });\n }\n\n remove(destroyEvent) {\n const index = this.destroyEvents.indexOf(destroyEvent);\n if (index > -1) {\n destroyEvent();\n this.destroyEvents.splice(index, 1);\n }\n }\n\n destroy() {\n for (let index = 0; index < this.destroyEvents.length; index++) {\n this.destroyEvents[index]();\n }\n }\n}\n","import { includeFromEvent, isMobile } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n constructor,\n template: { $player, $video },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isInput = event.target.tagName === 'INPUT';\n art.isFocus = true;\n art.emit('focus', event);\n } else {\n art.isInput = false;\n art.isFocus = false;\n art.emit('blur', event);\n }\n });\n\n let clickTime = 0;\n events.proxy($video, 'click', (event) => {\n const now = Date.now();\n const { MOBILE_CLICK_PLAY, DBCLICK_TIME, MOBILE_DBCLICK_PLAY, DBCLICK_FULLSCREEN } = constructor;\n\n if (now - clickTime <= DBCLICK_TIME) {\n art.emit('dblclick', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) {\n art.toggle();\n }\n } else {\n if (DBCLICK_FULLSCREEN) {\n art.fullscreen = !art.fullscreen;\n }\n }\n } else {\n art.emit('click', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) {\n art.toggle();\n }\n } else {\n art.toggle();\n }\n }\n\n clickTime = now;\n });\n}\n","import { addClass, removeClass } from '../utils';\n\nexport default function hoverInit(art, events) {\n const { $player } = art.template;\n\n events.hover(\n $player,\n (event) => {\n addClass($player, 'art-hover');\n art.emit('hover', true, event);\n },\n (event) => {\n removeClass($player, 'art-hover');\n art.emit('hover', false, event);\n },\n );\n}\n","export default function moveInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option } = art;\n\n const resizeFn = throttle(() => {\n if (art.state === 'standard') {\n art.autoSize = option.autoSize;\n }\n art.aspectRatioReset();\n art.notice.show = '';\n art.emit('resize');\n }, art.constructor.RESIZE_TIME);\n\n events.proxy(window, ['orientationchange', 'resize'], () => resizeFn());\n if (screen && screen.orientation && screen.orientation.onchange) {\n events.proxy(screen.orientation, 'change', () => resizeFn());\n }\n}\n","import { clamp, secondToTime, isMobile } from '../utils';\nimport { setCurrentTime } from '../control/progress';\n\nfunction GetSlideAngle(dx, dy) {\n return (Math.atan2(dy, dx) * 180) / Math.PI;\n}\n\nfunction GetSlideDirection(startX, startY, endX, endY) {\n var dy = startY - endY;\n var dx = endX - startX;\n var result = 0;\n\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {\n return result;\n }\n\n var angle = GetSlideAngle(dx, dy);\n if (angle >= -45 && angle < 45) {\n result = 4;\n } else if (angle >= 45 && angle < 135) {\n result = 1;\n } else if (angle >= -135 && angle < -45) {\n result = 2;\n } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {\n result = 3;\n }\n\n return result;\n}\n\nexport default function gestureInit(art, events) {\n if (isMobile && !art.option.isLive) {\n const { $video, $progress } = art.template;\n\n let touchTarget = null;\n let isDroging = false;\n let startX = 0;\n let startY = 0;\n let startTime = 0;\n\n const onTouchStart = (event) => {\n if (event.touches.length === 1 && !art.isLock) {\n if (touchTarget === $progress) {\n setCurrentTime(art, event);\n }\n\n isDroging = true;\n const { pageX, pageY } = event.touches[0];\n startX = pageX;\n startY = pageY;\n startTime = art.currentTime;\n }\n };\n\n const onTouchMove = (event) => {\n if (event.touches.length === 1 && isDroging && art.duration) {\n const { pageX, pageY } = event.touches[0];\n const direction = GetSlideDirection(startX, startY, pageX, pageY);\n const isHorizontal = [3, 4].includes(direction);\n const isVertical = [1, 2].includes(direction);\n const isLegal = (isHorizontal && !art.isRotate) || (isVertical && art.isRotate);\n if (isLegal) {\n const ratioX = clamp((pageX - startX) / art.width, -1, 1);\n const ratioY = clamp((pageY - startY) / art.height, -1, 1);\n const ratio = art.isRotate ? ratioY : ratioX;\n const TOUCH_MOVE_RATIO = touchTarget === $video ? art.constructor.TOUCH_MOVE_RATIO : 1;\n const currentTime = clamp(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', clamp(currentTime / art.duration, 0, 1));\n art.notice.show = `${secondToTime(currentTime)} / ${secondToTime(art.duration)}`;\n }\n }\n };\n\n const onTouchEnd = () => {\n if (isDroging) {\n startX = 0;\n startY = 0;\n startTime = 0;\n isDroging = false;\n touchTarget = null;\n }\n };\n\n events.proxy($progress, 'touchstart', (event) => {\n touchTarget = $progress;\n onTouchStart(event);\n });\n\n events.proxy($video, 'touchstart', (event) => {\n touchTarget = $video;\n onTouchStart(event);\n });\n\n events.proxy($video, 'touchmove', onTouchMove);\n events.proxy($progress, 'touchmove', onTouchMove);\n events.proxy(document, 'touchend', onTouchEnd);\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n option,\n constructor,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, constructor.SCROLL_GAP));\n }, constructor.SCROLL_TIME);\n\n events.proxy(window, 'scroll', () => scrollFn());\n\n art.on('view', (state) => {\n if (option.autoMini) {\n art.mini = !state;\n }\n });\n}\n","export default function documentInit(art, events) {\n events.proxy(document, 'mousemove', (event) => {\n art.emit('document:mousemove', event);\n });\n\n events.proxy(document, 'mouseup', (event) => {\n art.emit('document:mouseup', event);\n });\n}\n","import { isMobile } from './utils';\n\nexport default class Hotkey {\n constructor(art) {\n this.art = art;\n this.keys = {};\n\n if (art.option.hotkey && !isMobile) {\n this.init();\n }\n }\n\n init() {\n const { proxy, constructor } = this.art;\n\n this.add(27, () => {\n if (this.art.fullscreenWeb) {\n this.art.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n this.art.toggle();\n });\n\n this.add(37, () => {\n this.art.backward = constructor.SEEK_STEP;\n });\n\n this.add(38, () => {\n this.art.volume += constructor.VOLUME_STEP;\n });\n\n this.add(39, () => {\n this.art.forward = constructor.SEEK_STEP;\n });\n\n this.add(40, () => {\n this.art.volume -= constructor.VOLUME_STEP;\n });\n\n proxy(window, 'keydown', (event) => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n for (let index = 0; index < events.length; index++) {\n events[index].call(this.art, event);\n }\n this.art.emit('hotkey', event);\n }\n }\n }\n });\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n return this;\n }\n\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event);\n if (index !== -1) {\n this.keys[key].splice(index, 1);\n }\n }\n return this;\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n template: { $layer },\n } = art;\n\n this.name = 'layer';\n this.$parent = $layer;\n\n for (let index = 0; index < option.layers.length; index++) {\n this.add(option.layers[index]);\n }\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Loading extends Component {\n constructor(art) {\n super(art);\n this.name = 'loading';\n append(art.template.$loading, art.icons.loading);\n }\n}\n","import { addClass, removeClass } from './utils';\n\nexport default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n set show(msg) {\n const {\n constructor,\n template: { $player, $noticeInner },\n } = this.art;\n\n if (msg) {\n $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg;\n addClass($player, 'art-notice-show');\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n $noticeInner.innerText = '';\n removeClass($player, 'art-notice-show');\n }, constructor.NOTICE_TIME);\n } else {\n removeClass($player, 'art-notice-show');\n }\n }\n}\n","import { append, setStyle } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'mask';\n const { template, icons, events } = art;\n\n const $state = append(template.$state, icons.state);\n const $error = append(template.$state, icons.error);\n\n setStyle($error, 'display', 'none');\n\n art.on('destroy', () => {\n setStyle($state, 'display', 'none');\n setStyle($error, 'display', null);\n });\n\n events.proxy(template.$state, 'click', () => art.play());\n }\n}\n","import { def, getIcon } from '../utils';\nimport loading from 'bundle-text:./loading.svg';\nimport state from 'bundle-text:./state.svg';\nimport check from 'bundle-text:./check.svg';\nimport play from 'bundle-text:./play.svg';\nimport pause from 'bundle-text:./pause.svg';\nimport volume from 'bundle-text:./volume.svg';\nimport volumeClose from 'bundle-text:./volume-close.svg';\nimport screenshot from 'bundle-text:./screenshot.svg';\nimport setting from 'bundle-text:./setting.svg';\nimport arrowLeft from 'bundle-text:./arrow-left.svg';\nimport arrowRight from 'bundle-text:./arrow-right.svg';\nimport playbackRate from 'bundle-text:./playback-rate.svg';\nimport aspectRatio from 'bundle-text:./aspect-ratio.svg';\nimport config from 'bundle-text:./config.svg';\nimport pip from 'bundle-text:./pip.svg';\nimport lock from 'bundle-text:./lock.svg';\nimport unlock from 'bundle-text:./unlock.svg';\nimport fullscreenOff from 'bundle-text:./fullscreen-off.svg';\nimport fullscreenOn from 'bundle-text:./fullscreen-on.svg';\nimport fullscreenWebOff from 'bundle-text:./fullscreen-web-off.svg';\nimport fullscreenWebOn from 'bundle-text:./fullscreen-web-on.svg';\nimport switchOn from 'bundle-text:./switch-on.svg';\nimport switchOff from 'bundle-text:./switch-off.svg';\nimport flip from 'bundle-text:./flip.svg';\nimport error from 'bundle-text:./error.svg';\nimport close from 'bundle-text:./close.svg';\nimport airplay from 'bundle-text:./airplay.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n check,\n volume,\n volumeClose,\n screenshot,\n setting,\n pip,\n arrowLeft,\n arrowRight,\n playbackRate,\n aspectRatio,\n config,\n lock,\n flip,\n unlock,\n fullscreenOff,\n fullscreenOn,\n fullscreenWebOff,\n fullscreenWebOn,\n switchOn,\n switchOff,\n error,\n close,\n airplay,\n ...art.option.icons,\n };\n\n for (const key in icons) {\n def(this, key, {\n get: () => getIcon(key, icons[key]),\n });\n }\n }\n}\n","module.exports = \"48351807f9d17b85\";","module.exports = \"b521bd87173f07f8\";","module.exports = \"7d4d567c33bb525d\";","module.exports = \"d9cf5218ba4119f7\";","module.exports = \"1b6f706023152499\";","module.exports = \"ccea5e85f0721ac8\";","module.exports = \"7b07ee0d42ef7999\";","module.exports = \"d10cbdd15b9c3ccc\";","module.exports = \"ce7e5747dbeebf9c\";","module.exports = \"31d0f450fd3142ae\";","module.exports = \"607a9d3122cadc95\";","module.exports = \"3f2a5aef9e446414\";","module.exports = \"a3c2d6619a4bebaf\";","module.exports = \"5daee943371cdae2\";","module.exports = \"e49c27bbc31901ab\";","module.exports = \"0fd94c9b6ccce96e\";","module.exports = \"721f903406a7a9bd\";","module.exports = \"133f4e7286a8c946\";","module.exports = \"3ad4b0d674115f9f\";","module.exports = \"66f3df095ff2cfc9\";","module.exports = \"6a9b55926d7ffbd8\";","module.exports = \"ed05d01f0639f8dd\";","module.exports = \"42b075eebf138ccb\";","module.exports = \"c9dbc85ae2682806\";","module.exports = \"4e1fab3a25abda1e\";","module.exports = \"ef31f094274e03ea\";","module.exports = \"6f41eca9c8b9cda2\";","import flip from './flip';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\nimport subtitleOffset from './subtitleOffset';\nimport Component from '../utils/component';\nimport {\n def,\n has,\n append,\n addClass,\n setStyle,\n isMobile,\n mergeDeep,\n inverseClass,\n createElement,\n includeFromEvent,\n isStringOrNumber,\n} from '../utils';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n controls,\n template: { $setting },\n } = art;\n\n this.name = 'setting';\n this.$parent = $setting;\n\n this.option = [];\n this.events = [];\n this.cache = new Map();\n\n if (option.setting) {\n this.update(option.settings);\n\n art.on('blur', () => {\n if (this.show) {\n this.show = false;\n this.render(this.option);\n }\n });\n\n art.on('focus', (event) => {\n const isSetting = includeFromEvent(event, controls.setting);\n const isParent = includeFromEvent(event, this.$parent);\n if (this.show && !isSetting && !isParent) {\n this.show = false;\n this.render(this.option);\n }\n });\n }\n }\n\n static makeRecursion(option, parentItem, parentList) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n item.$parentItem = parentItem;\n item.$parentList = parentList;\n Setting.makeRecursion(item.selector || [], item, option);\n }\n return option;\n }\n\n get defaultSettings() {\n const result = [];\n const { option } = this.art;\n\n if (option.playbackRate) {\n result.push(playbackRate(this.art));\n }\n\n if (option.aspectRatio) {\n result.push(aspectRatio(this.art));\n }\n\n if (option.flip) {\n result.push(flip(this.art));\n }\n\n if (option.subtitleOffset) {\n result.push(subtitleOffset(this.art));\n }\n\n return result;\n }\n\n remove() {\n for (let index = 0; index < this.events.length; index++) {\n this.art.events.remove(this.events[index]);\n }\n this.$parent.innerHTML = '';\n this.events = [];\n this.cache = new Map();\n }\n\n update(settings) {\n this.remove();\n const settingsCopy = settings.map((item) => mergeDeep({}, item));\n const mergeSettings = [...this.defaultSettings, ...settingsCopy];\n this.option = Setting.makeRecursion(mergeSettings);\n this.render(this.option);\n return this.option;\n }\n\n add(setting) {\n this.remove();\n const settingCopy = mergeDeep({}, setting);\n this.option.push(settingCopy);\n this.option = Setting.makeRecursion(this.option);\n this.render(this.option);\n return this.option;\n }\n\n creatHeader(item) {\n const { icons, proxy } = this.art;\n const $item = createElement('div');\n addClass($item, 'art-setting-item');\n addClass($item, 'art-setting-item-back');\n const $left = append($item, '
');\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n append($icon, icons.arrowLeft);\n append($left, $icon);\n append($left, item.$parentItem.html);\n const event = proxy($item, 'click', () => this.render(item.$parentList));\n this.events.push(event);\n return $item;\n }\n\n creatItem(type, item) {\n const { icons, proxy } = this.art;\n\n const $item = createElement('div');\n addClass($item, 'art-setting-item');\n\n if (isStringOrNumber(item.name)) {\n $item.dataset.name = item.name;\n }\n\n if (isStringOrNumber(item.value)) {\n $item.dataset.value = item.value;\n }\n\n const $left = append($item, '
');\n const $right = append($item, '
');\n\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n\n switch (type) {\n case 'switch':\n case 'range':\n append($icon, isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config);\n break;\n case 'selector':\n if (item.selector && item.selector.length) {\n append(\n $icon,\n isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config,\n );\n } else {\n append($icon, icons.check);\n }\n break;\n default:\n break;\n }\n\n append($left, $icon);\n item.$icon = $icon;\n\n def(item, 'icon', {\n configurable: true,\n get() {\n return $icon.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $icon.innerHTML = value;\n }\n },\n });\n\n const $html = createElement('div');\n addClass($html, 'art-setting-item-left-text');\n append($html, item.html || '');\n append($left, $html);\n item.$html = $html;\n\n def(item, 'html', {\n configurable: true,\n get() {\n return $html.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $html.innerHTML = value;\n }\n },\n });\n\n const $tooltip = createElement('div');\n addClass($tooltip, 'art-setting-item-right-tooltip');\n append($tooltip, item.tooltip || '');\n append($right, $tooltip);\n item.$tooltip = $tooltip;\n\n def(item, 'tooltip', {\n configurable: true,\n get() {\n return $tooltip.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $tooltip.innerHTML = value;\n }\n },\n });\n\n switch (type) {\n case 'switch': {\n const $state = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $switchOn = append($state, icons.switchOn);\n const $switchOff = append($state, icons.switchOff);\n setStyle(item.switch ? $switchOff : $switchOn, 'display', 'none');\n append($right, $state);\n item.$switch = item.switch;\n\n def(item, 'switch', {\n configurable: true,\n get() {\n return item.$switch;\n },\n set(value) {\n item.$switch = value;\n if (value) {\n setStyle($switchOff, 'display', 'none');\n setStyle($switchOn, 'display', null);\n } else {\n setStyle($switchOff, 'display', null);\n setStyle($switchOn, 'display', 'none');\n }\n },\n });\n break;\n }\n case 'range':\n {\n const $state = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $range = append($state, '');\n $range.value = item.range[0] || 0;\n $range.min = item.range[1] || 0;\n $range.max = item.range[2] || 10;\n $range.step = item.range[3] || 1;\n addClass($range, 'art-setting-range');\n append($right, $state);\n item.$range = $range;\n\n def(item, 'range', {\n configurable: true,\n get() {\n return $range.valueAsNumber;\n },\n set(value) {\n $range.value = Number(value);\n },\n });\n }\n break;\n case 'selector':\n if (item.selector && item.selector.length) {\n const $state = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n append($state, icons.arrowRight);\n append($right, $state);\n }\n break;\n default:\n break;\n }\n\n switch (type) {\n case 'switch': {\n if (item.onSwitch) {\n const event = proxy($item, 'click', async (event) => {\n item.switch = await item.onSwitch.call(this.art, item, $item, event);\n });\n\n this.events.push(event);\n }\n break;\n }\n case 'range': {\n if (item.$range) {\n if (item.onRange) {\n const event = proxy(item.$range, 'change', async (event) => {\n item.tooltip = await item.onRange.call(this.art, item, $item, event);\n });\n this.events.push(event);\n }\n\n if (item.onChange) {\n const event = proxy(item.$range, 'input', async (event) => {\n item.tooltip = await item.onChange.call(this.art, item, $item, event);\n });\n this.events.push(event);\n }\n }\n break;\n }\n case 'selector':\n {\n const event = proxy($item, 'click', async (event) => {\n if (item.selector && item.selector.length) {\n this.render(item.selector, item.width);\n } else {\n inverseClass($item, 'art-current');\n\n for (let index = 0; index < item.$parentItem.selector.length; index++) {\n const element = item.$parentItem.selector[index];\n element.default = element === item;\n }\n\n if (item.$parentList) {\n this.render(item.$parentList);\n }\n\n if (item.$parentItem && item.$parentItem.onSelect) {\n const result = await item.$parentItem.onSelect.call(this.art, item, $item, event);\n if (item.$parentItem.$tooltip && isStringOrNumber(result)) {\n item.$parentItem.$tooltip.innerHTML = result;\n }\n }\n }\n });\n\n this.events.push(event);\n\n if (item.default) {\n addClass($item, 'art-current');\n }\n }\n break;\n default:\n break;\n }\n\n return $item;\n }\n\n updateStyle(width) {\n const {\n controls,\n constructor,\n template: { $player, $setting },\n } = this.art;\n\n if (controls.setting && !isMobile) {\n const settingWidth = width || constructor.SETTING_WIDTH;\n const { left: controlLeft, width: controlWidth } = controls.setting.getBoundingClientRect();\n const { left: playerLeft, width: playerWidth } = $player.getBoundingClientRect();\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2;\n if (settingLeft + settingWidth > playerWidth) {\n setStyle($setting, 'left', null);\n setStyle($setting, 'right', null);\n } else {\n setStyle($setting, 'left', `${settingLeft}px`);\n setStyle($setting, 'right', 'auto');\n }\n }\n }\n\n render(option, width) {\n const { constructor } = this.art;\n\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n inverseClass($panel, 'art-current');\n setStyle(this.$parent, 'width', `${$panel.dataset.width}px`);\n setStyle(this.$parent, 'height', `${$panel.dataset.height}px`);\n this.updateStyle(Number($panel.dataset.width));\n } else {\n const $panel = createElement('div');\n addClass($panel, 'art-setting-panel');\n $panel.dataset.width = width || constructor.SETTING_WIDTH;\n $panel.dataset.height = option.length * constructor.SETTING_ITEM_HEIGHT;\n\n if (option[0] && option[0].$parentItem) {\n append($panel, this.creatHeader(option[0]));\n $panel.dataset.height = Number($panel.dataset.height) + constructor.SETTING_ITEM_HEIGHT;\n }\n\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n if (has(item, 'switch')) {\n append($panel, this.creatItem('switch', item));\n } else if (has(item, 'range')) {\n append($panel, this.creatItem('range', item));\n } else {\n append($panel, this.creatItem('selector', item));\n }\n }\n\n append(this.$parent, $panel);\n this.cache.set(option, $panel);\n inverseClass($panel, 'art-current');\n setStyle(this.$parent, 'width', `${$panel.dataset.width}px`);\n setStyle(this.$parent, 'height', `${$panel.dataset.height}px`);\n this.updateStyle(Number($panel.dataset.width));\n\n if (option[0] && option[0].$parentItem && option[0].$parentItem.mounted) {\n option[0].$parentItem.mounted.call(this.art, $panel, option[0].$parentItem);\n }\n }\n }\n}\n","import { inverseClass, queryAll, capitalize } from '../utils';\n\nexport default function flip(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, FLIP },\n } = art;\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = i18n.get(capitalize(value));\n const $current = queryAll('.art-setting-item', $panel).find((item) => item.dataset.value === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n html: i18n.get('Video Flip'),\n tooltip: i18n.get(capitalize(art.flip)),\n icon: icons.flip,\n selector: FLIP.map((item) => {\n return {\n value: item,\n default: item === art.flip,\n html: i18n.get(capitalize(item)),\n };\n }),\n onSelect(item) {\n art.flip = item.value;\n return item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.flip);\n art.on('flip', () => {\n update($panel, item.$tooltip, art.flip);\n });\n },\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO },\n } = art;\n\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = getI18n(value);\n const $current = queryAll('.art-setting-item', $panel).find((item) => item.dataset.value === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n html: i18n.get('Aspect Ratio'),\n icon: icons.aspectRatio,\n tooltip: getI18n(art.aspectRatio),\n selector: ASPECT_RATIO.map((item) => {\n return {\n value: item,\n default: item === art.aspectRatio,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.aspectRatio = item.value;\n return item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.aspectRatio);\n art.on('aspectRatio', () => {\n update($panel, item.$tooltip, art.aspectRatio);\n });\n },\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE },\n } = art;\n\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1);\n }\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = getI18n(value);\n const $current = queryAll('.art-setting-item', $panel).find((item) => Number(item.dataset.value) === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n html: i18n.get('Play Speed'),\n tooltip: getI18n(art.playbackRate),\n icon: icons.playbackRate,\n selector: PLAYBACK_RATE.map((item) => {\n return {\n value: item,\n default: item === art.playbackRate,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.playbackRate = item.value;\n return item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.playbackRate);\n art.on('video:ratechange', () => {\n update($panel, item.$tooltip, art.playbackRate);\n });\n },\n };\n}\n","export default function subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n html: i18n.get('Subtitle Offset'),\n icon: icons.subtitle,\n tooltip: '0s',\n range: [0, -5, 5, 0.1],\n onChange(item) {\n art.subtitleOffset = item.range;\n return item.range + 's';\n },\n };\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clear() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { errorHandle, isMobile, has, def } from '../utils';\nimport miniProgressBar from './miniProgressBar';\nimport autoOrientation from './autoOrientation';\nimport autoPlayback from './autoPlayback';\nimport fastForward from './fastForward';\nimport lock from './lock';\n\nexport default class Plugins {\n constructor(art) {\n this.art = art;\n this.id = 0;\n\n const { option } = art;\n\n if (option.miniProgressBar && !option.isLive) {\n this.add(miniProgressBar);\n }\n\n if (option.lock && isMobile) {\n this.add(lock);\n }\n\n if (option.autoPlayback && !option.isLive) {\n this.add(autoPlayback);\n }\n\n if (option.autoOrientation && isMobile) {\n this.add(autoOrientation);\n }\n\n if (option.fastForward && isMobile && !option.isLive) {\n this.add(fastForward);\n }\n\n for (let index = 0; index < option.plugins.length; index++) {\n this.add(option.plugins[index]);\n }\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this.art, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","export default function miniProgressBar(art) {\n art.on('ready', () => {\n art.layers.add({\n name: 'mini-progress-bar',\n mounted($progressBar) {\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${art.played * 100}%`;\n });\n\n art.on('setBar', (type, percentage) => {\n if (type === 'played') {\n $progressBar.style.width = `${percentage * 100}%`;\n }\n });\n },\n });\n });\n\n return {\n name: 'mini-progress-bar',\n };\n}\n","import { setStyle, addClass, removeClass, hasClass } from '../utils';\n\nexport default function autoOrientation(art) {\n const {\n constructor,\n template: { $player, $video },\n } = art;\n\n art.on('fullscreenWeb', (state) => {\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n // There is a conflict with the fullscreen event, and it is changed to asynchronous execution\n setTimeout(() => {\n setStyle($player, 'width', `${viewHeight}px`);\n setStyle($player, 'height', `${viewWidth}px`);\n setStyle($player, 'transform-origin', '0 0');\n setStyle($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`);\n addClass($player, 'art-auto-orientation');\n art.isRotate = true;\n art.emit('resize');\n }, constructor.MOBILE_AUTO_ORIENTATION_TIME);\n }\n } else {\n if (hasClass($player, 'art-auto-orientation')) {\n removeClass($player, 'art-auto-orientation');\n art.isRotate = false;\n art.notice.show = '';\n art.emit('resize');\n }\n }\n });\n\n art.on('fullscreen', async (state) => {\n const lastOrientation = screen.orientation.type;\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n const oppositeOrientation = lastOrientation.startsWith('portrait') ? 'landscape' : 'portrait';\n await screen.orientation.lock(oppositeOrientation);\n addClass($player, 'art-auto-orientation-fullscreen');\n }\n } else {\n if (hasClass($player, 'art-auto-orientation-fullscreen')) {\n await screen.orientation.lock(lastOrientation);\n removeClass($player, 'art-auto-orientation-fullscreen');\n }\n }\n });\n\n return {\n name: 'autoOrientation',\n get state() {\n return hasClass($player, 'art-auto-orientation');\n },\n };\n}\n","import { secondToTime, setStyle, query, append } from '../utils';\n\nexport default function autoPlayback(art) {\n const {\n i18n,\n icons,\n storage,\n constructor,\n proxy,\n template: { $poster },\n } = art;\n\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `,\n });\n\n const $last = query('.art-auto-playback-last', $autoPlayback);\n const $jump = query('.art-auto-playback-jump', $autoPlayback);\n const $close = query('.art-auto-playback-close', $autoPlayback);\n\n art.on('video:timeupdate', () => {\n if (art.playing) {\n const times = storage.get('times') || {};\n const keys = Object.keys(times);\n if (keys.length > constructor.AUTO_PLAYBACK_MAX) {\n delete times[keys[0]];\n }\n times[art.option.id || art.option.url] = art.currentTime;\n storage.set('times', times);\n }\n });\n\n art.on('ready', () => {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.id || art.option.url];\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\n append($close, icons.close);\n setStyle($autoPlayback, 'display', 'flex');\n\n $last.innerText = `${i18n.get('Last Seen')} ${secondToTime(currentTime)}`;\n $jump.innerText = i18n.get('Jump Play');\n\n proxy($close, 'click', () => {\n setStyle($autoPlayback, 'display', 'none');\n });\n\n proxy($jump, 'click', () => {\n art.seek = currentTime;\n art.play();\n setStyle($poster, 'display', 'none');\n setStyle($autoPlayback, 'display', 'none');\n });\n\n art.once('video:timeupdate', () => {\n setTimeout(() => {\n setStyle($autoPlayback, 'display', 'none');\n }, constructor.AUTO_PLAYBACK_TIMEOUT);\n });\n }\n });\n\n return {\n name: 'auto-playback',\n get times() {\n return storage.get('times') || {};\n },\n clear() {\n return storage.del('times');\n },\n delete(id) {\n const times = storage.get('times') || {};\n delete times[id];\n storage.set('times', times);\n return times;\n },\n };\n}\n","import { hasClass, addClass, removeClass } from '../utils';\n\nexport default function fastForward(art) {\n const {\n constructor,\n proxy,\n template: { $player, $video },\n } = art;\n\n let timer = null;\n let isPress = false;\n let lastPlaybackRate = 1;\n\n const onStart = (event) => {\n if (event.touches.length === 1 && art.playing && !art.isLock) {\n timer = setTimeout(() => {\n isPress = true;\n lastPlaybackRate = art.playbackRate;\n art.playbackRate = constructor.FAST_FORWARD_VALUE;\n addClass($player, 'art-fast-forward');\n }, constructor.FAST_FORWARD_TIME);\n }\n };\n\n const onStop = () => {\n clearTimeout(timer);\n if (isPress) {\n isPress = false;\n art.playbackRate = lastPlaybackRate;\n removeClass($player, 'art-fast-forward');\n }\n };\n\n proxy($video, 'touchstart', onStart);\n proxy(document, 'touchmove', onStop);\n proxy(document, 'touchend', onStop);\n\n return {\n name: 'fastForward',\n get state() {\n return hasClass($player, 'art-fast-forward');\n },\n };\n}\n","import { append, setStyle, hasClass, addClass, removeClass } from '../utils';\n\nexport default function lock(art) {\n const {\n layers,\n icons,\n template: { $player },\n } = art;\n\n layers.add({\n name: 'lock',\n mounted($el) {\n const $lock = append($el, icons.lock);\n const $unlock = append($el, icons.unlock);\n setStyle($lock, 'display', 'none');\n\n art.on('lock', (state) => {\n if (state) {\n setStyle($lock, 'display', 'inline-flex');\n setStyle($unlock, 'display', 'none');\n } else {\n setStyle($lock, 'display', 'none');\n setStyle($unlock, 'display', 'inline-flex');\n }\n });\n },\n click() {\n if (hasClass($player, 'art-lock')) {\n removeClass($player, 'art-lock');\n this.isLock = false;\n art.emit('lock', false);\n } else {\n addClass($player, 'art-lock');\n this.isLock = true;\n art.emit('lock', true);\n }\n },\n });\n\n return {\n name: 'lock',\n get state() {\n return hasClass($player, 'art-lock');\n },\n };\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n proxy,\n template: { $video },\n } = art;\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event);\n });\n }\n\n for (const key in option.moreVideoAttr) {\n $video[key] = option.moreVideoAttr[key];\n }\n\n $video.controls = true;\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n } else {\n $video.src = option.url;\n }\n }\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file +{"mappings":"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","sources":["packages/artplayer/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-36399c71fd65785e.js","node_modules/option-validator/dist/option-validator.js","packages/artplayer/src/utils/emitter.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","packages/artplayer/src/utils/index.js","packages/artplayer/src/utils/dom.js","packages/artplayer/src/utils/compatibility.js","packages/artplayer/src/utils/error.js","packages/artplayer/src/utils/subtitle.js","packages/artplayer/src/utils/file.js","packages/artplayer/src/utils/property.js","packages/artplayer/src/utils/time.js","packages/artplayer/src/utils/format.js","packages/artplayer/src/scheme/index.js","packages/artplayer/src/config/index.js","packages/artplayer/src/whitelist.js","packages/artplayer/src/template.js","packages/artplayer/src/i18n/index.js","packages/artplayer/src/i18n/zh-cn.json","packages/artplayer/src/i18n/zh-tw.json","packages/artplayer/src/i18n/pl.json","packages/artplayer/src/i18n/cs.json","packages/artplayer/src/i18n/es.json","packages/artplayer/src/i18n/fa.json","packages/artplayer/src/i18n/fr.json","packages/artplayer/src/i18n/id.json","packages/artplayer/src/i18n/ru.json","packages/artplayer/src/player/index.js","packages/artplayer/src/player/urlMix.js","packages/artplayer/src/player/attrMix.js","packages/artplayer/src/player/playMix.js","packages/artplayer/src/player/pauseMix.js","packages/artplayer/src/player/toggleMix.js","packages/artplayer/src/player/seekMix.js","packages/artplayer/src/player/volumeMix.js","packages/artplayer/src/player/currentTimeMix.js","packages/artplayer/src/player/durationMix.js","packages/artplayer/src/player/switchMix.js","packages/artplayer/src/player/playbackRateMix.js","packages/artplayer/src/player/aspectRatioMix.js","packages/artplayer/src/player/screenshotMix.js","packages/artplayer/src/player/fullscreenMix.js","packages/artplayer/src/libs/screenfull.js","packages/artplayer/src/player/fullscreenWebMix.js","packages/artplayer/src/player/pipMix.js","packages/artplayer/src/player/loadedMix.js","packages/artplayer/src/player/playedMix.js","packages/artplayer/src/player/playingMix.js","packages/artplayer/src/player/autoSizeMix.js","packages/artplayer/src/player/rectMix.js","packages/artplayer/src/player/flipMix.js","packages/artplayer/src/player/miniMix.js","packages/artplayer/src/player/loopMix.js","packages/artplayer/src/player/posterMix.js","packages/artplayer/src/player/autoHeightMix.js","packages/artplayer/src/player/cssVarMix.js","packages/artplayer/src/player/themeMix.js","packages/artplayer/src/player/titleMix.js","packages/artplayer/src/player/typeMix.js","packages/artplayer/src/player/stateMix.js","packages/artplayer/src/player/subtitleOffsetMix.js","packages/artplayer/src/player/airplayMix.js","packages/artplayer/src/player/optionInit.js","packages/artplayer/src/player/eventInit.js","packages/artplayer/src/control/index.js","packages/artplayer/src/utils/component.js","packages/artplayer/src/control/fullscreen.js","packages/artplayer/src/control/fullscreenWeb.js","packages/artplayer/src/control/pip.js","packages/artplayer/src/control/playAndPause.js","packages/artplayer/src/control/progress.js","packages/artplayer/src/control/time.js","packages/artplayer/src/control/volume.js","packages/artplayer/src/control/setting.js","packages/artplayer/src/control/thumbnails.js","packages/artplayer/src/control/screenshot.js","packages/artplayer/src/control/quality.js","packages/artplayer/src/control/loop.js","packages/artplayer/src/control/airplay.js","packages/artplayer/src/contextmenu/index.js","packages/artplayer/src/contextmenu/playbackRate.js","packages/artplayer/src/contextmenu/aspectRatio.js","packages/artplayer/src/contextmenu/flip.js","packages/artplayer/src/contextmenu/info.js","packages/artplayer/src/contextmenu/version.js","packages/artplayer/src/contextmenu/close.js","packages/artplayer/src/info.js","packages/artplayer/src/subtitle.js","packages/artplayer/src/events/index.js","packages/artplayer/src/events/clickInit.js","packages/artplayer/src/events/hoverInit.js","packages/artplayer/src/events/moveInit.js","packages/artplayer/src/events/resizeInit.js","packages/artplayer/src/events/gestureInit.js","packages/artplayer/src/events/viewInit.js","packages/artplayer/src/events/documentInit.js","packages/artplayer/src/hotkey.js","packages/artplayer/src/layer.js","packages/artplayer/src/loading.js","packages/artplayer/src/notice.js","packages/artplayer/src/mask.js","packages/artplayer/src/icons/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-cc1465de590716c3.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7354687a49315faa.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-16dba6b497e57200.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-f488ca9613523a89.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-944df7462f092344.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-905e2a3a5bf8821e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7ca6634310de48a5.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ead51c22e001d3e4.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-5f406cb67e8ce068.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-4c8d4bdd32e5eb21.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-4e595cc5186a564d.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c0889fbdfa73dc08.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-48946af7015cb1ff.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-424af5bfda438aed.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7214ee73e4711a3f.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d30b61330c0a5e8f.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-aea71df79a337dd1.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-446c9535ee37c4cf.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3e81c0d117284ebb.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6be8b022bb1f1d0e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-5ac93b92a83bb1c2.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-bcccb383a7b6e33b.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-472cc0769143224b.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-714e675b41750899.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-bfedbb03557d8834.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-900fbd1165be66ff.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-925c7dcd24de3b97.js","packages/artplayer/src/setting/index.js","packages/artplayer/src/setting/flip.js","packages/artplayer/src/setting/aspectRatio.js","packages/artplayer/src/setting/playbackRate.js","packages/artplayer/src/setting/subtitleOffset.js","packages/artplayer/src/storage.js","packages/artplayer/src/plugins/index.js","packages/artplayer/src/plugins/miniProgressBar.js","packages/artplayer/src/plugins/autoOrientation.js","packages/artplayer/src/plugins/autoPlayback.js","packages/artplayer/src/plugins/fastForward.js","packages/artplayer/src/plugins/lock.js","packages/artplayer/src/mobile.js"],"sourcesContent":["import style from 'bundle-text:./style/index.less';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option, readyCallback) {\n super();\n\n this.id = ++id;\n\n const mergeOption = utils.mergeDeep(Artplayer.option, option);\n mergeOption.container = option.container;\n\n this.option = validator(mergeOption, scheme);\n\n this.isLock = false;\n this.isReady = false;\n this.isFocus = false;\n this.isInput = false;\n this.isRotate = false;\n this.isDestroy = false;\n\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n if (typeof readyCallback === 'function') {\n this.on('ready', () => readyCallback.call(this, this));\n }\n\n if (Artplayer.DEBUG) {\n const log = (msg) => console.log(`[ART.${this.id}] -> ${msg}`);\n log('Version@' + Artplayer.version);\n log('Env@' + Artplayer.env);\n log('Build@' + Artplayer.build);\n for (let index = 0; index < config.events.length; index++) {\n this.on('video:' + config.events[index], (event) => log('Event@' + event.type));\n }\n }\n\n instances.push(this);\n }\n\n static get instances() {\n return instances;\n }\n\n static get version() {\n return process.env.APP_VER;\n }\n\n static get env() {\n return process.env.NODE_ENV;\n }\n\n static get build() {\n return process.env.BUILD_DATE;\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n id: '',\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n type: '',\n theme: '#f00',\n volume: 0.7,\n isLive: false,\n muted: false,\n autoplay: false,\n autoSize: false,\n autoMini: false,\n loop: false,\n flip: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n useSSR: false,\n playsInline: true,\n lock: false,\n fastForward: false,\n autoPlayback: false,\n autoOrientation: false,\n airplay: false,\n layers: [],\n contextmenu: [],\n controls: [],\n settings: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n thumbnails: {\n url: '',\n number: 60,\n column: 10,\n width: 0,\n height: 0,\n },\n subtitle: {\n url: '',\n type: '',\n style: {},\n escape: true,\n encoding: 'utf-8',\n onVttLoad: (vtt) => vtt,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n i18n: {},\n icons: {},\n cssVar: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n get proxy() {\n return this.events.proxy;\n }\n\n get query() {\n return this.template.query;\n }\n\n get video() {\n return this.template.$video;\n }\n\n destroy(removeHtml = true) {\n this.events.destroy();\n this.template.destroy(removeHtml);\n instances.splice(instances.indexOf(this), 1);\n this.isDestroy = true;\n this.emit('destroy');\n }\n}\n\nArtplayer.DEBUG = false;\nArtplayer.CONTEXTMENU = true;\nArtplayer.NOTICE_TIME = 2000;\nArtplayer.SETTING_WIDTH = 250;\nArtplayer.SETTING_ITEM_WIDTH = 200;\nArtplayer.SETTING_ITEM_HEIGHT = 35;\nArtplayer.RESIZE_TIME = 500;\nArtplayer.SCROLL_TIME = 200;\nArtplayer.SCROLL_GAP = 50;\nArtplayer.AUTO_PLAYBACK_MAX = 10;\nArtplayer.AUTO_PLAYBACK_MIN = 5;\nArtplayer.AUTO_PLAYBACK_TIMEOUT = 3000;\nArtplayer.RECONNECT_TIME_MAX = 5;\nArtplayer.RECONNECT_SLEEP_TIME = 1000;\nArtplayer.CONTROL_HIDE_TIME = 3000;\nArtplayer.DBCLICK_TIME = 300;\nArtplayer.DBCLICK_FULLSCREEN = true;\nArtplayer.MOBILE_DBCLICK_PLAY = true;\nArtplayer.MOBILE_CLICK_PLAY = false;\nArtplayer.MOBILE_AUTO_PLAYBACKRATE = 3;\nArtplayer.MOBILE_AUTO_PLAYBACKRATE_TIME = 1000;\nArtplayer.MOBILE_AUTO_ORIENTATION_TIME = 200;\nArtplayer.INFO_LOOP_TIME = 1000;\nArtplayer.FAST_FORWARD_VALUE = 3;\nArtplayer.FAST_FORWARD_TIME = 1000;\nArtplayer.TOUCH_MOVE_RATIO = 0.5;\nArtplayer.VOLUME_STEP = 0.1;\nArtplayer.SEEK_STEP = 5;\nArtplayer.PLAYBACK_RATE = [0.5, 0.75, 1, 1.25, 1.5, 2];\nArtplayer.ASPECT_RATIO = ['default', '4:3', '16:9'];\nArtplayer.FLIP = ['normal', 'horizontal', 'vertical'];\nArtplayer.FULLSCREEN_WEB_IN_BODY = false;\n\nif (typeof document !== 'undefined') {\n if (!document.getElementById('artplayer-style')) {\n const $style = utils.createElement('style');\n $style.id = 'artplayer-style';\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n\nif (typeof window !== 'undefined') {\n window['Artplayer'] = Artplayer;\n}\n\nconsole.log(\n `%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`,\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n","module.exports = \"028e47e77afa80d5\";","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'top') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n addClass(target, 'hint--rounded');\n addClass(target, `hint--${pos}`);\n}\n\nexport function isInViewport(el, offset = 0) {\n const rect = el.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n const vertInView = rect.top - offset <= windowHeight && rect.top + rect.height + offset >= 0;\n const horInView = rect.left - offset <= windowWidth + offset && rect.left + rect.width + offset >= 0;\n return vertInView && horInView;\n}\n\nexport function includeFromEvent(event, target) {\n return event.composedPath && event.composedPath().indexOf(target) > -1;\n}\n\nexport function replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n}\n\nexport function createElement(tag) {\n return document.createElement(tag);\n}\n\nexport function getIcon(key = '', html = '') {\n const icon = createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, html);\n return icon;\n}\n","export const userAgent = typeof window !== 'undefined' ? window.navigator.userAgent : '';\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent);\nexport const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nexport const isWechat = /MicroMessenger/i.test(userAgent);\nexport const isIE = /MSIE|Trident/i.test(userAgent);\nexport const isAndroid = /android/i.test(userAgent);\nexport const isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream;\n","export class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n return condition;\n}\n","function fixSrt(srt) {\n return srt.replace(/(\\d\\d:\\d\\d:\\d\\d)[,.](\\d+)/g, (_, $1, $2) => {\n let ms = $2.slice(0, 3);\n if ($2.length === 1) {\n ms = $2 + '00';\n }\n if ($2.length === 2) {\n ms = $2 + '0';\n }\n return `${$1},${ms}`;\n });\n}\n\nexport function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n fixSrt(srtText)\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .replace(/{[\\s\\S]*?}/g, '')\n .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map((line) => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map((item) => item.trim())\n .join('\\n'),\n };\n })\n .filter((line) => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter((line) => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = (item) => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function isStringOrNumber(val) {\n return ['string', 'number'].includes(typeof val);\n}\n\nexport function secondToTime(second) {\n const add0 = (num) => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n (tag) =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","import { errorHandle } from '../utils';\n\nconst a = 'array';\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(\n type === s || type === n || value instanceof Element,\n `${paths.join('.')} require '${s}' or 'Element' type`,\n );\n}\n\nexport const ComponentOption = {\n html: validElement,\n disable: `?${b}`,\n name: `?${s}`,\n index: `?${n}`,\n style: `?${o}`,\n click: `?${f}`,\n mounted: `?${f}`,\n tooltip: `?${s}|${n}`,\n width: `?${n}`,\n selector: `?${a}`,\n onSelect: `?${f}`,\n switch: `?${b}`,\n onSwitch: `?${f}`,\n range: `?${a}`,\n onRange: `?${f}`,\n onChange: `?${f}`,\n};\n\nexport default {\n id: s,\n container: validElement,\n url: s,\n poster: s,\n title: s,\n type: s,\n theme: s,\n lang: s,\n volume: n,\n isLive: b,\n muted: b,\n autoplay: b,\n autoSize: b,\n autoMini: b,\n loop: b,\n flip: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n useSSR: b,\n playsInline: b,\n lock: b,\n fastForward: b,\n autoPlayback: b,\n autoOrientation: b,\n airplay: b,\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [ComponentOption],\n contextmenu: [ComponentOption],\n settings: [ComponentOption],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths) => {\n const position = ['top', 'left', 'right'];\n return errorHandle(\n position.includes(value),\n `${paths.join('.')} only accept ${position.toString()} as parameters`,\n );\n },\n },\n ],\n quality: [\n {\n default: `?${b}`,\n html: s,\n url: s,\n },\n ],\n highlight: [\n {\n time: n,\n text: s,\n },\n ],\n thumbnails: {\n url: s,\n number: n,\n column: n,\n width: n,\n height: n,\n },\n subtitle: {\n url: s,\n type: s,\n style: o,\n escape: b,\n encoding: s,\n onVttLoad: f,\n },\n moreVideoAttr: o,\n i18n: o,\n icons: o,\n cssVar: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: ['addTextTrack', 'canPlayType', 'load', 'play', 'pause'],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster',\n 'webkitDecodedFrameCount',\n 'webkitDroppedFrameCount',\n 'playsInline',\n 'webkitSupportsFullscreen',\n 'webkitDisplayingFullscreen',\n 'onenterpictureinpicture',\n 'onleavepictureinpicture',\n 'disablePictureInPicture',\n 'cancelVideoFrameCallback',\n 'requestVideoFrameCallback',\n 'getVideoPlaybackQuality',\n 'requestPictureInPicture',\n 'webkitEnterFullScreen',\n 'webkitEnterFullscreen',\n 'webkitExitFullScreen',\n 'webkitExitFullscreen',\n ],\n};\n","import { userAgent, isMobile } from './utils';\n\nexport default class Whitelist {\n constructor(art) {\n this.art = art;\n }\n\n get state() {\n const {\n option,\n constructor: { kindOf },\n } = this.art;\n\n return (\n !isMobile ||\n !option.whitelist.length ||\n option.whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || userAgent.indexOf(item) > -1;\n case 'function':\n return item(userAgent);\n case 'regexp':\n return item.test(userAgent);\n default:\n return false;\n }\n })\n );\n }\n}\n","import { errorHandle, query, addClass, replaceElement, isMobile } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n const { option, constructor, whitelist } = art;\n\n if (option.container instanceof Element) {\n this.$container = option.container;\n } else {\n this.$container = query(option.container);\n errorHandle(this.$container, `No container element found by ${option.container}`);\n }\n\n const type = this.$container.tagName.toLowerCase();\n errorHandle(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`);\n\n errorHandle(\n constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n this.query = this.query.bind(this);\n this.$container.dataset.artId = art.id;\n this.$original = this.$container.cloneNode(true);\n\n if (whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
${process.env.APP_VER}
\n
\n
\n
Video url:
\n
\n
\n
\n
Video volume:
\n
\n
\n
\n
Video time:
\n
\n
\n
\n
Video duration:
\n
\n
\n
\n
Video resolution:
\n
\n x \n
\n
\n
\n
[x]
\n
\n
\n
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { option } = this.art;\n\n if (!option.useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$track = this.query('track');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$controlsCenter = this.query('.art-controls-center');\n this.$controlsRight = this.query('.art-controls-right');\n this.$layer = this.query('.art-layers');\n this.$loading = this.query('.art-loading');\n this.$notice = this.query('.art-notice');\n this.$noticeInner = this.query('.art-notice-inner');\n this.$mask = this.query('.art-mask');\n this.$state = this.query('.art-state');\n this.$setting = this.query('.art-settings');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n if (option.backdrop) {\n addClass(this.$player, 'art-backdrop');\n }\n\n if (isMobile) {\n addClass(this.$player, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(removeHtml) {\n if (removeHtml) {\n replaceElement(this.$original, this.$container);\n } else {\n addClass(this.$player, 'art-destroy');\n }\n }\n}\n","import { mergeDeep } from '../utils';\nimport zhCn from './zh-cn.json';\nimport zhTw from './zh-tw.json';\nimport pl from './pl.json';\nimport cs from './cs.json';\nimport es from './es.json';\nimport fa from './fa.json';\nimport fr from './fr.json';\nimport id from './id.json';\nimport ru from './ru.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n pl: pl,\n cs: cs,\n es: es,\n fa: fa,\n fr: fr,\n id: id,\n ru: ru,\n };\n\n this.update(art.option.i18n);\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","{\n \"Video Info\": \"统计信息\",\n \"Close\": \"关闭\",\n \"Video Load Failed\": \"加载失败\",\n \"Volume\": \"音量\",\n \"Play\": \"播放\",\n \"Pause\": \"暂停\",\n \"Rate\": \"速度\",\n \"Mute\": \"静音\",\n \"Video Flip\": \"画面翻转\",\n \"Horizontal\": \"水平\",\n \"Vertical\": \"垂直\",\n \"Reconnect\": \"重新连接\",\n \"Show Setting\": \"显示设置\",\n \"Hide Setting\": \"隐藏设置\",\n \"Screenshot\": \"截图\",\n \"Play Speed\": \"播放速度\",\n \"Aspect Ratio\": \"画面比例\",\n \"Default\": \"默认\",\n \"Normal\": \"正常\",\n \"Open\": \"打开\",\n \"Switch Video\": \"切换\",\n \"Switch Subtitle\": \"切换字幕\",\n \"Fullscreen\": \"全屏\",\n \"Exit Fullscreen\": \"退出全屏\",\n \"Web Fullscreen\": \"网页全屏\",\n \"Exit Web Fullscreen\": \"退出网页全屏\",\n \"Mini Player\": \"迷你播放器\",\n \"PIP Mode\": \"开启画中画\",\n \"Exit PIP Mode\": \"退出画中画\",\n \"PIP Not Supported\": \"不支持画中画\",\n \"Fullscreen Not Supported\": \"不支持全屏\",\n \"Subtitle Offset\": \"字幕偏移\",\n \"Last Seen\": \"上次看到\",\n \"Jump Play\": \"跳转播放\",\n \"AirPlay\": \"隔空播放\",\n \"AirPlay Not Available\": \"隔空播放不可用\"\n}\n","{\n \"Video Info\": \"統計訊息\",\n \"Close\": \"關閉\",\n \"Video Load Failed\": \"載入失敗\",\n \"Volume\": \"音量\",\n \"Play\": \"播放\",\n \"Pause\": \"暫停\",\n \"Rate\": \"速度\",\n \"Mute\": \"靜音\",\n \"Video Flip\": \"畫面翻轉\",\n \"Horizontal\": \"水平\",\n \"Vertical\": \"垂直\",\n \"Reconnect\": \"重新連接\",\n \"Show Setting\": \"顯示设置\",\n \"Hide Setting\": \"隱藏设置\",\n \"Screenshot\": \"截圖\",\n \"Play Speed\": \"播放速度\",\n \"Aspect Ratio\": \"畫面比例\",\n \"Default\": \"默認\",\n \"Normal\": \"正常\",\n \"Open\": \"打開\",\n \"Switch Video\": \"切換\",\n \"Switch Subtitle\": \"切換字幕\",\n \"Fullscreen\": \"全屏\",\n \"Exit Fullscreen\": \"退出全屏\",\n \"Web Fullscreen\": \"網頁全屏\",\n \"Exit Web Fullscreen\": \"退出網頁全屏\",\n \"Mini Player\": \"迷你播放器\",\n \"PIP Mode\": \"開啟畫中畫\",\n \"Exit PIP Mode\": \"退出畫中畫\",\n \"PIP Not Supported\": \"不支持畫中畫\",\n \"Fullscreen Not Supported\": \"不支持全屏\",\n \"Subtitle Offset\": \"字幕偏移\",\n \"Last Seen\": \"上次看到\",\n \"Jump Play\": \"跳轉播放\",\n \"AirPlay\": \"隔空播放\",\n \"AirPlay Not Available\": \"隔空播放不可用\"\n}\n","{\n \"Video Info\": \"Informacje o wideo\",\n \"Close\": \"Zamknij\",\n \"Video Load Failed\": \"Błąd ładowania wideo\",\n \"Volume\": \"Głośność\",\n \"Play\": \"Odtwórz\",\n \"Pause\": \"Wstrzymaj\",\n \"Rate\": \"Oceń\",\n \"Mute\": \"Wycisz\",\n \"Video Flip\": \"Rotacja wideo\",\n \"Horizontal\": \"Pozioma\",\n \"Vertical\": \"Pionowa\",\n \"Reconnect\": \"Połącz ponownie\",\n \"Show Setting\": \"Pokaż ustawienia\",\n \"Hide Setting\": \"Ukryj ustawienia\",\n \"Screenshot\": \"Zrzut ekranu\",\n \"Play Speed\": \"Prędkość odtwarzania\",\n \"Aspect Ratio\": \"Współczynnik proporcji\",\n \"Default\": \"Domyślny\",\n \"Normal\": \"Normalny\",\n \"Open\": \"Otwórz\",\n \"Switch Video\": \"Przełącz wideo\",\n \"Switch Subtitle\": \"Przełącz napisy\",\n \"Fullscreen\": \"Pełny ekran\",\n \"Exit Fullscreen\": \"Zamknij pełny ekran\",\n \"Web Fullscreen\": \"Tryb pełnej strony\",\n \"Exit Web Fullscreen\": \"Zamknij tryb pełnej strony\",\n \"Mini Player\": \"Miniodtwarzacz\",\n \"PIP Mode\": \"Tryb PiP\",\n \"Exit PIP Mode\": \"Zamknij tryb PiP\",\n \"PIP Not Supported\": \"Tryb PiP nieobsługiwany\",\n \"Fullscreen Not Supported\": \"Pełny ekran nieobsługiwany\",\n \"Subtitle Offset\": \"Przesunięcie napisów\",\n \"Last Seen\": \"Ostatnio widziany\",\n \"Jump Play\": \"Skocz do gry\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay nie jest dostępny\"\n}\n","{\n \"Video Info\": \"Info o videu\",\n \"Close\": \"Zavřít\",\n \"Video Load Failed\": \"Nahrání videa selhalo\",\n \"Volume\": \"Hlasitost\",\n \"Play\": \"Přehrát\",\n \"Pause\": \"Pozastavit\",\n \"Rate\": \"Hodnocení\",\n \"Mute\": \"Ztlumit\",\n \"Video Flip\": \"Otočit video\",\n \"Horizontal\": \"Horizontálně\",\n \"Vertical\": \"Vertikálně\",\n \"Reconnect\": \"Opětovné připojení\",\n \"Show Setting\": \"Zobrazit nastavení\",\n \"Hide Setting\": \"Skrýt nastavení\",\n \"Screenshot\": \"Snímek obrazovky\",\n \"Play Speed\": \"Rychlost přehrávání\",\n \"Aspect Ratio\": \"Poměr stran\",\n \"Default\": \"Výchozí\",\n \"Normal\": \"Normální\",\n \"Open\": \"Otevřít\",\n \"Switch Video\": \"Přepnout video\",\n \"Switch Subtitle\": \"Přepnout titulky\",\n \"Fullscreen\": \"Celá obrazovka\",\n \"Exit Fullscreen\": \"Opustit režim celé obrazovky\",\n \"Web Fullscreen\": \"Celá stránka\",\n \"Exit Web Fullscreen\": \"Zavřít režim celé stránky\",\n \"Mini Player\": \"Mini přehrávač\",\n \"PIP Mode\": \"Režim PIP\",\n \"Exit PIP Mode\": \"Opustit režim PIP\",\n \"PIP Not Supported\": \"Režim PIP není podporován\",\n \"Fullscreen Not Supported\": \"Režim celé obrazovky není podporován\",\n \"Subtitle Offset\": \"Posun titulků\",\n \"Last Seen\": \"Naposledy viděn\",\n \"Jump Play\": \"Hra na skok\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay není k dispozici\"\n}\n","{\n \"Video Info\": \"Información del video\",\n \"Close\": \"Cerrar\",\n \"Video Load Failed\": \"Falló carga de video\",\n \"Volume\": \"Volumen\",\n \"Play\": \"Reproduciendo\",\n \"Pause\": \"Pausa\",\n \"Rate\": \"Velocidad\",\n \"Mute\": \"Silencio\",\n \"Video Flip\": \"Rotar video\",\n \"Horizontal\": \"Horizontal\",\n \"Vertical\": \"Vertical\",\n \"Reconnect\": \"Reconectando\",\n \"Show Setting\": \"Mostrar ajustes\",\n \"Hide Setting\": \"Ocultar ajustes\",\n \"Screenshot\": \"Captura de Pantalla\",\n \"Play Speed\": \"Velocidad de reproducción\",\n \"Aspect Ratio\": \"Relación de aspecto\",\n \"Default\": \"Por defecto\",\n \"Normal\": \"Normal\",\n \"Open\": \"Abrir\",\n \"Switch Video\": \"Cambiar video\",\n \"Switch Subtitle\": \"Cambiar subtítulo\",\n \"Fullscreen\": \"Pantalla completa\",\n \"Exit Fullscreen\": \"Salir de Pantalla completa\",\n \"Web Fullscreen\": \"Pantalla completa Web\",\n \"Exit Web Fullscreen\": \"Salir de Pantalla completa\",\n \"Mini Player\": \"Mini reproductor\",\n \"PIP Mode\": \"Modo PiP\",\n \"Exit PIP Mode\": \"Cerrar modo PiP\",\n \"PIP Not Supported\": \"Modo PiP no compatible\",\n \"Fullscreen Not Supported\": \"Pantalla completa no soportada\",\n \"Subtitle Offset\": \"Ajuste subtítulo\",\n \"Last Seen\": \"Visto última vez\",\n \"Jump Play\": \"Saltar\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay no disponible\"\n}\n","{\n \"Video Info\": \"اطلاعات ویدیو\",\n \"Close\": \"بستن\",\n \"Video Load Failed\": \"بارگذاری ناموفق\",\n \"Play\": \"پخش\",\n \"Volume\": \"میزان صدا\",\n \"Pause\": \"توقف\",\n \"Rate\": \"نرخ\",\n \"Mute\": \"سکوت\",\n \"Video Flip\": \"چرخش تصویر\",\n \"Horizontal\": \"افقی\",\n \"Vertical\": \"عمودی\",\n \"Reconnect\": \"اتصال مجدد\",\n \"Show Setting\": \"تنظیمات\",\n \"Hide Setting\": \"بستن تنظیمات\",\n \"Screenshot\": \"عکس از صفحه\",\n \"Play Speed\": \"سرعت پخش\",\n \"Aspect Ratio\": \"نسبت تصویر\",\n \"Default\": \"حالت پیشفرض\",\n \"Normal\": \" حالت عادی\",\n \"Open\": \"بازکردن\",\n \"Switch Video\": \"تغییر ویدیو\",\n \"Switch Subtitle\": \"نغییر زیرنویس\",\n \"Fullscreen\": \"تمام صفحه\",\n \"Exit Fullscreen\": \"کوچک کردن\",\n \"Web Fullscreen\": \"حالت تئاتر\",\n \"Exit Web Fullscreen\": \"خروج از حالت تئاتر\",\n \"Mini Player\": \"حالت پخش کوچک\",\n \"PIP Mode\": \" مینی پلیر\",\n \"Exit PIP Mode\": \"خروج از مینی پلیر\",\n \"PIP Not Supported\": \"عدم پشتیبانی از مینی پلیر\",\n \"Fullscreen Not Supported\": \"عدم پشتیبانی از حالت تمام صفحه\",\n \"Subtitle Offset\": \"افست زیرنویس\",\n \"Last Seen\": \"آخرین بازدید\",\n \"Jump Play\": \"جامپ پلی\",\n \"AirPlay\": \"ایر پلی\",\n \"AirPlay Not Available\": \"عدم پشتیبانی از ایرپلی\"\n}\n","{\n \"Video Info\": \"Informations de la vidéo\",\n \"Close\": \"Fermer\",\n \"Video Load Failed\": \"Téléchargement de la vidéo échoué\",\n \"Volume\": \"Volume\",\n \"Play\": \"Lire\",\n \"Pause\": \"Pause\",\n \"Rate\": \"Vitesse\",\n \"Mute\": \"Muet\",\n \"Video Flip\": \"Rotation de la vidéo\",\n \"Horizontal\": \"Horizontal\",\n \"Vertical\": \"Vertical\",\n \"Reconnect\": \"Reconnexion\",\n \"Show Setting\": \"Afficher les paramètres\",\n \"Hide Setting\": \"Cacher les paramètres\",\n \"Screenshot\": \"Capture d'écran\",\n \"Play Speed\": \"Vitesse de lecture\",\n \"Aspect Ratio\": \"Rapport d'aspect\",\n \"Default\": \"Défaut\",\n \"Normal\": \"Normal\",\n \"Open\": \"Ouvrir\",\n \"Switch Video\": \"Basculer la vidéo\",\n \"Switch Subtitle\": \"Basculer le sous-titre\",\n \"Fullscreen\": \"Plein écran\",\n \"Exit Fullscreen\": \"Quitter le plein écran\",\n \"Web Fullscreen\": \"Plein écran Web\",\n \"Exit Web Fullscreen\": \"Quitter le plein écran Web\",\n \"Mini Player\": \"Mini lecteur\",\n \"PIP Mode\": \"Mode PiP\",\n \"Exit PIP Mode\": \"Fermer le mode PiP\",\n \"PIP Not Supported\": \"Mode PiP non supporté\",\n \"Fullscreen Not Supported\": \"Plein écran non supporté\",\n \"Subtitle Offset\": \"Réglage des sous-titres\",\n \"Last Seen\": \"Dernière position\",\n \"Jump Play\": \"Continuer\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay non disponible\"\n}\n","{\n \"Video Info\": \"Informasi Video\",\n \"Close\": \"Tutup\",\n \"Video Load Failed\": \"Gagal Memuat Video\",\n \"Volume\": \"Volume\",\n \"Play\": \"Putar\",\n \"Pause\": \"Jeda\",\n \"Rate\": \"Kecepatan\",\n \"Mute\": \"Senyap\",\n \"Video Flip\": \"Memutar Video\",\n \"Horizontal\": \"Horizontal\",\n \"Vertical\": \"Vertikal\",\n \"Reconnect\": \"Menyambung Kembali\",\n \"Show Setting\": \"Tampilkan Pengaturan\",\n \"Hide Setting\": \"Sembunyikan Pengaturan\",\n \"Screenshot\": \"Tangkapan Layar\",\n \"Play Speed\": \"Kecepatan Putar\",\n \"Aspect Ratio\": \"Rasio Aspek\",\n \"Default\": \"Default\",\n \"Normal\": \"Normal\",\n \"Open\": \"Buka\",\n \"Switch Video\": \"Ganti Video\",\n \"Switch Subtitle\": \"Ganti Subtitle\",\n \"Fullscreen\": \"Layar Penuh\",\n \"Exit Fullscreen\": \"Keluar dari Layar Penuh\",\n \"Web Fullscreen\": \"Layar Penuh Web\",\n \"Exit Web Fullscreen\": \"Keluar dari Layar Penuh Web\",\n \"Mini Player\": \"Pemutar Mini\",\n \"PIP Mode\": \"Mode PIP\",\n \"Exit PIP Mode\": \"Keluar dari Mode PIP\",\n \"PIP Not Supported\": \"PIP Tidak Didukung\",\n \"Fullscreen Not Supported\": \"Layar Penuh Tidak Didukung\",\n \"Subtitle Offset\": \"Pergeseran Subtitle\",\n \"Last Seen\": \"Terakhir Dilihat\",\n \"Jump Play\": \"Lompat Putar\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay Tidak Tersedia\"\n}\n","{\n \"Video Info\": \"Информация\",\n \"Close\": \"Закрыть\",\n \"Video Load Failed\": \"Ошибка загрузки видео\",\n \"Volume\": \"Громкость\",\n \"Play\": \"Играть\",\n \"Pause\": \"Пауза\",\n \"Rate\": \"Скорость\",\n \"Mute\": \"Заглушить\",\n \"Video Flip\": \"Развернуть видео\",\n \"Horizontal\": \"Горизонтально\",\n \"Vertical\": \"Вертикально\",\n \"Reconnect\": \"Переподключенине\",\n \"Show Setting\": \"Показать настройки\",\n \"Hide Setting\": \"Скрыть настройки\",\n \"Screenshot\": \"Скриншот\",\n \"Play Speed\": \"Скорость воспроизведения\",\n \"Aspect Ratio\": \"Соотношение сторон\",\n \"Default\": \"По-умолчанию\",\n \"Normal\": \"Нормальный\",\n \"Open\": \"Открыть\",\n \"Switch Video\": \"Переключить видео\",\n \"Switch Subtitle\": \"Переключить субтитры\",\n \"Fullscreen\": \"Полноэкранный режим\",\n \"Exit Fullscreen\": \"Выход из полноэкранного режима\",\n \"Web Fullscreen\": \"На все окно браузера\",\n \"Exit Web Fullscreen\": \"Выход из режима полного окна\",\n \"Mini Player\": \"Мини проигрыватель\",\n \"PIP Mode\": \"Картинка в картинке\",\n \"Exit PIP Mode\": \"Закрыть картинку в картинке\",\n \"PIP Not Supported\": \"Картинка в картинке не поддерживается\",\n \"Fullscreen Not Supported\": \"Полноэкранный режим не поддерживается\",\n \"Subtitle Offset\": \"Настройка субтитров\",\n \"Last Seen\": \"Последнее просмотренное\",\n \"Jump Play\": \"Перейти\",\n \"AirPlay\": \"AirPlay\",\n \"AirPlay Not Available\": \"AirPlay недоступен\"\n}\n","import urlMix from './urlMix';\nimport attrMix from './attrMix';\nimport playMix from './playMix';\nimport pauseMix from './pauseMix';\nimport toggleMix from './toggleMix';\nimport seekMix from './seekMix';\nimport volumeMix from './volumeMix';\nimport currentTimeMix from './currentTimeMix';\nimport durationMix from './durationMix';\nimport switchMix from './switchMix';\nimport playbackRateMix from './playbackRateMix';\nimport aspectRatioMix from './aspectRatioMix';\nimport screenshotMix from './screenshotMix';\nimport fullscreenMix from './fullscreenMix';\nimport fullscreenWebMix from './fullscreenWebMix';\nimport pipMix from './pipMix';\nimport loadedMix from './loadedMix';\nimport playedMix from './playedMix';\nimport playingMix from './playingMix';\nimport autoSizeMix from './autoSizeMix';\nimport rectMix from './rectMix';\nimport flipMix from './flipMix';\nimport miniMix from './miniMix';\nimport loopMix from './loopMix';\nimport posterMix from './posterMix';\nimport autoHeightMix from './autoHeightMix';\nimport cssVarMix from './cssVarMix';\nimport themeMix from './themeMix';\nimport titleMix from './titleMix';\nimport typeMix from './typeMix';\nimport stateMix from './stateMix';\nimport subtitleOffsetMix from './subtitleOffsetMix';\nimport airplayMix from './airplayMix';\nimport optionInit from './optionInit';\nimport eventInit from './eventInit';\n\nexport default class Player {\n constructor(art) {\n urlMix(art);\n attrMix(art);\n playMix(art);\n pauseMix(art);\n toggleMix(art);\n seekMix(art);\n volumeMix(art);\n currentTimeMix(art);\n durationMix(art);\n switchMix(art);\n playbackRateMix(art);\n aspectRatioMix(art);\n screenshotMix(art);\n fullscreenMix(art);\n fullscreenWebMix(art);\n pipMix(art);\n loadedMix(art);\n playedMix(art);\n playingMix(art);\n autoSizeMix(art);\n rectMix(art);\n flipMix(art);\n miniMix(art);\n loopMix(art);\n posterMix(art);\n autoHeightMix(art);\n cssVarMix(art);\n themeMix(art);\n titleMix(art);\n typeMix(art);\n stateMix(art);\n subtitleOffsetMix(art);\n airplayMix(art);\n eventInit(art);\n optionInit(art);\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(art, 'url', {\n get() {\n return $video.src;\n },\n async set(url) {\n if (url) {\n const oldUrl = art.url;\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n\n if (typeName && typeCallback) {\n await sleep();\n art.loading.show = true;\n typeCallback.call(art, $video, url, art);\n } else {\n $video.src = url;\n }\n\n if (oldUrl !== art.url) {\n art.option.url = url;\n if (art.isReady && oldUrl) {\n art.once('video:canplay', () => {\n art.emit('restart', url);\n });\n }\n }\n } else {\n await sleep();\n art.loading.show = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function attrMix(art) {\n const {\n template: { $video },\n } = art;\n\n def(art, 'attr', {\n value(key, value) {\n if (value === undefined) return $video[key];\n $video[key] = value;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art) {\n const {\n i18n,\n notice,\n option,\n constructor: { instances },\n template: { $video },\n } = art;\n\n def(art, 'play', {\n value: async function () {\n const result = await $video.play();\n notice.show = i18n.get('Play');\n art.emit('play');\n\n if (option.mutex) {\n for (let index = 0; index < instances.length; index++) {\n const instance = instances[index];\n if (instance !== art) {\n instance.pause();\n }\n }\n }\n\n return result;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'pause', {\n value() {\n const result = $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n return result;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art) {\n def(art, 'toggle', {\n value() {\n if (art.playing) {\n return art.pause();\n } else {\n return art.play();\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art) {\n const { notice } = art;\n\n def(art, 'seek', {\n set(time) {\n art.currentTime = time;\n art.emit('seek', art.currentTime);\n if (art.duration) {\n notice.show = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n }\n },\n });\n\n def(art, 'forward', {\n set(time) {\n art.seek = art.currentTime + time;\n },\n });\n\n def(art, 'backward', {\n set(time) {\n art.seek = art.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(art, 'volume', {\n get: () => $video.volume || 0,\n set: (percentage) => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n },\n });\n\n def(art, 'muted', {\n get: () => $video.muted,\n set: (muted) => {\n $video.muted = muted;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art) {\n const { $video } = art.template;\n\n def(art, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n time = parseFloat(time);\n if (Number.isNaN(time)) return;\n $video.currentTime = clamp(time, 0, art.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art) {\n def(art, 'duration', {\n get: () => {\n const { duration } = art.template.$video;\n if (duration === Infinity) return 0;\n return duration || 0;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function switchMix(art) {\n const { i18n, option, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n return new Promise((resolve) => {\n if (url === art.url) return resolve(url);\n const { playing } = art;\n art.pause();\n URL.revokeObjectURL(art.url);\n art.url = url;\n art.once('video:canplay', () => {\n art.playbackRate = false;\n art.aspectRatio = false;\n art.flip = 'normal';\n art.autoSize = option.autoSize;\n art.currentTime = currentTime;\n art.notice.show = '';\n if (playing) {\n art.play();\n }\n if (name) {\n notice.show = `${i18n.get('Switch Video')}: ${name}`;\n }\n resolve(url);\n });\n });\n }\n\n def(art, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, art.currentTime);\n },\n });\n\n def(art, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playbackRateMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'playbackRate', {\n get() {\n return $video.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $video.playbackRate) return;\n $video.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n } else {\n art.playbackRate = 1;\n }\n },\n });\n}\n","import { setStyle, def } from '../utils';\n\nexport default function aspectRatioMix(art) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(art, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || 'default';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':').map(Number);\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(art, 'aspectRatioReset', {\n value() {\n const { aspectRatio } = art;\n art.aspectRatio = aspectRatio;\n },\n });\n}\n","import { secondToTime, download, def, createElement } from '../utils';\n\nexport default function screenshotMix(art) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = createElement('canvas');\n\n def(art, 'getDataURL', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n resolve($canvas.toDataURL('image/png'));\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'getBlobUrl', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n $canvas.toBlob((blob) => {\n resolve(URL.createObjectURL(blob));\n });\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'screenshot', {\n value: async () => {\n const dataUri = await art.getDataURL();\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n },\n });\n}\n","import screenfull from '../libs/screenfull';\nimport { addClass, removeClass, def, get } from '../utils';\n\nexport default function fullscreenMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art;\n\n const nativeScreenfull = (art) => {\n screenfull.on('change', () => {\n art.emit('fullscreen', screenfull.isFullscreen);\n });\n\n def(art, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n async set(value) {\n if (value) {\n art.state = 'fullscreen';\n art.aspectRatioReset();\n art.autoSize = false;\n await screenfull.request($player);\n addClass($player, 'art-fullscreen');\n art.emit('resize');\n notice.show = '';\n } else {\n art.aspectRatioReset();\n art.autoSize = art.option.autoSize;\n await screenfull.exit();\n removeClass($player, 'art-fullscreen');\n art.emit('resize');\n notice.show = '';\n }\n },\n });\n };\n\n const webkitScreenfull = (art) => {\n def(art, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n art.state = 'fullscreen';\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n notice.show = '';\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen', false);\n notice.show = '';\n }\n },\n });\n };\n\n art.once('video:loadedmetadata', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art);\n } else {\n def(art, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen Not Supported');\n },\n });\n }\n\n // Asynchronous setting\n def(art, 'fullscreen', get(art, 'fullscreen'));\n });\n}\n","const methodMap = [\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror',\n ],\n // New WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n // Old WebKit\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror',\n ],\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError',\n ],\n];\n\nconst nativeAPI = (() => {\n if (typeof document === 'undefined') {\n return false;\n }\n\n const unprefixedMethods = methodMap[0];\n const returnValue = {};\n\n for (const methodList of methodMap) {\n const exitFullscreenMethod = methodList[1];\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries()) {\n returnValue[unprefixedMethods[index]] = method;\n }\n\n return returnValue;\n }\n }\n\n return false;\n})();\n\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror,\n};\n\nlet screenfull = {\n request(element = document.documentElement, options) {\n return new Promise((resolve, reject) => {\n const onFullScreenEntered = () => {\n screenfull.off('change', onFullScreenEntered);\n resolve();\n };\n\n screenfull.on('change', onFullScreenEntered);\n\n const returnPromise = element[nativeAPI.requestFullscreen](options);\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject);\n }\n });\n },\n exit() {\n return new Promise((resolve, reject) => {\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n\n const onFullScreenExit = () => {\n screenfull.off('change', onFullScreenExit);\n resolve();\n };\n\n screenfull.on('change', onFullScreenExit);\n\n const returnPromise = document[nativeAPI.exitFullscreen]();\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject);\n }\n });\n },\n toggle(element, options) {\n return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n },\n onchange(callback) {\n screenfull.on('change', callback);\n },\n onerror(callback) {\n screenfull.on('error', callback);\n },\n on(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.addEventListener(eventName, callback, false);\n }\n },\n off(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.removeEventListener(eventName, callback, false);\n }\n },\n raw: nativeAPI,\n};\n\nObject.defineProperties(screenfull, {\n isFullscreen: {\n get: () => Boolean(document[nativeAPI.fullscreenElement]),\n },\n element: {\n enumerable: true,\n get: () => document[nativeAPI.fullscreenElement],\n },\n isEnabled: {\n enumerable: true,\n get: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n },\n});\n\nif (!nativeAPI) {\n screenfull = { isEnabled: false };\n}\n\nexport default screenfull;\n","import { addClass, removeClass, hasClass, def, append } from '../utils';\n\nexport default function fullscreenWebMix(art) {\n const {\n option,\n notice,\n constructor,\n template: { $container, $player },\n } = art;\n\n let cssText = '';\n def(art, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n cssText = $player.style.cssText;\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append(document.body, $player);\n }\n art.state = 'fullscreenWeb';\n addClass($player, 'art-fullscreen-web');\n art.aspectRatioReset();\n art.autoSize = false;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n notice.show = '';\n } else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append($container, $player);\n }\n if (cssText) {\n $player.style.cssText = cssText;\n cssText = '';\n }\n removeClass($player, 'art-fullscreen-web');\n art.aspectRatioReset();\n art.autoSize = option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb', false);\n notice.show = '';\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art) {\n const {\n template: { $video },\n proxy,\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(art, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n art.state = 'pip';\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip', false);\n });\n}\n\nfunction webkitPip(art) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(art, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n art.state = 'pip';\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip', false);\n }\n },\n });\n}\n\nexport default function pipMix(art) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art);\n } else {\n def(art, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP Not Supported');\n },\n });\n }\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art) {\n const { $video } = art.template;\n\n def(art, 'loaded', {\n get: () => art.loadedTime / $video.duration,\n });\n\n def(art, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art) {\n def(art, 'played', {\n get: () => art.currentTime / art.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art) {\n const { $video } = art.template;\n def(art, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art) {\n const { $container, $player, $video } = art.template;\n\n def(art, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art) {\n def(art, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n const keys = ['bottom', 'height', 'left', 'right', 'top', 'width'];\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index];\n def(art, key, {\n get: () => {\n return art.rect[key];\n },\n });\n }\n\n def(art, 'x', {\n get: () => {\n return art.left + window.pageXOffset;\n },\n });\n\n def(art, 'y', {\n get: () => {\n return art.top + window.pageYOffset;\n },\n });\n}\n","import { def, capitalize } from '../utils';\n\nexport default function flipMix(art) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(art, 'flip', {\n get() {\n return $player.dataset.flip || 'normal';\n },\n set(flip) {\n if (!flip) flip = 'normal';\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n $player.dataset.flip = flip;\n }\n\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get(capitalize(flip))}`;\n art.emit('flip', flip);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport, createElement } from '../utils';\n\nexport default function miniMix(art) {\n const {\n icons,\n proxy,\n storage,\n template: { $player, $video },\n } = art;\n\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n\n function hideMini() {\n const { $mini } = art.template;\n if ($mini) {\n removeClass($player, 'art-mini');\n setStyle($mini, 'display', 'none');\n $player.prepend($video);\n art.emit('mini', false);\n }\n }\n\n function initState($play, $pause) {\n if (art.playing) {\n setStyle($play, 'display', `none`);\n setStyle($pause, 'display', `flex`);\n } else {\n setStyle($play, 'display', `flex`);\n setStyle($pause, 'display', `none`);\n }\n }\n\n function createMini() {\n const { $mini } = art.template;\n if ($mini) {\n append($mini, $video);\n return setStyle($mini, 'display', 'flex');\n } else {\n const $mini = createElement('div');\n addClass($mini, 'art-mini-popup');\n append(document.body, $mini);\n art.template.$mini = $mini;\n append($mini, $video);\n\n const $close = append($mini, `
`);\n append($close, icons.close);\n proxy($close, 'click', hideMini);\n\n const $state = append($mini, `
`);\n const $play = append($state, icons.play);\n const $pause = append($state, icons.pause);\n proxy($play, 'click', () => art.play());\n proxy($pause, 'click', () => art.pause());\n initState($play, $pause);\n art.on('video:playing', () => initState($play, $pause));\n art.on('video:pause', () => initState($play, $pause));\n art.on('video:timeupdate', () => initState($play, $pause));\n\n proxy($mini, 'mousedown', (event) => {\n isDroging = event.button === 0;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n addClass($mini, 'art-mini-droging');\n const x = event.pageX - lastPageX;\n const y = event.pageY - lastPageY;\n setStyle($mini, 'transform', `translate(${x}px, ${y}px)`);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($mini, 'art-mini-droging');\n const rect = $mini.getBoundingClientRect();\n storage.set('left', rect.left);\n storage.set('top', rect.top);\n setStyle($mini, 'left', `${rect.left}px`);\n setStyle($mini, 'top', `${rect.top}px`);\n setStyle($mini, 'transform', null);\n }\n });\n\n return $mini;\n }\n }\n\n function initMini() {\n const { $mini } = art.template;\n const rect = $mini.getBoundingClientRect();\n const top = window.innerHeight - rect.height - 50;\n const left = window.innerWidth - rect.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n }\n\n def(art, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n addClass($player, 'art-mini');\n const $mini = createMini();\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n if (!isInViewport($mini)) {\n initMini();\n }\n } else {\n initMini();\n }\n art.emit('mini', true);\n } else {\n hideMini();\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMix(art) {\n let interval = [];\n def(art, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], art.duration));\n const end = clamp(value[1], start, art.duration);\n if (end - start >= 1) {\n interval = [start, end];\n } else {\n interval = [];\n }\n } else {\n interval = [];\n }\n art.emit('loop', interval);\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (art.currentTime < interval[0] || art.currentTime > interval[1]) {\n art.seek = interval[0];\n }\n }\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(art, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import { setStyle, hasClass, addClass, removeClass, def } from '../utils';\n\nexport default function autoHeightMix(art) {\n const {\n option,\n template: { $container, $video },\n } = art;\n\n const heightCache = $container.style.height;\n\n def(art, 'autoHeight', {\n get() {\n return hasClass($container, 'art-auto-height');\n },\n set(value) {\n if (value) {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n setStyle($container, 'height', height + 'px');\n addClass($container, 'art-auto-height');\n art.autoSize = option.autoSize;\n art.emit('autoHeight', height);\n } else {\n setStyle($container, 'height', heightCache);\n removeClass($container, 'art-auto-height');\n art.autoSize = option.autoSize;\n art.emit('autoHeight');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function cssVarMix(art) {\n const { $player } = art.template;\n\n def(art, 'cssVar', {\n value(key, value) {\n if (value) {\n return $player.style.setProperty(key, value);\n } else {\n return getComputedStyle($player).getPropertyValue(key);\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function themeMix(art) {\n const { option } = art;\n\n def(art, 'theme', {\n get() {\n return art.cssProperty('--art-theme');\n },\n set(theme) {\n option.theme = theme;\n art.cssProperty('--art-theme', theme);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function titleMix(art) {\n def(art, 'title', {\n get() {\n return art.option.title;\n },\n set(title) {\n art.option.title = title;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function typeMix(art) {\n def(art, 'type', {\n get() {\n return art.option.type;\n },\n set(type) {\n art.option.type = type;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function stateMix(art) {\n const states = ['mini', 'pip', 'fullscreen', 'fullscreenWeb'];\n def(art, 'state', {\n get: () => states.find((name) => art[name]) || 'standard',\n set(name) {\n for (let index = 0; index < states.length; index++) {\n const prop = states[index];\n if (prop !== name && art[prop]) {\n art[prop] = false;\n }\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function subtitleOffsetMix(art) {\n const { clamp } = art.constructor.utils;\n const { notice, template, i18n } = art;\n\n let offsetCache = 0;\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n def(art, 'subtitleOffset', {\n get() {\n return offsetCache;\n },\n set(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n offsetCache = clamp(value, -5, 5);\n\n for (let index = 0; index < cues.length; index++) {\n const cue = cues[index];\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + offsetCache, 0, art.duration);\n cue.endTime = clamp(cuesCache[index].endTime + offsetCache, 0, art.duration);\n }\n\n art.subtitle.update();\n notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n art.emit('subtitleOffset', 0);\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function airplayMix(art) {\n const {\n i18n,\n notice,\n proxy,\n template: { $video },\n } = art;\n\n let available = true;\n\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) {\n proxy($video, 'webkitplaybacktargetavailabilitychanged', (event) => {\n switch (event.availability) {\n case 'available':\n available = true;\n break;\n case 'not-available':\n available = false;\n break;\n }\n });\n } else {\n available = false;\n }\n\n def(art, 'airplay', {\n value() {\n if (available) {\n $video.webkitShowPlaybackTargetPicker();\n art.emit('airplay');\n } else {\n notice.show = i18n.get('AirPlay Not Available');\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n for (const key in option.moreVideoAttr) {\n art.attr(key, option.moreVideoAttr[key]);\n }\n\n if (option.muted) {\n art.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volumeStorage = storage.get('volume');\n if (typeof volumeStorage === 'number') {\n $video.volume = clamp(volumeStorage, 0, 1);\n }\n\n if (option.poster) {\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n\n if (option.theme) {\n option.cssVar['--art-theme'] = option.theme;\n }\n\n for (const key in option.cssVar) {\n art.cssVar(key, option.cssVar[key]);\n }\n\n art.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle, isMobile } from '../utils';\n\nexport default function eventInit(art) {\n const {\n i18n,\n notice,\n option,\n constructor,\n proxy,\n template: { $player, $video, $poster },\n } = art;\n\n let reconnectTime = 0;\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event);\n });\n }\n\n // art.on('video:abort', () => {\n\n // });\n\n art.on('video:canplay', () => {\n reconnectTime = 0;\n art.loading.show = false;\n });\n\n art.once('video:canplay', () => {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n art.isReady = true;\n art.emit('ready');\n });\n\n // art.on('video:canplaythrough', () => {\n\n // });\n\n // art.on('video:durationchange', () => {\n\n // });\n\n // art.on('video:emptied', () => {\n\n // });\n\n art.on('video:ended', () => {\n if (option.loop) {\n art.seek = 0;\n art.play();\n art.controls.show = false;\n art.mask.show = false;\n } else {\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:error', async (error) => {\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n reconnectTime += 1;\n art.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', error, reconnectTime);\n } else {\n art.mask.show = true;\n art.loading.show = false;\n art.controls.show = true;\n addClass($player, 'art-error');\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n notice.show = i18n.get('Video Load Failed');\n art.destroy(false);\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n art.autoSize = option.autoSize;\n if (isMobile) {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:loadstart', () => {\n art.loading.show = true;\n art.mask.show = false;\n art.controls.show = true;\n });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n\n // art.on('video:stalled', () => {\n\n // });\n\n // art.on('video:suspend', () => {\n\n // });\n\n art.on('video:timeupdate', () => {\n art.mask.show = false;\n });\n\n // art.on('video:volumechange', () => {\n\n // });\n\n art.on('video:waiting', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n}\n","import { errorHandle, addClass, removeClass, isMobile } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\nimport airplay from './airplay';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n proxy,\n constructor,\n template: { $player },\n } = art;\n\n let activeTime = Date.now();\n\n proxy($player, ['click', 'mousemove', 'touchstart', 'touchmove'], () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n activeTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (!art.isInput && art.playing && this.show && Date.now() - activeTime >= constructor.CONTROL_HIDE_TIME) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n this.init();\n }\n\n init() {\n const { option } = this.art;\n\n if (!option.isLive) {\n this.add(\n progress({\n name: 'progress',\n position: 'top',\n index: 10,\n }),\n );\n }\n\n if (option.thumbnails.url && !option.isLive && !isMobile) {\n this.add(\n thumbnails({\n name: 'thumbnails',\n position: 'top',\n index: 20,\n }),\n );\n }\n\n this.add(\n loop({\n name: 'loop',\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n position: 'left',\n index: 20,\n }),\n );\n\n if (!option.isLive) {\n this.add(\n time({\n name: 'time',\n position: 'left',\n index: 30,\n }),\n );\n }\n\n if (option.quality.length) {\n this.add(\n quality({\n name: 'quality',\n position: 'right',\n index: 10,\n }),\n );\n }\n\n if (option.screenshot && !isMobile) {\n this.add(\n screenshot({\n name: 'screenshot',\n position: 'right',\n index: 20,\n }),\n );\n }\n\n if (option.setting) {\n this.add(\n setting({\n name: 'setting',\n position: 'right',\n index: 30,\n }),\n );\n }\n\n if (option.pip) {\n this.add(\n pip({\n name: 'pip',\n position: 'right',\n index: 40,\n }),\n );\n }\n\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) {\n this.add(\n airplay({\n name: 'airplay',\n position: 'right',\n index: 50,\n }),\n );\n }\n\n if (option.fullscreenWeb) {\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60,\n }),\n );\n }\n\n if (option.fullscreen) {\n this.add(\n fullscreen({\n name: 'fullscreen',\n position: 'right',\n index: 70,\n }),\n );\n }\n\n for (let index = 0; index < option.controls.length; index++) {\n this.add(option.controls[index]);\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import {\n remove,\n append,\n tooltip,\n hasClass,\n addClass,\n getStyle,\n setStyles,\n removeClass,\n inverseClass,\n createElement,\n} from './dom';\nimport { isStringOrNumber } from './format';\nimport { errorHandle } from './error';\nimport validator from 'option-validator';\nimport { ComponentOption } from '../scheme';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.cache = new Map();\n this.add = this.add.bind(this);\n this.remove = this.remove.bind(this);\n this.update = this.update.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n toggle() {\n this.show = !this.show;\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n option.html = option.html || '';\n validator(option, ComponentOption);\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n const item = this.cache.get(name);\n errorHandle(!item, `Can't add an existing [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n const events = [];\n if (option.click) {\n const destroyEvent = this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n events.push(destroyEvent);\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.addSelector(option, $ref, events);\n }\n\n this[name] = $ref;\n this.cache.set(name, { $ref, events, option });\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n return $ref;\n }\n\n addSelector(option, $ref, events) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector\n .map(\n (item, index) =>\n `
${\n item.html\n }
`,\n )\n .join('');\n const $list = createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n const refWidth = getStyle($ref, 'width');\n const listWidth = getStyle($list, 'width');\n const left = refWidth / 2 - listWidth / 2;\n $list.style.left = `${left}px`;\n };\n\n hover($ref, setLeft);\n\n const destroyEvent = proxy($list, 'click', async (event) => {\n const path = event.composedPath() || [];\n const $item = path.find((item) => hasClass(item, 'art-selector-item'));\n if (!$item) return;\n inverseClass($item, 'art-current');\n const index = Number($item.dataset.index);\n const find = option.selector[index] || {};\n $value.innerText = $item.innerText;\n if (option.onSelect) {\n const result = await option.onSelect.call(this.art, find, $item, event);\n if (isStringOrNumber(result)) {\n $value.innerHTML = result;\n }\n }\n setLeft();\n });\n\n events.push(destroyEvent);\n }\n\n remove(name) {\n const item = this.cache.get(name);\n errorHandle(item, `Can't find [${name}] from the [${this.name}]`);\n\n if (item.option.beforeUnmount) {\n item.option.beforeUnmount.call(this.art, item.$ref);\n }\n\n for (let index = 0; index < item.events.length; index++) {\n this.art.events.remove(item.events[index]);\n }\n\n this.cache.delete(name);\n delete this[name];\n remove(item.$ref);\n }\n\n update(option) {\n const item = this.cache.get(option.name);\n if (item) this.remove(option.name);\n return this.add(option);\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreen(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $fullscreenOn = append($control, icons.fullscreenOn);\n const $fullscreenOff = append($control, icons.fullscreenOff);\n setStyle($fullscreenOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreen = !art.fullscreen;\n });\n\n art.on('fullscreen', (state) => {\n if (state) {\n tooltip($control, i18n.get('Exit Fullscreen'));\n setStyle($fullscreenOn, 'display', 'none');\n setStyle($fullscreenOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Fullscreen'));\n setStyle($fullscreenOn, 'display', 'inline-flex');\n setStyle($fullscreenOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $fullscreenWebOn = append($control, icons.fullscreenWebOn);\n const $fullscreenWebOff = append($control, icons.fullscreenWebOff);\n setStyle($fullscreenWebOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreenWeb = !art.fullscreenWeb;\n });\n\n art.on('fullscreenWeb', (value) => {\n if (value) {\n tooltip($control, i18n.get('Exit Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'none');\n setStyle($fullscreenWebOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'inline-flex');\n setStyle($fullscreenWebOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n art.pip = !art.pip;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n art.play();\n });\n\n proxy($pause, 'click', () => {\n art.pause();\n });\n\n function showPlay() {\n setStyle($play, 'display', 'flex');\n setStyle($pause, 'display', 'none');\n }\n\n function showPause() {\n setStyle($play, 'display', 'none');\n setStyle($pause, 'display', 'flex');\n }\n\n if (art.playing) {\n showPause();\n } else {\n showPlay();\n }\n\n art.on('video:playing', () => {\n showPause();\n });\n\n art.on('video:pause', () => {\n showPlay();\n });\n },\n });\n}\n","import { query, clamp, append, setStyle, secondToTime, includeFromEvent, isMobile } from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = $progress.getBoundingClientRect();\n const eventLeft = isMobile ? event.touches[0].clientX : event.pageX;\n const width = clamp(eventLeft - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * art.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport function setCurrentTime(art, event) {\n if (art.isRotate) {\n const percentage = event.touches[0].clientY / art.height;\n const second = percentage * art.duration;\n art.emit('setBar', 'played', percentage);\n art.seek = second;\n } else {\n const { second, percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'played', percentage);\n art.seek = second;\n }\n}\n\nexport default function progress(options) {\n return (art) => {\n const { icons, option, proxy } = art;\n\n return {\n ...options,\n html: `\n
\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let isDroging = false;\n const $hover = query('.art-progress-hover', $control);\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n if (icons.indicator) {\n append($indicator, icons.indicator);\n } else {\n setStyle($indicator, 'backgroundColor', 'var(--art-theme)');\n }\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle($indicator, 'left', `${percentage * 100}%`);\n }\n }\n\n function setHover(event) {\n const { width } = getPosFromEvent(art, event);\n setStyle($hover, 'width', `${width}px`);\n setStyle($hover, 'display', 'flex');\n }\n\n art.on('video:loadedmetadata', () => {\n for (let index = 0; index < option.highlight.length; index++) {\n const item = option.highlight[index];\n const left = (clamp(item.time, 0, art.duration) / art.duration) * 100;\n const html = ``;\n append($highlight, html);\n }\n });\n\n setBar('loaded', art.loaded);\n\n art.on('setBar', (type, percentage) => {\n setBar(type, percentage);\n });\n\n art.on('video:progress', () => {\n setBar('loaded', art.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', art.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n if (!isMobile) {\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n setCurrentTime(art, event);\n }\n });\n\n proxy($control, 'mousemove', (event) => {\n setHover(event);\n setStyle($tip, 'display', 'flex');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseleave', () => {\n setStyle($tip, 'display', 'none');\n setStyle($hover, 'display', 'none');\n });\n\n proxy($control, 'mousedown', (event) => {\n isDroging = event.button === 0;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n art.seek = second;\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n }\n },\n };\n };\n}\n","import { secondToTime, isMobile } from '../utils';\n\nexport default function time(option) {\n return (art) => ({\n ...option,\n style: isMobile\n ? {\n fontSize: '12px',\n padding: '0 5px',\n }\n : {\n cursor: 'auto',\n padding: '0 10px',\n },\n mounted: ($control) => {\n function getTime() {\n const newTime = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n\n const events = ['video:loadedmetadata', 'video:timeupdate', 'video:progress'];\n for (let index = 0; index < events.length; index++) {\n art.on(events[index], getTime);\n }\n },\n });\n}\n","import { append, setStyle, isMobile } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons } = art;\n\n const $volume = append($control, icons.volume);\n const $close = append($control, icons.volumeClose);\n const $panel = append($control, '
');\n const $inner = append($panel, '
');\n const $value = append($inner, `
`);\n const $slider = append($inner, `
`);\n const $handle = append($slider, `
`);\n const $loaded = append($handle, `
`);\n const $indicator = append($slider, `
`);\n\n function getVolumeFromEvent(event) {\n const { top, height } = $slider.getBoundingClientRect();\n return 1 - (event.pageY - top) / height;\n }\n\n function update() {\n if (art.muted || art.volume === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($close, 'display', 'flex');\n setStyle($indicator, 'top', '100%');\n setStyle($loaded, 'top', '100%');\n $value.innerText = 0;\n } else {\n const percentage = art.volume * 100;\n setStyle($volume, 'display', 'flex');\n setStyle($close, 'display', 'none');\n setStyle($indicator, 'top', `${100 - percentage}%`);\n setStyle($loaded, 'top', `${100 - percentage}%`);\n $value.innerText = Math.floor(percentage);\n }\n }\n\n update();\n art.on('video:volumechange', update);\n\n proxy($volume, 'click', () => {\n art.muted = true;\n });\n\n proxy($close, 'click', () => {\n art.muted = false;\n });\n\n if (isMobile) {\n setStyle($panel, 'display', 'none');\n } else {\n let isDroging = false;\n\n proxy($slider, 'mousedown', (event) => {\n isDroging = event.button === 0;\n art.volume = getVolumeFromEvent(event);\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n art.muted = false;\n art.volume = getVolumeFromEvent(event);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n }\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control) => {\n const { proxy, icons, i18n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n art.setting.toggle();\n art.setting.updateStyle();\n });\n\n art.on('setting', (value) => {\n tooltip($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(options) {\n return (art) => ({\n ...options,\n mounted: ($control) => {\n const {\n option,\n template: { $progress, $video },\n events: { proxy, loadImg },\n } = art;\n\n let image = null;\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, number, column, width, height } = option.thumbnails;\n const width2 = width || image.naturalWidth / column;\n const height2 = height || width2 / ($video.videoWidth / $video.videoHeight);\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height2}px`);\n setStyle($control, 'width', `${width2}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`);\n if (posWidth <= width2 / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width2 / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width2}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width2 / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', async (event) => {\n if (!loading) {\n loading = true;\n const img = await loadImg(option.thumbnails.url);\n image = img;\n isLoad = true;\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'flex');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseleave', () => {\n setStyle($control, 'display', 'none');\n });\n\n art.on('hover', (state) => {\n if (!state) {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control) => {\n const { proxy, icons } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n art.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n style: {\n marginRight: '10px',\n },\n html: qualityDefault ? qualityDefault.html : '',\n selector: qualityOption,\n onSelect(item) {\n art.switchQuality(item.url, item.html);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value && value.length) {\n setStyle($control, 'display', 'flex');\n setStyle($left, 'left', `calc(${(value[0] / art.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / art.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control) => {\n const { proxy, icons } = art;\n append($control, icons.airplay);\n proxy($control, 'click', () => art.airplay());\n },\n });\n}\n","import { setStyles, includeFromEvent, isMobile } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport flip from './flip';\nimport info from './info';\nimport version from './version';\nimport close from './close';\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'contextmenu';\n this.$parent = art.template.$contextmenu;\n\n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n option,\n proxy,\n template: { $player, $contextmenu },\n } = this.art;\n\n if (option.playbackRate) {\n this.add(\n playbackRate({\n name: 'playbackRate',\n index: 10,\n }),\n );\n }\n\n if (option.aspectRatio) {\n this.add(\n aspectRatio({\n name: 'aspectRatio',\n index: 20,\n }),\n );\n }\n\n if (option.flip) {\n this.add(\n flip({\n name: 'flip',\n index: 30,\n }),\n );\n }\n\n this.add(\n info({\n name: 'info',\n index: 40,\n }),\n );\n\n this.add(\n version({\n name: 'version',\n index: 50,\n }),\n );\n\n this.add(\n close({\n name: 'close',\n index: 60,\n }),\n );\n\n for (let index = 0; index < option.contextmenu.length; index++) {\n this.add(option.contextmenu[index]);\n }\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n if (!this.art.constructor.CONTEXTMENU) return;\n\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n this.art.on('blur', () => {\n this.show = false;\n });\n }\n}\n","import { inverseClass, query, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const {\n i18n,\n constructor: { PLAYBACK_RATE },\n } = art;\n\n const html = PLAYBACK_RATE.map(\n (item) => `${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Play Speed')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.playbackRate = Number(value);\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"1\"]', $panel);\n if ($default) inverseClass($default, 'art-current');\n art.on('video:ratechange', () => {\n const $current = queryAll('span', $panel).find(\n (item) => Number(item.dataset.value) === art.playbackRate,\n );\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, query, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const {\n i18n,\n constructor: { ASPECT_RATIO },\n } = art;\n\n const html = ASPECT_RATIO.map(\n (item) => `${item === 'default' ? i18n.get('Default') : item}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Aspect Ratio')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.aspectRatio = value;\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"default\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\n art.on('aspectRatio', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, query, queryAll, capitalize } from '../utils';\n\nexport default function flip(option) {\n return (art) => {\n const {\n i18n,\n constructor: { FLIP },\n } = art;\n\n const html = FLIP.map((item) => `${i18n.get(capitalize(item))}`).join('');\n\n return {\n ...option,\n html: `${i18n.get('Video Flip')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.flip = value.toLowerCase();\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"normal\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\n art.on('flip', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return (art) => ({\n ...option,\n html: art.i18n.get('Video Info'),\n click: (contextmenu) => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: `ArtPlayer ${process.env.APP_VER}`,\n };\n}\n","export default function close(option) {\n return (art) => ({\n ...option,\n html: art.i18n.get('Close'),\n click: (contextmenu) => {\n contextmenu.show = false;\n },\n });\n}\n","import { queryAll, isMobile } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.name = 'info';\n\n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n proxy,\n constructor,\n template: { $infoPanel, $infoClose, $video },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const $types = queryAll('[data-video]', $infoPanel) || [];\n this.art.on('destroy', () => clearTimeout(timer));\n\n function loop() {\n for (let index = 0; index < $types.length; index++) {\n const item = $types[index];\n const value = $video[item.dataset.video];\n const innerText = typeof value === 'number' ? value.toFixed(2) : value;\n if (item.innerText !== innerText) {\n item.innerText = innerText;\n }\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME);\n }\n\n loop();\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n escape,\n remove,\n append,\n createElement,\n} from './utils';\nimport Component from './utils/component';\nimport validator from 'option-validator';\nimport scheme from './scheme';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n this.name = 'subtitle';\n this.eventDestroy = () => null;\n this.init(art.option.subtitle);\n\n let lastState = false;\n art.on('video:timeupdate', () => {\n if (!this.url) return;\n const state = this.art.template.$video.webkitDisplayingFullscreen;\n if (typeof state !== 'boolean') return;\n if (state !== lastState) {\n lastState = state;\n this.createTrack(state ? 'subtitles' : 'metadata', this.url);\n }\n });\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n set url(url) {\n this.switch(url);\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n if (this.art.option.subtitle.escape) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

${escape(item)}

`)\n .join('');\n } else {\n $subtitle.innerHTML = this.activeCue.text;\n }\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art;\n const subtitleOption = { ...option.subtitle, ...newOption, url };\n const subUrl = await this.init(subtitleOption);\n if (newOption.name) {\n notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`;\n }\n return subUrl;\n }\n\n createTrack(kind, url) {\n const { template, proxy } = this.art;\n const { $video, $track } = template;\n\n const $newTrack = createElement('track');\n $newTrack.default = true;\n $newTrack.kind = kind;\n $newTrack.src = url;\n $newTrack.track.mode = 'hidden';\n\n this.eventDestroy();\n remove($track);\n\n append($video, $newTrack);\n template.$track = $newTrack;\n this.eventDestroy = proxy(this.textTrack, 'cuechange', () => this.update());\n }\n\n async init(subtitleOption) {\n const {\n notice,\n template: { $subtitle },\n } = this.art;\n\n validator(subtitleOption, scheme.subtitle);\n if (!subtitleOption.url) return;\n this.style(subtitleOption.style);\n\n return fetch(subtitleOption.url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n this.art.emit('subtitleLoad', subtitleOption.url);\n switch (subtitleOption.type || getExt(subtitleOption.url)) {\n case 'srt': {\n const vtt = srtToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'ass': {\n const vtt = assToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'vtt': {\n const vttNew = subtitleOption.onVttLoad(text);\n return vttToBlob(vttNew);\n }\n default:\n return subtitleOption.url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.createTrack('metadata', subUrl);\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport moveInit from './moveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\nimport documentInit from './documentInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n clickInit(art, this);\n hoverInit(art, this);\n moveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n documentInit(art, this);\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n });\n }\n\n remove(destroyEvent) {\n const index = this.destroyEvents.indexOf(destroyEvent);\n if (index > -1) {\n destroyEvent();\n this.destroyEvents.splice(index, 1);\n }\n }\n\n destroy() {\n for (let index = 0; index < this.destroyEvents.length; index++) {\n this.destroyEvents[index]();\n }\n }\n}\n","import { includeFromEvent, isMobile } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n constructor,\n template: { $player, $video },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isInput = event.target.tagName === 'INPUT';\n art.isFocus = true;\n art.emit('focus', event);\n } else {\n art.isInput = false;\n art.isFocus = false;\n art.emit('blur', event);\n }\n });\n\n let clickTime = 0;\n events.proxy($video, 'click', (event) => {\n const now = Date.now();\n const { MOBILE_CLICK_PLAY, DBCLICK_TIME, MOBILE_DBCLICK_PLAY, DBCLICK_FULLSCREEN } = constructor;\n\n if (now - clickTime <= DBCLICK_TIME) {\n art.emit('dblclick', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) {\n art.toggle();\n }\n } else {\n if (DBCLICK_FULLSCREEN) {\n art.fullscreen = !art.fullscreen;\n }\n }\n } else {\n art.emit('click', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) {\n art.toggle();\n }\n } else {\n art.toggle();\n }\n }\n\n clickTime = now;\n });\n}\n","import { addClass, removeClass } from '../utils';\n\nexport default function hoverInit(art, events) {\n const { $player } = art.template;\n\n events.hover(\n $player,\n (event) => {\n addClass($player, 'art-hover');\n art.emit('hover', true, event);\n },\n (event) => {\n removeClass($player, 'art-hover');\n art.emit('hover', false, event);\n },\n );\n}\n","export default function moveInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option } = art;\n\n const resizeFn = throttle(() => {\n if (art.state === 'standard') {\n art.autoSize = option.autoSize;\n }\n art.aspectRatioReset();\n art.notice.show = '';\n art.emit('resize');\n }, art.constructor.RESIZE_TIME);\n\n events.proxy(window, ['orientationchange', 'resize'], () => resizeFn());\n if (screen && screen.orientation && screen.orientation.onchange) {\n events.proxy(screen.orientation, 'change', () => resizeFn());\n }\n}\n","import { clamp, secondToTime, isMobile } from '../utils';\nimport { setCurrentTime } from '../control/progress';\n\nfunction GetSlideAngle(dx, dy) {\n return (Math.atan2(dy, dx) * 180) / Math.PI;\n}\n\nfunction GetSlideDirection(startX, startY, endX, endY) {\n var dy = startY - endY;\n var dx = endX - startX;\n var result = 0;\n\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {\n return result;\n }\n\n var angle = GetSlideAngle(dx, dy);\n if (angle >= -45 && angle < 45) {\n result = 4;\n } else if (angle >= 45 && angle < 135) {\n result = 1;\n } else if (angle >= -135 && angle < -45) {\n result = 2;\n } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {\n result = 3;\n }\n\n return result;\n}\n\nexport default function gestureInit(art, events) {\n if (isMobile && !art.option.isLive) {\n const { $video, $progress } = art.template;\n\n let touchTarget = null;\n let isDroging = false;\n let startX = 0;\n let startY = 0;\n let startTime = 0;\n\n const onTouchStart = (event) => {\n if (event.touches.length === 1 && !art.isLock) {\n if (touchTarget === $progress) {\n setCurrentTime(art, event);\n }\n\n isDroging = true;\n const { pageX, pageY } = event.touches[0];\n startX = pageX;\n startY = pageY;\n startTime = art.currentTime;\n }\n };\n\n const onTouchMove = (event) => {\n if (event.touches.length === 1 && isDroging && art.duration) {\n const { pageX, pageY } = event.touches[0];\n const direction = GetSlideDirection(startX, startY, pageX, pageY);\n const isHorizontal = [3, 4].includes(direction);\n const isVertical = [1, 2].includes(direction);\n const isLegal = (isHorizontal && !art.isRotate) || (isVertical && art.isRotate);\n if (isLegal) {\n const ratioX = clamp((pageX - startX) / art.width, -1, 1);\n const ratioY = clamp((pageY - startY) / art.height, -1, 1);\n const ratio = art.isRotate ? ratioY : ratioX;\n const TOUCH_MOVE_RATIO = touchTarget === $video ? art.constructor.TOUCH_MOVE_RATIO : 1;\n const currentTime = clamp(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', clamp(currentTime / art.duration, 0, 1));\n art.notice.show = `${secondToTime(currentTime)} / ${secondToTime(art.duration)}`;\n }\n }\n };\n\n const onTouchEnd = () => {\n if (isDroging) {\n startX = 0;\n startY = 0;\n startTime = 0;\n isDroging = false;\n touchTarget = null;\n }\n };\n\n events.proxy($progress, 'touchstart', (event) => {\n touchTarget = $progress;\n onTouchStart(event);\n });\n\n events.proxy($video, 'touchstart', (event) => {\n touchTarget = $video;\n onTouchStart(event);\n });\n\n events.proxy($video, 'touchmove', onTouchMove);\n events.proxy($progress, 'touchmove', onTouchMove);\n events.proxy(document, 'touchend', onTouchEnd);\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n option,\n constructor,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, constructor.SCROLL_GAP));\n }, constructor.SCROLL_TIME);\n\n events.proxy(window, 'scroll', () => scrollFn());\n\n art.on('view', (state) => {\n if (option.autoMini) {\n art.mini = !state;\n }\n });\n}\n","export default function documentInit(art, events) {\n events.proxy(document, 'mousemove', (event) => {\n art.emit('document:mousemove', event);\n });\n\n events.proxy(document, 'mouseup', (event) => {\n art.emit('document:mouseup', event);\n });\n}\n","import { isMobile } from './utils';\n\nexport default class Hotkey {\n constructor(art) {\n this.art = art;\n this.keys = {};\n\n if (art.option.hotkey && !isMobile) {\n this.init();\n }\n }\n\n init() {\n const { proxy, constructor } = this.art;\n\n this.add(27, () => {\n if (this.art.fullscreenWeb) {\n this.art.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n this.art.toggle();\n });\n\n this.add(37, () => {\n this.art.backward = constructor.SEEK_STEP;\n });\n\n this.add(38, () => {\n this.art.volume += constructor.VOLUME_STEP;\n });\n\n this.add(39, () => {\n this.art.forward = constructor.SEEK_STEP;\n });\n\n this.add(40, () => {\n this.art.volume -= constructor.VOLUME_STEP;\n });\n\n proxy(window, 'keydown', (event) => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n for (let index = 0; index < events.length; index++) {\n events[index].call(this.art, event);\n }\n this.art.emit('hotkey', event);\n }\n }\n }\n });\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n return this;\n }\n\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event);\n if (index !== -1) {\n this.keys[key].splice(index, 1);\n }\n }\n return this;\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n template: { $layer },\n } = art;\n\n this.name = 'layer';\n this.$parent = $layer;\n\n for (let index = 0; index < option.layers.length; index++) {\n this.add(option.layers[index]);\n }\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Loading extends Component {\n constructor(art) {\n super(art);\n this.name = 'loading';\n append(art.template.$loading, art.icons.loading);\n }\n}\n","import { addClass, removeClass } from './utils';\n\nexport default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n set show(msg) {\n const {\n constructor,\n template: { $player, $noticeInner },\n } = this.art;\n\n if (msg) {\n $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg;\n addClass($player, 'art-notice-show');\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n $noticeInner.innerText = '';\n removeClass($player, 'art-notice-show');\n }, constructor.NOTICE_TIME);\n } else {\n removeClass($player, 'art-notice-show');\n }\n }\n}\n","import { append, setStyle } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'mask';\n const { template, icons, events } = art;\n\n const $state = append(template.$state, icons.state);\n const $error = append(template.$state, icons.error);\n\n setStyle($error, 'display', 'none');\n\n art.on('destroy', () => {\n setStyle($state, 'display', 'none');\n setStyle($error, 'display', null);\n });\n\n events.proxy(template.$state, 'click', () => art.play());\n }\n}\n","import { def, getIcon } from '../utils';\nimport loading from 'bundle-text:./loading.svg';\nimport state from 'bundle-text:./state.svg';\nimport check from 'bundle-text:./check.svg';\nimport play from 'bundle-text:./play.svg';\nimport pause from 'bundle-text:./pause.svg';\nimport volume from 'bundle-text:./volume.svg';\nimport volumeClose from 'bundle-text:./volume-close.svg';\nimport screenshot from 'bundle-text:./screenshot.svg';\nimport setting from 'bundle-text:./setting.svg';\nimport arrowLeft from 'bundle-text:./arrow-left.svg';\nimport arrowRight from 'bundle-text:./arrow-right.svg';\nimport playbackRate from 'bundle-text:./playback-rate.svg';\nimport aspectRatio from 'bundle-text:./aspect-ratio.svg';\nimport config from 'bundle-text:./config.svg';\nimport pip from 'bundle-text:./pip.svg';\nimport lock from 'bundle-text:./lock.svg';\nimport unlock from 'bundle-text:./unlock.svg';\nimport fullscreenOff from 'bundle-text:./fullscreen-off.svg';\nimport fullscreenOn from 'bundle-text:./fullscreen-on.svg';\nimport fullscreenWebOff from 'bundle-text:./fullscreen-web-off.svg';\nimport fullscreenWebOn from 'bundle-text:./fullscreen-web-on.svg';\nimport switchOn from 'bundle-text:./switch-on.svg';\nimport switchOff from 'bundle-text:./switch-off.svg';\nimport flip from 'bundle-text:./flip.svg';\nimport error from 'bundle-text:./error.svg';\nimport close from 'bundle-text:./close.svg';\nimport airplay from 'bundle-text:./airplay.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n check,\n volume,\n volumeClose,\n screenshot,\n setting,\n pip,\n arrowLeft,\n arrowRight,\n playbackRate,\n aspectRatio,\n config,\n lock,\n flip,\n unlock,\n fullscreenOff,\n fullscreenOn,\n fullscreenWebOff,\n fullscreenWebOn,\n switchOn,\n switchOff,\n error,\n close,\n airplay,\n ...art.option.icons,\n };\n\n for (const key in icons) {\n def(this, key, {\n get: () => getIcon(key, icons[key]),\n });\n }\n }\n}\n","module.exports = \"48351807f9d17b85\";","module.exports = \"b521bd87173f07f8\";","module.exports = \"7d4d567c33bb525d\";","module.exports = \"d9cf5218ba4119f7\";","module.exports = \"1b6f706023152499\";","module.exports = \"ccea5e85f0721ac8\";","module.exports = \"7b07ee0d42ef7999\";","module.exports = \"d10cbdd15b9c3ccc\";","module.exports = \"ce7e5747dbeebf9c\";","module.exports = \"31d0f450fd3142ae\";","module.exports = \"607a9d3122cadc95\";","module.exports = \"3f2a5aef9e446414\";","module.exports = \"a3c2d6619a4bebaf\";","module.exports = \"5daee943371cdae2\";","module.exports = \"e49c27bbc31901ab\";","module.exports = \"0fd94c9b6ccce96e\";","module.exports = \"721f903406a7a9bd\";","module.exports = \"133f4e7286a8c946\";","module.exports = \"3ad4b0d674115f9f\";","module.exports = \"66f3df095ff2cfc9\";","module.exports = \"6a9b55926d7ffbd8\";","module.exports = \"ed05d01f0639f8dd\";","module.exports = \"42b075eebf138ccb\";","module.exports = \"c9dbc85ae2682806\";","module.exports = \"4e1fab3a25abda1e\";","module.exports = \"ef31f094274e03ea\";","module.exports = \"6f41eca9c8b9cda2\";","import flip from './flip';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\nimport subtitleOffset from './subtitleOffset';\nimport Component from '../utils/component';\nimport { errorHandle } from '../utils/error';\nimport {\n def,\n has,\n append,\n addClass,\n setStyle,\n isMobile,\n inverseClass,\n createElement,\n includeFromEvent,\n isStringOrNumber,\n} from '../utils';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n controls,\n template: { $setting },\n } = art;\n\n this.name = 'setting';\n this.$parent = $setting;\n\n this.option = [];\n this.events = [];\n this.cache = new Map();\n\n if (option.setting) {\n this.init();\n\n art.on('blur', () => {\n if (this.show) {\n this.show = false;\n this.render(this.option);\n }\n });\n\n art.on('focus', (event) => {\n const isSetting = includeFromEvent(event, controls.setting);\n const isParent = includeFromEvent(event, this.$parent);\n if (this.show && !isSetting && !isParent) {\n this.show = false;\n this.render(this.option);\n }\n });\n }\n }\n\n static makeRecursion(option, parentItem, parentList) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n item.$parentItem = parentItem;\n item.$parentList = parentList;\n Setting.makeRecursion(item.selector || [], item, option);\n }\n return option;\n }\n\n get defaultSettings() {\n const result = [];\n const { option } = this.art;\n\n if (option.playbackRate) {\n result.push(playbackRate(this.art));\n }\n\n if (option.aspectRatio) {\n result.push(aspectRatio(this.art));\n }\n\n if (option.flip) {\n result.push(flip(this.art));\n }\n\n if (option.subtitleOffset) {\n result.push(subtitleOffset(this.art));\n }\n\n return result;\n }\n\n init() {\n const { option } = this.art;\n const mergeSettings = [...this.defaultSettings, ...option.settings];\n this.option = Setting.makeRecursion(mergeSettings);\n this.destroy();\n this.render(this.option);\n }\n\n destroy() {\n for (let index = 0; index < this.events.length; index++) {\n this.art.events.remove(this.events[index]);\n }\n this.$parent.innerHTML = '';\n this.events = [];\n this.cache = new Map();\n }\n\n find(name = '', option = this.option) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n if (item.name === name) {\n return item;\n } else {\n const result = this.find(name, item.selector || []);\n if (result) return result;\n }\n }\n }\n\n remove(name) {\n const item = this.find(name);\n errorHandle(item, `Can't find [${name}] from the [setting]`);\n const parent = item.$parentItem?.selector || this.option;\n parent.splice(parent.indexOf(item), 1);\n this.option = Setting.makeRecursion(this.option);\n this.destroy();\n this.render(this.option);\n return this.option;\n }\n\n update(setting) {\n const item = this.find(setting.name);\n if (item) {\n Object.assign(item, setting);\n this.option = Setting.makeRecursion(this.option);\n this.destroy();\n this.render(this.option);\n } else {\n this.add(setting);\n }\n return this.option;\n }\n\n add(setting) {\n this.option.push(setting);\n this.option = Setting.makeRecursion(this.option);\n this.destroy();\n this.render(this.option);\n return this.option;\n }\n\n creatHeader(item) {\n const { icons, proxy } = this.art;\n const $item = createElement('div');\n addClass($item, 'art-setting-item');\n addClass($item, 'art-setting-item-back');\n const $left = append($item, '
');\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n append($icon, icons.arrowLeft);\n append($left, $icon);\n append($left, item.$parentItem.html);\n const event = proxy($item, 'click', () => this.render(item.$parentList));\n this.events.push(event);\n return $item;\n }\n\n creatItem(type, item) {\n const { icons, proxy } = this.art;\n\n const $item = createElement('div');\n addClass($item, 'art-setting-item');\n\n if (isStringOrNumber(item.name)) {\n $item.dataset.name = item.name;\n }\n\n if (isStringOrNumber(item.value)) {\n $item.dataset.value = item.value;\n }\n\n const $left = append($item, '
');\n const $right = append($item, '
');\n\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n\n switch (type) {\n case 'switch':\n case 'range':\n append($icon, isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config);\n break;\n case 'selector':\n if (item.selector && item.selector.length) {\n append(\n $icon,\n isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config,\n );\n } else {\n append($icon, icons.check);\n }\n break;\n default:\n break;\n }\n\n append($left, $icon);\n item.$icon = $icon;\n\n def(item, 'icon', {\n configurable: true,\n get() {\n return $icon.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $icon.innerHTML = value;\n }\n },\n });\n\n const $html = createElement('div');\n addClass($html, 'art-setting-item-left-text');\n append($html, item.html || '');\n append($left, $html);\n item.$html = $html;\n\n def(item, 'html', {\n configurable: true,\n get() {\n return $html.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $html.innerHTML = value;\n }\n },\n });\n\n const $tooltip = createElement('div');\n addClass($tooltip, 'art-setting-item-right-tooltip');\n append($tooltip, item.tooltip || '');\n append($right, $tooltip);\n item.$tooltip = $tooltip;\n\n def(item, 'tooltip', {\n configurable: true,\n get() {\n return $tooltip.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $tooltip.innerHTML = value;\n }\n },\n });\n\n switch (type) {\n case 'switch': {\n const $state = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $switchOn = append($state, icons.switchOn);\n const $switchOff = append($state, icons.switchOff);\n setStyle(item.switch ? $switchOff : $switchOn, 'display', 'none');\n append($right, $state);\n item.$switch = item.switch;\n\n def(item, 'switch', {\n configurable: true,\n get() {\n return item.$switch;\n },\n set(value) {\n item.$switch = value;\n if (value) {\n setStyle($switchOff, 'display', 'none');\n setStyle($switchOn, 'display', null);\n } else {\n setStyle($switchOff, 'display', null);\n setStyle($switchOn, 'display', 'none');\n }\n },\n });\n break;\n }\n case 'range':\n {\n const $state = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $range = append($state, '');\n $range.value = item.range[0] || 0;\n $range.min = item.range[1] || 0;\n $range.max = item.range[2] || 10;\n $range.step = item.range[3] || 1;\n addClass($range, 'art-setting-range');\n append($right, $state);\n item.$range = $range;\n\n def(item, 'range', {\n configurable: true,\n get() {\n return $range.valueAsNumber;\n },\n set(value) {\n $range.value = Number(value);\n },\n });\n }\n break;\n case 'selector':\n if (item.selector && item.selector.length) {\n const $state = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n append($state, icons.arrowRight);\n append($right, $state);\n }\n break;\n default:\n break;\n }\n\n switch (type) {\n case 'switch': {\n if (item.onSwitch) {\n const event = proxy($item, 'click', async (event) => {\n item.switch = await item.onSwitch.call(this.art, item, $item, event);\n });\n\n this.events.push(event);\n }\n break;\n }\n case 'range': {\n if (item.$range) {\n if (item.onRange) {\n const event = proxy(item.$range, 'change', async (event) => {\n item.tooltip = await item.onRange.call(this.art, item, $item, event);\n });\n this.events.push(event);\n }\n\n if (item.onChange) {\n const event = proxy(item.$range, 'input', async (event) => {\n item.tooltip = await item.onChange.call(this.art, item, $item, event);\n });\n this.events.push(event);\n }\n }\n break;\n }\n case 'selector':\n {\n const event = proxy($item, 'click', async (event) => {\n if (item.selector && item.selector.length) {\n this.render(item.selector, item.width);\n } else {\n inverseClass($item, 'art-current');\n\n for (let index = 0; index < item.$parentItem.selector.length; index++) {\n const element = item.$parentItem.selector[index];\n element.default = element === item;\n }\n\n if (item.$parentList) {\n this.render(item.$parentList);\n }\n\n if (item.$parentItem && item.$parentItem.onSelect) {\n const result = await item.$parentItem.onSelect.call(this.art, item, $item, event);\n if (item.$parentItem.$tooltip && isStringOrNumber(result)) {\n item.$parentItem.$tooltip.innerHTML = result;\n }\n }\n }\n });\n\n this.events.push(event);\n\n if (item.default) {\n addClass($item, 'art-current');\n }\n }\n break;\n default:\n break;\n }\n\n return $item;\n }\n\n updateStyle(width) {\n const {\n controls,\n constructor,\n template: { $player, $setting },\n } = this.art;\n\n if (controls.setting && !isMobile) {\n const settingWidth = width || constructor.SETTING_WIDTH;\n const { left: controlLeft, width: controlWidth } = controls.setting.getBoundingClientRect();\n const { left: playerLeft, width: playerWidth } = $player.getBoundingClientRect();\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2;\n if (settingLeft + settingWidth > playerWidth) {\n setStyle($setting, 'left', null);\n setStyle($setting, 'right', null);\n } else {\n setStyle($setting, 'left', `${settingLeft}px`);\n setStyle($setting, 'right', 'auto');\n }\n }\n }\n\n render(option, width) {\n const { constructor } = this.art;\n\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n inverseClass($panel, 'art-current');\n setStyle(this.$parent, 'width', `${$panel.dataset.width}px`);\n setStyle(this.$parent, 'height', `${$panel.dataset.height}px`);\n this.updateStyle(Number($panel.dataset.width));\n } else {\n const $panel = createElement('div');\n addClass($panel, 'art-setting-panel');\n $panel.dataset.width = width || constructor.SETTING_WIDTH;\n $panel.dataset.height = option.length * constructor.SETTING_ITEM_HEIGHT;\n\n if (option[0] && option[0].$parentItem) {\n append($panel, this.creatHeader(option[0]));\n $panel.dataset.height = Number($panel.dataset.height) + constructor.SETTING_ITEM_HEIGHT;\n }\n\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n if (has(item, 'switch')) {\n append($panel, this.creatItem('switch', item));\n } else if (has(item, 'range')) {\n append($panel, this.creatItem('range', item));\n } else {\n append($panel, this.creatItem('selector', item));\n }\n }\n\n append(this.$parent, $panel);\n this.cache.set(option, $panel);\n inverseClass($panel, 'art-current');\n setStyle(this.$parent, 'width', `${$panel.dataset.width}px`);\n setStyle(this.$parent, 'height', `${$panel.dataset.height}px`);\n this.updateStyle(Number($panel.dataset.width));\n\n if (option[0] && option[0].$parentItem && option[0].$parentItem.mounted) {\n option[0].$parentItem.mounted.call(this.art, $panel, option[0].$parentItem);\n }\n }\n }\n}\n","import { inverseClass, queryAll, capitalize } from '../utils';\n\nexport default function flip(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, FLIP },\n } = art;\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = i18n.get(capitalize(value));\n const $current = queryAll('.art-setting-item', $panel).find((item) => item.dataset.value === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'flip',\n html: i18n.get('Video Flip'),\n tooltip: i18n.get(capitalize(art.flip)),\n icon: icons.flip,\n selector: FLIP.map((item) => {\n return {\n value: item,\n name: `aspect-ratio-${item}`,\n default: item === art.flip,\n html: i18n.get(capitalize(item)),\n };\n }),\n onSelect(item) {\n art.flip = item.value;\n return item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.flip);\n art.on('flip', () => {\n update($panel, item.$tooltip, art.flip);\n });\n },\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO },\n } = art;\n\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = getI18n(value);\n const $current = queryAll('.art-setting-item', $panel).find((item) => item.dataset.value === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'aspect-ratio',\n html: i18n.get('Aspect Ratio'),\n icon: icons.aspectRatio,\n tooltip: getI18n(art.aspectRatio),\n selector: ASPECT_RATIO.map((item) => {\n return {\n value: item,\n name: `aspect-ratio-${item}`,\n default: item === art.aspectRatio,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.aspectRatio = item.value;\n return item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.aspectRatio);\n art.on('aspectRatio', () => {\n update($panel, item.$tooltip, art.aspectRatio);\n });\n },\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE },\n } = art;\n\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1);\n }\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = getI18n(value);\n const $current = queryAll('.art-setting-item', $panel).find((item) => Number(item.dataset.value) === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'playback-rate',\n html: i18n.get('Play Speed'),\n tooltip: getI18n(art.playbackRate),\n icon: icons.playbackRate,\n selector: PLAYBACK_RATE.map((item) => {\n return {\n value: item,\n name: `aspect-ratio-${item}`,\n default: item === art.playbackRate,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.playbackRate = item.value;\n return item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.playbackRate);\n art.on('video:ratechange', () => {\n update($panel, item.$tooltip, art.playbackRate);\n });\n },\n };\n}\n","export default function subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n name: 'subtitle-offset',\n html: i18n.get('Subtitle Offset'),\n icon: icons.subtitle,\n tooltip: '0s',\n range: [0, -5, 5, 0.1],\n onChange(item) {\n art.subtitleOffset = item.range;\n return item.range + 's';\n },\n };\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clear() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { errorHandle, isMobile, has, def } from '../utils';\nimport miniProgressBar from './miniProgressBar';\nimport autoOrientation from './autoOrientation';\nimport autoPlayback from './autoPlayback';\nimport fastForward from './fastForward';\nimport lock from './lock';\n\nexport default class Plugins {\n constructor(art) {\n this.art = art;\n this.id = 0;\n\n const { option } = art;\n\n if (option.miniProgressBar && !option.isLive) {\n this.add(miniProgressBar);\n }\n\n if (option.lock && isMobile) {\n this.add(lock);\n }\n\n if (option.autoPlayback && !option.isLive) {\n this.add(autoPlayback);\n }\n\n if (option.autoOrientation && isMobile) {\n this.add(autoOrientation);\n }\n\n if (option.fastForward && isMobile && !option.isLive) {\n this.add(fastForward);\n }\n\n for (let index = 0; index < option.plugins.length; index++) {\n this.add(option.plugins[index]);\n }\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this.art, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","export default function miniProgressBar(art) {\n art.on('ready', () => {\n art.layers.add({\n name: 'mini-progress-bar',\n mounted($progressBar) {\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${art.played * 100}%`;\n });\n\n art.on('setBar', (type, percentage) => {\n if (type === 'played') {\n $progressBar.style.width = `${percentage * 100}%`;\n }\n });\n },\n });\n });\n\n return {\n name: 'mini-progress-bar',\n };\n}\n","import { setStyle, addClass, removeClass, hasClass } from '../utils';\n\nexport default function autoOrientation(art) {\n const {\n constructor,\n template: { $player, $video },\n } = art;\n\n art.on('fullscreenWeb', (state) => {\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n // There is a conflict with the fullscreen event, and it is changed to asynchronous execution\n setTimeout(() => {\n setStyle($player, 'width', `${viewHeight}px`);\n setStyle($player, 'height', `${viewWidth}px`);\n setStyle($player, 'transform-origin', '0 0');\n setStyle($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`);\n addClass($player, 'art-auto-orientation');\n art.isRotate = true;\n art.emit('resize');\n }, constructor.MOBILE_AUTO_ORIENTATION_TIME);\n }\n } else {\n if (hasClass($player, 'art-auto-orientation')) {\n removeClass($player, 'art-auto-orientation');\n art.isRotate = false;\n art.notice.show = '';\n art.emit('resize');\n }\n }\n });\n\n art.on('fullscreen', async (state) => {\n const lastOrientation = screen.orientation.type;\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n const oppositeOrientation = lastOrientation.startsWith('portrait') ? 'landscape' : 'portrait';\n await screen.orientation.lock(oppositeOrientation);\n addClass($player, 'art-auto-orientation-fullscreen');\n }\n } else {\n if (hasClass($player, 'art-auto-orientation-fullscreen')) {\n await screen.orientation.lock(lastOrientation);\n removeClass($player, 'art-auto-orientation-fullscreen');\n }\n }\n });\n\n return {\n name: 'autoOrientation',\n get state() {\n return hasClass($player, 'art-auto-orientation');\n },\n };\n}\n","import { secondToTime, setStyle, query, append } from '../utils';\n\nexport default function autoPlayback(art) {\n const {\n i18n,\n icons,\n storage,\n constructor,\n proxy,\n template: { $poster },\n } = art;\n\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `,\n });\n\n const $last = query('.art-auto-playback-last', $autoPlayback);\n const $jump = query('.art-auto-playback-jump', $autoPlayback);\n const $close = query('.art-auto-playback-close', $autoPlayback);\n\n art.on('video:timeupdate', () => {\n if (art.playing) {\n const times = storage.get('times') || {};\n const keys = Object.keys(times);\n if (keys.length > constructor.AUTO_PLAYBACK_MAX) {\n delete times[keys[0]];\n }\n times[art.option.id || art.option.url] = art.currentTime;\n storage.set('times', times);\n }\n });\n\n art.on('ready', () => {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.id || art.option.url];\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\n append($close, icons.close);\n setStyle($autoPlayback, 'display', 'flex');\n\n $last.innerText = `${i18n.get('Last Seen')} ${secondToTime(currentTime)}`;\n $jump.innerText = i18n.get('Jump Play');\n\n proxy($close, 'click', () => {\n setStyle($autoPlayback, 'display', 'none');\n });\n\n proxy($jump, 'click', () => {\n art.seek = currentTime;\n art.play();\n setStyle($poster, 'display', 'none');\n setStyle($autoPlayback, 'display', 'none');\n });\n\n art.once('video:timeupdate', () => {\n setTimeout(() => {\n setStyle($autoPlayback, 'display', 'none');\n }, constructor.AUTO_PLAYBACK_TIMEOUT);\n });\n }\n });\n\n return {\n name: 'auto-playback',\n get times() {\n return storage.get('times') || {};\n },\n clear() {\n return storage.del('times');\n },\n delete(id) {\n const times = storage.get('times') || {};\n delete times[id];\n storage.set('times', times);\n return times;\n },\n };\n}\n","import { hasClass, addClass, removeClass } from '../utils';\n\nexport default function fastForward(art) {\n const {\n constructor,\n proxy,\n template: { $player, $video },\n } = art;\n\n let timer = null;\n let isPress = false;\n let lastPlaybackRate = 1;\n\n const onStart = (event) => {\n if (event.touches.length === 1 && art.playing && !art.isLock) {\n timer = setTimeout(() => {\n isPress = true;\n lastPlaybackRate = art.playbackRate;\n art.playbackRate = constructor.FAST_FORWARD_VALUE;\n addClass($player, 'art-fast-forward');\n }, constructor.FAST_FORWARD_TIME);\n }\n };\n\n const onStop = () => {\n clearTimeout(timer);\n if (isPress) {\n isPress = false;\n art.playbackRate = lastPlaybackRate;\n removeClass($player, 'art-fast-forward');\n }\n };\n\n proxy($video, 'touchstart', onStart);\n proxy(document, 'touchmove', onStop);\n proxy(document, 'touchend', onStop);\n\n return {\n name: 'fastForward',\n get state() {\n return hasClass($player, 'art-fast-forward');\n },\n };\n}\n","import { append, setStyle, hasClass, addClass, removeClass } from '../utils';\n\nexport default function lock(art) {\n const {\n layers,\n icons,\n template: { $player },\n } = art;\n\n layers.add({\n name: 'lock',\n mounted($el) {\n const $lock = append($el, icons.lock);\n const $unlock = append($el, icons.unlock);\n setStyle($lock, 'display', 'none');\n\n art.on('lock', (state) => {\n if (state) {\n setStyle($lock, 'display', 'inline-flex');\n setStyle($unlock, 'display', 'none');\n } else {\n setStyle($lock, 'display', 'none');\n setStyle($unlock, 'display', 'inline-flex');\n }\n });\n },\n click() {\n if (hasClass($player, 'art-lock')) {\n removeClass($player, 'art-lock');\n this.isLock = false;\n art.emit('lock', false);\n } else {\n addClass($player, 'art-lock');\n this.isLock = true;\n art.emit('lock', true);\n }\n },\n });\n\n return {\n name: 'lock',\n get state() {\n return hasClass($player, 'art-lock');\n },\n };\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n proxy,\n template: { $video },\n } = art;\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event);\n });\n }\n\n for (const key in option.moreVideoAttr) {\n $video[key] = option.moreVideoAttr[key];\n }\n\n $video.controls = true;\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n } else {\n $video.src = option.url;\n }\n }\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file diff --git a/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.js b/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.js index ac3e898b2..9567d94da 100644 --- a/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.js +++ b/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-ads.js v1.0.6 + * artplayer-plugin-ads.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * 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[t]&&a[t],o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(n,l){if(!o[n]){if(!e[n]){var i="function"==typeof a[t]&&a[t];if(!l&&i)return i(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var p=new Error("Cannot find module '"+n+"'");throw p.code="MODULE_NOT_FOUND",p}c.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},c.cache={};var u=o[n]=new s.Module(n);e[n][0].call(u.exports,c,u,u.exports,this)}return o[n].exports;function c(e){var n=c.resolve(e);return!1===n?{}:s(n)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=o,s.parent=r,s.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(s,"root",{get:function(){return a[t]}}),a[t]=s;for(var p=0;p{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:s,append:p,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 $(){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():$()}),1e3))}function O(){b||clearTimeout(h)}function P(){w||(w=!0,function(){n.template.$ads=p(l,'
'),c=p(n.template.$ads,e.video?``:`
${e.html}
`),v=p(n.template.$ads,'
'),p(v,o),y=p(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}
${j(e.totalDuration,e.i18n.countdown)}
`),f=s(".artplayer-plugin-ads-close",y),g=s(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=p(n.template.$ads,`
${e.i18n.detail}
`);const d=s(".artplayer-plugin-ads-detail",m),x=s(".artplayer-plugin-ads-muted",m),h=s(".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=p(x,t),a=p(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=p(h,a),w=p(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",(()=>{$(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):($(),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:O,play:$}}}if(l.default=r,r.env="production",r.version="1.0.6",r.build="2023-04-17 23:16:16","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=a.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=r)},{"bundle-text:./style.less":"jDrWj","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jDrWj:[function(e,n,l){n.exports=".artplayer-plugin-ads{z-index:150;width:100%;height:100%;color:#fff;background-color:#000;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{width:100%;height:100%;justify-content:center;align-items:center;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{width:100%;height:100%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}"},{}],"9pCYc":[function(e,n,l){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach((function(l){"default"===l||"__esModule"===l||n.hasOwnProperty(l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})})),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["hUYA0"],"hUYA0","parcelRequire4dc0"); \ No newline at end of file +!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[t]&&a[t],o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(n,l){if(!o[n]){if(!e[n]){var i="function"==typeof a[t]&&a[t];if(!l&&i)return i(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var p=new Error("Cannot find module '"+n+"'");throw p.code="MODULE_NOT_FOUND",p}c.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},c.cache={};var u=o[n]=new s.Module(n);e[n][0].call(u.exports,c,u,u.exports,this)}return o[n].exports;function c(e){var n=c.resolve(e);return!1===n?{}:s(n)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=o,s.parent=r,s.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(s,"root",{get:function(){return a[t]}}),a[t]=s;for(var p=0;p{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:s,append:p,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 $(){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():$()}),1e3))}function O(){b||clearTimeout(h)}function P(){w||(w=!0,function(){n.template.$ads=p(l,'
'),c=p(n.template.$ads,e.video?``:`
${e.html}
`),v=p(n.template.$ads,'
'),p(v,o),y=p(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}
${j(e.totalDuration,e.i18n.countdown)}
`),f=s(".artplayer-plugin-ads-close",y),g=s(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=p(n.template.$ads,`
${e.i18n.detail}
`);const d=s(".artplayer-plugin-ads-detail",m),x=s(".artplayer-plugin-ads-muted",m),h=s(".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=p(x,t),a=p(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=p(h,a),w=p(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",(()=>{$(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):($(),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:O,play:$}}}if(l.default=r,r.env="production",r.version="2.0.0",r.build="2023-04-23 13:41:52","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=a.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=r)},{"bundle-text:./style.less":"jDrWj","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],jDrWj:[function(e,n,l){n.exports=".artplayer-plugin-ads{z-index:150;width:100%;height:100%;color:#fff;background-color:#000;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{width:100%;height:100%;justify-content:center;align-items:center;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{width:100%;height:100%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}"},{}],"9pCYc":[function(e,n,l){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach((function(l){"default"===l||"__esModule"===l||n.hasOwnProperty(l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})})),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["hUYA0"],"hUYA0","parcelRequire4dc0"); \ No newline at end of file diff --git a/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.legacy.js b/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.legacy.js index 06ac2d8bf..133b897db 100644 --- a/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.legacy.js +++ b/packages/artplayer-plugin-ads/dist/artplayer-plugin-ads.legacy.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-ads.js v1.0.6 + * artplayer-plugin-ads.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * 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[t]&&a[t],o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(n,l){if(!o[n]){if(!e[n]){var i="function"==typeof a[t]&&a[t];if(!l&&i)return i(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var p=new Error("Cannot find module '"+n+"'");throw p.code="MODULE_NOT_FOUND",p}c.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},c.cache={};var u=o[n]=new s.Module(n);e[n][0].call(u.exports,c,u,u.exports,this)}return o[n].exports;function c(e){var n=c.resolve(e);return!1===n?{}:s(n)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=o,s.parent=r,s.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(s,"root",{get:function(){return a[t]}}),a[t]=s;for(var p=0;p{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:s,append:p,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 P(){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():P()}),1e3))}function $(){b||clearTimeout(h)}function O(){w||(w=!0,function(){n.template.$ads=p(l,'
'),c=p(n.template.$ads,e.video?``:`
${e.html}
`),v=p(n.template.$ads,'
'),p(v,o),y=p(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}
${j(e.totalDuration,e.i18n.countdown)}
`),f=s(".artplayer-plugin-ads-close",y),g=s(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=p(n.template.$ads,`
${e.i18n.detail}
`);const d=s(".artplayer-plugin-ads-detail",m),x=s(".artplayer-plugin-ads-muted",m),h=s(".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=p(x,t),a=p(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=p(h,a),w=p(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",(()=>{P(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):(P(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")),n.proxy(document,"visibilitychange",(()=>{document.hidden?$():P()})))}return n.on("ready",(()=>{n.once("play",O),n.once("video:playing",O)})),{name:"artplayerPluginAds",skip:k,pause:$,play:P}}}if(l.default=r,r.env="production",r.version="1.0.6",r.build="2023-04-17 23:16:16","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=a.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=r)},{"bundle-text:./style.less":"dXzYf","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],dXzYf:[function(e,n,l){n.exports=".artplayer-plugin-ads{z-index:150;width:100%;height:100%;color:#fff;background-color:#000;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{width:100%;height:100%;justify-content:center;align-items:center;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{width:100%;height:100%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}"},{}],"47PTV":[function(e,n,l){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach((function(l){"default"===l||"__esModule"===l||n.hasOwnProperty(l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})})),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["hs8jd"],"hs8jd","parcelRequire4dc0"); \ No newline at end of file +!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[t]&&a[t],o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(n,l){if(!o[n]){if(!e[n]){var i="function"==typeof a[t]&&a[t];if(!l&&i)return i(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var p=new Error("Cannot find module '"+n+"'");throw p.code="MODULE_NOT_FOUND",p}c.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},c.cache={};var u=o[n]=new s.Module(n);e[n][0].call(u.exports,c,u,u.exports,this)}return o[n].exports;function c(e){var n=c.resolve(e);return!1===n?{}:s(n)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=o,s.parent=r,s.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(s,"root",{get:function(){return a[t]}}),a[t]=s;for(var p=0;p{const{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:r,loading:o},constructor:{validator:d,utils:{query:s,append:p,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 P(){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():P()}),1e3))}function $(){b||clearTimeout(h)}function O(){w||(w=!0,function(){n.template.$ads=p(l,'
'),c=p(n.template.$ads,e.video?``:`
${e.html}
`),v=p(n.template.$ads,'
'),p(v,o),y=p(n.template.$ads,`
${e.playDuration<=0?e.i18n.close:j(e.playDuration,e.i18n.canBeClosed)}
${j(e.totalDuration,e.i18n.countdown)}
`),f=s(".artplayer-plugin-ads-close",y),g=s(".artplayer-plugin-ads-countdown",y),e.playDuration>=e.totalDuration&&u(f,"display","none"),n.proxy(f,"click",(()=>{D&&k()})),m=p(n.template.$ads,`
${e.i18n.detail}
`);const d=s(".artplayer-plugin-ads-detail",m),x=s(".artplayer-plugin-ads-muted",m),h=s(".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=p(x,t),a=p(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=p(h,a),w=p(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",(()=>{P(),c.play(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")}))):(P(),u(y,"display","flex"),u(m,"display","flex"),u(v,"display","none")),n.proxy(document,"visibilitychange",(()=>{document.hidden?$():P()})))}return n.on("ready",(()=>{n.once("play",O),n.once("video:playing",O)})),{name:"artplayerPluginAds",skip:k,pause:$,play:P}}}if(l.default=r,r.env="production",r.version="2.0.0",r.build="2023-04-23 13:41:53","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-ads")){const e=document.createElement("style");e.id="artplayer-plugin-ads",e.textContent=a.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAds=r)},{"bundle-text:./style.less":"dXzYf","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],dXzYf:[function(e,n,l){n.exports=".artplayer-plugin-ads{z-index:150;width:100%;height:100%;color:#fff;background-color:#000;font-size:13px;line-height:1;position:absolute;inset:0;overflow:hidden}.artplayer-plugin-ads .artplayer-plugin-ads-html{width:100%;height:100%;justify-content:center;align-items:center;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-video{width:100%;height:100%}.artplayer-plugin-ads .artplayer-plugin-ads-timer{display:none;position:absolute;top:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-timer>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control{display:none;position:absolute;bottom:10px;right:10px}.artplayer-plugin-ads .artplayer-plugin-ads-control>div{cursor:pointer;background-color:#00000080;border-radius:15px;align-items:center;margin-left:5px;padding:5px 10px;display:flex}.artplayer-plugin-ads .artplayer-plugin-ads-control .art-icon svg{width:20px;height:20px}.artplayer-plugin-ads .artplayer-plugin-ads-loading{width:100%;height:100%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}"},{}],"47PTV":[function(e,n,l){l.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},l.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},l.exportAll=function(e,n){return Object.keys(e).forEach((function(l){"default"===l||"__esModule"===l||n.hasOwnProperty(l)||Object.defineProperty(n,l,{enumerable:!0,get:function(){return e[l]}})})),n},l.export=function(e,n,l){Object.defineProperty(e,n,{enumerable:!0,get:l})}},{}]},["hs8jd"],"hs8jd","parcelRequire4dc0"); \ No newline at end of file diff --git a/packages/artplayer-plugin-control/dist/artplayer-plugin-control.js b/packages/artplayer-plugin-control/dist/artplayer-plugin-control.js index 36952275b..6bbea22fa 100644 --- a/packages/artplayer-plugin-control/dist/artplayer-plugin-control.js +++ b/packages/artplayer-plugin-control/dist/artplayer-plugin-control.js @@ -4,4 +4,4 @@ * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(t,r,e,o,n){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof a[o]&&a[o],i=l.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(r,e){if(!i[r]){if(!t[r]){var n="function"==typeof a[o]&&a[o];if(!e&&n)return n(r,!0);if(l)return l(r,!0);if(p&&"string"==typeof r)return p(r);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(e){var o=t[r][1][e];return null!=o?o:e},d.cache={};var c=i[r]=new s.Module(r);t[r][0].call(c.exports,d,c,c.exports,this)}return i[r].exports;function d(t){var r=d.resolve(t);return!1===r?{}:s(r)}}s.isParcelRequire=!0,s.Module=function(t){this.id=t,this.bundle=s,this.exports={}},s.modules=t,s.cache=i,s.parent=l,s.register=function(r,e){t[r]=[function(t,r){r.exports=e},{}]},Object.defineProperty(s,"root",{get:function(){return a[o]}}),a[o]=s;for(var u=0;u{!function(t){const{version:r,utils:{errorHandle:e}}=t.constructor,o=r.split(".").map(Number);e(o[0]+o[1]/100>=5,`Artplayer.js@${r} is not compatible the artplayerPluginControl@${l.version}. Please update it to version Artplayer.js@4.6.x`)}(t);const{template:{$bottom:r,$player:e},constructor:{utils:{append:o,secondToTime:n,addClass:a,removeClass:i,hasClass:p,isMobile:s}}}=t;if(s)return;const u="artplayer-plugin-control";a(e,u);const c=o(r,'
'),d=o(r,'
'),f=["video:loadedmetadata","video:timeupdate","video:progress"];for(let r=0;r{c.innerText=n(t.currentTime),d.innerText=n(t.duration)}));return{name:"artplayerPluginControl",get enable(){return p(e,u)},set enable(t){t?a(e,u):i(e,u)}}}}if(e.default=l,l.env="production",l.version="2.0.0",l.build="2023-04-17 23:16:15","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-control")){const t=document.createElement("style");t.id="artplayer-plugin-control",t.textContent=a.default,document.head.appendChild(t)}"undefined"!=typeof window&&(window.artplayerPluginControl=l)},{"bundle-text:./style.less":"klrMD","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],klrMD:[function(t,r,e){r.exports=".artplayer-plugin-control .art-bottom{height:68px;width:400px;user-select:none;-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);pointer-events:auto;background-color:#000000b3;background-image:none;border-radius:10px;flex-direction:column;justify-content:space-between;align-items:center;padding:13px 0 0;font-size:13px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 15px -3px #0003,0 4px 6px -4px #0003;bottom:10px!important}.artplayer-plugin-control .art-bottom .art-progress{width:65%;justify-content:space-between;align-items:center;gap:10px;display:flex}.artplayer-plugin-control .art-bottom .art-progress .art-control-thumbnails{bottom:25px}.artplayer-plugin-control .art-bottom .art-progress .art-control-progress{width:100%}.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-control-progress-inner,.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-progress-loaded,.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-progress-played{border-radius:5px}.artplayer-plugin-control .art-bottom .art-progress .art-progress-tip{top:-40px!important}.artplayer-plugin-control .art-bottom .art-controls{width:100%;flex:1}.artplayer-plugin-control .art-bottom .art-controls .art-control-time,.artplayer-plugin-control .art-bottom .art-controls .art-controls-center{display:none}.artplayer-plugin-control .art-bottom .art-selector-list{background-color:#000c!important}.artplayer-plugin-control .art-bottom .apa-control-current,.artplayer-plugin-control .art-bottom .apa-control-duration{width:17.5%;justify-content:center;line-height:1;display:flex;position:absolute;top:10px}.artplayer-plugin-control .art-bottom .apa-control-current{left:0}.artplayer-plugin-control .art-bottom .apa-control-duration{right:0}.artplayer-plugin-control .art-settings{bottom:85px}.artplayer-plugin-control .art-layer-auto-playback{bottom:90px}.artplayer-plugin-control.art-control-show .art-subtitle{bottom:80px}.apa-control-current,.apa-control-duration{display:none}"},{}],"9pCYc":[function(t,r,e){e.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},e.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},e.exportAll=function(t,r){return Object.keys(t).forEach((function(e){"default"===e||"__esModule"===e||r.hasOwnProperty(e)||Object.defineProperty(r,e,{enumerable:!0,get:function(){return t[e]}})})),r},e.export=function(t,r,e){Object.defineProperty(t,r,{enumerable:!0,get:e})}},{}]},["16V0T"],"16V0T","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,r,o,n){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof l[o]&&l[o],i=a.cache||{},u="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!i[t]){if(!e[t]){var n="function"==typeof l[o]&&l[o];if(!r&&n)return n(t,!0);if(a)return a(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}s.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},s.cache={};var d=i[t]=new p.Module(t);e[t][0].call(d.exports,s,d,d.exports,this)}return i[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=i,p.parent=a,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return l[o]}}),l[o]=p;for(var c=0;c{!function(e){const{version:t,utils:{errorHandle:r}}=e.constructor,o=t.split(".").map(Number);r(o[0]+o[1]/100>=5,`Artplayer.js@${t} is not compatible the artplayerPluginControl@${a.version}. Please update it to version Artplayer.js@4.6.x`)}(e);const{template:{$bottom:t,$player:r},constructor:{utils:{append:o,secondToTime:n,addClass:l,removeClass:i,hasClass:u,isMobile:p}}}=e;if(p)return;const c="artplayer-plugin-control";l(r,c);const d=o(t,'
'),s=o(t,'
'),f=["video:loadedmetadata","video:timeupdate","video:progress"];for(let t=0;t{d.innerText=n(e.currentTime),s.innerText=n(e.duration)}));return{name:"artplayerPluginControl",get enable(){return u(r,c)},set enable(e){e?l(r,c):i(r,c)}}}}if(r.default=a,a.env="production",a.version="2.0.0",a.build="2023-04-23 13:41:52","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-control")){const e=document.createElement("style");e.id="artplayer-plugin-control",e.textContent=l.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginControl=a)},{"bundle-text:./style.less":"klrMD","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],klrMD:[function(e,t,r){t.exports=".artplayer-plugin-control .apa-control-current,.artplayer-plugin-control .apa-control-duration{display:flex}.artplayer-plugin-control .art-control-time,.artplayer-plugin-control .art-controls-center{display:none}.artplayer-plugin-control .art-settings{bottom:85px}.artplayer-plugin-control .art-bottom{height:70px;width:400px;-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3;background-image:none;border-radius:10px;align-items:center;margin-left:-200px;inset:auto auto 10px 50%;overflow:visible;box-shadow:0 10px 15px -3px #0003,0 4px 6px -4px #0003}.artplayer-plugin-control .art-bottom .art-progress{width:70%}.artplayer-plugin-control .art-bottom .art-controls{width:100%}.artplayer-plugin-control .art-bottom .apa-control-current,.artplayer-plugin-control .art-bottom .apa-control-duration{width:15%;justify-content:center;font-size:12px;line-height:1;display:flex;position:absolute;top:10px}.artplayer-plugin-control .art-bottom .apa-control-current{left:0}.artplayer-plugin-control .art-bottom .apa-control-duration{right:0}.apa-control-current,.apa-control-duration{display:none}"},{}],"9pCYc":[function(e,t,r){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach((function(r){"default"===r||"__esModule"===r||t.hasOwnProperty(r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})})),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["16V0T"],"16V0T","parcelRequire4dc0"); \ No newline at end of file diff --git a/packages/artplayer-plugin-control/dist/artplayer-plugin-control.legacy.js b/packages/artplayer-plugin-control/dist/artplayer-plugin-control.legacy.js index 1c6a5ae9b..e71c3c677 100644 --- a/packages/artplayer-plugin-control/dist/artplayer-plugin-control.legacy.js +++ b/packages/artplayer-plugin-control/dist/artplayer-plugin-control.legacy.js @@ -4,4 +4,4 @@ * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(t,r,e,o,n){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof a[o]&&a[o],i=l.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(r,e){if(!i[r]){if(!t[r]){var n="function"==typeof a[o]&&a[o];if(!e&&n)return n(r,!0);if(l)return l(r,!0);if(p&&"string"==typeof r)return p(r);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(e){var o=t[r][1][e];return null!=o?o:e},d.cache={};var c=i[r]=new s.Module(r);t[r][0].call(c.exports,d,c,c.exports,this)}return i[r].exports;function d(t){var r=d.resolve(t);return!1===r?{}:s(r)}}s.isParcelRequire=!0,s.Module=function(t){this.id=t,this.bundle=s,this.exports={}},s.modules=t,s.cache=i,s.parent=l,s.register=function(r,e){t[r]=[function(t,r){r.exports=e},{}]},Object.defineProperty(s,"root",{get:function(){return a[o]}}),a[o]=s;for(var u=0;u{!function(t){const{version:r,utils:{errorHandle:e}}=t.constructor,o=r.split(".").map(Number);e(o[0]+o[1]/100>=5,`Artplayer.js@${r} is not compatible the artplayerPluginControl@${l.version}. Please update it to version Artplayer.js@4.6.x`)}(t);const{template:{$bottom:r,$player:e},constructor:{utils:{append:o,secondToTime:n,addClass:a,removeClass:i,hasClass:p,isMobile:s}}}=t;if(s)return;const u="artplayer-plugin-control";a(e,u);const c=o(r,'
'),d=o(r,'
'),f=["video:loadedmetadata","video:timeupdate","video:progress"];for(let r=0;r{c.innerText=n(t.currentTime),d.innerText=n(t.duration)}));return{name:"artplayerPluginControl",get enable(){return p(e,u)},set enable(t){t?a(e,u):i(e,u)}}}}if(e.default=l,l.env="production",l.version="2.0.0",l.build="2023-04-17 23:16:16","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-control")){const t=document.createElement("style");t.id="artplayer-plugin-control",t.textContent=a.default,document.head.appendChild(t)}"undefined"!=typeof window&&(window.artplayerPluginControl=l)},{"bundle-text:./style.less":"8jCnX","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8jCnX":[function(t,r,e){r.exports=".artplayer-plugin-control .art-bottom{height:68px;width:400px;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);pointer-events:auto;background-color:#000000b3;background-image:none;border-radius:10px;flex-direction:column;justify-content:space-between;align-items:center;padding:13px 0 0;font-size:13px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 15px -3px #0003,0 4px 6px -4px #0003;bottom:10px!important}.artplayer-plugin-control .art-bottom .art-progress{width:65%;justify-content:space-between;align-items:center;gap:10px;display:flex}.artplayer-plugin-control .art-bottom .art-progress .art-control-thumbnails{bottom:25px}.artplayer-plugin-control .art-bottom .art-progress .art-control-progress{width:100%}.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-control-progress-inner,.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-progress-loaded,.artplayer-plugin-control .art-bottom .art-progress .art-control-progress .art-progress-played{border-radius:5px}.artplayer-plugin-control .art-bottom .art-progress .art-progress-tip{top:-40px!important}.artplayer-plugin-control .art-bottom .art-controls{width:100%;flex:1}.artplayer-plugin-control .art-bottom .art-controls .art-control-time,.artplayer-plugin-control .art-bottom .art-controls .art-controls-center{display:none}.artplayer-plugin-control .art-bottom .art-selector-list{background-color:#000c!important}.artplayer-plugin-control .art-bottom .apa-control-current,.artplayer-plugin-control .art-bottom .apa-control-duration{width:17.5%;justify-content:center;line-height:1;display:flex;position:absolute;top:10px}.artplayer-plugin-control .art-bottom .apa-control-current{left:0}.artplayer-plugin-control .art-bottom .apa-control-duration{right:0}.artplayer-plugin-control .art-settings{bottom:85px}.artplayer-plugin-control .art-layer-auto-playback{bottom:90px}.artplayer-plugin-control.art-control-show .art-subtitle{bottom:80px}.apa-control-current,.apa-control-duration{display:none}"},{}],"47PTV":[function(t,r,e){e.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},e.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},e.exportAll=function(t,r){return Object.keys(t).forEach((function(e){"default"===e||"__esModule"===e||r.hasOwnProperty(e)||Object.defineProperty(r,e,{enumerable:!0,get:function(){return t[e]}})})),r},e.export=function(t,r,e){Object.defineProperty(t,r,{enumerable:!0,get:e})}},{}]},["d3G6W"],"d3G6W","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,r,o,n){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof l[o]&&l[o],i=a.cache||{},u="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!i[t]){if(!e[t]){var n="function"==typeof l[o]&&l[o];if(!r&&n)return n(t,!0);if(a)return a(t,!0);if(u&&"string"==typeof t)return u(t);var d=new Error("Cannot find module '"+t+"'");throw d.code="MODULE_NOT_FOUND",d}s.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},s.cache={};var c=i[t]=new p.Module(t);e[t][0].call(c.exports,s,c,c.exports,this)}return i[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=i,p.parent=a,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return l[o]}}),l[o]=p;for(var d=0;d{!function(e){const{version:t,utils:{errorHandle:r}}=e.constructor,o=t.split(".").map(Number);r(o[0]+o[1]/100>=5,`Artplayer.js@${t} is not compatible the artplayerPluginControl@${a.version}. Please update it to version Artplayer.js@4.6.x`)}(e);const{template:{$bottom:t,$player:r},constructor:{utils:{append:o,secondToTime:n,addClass:l,removeClass:i,hasClass:u,isMobile:p}}}=e;if(p)return;const d="artplayer-plugin-control";l(r,d);const c=o(t,'
'),s=o(t,'
'),f=["video:loadedmetadata","video:timeupdate","video:progress"];for(let t=0;t{c.innerText=n(e.currentTime),s.innerText=n(e.duration)}));return{name:"artplayerPluginControl",get enable(){return u(r,d)},set enable(e){e?l(r,d):i(r,d)}}}}if(r.default=a,a.env="production",a.version="2.0.0",a.build="2023-04-23 13:41:52","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-control")){const e=document.createElement("style");e.id="artplayer-plugin-control",e.textContent=l.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginControl=a)},{"bundle-text:./style.less":"8jCnX","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"8jCnX":[function(e,t,r){t.exports=".artplayer-plugin-control .apa-control-current,.artplayer-plugin-control .apa-control-duration{display:flex}.artplayer-plugin-control .art-control-time,.artplayer-plugin-control .art-controls-center{display:none}.artplayer-plugin-control .art-settings{bottom:85px}.artplayer-plugin-control .art-bottom{height:70px;width:400px;-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3;background-image:none;border-radius:10px;align-items:center;margin-left:-200px;inset:auto auto 10px 50%;overflow:visible;box-shadow:0 10px 15px -3px #0003,0 4px 6px -4px #0003}.artplayer-plugin-control .art-bottom .art-progress{width:70%}.artplayer-plugin-control .art-bottom .art-controls{width:100%}.artplayer-plugin-control .art-bottom .apa-control-current,.artplayer-plugin-control .art-bottom .apa-control-duration{width:15%;justify-content:center;font-size:12px;line-height:1;display:flex;position:absolute;top:10px}.artplayer-plugin-control .art-bottom .apa-control-current{left:0}.artplayer-plugin-control .art-bottom .apa-control-duration{right:0}.apa-control-current,.apa-control-duration{display:none}"},{}],"47PTV":[function(e,t,r){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach((function(r){"default"===r||"__esModule"===r||t.hasOwnProperty(r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})})),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["d3G6W"],"d3G6W","parcelRequire4dc0"); \ No newline at end of file diff --git a/packages/artplayer-plugin-control/src/style.less b/packages/artplayer-plugin-control/src/style.less index 94610b638..ae375b88b 100644 --- a/packages/artplayer-plugin-control/src/style.less +++ b/packages/artplayer-plugin-control/src/style.less @@ -1,64 +1,40 @@ .artplayer-plugin-control { - .art-bottom { + .apa-control-current, + .apa-control-duration { display: flex; - align-items: center; - flex-direction: column; - justify-content: space-between; - position: absolute; - height: 68px; + } + + .art-control-time, + .art-controls-center { + display: none; + } + + .art-settings { + bottom: 85px; + } + + .art-bottom { + height: 70px; width: 400px; - user-select: none; + margin-left: -200px; + inset: auto; + overflow: visible; + align-items: center; border-radius: 10px; left: 50%; - transform: translateX(-50%); - bottom: 10px !important; - font-size: 13px; + bottom: 10px; -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); background-color: rgba(0, 0, 0, 0.7); box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.2), 0 4px 6px -4px rgb(0 0 0 / 0.2); background-image: none; - pointer-events: auto; - padding: 13px 0 0; .art-progress { - width: 65%; - display: flex; - align-items: center; - justify-content: space-between; - gap: 10px; - - .art-control-thumbnails { - bottom: 25px; - } - - .art-control-progress { - width: 100%; - - .art-control-progress-inner, - .art-progress-loaded, - .art-progress-played { - border-radius: 5px; - } - } - - .art-progress-tip { - top: -40px !important; - } + width: 70%; } .art-controls { width: 100%; - flex: 1; - - .art-control-time, - .art-controls-center { - display: none; - } - } - - .art-selector-list { - background-color: rgba(0, 0, 0, 0.8) !important; } .apa-control-current, @@ -66,7 +42,8 @@ display: flex; justify-content: center; line-height: 1; - width: 17.5%; + width: 15%; + font-size: 12px; position: absolute; top: 10px; } @@ -79,20 +56,6 @@ right: 0; } } - - .art-settings { - bottom: 85px; - } - - .art-layer-auto-playback { - bottom: 90px; - } - - &.art-control-show { - .art-subtitle { - bottom: 80px; - } - } } .apa-control-current, diff --git a/packages/artplayer-plugin-control/types/artplayer-plugin-aliyundrive.d.ts b/packages/artplayer-plugin-control/types/artplayer-plugin-control.d.ts similarity index 100% rename from packages/artplayer-plugin-control/types/artplayer-plugin-aliyundrive.d.ts rename to packages/artplayer-plugin-control/types/artplayer-plugin-control.d.ts diff --git a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js index c992e8d47..8bb7ed7b0 100644 --- a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js +++ b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js @@ -4,4 +4,4 @@ * (c) 2017-2023 Harvey Zack * 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[i]&&a[i],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 r="function"==typeof a[i]&&a[i];if(!n&&r)return r(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var d=new Error("Cannot find module '"+e+"'");throw d.code="MODULE_NOT_FOUND",d}p.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},p.cache={};var m=s[e]=new u.Module(e);t[e][0].call(m.exports,p,m,m.exports,this)}return s[e].exports;function p(t){var e=p.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[i]}}),a[i]=u;for(var d=0;d{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=5,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 5 版本以上`)}(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="5.0.0",l.build="2023-04-17 23:16:14","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"4ns48","./setting":"lO8OT","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4ns48":[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("85d40535eae5f839"))}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 JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.1>=e.time&&e.time>=t-.1))}getEmits(){const t=[],{clientWidth:e}=this.$player,n=this.getLeft(this.$player);return this.filter("emit",(i=>{const r=i.$ref.offsetTop,a=this.getLeft(i.$ref)-n,o=i.$ref.clientHeight,s=i.$ref.clientWidth,l=a+s,u=e-l,d=l/i.$restTime,m={};m.top=r,m.left=a,m.height=o,m.width=s,m.right=u,m.speed=d,m.distance=l,m.time=i.$restTime,m.mode=i.mode,t.push(m)})),t}getFontSize(t){const{clamp:e}=this.utils,{clientHeight:n}=this.$player;if("number"==typeof t)return e(t,12,n);if("string"==typeof t&&t.endsWith("%")){return e(n*(parseFloat(t)/100),12,n)}return s.option.fontSize}postMessage(t={}){return new Promise((e=>{if(this.option.useWorker&&this.worker&&this.worker.postMessage)t.id=Date.now(),this.worker.postMessage(t),this.worker.onmessage=n=>{const{data:i}=n;i.id===t.id&&e(i)};else{const n=(0,o.default)(t);e({top:n})}}))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await(0,r.bilibiliDanmuParseFromUrl)(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},s.option,this.option,t),this.validator(this.option,s.scheme),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.lockTime=e(Math.floor(this.option.lockTime),0,60),this.option.maxLength=e(this.option.maxLength,0,500),this.option.minWidth=e(this.option.minWidth,0,500),this.option.maxWidth=e(this.option.maxWidth,0,1/0),t.fontSize&&(this.option.fontSize=this.getFontSize(this.option.fontSize),this.reset()),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const n=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const n=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}reset(){return this.queue.forEach((t=>this.makeWait(t))),this}update(){return this.timer=window.requestAnimationFrame((async()=>{if(this.art.playing&&!this.isHide){this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)}));const t=this.getReady(),{clientWidth:e,clientHeight:n}=this.$player;for(let i=0;ithis.makeWait(t))),this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}emit(t){return this.validator(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()&&this.option.filter(t)?(t.time?t.time=this.utils.clamp(t.time,0,1/0):t.time=this.art.currentTime+.5,void 0===t.mode&&(t.mode=this.option.mode),void 0===t.color&&(t.color=this.option.color),this.queue.push({...t,$state:"wait",$ref:null,$restTime:0,$lastStartTime:0}),this):this}destroy(){this.stop(),this.worker&&this.worker.terminate&&this.worker.terminate(),this.art.off("video:play",this.start),this.art.off("video:playing",this.start),this.art.off("video:pause",this.stop),this.art.off("video:waiting",this.stop),this.art.off("fullscreen",this.reset),this.art.off("fullscreenWeb",this.reset),this.art.off("destroy",this.destroy),this.art.emit("artplayerPluginDanmuku:destroy")}}n.default=s},{"./bilibili":"f83sx","./getDanmuTop":"jPSuD","85d40535eae5f839":"fXq73","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],f83sx:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");function r(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function a(t){if("string"!=typeof t)return[];const e=t.matchAll(/(?.+?)<\/d>/gs);return Array.from(e).map((t=>{const e=t.groups.p.split(",");if(e.length>=8){return{text:t.groups.text.trim().replaceAll(""",'"').replaceAll("'","'").replaceAll("<","<").replaceAll(">",">").replaceAll("&","&"),time:Number(e[0]),mode:r(Number(e[1])),fontSize:Number(e[2]),color:`#${Number(e[3]).toString(16)}`,timestamp:Number(e[4]),pool:Number(e[5]),userID:e[6],rowID:Number(e[7])}}return null})).filter(Boolean)}function o(t){return fetch(t).then((t=>t.text())).then((t=>a(t)))}i.defineInteropFlag(n),i.export(n,"getMode",(()=>r)),i.export(n,"bilibiliDanmuParseFromXml",(()=>a)),i.export(n,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(t,e,n){n.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},n.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.exportAll=function(t,e){return Object.keys(t).forEach((function(n){"default"===n||"__esModule"===n||e.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})),e},n.export=function(t,e,n){Object.defineProperty(t,e,{enumerable:!0,get:n})}},{}],jPSuD:[function(t,e,n){t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=function({target:t,emits:e,clientWidth:n,clientHeight:i,marginBottom:r,marginTop:a,antiOverlap:o}){const s=e.filter((e=>e.mode===t.mode&&e.top<=i-r)).sort(((t,e)=>t.top-e.top));if(0===s.length)return a;s.unshift({top:0,left:0,right:0,height:a,width:n,speed:0,distance:n}),s.push({top:i-r,left:0,right:0,height:r,width:n,speed:0,distance:n});for(let e=1;e=t.height)return r}const l=[];for(let t=1;t{const n=Math.min(...e.map((t=>t.right))),i=Math.min(...t.map((t=>t.right)));return n*e.length-i*t.length}));break;case 1:l.sort(((t,e)=>{const n=Math.max(...e.map((t=>t.width)));return Math.max(...t.map((t=>t.width)))*t.length-n*e.length}))}return l[0][0].top}switch(t.mode){case 0:{const e=l.find((e=>e.every((e=>{if(ne.time}))));return e&&e[0]?e[0].top:void 0}case 1:return}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],fXq73:[function(t,e,n){e.exports="data:application/javascript,function%20getDanmuTop%28%7Btarget%3At%2Cemits%3Ae%2CclientWidth%3An%2CclientHeight%3Ai%2CmarginBottom%3As%2CmarginTop%3Ah%2CantiOverlap%3Ao%7D%29%7Bconst%20r%3De.filter%28%28e%3D%3Ee.mode%3D%3D%3Dt.mode%26%26e.top%3C%3Di-s%29%29.sort%28%28%28t%2Ce%29%3D%3Et.top-e.top%29%29%3Bif%280%3D%3D%3Dr.length%29return%20h%3Br.unshift%28%7Btop%3A0%2Cleft%3A0%2Cright%3A0%2Cheight%3Ah%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%2Cr.push%28%7Btop%3Ai-s%2Cleft%3A0%2Cright%3A0%2Cheight%3As%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%3Bfor%28let%20e%3D1%3Be%3Cr.length%3Be%2B%3D1%29%7Bconst%20n%3Dr%5Be%5D%2Ci%3Dr%5Be-1%5D%2Cs%3Di.top%2Bi.height%3Bif%28n.top-s%3E%3Dt.height%29return%20s%7Dconst%20p%3D%5B%5D%3Bfor%28let%20t%3D1%3Bt%3Cr.length-1%3Bt%2B%3D1%29%7Bconst%20e%3Dr%5Bt%5D%3Bif%28p.length%29%7Bconst%20t%3Dp%5Bp.length-1%5D%3Bt%5B0%5D.top%3D%3D%3De.top%3Ft.push%28e%29%3Ap.push%28%5Be%5D%29%7Delse%20p.push%28%5Be%5D%29%7Dif%28%21o%29%7Bswitch%28t.mode%29%7Bcase%200%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.min%28...e.map%28%28t%3D%3Et.right%29%29%29%2Ci%3DMath.min%28...t.map%28%28t%3D%3Et.right%29%29%29%3Breturn%20n%2ae.length-i%2at.length%7D%29%29%3Bbreak%3Bcase%201%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.max%28...e.map%28%28t%3D%3Et.width%29%29%29%3Breturn%20Math.max%28...t.map%28%28t%3D%3Et.width%29%29%29%2at.length-n%2ae.length%7D%29%29%7Dreturn%20p%5B0%5D%5B0%5D.top%7Dswitch%28t.mode%29%7Bcase%200%3A%7Bconst%20e%3Dp.find%28%28e%3D%3Ee.every%28%28e%3D%3E%7Bif%28n%3Ce.distance%29return%211%3Bif%28t.speed%3Ce.speed%29return%210%3Breturn%20e.right%2F%28t.speed-e.speed%29%3Ee.time%7D%29%29%29%29%3Breturn%20e%26%26e%5B0%5D%3Fe%5B0%5D.top%3Avoid%200%7Dcase%201%3Areturn%7D%7Donmessage%3Dt%3D%3E%7Bconst%7Bdata%3Ae%7D%3Dt%2Cn%3DgetDanmuTop%28e%29%3Bself.postMessage%28%7Btop%3An%2Cid%3Ae.id%7D%29%7D%3B"},{}],lO8OT:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("bundle-text:./style.less"),a=i.interopDefault(r),o=t("bundle-text:./img/danmu-on.svg"),s=i.interopDefault(o),l=t("bundle-text:./img/danmu-off.svg"),u=i.interopDefault(l),d=t("bundle-text:./img/danmu-config.svg"),m=i.interopDefault(d),p=t("bundle-text:./img/danmu-style.svg"),c=i.interopDefault(p);if(n.default=function(t,e){const{option:n}=e,{template:{$controlsCenter:i,$player:r},constructor:{utils:{removeClass:a,addClass:o,append:l,setStyle:d,tooltip:p,query:h,inverseClass:f}}}=t;function g(t,e){const n=document.createElement("i");return l(n,t),o(n,"art-icon"),o(n,`art-icon-${e}`),n}d(i,"display","flex");const k=g(s.default,"danmu-on"),y=g(u.default,"danmu-off"),b=g(m.default,"danmu-config"),x=g(c.default,"danmu-style");!function(){const s=["#FE0302","#FF7204","#FFAA02","#FFD302","#FFFF00","#A0EE00","#00CD00","#019899","#4266BE","#89D5FF","#CC0273","#222222","#9B9B9B","#FFFFFF"].map((t=>`
`)),u=l(i,`
模式
滚动
静止
颜色
${s.join("")}
发送
`),m=h(".art-danmuku-style",u),p=h(".art-danmuku-input",u),c=h(".art-danmuku-send",u),g=h(".art-danmuku-style-panel-inner",u),k=h(".art-danmuku-style-panel-modes",u),y=h(".art-danmuku-style-panel-colors",u),b=n.mount||l(r,'
');t.option.backdrop&&o(g,"art-backdrop-filter"),n.theme&&o(u,`art-danmuku-theme-${n.theme}`);let v=null,w=n.mode,D=n.color;function $(t){t<=0?(v=null,c.innerText="发送",a(c,"art-disabled")):(c.innerText=t,v=setTimeout((()=>$(t-1)),1e3))}function B(){const i={mode:w,color:D,border:!0,text:p.value.trim()};null===v&&n.beforeEmit(i)&&(p.value="",e.emit(i),o(c,"art-disabled"),$(n.lockTime),t.emit("artplayerPluginDanmuku:emit",i))}function C(){i.clientWidth{"Enter"===t.key&&(t.preventDefault(),B())})),t.proxy(k,"click",(t=>{const{dataset:e}=t.target;e.mode&&(w=Number(e.mode),f(t.target,"art-current"))})),t.proxy(y,"click",(t=>{const{dataset:e}=t.target;e.color&&(D=e.color,f(t.target,"art-current"))})),C(),t.on("resize",(()=>{t.isInput||C()})),t.on("destroy",(()=>{n.mount&&u.parentElement===n.mount&&n.mount.removeChild(u)}))}(),t.controls.add({position:"right",name:"danmuku",click:function(){e.isHide?(e.show(),t.notice.show="弹幕显示",d(k,"display",null),d(y,"display","none")):(e.hide(),t.notice.show="弹幕隐藏",d(k,"display","none"),d(y,"display",null))},mounted(t){l(t,k),l(t,y),p(t,"弹幕开关"),d(y,"display","none")}}),t.setting.add({name:"danmuku",html:"弹幕设置",tooltip:"更多",icon:b,selector:[{width:200,html:"播放速度",icon:"",tooltip:"适中",selector:[{html:"极慢",time:10},{html:"较慢",time:7.5},{default:!0,html:"适中",time:5},{html:"较快",time:2.5},{html:"极快",time:1}],onSelect:function(t){return e.config({speed:t.time}),t.html}},{width:200,html:"字体大小",icon:"",tooltip:"适中",selector:[{html:"极小",fontSize:"4%"},{html:"较小",fontSize:"5%"},{default:!0,html:"适中",fontSize:"6%"},{html:"较大",fontSize:"7%"},{html:"极大",fontSize:"8%"}],onSelect:function(t){return e.config({fontSize:t.fontSize}),t.html}},{width:200,html:"不透明度",icon:"",tooltip:"100%",selector:[{default:!0,opacity:1,html:"100%"},{opacity:.75,html:"75%"},{opacity:.5,html:"50%"},{opacity:.25,html:"25%"},{opacity:0,html:"0%"}],onSelect:function(t){return e.config({opacity:t.opacity}),t.html}},{width:200,html:"显示范围",icon:"",tooltip:"3/4",selector:[{html:"1/4",margin:[10,"75%"]},{html:"半屏",margin:[10,"50%"]},{default:!0,html:"3/4",margin:[10,"25%"]},{html:"满屏",margin:[10,10]}],onSelect:function(t){return e.config({margin:t.margin}),t.html}},{html:"弹幕防重叠",icon:"",tooltip:n.antiOverlap?"开启":"关闭",switch:n.antiOverlap,onSwitch:t=>(e.config({antiOverlap:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)},{html:"同步视频速度",icon:"",tooltip:n.synchronousPlayback?"开启":"关闭",switch:n.synchronousPlayback,onSwitch:t=>(e.config({synchronousPlayback:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)}]})},"undefined"!=typeof document&&!document.getElementById("artplayer-plugin-danmuku")){const t=document.createElement("style");t.id="artplayer-plugin-danmuku",t.textContent=a.default,document.head.appendChild(t)}},{"bundle-text:./style.less":"hViDo","bundle-text:./img/danmu-on.svg":"4KfW9","bundle-text:./img/danmu-off.svg":"9UR3U","bundle-text:./img/danmu-config.svg":"4MPCW","bundle-text:./img/danmu-style.svg":"7lV5Q","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],hViDo:[function(t,e,n){e.exports='.art-danmuku-emitter{height:32px;width:100%;max-width:100%;color:#fff;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#ffffff4d;border-radius:3px;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:12px;line-height:1;display:flex;position:relative}.art-danmuku-emitter *,.art-danmuku-emitter :before,.art-danmuku-emitter :after{box-sizing:border-box;margin:0;padding:0}.art-danmuku-emitter .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-danmuku-emitter .art-icon svg{fill:#fff}@supports ((-webkit-backdrop-filter:initial)) or (backdrop-filter:initial){.art-danmuku-emitter .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-danmuku-emitter .art-danmuku-left{border-radius:3px 0 0 3px;flex:1;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style{width:32px;justify-content:center;align-items:center;display:flex;position:relative}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{z-index:999;width:200px;padding-bottom:10px;display:none;position:absolute;bottom:30px;left:-85px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner{background-color:#000000e6;border-radius:3px;flex-direction:column;padding:10px 10px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-title{margin-bottom:10px;font-size:13px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes{justify-content:space-between;margin-bottom:15px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode{width:47%;cursor:pointer;color:#fff;border:1px solid #fff;justify-content:center;padding:5px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode.art-current{background-color:#00a1d6;border:1px solid #00a1d6}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors{flex-wrap:wrap;justify-content:space-between;gap:5px;margin-bottom:10px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color{cursor:pointer;width:20px;height:20px;border:1px solid #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current{position:relative;box-shadow:0 0 2px #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current:before{content:"";width:100%;height:100%;border:2px solid #000;position:absolute;inset:0}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style:hover .art-danmuku-style-panel{display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon{opacity:.75;cursor:pointer}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon:hover{opacity:1}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input{width:100%;color:#fff;background-color:#0000;border:none;outline:none;flex:1;padding:0 10px 0 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#ffffff80}.art-danmuku-emitter .art-danmuku-send{width:50px;cursor:pointer;background-color:#00a1d6;border-radius:0 3px 3px 0;justify-content:center;align-items:center;display:flex}.art-danmuku-emitter .art-danmuku-send:hover{background-color:#00b5e5}.art-danmuku-emitter .art-danmuku-send.art-disabled{opacity:.5;pointer-events:none}.art-danmuku-emitter.art-danmuku-mount{height:34px;max-width:100%!important}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{left:0}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-send{width:60px}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left{background:#f4f4f4;border:1px solid #dadada}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-style .art-icon svg{fill:#666}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input{color:#000}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#00000080}.art-layer-danmuku-emitter{z-index:99;width:100%;position:absolute;bottom:-40px;left:0;right:0}'},{}],"4KfW9":[function(t,e,n){e.exports=''},{}],"9UR3U":[function(t,e,n){e.exports=''},{}],"4MPCW":[function(t,e,n){e.exports=''},{}],"7lV5Q":[function(t,e,n){e.exports=''},{}]},["bgm6t"],"bgm6t","parcelRequire4dc0"); \ No newline at end of file +!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[i]&&a[i],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 r="function"==typeof a[i]&&a[i];if(!n&&r)return r(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var d=new Error("Cannot find module '"+e+"'");throw d.code="MODULE_NOT_FOUND",d}p.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},p.cache={};var m=s[e]=new u.Module(e);t[e][0].call(m.exports,p,m,m.exports,this)}return s[e].exports;function p(t){var e=p.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[i]}}),a[i]=u;for(var d=0;d{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=5,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 5 版本以上`)}(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="5.0.0",l.build="2023-04-23 13:41:51","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"4ns48","./setting":"lO8OT","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4ns48":[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("85d40535eae5f839"))}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("resize",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 JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.1>=e.time&&e.time>=t-.1))}getEmits(){const t=[],{clientWidth:e}=this.$player,n=this.getLeft(this.$player);return this.filter("emit",(i=>{const r=i.$ref.offsetTop,a=this.getLeft(i.$ref)-n,o=i.$ref.clientHeight,s=i.$ref.clientWidth,l=a+s,u=e-l,d=l/i.$restTime,m={};m.top=r,m.left=a,m.height=o,m.width=s,m.right=u,m.speed=d,m.distance=l,m.time=i.$restTime,m.mode=i.mode,t.push(m)})),t}getFontSize(t){const{clamp:e}=this.utils,{clientHeight:n}=this.$player;if("number"==typeof t)return e(t,12,n);if("string"==typeof t&&t.endsWith("%")){return e(n*(parseFloat(t)/100),12,n)}return s.option.fontSize}postMessage(t={}){return new Promise((e=>{if(this.option.useWorker&&this.worker&&this.worker.postMessage)t.id=Date.now(),this.worker.postMessage(t),this.worker.onmessage=n=>{const{data:i}=n;i.id===t.id&&e(i)};else{const n=(0,o.default)(t);e({top:n})}}))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await(0,r.bilibiliDanmuParseFromUrl)(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},s.option,this.option,t),this.validator(this.option,s.scheme),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.lockTime=e(Math.floor(this.option.lockTime),0,60),this.option.maxLength=e(this.option.maxLength,0,500),this.option.minWidth=e(this.option.minWidth,0,500),this.option.maxWidth=e(this.option.maxWidth,0,1/0),t.fontSize&&(this.option.fontSize=this.getFontSize(this.option.fontSize),this.reset()),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const n=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const n=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}reset(){return this.queue.forEach((t=>this.makeWait(t))),this}update(){return this.timer=window.requestAnimationFrame((async()=>{if(this.art.playing&&!this.isHide){this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)}));const t=this.getReady(),{clientWidth:e,clientHeight:n}=this.$player;for(let i=0;ithis.makeWait(t))),this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}emit(t){return this.validator(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()&&this.option.filter(t)?(t.time?t.time=this.utils.clamp(t.time,0,1/0):t.time=this.art.currentTime+.5,void 0===t.mode&&(t.mode=this.option.mode),void 0===t.color&&(t.color=this.option.color),this.queue.push({...t,$state:"wait",$ref:null,$restTime:0,$lastStartTime:0}),this):this}destroy(){this.stop(),this.worker&&this.worker.terminate&&this.worker.terminate(),this.art.off("video:play",this.start),this.art.off("video:playing",this.start),this.art.off("video:pause",this.stop),this.art.off("video:waiting",this.stop),this.art.off("fullscreen",this.reset),this.art.off("fullscreenWeb",this.reset),this.art.off("destroy",this.destroy),this.art.emit("artplayerPluginDanmuku:destroy")}}n.default=s},{"./bilibili":"f83sx","./getDanmuTop":"jPSuD","85d40535eae5f839":"fXq73","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],f83sx:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");function r(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function a(t){if("string"!=typeof t)return[];const e=t.matchAll(/(?.+?)<\/d>/gs);return Array.from(e).map((t=>{const e=t.groups.p.split(",");if(e.length>=8){return{text:t.groups.text.trim().replaceAll(""",'"').replaceAll("'","'").replaceAll("<","<").replaceAll(">",">").replaceAll("&","&"),time:Number(e[0]),mode:r(Number(e[1])),fontSize:Number(e[2]),color:`#${Number(e[3]).toString(16)}`,timestamp:Number(e[4]),pool:Number(e[5]),userID:e[6],rowID:Number(e[7])}}return null})).filter(Boolean)}function o(t){return fetch(t).then((t=>t.text())).then((t=>a(t)))}i.defineInteropFlag(n),i.export(n,"getMode",(()=>r)),i.export(n,"bilibiliDanmuParseFromXml",(()=>a)),i.export(n,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(t,e,n){n.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},n.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.exportAll=function(t,e){return Object.keys(t).forEach((function(n){"default"===n||"__esModule"===n||e.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})),e},n.export=function(t,e,n){Object.defineProperty(t,e,{enumerable:!0,get:n})}},{}],jPSuD:[function(t,e,n){t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=function({target:t,emits:e,clientWidth:n,clientHeight:i,marginBottom:r,marginTop:a,antiOverlap:o}){const s=e.filter((e=>e.mode===t.mode&&e.top<=i-r)).sort(((t,e)=>t.top-e.top));if(0===s.length)return a;s.unshift({top:0,left:0,right:0,height:a,width:n,speed:0,distance:n}),s.push({top:i-r,left:0,right:0,height:r,width:n,speed:0,distance:n});for(let e=1;e=t.height)return r}const l=[];for(let t=1;t{const n=Math.min(...e.map((t=>t.right))),i=Math.min(...t.map((t=>t.right)));return n*e.length-i*t.length}));break;case 1:l.sort(((t,e)=>{const n=Math.max(...e.map((t=>t.width)));return Math.max(...t.map((t=>t.width)))*t.length-n*e.length}))}return l[0][0].top}switch(t.mode){case 0:{const e=l.find((e=>e.every((e=>{if(ne.time}))));return e&&e[0]?e[0].top:void 0}case 1:return}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],fXq73:[function(t,e,n){e.exports="data:application/javascript,function%20getDanmuTop%28%7Btarget%3At%2Cemits%3Ae%2CclientWidth%3An%2CclientHeight%3Ai%2CmarginBottom%3As%2CmarginTop%3Ah%2CantiOverlap%3Ao%7D%29%7Bconst%20r%3De.filter%28%28e%3D%3Ee.mode%3D%3D%3Dt.mode%26%26e.top%3C%3Di-s%29%29.sort%28%28%28t%2Ce%29%3D%3Et.top-e.top%29%29%3Bif%280%3D%3D%3Dr.length%29return%20h%3Br.unshift%28%7Btop%3A0%2Cleft%3A0%2Cright%3A0%2Cheight%3Ah%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%2Cr.push%28%7Btop%3Ai-s%2Cleft%3A0%2Cright%3A0%2Cheight%3As%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%3Bfor%28let%20e%3D1%3Be%3Cr.length%3Be%2B%3D1%29%7Bconst%20n%3Dr%5Be%5D%2Ci%3Dr%5Be-1%5D%2Cs%3Di.top%2Bi.height%3Bif%28n.top-s%3E%3Dt.height%29return%20s%7Dconst%20p%3D%5B%5D%3Bfor%28let%20t%3D1%3Bt%3Cr.length-1%3Bt%2B%3D1%29%7Bconst%20e%3Dr%5Bt%5D%3Bif%28p.length%29%7Bconst%20t%3Dp%5Bp.length-1%5D%3Bt%5B0%5D.top%3D%3D%3De.top%3Ft.push%28e%29%3Ap.push%28%5Be%5D%29%7Delse%20p.push%28%5Be%5D%29%7Dif%28%21o%29%7Bswitch%28t.mode%29%7Bcase%200%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.min%28...e.map%28%28t%3D%3Et.right%29%29%29%2Ci%3DMath.min%28...t.map%28%28t%3D%3Et.right%29%29%29%3Breturn%20n%2ae.length-i%2at.length%7D%29%29%3Bbreak%3Bcase%201%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.max%28...e.map%28%28t%3D%3Et.width%29%29%29%3Breturn%20Math.max%28...t.map%28%28t%3D%3Et.width%29%29%29%2at.length-n%2ae.length%7D%29%29%7Dreturn%20p%5B0%5D%5B0%5D.top%7Dswitch%28t.mode%29%7Bcase%200%3A%7Bconst%20e%3Dp.find%28%28e%3D%3Ee.every%28%28e%3D%3E%7Bif%28n%3Ce.distance%29return%211%3Bif%28t.speed%3Ce.speed%29return%210%3Breturn%20e.right%2F%28t.speed-e.speed%29%3Ee.time%7D%29%29%29%29%3Breturn%20e%26%26e%5B0%5D%3Fe%5B0%5D.top%3Avoid%200%7Dcase%201%3Areturn%7D%7Donmessage%3Dt%3D%3E%7Bconst%7Bdata%3Ae%7D%3Dt%2Cn%3DgetDanmuTop%28e%29%3Bself.postMessage%28%7Btop%3An%2Cid%3Ae.id%7D%29%7D%3B"},{}],lO8OT:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("bundle-text:./style.less"),a=i.interopDefault(r),o=t("bundle-text:./img/danmu-on.svg"),s=i.interopDefault(o),l=t("bundle-text:./img/danmu-off.svg"),u=i.interopDefault(l),d=t("bundle-text:./img/danmu-config.svg"),m=i.interopDefault(d),p=t("bundle-text:./img/danmu-style.svg"),c=i.interopDefault(p);if(n.default=function(t,e){const{option:n}=e,{template:{$controlsCenter:i,$player:r},constructor:{utils:{removeClass:a,addClass:o,append:l,setStyle:d,tooltip:p,query:h,inverseClass:f}}}=t;function g(t,e){const n=document.createElement("i");return l(n,t),o(n,"art-icon"),o(n,`art-icon-${e}`),n}d(i,"display","flex");const k=g(s.default,"danmu-on"),y=g(u.default,"danmu-off"),b=g(m.default,"danmu-config"),x=g(c.default,"danmu-style");!function(){const s=["#FE0302","#FF7204","#FFAA02","#FFD302","#FFFF00","#A0EE00","#00CD00","#019899","#4266BE","#89D5FF","#CC0273","#222222","#9B9B9B","#FFFFFF"].map((t=>`
`)),u=l(i,`
模式
滚动
静止
颜色
${s.join("")}
发送
`),m=h(".art-danmuku-style",u),p=h(".art-danmuku-input",u),c=h(".art-danmuku-send",u),g=h(".art-danmuku-style-panel-inner",u),k=h(".art-danmuku-style-panel-modes",u),y=h(".art-danmuku-style-panel-colors",u),b=n.mount||l(r,'
');t.option.backdrop&&o(g,"art-backdrop-filter"),n.theme&&o(u,`art-danmuku-theme-${n.theme}`);let v=null,w=n.mode,D=n.color;function $(t){t<=0?(v=null,c.innerText="发送",a(c,"art-disabled")):(c.innerText=t,v=setTimeout((()=>$(t-1)),1e3))}function B(){const i={mode:w,color:D,border:!0,text:p.value.trim()};null===v&&n.beforeEmit(i)&&(p.value="",e.emit(i),o(c,"art-disabled"),$(n.lockTime),t.emit("artplayerPluginDanmuku:emit",i))}function C(){i.clientWidth{"Enter"===t.key&&(t.preventDefault(),B())})),t.proxy(k,"click",(t=>{const{dataset:e}=t.target;e.mode&&(w=Number(e.mode),f(t.target,"art-current"))})),t.proxy(y,"click",(t=>{const{dataset:e}=t.target;e.color&&(D=e.color,f(t.target,"art-current"))})),C(),t.on("resize",(()=>{t.isInput||C()})),t.on("destroy",(()=>{n.mount&&u.parentElement===n.mount&&n.mount.removeChild(u)}))}(),t.controls.add({position:"right",name:"danmuku",click:function(){e.isHide?(e.show(),t.notice.show="弹幕显示",d(k,"display",null),d(y,"display","none")):(e.hide(),t.notice.show="弹幕隐藏",d(k,"display","none"),d(y,"display",null))},mounted(t){l(t,k),l(t,y),p(t,"弹幕开关"),d(y,"display","none")}}),t.setting.add({name:"danmuku",html:"弹幕设置",tooltip:"更多",icon:b,selector:[{width:200,html:"播放速度",icon:"",tooltip:"适中",selector:[{html:"极慢",time:10},{html:"较慢",time:7.5},{default:!0,html:"适中",time:5},{html:"较快",time:2.5},{html:"极快",time:1}],onSelect:function(t){return e.config({speed:t.time}),t.html}},{width:200,html:"字体大小",icon:"",tooltip:"适中",selector:[{html:"极小",fontSize:"4%"},{html:"较小",fontSize:"5%"},{default:!0,html:"适中",fontSize:"6%"},{html:"较大",fontSize:"7%"},{html:"极大",fontSize:"8%"}],onSelect:function(t){return e.config({fontSize:t.fontSize}),t.html}},{width:200,html:"不透明度",icon:"",tooltip:"100%",selector:[{default:!0,opacity:1,html:"100%"},{opacity:.75,html:"75%"},{opacity:.5,html:"50%"},{opacity:.25,html:"25%"},{opacity:0,html:"0%"}],onSelect:function(t){return e.config({opacity:t.opacity}),t.html}},{width:200,html:"显示范围",icon:"",tooltip:"3/4",selector:[{html:"1/4",margin:[10,"75%"]},{html:"半屏",margin:[10,"50%"]},{default:!0,html:"3/4",margin:[10,"25%"]},{html:"满屏",margin:[10,10]}],onSelect:function(t){return e.config({margin:t.margin}),t.html}},{html:"弹幕防重叠",icon:"",tooltip:n.antiOverlap?"开启":"关闭",switch:n.antiOverlap,onSwitch:t=>(e.config({antiOverlap:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)},{html:"同步视频速度",icon:"",tooltip:n.synchronousPlayback?"开启":"关闭",switch:n.synchronousPlayback,onSwitch:t=>(e.config({synchronousPlayback:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)}]})},"undefined"!=typeof document&&!document.getElementById("artplayer-plugin-danmuku")){const t=document.createElement("style");t.id="artplayer-plugin-danmuku",t.textContent=a.default,document.head.appendChild(t)}},{"bundle-text:./style.less":"hViDo","bundle-text:./img/danmu-on.svg":"4KfW9","bundle-text:./img/danmu-off.svg":"9UR3U","bundle-text:./img/danmu-config.svg":"4MPCW","bundle-text:./img/danmu-style.svg":"7lV5Q","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],hViDo:[function(t,e,n){e.exports='.art-danmuku-emitter{height:32px;width:100%;max-width:100%;color:#fff;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#ffffff4d;border-radius:3px;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:12px;line-height:1;display:flex;position:relative}.art-danmuku-emitter *,.art-danmuku-emitter :before,.art-danmuku-emitter :after{box-sizing:border-box;margin:0;padding:0}.art-danmuku-emitter .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-danmuku-emitter .art-icon svg{fill:#fff}@supports ((-webkit-backdrop-filter:initial)) or (backdrop-filter:initial){.art-danmuku-emitter .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-danmuku-emitter .art-danmuku-left{border-radius:3px 0 0 3px;flex:1;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style{width:32px;justify-content:center;align-items:center;display:flex;position:relative}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{z-index:999;width:200px;padding-bottom:10px;display:none;position:absolute;bottom:30px;left:-85px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner{background-color:#000000e6;border-radius:3px;flex-direction:column;padding:10px 10px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-title{margin-bottom:10px;font-size:13px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes{justify-content:space-between;margin-bottom:15px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode{width:47%;cursor:pointer;color:#fff;border:1px solid #fff;justify-content:center;padding:5px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode.art-current{background-color:#00a1d6;border:1px solid #00a1d6}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors{flex-wrap:wrap;justify-content:space-between;gap:5px;margin-bottom:10px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color{cursor:pointer;width:20px;height:20px;border:1px solid #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current{position:relative;box-shadow:0 0 2px #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current:before{content:"";width:100%;height:100%;border:2px solid #000;position:absolute;inset:0}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style:hover .art-danmuku-style-panel{display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon{opacity:.75;cursor:pointer}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon:hover{opacity:1}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input{width:100%;color:#fff;background-color:#0000;border:none;outline:none;flex:1;padding:0 10px 0 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#ffffff80}.art-danmuku-emitter .art-danmuku-send{width:50px;cursor:pointer;background-color:#00a1d6;border-radius:0 3px 3px 0;justify-content:center;align-items:center;display:flex}.art-danmuku-emitter .art-danmuku-send:hover{background-color:#00b5e5}.art-danmuku-emitter .art-danmuku-send.art-disabled{opacity:.5;pointer-events:none}.art-danmuku-emitter.art-danmuku-mount{height:34px;max-width:100%!important}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{left:0}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-send{width:60px}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left{background:#f4f4f4;border:1px solid #dadada}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-style .art-icon svg{fill:#666}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input{color:#000}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#00000080}.art-layer-danmuku-emitter{z-index:99;width:100%;position:absolute;bottom:-40px;left:0;right:0}'},{}],"4KfW9":[function(t,e,n){e.exports=''},{}],"9UR3U":[function(t,e,n){e.exports=''},{}],"4MPCW":[function(t,e,n){e.exports=''},{}],"7lV5Q":[function(t,e,n){e.exports=''},{}]},["bgm6t"],"bgm6t","parcelRequire4dc0"); \ No newline at end of file diff --git a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js index 1db0e4cf8..cd2905ace 100644 --- a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js +++ b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js @@ -4,4 +4,4 @@ * (c) 2017-2023 Harvey Zack * 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[i]&&a[i],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 r="function"==typeof a[i]&&a[i];if(!n&&r)return r(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var d=new Error("Cannot find module '"+e+"'");throw d.code="MODULE_NOT_FOUND",d}p.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},p.cache={};var m=s[e]=new u.Module(e);t[e][0].call(m.exports,p,m,m.exports,this)}return s[e].exports;function p(t){var e=p.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[i]}}),a[i]=u;for(var d=0;d{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=5,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 5 版本以上`)}(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="5.0.0",l.build="2023-04-17 23:16:15","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"cEnKl","./setting":"hrSF1","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],cEnKl:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n),i.export(n,"default",(()=>s));var r=t("./bilibili"),a=t("./getDanmuTop"),o=i.interopDefault(a);class s{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 JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.1>=e.time&&e.time>=t-.1))}getEmits(){const t=[],{clientWidth:e}=this.$player,n=this.getLeft(this.$player);return this.filter("emit",(i=>{const r=i.$ref.offsetTop,a=this.getLeft(i.$ref)-n,o=i.$ref.clientHeight,s=i.$ref.clientWidth,l=a+s,u=e-l,d=l/i.$restTime,m={};m.top=r,m.left=a,m.height=o,m.width=s,m.right=u,m.speed=d,m.distance=l,m.time=i.$restTime,m.mode=i.mode,t.push(m)})),t}getFontSize(t){const{clamp:e}=this.utils,{clientHeight:n}=this.$player;if("number"==typeof t)return e(t,12,n);if("string"==typeof t&&t.endsWith("%")){return e(n*(parseFloat(t)/100),12,n)}return s.option.fontSize}postMessage(t={}){return new Promise((e=>{if(this.option.useWorker&&this.worker&&this.worker.postMessage)t.id=Date.now(),this.worker.postMessage(t),this.worker.onmessage=n=>{const{data:i}=n;i.id===t.id&&e(i)};else{const n=(0,o.default)(t);e({top:n})}}))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await(0,r.bilibiliDanmuParseFromUrl)(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},s.option,this.option,t),this.validator(this.option,s.scheme),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.lockTime=e(Math.floor(this.option.lockTime),0,60),this.option.maxLength=e(this.option.maxLength,0,500),this.option.minWidth=e(this.option.minWidth,0,500),this.option.maxWidth=e(this.option.maxWidth,0,1/0),t.fontSize&&(this.option.fontSize=this.getFontSize(this.option.fontSize),this.reset()),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const n=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const n=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}reset(){return this.queue.forEach((t=>this.makeWait(t))),this}update(){return this.timer=window.requestAnimationFrame((async()=>{if(this.art.playing&&!this.isHide){this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)}));const t=this.getReady(),{clientWidth:e,clientHeight:n}=this.$player;for(let i=0;ithis.makeWait(t))),this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}emit(t){return this.validator(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()&&this.option.filter(t)?(t.time?t.time=this.utils.clamp(t.time,0,1/0):t.time=this.art.currentTime+.5,void 0===t.mode&&(t.mode=this.option.mode),void 0===t.color&&(t.color=this.option.color),this.queue.push({...t,$state:"wait",$ref:null,$restTime:0,$lastStartTime:0}),this):this}destroy(){this.stop(),this.worker&&this.worker.terminate&&this.worker.terminate(),this.art.off("video:play",this.start),this.art.off("video:playing",this.start),this.art.off("video:pause",this.stop),this.art.off("video:waiting",this.stop),this.art.off("fullscreen",this.reset),this.art.off("fullscreenWeb",this.reset),this.art.off("destroy",this.destroy),this.art.emit("artplayerPluginDanmuku:destroy")}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("85d40535eae5f839"))}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()}}},{"./bilibili":"5PTUQ","./getDanmuTop":"5SGJk","85d40535eae5f839":"khCQp","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5PTUQ":[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");function r(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function a(t){if("string"!=typeof t)return[];const e=t.matchAll(/(?.+?)<\/d>/gs);return Array.from(e).map((t=>{const e=t.groups.p.split(",");if(e.length>=8){return{text:t.groups.text.trim().replaceAll(""",'"').replaceAll("'","'").replaceAll("<","<").replaceAll(">",">").replaceAll("&","&"),time:Number(e[0]),mode:r(Number(e[1])),fontSize:Number(e[2]),color:`#${Number(e[3]).toString(16)}`,timestamp:Number(e[4]),pool:Number(e[5]),userID:e[6],rowID:Number(e[7])}}return null})).filter(Boolean)}function o(t){return fetch(t).then((t=>t.text())).then((t=>a(t)))}i.defineInteropFlag(n),i.export(n,"getMode",(()=>r)),i.export(n,"bilibiliDanmuParseFromXml",(()=>a)),i.export(n,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"47PTV":[function(t,e,n){n.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},n.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.exportAll=function(t,e){return Object.keys(t).forEach((function(n){"default"===n||"__esModule"===n||e.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})),e},n.export=function(t,e,n){Object.defineProperty(t,e,{enumerable:!0,get:n})}},{}],"5SGJk":[function(t,e,n){t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=function({target:t,emits:e,clientWidth:n,clientHeight:i,marginBottom:r,marginTop:a,antiOverlap:o}){const s=e.filter((e=>e.mode===t.mode&&e.top<=i-r)).sort(((t,e)=>t.top-e.top));if(0===s.length)return a;s.unshift({top:0,left:0,right:0,height:a,width:n,speed:0,distance:n}),s.push({top:i-r,left:0,right:0,height:r,width:n,speed:0,distance:n});for(let e=1;e=t.height)return r}const l=[];for(let t=1;t{const n=Math.min(...e.map((t=>t.right))),i=Math.min(...t.map((t=>t.right)));return n*e.length-i*t.length}));break;case 1:l.sort(((t,e)=>{const n=Math.max(...e.map((t=>t.width)));return Math.max(...t.map((t=>t.width)))*t.length-n*e.length}))}return l[0][0].top}switch(t.mode){case 0:{const e=l.find((e=>e.every((e=>{if(ne.time}))));return e&&e[0]?e[0].top:void 0}case 1:return}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],khCQp:[function(t,e,n){e.exports="data:application/javascript,function%20getDanmuTop%28%7Btarget%3At%2Cemits%3Ae%2CclientWidth%3An%2CclientHeight%3Ai%2CmarginBottom%3As%2CmarginTop%3Ah%2CantiOverlap%3Ao%7D%29%7Bconst%20r%3De.filter%28%28e%3D%3Ee.mode%3D%3D%3Dt.mode%26%26e.top%3C%3Di-s%29%29.sort%28%28%28t%2Ce%29%3D%3Et.top-e.top%29%29%3Bif%280%3D%3D%3Dr.length%29return%20h%3Br.unshift%28%7Btop%3A0%2Cleft%3A0%2Cright%3A0%2Cheight%3Ah%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%2Cr.push%28%7Btop%3Ai-s%2Cleft%3A0%2Cright%3A0%2Cheight%3As%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%3Bfor%28let%20e%3D1%3Be%3Cr.length%3Be%2B%3D1%29%7Bconst%20n%3Dr%5Be%5D%2Ci%3Dr%5Be-1%5D%2Cs%3Di.top%2Bi.height%3Bif%28n.top-s%3E%3Dt.height%29return%20s%7Dconst%20p%3D%5B%5D%3Bfor%28let%20t%3D1%3Bt%3Cr.length-1%3Bt%2B%3D1%29%7Bconst%20e%3Dr%5Bt%5D%3Bif%28p.length%29%7Bconst%20t%3Dp%5Bp.length-1%5D%3Bt%5B0%5D.top%3D%3D%3De.top%3Ft.push%28e%29%3Ap.push%28%5Be%5D%29%7Delse%20p.push%28%5Be%5D%29%7Dif%28%21o%29%7Bswitch%28t.mode%29%7Bcase%200%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.min%28...e.map%28%28t%3D%3Et.right%29%29%29%2Ci%3DMath.min%28...t.map%28%28t%3D%3Et.right%29%29%29%3Breturn%20n%2ae.length-i%2at.length%7D%29%29%3Bbreak%3Bcase%201%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.max%28...e.map%28%28t%3D%3Et.width%29%29%29%3Breturn%20Math.max%28...t.map%28%28t%3D%3Et.width%29%29%29%2at.length-n%2ae.length%7D%29%29%7Dreturn%20p%5B0%5D%5B0%5D.top%7Dswitch%28t.mode%29%7Bcase%200%3A%7Bconst%20e%3Dp.find%28%28e%3D%3Ee.every%28%28e%3D%3E%7Bif%28n%3Ce.distance%29return%211%3Bif%28t.speed%3Ce.speed%29return%210%3Breturn%20e.right%2F%28t.speed-e.speed%29%3Ee.time%7D%29%29%29%29%3Breturn%20e%26%26e%5B0%5D%3Fe%5B0%5D.top%3Avoid%200%7Dcase%201%3Areturn%7D%7Donmessage%3Dt%3D%3E%7Bconst%7Bdata%3Ae%7D%3Dt%2Cn%3DgetDanmuTop%28e%29%3Bself.postMessage%28%7Btop%3An%2Cid%3Ae.id%7D%29%7D%3B"},{}],hrSF1:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("bundle-text:./style.less"),a=i.interopDefault(r),o=t("bundle-text:./img/danmu-on.svg"),s=i.interopDefault(o),l=t("bundle-text:./img/danmu-off.svg"),u=i.interopDefault(l),d=t("bundle-text:./img/danmu-config.svg"),m=i.interopDefault(d),p=t("bundle-text:./img/danmu-style.svg"),c=i.interopDefault(p);if(n.default=function(t,e){const{option:n}=e,{template:{$controlsCenter:i,$player:r},constructor:{utils:{removeClass:a,addClass:o,append:l,setStyle:d,tooltip:p,query:h,inverseClass:f}}}=t;function g(t,e){const n=document.createElement("i");return l(n,t),o(n,"art-icon"),o(n,`art-icon-${e}`),n}d(i,"display","flex");const k=g(s.default,"danmu-on"),y=g(u.default,"danmu-off"),b=g(m.default,"danmu-config"),x=g(c.default,"danmu-style");!function(){const s=["#FE0302","#FF7204","#FFAA02","#FFD302","#FFFF00","#A0EE00","#00CD00","#019899","#4266BE","#89D5FF","#CC0273","#222222","#9B9B9B","#FFFFFF"].map((t=>`
`)),u=l(i,`
模式
滚动
静止
颜色
${s.join("")}
发送
`),m=h(".art-danmuku-style",u),p=h(".art-danmuku-input",u),c=h(".art-danmuku-send",u),g=h(".art-danmuku-style-panel-inner",u),k=h(".art-danmuku-style-panel-modes",u),y=h(".art-danmuku-style-panel-colors",u),b=n.mount||l(r,'
');t.option.backdrop&&o(g,"art-backdrop-filter"),n.theme&&o(u,`art-danmuku-theme-${n.theme}`);let v=null,w=n.mode,D=n.color;function $(t){t<=0?(v=null,c.innerText="发送",a(c,"art-disabled")):(c.innerText=t,v=setTimeout((()=>$(t-1)),1e3))}function B(){const i={mode:w,color:D,border:!0,text:p.value.trim()};null===v&&n.beforeEmit(i)&&(p.value="",e.emit(i),o(c,"art-disabled"),$(n.lockTime),t.emit("artplayerPluginDanmuku:emit",i))}function z(){i.clientWidth{"Enter"===t.key&&(t.preventDefault(),B())})),t.proxy(k,"click",(t=>{const{dataset:e}=t.target;e.mode&&(w=Number(e.mode),f(t.target,"art-current"))})),t.proxy(y,"click",(t=>{const{dataset:e}=t.target;e.color&&(D=e.color,f(t.target,"art-current"))})),z(),t.on("resize",(()=>{t.isInput||z()})),t.on("destroy",(()=>{n.mount&&u.parentElement===n.mount&&n.mount.removeChild(u)}))}(),t.controls.add({position:"right",name:"danmuku",click:function(){e.isHide?(e.show(),t.notice.show="弹幕显示",d(k,"display",null),d(y,"display","none")):(e.hide(),t.notice.show="弹幕隐藏",d(k,"display","none"),d(y,"display",null))},mounted(t){l(t,k),l(t,y),p(t,"弹幕开关"),d(y,"display","none")}}),t.setting.add({name:"danmuku",html:"弹幕设置",tooltip:"更多",icon:b,selector:[{width:200,html:"播放速度",icon:"",tooltip:"适中",selector:[{html:"极慢",time:10},{html:"较慢",time:7.5},{default:!0,html:"适中",time:5},{html:"较快",time:2.5},{html:"极快",time:1}],onSelect:function(t){return e.config({speed:t.time}),t.html}},{width:200,html:"字体大小",icon:"",tooltip:"适中",selector:[{html:"极小",fontSize:"4%"},{html:"较小",fontSize:"5%"},{default:!0,html:"适中",fontSize:"6%"},{html:"较大",fontSize:"7%"},{html:"极大",fontSize:"8%"}],onSelect:function(t){return e.config({fontSize:t.fontSize}),t.html}},{width:200,html:"不透明度",icon:"",tooltip:"100%",selector:[{default:!0,opacity:1,html:"100%"},{opacity:.75,html:"75%"},{opacity:.5,html:"50%"},{opacity:.25,html:"25%"},{opacity:0,html:"0%"}],onSelect:function(t){return e.config({opacity:t.opacity}),t.html}},{width:200,html:"显示范围",icon:"",tooltip:"3/4",selector:[{html:"1/4",margin:[10,"75%"]},{html:"半屏",margin:[10,"50%"]},{default:!0,html:"3/4",margin:[10,"25%"]},{html:"满屏",margin:[10,10]}],onSelect:function(t){return e.config({margin:t.margin}),t.html}},{html:"弹幕防重叠",icon:"",tooltip:n.antiOverlap?"开启":"关闭",switch:n.antiOverlap,onSwitch:t=>(e.config({antiOverlap:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)},{html:"同步视频速度",icon:"",tooltip:n.synchronousPlayback?"开启":"关闭",switch:n.synchronousPlayback,onSwitch:t=>(e.config({synchronousPlayback:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)}]})},"undefined"!=typeof document&&!document.getElementById("artplayer-plugin-danmuku")){const t=document.createElement("style");t.id="artplayer-plugin-danmuku",t.textContent=a.default,document.head.appendChild(t)}},{"bundle-text:./style.less":"fZsza","bundle-text:./img/danmu-on.svg":"3I7GB","bundle-text:./img/danmu-off.svg":"2WOAp","bundle-text:./img/danmu-config.svg":"d0jTU","bundle-text:./img/danmu-style.svg":"jW6Os","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fZsza:[function(t,e,n){e.exports='.art-danmuku-emitter{height:32px;width:100%;max-width:100%;color:#fff;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#ffffff4d;border-radius:3px;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:12px;line-height:1;display:flex;position:relative}.art-danmuku-emitter *,.art-danmuku-emitter :before,.art-danmuku-emitter :after{box-sizing:border-box;margin:0;padding:0}.art-danmuku-emitter .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-danmuku-emitter .art-icon svg{fill:#fff}@supports ((-webkit-backdrop-filter:initial)) or ((-webkit-backdrop-filter:initial)) or ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.art-danmuku-emitter .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-danmuku-emitter .art-danmuku-left{border-radius:3px 0 0 3px;flex:1;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style{width:32px;justify-content:center;align-items:center;display:flex;position:relative}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{z-index:999;width:200px;padding-bottom:10px;display:none;position:absolute;bottom:30px;left:-85px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner{background-color:#000000e6;border-radius:3px;flex-direction:column;padding:10px 10px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-title{margin-bottom:10px;font-size:13px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes{justify-content:space-between;margin-bottom:15px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode{width:47%;cursor:pointer;color:#fff;border:1px solid #fff;justify-content:center;padding:5px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode.art-current{background-color:#00a1d6;border:1px solid #00a1d6}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors{flex-wrap:wrap;justify-content:space-between;gap:5px;margin-bottom:10px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color{cursor:pointer;width:20px;height:20px;border:1px solid #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current{position:relative;box-shadow:0 0 2px #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current:before{content:"";width:100%;height:100%;border:2px solid #000;position:absolute;inset:0}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style:hover .art-danmuku-style-panel{display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon{opacity:.75;cursor:pointer}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon:hover{opacity:1}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input{width:100%;color:#fff;background-color:#0000;border:none;outline:none;flex:1;padding:0 10px 0 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#ffffff80}.art-danmuku-emitter .art-danmuku-send{width:50px;cursor:pointer;background-color:#00a1d6;border-radius:0 3px 3px 0;justify-content:center;align-items:center;display:flex}.art-danmuku-emitter .art-danmuku-send:hover{background-color:#00b5e5}.art-danmuku-emitter .art-danmuku-send.art-disabled{opacity:.5;pointer-events:none}.art-danmuku-emitter.art-danmuku-mount{height:34px;max-width:100%!important}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{left:0}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-send{width:60px}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left{background:#f4f4f4;border:1px solid #dadada}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-style .art-icon svg{fill:#666}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input{color:#000}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#00000080}.art-layer-danmuku-emitter{z-index:99;width:100%;position:absolute;bottom:-40px;left:0;right:0}'},{}],"3I7GB":[function(t,e,n){e.exports=''},{}],"2WOAp":[function(t,e,n){e.exports=''},{}],d0jTU:[function(t,e,n){e.exports=''},{}],jW6Os:[function(t,e,n){e.exports=''},{}]},["dmoJk"],"dmoJk","parcelRequire4dc0"); \ No newline at end of file +!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[i]&&a[i],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 r="function"==typeof a[i]&&a[i];if(!n&&r)return r(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var d=new Error("Cannot find module '"+e+"'");throw d.code="MODULE_NOT_FOUND",d}p.resolve=function(n){var i=t[e][1][n];return null!=i?i:n},p.cache={};var m=s[e]=new u.Module(e);t[e][0].call(m.exports,p,m,m.exports,this)}return s[e].exports;function p(t){var e=p.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[i]}}),a[i]=u;for(var d=0;d{!function(t){const{version:e,utils:{errorHandle:n}}=t.constructor,i=e.split(".").map(Number);n(i[0]+i[1]/100>=5,`Artplayer.js@${e} 不兼容该弹幕库,请更新到 5 版本以上`)}(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="5.0.0",l.build="2023-04-23 13:41:51","undefined"!=typeof window&&(window.artplayerPluginDanmuku=l)},{"./danmuku":"cEnKl","./setting":"hrSF1","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],cEnKl:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n),i.export(n,"default",(()=>s));var r=t("./bilibili"),a=t("./getDanmuTop"),o=i.interopDefault(a);class s{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 JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.1>=e.time&&e.time>=t-.1))}getEmits(){const t=[],{clientWidth:e}=this.$player,n=this.getLeft(this.$player);return this.filter("emit",(i=>{const r=i.$ref.offsetTop,a=this.getLeft(i.$ref)-n,o=i.$ref.clientHeight,s=i.$ref.clientWidth,l=a+s,u=e-l,d=l/i.$restTime,m={};m.top=r,m.left=a,m.height=o,m.width=s,m.right=u,m.speed=d,m.distance=l,m.time=i.$restTime,m.mode=i.mode,t.push(m)})),t}getFontSize(t){const{clamp:e}=this.utils,{clientHeight:n}=this.$player;if("number"==typeof t)return e(t,12,n);if("string"==typeof t&&t.endsWith("%")){return e(n*(parseFloat(t)/100),12,n)}return s.option.fontSize}postMessage(t={}){return new Promise((e=>{if(this.option.useWorker&&this.worker&&this.worker.postMessage)t.id=Date.now(),this.worker.postMessage(t),this.worker.onmessage=n=>{const{data:i}=n;i.id===t.id&&e(i)};else{const n=(0,o.default)(t);e({top:n})}}))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await(0,r.bilibiliDanmuParseFromUrl)(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},s.option,this.option,t),this.validator(this.option,s.scheme),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.lockTime=e(Math.floor(this.option.lockTime),0,60),this.option.maxLength=e(this.option.maxLength,0,500),this.option.minWidth=e(this.option.minWidth,0,500),this.option.maxWidth=e(this.option.maxWidth,0,1/0),t.fontSize&&(this.option.fontSize=this.getFontSize(this.option.fontSize),this.reset()),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const n=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const n=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-n}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}reset(){return this.queue.forEach((t=>this.makeWait(t))),this}update(){return this.timer=window.requestAnimationFrame((async()=>{if(this.art.playing&&!this.isHide){this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)}));const t=this.getReady(),{clientWidth:e,clientHeight:n}=this.$player;for(let i=0;ithis.makeWait(t))),this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}emit(t){return this.validator(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()&&this.option.filter(t)?(t.time?t.time=this.utils.clamp(t.time,0,1/0):t.time=this.art.currentTime+.5,void 0===t.mode&&(t.mode=this.option.mode),void 0===t.color&&(t.color=this.option.color),this.queue.push({...t,$state:"wait",$ref:null,$restTime:0,$lastStartTime:0}),this):this}destroy(){this.stop(),this.worker&&this.worker.terminate&&this.worker.terminate(),this.art.off("video:play",this.start),this.art.off("video:playing",this.start),this.art.off("video:pause",this.stop),this.art.off("video:waiting",this.stop),this.art.off("fullscreen",this.reset),this.art.off("fullscreenWeb",this.reset),this.art.off("destroy",this.destroy),this.art.emit("artplayerPluginDanmuku:destroy")}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("85d40535eae5f839"))}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("resize",this.reset),e.on("destroy",this.destroy),this.load()}}},{"./bilibili":"5PTUQ","./getDanmuTop":"5SGJk","85d40535eae5f839":"khCQp","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5PTUQ":[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");function r(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function a(t){if("string"!=typeof t)return[];const e=t.matchAll(/(?.+?)<\/d>/gs);return Array.from(e).map((t=>{const e=t.groups.p.split(",");if(e.length>=8){return{text:t.groups.text.trim().replaceAll(""",'"').replaceAll("'","'").replaceAll("<","<").replaceAll(">",">").replaceAll("&","&"),time:Number(e[0]),mode:r(Number(e[1])),fontSize:Number(e[2]),color:`#${Number(e[3]).toString(16)}`,timestamp:Number(e[4]),pool:Number(e[5]),userID:e[6],rowID:Number(e[7])}}return null})).filter(Boolean)}function o(t){return fetch(t).then((t=>t.text())).then((t=>a(t)))}i.defineInteropFlag(n),i.export(n,"getMode",(()=>r)),i.export(n,"bilibiliDanmuParseFromXml",(()=>a)),i.export(n,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"47PTV":[function(t,e,n){n.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},n.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.exportAll=function(t,e){return Object.keys(t).forEach((function(n){"default"===n||"__esModule"===n||e.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})),e},n.export=function(t,e,n){Object.defineProperty(t,e,{enumerable:!0,get:n})}},{}],"5SGJk":[function(t,e,n){t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=function({target:t,emits:e,clientWidth:n,clientHeight:i,marginBottom:r,marginTop:a,antiOverlap:o}){const s=e.filter((e=>e.mode===t.mode&&e.top<=i-r)).sort(((t,e)=>t.top-e.top));if(0===s.length)return a;s.unshift({top:0,left:0,right:0,height:a,width:n,speed:0,distance:n}),s.push({top:i-r,left:0,right:0,height:r,width:n,speed:0,distance:n});for(let e=1;e=t.height)return r}const l=[];for(let t=1;t{const n=Math.min(...e.map((t=>t.right))),i=Math.min(...t.map((t=>t.right)));return n*e.length-i*t.length}));break;case 1:l.sort(((t,e)=>{const n=Math.max(...e.map((t=>t.width)));return Math.max(...t.map((t=>t.width)))*t.length-n*e.length}))}return l[0][0].top}switch(t.mode){case 0:{const e=l.find((e=>e.every((e=>{if(ne.time}))));return e&&e[0]?e[0].top:void 0}case 1:return}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],khCQp:[function(t,e,n){e.exports="data:application/javascript,function%20getDanmuTop%28%7Btarget%3At%2Cemits%3Ae%2CclientWidth%3An%2CclientHeight%3Ai%2CmarginBottom%3As%2CmarginTop%3Ah%2CantiOverlap%3Ao%7D%29%7Bconst%20r%3De.filter%28%28e%3D%3Ee.mode%3D%3D%3Dt.mode%26%26e.top%3C%3Di-s%29%29.sort%28%28%28t%2Ce%29%3D%3Et.top-e.top%29%29%3Bif%280%3D%3D%3Dr.length%29return%20h%3Br.unshift%28%7Btop%3A0%2Cleft%3A0%2Cright%3A0%2Cheight%3Ah%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%2Cr.push%28%7Btop%3Ai-s%2Cleft%3A0%2Cright%3A0%2Cheight%3As%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%3Bfor%28let%20e%3D1%3Be%3Cr.length%3Be%2B%3D1%29%7Bconst%20n%3Dr%5Be%5D%2Ci%3Dr%5Be-1%5D%2Cs%3Di.top%2Bi.height%3Bif%28n.top-s%3E%3Dt.height%29return%20s%7Dconst%20p%3D%5B%5D%3Bfor%28let%20t%3D1%3Bt%3Cr.length-1%3Bt%2B%3D1%29%7Bconst%20e%3Dr%5Bt%5D%3Bif%28p.length%29%7Bconst%20t%3Dp%5Bp.length-1%5D%3Bt%5B0%5D.top%3D%3D%3De.top%3Ft.push%28e%29%3Ap.push%28%5Be%5D%29%7Delse%20p.push%28%5Be%5D%29%7Dif%28%21o%29%7Bswitch%28t.mode%29%7Bcase%200%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.min%28...e.map%28%28t%3D%3Et.right%29%29%29%2Ci%3DMath.min%28...t.map%28%28t%3D%3Et.right%29%29%29%3Breturn%20n%2ae.length-i%2at.length%7D%29%29%3Bbreak%3Bcase%201%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.max%28...e.map%28%28t%3D%3Et.width%29%29%29%3Breturn%20Math.max%28...t.map%28%28t%3D%3Et.width%29%29%29%2at.length-n%2ae.length%7D%29%29%7Dreturn%20p%5B0%5D%5B0%5D.top%7Dswitch%28t.mode%29%7Bcase%200%3A%7Bconst%20e%3Dp.find%28%28e%3D%3Ee.every%28%28e%3D%3E%7Bif%28n%3Ce.distance%29return%211%3Bif%28t.speed%3Ce.speed%29return%210%3Breturn%20e.right%2F%28t.speed-e.speed%29%3Ee.time%7D%29%29%29%29%3Breturn%20e%26%26e%5B0%5D%3Fe%5B0%5D.top%3Avoid%200%7Dcase%201%3Areturn%7D%7Donmessage%3Dt%3D%3E%7Bconst%7Bdata%3Ae%7D%3Dt%2Cn%3DgetDanmuTop%28e%29%3Bself.postMessage%28%7Btop%3An%2Cid%3Ae.id%7D%29%7D%3B"},{}],hrSF1:[function(t,e,n){var i=t("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n);var r=t("bundle-text:./style.less"),a=i.interopDefault(r),o=t("bundle-text:./img/danmu-on.svg"),s=i.interopDefault(o),l=t("bundle-text:./img/danmu-off.svg"),u=i.interopDefault(l),d=t("bundle-text:./img/danmu-config.svg"),m=i.interopDefault(d),p=t("bundle-text:./img/danmu-style.svg"),c=i.interopDefault(p);if(n.default=function(t,e){const{option:n}=e,{template:{$controlsCenter:i,$player:r},constructor:{utils:{removeClass:a,addClass:o,append:l,setStyle:d,tooltip:p,query:h,inverseClass:f}}}=t;function g(t,e){const n=document.createElement("i");return l(n,t),o(n,"art-icon"),o(n,`art-icon-${e}`),n}d(i,"display","flex");const k=g(s.default,"danmu-on"),y=g(u.default,"danmu-off"),b=g(m.default,"danmu-config"),x=g(c.default,"danmu-style");!function(){const s=["#FE0302","#FF7204","#FFAA02","#FFD302","#FFFF00","#A0EE00","#00CD00","#019899","#4266BE","#89D5FF","#CC0273","#222222","#9B9B9B","#FFFFFF"].map((t=>`
`)),u=l(i,`
模式
滚动
静止
颜色
${s.join("")}
发送
`),m=h(".art-danmuku-style",u),p=h(".art-danmuku-input",u),c=h(".art-danmuku-send",u),g=h(".art-danmuku-style-panel-inner",u),k=h(".art-danmuku-style-panel-modes",u),y=h(".art-danmuku-style-panel-colors",u),b=n.mount||l(r,'
');t.option.backdrop&&o(g,"art-backdrop-filter"),n.theme&&o(u,`art-danmuku-theme-${n.theme}`);let v=null,w=n.mode,D=n.color;function $(t){t<=0?(v=null,c.innerText="发送",a(c,"art-disabled")):(c.innerText=t,v=setTimeout((()=>$(t-1)),1e3))}function B(){const i={mode:w,color:D,border:!0,text:p.value.trim()};null===v&&n.beforeEmit(i)&&(p.value="",e.emit(i),o(c,"art-disabled"),$(n.lockTime),t.emit("artplayerPluginDanmuku:emit",i))}function z(){i.clientWidth{"Enter"===t.key&&(t.preventDefault(),B())})),t.proxy(k,"click",(t=>{const{dataset:e}=t.target;e.mode&&(w=Number(e.mode),f(t.target,"art-current"))})),t.proxy(y,"click",(t=>{const{dataset:e}=t.target;e.color&&(D=e.color,f(t.target,"art-current"))})),z(),t.on("resize",(()=>{t.isInput||z()})),t.on("destroy",(()=>{n.mount&&u.parentElement===n.mount&&n.mount.removeChild(u)}))}(),t.controls.add({position:"right",name:"danmuku",click:function(){e.isHide?(e.show(),t.notice.show="弹幕显示",d(k,"display",null),d(y,"display","none")):(e.hide(),t.notice.show="弹幕隐藏",d(k,"display","none"),d(y,"display",null))},mounted(t){l(t,k),l(t,y),p(t,"弹幕开关"),d(y,"display","none")}}),t.setting.add({name:"danmuku",html:"弹幕设置",tooltip:"更多",icon:b,selector:[{width:200,html:"播放速度",icon:"",tooltip:"适中",selector:[{html:"极慢",time:10},{html:"较慢",time:7.5},{default:!0,html:"适中",time:5},{html:"较快",time:2.5},{html:"极快",time:1}],onSelect:function(t){return e.config({speed:t.time}),t.html}},{width:200,html:"字体大小",icon:"",tooltip:"适中",selector:[{html:"极小",fontSize:"4%"},{html:"较小",fontSize:"5%"},{default:!0,html:"适中",fontSize:"6%"},{html:"较大",fontSize:"7%"},{html:"极大",fontSize:"8%"}],onSelect:function(t){return e.config({fontSize:t.fontSize}),t.html}},{width:200,html:"不透明度",icon:"",tooltip:"100%",selector:[{default:!0,opacity:1,html:"100%"},{opacity:.75,html:"75%"},{opacity:.5,html:"50%"},{opacity:.25,html:"25%"},{opacity:0,html:"0%"}],onSelect:function(t){return e.config({opacity:t.opacity}),t.html}},{width:200,html:"显示范围",icon:"",tooltip:"3/4",selector:[{html:"1/4",margin:[10,"75%"]},{html:"半屏",margin:[10,"50%"]},{default:!0,html:"3/4",margin:[10,"25%"]},{html:"满屏",margin:[10,10]}],onSelect:function(t){return e.config({margin:t.margin}),t.html}},{html:"弹幕防重叠",icon:"",tooltip:n.antiOverlap?"开启":"关闭",switch:n.antiOverlap,onSwitch:t=>(e.config({antiOverlap:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)},{html:"同步视频速度",icon:"",tooltip:n.synchronousPlayback?"开启":"关闭",switch:n.synchronousPlayback,onSwitch:t=>(e.config({synchronousPlayback:!t.switch}),t.tooltip=t.switch?"关闭":"开启",!t.switch)}]})},"undefined"!=typeof document&&!document.getElementById("artplayer-plugin-danmuku")){const t=document.createElement("style");t.id="artplayer-plugin-danmuku",t.textContent=a.default,document.head.appendChild(t)}},{"bundle-text:./style.less":"fZsza","bundle-text:./img/danmu-on.svg":"3I7GB","bundle-text:./img/danmu-off.svg":"2WOAp","bundle-text:./img/danmu-config.svg":"d0jTU","bundle-text:./img/danmu-style.svg":"jW6Os","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],fZsza:[function(t,e,n){e.exports='.art-danmuku-emitter{height:32px;width:100%;max-width:100%;color:#fff;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#ffffff4d;border-radius:3px;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:12px;line-height:1;display:flex;position:relative}.art-danmuku-emitter *,.art-danmuku-emitter :before,.art-danmuku-emitter :after{box-sizing:border-box;margin:0;padding:0}.art-danmuku-emitter .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-danmuku-emitter .art-icon svg{fill:#fff}@supports ((-webkit-backdrop-filter:initial)) or ((-webkit-backdrop-filter:initial)) or ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.art-danmuku-emitter .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-danmuku-emitter .art-danmuku-left{border-radius:3px 0 0 3px;flex:1;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style{width:32px;justify-content:center;align-items:center;display:flex;position:relative}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{z-index:999;width:200px;padding-bottom:10px;display:none;position:absolute;bottom:30px;left:-85px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner{background-color:#000000e6;border-radius:3px;flex-direction:column;padding:10px 10px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-title{margin-bottom:10px;font-size:13px}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes{justify-content:space-between;margin-bottom:15px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode{width:47%;cursor:pointer;color:#fff;border:1px solid #fff;justify-content:center;padding:5px 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode.art-current{background-color:#00a1d6;border:1px solid #00a1d6}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors{flex-wrap:wrap;justify-content:space-between;gap:5px;margin-bottom:10px;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color{cursor:pointer;width:20px;height:20px;border:1px solid #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current{position:relative;box-shadow:0 0 2px #fff}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-inner .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current:before{content:"";width:100%;height:100%;border:2px solid #000;position:absolute;inset:0}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style:hover .art-danmuku-style-panel{display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon{opacity:.75;cursor:pointer}.art-danmuku-emitter .art-danmuku-left .art-danmuku-style .art-icon:hover{opacity:1}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input{width:100%;color:#fff;background-color:#0000;border:none;outline:none;flex:1;padding:0 10px 0 0;display:flex}.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#ffffff80}.art-danmuku-emitter .art-danmuku-send{width:50px;cursor:pointer;background-color:#00a1d6;border-radius:0 3px 3px 0;justify-content:center;align-items:center;display:flex}.art-danmuku-emitter .art-danmuku-send:hover{background-color:#00b5e5}.art-danmuku-emitter .art-danmuku-send.art-disabled{opacity:.5;pointer-events:none}.art-danmuku-emitter.art-danmuku-mount{height:34px;max-width:100%!important}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-left .art-danmuku-style .art-danmuku-style-panel{left:0}.art-danmuku-emitter.art-danmuku-mount .art-danmuku-send{width:60px}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left{background:#f4f4f4;border:1px solid #dadada}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-style .art-icon svg{fill:#666}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input{color:#000}.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::placeholder,.art-danmuku-emitter.art-danmuku-mount.art-danmuku-theme-light .art-danmuku-left .art-danmuku-input::-webkit-input-placeholder{color:#00000080}.art-layer-danmuku-emitter{z-index:99;width:100%;position:absolute;bottom:-40px;left:0;right:0}'},{}],"3I7GB":[function(t,e,n){e.exports=''},{}],"2WOAp":[function(t,e,n){e.exports=''},{}],d0jTU:[function(t,e,n){e.exports=''},{}],jW6Os:[function(t,e,n){e.exports=''},{}]},["dmoJk"],"dmoJk","parcelRequire4dc0"); \ No newline at end of file diff --git a/packages/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js b/packages/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js index cd8c158ac..80e980ec9 100644 --- a/packages/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js +++ b/packages/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-dash-quality.js v1.0.0 + * artplayer-plugin-dash-quality.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,o,r){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof i[o]&&i[o],u=a.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!u[t]){if(!e[t]){var r="function"==typeof i[o]&&i[o];if(!n&&r)return r(t,!0);if(a)return a(t,!0);if(l&&"string"==typeof t)return l(t);var f=new Error("Cannot find module '"+t+"'");throw f.code="MODULE_NOT_FOUND",f}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var s=u[t]=new d.Module(t);e[t][0].call(s.exports,c,s,s.exports,this)}return u[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=u,d.parent=a,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return i[o]}}),i[o]=d;for(var f=0;f{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;return t.on("ready",(function(){const r=t.dash||window.dash;o(r&&r.getVideoElement()===n,'Cannot find instance of Dash from "art.dash" or "window.dash"');const a=e.auto||"Auto",u=e.title||"Quality",l=r.getBitrateInfoListFor("video"),d=r.getQualityFor("video"),f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.getSettings(),c=l[d],p=s?.streaming?.abr?.autoSwitchBitrate?.video?a:f(c),h={streaming:{abr:{autoSwitchBitrate:{}}}};e.control&&t.controls.add({name:"dash-quality",position:"right",html:p,style:{padding:"0 10px"},selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:e=>(h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html)}),e.setting&&t.setting.add({name:"dash-quality",tooltip:p,html:u,icon:i.default,width:200,selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:function(e){return h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html}})})),{name:"artplayerPluginDashQuality"}}}n.default=a,a.env="production",a.version="1.0.0",a.build="2023-04-17 23:16:14","undefined"!=typeof window&&(window.artplayerPluginDashQuality=a)},{"bundle-text:./image.svg":"kcayM","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],kcayM:[function(e,t,n){t.exports=''},{}],"9pCYc":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["92dvd"],"92dvd","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,n,o,r){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof i[o]&&i[o],a=u.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!a[t]){if(!e[t]){var r="function"==typeof i[o]&&i[o];if(!n&&r)return r(t,!0);if(u)return u(t,!0);if(l&&"string"==typeof t)return l(t);var f=new Error("Cannot find module '"+t+"'");throw f.code="MODULE_NOT_FOUND",f}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var s=a[t]=new d.Module(t);e[t][0].call(s.exports,c,s,s.exports,this)}return a[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=a,d.parent=u,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return i[o]}}),i[o]=d;for(var f=0;f{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function r(){const r=t.dash||window.dash;o(r&&r.getVideoElement()===n,'Cannot find instance of Dash from "art.dash" or "window.dash"');const u=e.auto||"Auto",a=e.title||"Quality",l=r.getBitrateInfoListFor("video"),d=r.getQualityFor("video"),f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.getSettings(),c=l[d],p=s?.streaming?.abr?.autoSwitchBitrate?.video?u:f(c),h={streaming:{abr:{autoSwitchBitrate:{}}}};e.control&&t.controls.update({name:"dash-quality",position:"right",html:p,style:{padding:"0 10px"},selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:e=>(h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html)}),e.setting&&t.setting.update({name:"dash-quality",tooltip:p,html:a,icon:i.default,width:200,selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:function(e){return h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html}})}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginDashQuality"}}}n.default=u,u.env="production",u.version="2.0.0",u.build="2023-04-23 13:41:50","undefined"!=typeof window&&(window.artplayerPluginDashQuality=u)},{"bundle-text:./image.svg":"kcayM","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],kcayM:[function(e,t,n){t.exports=''},{}],"9pCYc":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["92dvd"],"92dvd","parcelRequire4dc0"); \ No newline at end of file diff --git a/packages/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.legacy.js b/packages/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.legacy.js index bc0b689a9..e778fc5c5 100644 --- a/packages/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.legacy.js +++ b/packages/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.legacy.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-dash-quality.js v1.0.0 + * artplayer-plugin-dash-quality.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,o,r){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof i[o]&&i[o],a=u.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!a[t]){if(!e[t]){var r="function"==typeof i[o]&&i[o];if(!n&&r)return r(t,!0);if(u)return u(t,!0);if(l&&"string"==typeof t)return l(t);var f=new Error("Cannot find module '"+t+"'");throw f.code="MODULE_NOT_FOUND",f}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var s=a[t]=new d.Module(t);e[t][0].call(s.exports,c,s,s.exports,this)}return a[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=a,d.parent=u,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return i[o]}}),i[o]=d;for(var f=0;f{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;return t.on("ready",(function(){const r=t.dash||window.dash;o(r&&r.getVideoElement()===n,'Cannot find instance of Dash from "art.dash" or "window.dash"');const u=e.auto||"Auto",a=e.title||"Quality",l=r.getBitrateInfoListFor("video"),d=r.getQualityFor("video"),f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.getSettings(),c=l[d],p=s?.streaming?.abr?.autoSwitchBitrate?.video?u:f(c),h={streaming:{abr:{autoSwitchBitrate:{}}}};e.control&&t.controls.add({name:"dash-quality",position:"right",html:p,style:{padding:"0 10px"},selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:e=>(h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html)}),e.setting&&t.setting.add({name:"dash-quality",tooltip:p,html:a,icon:i.default,width:200,selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:function(e){return h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html}})})),{name:"artplayerPluginDashQuality"}}}n.default=u,u.env="production",u.version="1.0.0",u.build="2023-04-17 23:16:14","undefined"!=typeof window&&(window.artplayerPluginDashQuality=u)},{"bundle-text:./image.svg":"48QdU","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"48QdU":[function(e,t,n){t.exports=''},{}],"47PTV":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["1XYOW"],"1XYOW","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,n,o,r){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof i[o]&&i[o],a=u.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!a[t]){if(!e[t]){var r="function"==typeof i[o]&&i[o];if(!n&&r)return r(t,!0);if(u)return u(t,!0);if(l&&"string"==typeof t)return l(t);var f=new Error("Cannot find module '"+t+"'");throw f.code="MODULE_NOT_FOUND",f}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var s=a[t]=new d.Module(t);e[t][0].call(s.exports,c,s,s.exports,this)}return a[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=a,d.parent=u,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return i[o]}}),i[o]=d;for(var f=0;f{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function r(){const r=t.dash||window.dash;o(r&&r.getVideoElement()===n,'Cannot find instance of Dash from "art.dash" or "window.dash"');const u=e.auto||"Auto",a=e.title||"Quality",l=r.getBitrateInfoListFor("video"),d=r.getQualityFor("video"),f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.getSettings(),c=l[d],p=s?.streaming?.abr?.autoSwitchBitrate?.video?u:f(c),h={streaming:{abr:{autoSwitchBitrate:{}}}};e.control&&t.controls.update({name:"dash-quality",position:"right",html:p,style:{padding:"0 10px"},selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:e=>(h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html)}),e.setting&&t.setting.update({name:"dash-quality",tooltip:p,html:a,icon:i.default,width:200,selector:l.map(((e,t)=>({html:f(e),level:t,default:c===e}))),onSelect:function(e){return h.streaming.abr.autoSwitchBitrate.video=!1,r.updateSettings(h),r.setQualityFor("video",e.level,!0),e.html}})}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginDashQuality"}}}n.default=u,u.env="production",u.version="2.0.0",u.build="2023-04-23 13:41:50","undefined"!=typeof window&&(window.artplayerPluginDashQuality=u)},{"bundle-text:./image.svg":"48QdU","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"48QdU":[function(e,t,n){t.exports=''},{}],"47PTV":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["1XYOW"],"1XYOW","parcelRequire4dc0"); \ No newline at end of file diff --git a/packages/artplayer-plugin-dash-quality/package.json b/packages/artplayer-plugin-dash-quality/package.json index 3719c927b..3852602f2 100644 --- a/packages/artplayer-plugin-dash-quality/package.json +++ b/packages/artplayer-plugin-dash-quality/package.json @@ -1,6 +1,6 @@ { "license": "MIT", - "version": "1.0.0", + "version": "2.0.0", "name": "artplayer-plugin-dash-quality", "types": "types/artplayer-plugin-dash-quality.d.ts", "description": "Iframe plugin for ArtPlayer", @@ -21,4 +21,4 @@ "video", "player" ] -} +} \ No newline at end of file diff --git a/packages/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js b/packages/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js index 392436b5b..194bc7701 100644 --- a/packages/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js +++ b/packages/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-hls-quality.js v1.0.2 + * artplayer-plugin-hls-quality.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,o,r){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof l[o]&&l[o],u=i.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!u[t]){if(!e[t]){var r="function"==typeof l[o]&&l[o];if(!n&&r)return r(t,!0);if(i)return i(t,!0);if(f&&"string"==typeof t)return f(t);var s=new Error("Cannot find module '"+t+"'");throw s.code="MODULE_NOT_FOUND",s}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var a=u[t]=new d.Module(t);e[t][0].call(a.exports,c,a,a.exports,this)}return u[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=u,d.parent=i,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return l[o]}}),l[o]=d;for(var s=0;s{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;return t.on("ready",(function(){const r=t.hls||window.hls;o(r&&r.media===n,'Cannot find instance of HLS from "art.hls" or "window.hls"');const i=e.auto||"Auto",u=e.title||"Quality",f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),d=r.levels[r.currentLevel],s=d?f(d):i;e.control&&t.controls.add({name:"hls-quality",position:"right",html:s,style:{padding:"0 10px"},selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:d===e}))),onSelect:e=>(r.currentLevel=e.level,t.loading.show=!0,e.html)}),e.setting&&t.setting.add({name:"hls-quality",tooltip:s,html:u,icon:l.default,width:200,selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:d===e}))),onSelect:function(e){return r.currentLevel=e.level,t.loading.show=!0,e.html}})})),{name:"artplayerPluginHlsQuality"}}}n.default=i,i.env="production",i.version="1.0.2",i.build="2023-04-17 23:16:13","undefined"!=typeof window&&(window.artplayerPluginHlsQuality=i)},{"bundle-text:./image.svg":"5VXix","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5VXix":[function(e,t,n){t.exports=''},{}],"9pCYc":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["eEHR6"],"eEHR6","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,n,o,r){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof l[o]&&l[o],u=i.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(t,n){if(!u[t]){if(!e[t]){var r="function"==typeof l[o]&&l[o];if(!n&&r)return r(t,!0);if(i)return i(t,!0);if(f&&"string"==typeof t)return f(t);var d=new Error("Cannot find module '"+t+"'");throw d.code="MODULE_NOT_FOUND",d}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var a=u[t]=new s.Module(t);e[t][0].call(a.exports,c,a,a.exports,this)}return u[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:s(t)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=u,s.parent=i,s.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(s,"root",{get:function(){return l[o]}}),l[o]=s;for(var d=0;d{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function r(){const r=t.hls||window.hls;o(r&&r.media===n,'Cannot find instance of HLS from "art.hls" or "window.hls"');const i=e.auto||"Auto",u=e.title||"Quality",f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.levels[r.currentLevel],d=s?f(s):i;e.control&&t.controls.update({name:"hls-quality",position:"right",html:d,style:{padding:"0 10px"},selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:s===e}))),onSelect:e=>(r.currentLevel=e.level,t.loading.show=!0,e.html)}),e.setting&&t.setting.update({name:"hls-quality",tooltip:d,html:u,icon:l.default,width:200,selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:s===e}))),onSelect:function(e){return r.currentLevel=e.level,t.loading.show=!0,e.html}})}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginHlsQuality"}}}n.default=i,i.env="production",i.version="2.0.0",i.build="2023-04-23 13:41:49","undefined"!=typeof window&&(window.artplayerPluginHlsQuality=i)},{"bundle-text:./image.svg":"5VXix","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"5VXix":[function(e,t,n){t.exports=''},{}],"9pCYc":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["eEHR6"],"eEHR6","parcelRequire4dc0"); \ No newline at end of file diff --git a/packages/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.legacy.js b/packages/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.legacy.js index 732e900e0..31cbec718 100644 --- a/packages/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.legacy.js +++ b/packages/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.legacy.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-hls-quality.js v1.0.2 + * artplayer-plugin-hls-quality.js v2.0.0 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,o,r){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof l[o]&&l[o],u=i.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!u[t]){if(!e[t]){var r="function"==typeof l[o]&&l[o];if(!n&&r)return r(t,!0);if(i)return i(t,!0);if(f&&"string"==typeof t)return f(t);var s=new Error("Cannot find module '"+t+"'");throw s.code="MODULE_NOT_FOUND",s}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var a=u[t]=new d.Module(t);e[t][0].call(a.exports,c,a,a.exports,this)}return u[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=u,d.parent=i,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return l[o]}}),l[o]=d;for(var s=0;s{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;return t.on("ready",(function(){const r=t.hls||window.hls;o(r&&r.media===n,'Cannot find instance of HLS from "art.hls" or "window.hls"');const i=e.auto||"Auto",u=e.title||"Quality",f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),d=r.levels[r.currentLevel],s=d?f(d):i;e.control&&t.controls.add({name:"hls-quality",position:"right",html:s,style:{padding:"0 10px"},selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:d===e}))),onSelect:e=>(r.currentLevel=e.level,t.loading.show=!0,e.html)}),e.setting&&t.setting.add({name:"hls-quality",tooltip:s,html:u,icon:l.default,width:200,selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:d===e}))),onSelect:function(e){return r.currentLevel=e.level,t.loading.show=!0,e.html}})})),{name:"artplayerPluginHlsQuality"}}}n.default=i,i.env="production",i.version="1.0.2",i.build="2023-04-17 23:16:13","undefined"!=typeof window&&(window.artplayerPluginHlsQuality=i)},{"bundle-text:./image.svg":"9cAMb","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"9cAMb":[function(e,t,n){t.exports=''},{}],"47PTV":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["3yim4"],"3yim4","parcelRequire4dc0"); \ No newline at end of file +!function(e,t,n,o,r){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof l[o]&&l[o],u=i.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(t,n){if(!u[t]){if(!e[t]){var r="function"==typeof l[o]&&l[o];if(!n&&r)return r(t,!0);if(i)return i(t,!0);if(f&&"string"==typeof t)return f(t);var d=new Error("Cannot find module '"+t+"'");throw d.code="MODULE_NOT_FOUND",d}c.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},c.cache={};var a=u[t]=new s.Module(t);e[t][0].call(a.exports,c,a,a.exports,this)}return u[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:s(t)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=u,s.parent=i,s.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(s,"root",{get:function(){return l[o]}}),l[o]=s;for(var d=0;d{const{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function r(){const r=t.hls||window.hls;o(r&&r.media===n,'Cannot find instance of HLS from "art.hls" or "window.hls"');const i=e.auto||"Auto",u=e.title||"Quality",f=e.getResolution||(e=>(e.height||"Unknown ")+"P"),s=r.levels[r.currentLevel],d=s?f(s):i;e.control&&t.controls.update({name:"hls-quality",position:"right",html:d,style:{padding:"0 10px"},selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:s===e}))),onSelect:e=>(r.currentLevel=e.level,t.loading.show=!0,e.html)}),e.setting&&t.setting.update({name:"hls-quality",tooltip:d,html:u,icon:l.default,width:200,selector:r.levels.map(((e,t)=>({html:f(e),level:e.level||t,default:s===e}))),onSelect:function(e){return r.currentLevel=e.level,t.loading.show=!0,e.html}})}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginHlsQuality"}}}n.default=i,i.env="production",i.version="2.0.0",i.build="2023-04-23 13:41:50","undefined"!=typeof window&&(window.artplayerPluginHlsQuality=i)},{"bundle-text:./image.svg":"9cAMb","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"9cAMb":[function(e,t,n){t.exports=''},{}],"47PTV":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["3yim4"],"3yim4","parcelRequire4dc0"); \ No newline at end of file diff --git a/packages/artplayer-plugin-hls-quality/package.json b/packages/artplayer-plugin-hls-quality/package.json index 51975605d..b333f5c3a 100644 --- a/packages/artplayer-plugin-hls-quality/package.json +++ b/packages/artplayer-plugin-hls-quality/package.json @@ -1,6 +1,6 @@ { "license": "MIT", - "version": "1.0.2", + "version": "2.0.0", "name": "artplayer-plugin-hls-quality", "types": "types/artplayer-plugin-hls-quality.d.ts", "description": "Iframe plugin for ArtPlayer", @@ -21,4 +21,4 @@ "video", "player" ] -} +} \ No newline at end of file diff --git a/packages/artplayer-plugin-vtt-thumbnail/dist/artplayer-plugin-vtt-thumbnail.js b/packages/artplayer-plugin-vtt-thumbnail/dist/artplayer-plugin-vtt-thumbnail.js index 300a046ad..12827ac5a 100644 --- a/packages/artplayer-plugin-vtt-thumbnail/dist/artplayer-plugin-vtt-thumbnail.js +++ b/packages/artplayer-plugin-vtt-thumbnail/dist/artplayer-plugin-vtt-thumbnail.js @@ -4,4 +4,4 @@ * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ -!function(e,t,n,r,o){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof i[r]&&i[r],u=l.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,n){if(!u[t]){if(!e[t]){var o="function"==typeof i[r]&&i[r];if(!n&&o)return o(t,!0);if(l)return l(t,!0);if(s&&"string"==typeof t)return s(t);var a=new Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(n){var r=e[t][1][n];return null!=r?r:n},d.cache={};var c=u[t]=new f.Module(t);e[t][0].call(c.exports,d,c,c.exports,this)}return u[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=u,f.parent=l,f.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(f,"root",{get:function(){return i[r]}}),i[r]=f;for(var a=0;a{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:s}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),f=u.find((e=>l>=e.start&&l<=e.end));if(!f)return n(e,"display","none");n(e,"backgroundImage",`url(${f.url})`),n(e,"height",`${f.h}px`),n(e,"width",`${f.w}px`),n(e,"backgroundPosition",`-${f.x}px -${f.y}px`),s<=f.w/2?n(e,"left",0):s>o.clientWidth-f.w/2?n(e,"left",o.clientWidth-f.w+"px"):n(e,"left",s-f.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{t||n(e,"display","none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-04-17 23:16:12","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"4IFMi","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4IFMi":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,s=i.match(u),f=/(.*)#(\w{4})=(.*)/i,a=l.match(f),c=Math.floor(r(s[1])),d=Math.floor(r(s[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;e{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:s}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),f=u.find((e=>l>=e.start&&l<=e.end));if(!f)return n(e,"display","none");n(e,"backgroundImage",`url(${f.url})`),n(e,"height",`${f.h}px`),n(e,"width",`${f.w}px`),n(e,"backgroundPosition",`-${f.x}px -${f.y}px`),s<=f.w/2?n(e,"left",0):s>o.clientWidth-f.w/2?n(e,"left",o.clientWidth-f.w+"px"):n(e,"left",s-f.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{t||n(e,"display","none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-04-23 13:41:48","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"4IFMi","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4IFMi":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,s=i.match(u),f=/(.*)#(\w{4})=(.*)/i,a=l.match(f),c=Math.floor(r(s[1])),d=Math.floor(r(s[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;e{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:f}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),s=u.find((e=>l>=e.start&&l<=e.end));if(!s)return n(e,"display","none");n(e,"backgroundImage",`url(${s.url})`),n(e,"height",`${s.h}px`),n(e,"width",`${s.w}px`),n(e,"backgroundPosition",`-${s.x}px -${s.y}px`),f<=s.w/2?n(e,"left",0):f>o.clientWidth-s.w/2?n(e,"left",o.clientWidth-s.w+"px"):n(e,"left",f-s.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{t||n(e,"display","none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-04-17 23:16:12","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"5fcbX","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5fcbX":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,f=i.match(u),s=/(.*)#(\w{4})=(.*)/i,a=l.match(s),c=Math.floor(r(f[1])),d=Math.floor(r(f[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;e{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:f}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),s=u.find((e=>l>=e.start&&l<=e.end));if(!s)return n(e,"display","none");n(e,"backgroundImage",`url(${s.url})`),n(e,"height",`${s.h}px`),n(e,"width",`${s.w}px`),n(e,"backgroundPosition",`-${s.x}px -${s.y}px`),f<=s.w/2?n(e,"left",0):f>o.clientWidth-s.w/2?n(e,"left",o.clientWidth-s.w+"px"):n(e,"left",f-s.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{t||n(e,"display","none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-04-23 13:41:49","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"5fcbX","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5fcbX":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,f=i.match(u),s=/(.*)#(\w{4})=(.*)/i,a=l.match(s),c=Math.floor(r(f[1])),d=Math.floor(r(f[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;e { app.component("Badge", VPBadge); } }; -var theme_default_default = theme; +var without_fonts_default = theme; export { default5 as VPDocAsideSponsors, default3 as VPHomeFeatures, @@ -36,6 +36,6 @@ export { default6 as VPTeamPage, default8 as VPTeamPageSection, default7 as VPTeamPageTitle, - theme_default_default as default + without_fonts_default as default }; //# sourceMappingURL=@theme_index.js.map diff --git a/packages/artplayer-vitepress/docs/.vitepress/cache/deps/@theme_index.js.map b/packages/artplayer-vitepress/docs/.vitepress/cache/deps/@theme_index.js.map index a39a642f6..d878aeafd 100644 --- a/packages/artplayer-vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +++ b/packages/artplayer-vitepress/docs/.vitepress/cache/deps/@theme_index.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../../../../node_modules/vitepress/dist/client/theme-default/index.js"], - "sourcesContent": ["import './styles/fonts.css';\r\nimport './styles/vars.css';\r\nimport './styles/base.css';\r\nimport './styles/utils.css';\r\nimport './styles/components/custom-block.css';\r\nimport './styles/components/vp-code.css';\r\nimport './styles/components/vp-code-group.css';\r\nimport './styles/components/vp-doc.css';\r\nimport './styles/components/vp-sponsor.css';\r\nimport VPBadge from './components/VPBadge.vue';\r\nimport Layout from './Layout.vue';\r\nimport NotFound from './NotFound.vue';\r\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\r\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\r\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\r\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\r\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\r\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\r\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\r\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\r\nconst theme = {\r\n Layout,\r\n NotFound,\r\n enhanceApp: ({ app }) => {\r\n app.component('Badge', VPBadge);\r\n }\r\n};\r\nexport default theme;\r\n"], - "mappings": ";AAAA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO,aAAa;AACpB,OAAO,YAAY;AACnB,OAAO,cAAc;AACrB,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAqC;AAC9C,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,gBAAgC;AACzC,IAAM,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,EACA,YAAY,CAAC,EAAE,IAAI,MAAM;AACrB,QAAI,UAAU,SAAS,OAAO;AAAA,EAClC;AACJ;AACA,IAAO,wBAAQ;", + "sources": ["../../../../../../node_modules/vitepress/dist/client/theme-default/index.js", "../../../../../../node_modules/vitepress/dist/client/theme-default/without-fonts.js"], + "sourcesContent": ["import './styles/fonts.css';\nexport * from './without-fonts';\nexport { default as default } from './without-fonts';\n", "import './styles/vars.css';\nimport './styles/base.css';\nimport './styles/utils.css';\nimport './styles/components/custom-block.css';\nimport './styles/components/vp-code.css';\nimport './styles/components/vp-code-group.css';\nimport './styles/components/vp-doc.css';\nimport './styles/components/vp-sponsor.css';\nimport VPBadge from './components/VPBadge.vue';\nimport Layout from './Layout.vue';\n// Note: if we add more optional components here, i.e. components that are not\n// used in the theme by default unless the user imports them, make sure to update\n// the `lazyDefaultThemeComponentsRE` regex in src/node/build/bundle.ts.\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\nconst theme = {\n Layout,\n enhanceApp: ({ app }) => {\n app.component('Badge', VPBadge);\n }\n};\nexport default theme;\n"], + "mappings": ";AAAA,OAAO;;;ACAP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO,aAAa;AACpB,OAAO,YAAY;AAInB,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAqC;AAC9C,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,gBAAgC;AACzC,IAAM,QAAQ;AAAA,EACV;AAAA,EACA,YAAY,CAAC,EAAE,IAAI,MAAM;AACrB,QAAI,UAAU,SAAS,OAAO;AAAA,EAClC;AACJ;AACA,IAAO,wBAAQ;", "names": ["default"] } diff --git a/packages/artplayer-vitepress/docs/.vitepress/cache/deps/_metadata.json b/packages/artplayer-vitepress/docs/.vitepress/cache/deps/_metadata.json index 550cbb252..7ce500937 100644 --- a/packages/artplayer-vitepress/docs/.vitepress/cache/deps/_metadata.json +++ b/packages/artplayer-vitepress/docs/.vitepress/cache/deps/_metadata.json @@ -1,17 +1,17 @@ { - "hash": "88983794", - "browserHash": "db84c00b", + "hash": "7f5afb63", + "browserHash": "3f04eb69", "optimized": { "vue": { - "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", + "src": "../../../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", "file": "vue.js", - "fileHash": "b317fa7b", + "fileHash": "9eb1e3e4", "needsInterop": false }, "@theme/index": { - "src": "../../../../node_modules/vitepress/dist/client/theme-default/index.js", + "src": "../../../../../../node_modules/vitepress/dist/client/theme-default/index.js", "file": "@theme_index.js", - "fileHash": "027e158b", + "fileHash": "87f468d1", "needsInterop": false } }, diff --git a/packages/artplayer-vitepress/docs/.vitepress/cache/deps/vue.js b/packages/artplayer-vitepress/docs/.vitepress/cache/deps/vue.js index cd812256b..2bee03fc0 100644 --- a/packages/artplayer-vitepress/docs/.vitepress/cache/deps/vue.js +++ b/packages/artplayer-vitepress/docs/.vitepress/cache/deps/vue.js @@ -1,4 +1,4 @@ -// node_modules/@vue/shared/dist/shared.esm-bundler.js +// ../../node_modules/@vue/shared/dist/shared.esm-bundler.js function makeMap(str, expectsLowerCase) { const map2 = /* @__PURE__ */ Object.create(null); const list = str.split(","); @@ -73,8 +73,8 @@ function normalizeProps(props) { } return props; } -var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; -var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; var isHTMLTag = makeMap(HTML_TAGS); var isSVGTag = makeMap(SVG_TAGS); @@ -181,6 +181,7 @@ var isArray = Array.isArray; var isMap = (val) => toTypeString(val) === "[object Map]"; var isSet = (val) => toTypeString(val) === "[object Set]"; var isDate = (val) => toTypeString(val) === "[object Date]"; +var isRegExp = (val) => toTypeString(val) === "[object RegExp]"; var isFunction = (val) => typeof val === "function"; var isString = (val) => typeof val === "string"; var isSymbol = (val) => typeof val === "symbol"; @@ -228,16 +229,20 @@ var def = (obj, key, value) => { value }); }; -var toNumber = (val) => { +var looseToNumber = (val) => { const n = parseFloat(val); return isNaN(n) ? val : n; }; +var toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; var _globalThis; var getGlobalThis = () => { return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); }; -// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js +// ../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js function warn(msg, ...args) { console.warn(`[Vue warn] ${msg}`, ...args); } @@ -245,7 +250,7 @@ var activeEffectScope; var EffectScope = class { constructor(detached = false) { this.detached = detached; - this.active = true; + this._active = true; this.effects = []; this.cleanups = []; this.parent = activeEffectScope; @@ -253,8 +258,11 @@ var EffectScope = class { this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1; } } + get active() { + return this._active; + } run(fn) { - if (this.active) { + if (this._active) { const currentEffectScope = activeEffectScope; try { activeEffectScope = this; @@ -281,7 +289,7 @@ var EffectScope = class { activeEffectScope = this.parent; } stop(fromParent) { - if (this.active) { + if (this._active) { let i, l; for (i = 0, l = this.effects.length; i < l; i++) { this.effects[i].stop(); @@ -302,7 +310,7 @@ var EffectScope = class { } } this.parent = void 0; - this.active = false; + this._active = false; } } }; @@ -500,7 +508,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) { if (type === "clear") { deps = [...depsMap.values()]; } else if (key === "length" && isArray(target)) { - const newLength = toNumber(newValue); + const newLength = Number(newValue); depsMap.forEach((dep, key2) => { if (key2 === "length" || key2 >= newLength) { deps.push(dep); @@ -584,11 +592,15 @@ function triggerEffect(effect2, debuggerEventExtraInfo) { } } } +function getDepFromReactive(object, key) { + var _a2; + return (_a2 = targetMap.get(object)) === null || _a2 === void 0 ? void 0 : _a2.get(key); +} var isNonTrackableKeys = makeMap(`__proto__,__v_isRef,__isVue`); var builtInSymbols = new Set( Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) ); -var get = createGetter(); +var get$1 = createGetter(); var shallowGet = createGetter(false, true); var readonlyGet = createGetter(true); var shallowReadonlyGet = createGetter(true, true); @@ -619,6 +631,11 @@ function createArrayInstrumentations() { }); return instrumentations; } +function hasOwnProperty2(key) { + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} function createGetter(isReadonly2 = false, shallow = false) { return function get2(target, key, receiver) { if (key === "__v_isReactive") { @@ -631,8 +648,13 @@ function createGetter(isReadonly2 = false, shallow = false) { return target; } const targetIsArray = isArray(target); - if (!isReadonly2 && targetIsArray && hasOwn(arrayInstrumentations, key)) { - return Reflect.get(arrayInstrumentations, key, receiver); + if (!isReadonly2) { + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty2; + } } const res = Reflect.get(target, key, receiver); if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { @@ -653,7 +675,7 @@ function createGetter(isReadonly2 = false, shallow = false) { return res; }; } -var set = createSetter(); +var set$1 = createSetter(); var shallowSet = createSetter(true); function createSetter(shallow = false) { return function set2(target, key, value, receiver) { @@ -692,7 +714,7 @@ function deleteProperty(target, key) { } return result; } -function has(target, key) { +function has$1(target, key) { const result = Reflect.has(target, key); if (!isSymbol(key) || !builtInSymbols.has(key)) { track(target, "has", key); @@ -704,10 +726,10 @@ function ownKeys(target) { return Reflect.ownKeys(target); } var mutableHandlers = { - get, - set, + get: get$1, + set: set$1, deleteProperty, - has, + has: has$1, ownKeys }; var readonlyHandlers = { @@ -734,7 +756,7 @@ var shallowReadonlyHandlers = extend({}, readonlyHandlers, { }); var toShallow = (value) => value; var getProto = (v) => Reflect.getPrototypeOf(v); -function get$1(target, key, isReadonly2 = false, isShallow3 = false) { +function get(target, key, isReadonly2 = false, isShallow3 = false) { target = target[ "__v_raw" /* ReactiveFlags.RAW */ @@ -757,7 +779,7 @@ function get$1(target, key, isReadonly2 = false, isShallow3 = false) { target.get(key); } } -function has$1(key, isReadonly2 = false) { +function has(key, isReadonly2 = false) { const target = this[ "__v_raw" /* ReactiveFlags.RAW */ @@ -791,7 +813,7 @@ function add(value) { } return this; } -function set$1(key, value) { +function set(key, value) { value = toRaw(value); const target = toRaw(this); const { has: has2, get: get2 } = getProto(target); @@ -894,41 +916,41 @@ function createReadonlyMethod(type) { function createInstrumentations() { const mutableInstrumentations2 = { get(key) { - return get$1(this, key); + return get(this, key); }, get size() { return size(this); }, - has: has$1, + has, add, - set: set$1, + set, delete: deleteEntry, clear, forEach: createForEach(false, false) }; const shallowInstrumentations2 = { get(key) { - return get$1(this, key, false, true); + return get(this, key, false, true); }, get size() { return size(this); }, - has: has$1, + has, add, - set: set$1, + set, delete: deleteEntry, clear, forEach: createForEach(false, true) }; const readonlyInstrumentations2 = { get(key) { - return get$1(this, key, true); + return get(this, key, true); }, get size() { return size(this, true); }, has(key) { - return has$1.call(this, key, true); + return has.call(this, key, true); }, add: createReadonlyMethod( "add" @@ -950,13 +972,13 @@ function createInstrumentations() { }; const shallowReadonlyInstrumentations2 = { get(key) { - return get$1(this, key, true, true); + return get(this, key, true, true); }, get size() { return size(this, true); }, has(key) { - return has$1.call(this, key, true); + return has.call(this, key, true); }, add: createReadonlyMethod( "add" @@ -1146,16 +1168,17 @@ function trackRefValue(ref2) { } function triggerRefValue(ref2, newVal) { ref2 = toRaw(ref2); - if (ref2.dep) { + const dep = ref2.dep; + if (dep) { if (true) { - triggerEffects(ref2.dep, { + triggerEffects(dep, { target: ref2, type: "set", key: "value", newValue: newVal }); } else { - triggerEffects(ref2.dep); + triggerEffects(dep); } } } @@ -1259,18 +1282,21 @@ var ObjectRefImpl = class { set value(newVal) { this._object[this._key] = newVal; } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } }; function toRef(object, key, defaultValue) { const val = object[key]; return isRef(val) ? val : new ObjectRefImpl(object, key, defaultValue); } -var _a; +var _a$1; var ComputedRefImpl = class { constructor(getter, _setter, isReadonly2, isSSR) { this._setter = _setter; this.dep = void 0; this.__v_isRef = true; - this[_a] = false; + this[_a$1] = false; this._dirty = true; this.effect = new ReactiveEffect(getter, () => { if (!this._dirty) { @@ -1298,7 +1324,7 @@ var ComputedRefImpl = class { this._setter(newValue); } }; -_a = "__v_isReadonly"; +_a$1 = "__v_isReadonly"; function computed(getterOrOptions, debugOptions, isSSR = false) { let getter; let setter; @@ -1319,11 +1345,11 @@ function computed(getterOrOptions, debugOptions, isSSR = false) { } return cRef; } -var _a$1; +var _a; var tick = Promise.resolve(); -_a$1 = "__v_isReadonly"; +_a = "__v_isReadonly"; -// node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +// ../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js var stack = []; function pushWarningContext(vnode) { stack.push(vnode); @@ -1419,6 +1445,17 @@ function formatProp(key, value, raw) { return raw ? value : [`${key}=`, value]; } } +function assertNumber(val, type) { + if (false) + return; + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn2(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn2(`${type} is NaN - the duration expression might be incorrect.`); + } +} var ErrorTypeStrings = { [ "sp" @@ -1870,7 +1907,7 @@ function tryWrap(fn) { var devtools; var buffer = []; var devtoolsNotInstalled = false; -function emit(event, ...args) { +function emit$1(event, ...args) { if (devtools) { devtools.emit(event, ...args); } else if (!devtoolsNotInstalled) { @@ -1884,12 +1921,14 @@ function setDevtoolsHook(hook, target) { devtools.enabled = true; buffer.forEach(({ event, args }) => devtools.emit(event, ...args)); buffer = []; - } else if (// handle late devtools injection - only do this if we are in an actual - // browser environment to avoid the timer handle stalling test runner exit - // (#4815) - typeof window !== "undefined" && // some envs mock window but not fully - window.HTMLElement && // also exclude jsdom - !((_b = (_a2 = window.navigator) === null || _a2 === void 0 ? void 0 : _a2.userAgent) === null || _b === void 0 ? void 0 : _b.includes("jsdom"))) { + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + !((_b = (_a2 = window.navigator) === null || _a2 === void 0 ? void 0 : _a2.userAgent) === null || _b === void 0 ? void 0 : _b.includes("jsdom")) + ) { const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; replay.push((newHook) => { setDevtoolsHook(newHook, target); @@ -1907,7 +1946,7 @@ function setDevtoolsHook(hook, target) { } } function devtoolsInitApp(app, version2) { - emit("app:init", app, version2, { + emit$1("app:init", app, version2, { Fragment, Text, Comment, @@ -1915,7 +1954,7 @@ function devtoolsInitApp(app, version2) { }); } function devtoolsUnmountApp(app) { - emit("app:unmount", app); + emit$1("app:unmount", app); } var devtoolsComponentAdded = createDevtoolsComponentHook( "component:added" @@ -1937,7 +1976,7 @@ var devtoolsComponentRemoved = (component) => { }; function createDevtoolsComponentHook(hook) { return (component) => { - emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component); + emit$1(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component); }; } var devtoolsPerfStart = createDevtoolsPerformanceHook( @@ -1950,13 +1989,13 @@ var devtoolsPerfEnd = createDevtoolsPerformanceHook( ); function createDevtoolsPerformanceHook(hook) { return (component, type, time) => { - emit(hook, component.appContext.app, component.uid, component, type, time); + emit$1(hook, component.appContext.app, component.uid, component, type, time); }; } function devtoolsComponentEmit(component, event, params) { - emit("component:emit", component.appContext.app, component, event, params); + emit$1("component:emit", component.appContext.app, component, event, params); } -function emit$1(instance, event, ...rawArgs) { +function emit(instance, event, ...rawArgs) { if (instance.isUnmounted) return; const props = instance.vnode.props || EMPTY_OBJ; @@ -1988,7 +2027,7 @@ function emit$1(instance, event, ...rawArgs) { args = rawArgs.map((a) => isString(a) ? a.trim() : a); } if (number) { - args = rawArgs.map(toNumber); + args = rawArgs.map(looseToNumber); } } if (true) { @@ -2496,7 +2535,10 @@ function createSuspenseBoundary(vnode, parent, parentComponent, container, hidde console[console.info ? "info" : "log"](` is an experimental feature and its API will likely change.`); } const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove: remove2 } } = rendererInternals; - const timeout = toNumber(vnode.props && vnode.props.timeout); + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + if (true) { + assertNumber(timeout, `Suspense timeout`); + } const suspense = { vnode, parent, @@ -2821,7 +2863,7 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM const warnInvalidSource = (s) => { warn2(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`); }; - const instance = currentInstance; + const instance = getCurrentScope() === (currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.scope) ? currentInstance : null; let getter; let forceTrigger = false; let isMultiSource = false; @@ -3527,7 +3569,7 @@ var KeepAliveImpl = { } function pruneCacheEntry(key) { const cached = cache.get(key); - if (!current || cached.type !== current.type) { + if (!current || !isSameVNodeType(cached, current)) { unmount(cached); } else if (current) { resetShapeFlag(current); @@ -3556,7 +3598,7 @@ var KeepAliveImpl = { cache.forEach((cached) => { const { subTree, suspense } = instance; const vnode = getInnerChild(subTree); - if (cached.type === vnode.type) { + if (cached.type === vnode.type && cached.key === vnode.key) { resetShapeFlag(vnode); const da = vnode.component.da; da && queuePostRenderEffect(da, suspense); @@ -3626,7 +3668,7 @@ function matches(pattern, name) { return pattern.some((p2) => matches(p2, name)); } else if (isString(pattern)) { return pattern.split(",").includes(name); - } else if (pattern.test) { + } else if (isRegExp(pattern)) { return pattern.test(name); } return false; @@ -3703,7 +3745,10 @@ function injectHook(type, hook, target = currentInstance, prepend = false) { warn2(`${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`); } } -var createHook = (lifecycle) => (hook, target = currentInstance) => (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target); +var createHook = (lifecycle) => (hook, target = currentInstance) => ( + // post-create lifecycle registrations are noops during SSR (except for serverPrefetch) + (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target) +); var onBeforeMount = createHook( "bm" /* LifecycleHooks.BEFORE_MOUNT */ @@ -3925,7 +3970,9 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) { const rendered = createBlock( Fragment, { - key: props.key || validSlotContent && validSlotContent.key || `_${name}` + key: props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2 @@ -4016,7 +4063,11 @@ var PublicInstanceProxyHandlers = { } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { accessCache[key] = 2; return data[key]; - } else if ((normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)) { + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) + ) { accessCache[key] = 3; return props[key]; } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { @@ -4034,12 +4085,18 @@ var PublicInstanceProxyHandlers = { markAttrsAccessed(); } return publicGetter(instance); - } else if ((cssModule = type.__cssModules) && (cssModule = cssModule[key])) { + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { return cssModule; } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { accessCache[key] = 4; return ctx[key]; - } else if (globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)) { + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { { return globalProperties[key]; } @@ -4596,10 +4653,12 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) { const rawCurrentProps = toRaw(props); const [options] = instance.propsOptions; let hasAttrsChanged = false; - if (// always force full diff in dev - // - #1942 if hmr is enabled with sfc component - // - vite#872 non-sfc component used by sfc component - !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16)) { + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { if (patchFlag & 8) { const propsToUpdate = instance.vnode.dynamicProps; for (let i = 0; i < propsToUpdate.length; i++) { @@ -4640,9 +4699,13 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) { } let kebabKey; for (const key in rawCurrentProps) { - if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { + if (!rawProps || // for camelCase + !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { if (options) { - if (rawPrevProps && (rawPrevProps[key] !== void 0 || // for kebab-case + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case rawPrevProps[kebabKey] !== void 0)) { props[key] = resolvePropValue( options, @@ -4831,8 +4894,8 @@ function validatePropName(key) { return false; } function getType(ctor) { - const match = ctor && ctor.toString().match(/^\s*function (\w+)/); - return match ? match[1] : ctor === null ? "null" : ""; + const match = ctor && ctor.toString().match(/^\s*(function|class) (\w+)/); + return match ? match[2] : ctor === null ? "null" : ""; } function isSameType(a, b) { return getType(a) === getType(b); @@ -5048,7 +5111,7 @@ function createAppContext() { emitsCache: /* @__PURE__ */ new WeakMap() }; } -var uid = 0; +var uid$1 = 0; function createAppAPI(render2, hydrate2) { return function createApp2(rootComponent, rootProps = null) { if (!isFunction(rootComponent)) { @@ -5062,7 +5125,7 @@ function createAppAPI(render2, hydrate2) { const installedPlugins = /* @__PURE__ */ new Set(); let isMounted = false; const app = context.app = { - _uid: uid++, + _uid: uid$1++, _component: rootComponent, _props: rootProps, _container: null, @@ -5716,6 +5779,7 @@ function baseCreateRenderer(options, createHydrationFns) { if (dirs) { invokeDirectiveHook(vnode, null, parentComponent, "created"); } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); if (props) { for (const key in props) { if (key !== "value" && !isReservedProp(key)) { @@ -5729,7 +5793,6 @@ function baseCreateRenderer(options, createHydrationFns) { invokeVNodeHook(vnodeHook, parentComponent, vnode); } } - setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); if (true) { Object.defineProperty(el, "__vnode", { value: vnode, @@ -5857,7 +5920,9 @@ function baseCreateRenderer(options, createHydrationFns) { const container = ( // oldVNode may be an errored async setup() component inside Suspense // which will not have a mounted element - oldVNode.el && (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement // which also requires the correct parent container !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : ( @@ -5896,7 +5961,10 @@ function baseCreateRenderer(options, createHydrationFns) { const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; - if (isHmrUpdating || patchFlag & 2048) { + if ( + // #5523 dev root fragment may inherit directives + isHmrUpdating || patchFlag & 2048 + ) { patchFlag = 0; optimized = false; dynamicChildren = null; @@ -5915,11 +5983,13 @@ function baseCreateRenderer(options, createHydrationFns) { patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, isSVG, slotScopeIds); if (parentComponent && parentComponent.type.__hmrId) { traverseStaticChildren(n1, n2); - } else if (// #2080 if the stable fragment has a key, it's a