From 336627cae3591e9ce8fc66558cf515373021a9b5 Mon Sep 17 00:00:00 2001 From: Harvey Zack Date: Wed, 26 Apr 2023 10:54:26 +0800 Subject: [PATCH] build docs --- CHANGELOG_CN.md | 4 + docs/document/404.html | 4 +- docs/document/advanced/built-in.html | 6 +- docs/document/advanced/class.html | 6 +- docs/document/advanced/event.html | 6 +- docs/document/advanced/plugin.html | 6 +- docs/document/advanced/property.html | 6 +- .../{app.546320fc.js => app.7d14ddff.js} | 2 +- .../{theme.19151c29.js => theme.684410b9.js} | 2 +- .../chunks/virtual_search-data.25d9e286.js | 1419 ---------------- .../chunks/virtual_search-data.4fc4b49e.js | 1420 +++++++++++++++++ ...md.2ca1e61c.js => en_index.md.200697de.js} | 8 +- .../assets/en_index.md.200697de.lean.js | 1 + .../assets/en_index.md.2ca1e61c.lean.js | 1 - ...8649a5.js => en_plugin_ads.md.e600e108.js} | 2 +- ...n.js => en_plugin_ads.md.e600e108.lean.js} | 0 ...js => en_plugin_control-ui.md.6375a1c0.js} | 2 +- ... en_plugin_control-ui.md.6375a1c0.lean.js} | 0 ... => en_plugin_dash-quality.md.7b7d96df.js} | 2 +- ...n_plugin_dash-quality.md.7b7d96df.lean.js} | 0 ...s => en_plugin_hls-quality.md.21b0b3d5.js} | 2 +- ...en_plugin_hls-quality.md.21b0b3d5.lean.js} | 2 +- ...c57.js => en_plugin_iframe.md.d55b96e0.js} | 4 +- ...s => en_plugin_iframe.md.d55b96e0.lean.js} | 0 .../document/assets/index.md.250720c2.lean.js | 1 - ...ex.md.250720c2.js => index.md.580b57e8.js} | 8 +- .../document/assets/index.md.580b57e8.lean.js | 1 + ....77095e9c.js => plugin_ads.md.b672b9e1.js} | 2 +- ...lean.js => plugin_ads.md.b672b9e1.lean.js} | 0 ...3b.js => plugin_control-ui.md.cf063a1c.js} | 4 +- ... => plugin_control-ui.md.cf063a1c.lean.js} | 2 +- ...16848.js => plugin_danmuku.md.3409db0d.js} | 4 +- ....js => plugin_danmuku.md.3409db0d.lean.js} | 2 +- .../plugin_dash-quality.md.87a41b51.lean.js | 1 - ....js => plugin_dash-quality.md.e5eb5ed3.js} | 2 +- .../plugin_dash-quality.md.e5eb5ed3.lean.js | 1 + ...9.js => plugin_hls-quality.md.83b8ed33.js} | 2 +- ...=> plugin_hls-quality.md.83b8ed33.lean.js} | 2 +- ...d132ab.js => plugin_iframe.md.0e3d4605.js} | 4 +- ...n.js => plugin_iframe.md.0e3d4605.lean.js} | 0 docs/document/component/contextmenu.html | 6 +- docs/document/component/controls.html | 6 +- docs/document/component/layers.html | 6 +- docs/document/component/setting.html | 6 +- docs/document/en/advanced/built-in.html | 6 +- docs/document/en/advanced/class.html | 6 +- docs/document/en/advanced/event.html | 6 +- docs/document/en/advanced/plugin.html | 6 +- docs/document/en/advanced/property.html | 6 +- docs/document/en/component/contextmenu.html | 6 +- docs/document/en/component/controls.html | 6 +- docs/document/en/component/layers.html | 6 +- docs/document/en/component/setting.html | 6 +- docs/document/en/index.html | 16 +- docs/document/en/library/dash.html | 6 +- docs/document/en/library/flv.html | 6 +- docs/document/en/library/hls.html | 6 +- docs/document/en/plugin/ads.html | 10 +- docs/document/en/plugin/control-ui.html | 10 +- docs/document/en/plugin/dash-quality.html | 10 +- docs/document/en/plugin/hls-quality.html | 10 +- docs/document/en/plugin/iframe.html | 12 +- docs/document/en/start/option.html | 6 +- docs/document/hashmap.json | 2 +- docs/document/index.html | 16 +- docs/document/library/dash.html | 6 +- docs/document/library/flv.html | 6 +- docs/document/library/hls.html | 6 +- docs/document/plugin/ads.html | 10 +- docs/document/plugin/control-ui.html | 10 +- docs/document/plugin/danmuku.html | 10 +- docs/document/plugin/dash-quality.html | 10 +- docs/document/plugin/hls-quality.html | 10 +- docs/document/plugin/iframe.html | 12 +- docs/document/start/option.html | 6 +- docs/uncompiled/artplayer/index.js | 4 +- docs/uncompiled/artplayer/index.js.map | 2 +- packages/artplayer-vitepress/docs/en/index.md | 30 +- packages/artplayer-vitepress/docs/index.md | 30 +- packages/artplayer/src/setting/index.js | 2 +- packages/artplayer/src/style/mixins.less | 5 +- 81 files changed, 1673 insertions(+), 1615 deletions(-) rename docs/document/assets/{app.546320fc.js => app.7d14ddff.js} (95%) rename docs/document/assets/chunks/{theme.19151c29.js => theme.684410b9.js} (99%) delete mode 100644 docs/document/assets/chunks/virtual_search-data.25d9e286.js create mode 100644 docs/document/assets/chunks/virtual_search-data.4fc4b49e.js rename docs/document/assets/{en_index.md.2ca1e61c.js => en_index.md.200697de.js} (92%) create mode 100644 docs/document/assets/en_index.md.200697de.lean.js delete mode 100644 docs/document/assets/en_index.md.2ca1e61c.lean.js rename docs/document/assets/{en_plugin_ads.md.de8649a5.js => en_plugin_ads.md.e600e108.js} (96%) rename docs/document/assets/{en_plugin_ads.md.de8649a5.lean.js => en_plugin_ads.md.e600e108.lean.js} (100%) rename docs/document/assets/{en_plugin_control-ui.md.615d32e1.js => en_plugin_control-ui.md.6375a1c0.js} (95%) rename docs/document/assets/{en_plugin_control-ui.md.615d32e1.lean.js => en_plugin_control-ui.md.6375a1c0.lean.js} (100%) rename docs/document/assets/{en_plugin_dash-quality.md.b8157965.js => en_plugin_dash-quality.md.7b7d96df.js} (87%) rename docs/document/assets/{en_plugin_dash-quality.md.b8157965.lean.js => en_plugin_dash-quality.md.7b7d96df.lean.js} (100%) rename docs/document/assets/{en_plugin_hls-quality.md.e42166eb.js => en_plugin_hls-quality.md.21b0b3d5.js} (84%) rename docs/document/assets/{en_plugin_hls-quality.md.e42166eb.lean.js => en_plugin_hls-quality.md.21b0b3d5.lean.js} (68%) rename docs/document/assets/{en_plugin_iframe.md.4f32fc57.js => en_plugin_iframe.md.d55b96e0.js} (98%) rename docs/document/assets/{en_plugin_iframe.md.4f32fc57.lean.js => en_plugin_iframe.md.d55b96e0.lean.js} (100%) delete mode 100644 docs/document/assets/index.md.250720c2.lean.js rename docs/document/assets/{index.md.250720c2.js => index.md.580b57e8.js} (91%) create mode 100644 docs/document/assets/index.md.580b57e8.lean.js rename docs/document/assets/{plugin_ads.md.77095e9c.js => plugin_ads.md.b672b9e1.js} (96%) rename docs/document/assets/{plugin_ads.md.77095e9c.lean.js => plugin_ads.md.b672b9e1.lean.js} (100%) rename docs/document/assets/{plugin_control-ui.md.6632ae3b.js => plugin_control-ui.md.cf063a1c.js} (95%) rename docs/document/assets/{plugin_control-ui.md.6632ae3b.lean.js => plugin_control-ui.md.cf063a1c.lean.js} (90%) rename docs/document/assets/{plugin_danmuku.md.f1d16848.js => plugin_danmuku.md.3409db0d.js} (99%) rename docs/document/assets/{plugin_danmuku.md.f1d16848.lean.js => plugin_danmuku.md.3409db0d.lean.js} (87%) delete mode 100644 docs/document/assets/plugin_dash-quality.md.87a41b51.lean.js rename docs/document/assets/{plugin_dash-quality.md.87a41b51.js => plugin_dash-quality.md.e5eb5ed3.js} (82%) create mode 100644 docs/document/assets/plugin_dash-quality.md.e5eb5ed3.lean.js rename docs/document/assets/{plugin_hls-quality.md.40fc78b9.js => plugin_hls-quality.md.83b8ed33.js} (84%) rename docs/document/assets/{plugin_hls-quality.md.40fc78b9.lean.js => plugin_hls-quality.md.83b8ed33.lean.js} (67%) rename docs/document/assets/{plugin_iframe.md.23d132ab.js => plugin_iframe.md.0e3d4605.js} (98%) rename docs/document/assets/{plugin_iframe.md.23d132ab.lean.js => plugin_iframe.md.0e3d4605.lean.js} (100%) diff --git a/CHANGELOG_CN.md b/CHANGELOG_CN.md index ef39100e0..63ed05bfb 100644 --- a/CHANGELOG_CN.md +++ b/CHANGELOG_CN.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +## [5.0.3] - 2023-4-26 + +修改构建配置,`artplayer.legacy.js` 可以兼容到 `IE 11` + ## [5.0.2] - 2023-4-24 - 修复控制栏位置的样式兼容问题 diff --git a/docs/document/404.html b/docs/document/404.html index 2d09ae801..7c1115209 100644 --- a/docs/document/404.html +++ b/docs/document/404.html @@ -6,7 +6,7 @@ 404 | Artplayer.js - + @@ -15,7 +15,7 @@
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.
- diff --git a/docs/document/advanced/built-in.html b/docs/document/advanced/built-in.html index b44bd41a8..44793ffcd 100644 --- a/docs/document/advanced/built-in.html +++ b/docs/document/advanced/built-in.html @@ -6,10 +6,10 @@ 高级属性 | Artplayer.js - + - + @@ -210,7 +210,7 @@ art.on('ready', () => { art.plugins.add(myPlugin); }); - diff --git a/docs/document/advanced/class.html b/docs/document/advanced/class.html index 7bee43ef8..95a36a99f 100644 --- a/docs/document/advanced/class.html +++ b/docs/document/advanced/class.html @@ -6,10 +6,10 @@ 静态属性 | Artplayer.js - + - + @@ -25,7 +25,7 @@ }); 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);
- diff --git a/docs/document/advanced/event.html b/docs/document/advanced/event.html index 0058bd8da..23459c78c 100644 --- a/docs/document/advanced/event.html +++ b/docs/document/advanced/event.html @@ -6,10 +6,10 @@ 实例事件 | Artplayer.js - + - + @@ -365,7 +365,7 @@ 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 ​

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

- diff --git a/docs/document/advanced/plugin.html b/docs/document/advanced/plugin.html index eb71e046d..d59a1a687 100644 --- a/docs/document/advanced/plugin.html +++ b/docs/document/advanced/plugin.html @@ -6,10 +6,10 @@ 编写插件 | Artplayer.js - + - + @@ -116,7 +116,7 @@ }) ], }); - diff --git a/docs/document/advanced/property.html b/docs/document/advanced/property.html index 61d684ac3..3c1944c84 100644 --- a/docs/document/advanced/property.html +++ b/docs/document/advanced/property.html @@ -6,10 +6,10 @@ 实例属性 | Artplayer.js - + - + @@ -380,7 +380,7 @@ art.cssVar('--art-theme', 'green'); console.log(art.cssVar('--art-theme')); }); - diff --git a/docs/document/assets/app.546320fc.js b/docs/document/assets/app.7d14ddff.js similarity index 95% rename from docs/document/assets/app.546320fc.js rename to docs/document/assets/app.7d14ddff.js index 64e153c18..a886f895c 100644 --- a/docs/document/assets/app.546320fc.js +++ b/docs/document/assets/app.7d14ddff.js @@ -1 +1 @@ -import{d as p,R as s,a7 as i,u,p as c,k as l,a8 as d,a9 as f,aa as m,ab as h,ac as A,ad as g,ae as P,af as v,ag as y,ah as C,ai as w,aj as R,ak as _,H as b}from"./chunks/framework.f7d2e3c3.js";import{t as E}from"./chunks/theme.19151c29.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(E),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 j(){const e=S(),a=O();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 O(){return w(D)}function S(){let e=s,a;return R(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&&j().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{j as createApp}; +import{d as p,R as s,a7 as i,u,p as c,k as l,a8 as d,a9 as f,aa as m,ab as h,ac as A,ad as g,ae as P,af as v,ag as y,ah as C,ai as w,aj as R,ak as _,H as b}from"./chunks/framework.f7d2e3c3.js";import{t as E}from"./chunks/theme.684410b9.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(E),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 j(){const e=S(),a=O();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 O(){return w(D)}function S(){let e=s,a;return R(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&&j().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{j as createApp}; diff --git a/docs/document/assets/chunks/theme.19151c29.js b/docs/document/assets/chunks/theme.684410b9.js similarity index 99% rename from docs/document/assets/chunks/theme.19151c29.js rename to docs/document/assets/chunks/theme.684410b9.js index 5074e3109..0c59a1005 100644 --- a/docs/document/assets/chunks/theme.19151c29.js +++ b/docs/document/assets/chunks/theme.684410b9.js @@ -1,4 +1,4 @@ -import{d as $,o as c,c as r,r as h,n as B,a as O,t as L,_ as g,u as nt,b as l,e as bt,f as st,g as kt,h as S,i as $t,j as Pt,w as ee,k as ae,l as w,m as xt,p as J,q as Vt,P as wt,s as be,v as te,x as le,y as Ie,z as u,F as T,A as V,B as v,T as Te,C as k,D as _e,E as p,G as W,H as St,I as Ke,J as Lt,K as ot,L as Mt,M as D,N as Ct,O as Q,Q as at,R as It,S as R,U,V as Tt,W as We,X as Ae,Y as he,Z as At,$ as ie,a0 as Be,a1 as Bt,a2 as Nt,a3 as zt,a4 as Ht,a5 as Et,a6 as Dt}from"./framework.f7d2e3c3.js";const Ot=$({__name:"VPBadge",props:{text:null,type:null},setup(e){return(t,n)=>(c(),r("span",{class:B(["VPBadge",e.type??"tip"])},[h(t.$slots,"default",{},()=>[O(L(e.text),1)],!0)],2))}});const Ft=g(Ot,[["__scopeId","data-v-e233384c"]]),M=nt;function it(e){return $t()?(Pt(e),!0):!1}function ct(e){return typeof e=="function"?e():l(e)}const jt=typeof window<"u",lt=()=>{};function qt(...e){if(e.length!==1)return bt(...e);const t=e[0];return typeof t=="function"?st(kt(()=>({get:t,set:lt}))):S(t)}function Gt(e){var t;const n=ct(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ne=jt?window:void 0;function Rt(...e){let t,n,s,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,o]=e,t=Ne):[t,n,s,o]=e,!t)return lt;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(()=>[Gt(t),ct(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 it(f),f}function Ut(){const e=S(!1);return xt()&&J(()=>{e.value=!0}),e}function Kt(e){const t=Ut();return w(()=>(t.value,!!e()))}function Se(e,t={}){const{window:n=Ne}=t,s=Kt(()=>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!=null&&o.matches),o&&("addEventListener"in o?o.addEventListener("change",_):o.addListener(_)))};return ae(_),it(()=>i()),a}function Wt({window:e=Ne}={}){if(!e)return{x:S(0),y:S(0)};const t=S(e.scrollX),n=S(e.scrollY);return Rt(e,"scroll",()=>{t.value=e.scrollX,n.value=e.scrollY},{capture:!1,passive:!0}),{x:t,y:n}}function Yt(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 ce(e){if(Vt(e))return e.replace(wt,"");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 rt(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 Xt(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 Jt(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 K(){const e=le(),{theme:t,frontmatter:n}=M(),s=Se("(min-width: 960px)"),o=S(!1),a=w(()=>{const x=t.value.sidebar,A=e.data.relativePath;return x?rt(x,A):[]}),i=w(()=>n.value.sidebar!==!1&&a.value.length>0&&n.value.layout!=="home"),_=w(()=>d?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),d=w(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),f=w(()=>i.value&&s.value),y=w(()=>i.value?Xt(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 Qt(e,t){let n;ae(()=>{n=e.value?document.activeElement:void 0}),J(()=>{window.addEventListener("keyup",s)}),Ie(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function Zt(e){const{page:t}=M(),n=S(!1),s=w(()=>e.value.collapsed!=null),o=w(()=>!!e.value.link),a=w(()=>te(t.value.relativePath,e.value.link)),i=w(()=>a.value?!0:e.value.items?Me(t.value.relativePath,e.value.items):!1),_=w(()=>!!(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 en=$({__name:"VPSkipLink",setup(e){const t=le(),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)=>(c(),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 tn=g(en,[["__scopeId","data-v-994b33bc"]]),nn={key:0,class:"VPBackdrop"},sn=$({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(c(),V(Te,{name:"fade"},{default:v(()=>[e.show?(c(),r("div",nn)):k("",!0)]),_:1}))}});const on=g(sn,[["__scopeId","data-v-b2600058"]]);function an(){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=le();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=w(()=>{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:w(()=>Object.entries(n.value.locales).flatMap(([d,f])=>e&&i.value.label===f.label?[]:{text:f.label,link:cn(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 cn(e,t,n,s){return t?e.replace(/\/$/,"")+Le(n.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,s?".html":"")):e}const ln=["src","alt"],rn={inheritAttrs:!1},un=$({...rn,__name:"VPImage",props:{image:null,alt:null},setup(e){return(t,n)=>{const s=W("VPImage",!0);return e.image?(c(),r(T,{key:0},[typeof e.image=="string"||"src"in e.image?(c(),r("img",_e({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:l(be)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,ln)):(c(),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 ze=g(un,[["__scopeId","data-v-74766fef"]]),dn=["href"],_n=$({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=M(),{hasSidebar:s}=K(),{currentLang:o}=re();return(a,i)=>(c(),r("div",{class:B(["VPNavBarTitle",{"has-sidebar":l(s)}])},[u("a",{class:"title",href:l(ce)(l(o).link)},[h(a.$slots,"nav-bar-title-before",{},void 0,!0),l(n).logo?(c(),V(ze,{key:0,class:"logo",image:l(n).logo},null,8,["image"])):k("",!0),l(n).siteTitle?(c(),r(T,{key:1},[O(L(l(n).siteTitle),1)],64)):l(n).siteTitle===void 0?(c(),r(T,{key:2},[O(L(l(t).title),1)],64)):k("",!0),h(a.$slots,"nav-bar-title-after",{},void 0,!0)],8,dn)],2))}});const hn=g(_n,[["__scopeId","data-v-bd15f18e"]]),vn="/document/assets/flex-logo.2489261b.svg";function xe(e,t){return typeof e>"u"?t:e}function Ye(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;A--)if(A-x>=this.minlength){const N=de(d,o,f,b,x);m=y.substring(x,A),this.push_index(i,m,N,e,n)}break}case"reverse":if(2=this.minlength){const A=de(d,o,f,b,x);this.push_index(i,m,A,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 C=de(A+(o/2>A?0:1),o,f,H-1,I-1),z=this.bidirectional&&y>N;this.push_index(a,z?N:y,C,e,n,z?y:N)}}}}}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[A++]=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?Qe(_,n,0):void(e[e.length]=_)}return!t&&_};function Qe(e,t,n){return e=e.length===1?e[0]:pn(e),n||e.length>t?e.slice(n,n+t):e}function Ze(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 I=b.value.search(a.value,{enrich:!0}),C=[],z=0;z!I||!I.length?[]:I.reduce((z,E)=>(z[C(E)]||(z[C(E)]=[]),z[C(E)].push(E),z),{}),N=()=>{setTimeout(()=>{_.value&&_.value.focus()},100),H(),o.value=!0};J(async()=>{var E,G;const I=await St(()=>import("./virtual_search-data.25d9e286.js"),[]);d.value=I.default.INDEX_DATA,f.value=I.default.PREVIEW_LOOKUP,y.value=I.default.Options,i.value=window.location.origin+be(n.value==="root"?"/":n.value),P.value=((E=y.value)==null?void 0:E.buttonLabel)||P.value,m.value=((G=y.value)==null?void 0:G.placeholder)||m.value;var C=new F(y.value);C.import("reg",d.value.reg),C.import("cfg",d.value.cfg),C.import("map",d.value.map),C.import("ctx",d.value.ctx),b.value=C,s.value.innerHTML=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"⌘":"Ctrl";const z=q=>{var ue;q.key==="k"&&(q.ctrlKey||q.metaKey)&&(q.preventDefault(),N()),q.key==="Escape"&&((ue=a.value)==null?void 0:ue.length)==0&&o.value&&(o.value=!1)};window.addEventListener("keydown",z)});function H(){o.value=!1,a.value=""}return(I,C)=>{const z=W("ClientOnly");return c(),r("div",zn,[p(z,null,{default:v(()=>[(c(),V(Ct,{to:"body"},[Ke(u("div",{class:"VPPluginSearch-modal-back",onClick:C[2]||(C[2]=E=>o.value=!1)},[u("div",{class:"VPPluginSearch-modal",onClick:C[1]||(C[1]=ot(()=>{},["stop"]))},[u("form",Hn,[En,Ke(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":C[0]||(C[0]=E=>a.value=E),placeholder:m.value,maxlength:"64",type:"search",ref_key:"input",ref:_},null,8,Dn),[[Mt,a.value]])]),u("div",On,[(c(!0),r(T,null,D(A(l(x),E=>E.link.split("/").slice(0,-1).join("-")),(E,G)=>(c(),r("div",{key:G},[u("span",Fn,L(G?G.toString()[0].toUpperCase()+G.toString().slice(1):"Home"),1),(c(!0),r(T,null,D(E,q=>(c(),r("a",{href:i.value+q.link,key:q.id,onClick:H},[u("div",qn,[u("span",Gn,L(q.link.includes("#")?"#":"▤"),1),u("div",Rn,[u("h3",null,L(q.title),1),u("p",null,[u("div",{innerHTML:q.preview},null,8,Un)])]),Kn])],8,jn))),128))]))),128))]),Wn])],512),[[Lt,o.value]])]))]),_:1}),u("div",{id:"docsearch",onClick:C[3]||(C[3]=E=>N())},[u("button",Yn,[u("span",Xn,[Jn,u("span",Qn,L(P.value),1)]),u("span",Zn,[u("span",{class:"DocSearch-Button-Key",ref_key:"metaKey",ref:s},"Meta",512),es])])])])}}});const ns={},ss={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},os=u("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),as=u("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),is=[os,as];function cs(e,t){return c(),r("svg",ss,is)}const ls=g(ns,[["render",cs]]),rs=$({__name:"VPLink",props:{tag:null,href:null,noIcon:{type:Boolean},target:null,rel:null},setup(e){const t=e,n=w(()=>t.tag??t.href?"a":"span"),s=w(()=>t.href&&at.test(t.href));return(o,a)=>(c(),V(Q(l(n)),{class:B(["VPLink",{link:e.href}]),href:e.href?l(ce)(e.href):void 0,target:e.target||(l(s)?"_blank":void 0),rel:e.rel||(l(s)?"noreferrer":void 0)},{default:v(()=>[h(o.$slots,"default",{},void 0,!0),l(s)&&!e.noIcon?(c(),V(ls,{key:0,class:"icon"})):k("",!0)]),_:3},8,["class","href","target","rel"]))}});const Y=g(rs,[["__scopeId","data-v-87683ad2"]]),us=$({__name:"VPNavBarMenuLink",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(c(),V(Y,{class:B({VPNavBarMenuLink:!0,active:l(te)(l(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(()=>[O(L(e.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const ds=g(us,[["__scopeId","data-v-6dd6d312"]]),He=S();let ut=!1,we=0;function _s(e){const t=S(!1);if(It){!ut&&hs(),we++;const n=ee(He,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))});Ie(()=>{n(),we--,we||vs()})}return st(t)}function hs(){document.addEventListener("focusin",dt),ut=!0,He.value=document.activeElement}function vs(){document.removeEventListener("focusin",dt)}function dt(){He.value=document.activeElement}const fs={},ps={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ms=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),gs=[ms];function ys(e,t){return c(),r("svg",ps,gs)}const _t=g(fs,[["render",ys]]),bs={},ks={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},$s=u("circle",{cx:"12",cy:"12",r:"2"},null,-1),Ps=u("circle",{cx:"19",cy:"12",r:"2"},null,-1),xs=u("circle",{cx:"5",cy:"12",r:"2"},null,-1),Vs=[$s,Ps,xs];function ws(e,t){return c(),r("svg",ks,Vs)}const Ss=g(bs,[["render",ws]]),Ls={class:"VPMenuLink"},Ms=$({__name:"VPMenuLink",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(c(),r("div",Ls,[p(Y,{class:B({active:l(te)(l(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(()=>[O(L(e.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const ke=g(Ms,[["__scopeId","data-v-b9520bf2"]]),Cs={class:"VPMenuGroup"},Is={key:0,class:"title"},Ts=$({__name:"VPMenuGroup",props:{text:null,items:null},setup(e){return(t,n)=>(c(),r("div",Cs,[e.text?(c(),r("p",Is,L(e.text),1)):k("",!0),(c(!0),r(T,null,D(e.items,s=>(c(),r(T,null,["link"in s?(c(),V(ke,{key:0,item:s},null,8,["item"])):k("",!0)],64))),256))]))}});const As=g(Ts,[["__scopeId","data-v-2bec9359"]]),Bs={class:"VPMenu"},Ns={key:0,class:"items"},zs=$({__name:"VPMenu",props:{items:null},setup(e){return(t,n)=>(c(),r("div",Bs,[e.items?(c(),r("div",Ns,[(c(!0),r(T,null,D(e.items,s=>(c(),r(T,{key:s.text},["link"in s?(c(),V(ke,{key:0,item:s},null,8,["item"])):(c(),V(As,{key:1,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):k("",!0),h(t.$slots,"default",{},void 0,!0)]))}});const Hs=g(zs,[["__scopeId","data-v-7bffa9cd"]]),Es=["aria-expanded","aria-label"],Ds={key:0,class:"text"},Os={class:"menu"},Fs=$({__name:"VPFlyout",props:{icon:null,button:null,label:null,items:null},setup(e){const t=S(!1),n=S();_s({el:n,onBlur:s});function s(){t.value=!1}return(o,a)=>(c(),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?(c(),r("span",Ds,[e.icon?(c(),V(Q(e.icon),{key:0,class:"option-icon"})):k("",!0),O(" "+L(e.button)+" ",1),p(_t,{class:"text-icon"})])):(c(),V(Ss,{key:1,class:"icon"}))],8,Es),u("div",Os,[p(Hs,{items:e.items},{default:v(()=>[h(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const Ee=g(Fs,[["__scopeId","data-v-64c29883"]]),js=$({__name:"VPNavBarMenuGroup",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(c(),V(Ee,{class:B({VPNavBarMenuGroup:!0,active:l(te)(l(t).relativePath,e.item.activeMatch,!!e.item.activeMatch)}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),qs=e=>(R("data-v-c6c3e6d4"),e=e(),U(),e),Gs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Rs=qs(()=>u("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Us=$({__name:"VPNavBarMenu",setup(e){const{theme:t}=M();return(n,s)=>l(t).nav?(c(),r("nav",Gs,[Rs,(c(!0),r(T,null,D(l(t).nav,o=>(c(),r(T,{key:o.text},["link"in o?(c(),V(ds,{key:0,item:o},null,8,["item"])):(c(),V(js,{key:1,item:o},null,8,["item"]))],64))),128))])):k("",!0)}});const Ks=g(Us,[["__scopeId","data-v-c6c3e6d4"]]),Ws={},Ys={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Xs=u("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),Js=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),Qs=[Xs,Js];function Zs(e,t){return c(),r("svg",Ys,Qs)}const ht=g(Ws,[["render",Zs]]),eo={class:"items"},to={class:"title"},no=$({__name:"VPNavBarTranslations",setup(e){const{theme:t}=M(),{localeLinks:n,currentLang:s}=re({correspondingLink:!0});return(o,a)=>l(n).length&&l(s).label?(c(),V(Ee,{key:0,class:"VPNavBarTranslations",icon:ht,label:l(t).langMenuLabel||"Change language"},{default:v(()=>[u("div",eo,[u("p",to,L(l(s).label),1),(c(!0),r(T,null,D(l(n),i=>(c(),V(ke,{key:i.link,item:i},null,8,["item"]))),128))])]),_:1},8,["label"])):k("",!0)}});const so=g(no,[["__scopeId","data-v-3bf1c934"]]);const oo={},ao={class:"VPSwitch",type:"button",role:"switch"},io={class:"check"},co={key:0,class:"icon"};function lo(e,t){return c(),r("button",ao,[u("span",io,[e.$slots.default?(c(),r("span",co,[h(e.$slots,"default",{},void 0,!0)])):k("",!0)])])}const ro=g(oo,[["render",lo],["__scopeId","data-v-0a2eba70"]]),uo={},_o={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ho=Tt('',9),vo=[ho];function fo(e,t){return c(),r("svg",_o,vo)}const po=g(uo,[["render",fo]]),mo={},go={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},yo=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),bo=[yo];function ko(e,t){return c(),r("svg",go,bo)}const $o=g(mo,[["render",ko]]),Po={title:"toggle dark mode"},xo=$({__name:"VPSwitchAppearance",setup(e){const{site:t,isDark:n}=M(),s=S(!1),o=typeof localStorage<"u"?a():()=>{};J(()=>{s.value=document.documentElement.classList.contains("dark")});function a(){const i=window.matchMedia("(prefers-color-scheme: dark)"),_=document.documentElement.classList;let d=localStorage.getItem(We),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(We,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 c,c as r,r as h,n as B,a as O,t as L,_ as g,u as nt,b as l,e as bt,f as st,g as kt,h as S,i as $t,j as Pt,w as ee,k as ae,l as w,m as xt,p as J,q as Vt,P as wt,s as be,v as te,x as le,y as Ie,z as u,F as T,A as V,B as v,T as Te,C as k,D as _e,E as p,G as W,H as St,I as Ke,J as Lt,K as ot,L as Mt,M as D,N as Ct,O as Q,Q as at,R as It,S as R,U,V as Tt,W as We,X as Ae,Y as he,Z as At,$ as ie,a0 as Be,a1 as Bt,a2 as Nt,a3 as zt,a4 as Ht,a5 as Et,a6 as Dt}from"./framework.f7d2e3c3.js";const Ot=$({__name:"VPBadge",props:{text:null,type:null},setup(e){return(t,n)=>(c(),r("span",{class:B(["VPBadge",e.type??"tip"])},[h(t.$slots,"default",{},()=>[O(L(e.text),1)],!0)],2))}});const Ft=g(Ot,[["__scopeId","data-v-e233384c"]]),M=nt;function it(e){return $t()?(Pt(e),!0):!1}function ct(e){return typeof e=="function"?e():l(e)}const jt=typeof window<"u",lt=()=>{};function qt(...e){if(e.length!==1)return bt(...e);const t=e[0];return typeof t=="function"?st(kt(()=>({get:t,set:lt}))):S(t)}function Gt(e){var t;const n=ct(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ne=jt?window:void 0;function Rt(...e){let t,n,s,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,o]=e,t=Ne):[t,n,s,o]=e,!t)return lt;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(()=>[Gt(t),ct(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 it(f),f}function Ut(){const e=S(!1);return xt()&&J(()=>{e.value=!0}),e}function Kt(e){const t=Ut();return w(()=>(t.value,!!e()))}function Se(e,t={}){const{window:n=Ne}=t,s=Kt(()=>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!=null&&o.matches),o&&("addEventListener"in o?o.addEventListener("change",_):o.addListener(_)))};return ae(_),it(()=>i()),a}function Wt({window:e=Ne}={}){if(!e)return{x:S(0),y:S(0)};const t=S(e.scrollX),n=S(e.scrollY);return Rt(e,"scroll",()=>{t.value=e.scrollX,n.value=e.scrollY},{capture:!1,passive:!0}),{x:t,y:n}}function Yt(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 ce(e){if(Vt(e))return e.replace(wt,"");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 rt(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 Xt(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 Jt(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 K(){const e=le(),{theme:t,frontmatter:n}=M(),s=Se("(min-width: 960px)"),o=S(!1),a=w(()=>{const x=t.value.sidebar,A=e.data.relativePath;return x?rt(x,A):[]}),i=w(()=>n.value.sidebar!==!1&&a.value.length>0&&n.value.layout!=="home"),_=w(()=>d?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),d=w(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),f=w(()=>i.value&&s.value),y=w(()=>i.value?Xt(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 Qt(e,t){let n;ae(()=>{n=e.value?document.activeElement:void 0}),J(()=>{window.addEventListener("keyup",s)}),Ie(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function Zt(e){const{page:t}=M(),n=S(!1),s=w(()=>e.value.collapsed!=null),o=w(()=>!!e.value.link),a=w(()=>te(t.value.relativePath,e.value.link)),i=w(()=>a.value?!0:e.value.items?Me(t.value.relativePath,e.value.items):!1),_=w(()=>!!(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 en=$({__name:"VPSkipLink",setup(e){const t=le(),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)=>(c(),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 tn=g(en,[["__scopeId","data-v-994b33bc"]]),nn={key:0,class:"VPBackdrop"},sn=$({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(c(),V(Te,{name:"fade"},{default:v(()=>[e.show?(c(),r("div",nn)):k("",!0)]),_:1}))}});const on=g(sn,[["__scopeId","data-v-b2600058"]]);function an(){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=le();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=w(()=>{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:w(()=>Object.entries(n.value.locales).flatMap(([d,f])=>e&&i.value.label===f.label?[]:{text:f.label,link:cn(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 cn(e,t,n,s){return t?e.replace(/\/$/,"")+Le(n.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,s?".html":"")):e}const ln=["src","alt"],rn={inheritAttrs:!1},un=$({...rn,__name:"VPImage",props:{image:null,alt:null},setup(e){return(t,n)=>{const s=W("VPImage",!0);return e.image?(c(),r(T,{key:0},[typeof e.image=="string"||"src"in e.image?(c(),r("img",_e({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:l(be)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,ln)):(c(),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 ze=g(un,[["__scopeId","data-v-74766fef"]]),dn=["href"],_n=$({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=M(),{hasSidebar:s}=K(),{currentLang:o}=re();return(a,i)=>(c(),r("div",{class:B(["VPNavBarTitle",{"has-sidebar":l(s)}])},[u("a",{class:"title",href:l(ce)(l(o).link)},[h(a.$slots,"nav-bar-title-before",{},void 0,!0),l(n).logo?(c(),V(ze,{key:0,class:"logo",image:l(n).logo},null,8,["image"])):k("",!0),l(n).siteTitle?(c(),r(T,{key:1},[O(L(l(n).siteTitle),1)],64)):l(n).siteTitle===void 0?(c(),r(T,{key:2},[O(L(l(t).title),1)],64)):k("",!0),h(a.$slots,"nav-bar-title-after",{},void 0,!0)],8,dn)],2))}});const hn=g(_n,[["__scopeId","data-v-bd15f18e"]]),vn="/document/assets/flex-logo.2489261b.svg";function xe(e,t){return typeof e>"u"?t:e}function Ye(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;A--)if(A-x>=this.minlength){const N=de(d,o,f,b,x);m=y.substring(x,A),this.push_index(i,m,N,e,n)}break}case"reverse":if(2=this.minlength){const A=de(d,o,f,b,x);this.push_index(i,m,A,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 C=de(A+(o/2>A?0:1),o,f,H-1,I-1),z=this.bidirectional&&y>N;this.push_index(a,z?N:y,C,e,n,z?y:N)}}}}}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[A++]=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?Qe(_,n,0):void(e[e.length]=_)}return!t&&_};function Qe(e,t,n){return e=e.length===1?e[0]:pn(e),n||e.length>t?e.slice(n,n+t):e}function Ze(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 I=b.value.search(a.value,{enrich:!0}),C=[],z=0;z!I||!I.length?[]:I.reduce((z,E)=>(z[C(E)]||(z[C(E)]=[]),z[C(E)].push(E),z),{}),N=()=>{setTimeout(()=>{_.value&&_.value.focus()},100),H(),o.value=!0};J(async()=>{var E,G;const I=await St(()=>import("./virtual_search-data.4fc4b49e.js"),[]);d.value=I.default.INDEX_DATA,f.value=I.default.PREVIEW_LOOKUP,y.value=I.default.Options,i.value=window.location.origin+be(n.value==="root"?"/":n.value),P.value=((E=y.value)==null?void 0:E.buttonLabel)||P.value,m.value=((G=y.value)==null?void 0:G.placeholder)||m.value;var C=new F(y.value);C.import("reg",d.value.reg),C.import("cfg",d.value.cfg),C.import("map",d.value.map),C.import("ctx",d.value.ctx),b.value=C,s.value.innerHTML=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"⌘":"Ctrl";const z=q=>{var ue;q.key==="k"&&(q.ctrlKey||q.metaKey)&&(q.preventDefault(),N()),q.key==="Escape"&&((ue=a.value)==null?void 0:ue.length)==0&&o.value&&(o.value=!1)};window.addEventListener("keydown",z)});function H(){o.value=!1,a.value=""}return(I,C)=>{const z=W("ClientOnly");return c(),r("div",zn,[p(z,null,{default:v(()=>[(c(),V(Ct,{to:"body"},[Ke(u("div",{class:"VPPluginSearch-modal-back",onClick:C[2]||(C[2]=E=>o.value=!1)},[u("div",{class:"VPPluginSearch-modal",onClick:C[1]||(C[1]=ot(()=>{},["stop"]))},[u("form",Hn,[En,Ke(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":C[0]||(C[0]=E=>a.value=E),placeholder:m.value,maxlength:"64",type:"search",ref_key:"input",ref:_},null,8,Dn),[[Mt,a.value]])]),u("div",On,[(c(!0),r(T,null,D(A(l(x),E=>E.link.split("/").slice(0,-1).join("-")),(E,G)=>(c(),r("div",{key:G},[u("span",Fn,L(G?G.toString()[0].toUpperCase()+G.toString().slice(1):"Home"),1),(c(!0),r(T,null,D(E,q=>(c(),r("a",{href:i.value+q.link,key:q.id,onClick:H},[u("div",qn,[u("span",Gn,L(q.link.includes("#")?"#":"▤"),1),u("div",Rn,[u("h3",null,L(q.title),1),u("p",null,[u("div",{innerHTML:q.preview},null,8,Un)])]),Kn])],8,jn))),128))]))),128))]),Wn])],512),[[Lt,o.value]])]))]),_:1}),u("div",{id:"docsearch",onClick:C[3]||(C[3]=E=>N())},[u("button",Yn,[u("span",Xn,[Jn,u("span",Qn,L(P.value),1)]),u("span",Zn,[u("span",{class:"DocSearch-Button-Key",ref_key:"metaKey",ref:s},"Meta",512),es])])])])}}});const ns={},ss={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},os=u("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),as=u("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),is=[os,as];function cs(e,t){return c(),r("svg",ss,is)}const ls=g(ns,[["render",cs]]),rs=$({__name:"VPLink",props:{tag:null,href:null,noIcon:{type:Boolean},target:null,rel:null},setup(e){const t=e,n=w(()=>t.tag??t.href?"a":"span"),s=w(()=>t.href&&at.test(t.href));return(o,a)=>(c(),V(Q(l(n)),{class:B(["VPLink",{link:e.href}]),href:e.href?l(ce)(e.href):void 0,target:e.target||(l(s)?"_blank":void 0),rel:e.rel||(l(s)?"noreferrer":void 0)},{default:v(()=>[h(o.$slots,"default",{},void 0,!0),l(s)&&!e.noIcon?(c(),V(ls,{key:0,class:"icon"})):k("",!0)]),_:3},8,["class","href","target","rel"]))}});const Y=g(rs,[["__scopeId","data-v-87683ad2"]]),us=$({__name:"VPNavBarMenuLink",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(c(),V(Y,{class:B({VPNavBarMenuLink:!0,active:l(te)(l(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(()=>[O(L(e.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const ds=g(us,[["__scopeId","data-v-6dd6d312"]]),He=S();let ut=!1,we=0;function _s(e){const t=S(!1);if(It){!ut&&hs(),we++;const n=ee(He,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))});Ie(()=>{n(),we--,we||vs()})}return st(t)}function hs(){document.addEventListener("focusin",dt),ut=!0,He.value=document.activeElement}function vs(){document.removeEventListener("focusin",dt)}function dt(){He.value=document.activeElement}const fs={},ps={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ms=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),gs=[ms];function ys(e,t){return c(),r("svg",ps,gs)}const _t=g(fs,[["render",ys]]),bs={},ks={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},$s=u("circle",{cx:"12",cy:"12",r:"2"},null,-1),Ps=u("circle",{cx:"19",cy:"12",r:"2"},null,-1),xs=u("circle",{cx:"5",cy:"12",r:"2"},null,-1),Vs=[$s,Ps,xs];function ws(e,t){return c(),r("svg",ks,Vs)}const Ss=g(bs,[["render",ws]]),Ls={class:"VPMenuLink"},Ms=$({__name:"VPMenuLink",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(c(),r("div",Ls,[p(Y,{class:B({active:l(te)(l(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(()=>[O(L(e.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const ke=g(Ms,[["__scopeId","data-v-b9520bf2"]]),Cs={class:"VPMenuGroup"},Is={key:0,class:"title"},Ts=$({__name:"VPMenuGroup",props:{text:null,items:null},setup(e){return(t,n)=>(c(),r("div",Cs,[e.text?(c(),r("p",Is,L(e.text),1)):k("",!0),(c(!0),r(T,null,D(e.items,s=>(c(),r(T,null,["link"in s?(c(),V(ke,{key:0,item:s},null,8,["item"])):k("",!0)],64))),256))]))}});const As=g(Ts,[["__scopeId","data-v-2bec9359"]]),Bs={class:"VPMenu"},Ns={key:0,class:"items"},zs=$({__name:"VPMenu",props:{items:null},setup(e){return(t,n)=>(c(),r("div",Bs,[e.items?(c(),r("div",Ns,[(c(!0),r(T,null,D(e.items,s=>(c(),r(T,{key:s.text},["link"in s?(c(),V(ke,{key:0,item:s},null,8,["item"])):(c(),V(As,{key:1,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):k("",!0),h(t.$slots,"default",{},void 0,!0)]))}});const Hs=g(zs,[["__scopeId","data-v-7bffa9cd"]]),Es=["aria-expanded","aria-label"],Ds={key:0,class:"text"},Os={class:"menu"},Fs=$({__name:"VPFlyout",props:{icon:null,button:null,label:null,items:null},setup(e){const t=S(!1),n=S();_s({el:n,onBlur:s});function s(){t.value=!1}return(o,a)=>(c(),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?(c(),r("span",Ds,[e.icon?(c(),V(Q(e.icon),{key:0,class:"option-icon"})):k("",!0),O(" "+L(e.button)+" ",1),p(_t,{class:"text-icon"})])):(c(),V(Ss,{key:1,class:"icon"}))],8,Es),u("div",Os,[p(Hs,{items:e.items},{default:v(()=>[h(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const Ee=g(Fs,[["__scopeId","data-v-64c29883"]]),js=$({__name:"VPNavBarMenuGroup",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(c(),V(Ee,{class:B({VPNavBarMenuGroup:!0,active:l(te)(l(t).relativePath,e.item.activeMatch,!!e.item.activeMatch)}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),qs=e=>(R("data-v-c6c3e6d4"),e=e(),U(),e),Gs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Rs=qs(()=>u("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Us=$({__name:"VPNavBarMenu",setup(e){const{theme:t}=M();return(n,s)=>l(t).nav?(c(),r("nav",Gs,[Rs,(c(!0),r(T,null,D(l(t).nav,o=>(c(),r(T,{key:o.text},["link"in o?(c(),V(ds,{key:0,item:o},null,8,["item"])):(c(),V(js,{key:1,item:o},null,8,["item"]))],64))),128))])):k("",!0)}});const Ks=g(Us,[["__scopeId","data-v-c6c3e6d4"]]),Ws={},Ys={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Xs=u("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),Js=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),Qs=[Xs,Js];function Zs(e,t){return c(),r("svg",Ys,Qs)}const ht=g(Ws,[["render",Zs]]),eo={class:"items"},to={class:"title"},no=$({__name:"VPNavBarTranslations",setup(e){const{theme:t}=M(),{localeLinks:n,currentLang:s}=re({correspondingLink:!0});return(o,a)=>l(n).length&&l(s).label?(c(),V(Ee,{key:0,class:"VPNavBarTranslations",icon:ht,label:l(t).langMenuLabel||"Change language"},{default:v(()=>[u("div",eo,[u("p",to,L(l(s).label),1),(c(!0),r(T,null,D(l(n),i=>(c(),V(ke,{key:i.link,item:i},null,8,["item"]))),128))])]),_:1},8,["label"])):k("",!0)}});const so=g(no,[["__scopeId","data-v-3bf1c934"]]);const oo={},ao={class:"VPSwitch",type:"button",role:"switch"},io={class:"check"},co={key:0,class:"icon"};function lo(e,t){return c(),r("button",ao,[u("span",io,[e.$slots.default?(c(),r("span",co,[h(e.$slots,"default",{},void 0,!0)])):k("",!0)])])}const ro=g(oo,[["render",lo],["__scopeId","data-v-0a2eba70"]]),uo={},_o={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ho=Tt('',9),vo=[ho];function fo(e,t){return c(),r("svg",_o,vo)}const po=g(uo,[["render",fo]]),mo={},go={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},yo=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),bo=[yo];function ko(e,t){return c(),r("svg",go,bo)}const $o=g(mo,[["render",ko]]),Po={title:"toggle dark mode"},xo=$({__name:"VPSwitchAppearance",setup(e){const{site:t,isDark:n}=M(),s=S(!1),o=typeof localStorage<"u"?a():()=>{};J(()=>{s.value=document.documentElement.classList.contains("dark")});function a(){const i=window.matchMedia("(prefers-color-scheme: dark)"),_=document.documentElement.classList;let d=localStorage.getItem(We),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(We,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.25d9e286.js b/docs/document/assets/chunks/virtual_search-data.25d9e286.js deleted file mode 100644 index 4244fd074..000000000 --- a/docs/document/assets/chunks/virtual_search-data.25d9e286.js +++ /dev/null @@ -1,1419 +0,0 @@ -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","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","2.37","9.11","10.14","11.36","27.31","38.31"],"subtitle":["0.12","2.36","9.12","11.35","27.38","38.38"],"loading":["0.13","2.34","9.13","11.33"],"hotkey":["0.14","2.6","9.14","11.5","27.20","38.20"],"mask":["0.15","2.35","9.15","11.34"],"setting":["0.16","2.39","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"],"实例事件":["2.0","11.0"],"ready":["2.1","11.1"],"restart":["2.2","11.2"],"loop":["2.3","4.29","13.29","27.14","38.14"],"pause":["2.4","4.2","11.3","13.2"],"play":["2.5","4.1","11.4","13.1"],"destroy":["2.7","4.4","11.6","13.4","26.9","37.9"],"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"],"resize":["2.15","10.25","11.15"],"view":["2.16","11.16"],"lock":["2.17","27.45","38.45"],"aspectratio":["2.18","4.28","11.17","13.28","27.17","38.17"],"autoheight":["2.19","4.30","11.18","13.30"],"autosize":["2.20","4.24","11.19","13.24","27.12","38.12"],"flip":["2.21","4.26","10.47","11.20","13.26","27.15","38.15"],"fullscreen":["2.22","4.18","10.48","11.21","13.18","27.23","38.23"],"fullscreenweb":["2.23","4.19","11.22","13.19","27.24","38.24"],"mini":["2.24","4.22","11.23","13.22"],"pip":["2.25","4.20","11.24","13.20","27.21","38.21"],"screenshot":["2.26","4.15","11.25","13.15","27.18","38.18"],"seek":["2.27","4.5","10.43","11.26","13.5"],"subtitleoffset":["2.28","11.27","27.25","38.25"],"subtitleupdate":["2.29","11.28"],"subtitleload":["2.30","11.29"],"subtitleswitch":["2.31","11.30"],"info":["2.32","10.38","11.31"],"layer":["2.33","11.32"],"control":["2.38","10.33","11.37"],"video":["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","2.60","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"],"volume":["4.8","10.23","10.24","10.42","13.8","27.8","38.8"],"url":["4.9","11.7","13.9","27.2","38.2"],"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"],"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"],"cssvar":["4.41","27.50","38.50"],"右键菜单":["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"],"debug":["10.13"],"indicator":["10.19","10.20","10.21","10.22"],"scroll":["10.26","10.27"],"auto":["10.28","10.29","10.30"],"reconnect":["10.31","10.32"],"db":["10.34"],"mobile":["10.35","10.36","10.37"],"fast":["10.39","10.40"],"touch":["10.41"],"progress":["10.44"],"playback":["10.45"],"aspect":["10.46"],"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"],"fastforward":["27.46","38.46"],"autoplayback":["27.47","38.47"],"autoorientation":["27.48","38.48"],"安装使用":["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","2.39","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","2.39","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.3","2.7","2.12","2.13","2.18","2.19","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","2.31","2.39","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","0.9","0.10","0.11","0.16","9.7"],"管理播放器的提示语":["0.8","9.8"],"只有一个":["0.8","9.8"],"show":["0.8","0.13","0.15","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"],"remove":["0.9","0.10","0.11","0.14","0.16","9.14"],"方法用于动态删除层":["0.9"],"管理播放器的控制器":["0.10","9.10"],"方法用于动态添加控制器":["0.10","9.10"],"方法用于动态删除控制器":["0.10"],"管理播放器的右键菜单":["0.11","9.11"],"方法用于动态添加菜单":["0.11","9.11"],"方法用于动态删除菜单":["0.11"],"方法用于动态更新菜单":["0.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"],"toggle":["0.13","0.15","9.9","9.10","9.11","9.13","9.15","9.16"],"管理播放器的快捷键功能":["0.14","9.14"],"方法用于添加快捷键":["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"],"方法用于动态更新设置项":["0.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"],"播放器的事件分为两种":["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.2","2.28","2.31","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"],"当播放器暂停时触发":["2.4","11.3"],"当播放器播放时触发":["2.5","11.4"],"当播放器热键被按下时触发":["2.6","11.5"],"当播放器销毁时触发":["2.7","11.6"],"当播放器获得焦点时触发":["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"],"当锁定的状态发生变化时触发":["2.17"],"当播放器长宽比变化时触发":["2.18","11.17"],"当播放器自动设置高度时触发":["2.19","11.18"],"当播放器自动设置尺寸时触发":["2.20","11.19"],"当播放器发生翻转时触发":["2.21","11.20"],"当播放器发生窗口全屏时触发":["2.22","11.21"],"当播放器发生网页全屏时触发":["2.23","11.22"],"当播放器进入迷你模式时触发":["2.24","11.23"],"当播放器进入画中画时触发":["2.25","11.24"],"当播放器被截图时触发":["2.26","11.25"],"当播放器发生时间跳转时触发":["2.27","11.26"],"当播放器发生字幕偏移时触发":["2.28","11.27"],"当字幕更新时触发":["2.29","11.28"],"当字幕加载时触发":["2.30","11.29"],"当字幕切换时触发":["2.31","11.30"],"当信息面板显示或隐藏时触发":["2.32","11.31"],"当自定义层显示或隐藏时触发":["2.33","11.32"],"当加载器显示或隐藏时触发":["2.34","11.33"],"当遮罩层显示或隐藏时触发":["2.35","11.34"],"当字幕层显示或隐藏时触发":["2.36","11.35"],"当右键菜单显示或隐藏时触发":["2.37","11.36"],"当控制器显示或隐藏时触发":["2.38","11.37"],"当设置面板显示或隐藏时触发":["2.39","11.38"],"canplay":["2.40","11.39"],"canplaythrough":["2.41","11.40"],"complete":["2.42","11.41"],"durationchange":["2.43","11.42"],"emptied":["2.44","11.43"],"ended":["2.45","11.44"],"error":["2.46","11.45"],"loadeddata":["2.47","11.46"],"loadedmetadata":["2.48","11.47"],"pause":["2.49","11.48"],"play":["2.50","11.49","27.11"],"playing":["2.51","11.50"],"progress":["2.52","11.51","27.34"],"ratechange":["2.53","11.52"],"seeked":["2.54","11.53"],"seeking":["2.55","11.54"],"stalled":["2.56","11.55"],"suspend":["2.57","11.56"],"timeupdate":["2.58","11.57"],"volumechange":["2.59","11.58"],"waiting":["2.60","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","4.41","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","4.41","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"],"动态获取或设置":["4.41"],"css":["4.41"],"变量":["4.41"],"类型":["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"],"width":["8.2","10.16","13.30","17.2"],"列表嵌套":["8.3","17.3"],"切换按钮":["8.4","17.4"],"范围滑块":["8.5","17.5"],"属性用于设置是否显示全部层":["9.9"],"属性用于设置是否显示全部控制器":["9.10"],"属性用于设置是否显示全部菜单":["9.11"],"属性用于设置是否显示全部设置项":["9.16"],"属性用于切换是否显示全部设置项":["9.16"],"time":["10.15","10.25","10.26","10.31","27.25"],"item":["10.17","10.18"],"size":["10.19","10.20","10.21","10.22","13.25","27.12"],"panel":["10.23"],"handle":["10.24"],"gap":["10.27"],"playback":["10.28","10.29","10.30","13.3","27.47"],"sleep":["10.32"],"hide":["10.33"],"clice":["10.34"],"auto":["10.35","10.36","10.37"],"loop":["10.38"],"forward":["10.39","10.40"],"move":["10.41"],"step":["10.42","10.43"],"height":["10.44"],"rate":["10.45"],"ratio":["10.46"],"web":["10.48"],"当视频地址变化时触发":["11.7"],"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.2","6.2","11.7","15.2"],"11":["2.28","11.27"],"13":["2.31","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.13","0.14","0.15","0.16","0.17","1.1","1.6","2.1","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.29","2.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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.11","0.12","0.13","0.14","0.15","0.16","0.17","1.1","1.6","2.1","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.14","2.15","2.16","2.17","2.20","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","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","4.41","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.19","2.24","2.28","2.29","2.30","2.31","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.31","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","4.41","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","4.41","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"],"show":["0.9","0.10","0.11","0.16"],"属性用于设置是否显示全部层":["0.9"],"toggle":["0.9","0.10","0.11","0.16"],"方法用于切换是否显示全部层":["0.9"],"方法用于动态更新控制器":["0.10"],"属性用于设置是否显示全部控制器":["0.10"],"方法用于切换是否显示全部控制器":["0.10"],"属性用于设置是否显示全部菜单":["0.11"],"方法用于切换是否显示全部菜单":["0.11"],"switch":["0.12","8.4","9.12","17.4","27.19"],"方法设置当前字幕地址和选项":["0.12","9.12"],"属性用于切换是否显示加载层":["0.13","9.13"],"属性用于切换是否显示遮罩层":["0.15","9.15"],"属性用于设置是否显示全部设置项":["0.16"],"方法用于切换是否显示全部设置项":["0.16"],"字符串":["1.11","10.11"],"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.40","11.39"],"浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束":["2.41","11.40"],"offlineaudiocontext":["2.42","11.41"],"duration":["2.43","11.42"],"媒体内容变为空":["2.44","11.43"],"例如":["2.44","11.43"],"视频停止播放":["2.45","11.44"],"获取媒体数据时出错":["2.46","11.45"],"media":["2.47","11.46"],"已加载元数据":["2.48","11.47"],"播放已暂停":["2.49","11.48"],"播放已开始":["2.50","11.49"],"由于缺乏数据而暂停或延迟后":["2.51","11.50"],"在浏览器加载资源时周期性触发":["2.52","11.51"],"播放速率发生变化":["2.53","11.52"],"跳帧":["2.54","2.55","11.53","11.54"],"用户代理":["2.56","11.55"],"媒体数据加载已暂停":["2.57","11.56"],"currenttime":["2.58","11.57"],"音量发生变化":["2.59","11.58"],"由于暂时缺少数据":["2.60","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"],"属性用于切换是否显示全部层":["9.9"],"属性用于切换是否显示全部控制器":["9.10"],"属性用于切换是否显示全部菜单":["9.11"],"update":["9.16"],"方法动态更新设置项":["9.16"],"是指挂载在":["10.0"],"width":["10.17","10.23","10.24"],"height":["10.18","13.30"],"icon":["10.20","27.40"],"mobile":["10.21","10.22"],"max":["10.28","10.31"],"min":["10.29","21.0","31.0"],"timeout":["10.30"],"time":["10.32","10.33","10.34","10.38","10.40","13.5","13.6","13.7","13.13","27.34","38.34"],"playbackrate":["10.35","10.36"],"orientation":["10.37"],"value":["10.39"],"ratio":["10.41","13.28","27.17"],"in":["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"],"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.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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.20","2.22","2.23","2.25","2.26","4.14","4.25","4.30","11.19","11.21","11.22","11.24","11.25","27.4","38.4","38.40"],"8":["2.18","2.21","4.1","4.12","4.19","4.27","4.28","4.29","4.31","4.32","4.33","4.34","4.41","11.17","11.20","13.29","26.5","37.5","38.38"],"9":["2.29","2.30","4.18","4.20","4.21","11.28","11.29","13.18","13.20","27.4","27.44","38.4"],"10":["2.7","2.19","2.24","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","31.0"],"22":["20.0"],"23":["29.0"],"24":["21.0","30.0"],"25":["19.0"],"26":["20.0","31.0"],"28":["21.0"],"250":["8.2","17.2"],"是指挂载在":["0.0","1.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.7","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.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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.11","0.14","0.16","0.17","2.2","2.3","2.7","2.12","2.13","2.17","2.18","2.19","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","2.31","2.39","4.14","4.18","4.20","4.21","4.25","4.29","4.41","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.14","0.16","0.17","2.2","2.7","2.18","2.19","2.21","2.24","2.28","2.29","2.30","2.31","4.21","4.29","4.41","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.14","0.16","0.17","2.2","2.19","2.24","2.28","2.29","2.30","2.31","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.14","0.17","2.2","2.28","2.31","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.31","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","0.9","0.10","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.9","0.10","0.11","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"],"console":["1.1","2.0","10.1","11.0","34.15"],"info":["2.0","11.0","34.15"],"只监听一次事件":["2.0","11.0"],"但估计没有足够的数据来支撑播放到结束":["2.40","11.39"],"渲染完成":["2.42","11.41"],"属性的值改变时触发":["2.43","11.42"],"当这个":["2.44","11.43"],"因为":["2.45","11.44"],"或者资源类型不是受支持的媒体格式":["2.46","11.45"],"中的首帧已经完成加载":["2.47","11.46"],"播放准备开始":["2.51","11.50"],"seek":["2.54","2.55","11.53","11.54","13.13"],"user":["2.56","11.55"],"属性指定的时间发生变化":["2.58","11.57"],"播放已停止":["2.60","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"],"icon":["8.8","10.22","17.8"],"构造函数":["10.0"],"的":["10.0","38.12"],"time":["10.36","10.37","18.6","27.9","27.22"],"body":["10.48","26.5","37.5"],"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.10","0.11","0.12","0.13","0.15","1.1","2.1","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.20","2.21","2.22","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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.11","0.12","0.13","0.15","0.16","2.3","2.6","2.7","2.8","2.9","2.10","2.11","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.27","2.29","2.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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.7","2.18","2.19","2.21","2.24","2.28","2.29","2.30","4.14","4.18","4.20","4.21","4.25","4.29","4.31","4.41","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.10","0.11","0.14","0.16","0.17","2.2","2.19","2.24","2.28","2.29","2.30","2.31","4.18","4.21","4.29","4.41","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.11","0.14","0.16","0.17","2.2","2.28","2.31","4.21","4.29","4.41","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.14","0.16","0.17","2.2","2.28","2.31","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.14","0.16","0.17","2.31","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.17","2.31","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.9","0.10","0.12","0.13","0.15","2.1","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.14","2.15","2.16","2.20","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","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.9","0.10","0.11","0.12","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.20","2.22","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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"],"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.31","6.2","6.5","11.30","15.2","15.5"],"不必停下来进一步缓冲内容":["2.40","11.39"],"media":["2.44","2.45","11.43","11.44"],"已经加载完成":["2.44","11.43"],"操作完成":["2.54","11.53"],"操作开始":["2.55","11.54"],"agent":["2.56","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"],"一级属性":["10.0"],"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"],"create":["29.0"],"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","1.0","4.0","9.0","9.5"],"url":["0.1","0.6","0.9","0.13","0.15","2.1","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.20","2.21","2.22","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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.9","0.10","0.12","0.13","0.15","2.3","2.6","2.7","2.8","2.9","2.10","2.11","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.27","2.29","2.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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.10","0.11","0.12","0.13","0.15","2.3","2.7","2.12","2.13","2.17","2.18","2.19","2.21","2.22","2.23","2.24","2.25","2.26","2.29","2.30","2.39","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","4.41","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.11","0.12","0.13","0.15","2.2","2.3","2.7","2.13","2.18","2.19","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","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","4.41","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","0.16","2.2","2.18","2.19","2.21","2.24","2.28","2.29","2.30","4.10","4.14","4.18","4.20","4.21","4.25","4.28","4.30","4.31","4.32","4.41","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","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","4.29","4.41","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.10","0.11","2.2","4.29","4.41","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.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.20","2.22","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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.28","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"],"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.4","2.5","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.28","2.29","2.30","11.27","11.28","11.29"],"srt":["2.31","11.30"],"或者部分加载完成":["2.44","11.43"],"则发送此事件":["2.44","11.43"],"已经到达结束点":["2.45","11.44"],"正在尝试获取媒体数据":["2.56","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"],"非常少使用":["10.0"],"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"],"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"],"application":["31.0"],"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.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.20","2.22","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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","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.9","0.12","0.13","0.14","0.15","0.16","2.7","2.19","2.24","2.31","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"],"position":["0.10","4.20","4.35","6.1","7.4","9.10","15.1","16.4","23.5","33.5","34.8"],"on":["0.12","0.13","0.14","0.15","0.16","2.3","2.7","2.12","2.13","2.19","2.24","2.31","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","4.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.4","2.5","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.4","2.5","2.6","2.8","2.9","2.10","2.11","2.14","2.15","2.16","2.20","2.27","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.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.4","2.5","2.6","2.8","2.9","2.10","2.11","2.14","2.15","2.16","2.17","2.20","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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"],"true":["2.17","2.18","2.19","2.21","2.22","2.23","2.24","2.25","2.26","2.39","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"],"setting":["2.18","2.21","2.28","8.1","8.5","11.17","11.20","11.27","17.1","17.5","34.13"],"srt":["2.28","2.29","2.30","11.27","11.28","11.29"],"并调用":["2.44","11.43"],"但数据意外未出现":["2.56","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"],"muted":["4.2","4.3","4.23","13.2","13.3","22.4","32.4","38.11"],"seek":["4.10","4.11"],"settimeout":["4.10","5.5","7.5","8.8","9.9","14.5","16.5","17.8","38.2"],"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"],"log":["4.41"],"theme":["4.41"],"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"],"left":["9.10"],"有些属性是全大写的":["10.0"],"t":["11.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"],"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":["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","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"],"settimeout":["0.9","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"],"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"],"left":["0.10","6.1","15.1"],"true":["0.11","0.13","2.20","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"],"srt":["0.12","9.12"],"on":["0.17","2.1","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.14","2.15","2.16","2.17","2.18","2.20","2.21","2.22","2.23","2.25","2.26","2.27","2.28","2.29","2.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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"],"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","2.3","2.13","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.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.21","2.22","2.23","2.24","2.25","2.26","2.27","2.29","2.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","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"],"start":["2.3"],"end":["2.3"],"event":["2.6","2.8","2.9","2.10","2.11","2.13","2.14","4.38","8.4","11.5","11.14","17.4"],"reconnecttime":["2.12","11.12"],"state":["2.13","2.16","2.17","2.22","2.23","2.24","2.25","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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.19","11.18","28.5"],"datauri":["2.26","11.25"],"currenttime":["2.27","11.26","26.12","37.12"],"offset":["2.28","11.27"],"text":["2.29","11.28","34.7"],"ass":["2.31","11.30"],"load":["2.44","11.43"],"方法重新加载它":["2.44","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"],"green":["4.41"],"组件点击事件":["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"],"和":["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"],"说明这些属性是不稳定的":["10.0"],"可能会在将来被更改":["10.0"],"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.10","0.11","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.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","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","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.7","2.20","2.28","2.31","2.39","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.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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 方法用于动态添加层 -remove 方法用于动态删除层 -update 方法用于动态更新层 -show ...`,l:"advanced/built-in.html#layers",a:"layers"},"0.10":{t:"`controls`",p:`管理播放器的控制器 - -add 方法用于动态添加控制器 -remove 方法用于动态删除控制器 -update 方法用于动态更新控 ...`,l:"advanced/built-in.html#controls",a:"controls"},"0.11":{t:"`contextmenu`",p:`管理播放器的右键菜单 - -add 方法用于动态添加菜单 -remove 方法用于动态删除菜单 -update 方法用于动态更新菜单 ...`,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 方法用于动态添加设置项 -remove 方法用于动态删除设置项 -update 方法用于动态更新 ...`,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:`这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用 -`,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"},"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:"`loop`",p:`当出现区间循环时触发 -<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#loop",a:"loop"},"2.4":{t:"`pause`",p:`当播放器暂停时触发 -<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#pause",a:"pause"},"2.5":{t:"`play`",p:`当播放器播放时触发 -<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#play",a:"play"},"2.6":{t:"`hotkey`",p:`当播放器热键被按下时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#hotkey",a:"hotkey"},"2.7":{t:"`destroy`",p:`当播放器销毁时触发 -<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#destroy",a:"destroy"},"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:"`lock`",p:`在移动端,当锁定的状态发生变化时触发 -<div className="run-code">▶ ...`,l:"advanced/event.html#lock",a:"lock"},"2.18":{t:"`aspectRatio`",p:`当播放器长宽比变化时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#aspectratio",a:"aspectratio"},"2.19":{t:"`autoHeight`",p:`当播放器自动设置高度时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#autoheight",a:"autoheight"},"2.20":{t:"`autoSize`",p:`当播放器自动设置尺寸时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#autosize",a:"autosize"},"2.21":{t:"`flip`",p:`当播放器发生翻转时触发 -<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#flip",a:"flip"},"2.22":{t:"`fullscreen`",p:`当播放器发生窗口全屏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#fullscreen",a:"fullscreen"},"2.23":{t:"`fullscreenWeb`",p:`当播放器发生网页全屏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#fullscreenweb",a:"fullscreenweb"},"2.24":{t:"`mini`",p:`当播放器进入迷你模式时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#mini",a:"mini"},"2.25":{t:"`pip`",p:`当播放器进入画中画时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#pip",a:"pip"},"2.26":{t:"`screenshot`",p:`当播放器被截图时触发 -<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#screenshot",a:"screenshot"},"2.27":{t:"`seek`",p:`当播放器发生时间跳转时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#seek",a:"seek"},"2.28":{t:"`subtitleOffset`",p:`当播放器发生字幕偏移时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#subtitleoffset",a:"subtitleoffset"},"2.29":{t:"`subtitleUpdate`",p:`当字幕更新时触发 -<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleupdate",a:"subtitleupdate"},"2.30":{t:"`subtitleLoad`",p:`当字幕加载时触发 -<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleload",a:"subtitleload"},"2.31":{t:"`subtitleSwitch`",p:`当字幕切换时触发 -<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleswitch",a:"subtitleswitch"},"2.32":{t:"`info`",p:`当信息面板显示或隐藏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#info",a:"info"},"2.33":{t:"`layer`",p:`当自定义层显示或隐藏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#layer",a:"layer"},"2.34":{t:"`loading`",p:`当加载器显示或隐藏时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#loading",a:"loading"},"2.35":{t:"`mask`",p:`当遮罩层显示或隐藏时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#mask",a:"mask"},"2.36":{t:"`subtitle`",p:`当字幕层显示或隐藏时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#subtitle",a:"subtitle"},"2.37":{t:"`contextmenu`",p:`当右键菜单显示或隐藏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#contextmenu",a:"contextmenu"},"2.38":{t:"`control`",p:`当控制器显示或隐藏时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#control",a:"control"},"2.39":{t:"`setting`",p:`当设置面板显示或隐藏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#setting",a:"setting"},"2.40":{t:"`video:canplay`",p:`浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容 -`,l:"advanced/event.html#video-canplay",a:"video-canplay"},"2.41":{t:"`video:canplaythrough`",p:`浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束 -`,l:"advanced/event.html#video-canplaythrough",a:"video-canplaythrough"},"2.42":{t:"`video:complete`",p:`OfflineAudioContext 渲染完成 -`,l:"advanced/event.html#video-complete",a:"video-complete"},"2.43":{t:"`video:durationchange`",p:`duration 属性的值改变时触发 -`,l:"advanced/event.html#video-durationchange",a:"video-durationchange"},"2.44":{t:"`video:emptied`",p:"媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载 ...",l:"advanced/event.html#video-emptied",a:"video-emptied"},"2.45":{t:"`video:ended`",p:`视频停止播放,因为 media 已经到达结束点 -`,l:"advanced/event.html#video-ended",a:"video-ended"},"2.46":{t:"`video:error`",p:`获取媒体数据时出错,或者资源类型不是受支持的媒体格式 -`,l:"advanced/event.html#video-error",a:"video-error"},"2.47":{t:"`video:loadeddata`",p:`media 中的首帧已经完成加载 -`,l:"advanced/event.html#video-loadeddata",a:"video-loadeddata"},"2.48":{t:"`video:loadedmetadata`",p:`已加载元数据 -`,l:"advanced/event.html#video-loadedmetadata",a:"video-loadedmetadata"},"2.49":{t:"`video:pause`",p:`播放已暂停 -`,l:"advanced/event.html#video-pause",a:"video-pause"},"2.50":{t:"`video:play`",p:`播放已开始 -`,l:"advanced/event.html#video-play",a:"video-play"},"2.51":{t:"`video:playing`",p:`由于缺乏数据而暂停或延迟后,播放准备开始 -`,l:"advanced/event.html#video-playing",a:"video-playing"},"2.52":{t:"`video:progress`",p:`在浏览器加载资源时周期性触发 -`,l:"advanced/event.html#video-progress",a:"video-progress"},"2.53":{t:"`video:ratechange`",p:`播放速率发生变化 -`,l:"advanced/event.html#video-ratechange",a:"video-ratechange"},"2.54":{t:"`video:seeked`",p:`跳帧(seek)操作完成 -`,l:"advanced/event.html#video-seeked",a:"video-seeked"},"2.55":{t:"`video:seeking`",p:`跳帧(seek)操作开始 -`,l:"advanced/event.html#video-seeking",a:"video-seeking"},"2.56":{t:"`video:stalled`",p:`用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现 -`,l:"advanced/event.html#video-stalled",a:"video-stalled"},"2.57":{t:"`video:suspend`",p:`媒体数据加载已暂停 -`,l:"advanced/event.html#video-suspend",a:"video-suspend"},"2.58":{t:"`video:timeupdate`",p:`currentTime 属性指定的时间发生变化 -`,l:"advanced/event.html#video-timeupdate",a:"video-timeupdate"},"2.59":{t:"`video:volumechange`",p:`音量发生变化 -`,l:"advanced/event.html#video-volumechange",a:"video-volumechange"},"2.60":{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"},"4.41":{t:"`cssVar`",p:` -Type: Function - -动态获取或设置 css 变量 -<div className="run-co ...`,l:"advanced/property.html#cssvar",a:"cssvar"},"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/chunks/virtual_search-data.4fc4b49e.js b/docs/document/assets/chunks/virtual_search-data.4fc4b49e.js new file mode 100644 index 000000000..27c6eba04 --- /dev/null +++ b/docs/document/assets/chunks/virtual_search-data.4fc4b49e.js @@ -0,0 +1,1420 @@ +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","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","2.37","9.11","10.14","11.36","27.31","38.31"],"subtitle":["0.12","2.36","9.12","11.35","27.38","38.38"],"loading":["0.13","2.34","9.13","11.33"],"hotkey":["0.14","2.6","9.14","11.5","27.20","38.20"],"mask":["0.15","2.35","9.15","11.34"],"setting":["0.16","2.39","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"],"实例事件":["2.0","11.0"],"ready":["2.1","11.1"],"restart":["2.2","11.2"],"loop":["2.3","4.29","13.29","27.14","38.14"],"pause":["2.4","4.2","11.3","13.2"],"play":["2.5","4.1","11.4","13.1"],"destroy":["2.7","4.4","11.6","13.4","26.9","37.9"],"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"],"resize":["2.15","10.25","11.15"],"view":["2.16","11.16"],"lock":["2.17","27.45","38.45"],"aspectratio":["2.18","4.28","11.17","13.28","27.17","38.17"],"autoheight":["2.19","4.30","11.18","13.30"],"autosize":["2.20","4.24","11.19","13.24","27.12","38.12"],"flip":["2.21","4.26","10.47","11.20","13.26","27.15","38.15"],"fullscreen":["2.22","4.18","10.48","11.21","13.18","27.23","38.23"],"fullscreenweb":["2.23","4.19","11.22","13.19","27.24","38.24"],"mini":["2.24","4.22","11.23","13.22"],"pip":["2.25","4.20","11.24","13.20","27.21","38.21"],"screenshot":["2.26","4.15","11.25","13.15","27.18","38.18"],"seek":["2.27","4.5","10.43","11.26","13.5"],"subtitleoffset":["2.28","11.27","27.25","38.25"],"subtitleupdate":["2.29","11.28"],"subtitleload":["2.30","11.29"],"subtitleswitch":["2.31","11.30"],"info":["2.32","10.38","11.31"],"layer":["2.33","11.32"],"control":["2.38","10.33","11.37"],"video":["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","2.60","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"],"volume":["4.8","10.23","10.24","10.42","13.8","27.8","38.8"],"url":["4.9","11.7","13.9","27.2","38.2"],"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"],"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"],"cssvar":["4.41","27.50","38.50"],"右键菜单":["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"],"debug":["10.13"],"indicator":["10.19","10.20","10.21","10.22"],"scroll":["10.26","10.27"],"auto":["10.28","10.29","10.30"],"reconnect":["10.31","10.32"],"db":["10.34"],"mobile":["10.35","10.36","10.37"],"fast":["10.39","10.40"],"touch":["10.41"],"progress":["10.44"],"playback":["10.45"],"aspect":["10.46"],"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"],"old":["18.7"],"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"],"fastforward":["27.46","38.46"],"autoplayback":["27.47","38.47"],"autoorientation":["27.48","38.48"],"安装使用":["28.0"],"语法提示":["28.6"],"古老的浏览器":["28.7"],"弹幕库":["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":["28.7","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","2.39","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","2.39","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.3","2.7","2.12","2.13","2.18","2.19","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","2.31","2.39","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","0.9","0.10","0.11","0.16","9.7"],"管理播放器的提示语":["0.8","9.8"],"只有一个":["0.8","9.8"],"show":["0.8","0.13","0.15","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"],"remove":["0.9","0.10","0.11","0.14","0.16","9.14"],"方法用于动态删除层":["0.9"],"管理播放器的控制器":["0.10","9.10"],"方法用于动态添加控制器":["0.10","9.10"],"方法用于动态删除控制器":["0.10"],"管理播放器的右键菜单":["0.11","9.11"],"方法用于动态添加菜单":["0.11","9.11"],"方法用于动态删除菜单":["0.11"],"方法用于动态更新菜单":["0.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"],"toggle":["0.13","0.15","9.9","9.10","9.11","9.13","9.15","9.16"],"管理播放器的快捷键功能":["0.14","9.14"],"方法用于添加快捷键":["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"],"方法用于动态更新设置项":["0.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"],"播放器的事件分为两种":["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.2","2.28","2.31","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","18.7","19.0","20.0","21.0","22.4","28.3","28.4","28.5","28.6","28.7","29.0","30.0","31.0","32.4","34.4","34.15"],"当播放器首次可以播放器时触发":["2.1","11.1"],"当播放器切换地址后并可以播放时触发":["2.2","11.2"],"当出现区间循环时触发":["2.3"],"当播放器暂停时触发":["2.4","11.3"],"当播放器播放时触发":["2.5","11.4"],"当播放器热键被按下时触发":["2.6","11.5"],"当播放器销毁时触发":["2.7","11.6"],"当播放器获得焦点时触发":["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"],"当锁定的状态发生变化时触发":["2.17"],"当播放器长宽比变化时触发":["2.18","11.17"],"当播放器自动设置高度时触发":["2.19","11.18"],"当播放器自动设置尺寸时触发":["2.20","11.19"],"当播放器发生翻转时触发":["2.21","11.20"],"当播放器发生窗口全屏时触发":["2.22","11.21"],"当播放器发生网页全屏时触发":["2.23","11.22"],"当播放器进入迷你模式时触发":["2.24","11.23"],"当播放器进入画中画时触发":["2.25","11.24"],"当播放器被截图时触发":["2.26","11.25"],"当播放器发生时间跳转时触发":["2.27","11.26"],"当播放器发生字幕偏移时触发":["2.28","11.27"],"当字幕更新时触发":["2.29","11.28"],"当字幕加载时触发":["2.30","11.29"],"当字幕切换时触发":["2.31","11.30"],"当信息面板显示或隐藏时触发":["2.32","11.31"],"当自定义层显示或隐藏时触发":["2.33","11.32"],"当加载器显示或隐藏时触发":["2.34","11.33"],"当遮罩层显示或隐藏时触发":["2.35","11.34"],"当字幕层显示或隐藏时触发":["2.36","11.35"],"当右键菜单显示或隐藏时触发":["2.37","11.36"],"当控制器显示或隐藏时触发":["2.38","11.37"],"当设置面板显示或隐藏时触发":["2.39","11.38"],"canplay":["2.40","11.39"],"canplaythrough":["2.41","11.40"],"complete":["2.42","11.41"],"durationchange":["2.43","11.42"],"emptied":["2.44","11.43"],"ended":["2.45","11.44"],"error":["2.46","11.45"],"loadeddata":["2.47","11.46"],"loadedmetadata":["2.48","11.47"],"pause":["2.49","11.48"],"play":["2.50","11.49","27.11"],"playing":["2.51","11.50"],"progress":["2.52","11.51","27.34"],"ratechange":["2.53","11.52"],"seeked":["2.54","11.53"],"seeking":["2.55","11.54"],"stalled":["2.56","11.55"],"suspend":["2.57","11.56"],"timeupdate":["2.58","11.57"],"volumechange":["2.59","11.58"],"waiting":["2.60","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","4.41","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","4.41","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"],"动态获取或设置":["4.41"],"css":["4.41"],"变量":["4.41"],"类型":["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","18.7","22.4","27.1","28.3","28.5","28.7","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"],"width":["8.2","10.16","13.30","17.2"],"列表嵌套":["8.3","17.3"],"切换按钮":["8.4","17.4"],"范围滑块":["8.5","17.5"],"属性用于设置是否显示全部层":["9.9"],"属性用于设置是否显示全部控制器":["9.10"],"属性用于设置是否显示全部菜单":["9.11"],"属性用于设置是否显示全部设置项":["9.16"],"属性用于切换是否显示全部设置项":["9.16"],"time":["10.15","10.25","10.26","10.31","27.25"],"item":["10.17","10.18"],"size":["10.19","10.20","10.21","10.22","13.25","27.12"],"panel":["10.23"],"handle":["10.24"],"gap":["10.27"],"playback":["10.28","10.29","10.30","13.3","27.47"],"sleep":["10.32"],"hide":["10.33"],"clice":["10.34"],"auto":["10.35","10.36","10.37"],"loop":["10.38"],"forward":["10.39","10.40"],"move":["10.41"],"step":["10.42","10.43"],"height":["10.44"],"rate":["10.45"],"ratio":["10.46"],"web":["10.48"],"当视频地址变化时触发":["11.7"],"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","18.7","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","18.7"],"this":["13.30"],"attribute":["13.30"],"enable":["13.35"],"proportion":["13.36","13.37"],"of":["13.36","13.37","13.38","13.39","18.7","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"],"browsers":["18.7"],"production":["18.7"],"builds":["18.7"],"are":["18.7"],"compatible":["18.7"],"with":["18.7"],"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"],"生产构建的":["28.7"],"只兼容最新一个主版本的":["28.7"],"chrome":["28.7"],"last":["28.7"],"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","18.7","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.2","6.2","11.7","15.2"],"11":["2.28","11.27"],"13":["2.31","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.13","0.14","0.15","0.16","0.17","1.1","1.6","2.1","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.29","2.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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.11","0.12","0.13","0.14","0.15","0.16","0.17","1.1","1.6","2.1","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.14","2.15","2.16","2.17","2.20","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","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","4.41","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.19","2.24","2.28","2.29","2.30","2.31","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.31","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","4.41","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","4.41","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"],"show":["0.9","0.10","0.11","0.16"],"属性用于设置是否显示全部层":["0.9"],"toggle":["0.9","0.10","0.11","0.16"],"方法用于切换是否显示全部层":["0.9"],"方法用于动态更新控制器":["0.10"],"属性用于设置是否显示全部控制器":["0.10"],"方法用于切换是否显示全部控制器":["0.10"],"属性用于设置是否显示全部菜单":["0.11"],"方法用于切换是否显示全部菜单":["0.11"],"switch":["0.12","8.4","9.12","17.4","27.19"],"方法设置当前字幕地址和选项":["0.12","9.12"],"属性用于切换是否显示加载层":["0.13","9.13"],"属性用于切换是否显示遮罩层":["0.15","9.15"],"属性用于设置是否显示全部设置项":["0.16"],"方法用于切换是否显示全部设置项":["0.16"],"字符串":["1.11","10.11"],"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.40","11.39"],"浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束":["2.41","11.40"],"offlineaudiocontext":["2.42","11.41"],"duration":["2.43","11.42"],"媒体内容变为空":["2.44","11.43"],"例如":["2.44","11.43"],"视频停止播放":["2.45","11.44"],"获取媒体数据时出错":["2.46","11.45"],"media":["2.47","11.46"],"已加载元数据":["2.48","11.47"],"播放已暂停":["2.49","11.48"],"播放已开始":["2.50","11.49"],"由于缺乏数据而暂停或延迟后":["2.51","11.50"],"在浏览器加载资源时周期性触发":["2.52","11.51"],"播放速率发生变化":["2.53","11.52"],"跳帧":["2.54","2.55","11.53","11.54"],"用户代理":["2.56","11.55"],"媒体数据加载已暂停":["2.57","11.56"],"currenttime":["2.58","11.57"],"音量发生变化":["2.59","11.58"],"由于暂时缺少数据":["2.60","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"],"属性用于切换是否显示全部层":["9.9"],"属性用于切换是否显示全部控制器":["9.10"],"属性用于切换是否显示全部菜单":["9.11"],"update":["9.16"],"方法动态更新设置项":["9.16"],"是指挂载在":["10.0"],"width":["10.17","10.23","10.24"],"height":["10.18","13.30"],"icon":["10.20","27.40"],"mobile":["10.21","10.22"],"max":["10.28","10.31"],"min":["10.29","21.0","31.0"],"timeout":["10.30"],"time":["10.32","10.33","10.34","10.38","10.40","13.5","13.6","13.7","13.13","27.34","38.34"],"playbackrate":["10.35","10.36"],"orientation":["10.37"],"value":["10.39"],"ratio":["10.41","13.28","27.17"],"in":["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"],"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"],"last":["18.7"],"major":["18.7"],"version":["18.7","28.7"],"chrome":["18.7"],"for":["18.7"],"older":["18.7"],"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"],"对于古老的浏览器":["28.7"],"可以使用":["28.7"],"legacy":["28.7"],"文件":["28.7"],"弹幕透明度":["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.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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.20","2.22","2.23","2.25","2.26","4.14","4.25","4.30","11.19","11.21","11.22","11.24","11.25","27.4","38.4","38.40"],"8":["2.18","2.21","4.1","4.12","4.19","4.27","4.28","4.29","4.31","4.32","4.33","4.34","4.41","11.17","11.20","13.29","26.5","37.5","38.38"],"9":["2.29","2.30","4.18","4.20","4.21","11.28","11.29","13.18","13.20","27.4","27.44","38.4"],"10":["2.7","2.19","2.24","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","18.7","28.7"],"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","31.0"],"22":["20.0"],"23":["29.0"],"24":["21.0","30.0"],"25":["19.0"],"26":["20.0","31.0"],"28":["21.0"],"250":["8.2","17.2"],"是指挂载在":["0.0","1.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.7","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.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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.11","0.14","0.16","0.17","2.2","2.3","2.7","2.12","2.13","2.17","2.18","2.19","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","2.31","2.39","4.14","4.18","4.20","4.21","4.25","4.29","4.41","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.14","0.16","0.17","2.2","2.7","2.18","2.19","2.21","2.24","2.28","2.29","2.30","2.31","4.21","4.29","4.41","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.14","0.16","0.17","2.2","2.19","2.24","2.28","2.29","2.30","2.31","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.14","0.17","2.2","2.28","2.31","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.31","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","0.9","0.10","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.9","0.10","0.11","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"],"console":["1.1","2.0","10.1","11.0","34.15"],"info":["2.0","11.0","34.15"],"只监听一次事件":["2.0","11.0"],"但估计没有足够的数据来支撑播放到结束":["2.40","11.39"],"渲染完成":["2.42","11.41"],"属性的值改变时触发":["2.43","11.42"],"当这个":["2.44","11.43"],"因为":["2.45","11.44"],"或者资源类型不是受支持的媒体格式":["2.46","11.45"],"中的首帧已经完成加载":["2.47","11.46"],"播放准备开始":["2.51","11.50"],"seek":["2.54","2.55","11.53","11.54","13.13"],"user":["2.56","11.55"],"属性指定的时间发生变化":["2.58","11.57"],"播放已停止":["2.60","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"],"icon":["8.8","10.22","17.8"],"构造函数":["10.0"],"的":["10.0","38.12"],"time":["10.36","10.37","18.6","27.9","27.22"],"body":["10.48","26.5","37.5"],"refers":["13.0"],"to":["13.0","13.13","13.24","13.30","18.7","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","28.7"],"use":["18.7"],"legacy":["18.7"],"file":["18.7"],"up":["18.7"],"ie":["18.7","28.7"],"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"],"可以兼容到":["28.7"],"from":["28.7"],"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.10","0.11","0.12","0.13","0.15","1.1","2.1","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.20","2.21","2.22","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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.11","0.12","0.13","0.15","0.16","2.3","2.6","2.7","2.8","2.9","2.10","2.11","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.27","2.29","2.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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.7","2.18","2.19","2.21","2.24","2.28","2.29","2.30","4.14","4.18","4.20","4.21","4.25","4.29","4.31","4.41","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.10","0.11","0.14","0.16","0.17","2.2","2.19","2.24","2.28","2.29","2.30","2.31","4.18","4.21","4.29","4.41","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.11","0.14","0.16","0.17","2.2","2.28","2.31","4.21","4.29","4.41","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.14","0.16","0.17","2.2","2.28","2.31","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.14","0.16","0.17","2.31","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.17","2.31","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.9","0.10","0.12","0.13","0.15","2.1","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.14","2.15","2.16","2.20","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","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.9","0.10","0.11","0.12","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.20","2.22","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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"],"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","18.7","27.3","27.5","27.6","27.10","27.14","27.25","27.28","27.33","27.38","27.39","28.7","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.31","6.2","6.5","11.30","15.2","15.5"],"不必停下来进一步缓冲内容":["2.40","11.39"],"media":["2.44","2.45","11.43","11.44"],"已经加载完成":["2.44","11.43"],"操作完成":["2.54","11.53"],"操作开始":["2.55","11.54"],"agent":["2.56","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"],"一级属性":["10.0"],"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","18.7","22.3","23.3","24.3","25.3","26.4","28.2","28.7","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"],"import":["18.7"],"from":["18.7"],"group":["18.7","28.7"],"bash":["18.7","28.7"],"jsdelivr":["18.7"],"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"],"create":["29.0"],"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","1.0","4.0","9.0","9.5"],"url":["0.1","0.6","0.9","0.13","0.15","2.1","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.20","2.21","2.22","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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.9","0.10","0.12","0.13","0.15","2.3","2.6","2.7","2.8","2.9","2.10","2.11","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.27","2.29","2.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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.10","0.11","0.12","0.13","0.15","2.3","2.7","2.12","2.13","2.17","2.18","2.19","2.21","2.22","2.23","2.24","2.25","2.26","2.29","2.30","2.39","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","4.41","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.11","0.12","0.13","0.15","2.2","2.3","2.7","2.13","2.18","2.19","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","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","4.41","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","0.16","2.2","2.18","2.19","2.21","2.24","2.28","2.29","2.30","4.10","4.14","4.18","4.20","4.21","4.25","4.28","4.30","4.31","4.32","4.41","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","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","4.29","4.41","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.10","0.11","2.2","4.29","4.41","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.6","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.20","2.22","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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.28","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"],"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.4","2.5","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.28","2.29","2.30","11.27","11.28","11.29"],"srt":["2.31","11.30"],"或者部分加载完成":["2.44","11.43"],"则发送此事件":["2.44","11.43"],"已经到达结束点":["2.45","11.44"],"正在尝试获取媒体数据":["2.56","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"],"非常少使用":["10.0"],"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"],"net":["18.7","28.7"],"https":["18.7","28.7"],"cdn":["18.7","28.7"],"npm":["18.7","28.7"],"create":["19.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"],"jsdelivr":["28.7"],"application":["31.0"],"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.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17","2.20","2.22","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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","4.41","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","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.9","0.12","0.13","0.14","0.15","0.16","2.7","2.19","2.24","2.31","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"],"position":["0.10","4.20","4.35","6.1","7.4","9.10","15.1","16.4","23.5","33.5","34.8"],"on":["0.12","0.13","0.14","0.15","0.16","2.3","2.7","2.12","2.13","2.19","2.24","2.31","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","4.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.4","2.5","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.4","2.5","2.6","2.8","2.9","2.10","2.11","2.14","2.15","2.16","2.20","2.27","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.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.4","2.5","2.6","2.8","2.9","2.10","2.11","2.14","2.15","2.16","2.17","2.20","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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"],"true":["2.17","2.18","2.19","2.21","2.22","2.23","2.24","2.25","2.26","2.39","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"],"setting":["2.18","2.21","2.28","8.1","8.5","11.17","11.20","11.27","17.1","17.5","34.13"],"srt":["2.28","2.29","2.30","11.27","11.28","11.29"],"并调用":["2.44","11.43"],"但数据意外未出现":["2.56","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"],"muted":["4.2","4.3","4.23","13.2","13.3","22.4","32.4","38.11"],"seek":["4.10","4.11"],"settimeout":["4.10","5.5","7.5","8.8","9.9","14.5","16.5","17.8","38.2"],"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"],"log":["4.41"],"theme":["4.41"],"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"],"left":["9.10"],"有些属性是全大写的":["10.0"],"t":["11.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","18.7","27.47","34.9","34.10"],"you":["13.38","18.7"],"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","18.7","28.2","28.7"],"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"],"unpkg":["18.7","28.7"],"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"],"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":["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","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"],"settimeout":["0.9","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"],"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"],"left":["0.10","6.1","15.1"],"true":["0.11","0.13","2.20","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"],"srt":["0.12","9.12"],"on":["0.17","2.1","2.4","2.5","2.6","2.8","2.9","2.10","2.11","2.14","2.15","2.16","2.17","2.18","2.20","2.21","2.22","2.23","2.25","2.26","2.27","2.28","2.29","2.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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"],"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","2.3","2.13","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.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.21","2.22","2.23","2.24","2.25","2.26","2.27","2.29","2.30","2.32","2.33","2.34","2.35","2.36","2.37","2.38","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"],"start":["2.3"],"end":["2.3"],"event":["2.6","2.8","2.9","2.10","2.11","2.13","2.14","4.38","8.4","11.5","11.14","17.4"],"reconnecttime":["2.12","11.12"],"state":["2.13","2.16","2.17","2.22","2.23","2.24","2.25","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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.19","11.18","28.5"],"datauri":["2.26","11.25"],"currenttime":["2.27","11.26","26.12","37.12"],"offset":["2.28","11.27"],"text":["2.29","11.28","34.7"],"ass":["2.31","11.30"],"load":["2.44","11.43"],"方法重新加载它":["2.44","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"],"green":["4.41"],"组件点击事件":["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"],"和":["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"],"说明这些属性是不稳定的":["10.0"],"可能会在将来被更改":["10.0"],"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","18.7","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"],"want":["18.7"],"be":["18.7","27.11"],"please":["18.7","27.29","27.30","27.31","27.32"],"modify":["18.7"],"configuration":["18.7"],"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"],"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"],"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"],"假如你要兼容更古老的浏览器时":["28.7"],"则为":["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.10","0.11","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.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","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","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.7","2.20","2.28","2.31","2.39","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.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","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"],"and":["18.7"],"build":["18.7","28.7"],"it":["18.7"],"yourself":["18.7"],"scripts":["18.7","28.7"],"reference":["18.7"],"documents":["18.7"],"browserslist":["18.7","28.7"],"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"],"请修改以下配置然后自行构建":["28.7"],"构建配置":["28.7"],"参考文档":["28.7"],"发送弹幕前的自定义校验":["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 方法用于动态添加层 +remove 方法用于动态删除层 +update 方法用于动态更新层 +show ...`,l:"advanced/built-in.html#layers",a:"layers"},"0.10":{t:"`controls`",p:`管理播放器的控制器 + +add 方法用于动态添加控制器 +remove 方法用于动态删除控制器 +update 方法用于动态更新控 ...`,l:"advanced/built-in.html#controls",a:"controls"},"0.11":{t:"`contextmenu`",p:`管理播放器的右键菜单 + +add 方法用于动态添加菜单 +remove 方法用于动态删除菜单 +update 方法用于动态更新菜单 ...`,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 方法用于动态添加设置项 +remove 方法用于动态删除设置项 +update 方法用于动态更新 ...`,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:`这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用 +`,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"},"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:"`loop`",p:`当出现区间循环时触发 +<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#loop",a:"loop"},"2.4":{t:"`pause`",p:`当播放器暂停时触发 +<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#pause",a:"pause"},"2.5":{t:"`play`",p:`当播放器播放时触发 +<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#play",a:"play"},"2.6":{t:"`hotkey`",p:`当播放器热键被按下时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#hotkey",a:"hotkey"},"2.7":{t:"`destroy`",p:`当播放器销毁时触发 +<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#destroy",a:"destroy"},"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:"`lock`",p:`在移动端,当锁定的状态发生变化时触发 +<div className="run-code">▶ ...`,l:"advanced/event.html#lock",a:"lock"},"2.18":{t:"`aspectRatio`",p:`当播放器长宽比变化时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#aspectratio",a:"aspectratio"},"2.19":{t:"`autoHeight`",p:`当播放器自动设置高度时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#autoheight",a:"autoheight"},"2.20":{t:"`autoSize`",p:`当播放器自动设置尺寸时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#autosize",a:"autosize"},"2.21":{t:"`flip`",p:`当播放器发生翻转时触发 +<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#flip",a:"flip"},"2.22":{t:"`fullscreen`",p:`当播放器发生窗口全屏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#fullscreen",a:"fullscreen"},"2.23":{t:"`fullscreenWeb`",p:`当播放器发生网页全屏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#fullscreenweb",a:"fullscreenweb"},"2.24":{t:"`mini`",p:`当播放器进入迷你模式时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#mini",a:"mini"},"2.25":{t:"`pip`",p:`当播放器进入画中画时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#pip",a:"pip"},"2.26":{t:"`screenshot`",p:`当播放器被截图时触发 +<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#screenshot",a:"screenshot"},"2.27":{t:"`seek`",p:`当播放器发生时间跳转时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#seek",a:"seek"},"2.28":{t:"`subtitleOffset`",p:`当播放器发生字幕偏移时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#subtitleoffset",a:"subtitleoffset"},"2.29":{t:"`subtitleUpdate`",p:`当字幕更新时触发 +<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleupdate",a:"subtitleupdate"},"2.30":{t:"`subtitleLoad`",p:`当字幕加载时触发 +<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleload",a:"subtitleload"},"2.31":{t:"`subtitleSwitch`",p:`当字幕切换时触发 +<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleswitch",a:"subtitleswitch"},"2.32":{t:"`info`",p:`当信息面板显示或隐藏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#info",a:"info"},"2.33":{t:"`layer`",p:`当自定义层显示或隐藏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#layer",a:"layer"},"2.34":{t:"`loading`",p:`当加载器显示或隐藏时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#loading",a:"loading"},"2.35":{t:"`mask`",p:`当遮罩层显示或隐藏时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#mask",a:"mask"},"2.36":{t:"`subtitle`",p:`当字幕层显示或隐藏时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#subtitle",a:"subtitle"},"2.37":{t:"`contextmenu`",p:`当右键菜单显示或隐藏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#contextmenu",a:"contextmenu"},"2.38":{t:"`control`",p:`当控制器显示或隐藏时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#control",a:"control"},"2.39":{t:"`setting`",p:`当设置面板显示或隐藏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#setting",a:"setting"},"2.40":{t:"`video:canplay`",p:`浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容 +`,l:"advanced/event.html#video-canplay",a:"video-canplay"},"2.41":{t:"`video:canplaythrough`",p:`浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束 +`,l:"advanced/event.html#video-canplaythrough",a:"video-canplaythrough"},"2.42":{t:"`video:complete`",p:`OfflineAudioContext 渲染完成 +`,l:"advanced/event.html#video-complete",a:"video-complete"},"2.43":{t:"`video:durationchange`",p:`duration 属性的值改变时触发 +`,l:"advanced/event.html#video-durationchange",a:"video-durationchange"},"2.44":{t:"`video:emptied`",p:"媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载 ...",l:"advanced/event.html#video-emptied",a:"video-emptied"},"2.45":{t:"`video:ended`",p:`视频停止播放,因为 media 已经到达结束点 +`,l:"advanced/event.html#video-ended",a:"video-ended"},"2.46":{t:"`video:error`",p:`获取媒体数据时出错,或者资源类型不是受支持的媒体格式 +`,l:"advanced/event.html#video-error",a:"video-error"},"2.47":{t:"`video:loadeddata`",p:`media 中的首帧已经完成加载 +`,l:"advanced/event.html#video-loadeddata",a:"video-loadeddata"},"2.48":{t:"`video:loadedmetadata`",p:`已加载元数据 +`,l:"advanced/event.html#video-loadedmetadata",a:"video-loadedmetadata"},"2.49":{t:"`video:pause`",p:`播放已暂停 +`,l:"advanced/event.html#video-pause",a:"video-pause"},"2.50":{t:"`video:play`",p:`播放已开始 +`,l:"advanced/event.html#video-play",a:"video-play"},"2.51":{t:"`video:playing`",p:`由于缺乏数据而暂停或延迟后,播放准备开始 +`,l:"advanced/event.html#video-playing",a:"video-playing"},"2.52":{t:"`video:progress`",p:`在浏览器加载资源时周期性触发 +`,l:"advanced/event.html#video-progress",a:"video-progress"},"2.53":{t:"`video:ratechange`",p:`播放速率发生变化 +`,l:"advanced/event.html#video-ratechange",a:"video-ratechange"},"2.54":{t:"`video:seeked`",p:`跳帧(seek)操作完成 +`,l:"advanced/event.html#video-seeked",a:"video-seeked"},"2.55":{t:"`video:seeking`",p:`跳帧(seek)操作开始 +`,l:"advanced/event.html#video-seeking",a:"video-seeking"},"2.56":{t:"`video:stalled`",p:`用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现 +`,l:"advanced/event.html#video-stalled",a:"video-stalled"},"2.57":{t:"`video:suspend`",p:`媒体数据加载已暂停 +`,l:"advanced/event.html#video-suspend",a:"video-suspend"},"2.58":{t:"`video:timeupdate`",p:`currentTime 属性指定的时间发生变化 +`,l:"advanced/event.html#video-timeupdate",a:"video-timeupdate"},"2.59":{t:"`video:volumechange`",p:`音量发生变化 +`,l:"advanced/event.html#video-volumechange",a:"video-volumechange"},"2.60":{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"},"4.41":{t:"`cssVar`",p:` +Type: Function + +动态获取或设置 css 变量 +<div className="run-co ...`,l:"advanced/property.html#cssvar",a:"cssvar"},"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"},"18.7":{t:"Old browsers",p:"Production builds of artplayer.js are only compatible with the ...",l:"en/index.html#old-browsers",a:"old-browsers"},"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:"语法提示"},"28.7":{t:"古老的浏览器",p:`生产构建的 artplayer.js 只兼容最新一个主版本的 Chrome:last 1 Chrome version +对于 ...`,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/en_index.md.2ca1e61c.js b/docs/document/assets/en_index.md.200697de.js similarity index 92% rename from docs/document/assets/en_index.md.2ca1e61c.js rename to docs/document/assets/en_index.md.200697de.js index be3b823ad..26abf4481 100644 --- a/docs/document/assets/en_index.md.2ca1e61c.js +++ b/docs/document/assets/en_index.md.200697de.js @@ -1,4 +1,4 @@ -import{_ as s,c as n,o as a,V as l}from"./chunks/framework.f7d2e3c3.js";const C=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","lastUpdated":1682229030000}'),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';
+import{_ as s,c as n,o as a,V as l}from"./chunks/framework.f7d2e3c3.js";const u=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","lastUpdated":1682229030000}'),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,V as l}from"./chunks/framework.f7d2e3c3.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,V as l}from"./chunks/framework.f7d2e3c3.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,V as l}from"./chunks/framework.f7d2e3c3.js";const C=
       art: null,
     }
   }
-}
`,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}; +}

Old browsers ​

Production builds of artplayer.js are only compatible with the last major version of Chrome: last 1 Chrome version

For older browsers, use the artplayer.legacy.js file, compatible up to: IE 11

js
import Artplayer from 'artplayer/dist/artplayer.legacy.js';
bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js
bash
https://unpkg.com/artplayer/dist/artplayer.legacy.js

If you want to be compatible with older browsers, please modify the following configuration and build it yourself:

Build configuration: /scripts/build.js

Reference documents: browserslist

`,32),o=[e];function t(r,c,i,y,F,D){return a(),n("div",null,o)}const C=s(p,[["render",t]]);export{u as __pageData,C as default}; diff --git a/docs/document/assets/en_index.md.200697de.lean.js b/docs/document/assets/en_index.md.200697de.lean.js new file mode 100644 index 000000000..31334871e --- /dev/null +++ b/docs/document/assets/en_index.md.200697de.lean.js @@ -0,0 +1 @@ +import{_ as s,c as n,o as a,V as l}from"./chunks/framework.f7d2e3c3.js";const u=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","lastUpdated":1682229030000}'),p={name:"en/index.md"},e=l("",32),o=[e];function t(r,c,i,y,F,D){return a(),n("div",null,o)}const C=s(p,[["render",t]]);export{u as __pageData,C as default}; diff --git a/docs/document/assets/en_index.md.2ca1e61c.lean.js b/docs/document/assets/en_index.md.2ca1e61c.lean.js deleted file mode 100644 index edd4dcbd4..000000000 --- a/docs/document/assets/en_index.md.2ca1e61c.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as n,o as a,V as l}from"./chunks/framework.f7d2e3c3.js";const C=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","lastUpdated":1682229030000}'),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_plugin_ads.md.de8649a5.js b/docs/document/assets/en_plugin_ads.md.e600e108.js similarity index 96% rename from docs/document/assets/en_plugin_ads.md.de8649a5.js rename to docs/document/assets/en_plugin_ads.md.e600e108.js index 392959437..dff0a0268 100644 --- a/docs/document/assets/en_plugin_ads.md.de8649a5.js +++ b/docs/document/assets/en_plugin_ads.md.e600e108.js @@ -1,4 +1,4 @@ -import{_ as a,c as n,o as l,V as s,z as p}from"./chunks/framework.f7d2e3c3.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,V as s,z as p}from"./chunks/framework.f7d2e3c3.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.de8649a5.lean.js b/docs/document/assets/en_plugin_ads.md.e600e108.lean.js
similarity index 100%
rename from docs/document/assets/en_plugin_ads.md.de8649a5.lean.js
rename to docs/document/assets/en_plugin_ads.md.e600e108.lean.js
diff --git a/docs/document/assets/en_plugin_control-ui.md.615d32e1.js b/docs/document/assets/en_plugin_control-ui.md.6375a1c0.js
similarity index 95%
rename from docs/document/assets/en_plugin_control-ui.md.615d32e1.js
rename to docs/document/assets/en_plugin_control-ui.md.6375a1c0.js
index 78a8f0a65..764f8a6aa 100644
--- a/docs/document/assets/en_plugin_control-ui.md.615d32e1.js
+++ b/docs/document/assets/en_plugin_control-ui.md.6375a1c0.js
@@ -1,4 +1,4 @@
-import{_ as n,c as l,o as p,V as s,z as a}from"./chunks/framework.f7d2e3c3.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,V as s,z as a}from"./chunks/framework.f7d2e3c3.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.615d32e1.lean.js b/docs/document/assets/en_plugin_control-ui.md.6375a1c0.lean.js
similarity index 100%
rename from docs/document/assets/en_plugin_control-ui.md.615d32e1.lean.js
rename to docs/document/assets/en_plugin_control-ui.md.6375a1c0.lean.js
diff --git a/docs/document/assets/en_plugin_dash-quality.md.b8157965.js b/docs/document/assets/en_plugin_dash-quality.md.7b7d96df.js
similarity index 87%
rename from docs/document/assets/en_plugin_dash-quality.md.b8157965.js
rename to docs/document/assets/en_plugin_dash-quality.md.7b7d96df.js
index 879b01cb3..4e72c9116 100644
--- a/docs/document/assets/en_plugin_dash-quality.md.b8157965.js
+++ b/docs/document/assets/en_plugin_dash-quality.md.7b7d96df.js
@@ -1 +1 @@
-import{_ as a,c as s,o as e,V as l}from"./chunks/framework.f7d2e3c3.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 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 e,V as l}from"./chunks/framework.f7d2e3c3.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 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/en_plugin_dash-quality.md.b8157965.lean.js b/docs/document/assets/en_plugin_dash-quality.md.7b7d96df.lean.js similarity index 100% rename from docs/document/assets/en_plugin_dash-quality.md.b8157965.lean.js rename to docs/document/assets/en_plugin_dash-quality.md.7b7d96df.lean.js diff --git a/docs/document/assets/en_plugin_hls-quality.md.e42166eb.js b/docs/document/assets/en_plugin_hls-quality.md.21b0b3d5.js similarity index 84% rename from docs/document/assets/en_plugin_hls-quality.md.e42166eb.js rename to docs/document/assets/en_plugin_hls-quality.md.21b0b3d5.js index 9bed83373..e5cfa822f 100644 --- a/docs/document/assets/en_plugin_hls-quality.md.e42166eb.js +++ b/docs/document/assets/en_plugin_hls-quality.md.21b0b3d5.js @@ -1 +1 @@ -import{_ as a,c as s,o as e,V as l}from"./chunks/framework.f7d2e3c3.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 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}; +import{_ as a,c as s,o as e,V as l}from"./chunks/framework.f7d2e3c3.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}; diff --git a/docs/document/assets/en_plugin_hls-quality.md.e42166eb.lean.js b/docs/document/assets/en_plugin_hls-quality.md.21b0b3d5.lean.js similarity index 68% rename from docs/document/assets/en_plugin_hls-quality.md.e42166eb.lean.js rename to docs/document/assets/en_plugin_hls-quality.md.21b0b3d5.lean.js index 0e8e96b18..e6d14b4f6 100644 --- a/docs/document/assets/en_plugin_hls-quality.md.e42166eb.lean.js +++ b/docs/document/assets/en_plugin_hls-quality.md.21b0b3d5.lean.js @@ -1 +1 @@ -import{_ as a,c as s,o as e,V as l}from"./chunks/framework.f7d2e3c3.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 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}; +import{_ as a,c as s,o as e,V as l}from"./chunks/framework.f7d2e3c3.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}; diff --git a/docs/document/assets/en_plugin_iframe.md.4f32fc57.js b/docs/document/assets/en_plugin_iframe.md.d55b96e0.js similarity index 98% rename from docs/document/assets/en_plugin_iframe.md.4f32fc57.js rename to docs/document/assets/en_plugin_iframe.md.d55b96e0.js index e3d7e0c74..4af65741a 100644 --- a/docs/document/assets/en_plugin_iframe.md.4f32fc57.js +++ b/docs/document/assets/en_plugin_iframe.md.d55b96e0.js @@ -1,4 +1,4 @@ -import{_ as s,c as a,o as n,V as l}from"./chunks/framework.f7d2e3c3.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,V as l}from"./chunks/framework.f7d2e3c3.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,V as l}from"./chunks/framework.f7d2e3c3.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.4f32fc57.lean.js b/docs/document/assets/en_plugin_iframe.md.d55b96e0.lean.js
similarity index 100%
rename from docs/document/assets/en_plugin_iframe.md.4f32fc57.lean.js
rename to docs/document/assets/en_plugin_iframe.md.d55b96e0.lean.js
diff --git a/docs/document/assets/index.md.250720c2.lean.js b/docs/document/assets/index.md.250720c2.lean.js
deleted file mode 100644
index a25eb066b..000000000
--- a/docs/document/assets/index.md.250720c2.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as s,c as n,o as a,V as l}from"./chunks/framework.f7d2e3c3.js";const C=JSON.parse('{"title":"安装使用","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","lastUpdated":1677208560000}'),p={name:"index.md"},o=l("",23),e=[o];function t(r,c,F,y,D,i){return a(),n("div",null,e)}const u=s(p,[["render",t]]);export{C as __pageData,u as default};
diff --git a/docs/document/assets/index.md.250720c2.js b/docs/document/assets/index.md.580b57e8.js
similarity index 91%
rename from docs/document/assets/index.md.250720c2.js
rename to docs/document/assets/index.md.580b57e8.js
index 839bdb0ad..c09025e02 100644
--- a/docs/document/assets/index.md.250720c2.js
+++ b/docs/document/assets/index.md.580b57e8.js
@@ -1,4 +1,4 @@
-import{_ as s,c as n,o as a,V as l}from"./chunks/framework.f7d2e3c3.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 a,o as n,V as l}from"./chunks/framework.f7d2e3c3.js";const u=JSON.parse('{"title":"安装使用","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","lastUpdated":1677208560000}'),p={name:"index.md"},e=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,V as l}from"./chunks/framework.f7d2e3c3.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,V as l}from"./chunks/framework.f7d2e3c3.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 }) {
@@ -143,4 +143,4 @@ import{_ as s,c as n,o as a,V as l}from"./chunks/framework.f7d2e3c3.js";const C=
       art: null,
     }
   }
-}
`,23),e=[o];function t(r,c,F,y,D,i){return a(),n("div",null,e)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; +}

古老的浏览器 ​

生产构建的 artplayer.js 只兼容最新一个主版本的 Chrome:last 1 Chrome version

对于古老的浏览器,可以使用 artplayer.legacy.js 文件,可以兼容到:IE 11

js
import Artplayer from 'artplayer/dist/artplayer.legacy.js';
bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js
bash
https://unpkg.com/artplayer/dist/artplayer.legacy.js

假如你要兼容更古老的浏览器时,请修改以下配置然后自行构建:

构建配置:scripts/build.js

参考文档:browserslist

`,31),o=[e];function t(r,c,y,F,i,D){return n(),a("div",null,o)}const C=s(p,[["render",t]]);export{u as __pageData,C as default}; diff --git a/docs/document/assets/index.md.580b57e8.lean.js b/docs/document/assets/index.md.580b57e8.lean.js new file mode 100644 index 000000000..97e1b8895 --- /dev/null +++ b/docs/document/assets/index.md.580b57e8.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,V as l}from"./chunks/framework.f7d2e3c3.js";const u=JSON.parse('{"title":"安装使用","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","lastUpdated":1677208560000}'),p={name:"index.md"},e=l("",31),o=[e];function t(r,c,y,F,i,D){return n(),a("div",null,o)}const C=s(p,[["render",t]]);export{u as __pageData,C as default}; diff --git a/docs/document/assets/plugin_ads.md.77095e9c.js b/docs/document/assets/plugin_ads.md.b672b9e1.js similarity index 96% rename from docs/document/assets/plugin_ads.md.77095e9c.js rename to docs/document/assets/plugin_ads.md.b672b9e1.js index 0110aa815..07d6071e6 100644 --- a/docs/document/assets/plugin_ads.md.77095e9c.js +++ b/docs/document/assets/plugin_ads.md.b672b9e1.js @@ -1,4 +1,4 @@ -import{_ as a,c as n,o as l,V as s,z as p}from"./chunks/framework.f7d2e3c3.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,V as s,z as p}from"./chunks/framework.f7d2e3c3.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.77095e9c.lean.js b/docs/document/assets/plugin_ads.md.b672b9e1.lean.js
similarity index 100%
rename from docs/document/assets/plugin_ads.md.77095e9c.lean.js
rename to docs/document/assets/plugin_ads.md.b672b9e1.lean.js
diff --git a/docs/document/assets/plugin_control-ui.md.6632ae3b.js b/docs/document/assets/plugin_control-ui.md.cf063a1c.js
similarity index 95%
rename from docs/document/assets/plugin_control-ui.md.6632ae3b.js
rename to docs/document/assets/plugin_control-ui.md.cf063a1c.js
index 781773ca5..e5eb3bf68 100644
--- a/docs/document/assets/plugin_control-ui.md.6632ae3b.js
+++ b/docs/document/assets/plugin_control-ui.md.cf063a1c.js
@@ -1,4 +1,4 @@
-import{_ as n,c as l,o as p,V as s,z as a}from"./chunks/framework.f7d2e3c3.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,V as s,z as a}from"./chunks/framework.f7d2e3c3.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,
@@ -24,4 +24,4 @@ import{_ as n,c as l,o as p,V as s,z as a}from"./chunks/framework.f7d2e3c3.js";c
     plugins: [
         artplayerPluginControl(),
     ],
-});
`,1),y=[o,r,t,c,i];function D(F,C,d,u,b,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{h as __pageData,g as default}; +});
`,1),y=[o,r,t,c,i];function D(F,C,d,b,u,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{h as __pageData,g as default}; diff --git a/docs/document/assets/plugin_control-ui.md.6632ae3b.lean.js b/docs/document/assets/plugin_control-ui.md.cf063a1c.lean.js similarity index 90% rename from docs/document/assets/plugin_control-ui.md.6632ae3b.lean.js rename to docs/document/assets/plugin_control-ui.md.cf063a1c.lean.js index 562797c7c..827c12f52 100644 --- a/docs/document/assets/plugin_control-ui.md.6632ae3b.lean.js +++ b/docs/document/assets/plugin_control-ui.md.cf063a1c.lean.js @@ -1 +1 @@ -import{_ as n,c as l,o as p,V as s,z as a}from"./chunks/framework.f7d2e3c3.js";const h=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/control-ui.md","lastUpdated":1673441101000}'),e={name:"plugin/control-ui.md"},o=s("",8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s("",4),c=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),i=s("",1),y=[o,r,t,c,i];function D(F,C,d,u,b,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{h as __pageData,g as default}; +import{_ as n,c as l,o as p,V as s,z as a}from"./chunks/framework.f7d2e3c3.js";const h=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/control-ui.md","lastUpdated":1673441101000}'),e={name:"plugin/control-ui.md"},o=s("",8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s("",4),c=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),i=s("",1),y=[o,r,t,c,i];function D(F,C,d,b,u,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{h as __pageData,g as default}; diff --git a/docs/document/assets/plugin_danmuku.md.f1d16848.js b/docs/document/assets/plugin_danmuku.md.3409db0d.js similarity index 99% rename from docs/document/assets/plugin_danmuku.md.f1d16848.js rename to docs/document/assets/plugin_danmuku.md.3409db0d.js index 0210a8149..c800a3fb3 100644 --- a/docs/document/assets/plugin_danmuku.md.f1d16848.js +++ b/docs/document/assets/plugin_danmuku.md.3409db0d.js @@ -1,4 +1,4 @@ -import{_ as a,c as l,o as p,V as s,z as n}from"./chunks/framework.f7d2e3c3.js";const V=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,V as s,z as n}from"./chunks/framework.f7d2e3c3.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
{
     danmuku: [], // 弹幕库,支持数组, xml 地址, Promise返回数组
     speed: 5, // 弹幕持续时间,单位秒,范围在[1 ~ 10]
     opacity: 1, // 弹幕透明度,范围在[0 ~ 1]
@@ -280,4 +280,4 @@ import{_ as a,c as l,o as p,V as s,z as n}from"./chunks/framework.f7d2e3c3.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,q,B,j,S,w){return p(),l("div",null,P)}const I=a(o,[["render",T]]);export{V as __pageData,I as default}; +});
`,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,S,j,w){return p(),l("div",null,P)}const V=a(o,[["render",T]]);export{I as __pageData,V as default}; diff --git a/docs/document/assets/plugin_danmuku.md.f1d16848.lean.js b/docs/document/assets/plugin_danmuku.md.3409db0d.lean.js similarity index 87% rename from docs/document/assets/plugin_danmuku.md.f1d16848.lean.js rename to docs/document/assets/plugin_danmuku.md.3409db0d.lean.js index 802a237c8..e2e9bf8d2 100644 --- a/docs/document/assets/plugin_danmuku.md.f1d16848.lean.js +++ b/docs/document/assets/plugin_danmuku.md.3409db0d.lean.js @@ -1 +1 @@ -import{_ as a,c as l,o as p,V as s,z as n}from"./chunks/framework.f7d2e3c3.js";const V=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,q,B,j,S,w){return p(),l("div",null,P)}const I=a(o,[["render",T]]);export{V as __pageData,I as default}; +import{_ as a,c as l,o as p,V as s,z as n}from"./chunks/framework.f7d2e3c3.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,S,j,w){return p(),l("div",null,P)}const V=a(o,[["render",T]]);export{I as __pageData,V as default}; diff --git a/docs/document/assets/plugin_dash-quality.md.87a41b51.lean.js b/docs/document/assets/plugin_dash-quality.md.87a41b51.lean.js deleted file mode 100644 index cf0b30d5a..000000000 --- a/docs/document/assets/plugin_dash-quality.md.87a41b51.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as s,o as e,V as l}from"./chunks/framework.f7d2e3c3.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}; diff --git a/docs/document/assets/plugin_dash-quality.md.87a41b51.js b/docs/document/assets/plugin_dash-quality.md.e5eb5ed3.js similarity index 82% rename from docs/document/assets/plugin_dash-quality.md.87a41b51.js rename to docs/document/assets/plugin_dash-quality.md.e5eb5ed3.js index baa474862..87f418558 100644 --- a/docs/document/assets/plugin_dash-quality.md.87a41b51.js +++ b/docs/document/assets/plugin_dash-quality.md.e5eb5ed3.js @@ -1 +1 @@ -import{_ as a,c as s,o as e,V as l}from"./chunks/framework.f7d2e3c3.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,V as l}from"./chunks/framework.f7d2e3c3.js";const m=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 y=a(n,[["render",r]]);export{m as __pageData,y as default}; diff --git a/docs/document/assets/plugin_dash-quality.md.e5eb5ed3.lean.js b/docs/document/assets/plugin_dash-quality.md.e5eb5ed3.lean.js new file mode 100644 index 000000000..d8f8b1044 --- /dev/null +++ b/docs/document/assets/plugin_dash-quality.md.e5eb5ed3.lean.js @@ -0,0 +1 @@ +import{_ as a,c as s,o as e,V as l}from"./chunks/framework.f7d2e3c3.js";const m=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 y=a(n,[["render",r]]);export{m as __pageData,y as default}; diff --git a/docs/document/assets/plugin_hls-quality.md.40fc78b9.js b/docs/document/assets/plugin_hls-quality.md.83b8ed33.js similarity index 84% rename from docs/document/assets/plugin_hls-quality.md.40fc78b9.js rename to docs/document/assets/plugin_hls-quality.md.83b8ed33.js index 11b9aa63f..f9fb19309 100644 --- a/docs/document/assets/plugin_hls-quality.md.40fc78b9.js +++ b/docs/document/assets/plugin_hls-quality.md.83b8ed33.js @@ -1 +1 @@ -import{_ as a,c as s,o as l,V as e}from"./chunks/framework.f7d2e3c3.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,h){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 l,V as e}from"./chunks/framework.f7d2e3c3.js";const m=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,h){return l(),s("div",null,p)}const y=a(n,[["render",r]]);export{m as __pageData,y as default}; diff --git a/docs/document/assets/plugin_hls-quality.md.40fc78b9.lean.js b/docs/document/assets/plugin_hls-quality.md.83b8ed33.lean.js similarity index 67% rename from docs/document/assets/plugin_hls-quality.md.40fc78b9.lean.js rename to docs/document/assets/plugin_hls-quality.md.83b8ed33.lean.js index 7fd9a380e..517deb155 100644 --- a/docs/document/assets/plugin_hls-quality.md.40fc78b9.lean.js +++ b/docs/document/assets/plugin_hls-quality.md.83b8ed33.lean.js @@ -1 +1 @@ -import{_ as a,c as s,o as l,V as e}from"./chunks/framework.f7d2e3c3.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,h){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 l,V as e}from"./chunks/framework.f7d2e3c3.js";const m=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,h){return l(),s("div",null,p)}const y=a(n,[["render",r]]);export{m as __pageData,y as default}; diff --git a/docs/document/assets/plugin_iframe.md.23d132ab.js b/docs/document/assets/plugin_iframe.md.0e3d4605.js similarity index 98% rename from docs/document/assets/plugin_iframe.md.23d132ab.js rename to docs/document/assets/plugin_iframe.md.0e3d4605.js index 29d2742cc..7b5758def 100644 --- a/docs/document/assets/plugin_iframe.md.23d132ab.js +++ b/docs/document/assets/plugin_iframe.md.0e3d4605.js @@ -1,4 +1,4 @@ -import{_ as s,c as a,o as n,V as l}from"./chunks/framework.f7d2e3c3.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,V as l}from"./chunks/framework.f7d2e3c3.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,V as l}from"./chunks/framework.f7d2e3c3.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.23d132ab.lean.js b/docs/document/assets/plugin_iframe.md.0e3d4605.lean.js
similarity index 100%
rename from docs/document/assets/plugin_iframe.md.23d132ab.lean.js
rename to docs/document/assets/plugin_iframe.md.0e3d4605.lean.js
diff --git a/docs/document/component/contextmenu.html b/docs/document/component/contextmenu.html
index a81b9fb1b..040046074 100644
--- a/docs/document/component/contextmenu.html
+++ b/docs/document/component/contextmenu.html
@@ -6,10 +6,10 @@
     右键菜单 | Artplayer.js
     
     
-    
+    
     
   
-  
+  
   
   
   
@@ -100,7 +100,7 @@
         })
     }, 3000);
 });
- diff --git a/docs/document/component/controls.html b/docs/document/component/controls.html index 862098e8b..846036a35 100644 --- a/docs/document/component/controls.html +++ b/docs/document/component/controls.html @@ -6,10 +6,10 @@ 控制器 | Artplayer.js - + - + @@ -147,7 +147,7 @@ }); }, 3000); });
- diff --git a/docs/document/component/layers.html b/docs/document/component/layers.html index f65a81e4d..94387af81 100644 --- a/docs/document/component/layers.html +++ b/docs/document/component/layers.html @@ -6,10 +6,10 @@ 业务层 | Artplayer.js - + - + @@ -119,7 +119,7 @@ }); }, 3000); });
- diff --git a/docs/document/component/setting.html b/docs/document/component/setting.html index 8fa3f3e3e..c757d1c72 100644 --- a/docs/document/component/setting.html +++ b/docs/document/component/setting.html @@ -6,10 +6,10 @@ 设置面板 | Artplayer.js - + - + @@ -224,7 +224,7 @@ }); }, 3000); }); - diff --git a/docs/document/en/advanced/built-in.html b/docs/document/en/advanced/built-in.html index 075898889..84544b585 100644 --- a/docs/document/en/advanced/built-in.html +++ b/docs/document/en/advanced/built-in.html @@ -6,10 +6,10 @@ 高级属性 | Artplayer.js - + - + @@ -210,7 +210,7 @@ art.on('ready', () => { art.plugins.add(myPlugin); }); - diff --git a/docs/document/en/advanced/class.html b/docs/document/en/advanced/class.html index 89c04cf37..5522e6eef 100644 --- a/docs/document/en/advanced/class.html +++ b/docs/document/en/advanced/class.html @@ -6,10 +6,10 @@ 静态属性 | Artplayer.js - + - + @@ -25,7 +25,7 @@ }); 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 ​

- diff --git a/docs/document/en/advanced/event.html b/docs/document/en/advanced/event.html index c14e6bade..961d37ac6 100644 --- a/docs/document/en/advanced/event.html +++ b/docs/document/en/advanced/event.html @@ -6,10 +6,10 @@ 实例事件 | Artplayer.js - + - + @@ -361,7 +361,7 @@ 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 ​

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

- diff --git a/docs/document/en/advanced/plugin.html b/docs/document/en/advanced/plugin.html index 775577cba..39f9ca45d 100644 --- a/docs/document/en/advanced/plugin.html +++ b/docs/document/en/advanced/plugin.html @@ -6,10 +6,10 @@ 编写插件 | Artplayer.js - + - + @@ -116,7 +116,7 @@ }) ], }); - diff --git a/docs/document/en/advanced/property.html b/docs/document/en/advanced/property.html index ba012ac7b..b6acd0685 100644 --- a/docs/document/en/advanced/property.html +++ b/docs/document/en/advanced/property.html @@ -6,10 +6,10 @@ Instance Property | Artplayer.js - + - + @@ -371,7 +371,7 @@ }); console.info(art.video); - diff --git a/docs/document/en/component/contextmenu.html b/docs/document/en/component/contextmenu.html index 0e5bc03f9..1a2dab3c8 100644 --- a/docs/document/en/component/contextmenu.html +++ b/docs/document/en/component/contextmenu.html @@ -6,10 +6,10 @@ 右键菜单 | Artplayer.js - + - + @@ -100,7 +100,7 @@ }) }, 3000); }); - diff --git a/docs/document/en/component/controls.html b/docs/document/en/component/controls.html index ba6df0ff4..ec73e843a 100644 --- a/docs/document/en/component/controls.html +++ b/docs/document/en/component/controls.html @@ -6,10 +6,10 @@ 控制器 | Artplayer.js - + - + @@ -147,7 +147,7 @@ }); }, 3000); }); - diff --git a/docs/document/en/component/layers.html b/docs/document/en/component/layers.html index c1ea8d1b8..8d1ee6dbd 100644 --- a/docs/document/en/component/layers.html +++ b/docs/document/en/component/layers.html @@ -6,10 +6,10 @@ 业务层 | Artplayer.js - + - + @@ -119,7 +119,7 @@ }); }, 3000); }); - diff --git a/docs/document/en/component/setting.html b/docs/document/en/component/setting.html index 1dd83a6af..ec07c0140 100644 --- a/docs/document/en/component/setting.html +++ b/docs/document/en/component/setting.html @@ -6,10 +6,10 @@ 设置面板 | Artplayer.js - + - + @@ -224,7 +224,7 @@ }); }, 3000); }); - diff --git a/docs/document/en/index.html b/docs/document/en/index.html index 088ada918..2e91aa895 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

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';
+    
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 }) {
@@ -162,8 +162,8 @@
       art: null,
     }
   }
-}
- diff --git a/docs/document/en/library/dash.html b/docs/document/en/library/dash.html index 2211936e5..5a94690c6 100644 --- a/docs/document/en/library/dash.html +++ b/docs/document/en/library/dash.html @@ -6,10 +6,10 @@ dash.js | Artplayer.js - + - + @@ -41,7 +41,7 @@ art.on('ready', () => { console.info(art.dash); });
- diff --git a/docs/document/en/library/flv.html b/docs/document/en/library/flv.html index 8bcef904f..e79866783 100644 --- a/docs/document/en/library/flv.html +++ b/docs/document/en/library/flv.html @@ -6,10 +6,10 @@ flv.js | Artplayer.js - + - + @@ -42,7 +42,7 @@ art.on('ready', () => { console.info(art.flv); }); - diff --git a/docs/document/en/library/hls.html b/docs/document/en/library/hls.html index 8c70b305f..0b0399664 100644 --- a/docs/document/en/library/hls.html +++ b/docs/document/en/library/hls.html @@ -6,10 +6,10 @@ hls.js | Artplayer.js - + - + @@ -44,7 +44,7 @@ art.on('ready', () => { console.info(art.hls); }); - diff --git a/docs/document/en/plugin/ads.html b/docs/document/en/plugin/ads.html index 8d19505c3..d65668c54 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,7 +65,7 @@
 art.on('artplayerPluginAds:skip', (ads) => {
     console.info(ads);
 });
- diff --git a/docs/document/en/plugin/control-ui.html b/docs/document/en/plugin/control-ui.html index 19092e24f..8bcb6e923 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,7 +44,7 @@
         artplayerPluginControl(),
     ],
 });
- diff --git a/docs/document/en/plugin/dash-quality.html b/docs/document/en/plugin/dash-quality.html index 3de5f3457..0a048f06c 100644 --- a/docs/document/en/plugin/dash-quality.html +++ b/docs/document/en/plugin/dash-quality.html @@ -6,19 +6,19 @@ 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
- diff --git a/docs/document/en/plugin/hls-quality.html b/docs/document/en/plugin/hls-quality.html index 8b59bc3fb..e764e8aee 100644 --- a/docs/document/en/plugin/hls-quality.html +++ b/docs/document/en/plugin/hls-quality.html @@ -6,19 +6,19 @@ 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
- diff --git a/docs/document/en/plugin/iframe.html b/docs/document/en/plugin/iframe.html index 4940be366..d62a5a50c 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,7 +183,7 @@
         </script>
     </body>
 </html>
- diff --git a/docs/document/en/start/option.html b/docs/document/en/start/option.html index bbd1bfa1d..d36c1ac9c 100644 --- a/docs/document/en/start/option.html +++ b/docs/document/en/start/option.html @@ -6,10 +6,10 @@ Option | Artplayer.js - + - + @@ -408,7 +408,7 @@ // }, });
- diff --git a/docs/document/hashmap.json b/docs/document/hashmap.json index 7bbb6c6d8..26c71680d 100644 --- a/docs/document/hashmap.json +++ b/docs/document/hashmap.json @@ -1 +1 @@ -{"advanced_class.md":"c553c95a","component_layers.md":"f5af8f05","component_controls.md":"b384859c","en_component_layers.md":"77c00c9f","en_advanced_plugin.md":"0f5dbbe2","advanced_plugin.md":"f0cc2510","component_contextmenu.md":"88b1cf3b","en_component_controls.md":"0bf5f475","en_plugin_dash-quality.md":"b8157965","advanced_built-in.md":"664dfefa","component_setting.md":"0672ec6c","en_library_flv.md":"a9e13f72","en_index.md":"2ca1e61c","en_plugin_ads.md":"de8649a5","en_component_contextmenu.md":"a60aaaf8","en_component_setting.md":"7a78c7eb","en_advanced_event.md":"1a92fa35","en_library_hls.md":"249c3b05","en_plugin_iframe.md":"4f32fc57","en_advanced_class.md":"fd365177","en_advanced_built-in.md":"6b773482","en_plugin_hls-quality.md":"e42166eb","advanced_event.md":"b1e050e0","en_library_dash.md":"3e688dbe","index.md":"250720c2","en_plugin_control-ui.md":"615d32e1","library_dash.md":"245289b4","library_flv.md":"296c1ec0","plugin_control-ui.md":"6632ae3b","library_hls.md":"9e1cd522","en_advanced_property.md":"d251207d","plugin_dash-quality.md":"87a41b51","en_start_option.md":"08fc60cb","advanced_property.md":"3663dcfe","plugin_hls-quality.md":"40fc78b9","plugin_ads.md":"77095e9c","plugin_iframe.md":"23d132ab","plugin_danmuku.md":"f1d16848","start_option.md":"71691573"} +{"advanced_class.md":"c553c95a","component_contextmenu.md":"88b1cf3b","advanced_plugin.md":"f0cc2510","component_controls.md":"b384859c","component_layers.md":"f5af8f05","component_setting.md":"0672ec6c","advanced_event.md":"b1e050e0","en_advanced_built-in.md":"6b773482","en_advanced_class.md":"fd365177","advanced_built-in.md":"664dfefa","en_advanced_plugin.md":"0f5dbbe2","en_advanced_event.md":"1a92fa35","advanced_property.md":"3663dcfe","en_component_contextmenu.md":"a60aaaf8","en_component_controls.md":"0bf5f475","en_library_dash.md":"3e688dbe","en_component_layers.md":"77c00c9f","en_library_flv.md":"a9e13f72","en_plugin_control-ui.md":"6375a1c0","en_plugin_ads.md":"e600e108","en_plugin_hls-quality.md":"21b0b3d5","en_library_hls.md":"249c3b05","en_plugin_dash-quality.md":"7b7d96df","en_advanced_property.md":"d251207d","en_index.md":"200697de","en_component_setting.md":"7a78c7eb","en_plugin_iframe.md":"d55b96e0","library_hls.md":"9e1cd522","plugin_ads.md":"b672b9e1","library_dash.md":"245289b4","index.md":"580b57e8","library_flv.md":"296c1ec0","plugin_control-ui.md":"cf063a1c","plugin_dash-quality.md":"e5eb5ed3","plugin_hls-quality.md":"83b8ed33","plugin_iframe.md":"0e3d4605","plugin_danmuku.md":"3409db0d","en_start_option.md":"08fc60cb","start_option.md":"71691573"} diff --git a/docs/document/index.html b/docs/document/index.html index fb2660d65..da7764f07 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 }) {
@@ -162,8 +162,8 @@
       art: null,
     }
   }
-}
- diff --git a/docs/document/library/dash.html b/docs/document/library/dash.html index 967533430..9f076e5a3 100644 --- a/docs/document/library/dash.html +++ b/docs/document/library/dash.html @@ -6,10 +6,10 @@ dash.js | Artplayer.js - + - + @@ -41,7 +41,7 @@ art.on('ready', () => { console.info(art.dash); });
- diff --git a/docs/document/library/flv.html b/docs/document/library/flv.html index ec2de1bc5..78a0dbdb1 100644 --- a/docs/document/library/flv.html +++ b/docs/document/library/flv.html @@ -6,10 +6,10 @@ flv.js | Artplayer.js - + - + @@ -42,7 +42,7 @@ art.on('ready', () => { console.info(art.flv); });
- diff --git a/docs/document/library/hls.html b/docs/document/library/hls.html index 361b84fed..cf3c98a5c 100644 --- a/docs/document/library/hls.html +++ b/docs/document/library/hls.html @@ -6,10 +6,10 @@ hls.js | Artplayer.js - + - + @@ -44,7 +44,7 @@ art.on('ready', () => { console.info(art.hls); });
- diff --git a/docs/document/plugin/ads.html b/docs/document/plugin/ads.html index 291620531..3122a57f0 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,7 +65,7 @@
 art.on('artplayerPluginAds:skip', (ads) => {
     console.info(ads);
 });
- diff --git a/docs/document/plugin/control-ui.html b/docs/document/plugin/control-ui.html index 052891828..1e10d52d2 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,7 +44,7 @@
         artplayerPluginControl(),
     ],
 });
- diff --git a/docs/document/plugin/danmuku.html b/docs/document/plugin/danmuku.html index d97783480..c40206fff 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,7 +300,7 @@
 art.on('artplayerPluginDanmuku:destroy', () => {
     console.info('弹幕销毁');
 });
- diff --git a/docs/document/plugin/dash-quality.html b/docs/document/plugin/dash-quality.html index a8f3afd12..276e2b36e 100644 --- a/docs/document/plugin/dash-quality.html +++ b/docs/document/plugin/dash-quality.html @@ -6,19 +6,19 @@ 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
- diff --git a/docs/document/plugin/hls-quality.html b/docs/document/plugin/hls-quality.html index e44b85890..977b3edce 100644 --- a/docs/document/plugin/hls-quality.html +++ b/docs/document/plugin/hls-quality.html @@ -6,19 +6,19 @@ 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
- diff --git a/docs/document/plugin/iframe.html b/docs/document/plugin/iframe.html index 6cebff40f..6866ab006 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,7 +183,7 @@
         </script>
     </body>
 </html>
- diff --git a/docs/document/start/option.html b/docs/document/start/option.html index f9df030e6..e062fb93d 100644 --- a/docs/document/start/option.html +++ b/docs/document/start/option.html @@ -6,10 +6,10 @@ 基础选项 | Artplayer.js - + - + @@ -408,7 +408,7 @@ // }, });
- diff --git a/docs/uncompiled/artplayer/index.js b/docs/uncompiled/artplayer/index.js index 0dc95af34..9c71fff01 100644 --- a/docs/uncompiled/artplayer/index.js +++ b/docs/uncompiled/artplayer/index.js @@ -249,7 +249,7 @@ class Artplayer extends (0, _emitterDefault.default) { return "development"; } static get build() { - return "2023-04-26 10:22:12"; + return "2023-04-26 10:26:26"; } static get config() { return 0, _configDefault.default; @@ -4655,7 +4655,7 @@ class Setting extends (0, _componentDefault.default) { remove(name) { const item = this.find(name); (0, _error.errorHandle)(item, `Can't find [${name}] from the [setting]`); - const parent = item.$parentItem ? item.$parentItem.selector : this.option; + const parent = item.$parentItem?.selector || this.option; parent.splice(parent.indexOf(item), 1); this.option = Setting.makeRecursion(this.option); this.destroy(); diff --git a/docs/uncompiled/artplayer/index.js.map b/docs/uncompiled/artplayer/index.js.map index f4fa88684..d59b8c821 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 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 if (art.playing) {\n art.loading.show = false;\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 ? 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.html;\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.html;\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.html;\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 +{"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 if (art.playing) {\n art.loading.show = false;\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.html;\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.html;\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.html;\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-vitepress/docs/en/index.md b/packages/artplayer-vitepress/docs/en/index.md index a5693b02a..19e296f0c 100644 --- a/packages/artplayer-vitepress/docs/en/index.md +++ b/packages/artplayer-vitepress/docs/en/index.md @@ -271,4 +271,32 @@ export default { } } } -``` \ No newline at end of file +``` + +## Old browsers + +Production builds of `artplayer.js` are only compatible with the last major version of `Chrome`: `last 1 Chrome version` + +For older browsers, use the `artplayer.legacy.js` file, compatible up to: `IE 11` + +```js +import Artplayer from 'artplayer/dist/artplayer.legacy.js'; +``` + +::: code-group + +```bash [jsdelivr.net] +https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js +``` + +```bash [unpkg.com] +https://unpkg.com/artplayer/dist/artplayer.legacy.js +``` + +::: + +If you want to be compatible with older browsers, please modify the following configuration and build it yourself: + +Build configuration: [/scripts/build.js](https://github.com/zhw2590582/ArtPlayer/blob/master/scripts/build.js#L29) + +Reference documents: [browserslist](https://github.com/browserslist/browserslist#full-list) \ No newline at end of file diff --git a/packages/artplayer-vitepress/docs/index.md b/packages/artplayer-vitepress/docs/index.md index 827056f07..0355c78fc 100644 --- a/packages/artplayer-vitepress/docs/index.md +++ b/packages/artplayer-vitepress/docs/index.md @@ -267,4 +267,32 @@ export default { } } } -``` \ No newline at end of file +``` + +## 古老的浏览器 + +生产构建的 `artplayer.js` 只兼容最新一个主版本的 `Chrome`:`last 1 Chrome version` + +对于古老的浏览器,可以使用 `artplayer.legacy.js` 文件,可以兼容到:`IE 11` + +```js +import Artplayer from 'artplayer/dist/artplayer.legacy.js'; +``` + +::: code-group + +```bash [jsdelivr.net] +https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.legacy.js +``` + +```bash [unpkg.com] +https://unpkg.com/artplayer/dist/artplayer.legacy.js +``` + +::: + +假如你要兼容更古老的浏览器时,请修改以下配置然后自行构建: + +构建配置:[scripts/build.js](https://github.com/zhw2590582/ArtPlayer/blob/master/scripts/build.js#L29) + +参考文档:[browserslist](https://github.com/browserslist/browserslist#full-list) \ No newline at end of file diff --git a/packages/artplayer/src/setting/index.js b/packages/artplayer/src/setting/index.js index b49a7c4d7..951c45b37 100644 --- a/packages/artplayer/src/setting/index.js +++ b/packages/artplayer/src/setting/index.js @@ -120,7 +120,7 @@ export default class Setting extends Component { remove(name) { const item = this.find(name); errorHandle(item, `Can't find [${name}] from the [setting]`); - const parent = item.$parentItem ? item.$parentItem.selector : this.option; + const parent = item.$parentItem?.selector || this.option; parent.splice(parent.indexOf(item), 1); this.option = Setting.makeRecursion(this.option); this.destroy(); diff --git a/packages/artplayer/src/style/mixins.less b/packages/artplayer/src/style/mixins.less index 37016ae10..74a2b7ff4 100644 --- a/packages/artplayer/src/style/mixins.less +++ b/packages/artplayer/src/style/mixins.less @@ -6,10 +6,7 @@ .art-full(@index: 0, @position: absolute) { position: @position; - top: 0; - right: 0; - bottom: 0; - left: 0; + inset: 0; z-index: @index; width: 100%; height: 100%;