From 319dccb60593f6206418dc04b27b1170767fa716 Mon Sep 17 00:00:00 2001 From: Harvey Zhao Date: Tue, 15 Sep 2026 18:09:30 +0800 Subject: [PATCH] docs(dash): [SITE-DASH-01] add bilingual guides and fix example lifecycle --- docs/assets/example/dash.control.js | 76 +- docs/document/404.html | 4 +- docs/document/advanced/built-in.html | 8 +- docs/document/advanced/class.html | 8 +- docs/document/advanced/event.html | 8 +- docs/document/advanced/global.html | 8 +- docs/document/advanced/plugin.html | 8 +- docs/document/advanced/property.html | 8 +- .../{app.C4kTwhag.js => app.dBfz83xG.js} | 2 +- .../{theme.2Kq8jVhZ.js => theme.D27Qlqu6.js} | 2 +- .../chunks/virtual_search-data.BMtqzJwt.js | 1414 ---------------- .../chunks/virtual_search-data.DDH2dNJ_.js | 1421 +++++++++++++++++ .../en_plugin_dash-control.md.91f02kuD.js | 81 + ...en_plugin_dash-control.md.91f02kuD.lean.js | 2 + ...s => en_plugin_hls-control.md.D-g42K7T.js} | 2 +- ...en_plugin_hls-control.md.D-g42K7T.lean.js} | 2 +- .../assets/plugin_dash-control.md.CFnlLzry.js | 81 + .../plugin_dash-control.md.CFnlLzry.lean.js | 2 + ...9.js => plugin_hls-control.md.IVFa-2v4.js} | 2 +- ...=> plugin_hls-control.md.IVFa-2v4.lean.js} | 2 +- docs/document/component/contextmenu.html | 8 +- docs/document/component/controls.html | 8 +- docs/document/component/layers.html | 8 +- docs/document/component/setting.html | 8 +- docs/document/en/advanced/built-in.html | 8 +- docs/document/en/advanced/class.html | 8 +- docs/document/en/advanced/event.html | 8 +- docs/document/en/advanced/global.html | 8 +- docs/document/en/advanced/plugin.html | 8 +- docs/document/en/advanced/property.html | 8 +- docs/document/en/component/contextmenu.html | 8 +- docs/document/en/component/controls.html | 8 +- docs/document/en/component/layers.html | 8 +- docs/document/en/component/setting.html | 8 +- docs/document/en/index.html | 8 +- docs/document/en/plugin/danmuku.html | 8 +- docs/document/en/plugin/dash-control.html | 110 ++ docs/document/en/plugin/hls-control.html | 12 +- docs/document/en/start/i18n.html | 8 +- docs/document/en/start/option.html | 8 +- docs/document/hashmap.json | 2 +- docs/document/index.html | 8 +- docs/document/main.js | 2 +- docs/document/plugin/danmuku.html | 8 +- docs/document/plugin/dash-control.html | 110 ++ docs/document/plugin/hls-control.html | 12 +- docs/document/start/i18n.html | 8 +- docs/document/start/option.html | 8 +- docs/llms.manifest.json | 8 +- docs/llms.txt | 258 ++- package.json | 2 +- .../ARCHITECTURE.md | 14 + .../artplayer-plugin-dash-control/README.md | 5 + packages/artplayer-vitepress/README.md | 10 +- .../docs/.vitepress/config.js | 4 +- .../docs/en/plugin/dash-control.md | 178 +++ .../docs/plugin/dash-control.md | 178 +++ .../artplayer-vitepress/docs/public/main.js | 2 +- refactor/baselines/dash-docs-validation.json | 833 ++++++++++ refactor/baselines/site-inventory.json | 267 +++- .../changes/2026-09-15-SITE-DASH-01-guides.md | 97 ++ refactor/plan.md | 12 +- refactor/progress.md | 16 + refactor/risk-table.md | 1 + refactor/risks.json | 25 + refactor/tasks.json | 24 +- test/browser/README.md | 11 + test/browser/document-dash.spec.js | 97 ++ test/browser/document-site.spec.js | 14 + test/dash-example.test.js | 79 + 70 files changed, 4005 insertions(+), 1695 deletions(-) rename docs/document/assets/{app.C4kTwhag.js => app.dBfz83xG.js} (95%) rename docs/document/assets/chunks/{theme.2Kq8jVhZ.js => theme.D27Qlqu6.js} (99%) delete mode 100644 docs/document/assets/chunks/virtual_search-data.BMtqzJwt.js create mode 100644 docs/document/assets/chunks/virtual_search-data.DDH2dNJ_.js create mode 100644 docs/document/assets/en_plugin_dash-control.md.91f02kuD.js create mode 100644 docs/document/assets/en_plugin_dash-control.md.91f02kuD.lean.js rename docs/document/assets/{en_plugin_hls-control.md.0CaKxnLg.js => en_plugin_hls-control.md.D-g42K7T.js} (93%) rename docs/document/assets/{en_plugin_hls-control.md.0CaKxnLg.lean.js => en_plugin_hls-control.md.D-g42K7T.lean.js} (62%) create mode 100644 docs/document/assets/plugin_dash-control.md.CFnlLzry.js create mode 100644 docs/document/assets/plugin_dash-control.md.CFnlLzry.lean.js rename docs/document/assets/{plugin_hls-control.md.G4-jWSB9.js => plugin_hls-control.md.IVFa-2v4.js} (93%) rename docs/document/assets/{plugin_hls-control.md.G4-jWSB9.lean.js => plugin_hls-control.md.IVFa-2v4.lean.js} (63%) create mode 100644 docs/document/en/plugin/dash-control.html create mode 100644 docs/document/plugin/dash-control.html create mode 100644 packages/artplayer-vitepress/docs/en/plugin/dash-control.md create mode 100644 packages/artplayer-vitepress/docs/plugin/dash-control.md create mode 100644 refactor/baselines/dash-docs-validation.json create mode 100644 refactor/changes/2026-09-15-SITE-DASH-01-guides.md create mode 100644 test/browser/document-dash.spec.js create mode 100644 test/dash-example.test.js diff --git a/docs/assets/example/dash.control.js b/docs/assets/example/dash.control.js index 6b32a02c2..c8f19c675 100644 --- a/docs/assets/example/dash.control.js +++ b/docs/assets/example/dash.control.js @@ -4,45 +4,55 @@ // import dashjs from 'dashjs'; // import artplayerPluginDashControl from 'artplayer-plugin-dash-control'; +const useDash = dashjs.supportsMediaSource() +let dash + +function destroyDash() { + const previous = dash + dash = undefined + if (previous) + previous.destroy() +} + const art = new Artplayer({ container: '.artplayer-app', url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd', setting: true, - plugins: [ - artplayerPluginDashControl({ - quality: { - // Show qualitys in control - control: true, - // Show qualitys in setting - setting: true, - // Get the quality name from level - getName: level => `${level.height}P`, - // I18n - title: 'Quality', - auto: 'Auto', - }, - audio: { - // Show audios in control - control: true, - // Show audios in setting - setting: true, - // Get the audio name from track - getName: track => track.lang.toUpperCase(), - // I18n - title: 'Audio', - auto: 'Auto', - }, - }), - ], + plugins: useDash + ? [ + artplayerPluginDashControl({ + quality: { + // Show quality choices in the controls + control: true, + // Show quality choices in settings + setting: true, + // Get the quality name from level + getName: level => `${level.height}P`, + // I18n + title: 'Quality', + auto: 'Auto', + }, + audio: { + // Show audios in control + control: true, + // Show audios in setting + setting: true, + // Get the audio name from track + getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'), + // I18n + title: 'Audio', + auto: 'Auto', + }, + }), + ] + : [], customType: { mpd: function playMpd(video, url, art) { - if (dashjs.supportsMediaSource()) { - if (art.dash) - art.dash.destroy() - const dash = dashjs.MediaPlayer().create() - dash.initialize(video, url, art.option.autoplay) + destroyDash() + if (useDash) { + dash = dashjs.MediaPlayer().create() art.dash = dash - art.on('destroy', () => dash.destroy()) + dash.initialize(video, url, art.option.autoplay) } else { art.notice.show = 'Unsupported playback format: mpd' @@ -50,3 +60,5 @@ const art = new Artplayer({ }, }, }) + +art.on('destroy', destroyDash) diff --git a/docs/document/404.html b/docs/document/404.html index b4f66d3cc..3f9068b69 100644 --- a/docs/document/404.html +++ b/docs/document/404.html @@ -9,7 +9,7 @@ - + @@ -21,7 +21,7 @@
- + \ No newline at end of file diff --git a/docs/document/advanced/built-in.html b/docs/document/advanced/built-in.html index 7d3c609ee..0e4859fcc 100644 --- a/docs/document/advanced/built-in.html +++ b/docs/document/advanced/built-in.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

高级属性 ​

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

option ​

播放器的选项

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

高级属性 ​

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

option ​

播放器的选项

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -217,7 +217,7 @@
 art.on('ready', () => {
     art.plugins.add(myPlugin);
 });
- + \ No newline at end of file diff --git a/docs/document/advanced/class.html b/docs/document/advanced/class.html index a398bf839..27f32291a 100644 --- a/docs/document/advanced/class.html +++ b/docs/document/advanced/class.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

静态属性 ​

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

instances ​

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

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

静态属性 ​

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

instances ​

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

▶ Run Code
js
console.info([...Artplayer.instances]);
 
 var art = new Artplayer({
     container: '.artplayer-app',
@@ -31,7 +31,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);
- + \ No newline at end of file diff --git a/docs/document/advanced/event.html b/docs/document/advanced/event.html index d01c35e70..6a7a8bea0 100644 --- a/docs/document/advanced/event.html +++ b/docs/document/advanced/event.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

实例事件 ​

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

监听事件:

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

实例事件 ​

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

监听事件:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -385,7 +385,7 @@
 art.on('keydown', (event) => {
     console.log(event.code);
 });

video:canplay ​

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

video:canplaythrough ​

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

video:complete ​

OfflineAudioContext 渲染完成

video:durationchange ​

duration 属性的值改变时触发

video:emptied ​

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

video:ended ​

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

video:error ​

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

video:loadeddata ​

media 中的首帧已经完成加载

video:loadedmetadata ​

已加载元数据

video:pause ​

播放已暂停

video:play ​

播放已开始

video:playing ​

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

video:progress ​

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

video:ratechange ​

播放速率发生变化

video:seeked ​

跳帧(seek)操作完成

video:seeking ​

跳帧(seek)操作开始

video:stalled ​

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

video:suspend ​

媒体数据加载已暂停

video:timeupdate ​

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

video:volumechange ​

音量发生变化

video:waiting ​

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

- + \ No newline at end of file diff --git a/docs/document/advanced/global.html b/docs/document/advanced/global.html index 4657ad478..39087f628 100644 --- a/docs/document/advanced/global.html +++ b/docs/document/advanced/global.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

全局属性 ​

这里的 全局属性 也是指挂载在 构造函数 的 一级属性,属性名字全部都是大写的形式,未来容易发生变动,基本上用不到

DEBUG ​

是否开始 debug 模式,可以打印出视频全部的内置事件,默认关闭

▶ Run Code
js
Artplayer.DEBUG = true;
+    
Skip to content

全局属性 ​

这里的 全局属性 也是指挂载在 构造函数 的 一级属性,属性名字全部都是大写的形式,未来容易发生变动,基本上用不到

DEBUG ​

是否开始 debug 模式,可以打印出视频全部的内置事件,默认关闭

▶ Run Code
js
Artplayer.DEBUG = true;
 
 var art = new Artplayer({
     container: '.artplayer-app',
@@ -248,7 +248,7 @@
 
 // 只销毁界面,不主动清空 src
 art.destroy();
- + \ No newline at end of file diff --git a/docs/document/advanced/plugin.html b/docs/document/advanced/plugin.html index 151631b9e..4ff6599ef 100644 --- a/docs/document/advanced/plugin.html +++ b/docs/document/advanced/plugin.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

编写插件 ​

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

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

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

编写插件 ​

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

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

▶ Run Code
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -122,7 +122,7 @@
         })
     ],
 });
- + \ No newline at end of file diff --git a/docs/document/advanced/property.html b/docs/document/advanced/property.html index 9f4a30d17..c4183702b 100644 --- a/docs/document/advanced/property.html +++ b/docs/document/advanced/property.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

实例属性 ​

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

play ​

  • Type: Function

播放视频

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

实例属性 ​

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

play ​

  • Type: Function

播放视频

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -457,7 +457,7 @@
 art.on('ready', () => {
     art.subtitleOffset = 1;
 });
- + \ No newline at end of file diff --git a/docs/document/assets/app.C4kTwhag.js b/docs/document/assets/app.dBfz83xG.js similarity index 95% rename from docs/document/assets/app.C4kTwhag.js rename to docs/document/assets/app.dBfz83xG.js index 6e6a318ce..f0f25d4ea 100644 --- a/docs/document/assets/app.C4kTwhag.js +++ b/docs/document/assets/app.dBfz83xG.js @@ -1 +1 @@ -import{t as p}from"./chunks/theme.2Kq8jVhZ.js";import{R as s,a6 as i,a7 as u,a8 as c,a9 as l,aa as f,ab as d,ac as m,ad as h,ae as g,af as A,d as v,u as y,v as C,s as P,ag as b,ah as w,ai as R,aj as E}from"./chunks/framework.xxfEszSJ.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(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=D(),a=j();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),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:m}),{app:a,router:e,data:t}}function j(){return A(S)}function D(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp}; +import{t as p}from"./chunks/theme.D27Qlqu6.js";import{R as s,a6 as i,a7 as u,a8 as c,a9 as l,aa as f,ab as d,ac as m,ad as h,ae as g,af as A,d as v,u as y,v as C,s as P,ag as b,ah as w,ai as R,aj as E}from"./chunks/framework.xxfEszSJ.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(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=D(),a=j();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),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:m}),{app:a,router:e,data:t}}function j(){return A(S)}function D(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp}; diff --git a/docs/document/assets/chunks/theme.2Kq8jVhZ.js b/docs/document/assets/chunks/theme.D27Qlqu6.js similarity index 99% rename from docs/document/assets/chunks/theme.2Kq8jVhZ.js rename to docs/document/assets/chunks/theme.D27Qlqu6.js index fe7ef4b21..716cb7d40 100644 --- a/docs/document/assets/chunks/theme.2Kq8jVhZ.js +++ b/docs/document/assets/chunks/theme.D27Qlqu6.js @@ -1 +1 @@ -import{d as k,c as h,r as p,n as A,o as i,a as ee,t as C,b as P,w as f,T as we,e as g,_ as V,u as Re,i as it,f as lt,g as he,h as S,j as d,k as c,l as te,m as Pe,p as T,q as J,s as fe,v as Q,x as Me,y as Ne,z as ct,A as ut,F as H,B as z,C as Z,D as We,E as ve,G as y,H as W,I as Ke,J as me,K as Y,L as _e,M as dt,N as Je,O as pt,P as Ie,Q as xe,R as ge,S as ht,U as ft,V as vt,W as Fe,X as mt,Y as Xe,Z as _t,$ as gt,a0 as Ye,a1 as Qe,a2 as kt,a3 as bt,a4 as $t,a5 as yt}from"./framework.xxfEszSJ.js";const Pt=k({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(n){return(e,t)=>(i(),h("span",{class:A(["VPBadge",e.type])},[p(e.$slots,"default",{},()=>[ee(C(e.text),1)])],2))}}),Lt={key:0,class:"VPBackdrop"},Vt=k({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(i(),P(we,{name:"fade"},{default:f(()=>[e.show?(i(),h("div",Lt)):g("",!0)]),_:1}))}}),St=V(Vt,[["__scopeId","data-v-b2600058"]]),M=Re;function Tt(n,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(n,e):(n(),(s=!0)&&setTimeout(()=>s=!1,e))}}function Le(n){return n.startsWith("/")?n:`/${n}`}function Ce(n){const{pathname:e,search:t,hash:s,protocol:o}=new URL(n,"http://a.com");if(it(n)||n.startsWith("#")||!o.startsWith("http")||!lt(e))return n;const{site:a}=M(),r=e.endsWith("/")||e.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,a.value.cleanUrls?"":".html")}${t}${s}`);return he(r)}function ae({correspondingLink:n=!1}={}){const{site:e,localeIndex:t,page:s,theme:o,hash:a}=M(),r=S(()=>{var u,v;return{label:(u=e.value.locales[t.value])==null?void 0:u.label,link:((v=e.value.locales[t.value])==null?void 0:v.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:S(()=>Object.entries(e.value.locales).flatMap(([u,v])=>r.value.label===v.label?[]:{text:v.label,link:wt(v.link||(u==="root"?"/":`/${u}/`),o.value.i18nRouting!==!1&&n,s.value.relativePath.slice(r.value.link.length-1),!e.value.cleanUrls)+a.value})),currentLang:r}}function wt(n,e,t,s){return e?n.replace(/\/$/,"")+Le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):n}const Mt={class:"NotFound"},Nt={class:"code"},It={class:"title"},Ct={class:"quote"},At={class:"action"},Ht=["href","aria-label"],Bt=k({__name:"NotFound",setup(n){const{theme:e}=M(),{currentLang:t}=ae();return(s,o)=>{var a,r,l,u,v;return i(),h("div",Mt,[d("p",Nt,C(((a=c(e).notFound)==null?void 0:a.code)??"404"),1),d("h1",It,C(((r=c(e).notFound)==null?void 0:r.title)??"PAGE NOT FOUND"),1),o[0]||(o[0]=d("div",{class:"divider"},null,-1)),d("blockquote",Ct,C(((l=c(e).notFound)==null?void 0:l.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",At,[d("a",{class:"link",href:c(he)(c(t).link),"aria-label":((u=c(e).notFound)==null?void 0:u.linkLabel)??"go to home"},C(((v=c(e).notFound)==null?void 0:v.linkText)??"Take me home"),9,Ht)])])}}}),Et=V(Bt,[["__scopeId","data-v-93fd8736"]]);function Ze(n,e){if(Array.isArray(n))return le(n);if(n==null)return[];e=Le(e);const t=Object.keys(n).sort((o,a)=>a.split("/").length-o.split("/").length).find(o=>e.startsWith(Le(o))),s=t?n[t]:[];return Array.isArray(s)?le(s):le(s.items,s.base)}function Ot(n){const e=[];let t=0;for(const s in n){const o=n[s];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function Dt(n){const e=[];function t(s){for(const o of s)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(n),e}function Ve(n,e){return Array.isArray(e)?e.some(t=>Ve(n,t)):te(n,e.link)?!0:e.items?Ve(n,e.items):!1}function le(n,e){return[...n].map(t=>{const s={...t},o=s.base||e;return o&&s.link&&(s.link=o+s.link),s.items&&(s.items=le(s.items,o)),s})}function x(){const{frontmatter:n,page:e,theme:t}=M(),s=Pe("(min-width: 960px)"),o=T(!1),a=S(()=>{const N=t.value.sidebar,w=e.value.relativePath;return N?Ze(N,w):[]}),r=T(a.value);J(a,(N,w)=>{JSON.stringify(N)!==JSON.stringify(w)&&(r.value=a.value)});const l=S(()=>n.value.sidebar!==!1&&r.value.length>0&&n.value.layout!=="home"),u=S(()=>v?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),v=S(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),_=S(()=>l.value&&s.value),m=S(()=>l.value?Ot(r.value):[]);function L(){o.value=!0}function b(){o.value=!1}function $(){o.value?b():L()}return{isOpen:o,sidebar:r,sidebarGroups:m,hasSidebar:l,hasAside:v,leftAside:u,isSidebarEnabled:_,open:L,close:b,toggle:$}}function Ft(n,e){let t;fe(()=>{t=n.value?document.activeElement:void 0}),Q(()=>{window.addEventListener("keyup",s)}),Me(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function zt(n){const{page:e,hash:t}=M(),s=T(!1),o=S(()=>n.value.collapsed!=null),a=S(()=>!!n.value.link),r=T(!1),l=()=>{r.value=te(e.value.relativePath,n.value.link)};J([e,n,t],l),Q(l);const u=S(()=>r.value?!0:n.value.items?Ve(e.value.relativePath,n.value.items):!1),v=S(()=>!!(n.value.items&&n.value.items.length));fe(()=>{s.value=!!(o.value&&n.value.collapsed)}),Ne(()=>{(r.value||u.value)&&(s.value=!1)});function _(){o.value&&(s.value=!s.value)}return{collapsed:s,collapsible:o,isLink:a,isActiveLink:r,hasActiveLink:u,hasChildren:v,toggle:_}}function jt(){const{hasSidebar:n}=x(),e=Pe("(min-width: 960px)"),t=Pe("(min-width: 1280px)");return{isAsideEnabled:S(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const Ut=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,Se=[];function et(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function Ae(n){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:qt(t),link:"#"+t.id,level:s}});return Gt(e,n)}function qt(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(Ut.test(t.className))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Gt(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return Kt(n,s,o)}function Rt(n,e){const{isAsideEnabled:t}=jt(),s=Tt(a,100);let o=null;Q(()=>{requestAnimationFrame(a),window.addEventListener("scroll",s)}),ct(()=>{r(location.hash)}),Me(()=>{window.removeEventListener("scroll",s)});function a(){if(!t.value)return;const l=window.scrollY,u=window.innerHeight,v=document.body.offsetHeight,_=Math.abs(l+u-v)<1,m=Se.map(({element:b,link:$})=>({link:$,top:Wt(b)})).filter(({top:b})=>!Number.isNaN(b)).sort((b,$)=>b.top-$.top);if(!m.length){r(null);return}if(l<1){r(null);return}if(_){r(m[m.length-1].link);return}let L=null;for(const{link:b,top:$}of m){if($>l+ut()+4)break;L=b}r(L)}function r(l){o&&o.classList.remove("active"),l==null?o=null:o=n.value.querySelector(`a[href="${decodeURIComponent(l)}"]`);const u=o;u?(u.classList.add("active"),e.value.style.top=u.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Wt(n){let e=0;for(;n!==document.body;){if(n===null)return NaN;e+=n.offsetTop,n=n.offsetParent}return e}function Kt(n,e,t){Se.length=0;const s=[],o=[];return n.forEach(a=>{const r={...a,children:[]};let l=o[o.length-1];for(;l&&l.level>=r.level;)o.pop(),l=o[o.length-1];if(r.element.classList.contains("ignore-header")||l&&"shouldIgnore"in l){o.push({level:r.level,shouldIgnore:!0});return}r.level>t||r.level{const o=Z("VPDocOutlineItem",!0);return i(),h("ul",{class:A(["VPDocOutlineItem",t.root?"root":"nested"])},[(i(!0),h(H,null,z(t.headers,({children:a,link:r,title:l})=>(i(),h("li",null,[d("a",{class:"outline-link",href:r,onClick:e,title:l},C(l),9,Jt),a!=null&&a.length?(i(),P(o,{key:0,headers:a},null,8,["headers"])):g("",!0)]))),256))],2)}}}),tt=V(xt,[["__scopeId","data-v-da421f78"]]),Xt={class:"content"},Yt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Qt=k({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=M(),s=We([]);ve(()=>{s.value=Ae(e.value.outline??t.value.outline)});const o=T(),a=T();return Rt(o,a),(r,l)=>(i(),h("nav",{"aria-labelledby":"doc-outline-aria-label",class:A(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:o},[d("div",Xt,[d("div",{class:"outline-marker",ref_key:"marker",ref:a},null,512),d("div",Yt,C(c(et)(c(t))),1),y(tt,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),Zt=V(Qt,[["__scopeId","data-v-dfbd9fb8"]]),en={class:"VPDocAsideCarbonAds"},tn=k({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,s)=>(i(),h("div",en,[y(c(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),nn={class:"VPDocAside"},sn=k({__name:"VPDocAside",setup(n){const{theme:e}=M();return(t,s)=>(i(),h("div",nn,[p(t.$slots,"aside-top",{},void 0,!0),p(t.$slots,"aside-outline-before",{},void 0,!0),y(Zt),p(t.$slots,"aside-outline-after",{},void 0,!0),s[0]||(s[0]=d("div",{class:"spacer"},null,-1)),p(t.$slots,"aside-ads-before",{},void 0,!0),c(e).carbonAds?(i(),P(tn,{key:0,"carbon-ads":c(e).carbonAds},null,8,["carbon-ads"])):g("",!0),p(t.$slots,"aside-ads-after",{},void 0,!0),p(t.$slots,"aside-bottom",{},void 0,!0)]))}}),on=V(sn,[["__scopeId","data-v-79cae1a0"]]);function an(){const{theme:n,page:e}=M();return S(()=>{const{text:t="Edit this page",pattern:s=""}=n.value.editLink||{};let o;return typeof s=="function"?o=s(e.value):o=s.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function rn(){const{page:n,theme:e,frontmatter:t}=M();return S(()=>{var v,_,m,L,b,$,N,w;const s=Ze(e.value.sidebar,n.value.relativePath),o=Dt(s),a=ln(o,O=>O.link.replace(/[?#].*$/,"")),r=a.findIndex(O=>te(n.value.relativePath,O.link)),l=((v=e.value.docFooter)==null?void 0:v.prev)===!1&&!t.value.prev||t.value.prev===!1,u=((_=e.value.docFooter)==null?void 0:_.next)===!1&&!t.value.next||t.value.next===!1;return{prev:l?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((m=a[r-1])==null?void 0:m.docFooterText)??((L=a[r-1])==null?void 0:L.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((b=a[r-1])==null?void 0:b.link)},next:u?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??(($=a[r+1])==null?void 0:$.docFooterText)??((N=a[r+1])==null?void 0:N.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=a[r+1])==null?void 0:w.link)}}})}function ln(n,e){const t=new Set;return n.filter(s=>{const o=e(s);return t.has(o)?!1:t.add(o)})}const K=k({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=S(()=>e.tag??(e.href?"a":"span")),s=S(()=>e.href&&Ke.test(e.href)||e.target==="_blank");return(o,a)=>(i(),P(W(t.value),{class:A(["VPLink",{link:o.href,"vp-external-link-icon":s.value,"no-icon":o.noIcon}]),href:o.href?c(Ce)(o.href):void 0,target:o.target??(s.value?"_blank":void 0),rel:o.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[p(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),cn={class:"VPLastUpdated"},un=["datetime"],dn=k({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:s}=M(),o=S(()=>new Date(t.value.lastUpdated)),a=S(()=>o.value.toISOString()),r=T("");return Q(()=>{fe(()=>{var l,u,v;r.value=new Intl.DateTimeFormat((u=(l=e.value.lastUpdated)==null?void 0:l.formatOptions)!=null&&u.forceLocale?s.value:void 0,((v=e.value.lastUpdated)==null?void 0:v.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(l,u)=>{var v;return i(),h("p",cn,[ee(C(((v=c(e).lastUpdated)==null?void 0:v.text)||c(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:a.value},C(r.value),9,un)])}}}),pn=V(dn,[["__scopeId","data-v-e95db471"]]),hn={key:0,class:"VPDocFooter"},fn={key:0,class:"edit-info"},vn={key:0,class:"edit-link"},mn={key:1,class:"last-updated"},_n={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},gn={class:"pager"},kn=["innerHTML"],bn=["innerHTML"],$n={class:"pager"},yn=["innerHTML"],Pn=["innerHTML"],Ln=k({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:s}=M(),o=an(),a=rn(),r=S(()=>e.value.editLink&&s.value.editLink!==!1),l=S(()=>t.value.lastUpdated),u=S(()=>r.value||l.value||a.value.prev||a.value.next);return(v,_)=>{var m,L,b,$;return u.value?(i(),h("footer",hn,[p(v.$slots,"doc-footer-before",{},void 0,!0),r.value||l.value?(i(),h("div",fn,[r.value?(i(),h("div",vn,[y(K,{class:"edit-link-button",href:c(o).url,"no-icon":!0},{default:f(()=>[_[0]||(_[0]=d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),ee(" "+C(c(o).text),1)]),_:1},8,["href"])])):g("",!0),l.value?(i(),h("div",mn,[y(pn)])):g("",!0)])):g("",!0),(m=c(a).prev)!=null&&m.link||(L=c(a).next)!=null&&L.link?(i(),h("nav",_n,[_[1]||(_[1]=d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),d("div",gn,[(b=c(a).prev)!=null&&b.link?(i(),P(K,{key:0,class:"pager-link prev",href:c(a).prev.link},{default:f(()=>{var N;return[d("span",{class:"desc",innerHTML:((N=c(e).docFooter)==null?void 0:N.prev)||"Previous page"},null,8,kn),d("span",{class:"title",innerHTML:c(a).prev.text},null,8,bn)]}),_:1},8,["href"])):g("",!0)]),d("div",$n,[($=c(a).next)!=null&&$.link?(i(),P(K,{key:0,class:"pager-link next",href:c(a).next.link},{default:f(()=>{var N;return[d("span",{class:"desc",innerHTML:((N=c(e).docFooter)==null?void 0:N.next)||"Next page"},null,8,yn),d("span",{class:"title",innerHTML:c(a).next.text},null,8,Pn)]}),_:1},8,["href"])):g("",!0)])])):g("",!0)])):g("",!0)}}}),Vn=V(Ln,[["__scopeId","data-v-07d71ff1"]]),Sn={class:"container"},Tn={class:"aside-container"},wn={class:"aside-content"},Mn={class:"content"},Nn={class:"content-container"},In={class:"main"},Cn=k({__name:"VPDoc",setup(n){const{theme:e}=M(),t=me(),{hasSidebar:s,hasAside:o,leftAside:a}=x(),r=S(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(l,u)=>{const v=Z("Content");return i(),h("div",{class:A(["VPDoc",{"has-sidebar":c(s),"has-aside":c(o)}])},[p(l.$slots,"doc-top",{},void 0,!0),d("div",Sn,[c(o)?(i(),h("div",{key:0,class:A(["aside",{"left-aside":c(a)}])},[u[0]||(u[0]=d("div",{class:"aside-curtain"},null,-1)),d("div",Tn,[d("div",wn,[y(on,null,{"aside-top":f(()=>[p(l.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[p(l.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[p(l.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[p(l.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[p(l.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[p(l.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):g("",!0),d("div",Mn,[d("div",Nn,[p(l.$slots,"doc-before",{},void 0,!0),d("main",In,[y(v,{class:A(["vp-doc",[r.value,c(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),y(Vn,null,{"doc-footer-before":f(()=>[p(l.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),p(l.$slots,"doc-after",{},void 0,!0)])])]),p(l.$slots,"doc-bottom",{},void 0,!0)],2)}}}),An=V(Cn,[["__scopeId","data-v-ef3a4dda"]]),Hn=k({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(n){const e=n,t=S(()=>e.href&&Ke.test(e.href)),s=S(()=>e.tag||(e.href?"a":"button"));return(o,a)=>(i(),P(W(s.value),{class:A(["VPButton",[o.size,o.theme]]),href:o.href?c(Ce)(o.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[ee(C(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),Bn=V(Hn,[["__scopeId","data-v-b20c43c2"]]),En=["src","alt"],On=k({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const s=Z("VPImage",!0);return e.image?(i(),h(H,{key:0},[typeof e.image=="string"||"src"in e.image?(i(),h("img",Y({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:c(he)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,En)):(i(),h(H,{key:1},[y(s,Y({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),y(s,Y({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):g("",!0)}}}),ue=V(On,[["__scopeId","data-v-4d414b82"]]),Dn={class:"container"},Fn={class:"main"},zn={class:"heading"},jn=["innerHTML"],Un=["innerHTML"],qn=["innerHTML"],Gn={key:0,class:"actions"},Rn={key:0,class:"image"},Wn={class:"image-container"},Kn=k({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=_e("hero-image-slot-exists");return(t,s)=>(i(),h("div",{class:A(["VPHero",{"has-image":t.image||c(e)}])},[d("div",Dn,[d("div",Fn,[p(t.$slots,"home-hero-info-before",{},void 0,!0),p(t.$slots,"home-hero-info",{},()=>[d("h1",zn,[t.name?(i(),h("span",{key:0,innerHTML:t.name,class:"name clip"},null,8,jn)):g("",!0),t.text?(i(),h("span",{key:1,innerHTML:t.text,class:"text"},null,8,Un)):g("",!0)]),t.tagline?(i(),h("p",{key:0,innerHTML:t.tagline,class:"tagline"},null,8,qn)):g("",!0)],!0),p(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(i(),h("div",Gn,[(i(!0),h(H,null,z(t.actions,o=>(i(),h("div",{key:o.link,class:"action"},[y(Bn,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):g("",!0),p(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||c(e)?(i(),h("div",Rn,[d("div",Wn,[s[0]||(s[0]=d("div",{class:"image-bg"},null,-1)),p(t.$slots,"home-hero-image",{},()=>[t.image?(i(),P(ue,{key:0,class:"image-src",image:t.image},null,8,["image"])):g("",!0)],!0)])])):g("",!0)])],2))}}),Jn=V(Kn,[["__scopeId","data-v-d266baba"]]),xn=k({__name:"VPHomeHero",setup(n){const{frontmatter:e}=M();return(t,s)=>c(e).hero?(i(),P(Jn,{key:0,class:"VPHomeHero",name:c(e).hero.name,text:c(e).hero.text,tagline:c(e).hero.tagline,image:c(e).hero.image,actions:c(e).hero.actions},{"home-hero-info-before":f(()=>[p(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[p(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[p(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[p(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[p(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):g("",!0)}}),Xn={class:"box"},Yn={key:0,class:"icon"},Qn=["innerHTML"],Zn=["innerHTML"],es=["innerHTML"],ts={key:4,class:"link-text"},ns={class:"link-text-value"},ss=k({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(n){return(e,t)=>(i(),P(K,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[d("article",Xn,[typeof e.icon=="object"&&e.icon.wrap?(i(),h("div",Yn,[y(ue,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(i(),P(ue,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(i(),h("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Qn)):g("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Zn),e.details?(i(),h("p",{key:3,class:"details",innerHTML:e.details},null,8,es)):g("",!0),e.linkText?(i(),h("div",ts,[d("p",ns,[ee(C(e.linkText)+" ",1),t[0]||(t[0]=d("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):g("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),os=V(ss,[["__scopeId","data-v-95001937"]]),as={key:0,class:"VPFeatures"},rs={class:"container"},is={class:"items"},ls=k({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=S(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,o)=>s.features?(i(),h("div",as,[d("div",rs,[d("div",is,[(i(!0),h(H,null,z(s.features,a=>(i(),h("div",{key:a.title,class:A(["item",[t.value]])},[y(os,{icon:a.icon,title:a.title,details:a.details,link:a.link,"link-text":a.linkText,rel:a.rel,target:a.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):g("",!0)}}),cs=V(ls,[["__scopeId","data-v-1da4ff3d"]]),us=k({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=M();return(t,s)=>c(e).features?(i(),P(cs,{key:0,class:"VPHomeFeatures",features:c(e).features},null,8,["features"])):g("",!0)}}),ds=k({__name:"VPHomeContent",setup(n){const{width:e}=dt({initialWidth:0,includeScrollbar:!1});return(t,s)=>(i(),h("div",{class:"vp-doc container",style:Je(c(e)?{"--vp-offset":`calc(50% - ${c(e)/2}px)`}:{})},[p(t.$slots,"default",{},void 0,!0)],4))}}),ps=V(ds,[["__scopeId","data-v-2498cc33"]]),hs=k({__name:"VPHome",setup(n){const{frontmatter:e,theme:t}=M();return(s,o)=>{const a=Z("Content");return i(),h("div",{class:A(["VPHome",{"external-link-icon-enabled":c(t).externalLinkIcon}])},[p(s.$slots,"home-hero-before",{},void 0,!0),y(xn,null,{"home-hero-info-before":f(()=>[p(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[p(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[p(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[p(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[p(s.$slots,"home-hero-image",{},void 0,!0)]),_:3}),p(s.$slots,"home-hero-after",{},void 0,!0),p(s.$slots,"home-features-before",{},void 0,!0),y(us),p(s.$slots,"home-features-after",{},void 0,!0),c(e).markdownStyles!==!1?(i(),P(ps,{key:0},{default:f(()=>[y(a)]),_:1})):(i(),P(a,{key:1}))],2)}}}),fs=V(hs,[["__scopeId","data-v-8b59c434"]]),vs={},ms={class:"VPPage"};function _s(n,e){const t=Z("Content");return i(),h("div",ms,[p(n.$slots,"page-top"),y(t),p(n.$slots,"page-bottom")])}const gs=V(vs,[["render",_s]]),ks=k({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=M(),{hasSidebar:s}=x();return(o,a)=>(i(),h("div",{class:A(["VPContent",{"has-sidebar":c(s),"is-home":c(t).layout==="home"}]),id:"VPContent"},[c(e).isNotFound?p(o.$slots,"not-found",{key:0},()=>[y(Et)],!0):c(t).layout==="page"?(i(),P(gs,{key:1},{"page-top":f(()=>[p(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[p(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):c(t).layout==="home"?(i(),P(fs,{key:2},{"home-hero-before":f(()=>[p(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[p(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[p(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[p(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[p(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[p(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[p(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[p(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[p(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):c(t).layout&&c(t).layout!=="doc"?(i(),P(W(c(t).layout),{key:3})):(i(),P(An,{key:4},{"doc-top":f(()=>[p(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[p(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[p(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[p(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[p(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[p(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[p(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[p(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[p(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[p(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[p(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),bs=V(ks,[["__scopeId","data-v-d2aef184"]]),$s={class:"container"},ys=["innerHTML"],Ps=["innerHTML"],Ls=k({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=M(),{hasSidebar:s}=x();return(o,a)=>c(e).footer&&c(t).footer!==!1?(i(),h("footer",{key:0,class:A(["VPFooter",{"has-sidebar":c(s)}])},[d("div",$s,[c(e).footer.message?(i(),h("p",{key:0,class:"message",innerHTML:c(e).footer.message},null,8,ys)):g("",!0),c(e).footer.copyright?(i(),h("p",{key:1,class:"copyright",innerHTML:c(e).footer.copyright},null,8,Ps)):g("",!0)])],2)):g("",!0)}}),Vs=V(Ls,[["__scopeId","data-v-e3157d6d"]]);function Ss(){const{theme:n,frontmatter:e}=M(),t=We([]),s=S(()=>t.value.length>0);return ve(()=>{t.value=Ae(e.value.outline??n.value.outline)}),{headers:t,hasLocalNav:s}}const Ts={class:"menu-text"},ws={class:"header"},Ms={class:"outline"},Ns=k({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=M(),s=T(!1),o=T(0),a=T(),r=T();function l(m){var L;(L=a.value)!=null&&L.contains(m.target)||(s.value=!1)}J(s,m=>{if(m){document.addEventListener("click",l);return}document.removeEventListener("click",l)}),pt("Escape",()=>{s.value=!1}),ve(()=>{s.value=!1});function u(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function v(m){m.target.classList.contains("outline-link")&&(r.value&&(r.value.style.transition="none"),Ie(()=>{s.value=!1}))}function _(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(m,L)=>(i(),h("div",{class:"VPLocalNavOutlineDropdown",style:Je({"--vp-vh":o.value+"px"}),ref_key:"main",ref:a},[m.headers.length>0?(i(),h("button",{key:0,onClick:u,class:A({open:s.value})},[d("span",Ts,C(c(et)(c(t))),1),L[0]||(L[0]=d("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(i(),h("button",{key:1,onClick:_},C(c(t).returnToTopLabel||"Return to top"),1)),y(we,{name:"flyout"},{default:f(()=>[s.value?(i(),h("div",{key:0,ref_key:"items",ref:r,class:"items",onClick:v},[d("div",ws,[d("a",{class:"top-link",href:"#",onClick:_},C(c(t).returnToTopLabel||"Return to top"),1)]),d("div",Ms,[y(tt,{headers:m.headers},null,8,["headers"])])],512)):g("",!0)]),_:1})],4))}}),Is=V(Ns,[["__scopeId","data-v-d61422fe"]]),Cs={class:"container"},As=["aria-expanded"],Hs={class:"menu-text"},Bs=k({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=M(),{hasSidebar:s}=x(),{headers:o}=Ss(),{y:a}=xe(),r=T(0);Q(()=>{r.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ve(()=>{o.value=Ae(t.value.outline??e.value.outline)});const l=S(()=>o.value.length===0),u=S(()=>l.value&&!s.value),v=S(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:l.value,fixed:u.value}));return(_,m)=>c(t).layout!=="home"&&(!u.value||c(a)>=r.value)?(i(),h("div",{key:0,class:A(v.value)},[d("div",Cs,[c(s)?(i(),h("button",{key:0,class:"menu","aria-expanded":_.open,"aria-controls":"VPSidebarNav",onClick:m[0]||(m[0]=L=>_.$emit("open-menu"))},[m[1]||(m[1]=d("span",{class:"vpi-align-left menu-icon"},null,-1)),d("span",Hs,C(c(e).sidebarMenuLabel||"Menu"),1)],8,As)):g("",!0),y(Is,{headers:c(o),navHeight:r.value},null,8,["headers","navHeight"])])],2)):g("",!0)}}),Es=V(Bs,[["__scopeId","data-v-9d8129cc"]]);function Os(){const n=T(!1);function e(){n.value=!0,window.addEventListener("resize",o)}function t(){n.value=!1,window.removeEventListener("resize",o)}function s(){n.value?t():e()}function o(){window.outerWidth>=768&&t()}const a=me();return J(()=>a.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:s}}const Ds={},Fs={class:"VPSwitch",type:"button",role:"switch"},zs={class:"check"},js={key:0,class:"icon"};function Us(n,e){return i(),h("button",Fs,[d("span",zs,[n.$slots.default?(i(),h("span",js,[p(n.$slots,"default",{},void 0,!0)])):g("",!0)])])}const qs=V(Ds,[["render",Us],["__scopeId","data-v-7012e5dd"]]),Gs=k({__name:"VPSwitchAppearance",setup(n){const{isDark:e,theme:t}=M(),s=_e("toggle-appearance",()=>{e.value=!e.value}),o=T("");return Ne(()=>{o.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(a,r)=>(i(),P(qs,{title:o.value,class:"VPSwitchAppearance","aria-checked":c(e),onClick:c(s)},{default:f(()=>r[0]||(r[0]=[d("span",{class:"vpi-sun sun"},null,-1),d("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),He=V(Gs,[["__scopeId","data-v-fa1daf57"]]),Rs={key:0,class:"VPNavBarAppearance"},Ws=k({__name:"VPNavBarAppearance",setup(n){const{site:e}=M();return(t,s)=>c(e).appearance&&c(e).appearance!=="force-dark"&&c(e).appearance!=="force-auto"?(i(),h("div",Rs,[y(He)])):g("",!0)}}),Ks=V(Ws,[["__scopeId","data-v-123fcb2f"]]),Be=T();let nt=!1,be=0;function Js(n){const e=T(!1);if(ge){!nt&&xs(),be++;const t=J(Be,s=>{var o,a,r;s===n.el.value||(o=n.el.value)!=null&&o.contains(s)?(e.value=!0,(a=n.onFocus)==null||a.call(n)):(e.value=!1,(r=n.onBlur)==null||r.call(n))});Me(()=>{t(),be--,be||Xs()})}return ht(e)}function xs(){document.addEventListener("focusin",st),nt=!0,Be.value=document.activeElement}function Xs(){document.removeEventListener("focusin",st)}function st(){Be.value=document.activeElement}const Ys={class:"VPMenuLink"},Qs=["innerHTML"],Zs=k({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=M();return(t,s)=>(i(),h("div",Ys,[y(K,{class:A({active:c(te)(c(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,Qs)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ke=V(Zs,[["__scopeId","data-v-65e4a6b1"]]),eo={class:"VPMenuGroup"},to={key:0,class:"title"},no=k({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(i(),h("div",eo,[e.text?(i(),h("p",to,C(e.text),1)):g("",!0),(i(!0),h(H,null,z(e.items,s=>(i(),h(H,null,["link"in s?(i(),P(ke,{key:0,item:s},null,8,["item"])):g("",!0)],64))),256))]))}}),so=V(no,[["__scopeId","data-v-2bec9359"]]),oo={class:"VPMenu"},ao={key:0,class:"items"},ro=k({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(i(),h("div",oo,[e.items?(i(),h("div",ao,[(i(!0),h(H,null,z(e.items,s=>(i(),h(H,{key:JSON.stringify(s)},["link"in s?(i(),P(ke,{key:0,item:s},null,8,["item"])):"component"in s?(i(),P(W(s.component),Y({key:1,ref_for:!0},s.props),null,16)):(i(),P(so,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):g("",!0),p(e.$slots,"default",{},void 0,!0)]))}}),io=V(ro,[["__scopeId","data-v-39eca401"]]),lo=["aria-expanded","aria-label"],co={key:0,class:"text"},uo=["innerHTML"],po={key:1,class:"vpi-more-horizontal icon"},ho={class:"menu"},fo=k({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=T(!1),t=T();Js({el:t,onBlur:s});function s(){e.value=!1}return(o,a)=>(i(),h("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:a[1]||(a[1]=r=>e.value=!0),onMouseleave:a[2]||(a[2]=r=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:a[0]||(a[0]=r=>e.value=!e.value)},[o.button||o.icon?(i(),h("span",co,[o.icon?(i(),h("span",{key:0,class:A([o.icon,"option-icon"])},null,2)):g("",!0),o.button?(i(),h("span",{key:1,innerHTML:o.button},null,8,uo)):g("",!0),a[3]||(a[3]=d("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(i(),h("span",po))],8,lo),d("div",ho,[y(io,{items:o.items},{default:f(()=>[p(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),Ee=V(fo,[["__scopeId","data-v-40e55da0"]]),vo=["href","aria-label","innerHTML"],mo=k({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=T();Q(async()=>{var a;await Ie();const o=(a=t.value)==null?void 0:a.children[0];o instanceof HTMLElement&&o.className.startsWith("vpi-social-")&&(getComputedStyle(o).maskImage||getComputedStyle(o).webkitMaskImage)==="none"&&o.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const s=S(()=>typeof e.icon=="object"?e.icon.svg:``);return(o,a)=>(i(),h("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:s.value},null,8,vo))}}),_o=V(mo,[["__scopeId","data-v-fbf39218"]]),go={class:"VPSocialLinks"},ko=k({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(i(),h("div",go,[(i(!0),h(H,null,z(e.links,({link:s,icon:o,ariaLabel:a})=>(i(),P(_o,{key:s,icon:o,link:s,ariaLabel:a},null,8,["icon","link","ariaLabel"]))),128))]))}}),Oe=V(ko,[["__scopeId","data-v-f2234a39"]]),bo={key:0,class:"group translations"},$o={class:"trans-title"},yo={key:1,class:"group"},Po={class:"item appearance"},Lo={class:"label"},Vo={class:"appearance-action"},So={key:2,class:"group"},To={class:"item social-links"},wo=k({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=M(),{localeLinks:s,currentLang:o}=ae({correspondingLink:!0}),a=S(()=>s.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(r,l)=>a.value?(i(),P(Ee,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[c(s).length&&c(o).label?(i(),h("div",bo,[d("p",$o,C(c(o).label),1),(i(!0),h(H,null,z(c(s),u=>(i(),P(ke,{key:u.link,item:u},null,8,["item"]))),128))])):g("",!0),c(e).appearance&&c(e).appearance!=="force-dark"&&c(e).appearance!=="force-auto"?(i(),h("div",yo,[d("div",Po,[d("p",Lo,C(c(t).darkModeSwitchLabel||"Appearance"),1),d("div",Vo,[y(He)])])])):g("",!0),c(t).socialLinks?(i(),h("div",So,[d("div",To,[y(Oe,{class:"social-links-list",links:c(t).socialLinks},null,8,["links"])])])):g("",!0)]),_:1})):g("",!0)}}),Mo=V(wo,[["__scopeId","data-v-0c845e5d"]]),No=["aria-expanded"],Io=k({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(i(),h("button",{type:"button",class:A(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},t[1]||(t[1]=[d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)]),10,No))}}),Co=V(Io,[["__scopeId","data-v-670493dd"]]),Ao=["innerHTML"],Ho=k({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=M();return(t,s)=>(i(),P(K,{class:A({VPNavBarMenuLink:!0,active:c(te)(c(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,Ao)]),_:1},8,["class","href","target","rel","no-icon"]))}}),Bo=V(Ho,[["__scopeId","data-v-8dbce4d0"]]),Eo=k({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const e=n,{page:t}=M(),s=a=>"component"in a?!1:"link"in a?te(t.value.relativePath,a.link,!!e.item.activeMatch):a.items.some(s),o=S(()=>s(e.item));return(a,r)=>(i(),P(Ee,{class:A({VPNavBarMenuGroup:!0,active:c(te)(c(t).relativePath,a.item.activeMatch,!!a.item.activeMatch)||o.value}),button:a.item.text,items:a.item.items},null,8,["class","button","items"]))}}),Oo={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Do=k({__name:"VPNavBarMenu",setup(n){const{theme:e}=M();return(t,s)=>c(e).nav?(i(),h("nav",Oo,[s[0]||(s[0]=d("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(i(!0),h(H,null,z(c(e).nav,o=>(i(),h(H,{key:JSON.stringify(o)},["link"in o?(i(),P(Bo,{key:0,item:o},null,8,["item"])):"component"in o?(i(),P(W(o.component),Y({key:1,ref_for:!0},o.props),null,16)):(i(),P(Eo,{key:2,item:o},null,8,["item"]))],64))),128))])):g("",!0)}}),Fo=V(Do,[["__scopeId","data-v-5bacfe89"]]),zo="/document/assets/flex-logo.BJA2J7hW.svg";function $e(n,e){return typeof n>"u"?e:n}function ze(n){const e=Array(n);for(let t=0;t=this.minlength&&(l||!r[_])){let L=ie(u,o,v),b="";switch(this.tokenize){case"full":if(3$;N--)if(N-$>=this.minlength){const w=ie(u,o,v,m,$);b=_.substring($,N),this.push_index(r,b,w,n,t)}break}case"reverse":if(2=this.minlength){const N=ie(u,o,v,m,$);this.push_index(r,b,N,n,t)}b=""}case"forward":if(1=this.minlength&&this.push_index(r,b,L,n,t);break}default:if(this.boost&&(L=Math.min(0|L/this.boost(e,_,v),u-1)),this.push_index(r,_,L,n,t),l&&1=this.minlength&&!$[_]){$[_]=1;const R=ie(N+(o/2>N?0:1),o,v,O-1,F-1),X=this.bidirectional&&_>w;this.push_index(a,X?w:_,R,n,t,X?_:w)}}}}}this.fastupdate||(this.register[n]=1)}}return this};function ie(n,e,t,s,o){return t&&1=this.minlength&&!m[b]){if(!this.optimize&&!a&&!this.map[b])return r;L[N++]=b,m[b]=1}n=L,s=n.length}if(!s)return r;e||(e=100);let u,v=this.depth&&1=t)))));b++);if(v)return o?qe(l,t,0):void(n[n.length]=l)}return!e&&l};function qe(n,e,t){return n=n.length===1?n[0]:Uo(n),t||n.length>e?n.slice(t,t+e):n}function Ge(n,e,t,s){if(t){const o=s&&e>t;n=n[o?e:t],n=n&&n[o?t:e]}else n=n[e];return n}q.prototype.contain=function(n){return!!this.register[n]},q.prototype.update=function(n,e){return this.remove(n).add(n,e)},q.prototype.remove=function(n,e){const t=this.register[n];if(t){if(this.fastupdate)for(let s,o=0;o{if(a.value){for(var B=m.value.search(a.value,{enrich:!0}),I=[],j=0;j!B||!B.length?[]:B.reduce((j,E)=>(j[I(E)]||(j[I(E)]=[]),j[I(E)].push(E),j),{}),R=()=>{setTimeout(()=>{l.value&&l.value.focus()},100),De(),o.value=!0};Q(async()=>{var E,D;const B=await vt(()=>import("./virtual_search-data.BMtqzJwt.js"),[]);u.value=B.default.INDEX_DATA,v.value=B.default.PREVIEW_LOOKUP,_.value=B.default.Options,r.value=window.location.origin+he(t.value==="root"?"/":t.value),L.value=((E=_.value)==null?void 0:E.buttonLabel)||L.value,b.value=((D=_.value)==null?void 0:D.placeholder)||b.value;var I=new q(_.value);I.import("reg",u.value.reg),I.import("cfg",u.value.cfg),I.import("map",u.value.map),I.import("ctx",u.value.ctx),m.value=I,s.value.innerHTML=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"⌘":"Ctrl";const j=U=>{var se;U.key==="k"&&(U.ctrlKey||U.metaKey)&&(U.preventDefault(),R()),U.key==="Escape"&&((se=a.value)==null?void 0:se.length)==0&&o.value&&(o.value=!1)};window.addEventListener("keydown",j)});const X=S(()=>F(O.value,B=>B.link.split("/").slice(0,-1).join("-"))),ne=S(()=>Object.values(X.value).flat().map(B=>B.id));function De(){o.value=!1,a.value=""}const at=B=>{var I,j;if(document.getElementsByClassName("search-group")[0]){if(B.key=="ArrowUp"||B.key=="ArrowDown"){const E=ne.value.indexOf($.value);if(B.key=="ArrowUp"){const D=E==0?ne.value.length-1:E-1;$.value=ne.value[D]}if(B.key=="ArrowDown"){const D=E>ne.value.length-2?0:E+1;$.value=ne.value[D]}if(E<5){const D=N.value.getElementsByClassName("VPPluginSearch-search-group")[0];D==null||D.scrollIntoView(!0)}else(I=document.getElementById(ne.value[$.value]))==null||I.scrollIntoView(!0);Ie()}B.key=="Enter"&&w.go(e.site.value.base+((j=N.value.getElementsByClassName("link-focused")[0].getAttribute("href"))==null?void 0:j.replace(r.value,"")))}};return(B,I)=>{const j=Z("ClientOnly");return i(),h("div",la,[y(j,null,{default:f(()=>[(i(),P(gt,{to:"body"},[Fe(d("div",{class:"VPPluginSearch-modal-back",onClick:I[2]||(I[2]=E=>o.value=!1),onKeydown:at},[d("div",{class:"VPPluginSearch-modal",onClick:I[1]||(I[1]=Xe(()=>{},["stop"])),ref_key:"modal",ref:N},[d("form",ca,[I[4]||(I[4]=d("label",{class:"DocSearch-MagnifierLabel",for:"docsearch-input",id:"docsearch-label"},[d("svg",{width:"20",height:"20",class:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},[d("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),Fe(d("input",{class:"DocSearch-Input","aria-autocomplete":"both","aria-labelledby":"docsearch-label",id:"docsearch-input",autocomplete:"off",autocorrect:"off",autocapitalize:"off",enterkeyhint:"search",spellcheck:"false",autofocus:"true","onUpdate:modelValue":I[0]||(I[0]=E=>a.value=E),placeholder:b.value,maxlength:"64",type:"search",ref_key:"input",ref:l},null,8,ua),[[_t,a.value]])]),d("div",da,[(i(!0),h(H,null,z(X.value,(E,D)=>(i(),h("div",{class:"search-group",key:D},[d("span",pa,C(D?D.toString()[0].toUpperCase()+D.toString().slice(1):"Home"),1),(i(!0),h(H,null,z(E,(U,se)=>(i(),h("a",{href:r.value+U.link,key:U.id,onClick:De,onMouseenter:re=>$.value=U.id,class:A({"link-focused":$.value==U.id}),id:se.toString()},[d("div",fa,[d("span",va,C(U.link.includes("#")?"#":"▤"),1),d("div",ma,[d("h3",null,C(U.title),1),d("p",null,[d("div",{innerHTML:U.preview},null,8,_a)])]),I[5]||(I[5]=d("span",{class:"VPPluginSearch-search-item-icon"},"↪",-1))])],42,ha))),128))]))),128))]),I[6]||(I[6]=d("img",{class:"VPPluginSearch-flex-logo",src:zo,alt:"flex logo"},null,-1))],512)],544),[[mt,o.value]])]))]),_:1}),d("div",{id:"docsearch",onClick:I[3]||(I[3]=E=>R())},[d("button",ga,[d("span",ka,[I[7]||(I[7]=d("svg",{width:"20",height:"20",class:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},[d("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),d("span",ba,C(L.value),1)]),d("span",$a,[d("span",{class:"DocSearch-Button-Key",ref_key:"metaKey",ref:s},"Meta",512),I[8]||(I[8]=d("span",{class:"DocSearch-Button-Key"},"K",-1))])])])])}}}),Pa=k({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=M();return(t,s)=>c(e).socialLinks?(i(),P(Oe,{key:0,class:"VPNavBarSocialLinks",links:c(e).socialLinks},null,8,["links"])):g("",!0)}}),La=V(Pa,[["__scopeId","data-v-08b35e6f"]]),Va=["href","rel","target"],Sa=["innerHTML"],Ta={key:2},wa=k({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=M(),{hasSidebar:s}=x(),{currentLang:o}=ae(),a=S(()=>{var u;return typeof t.value.logoLink=="string"?t.value.logoLink:(u=t.value.logoLink)==null?void 0:u.link}),r=S(()=>{var u;return typeof t.value.logoLink=="string"||(u=t.value.logoLink)==null?void 0:u.rel}),l=S(()=>{var u;return typeof t.value.logoLink=="string"||(u=t.value.logoLink)==null?void 0:u.target});return(u,v)=>(i(),h("div",{class:A(["VPNavBarTitle",{"has-sidebar":c(s)}])},[d("a",{class:"title",href:a.value??c(Ce)(c(o).link),rel:r.value,target:l.value},[p(u.$slots,"nav-bar-title-before",{},void 0,!0),c(t).logo?(i(),P(ue,{key:0,class:"logo",image:c(t).logo},null,8,["image"])):g("",!0),c(t).siteTitle?(i(),h("span",{key:1,innerHTML:c(t).siteTitle},null,8,Sa)):c(t).siteTitle===void 0?(i(),h("span",Ta,C(c(e).title),1)):g("",!0),p(u.$slots,"nav-bar-title-after",{},void 0,!0)],8,Va)],2))}}),Ma=V(wa,[["__scopeId","data-v-5622a072"]]),Na={class:"items"},Ia={class:"title"},Ca=k({__name:"VPNavBarTranslations",setup(n){const{theme:e}=M(),{localeLinks:t,currentLang:s}=ae({correspondingLink:!0});return(o,a)=>c(t).length&&c(s).label?(i(),P(Ee,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:c(e).langMenuLabel||"Change language"},{default:f(()=>[d("div",Na,[d("p",Ia,C(c(s).label),1),(i(!0),h(H,null,z(c(t),r=>(i(),P(ke,{key:r.link,item:r},null,8,["item"]))),128))])]),_:1},8,["label"])):g("",!0)}}),Aa=V(Ca,[["__scopeId","data-v-dac637f3"]]),Ha={class:"wrapper"},Ba={class:"container"},Ea={class:"title"},Oa={class:"content"},Da={class:"content-body"},Fa=k({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const e=n,{y:t}=xe(),{hasSidebar:s}=x(),{frontmatter:o}=M(),a=T({});return Ne(()=>{a.value={"has-sidebar":s.value,home:o.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(r,l)=>(i(),h("div",{class:A(["VPNavBar",a.value])},[d("div",Ha,[d("div",Ba,[d("div",Ea,[y(Ma,null,{"nav-bar-title-before":f(()=>[p(r.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[p(r.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",Oa,[d("div",Da,[p(r.$slots,"nav-bar-content-before",{},void 0,!0),y(ya,{class:"search"}),y(Fo,{class:"menu"}),y(Aa,{class:"translations"}),y(Ks,{class:"appearance"}),y(La,{class:"social-links"}),y(Mo,{class:"extra"}),p(r.$slots,"nav-bar-content-after",{},void 0,!0),y(Co,{class:"hamburger",active:r.isScreenOpen,onClick:l[0]||(l[0]=u=>r.$emit("toggle-screen"))},null,8,["active"])])])])]),l[1]||(l[1]=d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1))],2))}}),za=V(Fa,[["__scopeId","data-v-bb7529ee"]]),ja={key:0,class:"VPNavScreenAppearance"},Ua={class:"text"},qa=k({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=M();return(s,o)=>c(e).appearance&&c(e).appearance!=="force-dark"&&c(e).appearance!=="force-auto"?(i(),h("div",ja,[d("p",Ua,C(c(t).darkModeSwitchLabel||"Appearance"),1),y(He)])):g("",!0)}}),Ga=V(qa,[["__scopeId","data-v-774971f8"]]),Ra=["innerHTML"],Wa=k({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=_e("close-screen");return(t,s)=>(i(),P(K,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:c(e)},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,Ra)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Ka=V(Wa,[["__scopeId","data-v-29871565"]]),Ja=["innerHTML"],xa=k({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=_e("close-screen");return(t,s)=>(i(),P(K,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:c(e)},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,Ja)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),ot=V(xa,[["__scopeId","data-v-581896e9"]]),Xa={class:"VPNavScreenMenuGroupSection"},Ya={key:0,class:"title"},Qa=k({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(i(),h("div",Xa,[e.text?(i(),h("p",Ya,C(e.text),1)):g("",!0),(i(!0),h(H,null,z(e.items,s=>(i(),P(ot,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Za=V(Qa,[["__scopeId","data-v-836cddb8"]]),er=["aria-controls","aria-expanded"],tr=["innerHTML"],nr=["id"],sr={key:0,class:"item"},or={key:1,class:"item"},ar={key:2,class:"group"},rr=k({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=T(!1),s=S(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(a,r)=>(i(),h("div",{class:A(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:o},[d("span",{class:"button-text",innerHTML:a.text},null,8,tr),r[0]||(r[0]=d("span",{class:"vpi-plus button-icon"},null,-1))],8,er),d("div",{id:s.value,class:"items"},[(i(!0),h(H,null,z(a.items,l=>(i(),h(H,{key:JSON.stringify(l)},["link"in l?(i(),h("div",sr,[y(ot,{item:l},null,8,["item"])])):"component"in l?(i(),h("div",or,[(i(),P(W(l.component),Y({ref_for:!0},l.props,{"screen-menu":""}),null,16))])):(i(),h("div",ar,[y(Za,{text:l.text,items:l.items},null,8,["text","items"])]))],64))),128))],8,nr)],2))}}),ir=V(rr,[["__scopeId","data-v-a8d3502a"]]),lr={key:0,class:"VPNavScreenMenu"},cr=k({__name:"VPNavScreenMenu",setup(n){const{theme:e}=M();return(t,s)=>c(e).nav?(i(),h("nav",lr,[(i(!0),h(H,null,z(c(e).nav,o=>(i(),h(H,{key:JSON.stringify(o)},["link"in o?(i(),P(Ka,{key:0,item:o},null,8,["item"])):"component"in o?(i(),P(W(o.component),Y({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(i(),P(ir,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):g("",!0)}}),ur=k({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=M();return(t,s)=>c(e).socialLinks?(i(),P(Oe,{key:0,class:"VPNavScreenSocialLinks",links:c(e).socialLinks},null,8,["links"])):g("",!0)}}),dr={class:"list"},pr=k({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=ae({correspondingLink:!0}),s=T(!1);function o(){s.value=!s.value}return(a,r)=>c(e).length&&c(t).label?(i(),h("div",{key:0,class:A(["VPNavScreenTranslations",{open:s.value}])},[d("button",{class:"title",onClick:o},[r[0]||(r[0]=d("span",{class:"vpi-languages icon lang"},null,-1)),ee(" "+C(c(t).label)+" ",1),r[1]||(r[1]=d("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),d("ul",dr,[(i(!0),h(H,null,z(c(e),l=>(i(),h("li",{key:l.link,class:"item"},[y(K,{class:"link",href:l.link},{default:f(()=>[ee(C(l.text),1)]),_:2},1032,["href"])]))),128))])],2)):g("",!0)}}),hr=V(pr,[["__scopeId","data-v-0d43316b"]]),fr={class:"container"},vr=k({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=T(null),t=Ye(ge?document.body:null);return(s,o)=>(i(),P(we,{name:"fade",onEnter:o[0]||(o[0]=a=>t.value=!0),onAfterLeave:o[1]||(o[1]=a=>t.value=!1)},{default:f(()=>[s.open?(i(),h("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",fr,[p(s.$slots,"nav-screen-content-before",{},void 0,!0),y(cr,{class:"menu"}),y(hr,{class:"translations"}),y(Ga,{class:"appearance"}),y(ur,{class:"social-links"}),p(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):g("",!0)]),_:3}))}}),mr=V(vr,[["__scopeId","data-v-34fa79a7"]]),_r={key:0,class:"VPNav"},gr=k({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=Os(),{frontmatter:o}=M(),a=S(()=>o.value.navbar!==!1);return Qe("close-screen",t),fe(()=>{ge&&document.documentElement.classList.toggle("hide-nav",!a.value)}),(r,l)=>a.value?(i(),h("header",_r,[y(za,{"is-screen-open":c(e),onToggleScreen:c(s)},{"nav-bar-title-before":f(()=>[p(r.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[p(r.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[p(r.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[p(r.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),y(mr,{open:c(e)},{"nav-screen-content-before":f(()=>[p(r.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[p(r.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):g("",!0)}}),kr=V(gr,[["__scopeId","data-v-a46e73f0"]]),br=["role","tabindex"],$r={key:1,class:"items"},yr=k({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:s,isLink:o,isActiveLink:a,hasActiveLink:r,hasChildren:l,toggle:u}=zt(S(()=>e.item)),v=S(()=>l.value?"section":"div"),_=S(()=>o.value?"a":"div"),m=S(()=>l.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),L=S(()=>o.value?void 0:"button"),b=S(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":o.value},{"is-active":a.value},{"has-active":r.value}]);function $(w){"key"in w&&w.key!=="Enter"||!e.item.link&&u()}function N(){e.item.link&&u()}return(w,O)=>{const F=Z("VPSidebarItem",!0);return i(),P(W(v.value),{class:A(["VPSidebarItem",b.value])},{default:f(()=>[w.item.text?(i(),h("div",Y({key:0,class:"item",role:L.value},kt(w.item.items?{click:$,keydown:$}:{},!0),{tabindex:w.item.items&&0}),[O[1]||(O[1]=d("div",{class:"indicator"},null,-1)),w.item.link?(i(),P(K,{key:0,tag:_.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:f(()=>[(i(),P(W(m.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(i(),P(W(m.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(i(),h("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:N,onKeydown:bt(N,["enter"]),tabindex:"0"},O[0]||(O[0]=[d("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):g("",!0)],16,br)):g("",!0),w.item.items&&w.item.items.length?(i(),h("div",$r,[w.depth<5?(i(!0),h(H,{key:0},z(w.item.items,R=>(i(),P(F,{key:R.text,item:R,depth:w.depth+1},null,8,["item","depth"]))),128)):g("",!0)])):g("",!0)]),_:1},8,["class"])}}}),Pr=V(yr,[["__scopeId","data-v-2e0476bc"]]),Lr=k({__name:"VPSidebarGroup",props:{items:{}},setup(n){const e=T(!0);let t=null;return Q(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),$t(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,o)=>(i(!0),h(H,null,z(s.items,a=>(i(),h("div",{key:a.text,class:A(["group",{"no-transition":e.value}])},[y(Pr,{item:a,depth:0},null,8,["item"])],2))),128))}}),Vr=V(Lr,[["__scopeId","data-v-ec086cd5"]]),Sr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Tr=k({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const{sidebarGroups:e,hasSidebar:t}=x(),s=n,o=T(null),a=Ye(ge?document.body:null);J([s,o],()=>{var l;s.open?(a.value=!0,(l=o.value)==null||l.focus()):a.value=!1},{immediate:!0,flush:"post"});const r=T(0);return J(e,()=>{r.value+=1},{deep:!0}),(l,u)=>c(t)?(i(),h("aside",{key:0,class:A(["VPSidebar",{open:l.open}]),ref_key:"navEl",ref:o,onClick:u[0]||(u[0]=Xe(()=>{},["stop"]))},[u[2]||(u[2]=d("div",{class:"curtain"},null,-1)),d("nav",Sr,[u[1]||(u[1]=d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),p(l.$slots,"sidebar-nav-before",{},void 0,!0),(i(),P(Vr,{items:c(e),key:r.value},null,8,["items"])),p(l.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):g("",!0)}}),wr=V(Tr,[["__scopeId","data-v-12a40e3d"]]),Mr=k({__name:"VPSkipLink",setup(n){const{theme:e}=M(),t=me(),s=T();J(()=>t.path,()=>s.value.focus());function o({target:a}){const r=document.getElementById(decodeURIComponent(a.hash).slice(1));if(r){const l=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",l)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",l),r.focus(),window.scrollTo(0,0)}}return(a,r)=>(i(),h(H,null,[d("span",{ref_key:"backToTop",ref:s,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o},C(c(e).skipToContentLabel||"Skip to content"),1)],64))}}),Nr=V(Mr,[["__scopeId","data-v-17ad389b"]]),Ir=k({__name:"Layout",setup(n){const{isOpen:e,open:t,close:s}=x(),o=me();J(()=>o.path,s),Ft(e,s);const{frontmatter:a}=M(),r=yt(),l=S(()=>!!r["home-hero-image"]);return Qe("hero-image-slot-exists",l),(u,v)=>{const _=Z("Content");return c(a).layout!==!1?(i(),h("div",{key:0,class:A(["Layout",c(a).pageClass])},[p(u.$slots,"layout-top",{},void 0,!0),y(Nr),y(St,{class:"backdrop",show:c(e),onClick:c(s)},null,8,["show","onClick"]),y(kr,null,{"nav-bar-title-before":f(()=>[p(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[p(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[p(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[p(u.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[p(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[p(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),y(Es,{open:c(e),onOpenMenu:c(t)},null,8,["open","onOpenMenu"]),y(wr,{open:c(e)},{"sidebar-nav-before":f(()=>[p(u.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[p(u.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),y(bs,null,{"page-top":f(()=>[p(u.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[p(u.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[p(u.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[p(u.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[p(u.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[p(u.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[p(u.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[p(u.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[p(u.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[p(u.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[p(u.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[p(u.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[p(u.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[p(u.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[p(u.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[p(u.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[p(u.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[p(u.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[p(u.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[p(u.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[p(u.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[p(u.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[p(u.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),y(Vs),p(u.$slots,"layout-bottom",{},void 0,!0)],2)):(i(),P(_,{key:1}))}}}),Cr=V(Ir,[["__scopeId","data-v-c4daae71"]]),Hr={Layout:Cr,enhanceApp:({app:n})=>{n.component("Badge",Pt)}};export{Hr as t}; +import{d as k,c as h,r as p,n as A,o as i,a as ee,t as C,b as P,w as f,T as we,e as g,_ as V,u as Re,i as it,f as lt,g as he,h as S,j as d,k as c,l as te,m as Pe,p as T,q as J,s as fe,v as Q,x as Me,y as Ne,z as ct,A as ut,F as H,B as z,C as Z,D as We,E as ve,G as y,H as W,I as Ke,J as me,K as Y,L as _e,M as dt,N as Je,O as pt,P as Ie,Q as xe,R as ge,S as ht,U as ft,V as vt,W as Fe,X as mt,Y as Xe,Z as _t,$ as gt,a0 as Ye,a1 as Qe,a2 as kt,a3 as bt,a4 as $t,a5 as yt}from"./framework.xxfEszSJ.js";const Pt=k({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(n){return(e,t)=>(i(),h("span",{class:A(["VPBadge",e.type])},[p(e.$slots,"default",{},()=>[ee(C(e.text),1)])],2))}}),Lt={key:0,class:"VPBackdrop"},Vt=k({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(i(),P(we,{name:"fade"},{default:f(()=>[e.show?(i(),h("div",Lt)):g("",!0)]),_:1}))}}),St=V(Vt,[["__scopeId","data-v-b2600058"]]),M=Re;function Tt(n,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(n,e):(n(),(s=!0)&&setTimeout(()=>s=!1,e))}}function Le(n){return n.startsWith("/")?n:`/${n}`}function Ce(n){const{pathname:e,search:t,hash:s,protocol:o}=new URL(n,"http://a.com");if(it(n)||n.startsWith("#")||!o.startsWith("http")||!lt(e))return n;const{site:a}=M(),r=e.endsWith("/")||e.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,a.value.cleanUrls?"":".html")}${t}${s}`);return he(r)}function ae({correspondingLink:n=!1}={}){const{site:e,localeIndex:t,page:s,theme:o,hash:a}=M(),r=S(()=>{var u,v;return{label:(u=e.value.locales[t.value])==null?void 0:u.label,link:((v=e.value.locales[t.value])==null?void 0:v.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:S(()=>Object.entries(e.value.locales).flatMap(([u,v])=>r.value.label===v.label?[]:{text:v.label,link:wt(v.link||(u==="root"?"/":`/${u}/`),o.value.i18nRouting!==!1&&n,s.value.relativePath.slice(r.value.link.length-1),!e.value.cleanUrls)+a.value})),currentLang:r}}function wt(n,e,t,s){return e?n.replace(/\/$/,"")+Le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):n}const Mt={class:"NotFound"},Nt={class:"code"},It={class:"title"},Ct={class:"quote"},At={class:"action"},Ht=["href","aria-label"],Bt=k({__name:"NotFound",setup(n){const{theme:e}=M(),{currentLang:t}=ae();return(s,o)=>{var a,r,l,u,v;return i(),h("div",Mt,[d("p",Nt,C(((a=c(e).notFound)==null?void 0:a.code)??"404"),1),d("h1",It,C(((r=c(e).notFound)==null?void 0:r.title)??"PAGE NOT FOUND"),1),o[0]||(o[0]=d("div",{class:"divider"},null,-1)),d("blockquote",Ct,C(((l=c(e).notFound)==null?void 0:l.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",At,[d("a",{class:"link",href:c(he)(c(t).link),"aria-label":((u=c(e).notFound)==null?void 0:u.linkLabel)??"go to home"},C(((v=c(e).notFound)==null?void 0:v.linkText)??"Take me home"),9,Ht)])])}}}),Et=V(Bt,[["__scopeId","data-v-93fd8736"]]);function Ze(n,e){if(Array.isArray(n))return le(n);if(n==null)return[];e=Le(e);const t=Object.keys(n).sort((o,a)=>a.split("/").length-o.split("/").length).find(o=>e.startsWith(Le(o))),s=t?n[t]:[];return Array.isArray(s)?le(s):le(s.items,s.base)}function Ot(n){const e=[];let t=0;for(const s in n){const o=n[s];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function Dt(n){const e=[];function t(s){for(const o of s)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(n),e}function Ve(n,e){return Array.isArray(e)?e.some(t=>Ve(n,t)):te(n,e.link)?!0:e.items?Ve(n,e.items):!1}function le(n,e){return[...n].map(t=>{const s={...t},o=s.base||e;return o&&s.link&&(s.link=o+s.link),s.items&&(s.items=le(s.items,o)),s})}function x(){const{frontmatter:n,page:e,theme:t}=M(),s=Pe("(min-width: 960px)"),o=T(!1),a=S(()=>{const N=t.value.sidebar,w=e.value.relativePath;return N?Ze(N,w):[]}),r=T(a.value);J(a,(N,w)=>{JSON.stringify(N)!==JSON.stringify(w)&&(r.value=a.value)});const l=S(()=>n.value.sidebar!==!1&&r.value.length>0&&n.value.layout!=="home"),u=S(()=>v?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),v=S(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),_=S(()=>l.value&&s.value),m=S(()=>l.value?Ot(r.value):[]);function L(){o.value=!0}function b(){o.value=!1}function $(){o.value?b():L()}return{isOpen:o,sidebar:r,sidebarGroups:m,hasSidebar:l,hasAside:v,leftAside:u,isSidebarEnabled:_,open:L,close:b,toggle:$}}function Ft(n,e){let t;fe(()=>{t=n.value?document.activeElement:void 0}),Q(()=>{window.addEventListener("keyup",s)}),Me(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function zt(n){const{page:e,hash:t}=M(),s=T(!1),o=S(()=>n.value.collapsed!=null),a=S(()=>!!n.value.link),r=T(!1),l=()=>{r.value=te(e.value.relativePath,n.value.link)};J([e,n,t],l),Q(l);const u=S(()=>r.value?!0:n.value.items?Ve(e.value.relativePath,n.value.items):!1),v=S(()=>!!(n.value.items&&n.value.items.length));fe(()=>{s.value=!!(o.value&&n.value.collapsed)}),Ne(()=>{(r.value||u.value)&&(s.value=!1)});function _(){o.value&&(s.value=!s.value)}return{collapsed:s,collapsible:o,isLink:a,isActiveLink:r,hasActiveLink:u,hasChildren:v,toggle:_}}function jt(){const{hasSidebar:n}=x(),e=Pe("(min-width: 960px)"),t=Pe("(min-width: 1280px)");return{isAsideEnabled:S(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const Ut=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,Se=[];function et(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function Ae(n){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:qt(t),link:"#"+t.id,level:s}});return Gt(e,n)}function qt(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(Ut.test(t.className))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Gt(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return Kt(n,s,o)}function Rt(n,e){const{isAsideEnabled:t}=jt(),s=Tt(a,100);let o=null;Q(()=>{requestAnimationFrame(a),window.addEventListener("scroll",s)}),ct(()=>{r(location.hash)}),Me(()=>{window.removeEventListener("scroll",s)});function a(){if(!t.value)return;const l=window.scrollY,u=window.innerHeight,v=document.body.offsetHeight,_=Math.abs(l+u-v)<1,m=Se.map(({element:b,link:$})=>({link:$,top:Wt(b)})).filter(({top:b})=>!Number.isNaN(b)).sort((b,$)=>b.top-$.top);if(!m.length){r(null);return}if(l<1){r(null);return}if(_){r(m[m.length-1].link);return}let L=null;for(const{link:b,top:$}of m){if($>l+ut()+4)break;L=b}r(L)}function r(l){o&&o.classList.remove("active"),l==null?o=null:o=n.value.querySelector(`a[href="${decodeURIComponent(l)}"]`);const u=o;u?(u.classList.add("active"),e.value.style.top=u.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Wt(n){let e=0;for(;n!==document.body;){if(n===null)return NaN;e+=n.offsetTop,n=n.offsetParent}return e}function Kt(n,e,t){Se.length=0;const s=[],o=[];return n.forEach(a=>{const r={...a,children:[]};let l=o[o.length-1];for(;l&&l.level>=r.level;)o.pop(),l=o[o.length-1];if(r.element.classList.contains("ignore-header")||l&&"shouldIgnore"in l){o.push({level:r.level,shouldIgnore:!0});return}r.level>t||r.level{const o=Z("VPDocOutlineItem",!0);return i(),h("ul",{class:A(["VPDocOutlineItem",t.root?"root":"nested"])},[(i(!0),h(H,null,z(t.headers,({children:a,link:r,title:l})=>(i(),h("li",null,[d("a",{class:"outline-link",href:r,onClick:e,title:l},C(l),9,Jt),a!=null&&a.length?(i(),P(o,{key:0,headers:a},null,8,["headers"])):g("",!0)]))),256))],2)}}}),tt=V(xt,[["__scopeId","data-v-da421f78"]]),Xt={class:"content"},Yt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Qt=k({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=M(),s=We([]);ve(()=>{s.value=Ae(e.value.outline??t.value.outline)});const o=T(),a=T();return Rt(o,a),(r,l)=>(i(),h("nav",{"aria-labelledby":"doc-outline-aria-label",class:A(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:o},[d("div",Xt,[d("div",{class:"outline-marker",ref_key:"marker",ref:a},null,512),d("div",Yt,C(c(et)(c(t))),1),y(tt,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),Zt=V(Qt,[["__scopeId","data-v-dfbd9fb8"]]),en={class:"VPDocAsideCarbonAds"},tn=k({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,s)=>(i(),h("div",en,[y(c(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),nn={class:"VPDocAside"},sn=k({__name:"VPDocAside",setup(n){const{theme:e}=M();return(t,s)=>(i(),h("div",nn,[p(t.$slots,"aside-top",{},void 0,!0),p(t.$slots,"aside-outline-before",{},void 0,!0),y(Zt),p(t.$slots,"aside-outline-after",{},void 0,!0),s[0]||(s[0]=d("div",{class:"spacer"},null,-1)),p(t.$slots,"aside-ads-before",{},void 0,!0),c(e).carbonAds?(i(),P(tn,{key:0,"carbon-ads":c(e).carbonAds},null,8,["carbon-ads"])):g("",!0),p(t.$slots,"aside-ads-after",{},void 0,!0),p(t.$slots,"aside-bottom",{},void 0,!0)]))}}),on=V(sn,[["__scopeId","data-v-79cae1a0"]]);function an(){const{theme:n,page:e}=M();return S(()=>{const{text:t="Edit this page",pattern:s=""}=n.value.editLink||{};let o;return typeof s=="function"?o=s(e.value):o=s.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function rn(){const{page:n,theme:e,frontmatter:t}=M();return S(()=>{var v,_,m,L,b,$,N,w;const s=Ze(e.value.sidebar,n.value.relativePath),o=Dt(s),a=ln(o,O=>O.link.replace(/[?#].*$/,"")),r=a.findIndex(O=>te(n.value.relativePath,O.link)),l=((v=e.value.docFooter)==null?void 0:v.prev)===!1&&!t.value.prev||t.value.prev===!1,u=((_=e.value.docFooter)==null?void 0:_.next)===!1&&!t.value.next||t.value.next===!1;return{prev:l?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((m=a[r-1])==null?void 0:m.docFooterText)??((L=a[r-1])==null?void 0:L.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((b=a[r-1])==null?void 0:b.link)},next:u?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??(($=a[r+1])==null?void 0:$.docFooterText)??((N=a[r+1])==null?void 0:N.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=a[r+1])==null?void 0:w.link)}}})}function ln(n,e){const t=new Set;return n.filter(s=>{const o=e(s);return t.has(o)?!1:t.add(o)})}const K=k({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=S(()=>e.tag??(e.href?"a":"span")),s=S(()=>e.href&&Ke.test(e.href)||e.target==="_blank");return(o,a)=>(i(),P(W(t.value),{class:A(["VPLink",{link:o.href,"vp-external-link-icon":s.value,"no-icon":o.noIcon}]),href:o.href?c(Ce)(o.href):void 0,target:o.target??(s.value?"_blank":void 0),rel:o.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[p(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),cn={class:"VPLastUpdated"},un=["datetime"],dn=k({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:s}=M(),o=S(()=>new Date(t.value.lastUpdated)),a=S(()=>o.value.toISOString()),r=T("");return Q(()=>{fe(()=>{var l,u,v;r.value=new Intl.DateTimeFormat((u=(l=e.value.lastUpdated)==null?void 0:l.formatOptions)!=null&&u.forceLocale?s.value:void 0,((v=e.value.lastUpdated)==null?void 0:v.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(l,u)=>{var v;return i(),h("p",cn,[ee(C(((v=c(e).lastUpdated)==null?void 0:v.text)||c(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:a.value},C(r.value),9,un)])}}}),pn=V(dn,[["__scopeId","data-v-e95db471"]]),hn={key:0,class:"VPDocFooter"},fn={key:0,class:"edit-info"},vn={key:0,class:"edit-link"},mn={key:1,class:"last-updated"},_n={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},gn={class:"pager"},kn=["innerHTML"],bn=["innerHTML"],$n={class:"pager"},yn=["innerHTML"],Pn=["innerHTML"],Ln=k({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:s}=M(),o=an(),a=rn(),r=S(()=>e.value.editLink&&s.value.editLink!==!1),l=S(()=>t.value.lastUpdated),u=S(()=>r.value||l.value||a.value.prev||a.value.next);return(v,_)=>{var m,L,b,$;return u.value?(i(),h("footer",hn,[p(v.$slots,"doc-footer-before",{},void 0,!0),r.value||l.value?(i(),h("div",fn,[r.value?(i(),h("div",vn,[y(K,{class:"edit-link-button",href:c(o).url,"no-icon":!0},{default:f(()=>[_[0]||(_[0]=d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),ee(" "+C(c(o).text),1)]),_:1},8,["href"])])):g("",!0),l.value?(i(),h("div",mn,[y(pn)])):g("",!0)])):g("",!0),(m=c(a).prev)!=null&&m.link||(L=c(a).next)!=null&&L.link?(i(),h("nav",_n,[_[1]||(_[1]=d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),d("div",gn,[(b=c(a).prev)!=null&&b.link?(i(),P(K,{key:0,class:"pager-link prev",href:c(a).prev.link},{default:f(()=>{var N;return[d("span",{class:"desc",innerHTML:((N=c(e).docFooter)==null?void 0:N.prev)||"Previous page"},null,8,kn),d("span",{class:"title",innerHTML:c(a).prev.text},null,8,bn)]}),_:1},8,["href"])):g("",!0)]),d("div",$n,[($=c(a).next)!=null&&$.link?(i(),P(K,{key:0,class:"pager-link next",href:c(a).next.link},{default:f(()=>{var N;return[d("span",{class:"desc",innerHTML:((N=c(e).docFooter)==null?void 0:N.next)||"Next page"},null,8,yn),d("span",{class:"title",innerHTML:c(a).next.text},null,8,Pn)]}),_:1},8,["href"])):g("",!0)])])):g("",!0)])):g("",!0)}}}),Vn=V(Ln,[["__scopeId","data-v-07d71ff1"]]),Sn={class:"container"},Tn={class:"aside-container"},wn={class:"aside-content"},Mn={class:"content"},Nn={class:"content-container"},In={class:"main"},Cn=k({__name:"VPDoc",setup(n){const{theme:e}=M(),t=me(),{hasSidebar:s,hasAside:o,leftAside:a}=x(),r=S(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(l,u)=>{const v=Z("Content");return i(),h("div",{class:A(["VPDoc",{"has-sidebar":c(s),"has-aside":c(o)}])},[p(l.$slots,"doc-top",{},void 0,!0),d("div",Sn,[c(o)?(i(),h("div",{key:0,class:A(["aside",{"left-aside":c(a)}])},[u[0]||(u[0]=d("div",{class:"aside-curtain"},null,-1)),d("div",Tn,[d("div",wn,[y(on,null,{"aside-top":f(()=>[p(l.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[p(l.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[p(l.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[p(l.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[p(l.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[p(l.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):g("",!0),d("div",Mn,[d("div",Nn,[p(l.$slots,"doc-before",{},void 0,!0),d("main",In,[y(v,{class:A(["vp-doc",[r.value,c(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),y(Vn,null,{"doc-footer-before":f(()=>[p(l.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),p(l.$slots,"doc-after",{},void 0,!0)])])]),p(l.$slots,"doc-bottom",{},void 0,!0)],2)}}}),An=V(Cn,[["__scopeId","data-v-ef3a4dda"]]),Hn=k({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(n){const e=n,t=S(()=>e.href&&Ke.test(e.href)),s=S(()=>e.tag||(e.href?"a":"button"));return(o,a)=>(i(),P(W(s.value),{class:A(["VPButton",[o.size,o.theme]]),href:o.href?c(Ce)(o.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[ee(C(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),Bn=V(Hn,[["__scopeId","data-v-b20c43c2"]]),En=["src","alt"],On=k({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const s=Z("VPImage",!0);return e.image?(i(),h(H,{key:0},[typeof e.image=="string"||"src"in e.image?(i(),h("img",Y({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:c(he)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,En)):(i(),h(H,{key:1},[y(s,Y({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),y(s,Y({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):g("",!0)}}}),ue=V(On,[["__scopeId","data-v-4d414b82"]]),Dn={class:"container"},Fn={class:"main"},zn={class:"heading"},jn=["innerHTML"],Un=["innerHTML"],qn=["innerHTML"],Gn={key:0,class:"actions"},Rn={key:0,class:"image"},Wn={class:"image-container"},Kn=k({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=_e("hero-image-slot-exists");return(t,s)=>(i(),h("div",{class:A(["VPHero",{"has-image":t.image||c(e)}])},[d("div",Dn,[d("div",Fn,[p(t.$slots,"home-hero-info-before",{},void 0,!0),p(t.$slots,"home-hero-info",{},()=>[d("h1",zn,[t.name?(i(),h("span",{key:0,innerHTML:t.name,class:"name clip"},null,8,jn)):g("",!0),t.text?(i(),h("span",{key:1,innerHTML:t.text,class:"text"},null,8,Un)):g("",!0)]),t.tagline?(i(),h("p",{key:0,innerHTML:t.tagline,class:"tagline"},null,8,qn)):g("",!0)],!0),p(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(i(),h("div",Gn,[(i(!0),h(H,null,z(t.actions,o=>(i(),h("div",{key:o.link,class:"action"},[y(Bn,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):g("",!0),p(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||c(e)?(i(),h("div",Rn,[d("div",Wn,[s[0]||(s[0]=d("div",{class:"image-bg"},null,-1)),p(t.$slots,"home-hero-image",{},()=>[t.image?(i(),P(ue,{key:0,class:"image-src",image:t.image},null,8,["image"])):g("",!0)],!0)])])):g("",!0)])],2))}}),Jn=V(Kn,[["__scopeId","data-v-d266baba"]]),xn=k({__name:"VPHomeHero",setup(n){const{frontmatter:e}=M();return(t,s)=>c(e).hero?(i(),P(Jn,{key:0,class:"VPHomeHero",name:c(e).hero.name,text:c(e).hero.text,tagline:c(e).hero.tagline,image:c(e).hero.image,actions:c(e).hero.actions},{"home-hero-info-before":f(()=>[p(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[p(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[p(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[p(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[p(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):g("",!0)}}),Xn={class:"box"},Yn={key:0,class:"icon"},Qn=["innerHTML"],Zn=["innerHTML"],es=["innerHTML"],ts={key:4,class:"link-text"},ns={class:"link-text-value"},ss=k({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(n){return(e,t)=>(i(),P(K,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[d("article",Xn,[typeof e.icon=="object"&&e.icon.wrap?(i(),h("div",Yn,[y(ue,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(i(),P(ue,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(i(),h("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Qn)):g("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Zn),e.details?(i(),h("p",{key:3,class:"details",innerHTML:e.details},null,8,es)):g("",!0),e.linkText?(i(),h("div",ts,[d("p",ns,[ee(C(e.linkText)+" ",1),t[0]||(t[0]=d("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):g("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),os=V(ss,[["__scopeId","data-v-95001937"]]),as={key:0,class:"VPFeatures"},rs={class:"container"},is={class:"items"},ls=k({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=S(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,o)=>s.features?(i(),h("div",as,[d("div",rs,[d("div",is,[(i(!0),h(H,null,z(s.features,a=>(i(),h("div",{key:a.title,class:A(["item",[t.value]])},[y(os,{icon:a.icon,title:a.title,details:a.details,link:a.link,"link-text":a.linkText,rel:a.rel,target:a.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):g("",!0)}}),cs=V(ls,[["__scopeId","data-v-1da4ff3d"]]),us=k({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=M();return(t,s)=>c(e).features?(i(),P(cs,{key:0,class:"VPHomeFeatures",features:c(e).features},null,8,["features"])):g("",!0)}}),ds=k({__name:"VPHomeContent",setup(n){const{width:e}=dt({initialWidth:0,includeScrollbar:!1});return(t,s)=>(i(),h("div",{class:"vp-doc container",style:Je(c(e)?{"--vp-offset":`calc(50% - ${c(e)/2}px)`}:{})},[p(t.$slots,"default",{},void 0,!0)],4))}}),ps=V(ds,[["__scopeId","data-v-2498cc33"]]),hs=k({__name:"VPHome",setup(n){const{frontmatter:e,theme:t}=M();return(s,o)=>{const a=Z("Content");return i(),h("div",{class:A(["VPHome",{"external-link-icon-enabled":c(t).externalLinkIcon}])},[p(s.$slots,"home-hero-before",{},void 0,!0),y(xn,null,{"home-hero-info-before":f(()=>[p(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[p(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[p(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[p(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[p(s.$slots,"home-hero-image",{},void 0,!0)]),_:3}),p(s.$slots,"home-hero-after",{},void 0,!0),p(s.$slots,"home-features-before",{},void 0,!0),y(us),p(s.$slots,"home-features-after",{},void 0,!0),c(e).markdownStyles!==!1?(i(),P(ps,{key:0},{default:f(()=>[y(a)]),_:1})):(i(),P(a,{key:1}))],2)}}}),fs=V(hs,[["__scopeId","data-v-8b59c434"]]),vs={},ms={class:"VPPage"};function _s(n,e){const t=Z("Content");return i(),h("div",ms,[p(n.$slots,"page-top"),y(t),p(n.$slots,"page-bottom")])}const gs=V(vs,[["render",_s]]),ks=k({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=M(),{hasSidebar:s}=x();return(o,a)=>(i(),h("div",{class:A(["VPContent",{"has-sidebar":c(s),"is-home":c(t).layout==="home"}]),id:"VPContent"},[c(e).isNotFound?p(o.$slots,"not-found",{key:0},()=>[y(Et)],!0):c(t).layout==="page"?(i(),P(gs,{key:1},{"page-top":f(()=>[p(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[p(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):c(t).layout==="home"?(i(),P(fs,{key:2},{"home-hero-before":f(()=>[p(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[p(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[p(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[p(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[p(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[p(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[p(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[p(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[p(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):c(t).layout&&c(t).layout!=="doc"?(i(),P(W(c(t).layout),{key:3})):(i(),P(An,{key:4},{"doc-top":f(()=>[p(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[p(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[p(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[p(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[p(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[p(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[p(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[p(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[p(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[p(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[p(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),bs=V(ks,[["__scopeId","data-v-d2aef184"]]),$s={class:"container"},ys=["innerHTML"],Ps=["innerHTML"],Ls=k({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=M(),{hasSidebar:s}=x();return(o,a)=>c(e).footer&&c(t).footer!==!1?(i(),h("footer",{key:0,class:A(["VPFooter",{"has-sidebar":c(s)}])},[d("div",$s,[c(e).footer.message?(i(),h("p",{key:0,class:"message",innerHTML:c(e).footer.message},null,8,ys)):g("",!0),c(e).footer.copyright?(i(),h("p",{key:1,class:"copyright",innerHTML:c(e).footer.copyright},null,8,Ps)):g("",!0)])],2)):g("",!0)}}),Vs=V(Ls,[["__scopeId","data-v-e3157d6d"]]);function Ss(){const{theme:n,frontmatter:e}=M(),t=We([]),s=S(()=>t.value.length>0);return ve(()=>{t.value=Ae(e.value.outline??n.value.outline)}),{headers:t,hasLocalNav:s}}const Ts={class:"menu-text"},ws={class:"header"},Ms={class:"outline"},Ns=k({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=M(),s=T(!1),o=T(0),a=T(),r=T();function l(m){var L;(L=a.value)!=null&&L.contains(m.target)||(s.value=!1)}J(s,m=>{if(m){document.addEventListener("click",l);return}document.removeEventListener("click",l)}),pt("Escape",()=>{s.value=!1}),ve(()=>{s.value=!1});function u(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function v(m){m.target.classList.contains("outline-link")&&(r.value&&(r.value.style.transition="none"),Ie(()=>{s.value=!1}))}function _(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(m,L)=>(i(),h("div",{class:"VPLocalNavOutlineDropdown",style:Je({"--vp-vh":o.value+"px"}),ref_key:"main",ref:a},[m.headers.length>0?(i(),h("button",{key:0,onClick:u,class:A({open:s.value})},[d("span",Ts,C(c(et)(c(t))),1),L[0]||(L[0]=d("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(i(),h("button",{key:1,onClick:_},C(c(t).returnToTopLabel||"Return to top"),1)),y(we,{name:"flyout"},{default:f(()=>[s.value?(i(),h("div",{key:0,ref_key:"items",ref:r,class:"items",onClick:v},[d("div",ws,[d("a",{class:"top-link",href:"#",onClick:_},C(c(t).returnToTopLabel||"Return to top"),1)]),d("div",Ms,[y(tt,{headers:m.headers},null,8,["headers"])])],512)):g("",!0)]),_:1})],4))}}),Is=V(Ns,[["__scopeId","data-v-d61422fe"]]),Cs={class:"container"},As=["aria-expanded"],Hs={class:"menu-text"},Bs=k({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=M(),{hasSidebar:s}=x(),{headers:o}=Ss(),{y:a}=xe(),r=T(0);Q(()=>{r.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ve(()=>{o.value=Ae(t.value.outline??e.value.outline)});const l=S(()=>o.value.length===0),u=S(()=>l.value&&!s.value),v=S(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:l.value,fixed:u.value}));return(_,m)=>c(t).layout!=="home"&&(!u.value||c(a)>=r.value)?(i(),h("div",{key:0,class:A(v.value)},[d("div",Cs,[c(s)?(i(),h("button",{key:0,class:"menu","aria-expanded":_.open,"aria-controls":"VPSidebarNav",onClick:m[0]||(m[0]=L=>_.$emit("open-menu"))},[m[1]||(m[1]=d("span",{class:"vpi-align-left menu-icon"},null,-1)),d("span",Hs,C(c(e).sidebarMenuLabel||"Menu"),1)],8,As)):g("",!0),y(Is,{headers:c(o),navHeight:r.value},null,8,["headers","navHeight"])])],2)):g("",!0)}}),Es=V(Bs,[["__scopeId","data-v-9d8129cc"]]);function Os(){const n=T(!1);function e(){n.value=!0,window.addEventListener("resize",o)}function t(){n.value=!1,window.removeEventListener("resize",o)}function s(){n.value?t():e()}function o(){window.outerWidth>=768&&t()}const a=me();return J(()=>a.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:s}}const Ds={},Fs={class:"VPSwitch",type:"button",role:"switch"},zs={class:"check"},js={key:0,class:"icon"};function Us(n,e){return i(),h("button",Fs,[d("span",zs,[n.$slots.default?(i(),h("span",js,[p(n.$slots,"default",{},void 0,!0)])):g("",!0)])])}const qs=V(Ds,[["render",Us],["__scopeId","data-v-7012e5dd"]]),Gs=k({__name:"VPSwitchAppearance",setup(n){const{isDark:e,theme:t}=M(),s=_e("toggle-appearance",()=>{e.value=!e.value}),o=T("");return Ne(()=>{o.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(a,r)=>(i(),P(qs,{title:o.value,class:"VPSwitchAppearance","aria-checked":c(e),onClick:c(s)},{default:f(()=>r[0]||(r[0]=[d("span",{class:"vpi-sun sun"},null,-1),d("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),He=V(Gs,[["__scopeId","data-v-fa1daf57"]]),Rs={key:0,class:"VPNavBarAppearance"},Ws=k({__name:"VPNavBarAppearance",setup(n){const{site:e}=M();return(t,s)=>c(e).appearance&&c(e).appearance!=="force-dark"&&c(e).appearance!=="force-auto"?(i(),h("div",Rs,[y(He)])):g("",!0)}}),Ks=V(Ws,[["__scopeId","data-v-123fcb2f"]]),Be=T();let nt=!1,be=0;function Js(n){const e=T(!1);if(ge){!nt&&xs(),be++;const t=J(Be,s=>{var o,a,r;s===n.el.value||(o=n.el.value)!=null&&o.contains(s)?(e.value=!0,(a=n.onFocus)==null||a.call(n)):(e.value=!1,(r=n.onBlur)==null||r.call(n))});Me(()=>{t(),be--,be||Xs()})}return ht(e)}function xs(){document.addEventListener("focusin",st),nt=!0,Be.value=document.activeElement}function Xs(){document.removeEventListener("focusin",st)}function st(){Be.value=document.activeElement}const Ys={class:"VPMenuLink"},Qs=["innerHTML"],Zs=k({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=M();return(t,s)=>(i(),h("div",Ys,[y(K,{class:A({active:c(te)(c(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,Qs)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ke=V(Zs,[["__scopeId","data-v-65e4a6b1"]]),eo={class:"VPMenuGroup"},to={key:0,class:"title"},no=k({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(i(),h("div",eo,[e.text?(i(),h("p",to,C(e.text),1)):g("",!0),(i(!0),h(H,null,z(e.items,s=>(i(),h(H,null,["link"in s?(i(),P(ke,{key:0,item:s},null,8,["item"])):g("",!0)],64))),256))]))}}),so=V(no,[["__scopeId","data-v-2bec9359"]]),oo={class:"VPMenu"},ao={key:0,class:"items"},ro=k({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(i(),h("div",oo,[e.items?(i(),h("div",ao,[(i(!0),h(H,null,z(e.items,s=>(i(),h(H,{key:JSON.stringify(s)},["link"in s?(i(),P(ke,{key:0,item:s},null,8,["item"])):"component"in s?(i(),P(W(s.component),Y({key:1,ref_for:!0},s.props),null,16)):(i(),P(so,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):g("",!0),p(e.$slots,"default",{},void 0,!0)]))}}),io=V(ro,[["__scopeId","data-v-39eca401"]]),lo=["aria-expanded","aria-label"],co={key:0,class:"text"},uo=["innerHTML"],po={key:1,class:"vpi-more-horizontal icon"},ho={class:"menu"},fo=k({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=T(!1),t=T();Js({el:t,onBlur:s});function s(){e.value=!1}return(o,a)=>(i(),h("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:a[1]||(a[1]=r=>e.value=!0),onMouseleave:a[2]||(a[2]=r=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:a[0]||(a[0]=r=>e.value=!e.value)},[o.button||o.icon?(i(),h("span",co,[o.icon?(i(),h("span",{key:0,class:A([o.icon,"option-icon"])},null,2)):g("",!0),o.button?(i(),h("span",{key:1,innerHTML:o.button},null,8,uo)):g("",!0),a[3]||(a[3]=d("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(i(),h("span",po))],8,lo),d("div",ho,[y(io,{items:o.items},{default:f(()=>[p(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),Ee=V(fo,[["__scopeId","data-v-40e55da0"]]),vo=["href","aria-label","innerHTML"],mo=k({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=T();Q(async()=>{var a;await Ie();const o=(a=t.value)==null?void 0:a.children[0];o instanceof HTMLElement&&o.className.startsWith("vpi-social-")&&(getComputedStyle(o).maskImage||getComputedStyle(o).webkitMaskImage)==="none"&&o.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const s=S(()=>typeof e.icon=="object"?e.icon.svg:``);return(o,a)=>(i(),h("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:s.value},null,8,vo))}}),_o=V(mo,[["__scopeId","data-v-fbf39218"]]),go={class:"VPSocialLinks"},ko=k({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(i(),h("div",go,[(i(!0),h(H,null,z(e.links,({link:s,icon:o,ariaLabel:a})=>(i(),P(_o,{key:s,icon:o,link:s,ariaLabel:a},null,8,["icon","link","ariaLabel"]))),128))]))}}),Oe=V(ko,[["__scopeId","data-v-f2234a39"]]),bo={key:0,class:"group translations"},$o={class:"trans-title"},yo={key:1,class:"group"},Po={class:"item appearance"},Lo={class:"label"},Vo={class:"appearance-action"},So={key:2,class:"group"},To={class:"item social-links"},wo=k({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=M(),{localeLinks:s,currentLang:o}=ae({correspondingLink:!0}),a=S(()=>s.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(r,l)=>a.value?(i(),P(Ee,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[c(s).length&&c(o).label?(i(),h("div",bo,[d("p",$o,C(c(o).label),1),(i(!0),h(H,null,z(c(s),u=>(i(),P(ke,{key:u.link,item:u},null,8,["item"]))),128))])):g("",!0),c(e).appearance&&c(e).appearance!=="force-dark"&&c(e).appearance!=="force-auto"?(i(),h("div",yo,[d("div",Po,[d("p",Lo,C(c(t).darkModeSwitchLabel||"Appearance"),1),d("div",Vo,[y(He)])])])):g("",!0),c(t).socialLinks?(i(),h("div",So,[d("div",To,[y(Oe,{class:"social-links-list",links:c(t).socialLinks},null,8,["links"])])])):g("",!0)]),_:1})):g("",!0)}}),Mo=V(wo,[["__scopeId","data-v-0c845e5d"]]),No=["aria-expanded"],Io=k({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(i(),h("button",{type:"button",class:A(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},t[1]||(t[1]=[d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)]),10,No))}}),Co=V(Io,[["__scopeId","data-v-670493dd"]]),Ao=["innerHTML"],Ho=k({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=M();return(t,s)=>(i(),P(K,{class:A({VPNavBarMenuLink:!0,active:c(te)(c(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,Ao)]),_:1},8,["class","href","target","rel","no-icon"]))}}),Bo=V(Ho,[["__scopeId","data-v-8dbce4d0"]]),Eo=k({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const e=n,{page:t}=M(),s=a=>"component"in a?!1:"link"in a?te(t.value.relativePath,a.link,!!e.item.activeMatch):a.items.some(s),o=S(()=>s(e.item));return(a,r)=>(i(),P(Ee,{class:A({VPNavBarMenuGroup:!0,active:c(te)(c(t).relativePath,a.item.activeMatch,!!a.item.activeMatch)||o.value}),button:a.item.text,items:a.item.items},null,8,["class","button","items"]))}}),Oo={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Do=k({__name:"VPNavBarMenu",setup(n){const{theme:e}=M();return(t,s)=>c(e).nav?(i(),h("nav",Oo,[s[0]||(s[0]=d("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(i(!0),h(H,null,z(c(e).nav,o=>(i(),h(H,{key:JSON.stringify(o)},["link"in o?(i(),P(Bo,{key:0,item:o},null,8,["item"])):"component"in o?(i(),P(W(o.component),Y({key:1,ref_for:!0},o.props),null,16)):(i(),P(Eo,{key:2,item:o},null,8,["item"]))],64))),128))])):g("",!0)}}),Fo=V(Do,[["__scopeId","data-v-5bacfe89"]]),zo="/document/assets/flex-logo.BJA2J7hW.svg";function $e(n,e){return typeof n>"u"?e:n}function ze(n){const e=Array(n);for(let t=0;t=this.minlength&&(l||!r[_])){let L=ie(u,o,v),b="";switch(this.tokenize){case"full":if(3$;N--)if(N-$>=this.minlength){const w=ie(u,o,v,m,$);b=_.substring($,N),this.push_index(r,b,w,n,t)}break}case"reverse":if(2=this.minlength){const N=ie(u,o,v,m,$);this.push_index(r,b,N,n,t)}b=""}case"forward":if(1=this.minlength&&this.push_index(r,b,L,n,t);break}default:if(this.boost&&(L=Math.min(0|L/this.boost(e,_,v),u-1)),this.push_index(r,_,L,n,t),l&&1=this.minlength&&!$[_]){$[_]=1;const R=ie(N+(o/2>N?0:1),o,v,O-1,F-1),X=this.bidirectional&&_>w;this.push_index(a,X?w:_,R,n,t,X?_:w)}}}}}this.fastupdate||(this.register[n]=1)}}return this};function ie(n,e,t,s,o){return t&&1=this.minlength&&!m[b]){if(!this.optimize&&!a&&!this.map[b])return r;L[N++]=b,m[b]=1}n=L,s=n.length}if(!s)return r;e||(e=100);let u,v=this.depth&&1=t)))));b++);if(v)return o?qe(l,t,0):void(n[n.length]=l)}return!e&&l};function qe(n,e,t){return n=n.length===1?n[0]:Uo(n),t||n.length>e?n.slice(t,t+e):n}function Ge(n,e,t,s){if(t){const o=s&&e>t;n=n[o?e:t],n=n&&n[o?t:e]}else n=n[e];return n}q.prototype.contain=function(n){return!!this.register[n]},q.prototype.update=function(n,e){return this.remove(n).add(n,e)},q.prototype.remove=function(n,e){const t=this.register[n];if(t){if(this.fastupdate)for(let s,o=0;o{if(a.value){for(var B=m.value.search(a.value,{enrich:!0}),I=[],j=0;j!B||!B.length?[]:B.reduce((j,E)=>(j[I(E)]||(j[I(E)]=[]),j[I(E)].push(E),j),{}),R=()=>{setTimeout(()=>{l.value&&l.value.focus()},100),De(),o.value=!0};Q(async()=>{var E,D;const B=await vt(()=>import("./virtual_search-data.DDH2dNJ_.js"),[]);u.value=B.default.INDEX_DATA,v.value=B.default.PREVIEW_LOOKUP,_.value=B.default.Options,r.value=window.location.origin+he(t.value==="root"?"/":t.value),L.value=((E=_.value)==null?void 0:E.buttonLabel)||L.value,b.value=((D=_.value)==null?void 0:D.placeholder)||b.value;var I=new q(_.value);I.import("reg",u.value.reg),I.import("cfg",u.value.cfg),I.import("map",u.value.map),I.import("ctx",u.value.ctx),m.value=I,s.value.innerHTML=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"⌘":"Ctrl";const j=U=>{var se;U.key==="k"&&(U.ctrlKey||U.metaKey)&&(U.preventDefault(),R()),U.key==="Escape"&&((se=a.value)==null?void 0:se.length)==0&&o.value&&(o.value=!1)};window.addEventListener("keydown",j)});const X=S(()=>F(O.value,B=>B.link.split("/").slice(0,-1).join("-"))),ne=S(()=>Object.values(X.value).flat().map(B=>B.id));function De(){o.value=!1,a.value=""}const at=B=>{var I,j;if(document.getElementsByClassName("search-group")[0]){if(B.key=="ArrowUp"||B.key=="ArrowDown"){const E=ne.value.indexOf($.value);if(B.key=="ArrowUp"){const D=E==0?ne.value.length-1:E-1;$.value=ne.value[D]}if(B.key=="ArrowDown"){const D=E>ne.value.length-2?0:E+1;$.value=ne.value[D]}if(E<5){const D=N.value.getElementsByClassName("VPPluginSearch-search-group")[0];D==null||D.scrollIntoView(!0)}else(I=document.getElementById(ne.value[$.value]))==null||I.scrollIntoView(!0);Ie()}B.key=="Enter"&&w.go(e.site.value.base+((j=N.value.getElementsByClassName("link-focused")[0].getAttribute("href"))==null?void 0:j.replace(r.value,"")))}};return(B,I)=>{const j=Z("ClientOnly");return i(),h("div",la,[y(j,null,{default:f(()=>[(i(),P(gt,{to:"body"},[Fe(d("div",{class:"VPPluginSearch-modal-back",onClick:I[2]||(I[2]=E=>o.value=!1),onKeydown:at},[d("div",{class:"VPPluginSearch-modal",onClick:I[1]||(I[1]=Xe(()=>{},["stop"])),ref_key:"modal",ref:N},[d("form",ca,[I[4]||(I[4]=d("label",{class:"DocSearch-MagnifierLabel",for:"docsearch-input",id:"docsearch-label"},[d("svg",{width:"20",height:"20",class:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},[d("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),Fe(d("input",{class:"DocSearch-Input","aria-autocomplete":"both","aria-labelledby":"docsearch-label",id:"docsearch-input",autocomplete:"off",autocorrect:"off",autocapitalize:"off",enterkeyhint:"search",spellcheck:"false",autofocus:"true","onUpdate:modelValue":I[0]||(I[0]=E=>a.value=E),placeholder:b.value,maxlength:"64",type:"search",ref_key:"input",ref:l},null,8,ua),[[_t,a.value]])]),d("div",da,[(i(!0),h(H,null,z(X.value,(E,D)=>(i(),h("div",{class:"search-group",key:D},[d("span",pa,C(D?D.toString()[0].toUpperCase()+D.toString().slice(1):"Home"),1),(i(!0),h(H,null,z(E,(U,se)=>(i(),h("a",{href:r.value+U.link,key:U.id,onClick:De,onMouseenter:re=>$.value=U.id,class:A({"link-focused":$.value==U.id}),id:se.toString()},[d("div",fa,[d("span",va,C(U.link.includes("#")?"#":"▤"),1),d("div",ma,[d("h3",null,C(U.title),1),d("p",null,[d("div",{innerHTML:U.preview},null,8,_a)])]),I[5]||(I[5]=d("span",{class:"VPPluginSearch-search-item-icon"},"↪",-1))])],42,ha))),128))]))),128))]),I[6]||(I[6]=d("img",{class:"VPPluginSearch-flex-logo",src:zo,alt:"flex logo"},null,-1))],512)],544),[[mt,o.value]])]))]),_:1}),d("div",{id:"docsearch",onClick:I[3]||(I[3]=E=>R())},[d("button",ga,[d("span",ka,[I[7]||(I[7]=d("svg",{width:"20",height:"20",class:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},[d("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),d("span",ba,C(L.value),1)]),d("span",$a,[d("span",{class:"DocSearch-Button-Key",ref_key:"metaKey",ref:s},"Meta",512),I[8]||(I[8]=d("span",{class:"DocSearch-Button-Key"},"K",-1))])])])])}}}),Pa=k({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=M();return(t,s)=>c(e).socialLinks?(i(),P(Oe,{key:0,class:"VPNavBarSocialLinks",links:c(e).socialLinks},null,8,["links"])):g("",!0)}}),La=V(Pa,[["__scopeId","data-v-08b35e6f"]]),Va=["href","rel","target"],Sa=["innerHTML"],Ta={key:2},wa=k({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=M(),{hasSidebar:s}=x(),{currentLang:o}=ae(),a=S(()=>{var u;return typeof t.value.logoLink=="string"?t.value.logoLink:(u=t.value.logoLink)==null?void 0:u.link}),r=S(()=>{var u;return typeof t.value.logoLink=="string"||(u=t.value.logoLink)==null?void 0:u.rel}),l=S(()=>{var u;return typeof t.value.logoLink=="string"||(u=t.value.logoLink)==null?void 0:u.target});return(u,v)=>(i(),h("div",{class:A(["VPNavBarTitle",{"has-sidebar":c(s)}])},[d("a",{class:"title",href:a.value??c(Ce)(c(o).link),rel:r.value,target:l.value},[p(u.$slots,"nav-bar-title-before",{},void 0,!0),c(t).logo?(i(),P(ue,{key:0,class:"logo",image:c(t).logo},null,8,["image"])):g("",!0),c(t).siteTitle?(i(),h("span",{key:1,innerHTML:c(t).siteTitle},null,8,Sa)):c(t).siteTitle===void 0?(i(),h("span",Ta,C(c(e).title),1)):g("",!0),p(u.$slots,"nav-bar-title-after",{},void 0,!0)],8,Va)],2))}}),Ma=V(wa,[["__scopeId","data-v-5622a072"]]),Na={class:"items"},Ia={class:"title"},Ca=k({__name:"VPNavBarTranslations",setup(n){const{theme:e}=M(),{localeLinks:t,currentLang:s}=ae({correspondingLink:!0});return(o,a)=>c(t).length&&c(s).label?(i(),P(Ee,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:c(e).langMenuLabel||"Change language"},{default:f(()=>[d("div",Na,[d("p",Ia,C(c(s).label),1),(i(!0),h(H,null,z(c(t),r=>(i(),P(ke,{key:r.link,item:r},null,8,["item"]))),128))])]),_:1},8,["label"])):g("",!0)}}),Aa=V(Ca,[["__scopeId","data-v-dac637f3"]]),Ha={class:"wrapper"},Ba={class:"container"},Ea={class:"title"},Oa={class:"content"},Da={class:"content-body"},Fa=k({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const e=n,{y:t}=xe(),{hasSidebar:s}=x(),{frontmatter:o}=M(),a=T({});return Ne(()=>{a.value={"has-sidebar":s.value,home:o.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(r,l)=>(i(),h("div",{class:A(["VPNavBar",a.value])},[d("div",Ha,[d("div",Ba,[d("div",Ea,[y(Ma,null,{"nav-bar-title-before":f(()=>[p(r.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[p(r.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",Oa,[d("div",Da,[p(r.$slots,"nav-bar-content-before",{},void 0,!0),y(ya,{class:"search"}),y(Fo,{class:"menu"}),y(Aa,{class:"translations"}),y(Ks,{class:"appearance"}),y(La,{class:"social-links"}),y(Mo,{class:"extra"}),p(r.$slots,"nav-bar-content-after",{},void 0,!0),y(Co,{class:"hamburger",active:r.isScreenOpen,onClick:l[0]||(l[0]=u=>r.$emit("toggle-screen"))},null,8,["active"])])])])]),l[1]||(l[1]=d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1))],2))}}),za=V(Fa,[["__scopeId","data-v-bb7529ee"]]),ja={key:0,class:"VPNavScreenAppearance"},Ua={class:"text"},qa=k({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=M();return(s,o)=>c(e).appearance&&c(e).appearance!=="force-dark"&&c(e).appearance!=="force-auto"?(i(),h("div",ja,[d("p",Ua,C(c(t).darkModeSwitchLabel||"Appearance"),1),y(He)])):g("",!0)}}),Ga=V(qa,[["__scopeId","data-v-774971f8"]]),Ra=["innerHTML"],Wa=k({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=_e("close-screen");return(t,s)=>(i(),P(K,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:c(e)},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,Ra)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Ka=V(Wa,[["__scopeId","data-v-29871565"]]),Ja=["innerHTML"],xa=k({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=_e("close-screen");return(t,s)=>(i(),P(K,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:c(e)},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,Ja)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),ot=V(xa,[["__scopeId","data-v-581896e9"]]),Xa={class:"VPNavScreenMenuGroupSection"},Ya={key:0,class:"title"},Qa=k({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(i(),h("div",Xa,[e.text?(i(),h("p",Ya,C(e.text),1)):g("",!0),(i(!0),h(H,null,z(e.items,s=>(i(),P(ot,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Za=V(Qa,[["__scopeId","data-v-836cddb8"]]),er=["aria-controls","aria-expanded"],tr=["innerHTML"],nr=["id"],sr={key:0,class:"item"},or={key:1,class:"item"},ar={key:2,class:"group"},rr=k({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=T(!1),s=S(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(a,r)=>(i(),h("div",{class:A(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:o},[d("span",{class:"button-text",innerHTML:a.text},null,8,tr),r[0]||(r[0]=d("span",{class:"vpi-plus button-icon"},null,-1))],8,er),d("div",{id:s.value,class:"items"},[(i(!0),h(H,null,z(a.items,l=>(i(),h(H,{key:JSON.stringify(l)},["link"in l?(i(),h("div",sr,[y(ot,{item:l},null,8,["item"])])):"component"in l?(i(),h("div",or,[(i(),P(W(l.component),Y({ref_for:!0},l.props,{"screen-menu":""}),null,16))])):(i(),h("div",ar,[y(Za,{text:l.text,items:l.items},null,8,["text","items"])]))],64))),128))],8,nr)],2))}}),ir=V(rr,[["__scopeId","data-v-a8d3502a"]]),lr={key:0,class:"VPNavScreenMenu"},cr=k({__name:"VPNavScreenMenu",setup(n){const{theme:e}=M();return(t,s)=>c(e).nav?(i(),h("nav",lr,[(i(!0),h(H,null,z(c(e).nav,o=>(i(),h(H,{key:JSON.stringify(o)},["link"in o?(i(),P(Ka,{key:0,item:o},null,8,["item"])):"component"in o?(i(),P(W(o.component),Y({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(i(),P(ir,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):g("",!0)}}),ur=k({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=M();return(t,s)=>c(e).socialLinks?(i(),P(Oe,{key:0,class:"VPNavScreenSocialLinks",links:c(e).socialLinks},null,8,["links"])):g("",!0)}}),dr={class:"list"},pr=k({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=ae({correspondingLink:!0}),s=T(!1);function o(){s.value=!s.value}return(a,r)=>c(e).length&&c(t).label?(i(),h("div",{key:0,class:A(["VPNavScreenTranslations",{open:s.value}])},[d("button",{class:"title",onClick:o},[r[0]||(r[0]=d("span",{class:"vpi-languages icon lang"},null,-1)),ee(" "+C(c(t).label)+" ",1),r[1]||(r[1]=d("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),d("ul",dr,[(i(!0),h(H,null,z(c(e),l=>(i(),h("li",{key:l.link,class:"item"},[y(K,{class:"link",href:l.link},{default:f(()=>[ee(C(l.text),1)]),_:2},1032,["href"])]))),128))])],2)):g("",!0)}}),hr=V(pr,[["__scopeId","data-v-0d43316b"]]),fr={class:"container"},vr=k({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=T(null),t=Ye(ge?document.body:null);return(s,o)=>(i(),P(we,{name:"fade",onEnter:o[0]||(o[0]=a=>t.value=!0),onAfterLeave:o[1]||(o[1]=a=>t.value=!1)},{default:f(()=>[s.open?(i(),h("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",fr,[p(s.$slots,"nav-screen-content-before",{},void 0,!0),y(cr,{class:"menu"}),y(hr,{class:"translations"}),y(Ga,{class:"appearance"}),y(ur,{class:"social-links"}),p(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):g("",!0)]),_:3}))}}),mr=V(vr,[["__scopeId","data-v-34fa79a7"]]),_r={key:0,class:"VPNav"},gr=k({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=Os(),{frontmatter:o}=M(),a=S(()=>o.value.navbar!==!1);return Qe("close-screen",t),fe(()=>{ge&&document.documentElement.classList.toggle("hide-nav",!a.value)}),(r,l)=>a.value?(i(),h("header",_r,[y(za,{"is-screen-open":c(e),onToggleScreen:c(s)},{"nav-bar-title-before":f(()=>[p(r.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[p(r.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[p(r.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[p(r.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),y(mr,{open:c(e)},{"nav-screen-content-before":f(()=>[p(r.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[p(r.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):g("",!0)}}),kr=V(gr,[["__scopeId","data-v-a46e73f0"]]),br=["role","tabindex"],$r={key:1,class:"items"},yr=k({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:s,isLink:o,isActiveLink:a,hasActiveLink:r,hasChildren:l,toggle:u}=zt(S(()=>e.item)),v=S(()=>l.value?"section":"div"),_=S(()=>o.value?"a":"div"),m=S(()=>l.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),L=S(()=>o.value?void 0:"button"),b=S(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":o.value},{"is-active":a.value},{"has-active":r.value}]);function $(w){"key"in w&&w.key!=="Enter"||!e.item.link&&u()}function N(){e.item.link&&u()}return(w,O)=>{const F=Z("VPSidebarItem",!0);return i(),P(W(v.value),{class:A(["VPSidebarItem",b.value])},{default:f(()=>[w.item.text?(i(),h("div",Y({key:0,class:"item",role:L.value},kt(w.item.items?{click:$,keydown:$}:{},!0),{tabindex:w.item.items&&0}),[O[1]||(O[1]=d("div",{class:"indicator"},null,-1)),w.item.link?(i(),P(K,{key:0,tag:_.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:f(()=>[(i(),P(W(m.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(i(),P(W(m.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(i(),h("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:N,onKeydown:bt(N,["enter"]),tabindex:"0"},O[0]||(O[0]=[d("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):g("",!0)],16,br)):g("",!0),w.item.items&&w.item.items.length?(i(),h("div",$r,[w.depth<5?(i(!0),h(H,{key:0},z(w.item.items,R=>(i(),P(F,{key:R.text,item:R,depth:w.depth+1},null,8,["item","depth"]))),128)):g("",!0)])):g("",!0)]),_:1},8,["class"])}}}),Pr=V(yr,[["__scopeId","data-v-2e0476bc"]]),Lr=k({__name:"VPSidebarGroup",props:{items:{}},setup(n){const e=T(!0);let t=null;return Q(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),$t(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,o)=>(i(!0),h(H,null,z(s.items,a=>(i(),h("div",{key:a.text,class:A(["group",{"no-transition":e.value}])},[y(Pr,{item:a,depth:0},null,8,["item"])],2))),128))}}),Vr=V(Lr,[["__scopeId","data-v-ec086cd5"]]),Sr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Tr=k({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const{sidebarGroups:e,hasSidebar:t}=x(),s=n,o=T(null),a=Ye(ge?document.body:null);J([s,o],()=>{var l;s.open?(a.value=!0,(l=o.value)==null||l.focus()):a.value=!1},{immediate:!0,flush:"post"});const r=T(0);return J(e,()=>{r.value+=1},{deep:!0}),(l,u)=>c(t)?(i(),h("aside",{key:0,class:A(["VPSidebar",{open:l.open}]),ref_key:"navEl",ref:o,onClick:u[0]||(u[0]=Xe(()=>{},["stop"]))},[u[2]||(u[2]=d("div",{class:"curtain"},null,-1)),d("nav",Sr,[u[1]||(u[1]=d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),p(l.$slots,"sidebar-nav-before",{},void 0,!0),(i(),P(Vr,{items:c(e),key:r.value},null,8,["items"])),p(l.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):g("",!0)}}),wr=V(Tr,[["__scopeId","data-v-12a40e3d"]]),Mr=k({__name:"VPSkipLink",setup(n){const{theme:e}=M(),t=me(),s=T();J(()=>t.path,()=>s.value.focus());function o({target:a}){const r=document.getElementById(decodeURIComponent(a.hash).slice(1));if(r){const l=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",l)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",l),r.focus(),window.scrollTo(0,0)}}return(a,r)=>(i(),h(H,null,[d("span",{ref_key:"backToTop",ref:s,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o},C(c(e).skipToContentLabel||"Skip to content"),1)],64))}}),Nr=V(Mr,[["__scopeId","data-v-17ad389b"]]),Ir=k({__name:"Layout",setup(n){const{isOpen:e,open:t,close:s}=x(),o=me();J(()=>o.path,s),Ft(e,s);const{frontmatter:a}=M(),r=yt(),l=S(()=>!!r["home-hero-image"]);return Qe("hero-image-slot-exists",l),(u,v)=>{const _=Z("Content");return c(a).layout!==!1?(i(),h("div",{key:0,class:A(["Layout",c(a).pageClass])},[p(u.$slots,"layout-top",{},void 0,!0),y(Nr),y(St,{class:"backdrop",show:c(e),onClick:c(s)},null,8,["show","onClick"]),y(kr,null,{"nav-bar-title-before":f(()=>[p(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[p(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[p(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[p(u.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[p(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[p(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),y(Es,{open:c(e),onOpenMenu:c(t)},null,8,["open","onOpenMenu"]),y(wr,{open:c(e)},{"sidebar-nav-before":f(()=>[p(u.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[p(u.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),y(bs,null,{"page-top":f(()=>[p(u.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[p(u.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[p(u.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[p(u.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[p(u.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[p(u.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[p(u.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[p(u.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[p(u.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[p(u.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[p(u.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[p(u.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[p(u.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[p(u.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[p(u.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[p(u.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[p(u.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[p(u.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[p(u.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[p(u.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[p(u.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[p(u.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[p(u.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),y(Vs),p(u.$slots,"layout-bottom",{},void 0,!0)],2)):(i(),P(_,{key:1}))}}}),Cr=V(Ir,[["__scopeId","data-v-c4daae71"]]),Hr={Layout:Cr,enhanceApp:({app:n})=>{n.component("Badge",Pt)}};export{Hr as t}; diff --git a/docs/document/assets/chunks/virtual_search-data.BMtqzJwt.js b/docs/document/assets/chunks/virtual_search-data.BMtqzJwt.js deleted file mode 100644 index afa25e98f..000000000 --- a/docs/document/assets/chunks/virtual_search-data.BMtqzJwt.js +++ /dev/null @@ -1,1414 +0,0 @@ -const e={map:'[{"高级属性":["0.0"],"option":["0.1","1.12","10.1","11.12","20.9","25.9","26.17"],"template":["0.2","10.2"],"events":["0.3","10.3","21.12"],"storage":["0.4","10.4"],"icons":["0.5","10.5","24.39","29.39"],"i18n":["0.6","10.6","24.43","29.43"],"notice":["0.7","3.4","10.7","13.4"],"layers":["0.8","10.8","18.0","24.29","29.29"],"controls":["0.9","10.9","17.0","24.32","29.32"],"contextmenu":["0.10","2.37","3.3","10.10","12.37","13.3","24.31","29.31"],"subtitle":["0.11","2.36","10.11","12.36","24.37","29.37"],"info":["0.12","2.32","3.22","10.12","12.32","13.22"],"loading":["0.13","2.34","10.13","12.34","21.9"],"hotkey":["0.14","2.5","10.14","12.5","24.19","29.19"],"mask":["0.15","2.35","10.15","12.35"],"setting":["0.16","2.39","3.5","3.6","3.7","10.16","12.39","13.5","13.6","13.7","24.18","29.18"],"plugins":["0.17","10.17","24.35","29.35"],"静态属性":["1.0"],"instances":["1.1","11.1"],"version":["1.2","11.2"],"env":["1.3","11.3"],"build":["1.4","11.4"],"config":["1.5","11.5","26.13"],"utils":["1.6","11.6"],"scheme":["1.7","11.7"],"emitter":["1.8","11.8"],"validator":["1.9","11.9"],"kindof":["1.10","11.10"],"html":["1.11","11.11"],"实例事件":["2.0"],"ready":["2.1","12.1"],"restart":["2.2","12.2"],"pause":["2.3","5.2","12.3","15.2"],"play":["2.4","5.1","12.4","15.1"],"destroy":["2.6","5.4","12.6","15.4"],"focus":["2.7","12.7"],"blur":["2.8","12.8"],"dblclick":["2.9","12.9"],"click":["2.10","12.10"],"error":["2.11","12.11"],"hover":["2.12","12.12"],"mousemove":["2.13","12.13"],"resize":["2.14","3.8","12.14","13.8"],"view":["2.15","12.15"],"lock":["2.16","12.16","24.44","29.44"],"aspectratio":["2.17","5.32","12.17","15.32","24.16","29.16"],"autoheight":["2.18","5.33","12.18","15.33"],"autosize":["2.19","5.27","12.19","15.27","24.11","29.11"],"flip":["2.20","3.30","5.30","12.20","13.30","15.30","24.14","29.14"],"fullscreen":["2.21","3.31","5.20","12.21","13.31","15.20","24.23","29.23"],"fullscreenerror":["2.22","12.22"],"fullscreenweb":["2.23","5.21","12.23","15.21","24.24","29.24"],"mini":["2.24","5.24","12.24","15.24"],"pip":["2.25","5.22","12.25","15.22","24.20","29.20"],"screenshot":["2.26","5.17","12.26","15.17","24.17","29.17"],"seek":["2.27","3.27","5.6","12.27","13.27","15.6"],"subtitleoffset":["2.28","5.47","12.28","15.47","24.25","29.25"],"subtitlebeforeupdate":["2.29","12.29"],"subtitleafterupdate":["2.30","12.30"],"subtitleload":["2.31","12.31"],"layer":["2.33","12.33"],"control":["2.38","3.16","12.38","13.16"],"muted":["2.40","5.14","12.40","15.14","24.9","29.9"],"keydown":["2.41","12.41"],"video":["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","2.61","2.62","5.43","12.42","12.43","12.44","12.45","12.46","12.47","12.48","12.49","12.50","12.51","12.52","12.53","12.54","12.55","12.56","12.57","12.58","12.59","12.60","12.61","12.62","15.43"],"全局属性":["3.0"],"debug":["3.1","13.1"],"style":["3.2","13.2"],"scroll":["3.9","3.10","13.9","13.10"],"auto":["3.11","3.12","3.13","3.21","13.11","13.12","13.13","13.21"],"reconnect":["3.14","3.15","13.14","13.15"],"dbclick":["3.17","3.18","13.17","13.18"],"mobile":["3.19","3.20","13.19","13.20"],"fast":["3.23","3.24","13.23","13.24"],"touch":["3.25","13.25"],"volume":["3.26","5.9","13.26","15.9","24.7","29.7"],"playback":["3.28","13.28"],"aspect":["3.29","13.29"],"log":["3.32","13.32"],"use":["3.33","13.33"],"remove":["3.34","13.34","19.8"],"编写插件":["4.0"],"实例属性":["5.0"],"toggle":["5.3","15.3"],"reset":["5.5","15.5","26.15"],"forward":["5.7","15.7"],"backward":["5.8","15.8"],"url":["5.10","15.10","24.2","29.2"],"switch":["5.11","15.11"],"switchurl":["5.12","15.12"],"switchquality":["5.13","15.13"],"currenttime":["5.15","15.15"],"duration":["5.16","15.16"],"getdataurl":["5.18","15.18"],"getbloburl":["5.19","15.19"],"poster":["5.23","15.23","24.5","29.5"],"playing":["5.25","15.25"],"state":["5.26","15.26"],"rect":["5.28","15.28"],"bottom":["5.29","15.29"],"playbackrate":["5.31","15.31","24.15","29.15"],"attr":["5.34","15.34"],"type":["5.35","15.35","24.40","29.40"],"theme":["5.36","15.36","24.6","29.6"],"airplay":["5.37","15.37","24.49","29.49"],"loaded":["5.38","15.38"],"loadedtime":["5.39","15.39"],"played":["5.40","15.40"],"proxy":["5.41","15.41","24.51","29.51"],"query":["5.42","15.42"],"cssvar":["5.44","15.44","24.50","29.50"],"quality":["5.45","15.45","24.33","29.33"],"thumbnails":["5.46","15.46","24.36","29.36"],"右键菜单":["6.0"],"配置":["6.1","7.1","8.1","27.3"],"创建":["6.2","7.2","8.2","9.2","9.3","9.4","9.5","9.6"],"添加":["6.3","7.3","8.3","9.7"],"删除":["6.4","7.4","8.4","9.8"],"更新":["6.5","7.5","8.5","9.9"],"控制器":["7.0"],"业务层":["8.0"],"设置面板":["9.0"],"内置":["9.1"],"advanced":["10.0"],"static":["11.0"],"instance":["12.0","15.0"],"global":["13.0"],"writing":["14.0"],"context":["16.0"],"configuration":["16.1","17.1","18.1","22.3"],"creation":["16.2","17.2","18.2"],"addition":["16.3","18.3"],"deletion":["16.4"],"update":["16.5","18.5","19.9"],"adding":["17.3","23.3"],"removal":["17.4","18.4"],"updating":["17.5"],"settings":["19.0","24.30","29.30"],"built":["19.1"],"create":["19.2","19.3","19.4","19.5","19.6"],"add":["19.7"],"installation":["20.0","20.1","21.2","22.1"],"cdn":["20.2","21.3","25.2","26.3"],"usage":["20.3"],"vue":["20.4","20.7","25.4","25.7"],"react":["20.5","20.8","25.5","25.8"],"typescript":["20.6","21.13","22.6","25.6","26.21","27.6"],"javascript":["20.10","25.10"],"legacy":["20.11"],"ecmascript":["20.12","25.12"],"custom":["20.13"],"danmuku":["21.0"],"demo":["21.1"],"comment":["21.4"],"all":["21.5"],"array":["21.6"],"lifecycle":["21.7"],"methods":["21.8"],"external":["21.10"],"heatmap":["21.11"],"hls":["22.0","27.0"],"complete":["22.2"],"refresh":["22.4"],"sdk":["22.5","27.5"],"validation":["22.7"],"language":["23.0"],"default":["23.1"],"importing":["23.2"],"modifying":["23.4"],"basic":["24.0"],"container":["24.1","29.1"],"id":["24.3","29.3"],"onready":["24.4","29.4"],"islive":["24.8","29.8"],"autoplay":["24.10","29.10"],"automini":["24.12","29.12"],"loop":["24.13","29.13"],"mutex":["24.21","29.21"],"backdrop":["24.22","29.22"],"miniprogressbar":["24.26","29.26"],"usessr":["24.27","29.27"],"playsinline":["24.28","29.28"],"highlight":["24.34","29.34"],"morevideoattr":["24.38","29.38"],"customtype":["24.41","29.41"],"lang":["24.42","29.42"],"gesture":["24.45","29.45"],"fastforward":["24.46","29.46"],"autoplayback":["24.47","29.47"],"autoorientation":["24.48","29.48"],"安装使用":["25.0"],"安装":["25.1","26.2","27.1"],"使用":["25.3"],"古老的浏览器":["25.11"],"自定义":["25.13"],"弹幕库":["26.0"],"演示":["26.1"],"弹幕结构":["26.4"],"全部选项":["26.5"],"生命周期":["26.6"],"使用弹幕数组":["26.7"],"使用弹幕":["26.8"],"使用异步返回":["26.9"],"hide":["26.10"],"ishide":["26.11"],"emit":["26.12"],"load":["26.14"],"mount":["26.16"],"事件":["26.18"],"isstop":["26.19"],"热力图":["26.20"],"完整示例":["27.2"],"外部修改后的刷新":["27.4"],"验证范围":["27.7"],"语言设置":["28.0"],"默认语言":["28.1"],"导入语言":["28.2"],"新增语言":["28.3"],"修改语言":["28.4"],"基础选项":["29.0"]},{"0":["3.28","5.38","5.40","21.13","24.7","26.21","29.7"],"1":["22.7","25.11","26.5","27.2"],"3":["3.29","21.13","25.9","26.21"],"4":["3.29","28.3"],"5":["3.28","8.2","18.2","21.13","22.7","26.5","26.21","27.2"],"7":["8.3","18.3","24.7"],"9":["28.3"],"10":["26.5"],"15":["4.0"],"17":["22.7","27.2"],"21":["8.5","9.9","18.5","19.9"],"26":["7.5","17.5"],"27":["9.9","19.9"],"75":["3.28"],"250":["3.5"],"958":["26.20"],"这里的":["0.0","1.0","3.0","5.0"],"播放器的选项":["0.1"],"div":["0.1","0.2","0.4","0.5","0.7","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","2.40","3.3","4.0","5.1","5.2","5.3","5.16","5.28","5.33","5.37","5.45","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.2","8.3","8.4","8.5","9.4","9.7","9.8","9.9","10.1","10.2","14.0","16.2","16.3","16.4","16.5","17.2","17.3","17.4","17.5","18.2","18.3","18.4","18.5","19.4","19.7","19.8","19.9","22.2","24.2","24.29","24.30","26.7","26.10","26.11","26.15","27.2","29.2","29.29","29.30","29.31","29.32"],"classname":["0.1","0.2","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","2.40","4.0","5.45","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.2","8.3","8.4","8.5","9.4","9.7","9.8","9.9","10.2","14.0","16.2","16.3","16.4","16.5","17.2","17.3","17.4","17.5","18.2","18.3","18.4","18.5","19.4","19.7","19.8","19.9","22.2","24.2","24.29","24.30","26.7","26.11","26.15","27.2","29.2","29.29","29.30"],"run":["0.1","0.2","2.0","2.2","2.6","2.11","2.12","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","2.31","2.39","4.0","5.45","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.2","8.3","8.4","8.5","9.4","9.7","9.8","9.9","14.0","16.2","16.3","16.4","16.5","17.2","17.3","17.4","17.5","18.2","18.3","18.4","18.5","19.4","19.7","19.8","19.9","21.7","22.2","24.2","24.29","26.7","26.11","27.2","29.2","29.29","29.30"],"管理播放器所有的":["0.2","0.3","0.5"],"dom":["0.2","0.3","5.41","5.42","9.2","9.3","9.5","9.6","10.2","10.3","15.41","15.42","19.2","19.3","19.5","19.6","24.1","29.1"],"元素":["0.2","9.5","9.6"],"事件":["0.3","4.0"],"实质上是代理了":["0.3"],"addeventlistener":["0.3","5.41","10.3","15.41"],"和":["0.3","4.0","5.13","26.8","26.10","29.4"],"removeeventlistener":["0.3","10.3"],"当使用以下方法来处理事件":["0.3"],"播放器销毁时也会自动销毁该事件":["0.3"],"管理播放器的本地存储":["0.4"],"name":["0.4","4.0","10.4","17.1","21.12","22.6","26.18"],"属性用于设置缓存的":["0.4"],"key":["0.4","10.4"],"set":["0.4","10.4","15.9","15.11","15.12","15.44","15.45","21.11","24.36","24.37"],"方法用于设置缓存":["0.4"],"get":["0.4","0.6","10.6","15.34","15.44"],"方法用于获取缓存":["0.4"],"del":["0.4"],"方法用于删除缓存":["0.4"],"clear":["0.4"],"方法用于清空缓存":["0.4"],"svg":["0.5","10.5"],"图标":["0.5"],"管理播放器的":["0.6"],"方法用于获取":["0.6"],"的值":["0.6"],"update":["0.6","0.8","0.9","0.10","0.16"],"管理播放器的提示语":["0.7"],"只有一个":["0.7"],"show":["0.7","0.13","0.15","10.13","10.15","22.3","26.10"],"属性用于显示提示语":["0.7"],"管理播放器的层":["0.8"],"add":["0.8","0.9","0.10","0.14","0.16","0.17","10.8","10.9","10.10","10.14","10.16","22.0","22.1","27.1"],"方法用于动态添加层":["0.8"],"remove":["0.8","0.9","0.10","0.14","0.16","21.12"],"方法用于动态删除层":["0.8"],"管理播放器的控制器":["0.9"],"方法用于动态添加控制器":["0.9"],"方法用于动态删除控制器":["0.9"],"管理播放器的右键菜单":["0.10"],"方法用于动态添加菜单":["0.10"],"方法用于动态删除菜单":["0.10"],"方法用于动态更新菜单":["0.10"],"管理播放器的字幕功能":["0.11"],"url":["0.11","5.12","10.11","15.12","15.18","15.19","22.2"],"属性设置和返回当前字幕地址":["0.11"],"style":["0.11"],"方法设置当前字幕的样式":["0.11"],"switch":["0.11"],"管理播放器的信息面板":["0.12"],"常用于查看当前播放器和视频的运行状态":["0.12"],"例如版本号":["0.12"],"分辨率":["0.12"],"时长等":["0.12"],"管理播放器的加载层":["0.13"],"属性用于设置是否显示加载层":["0.13"],"toggle":["0.13","0.15","19.5"],"管理播放器的快捷键功能":["0.14"],"方法用于添加快捷键":["0.14"],"方法用于删除快捷键":["0.14"],"管理播放器的遮罩层":["0.15"],"属性用于设置是否显示遮罩层":["0.15"],"管理播放器的设置面板":["0.16"],"方法用于动态添加设置项":["0.16"],"方法用于动态删除设置项":["0.16"],"方法用于动态更新设置项":["0.16"],"管理播放器的插件功能":["0.17"],"只有一个方法":["0.17"],"用于动态添加插件":["0.17"],"返回全部播放器实例的数组":["1.1"],"假如你想同时管理多个播放器的时候":["1.1"],"可以用到该属性":["1.1"],"返回播放器的版本信息":["1.2"],"返回播放器的环境变量":["1.3"],"返回播放器的打包时间":["1.4"],"返回视频的默认配置":["1.5"],"返回播放器的工具函数集合":["1.6"],"返回播放器选项的校验方案":["1.7"],"返回事件分发器的构造函数":["1.8"],"返回选项的校验函数":["1.9"],"返回类型检测的函数工具":["1.10"],"返回播放器所需的":["1.11"],"返回播放器的默认选项":["1.12"],"播放器的事件分为两种":["2.0"],"一种视频的":["2.0"],"原生事件":["2.0"],"前缀":["2.0"],"video":["2.0","12.0","13.29","13.30","13.34","15.3","15.5","15.11","15.12","15.13","15.16","15.38","15.40","24.2","24.5","24.37","24.40","24.41"],"另外一种是":["2.0"],"自定义事件":["2.0"],"监听事件":["2.0"],"code":["2.0","2.2","2.28","4.0","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.2","8.3","8.4","8.5","9.4","9.7","9.8","9.9","14.0","16.2","16.3","16.4","16.5","17.2","17.3","17.4","17.5","18.2","18.3","18.4","18.5","19.4","19.7","19.8","19.9","20.1","20.2","20.3","20.4","20.5","21.2","21.3","22.2","24.2","24.29","25.1","25.2","25.3","25.4","25.5","26.2","26.3","26.7","26.11","27.2","29.2","29.29"],"js":["2.0","4.0","6.5","7.2","7.3","7.5","8.2","8.3","8.5","9.4","9.8","9.9","16.5","17.2","17.3","17.5","18.2","18.3","18.5","19.4","19.8","19.9","20.4","20.5","20.7","20.8","20.10","20.11","22.1","22.7","23.2","23.4","25.4","25.5","25.7","25.8","25.10","25.11","26.5","27.2","28.2","28.3","28.4"],"当播放器首次可以播放器时触发":["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","3.19","3.20","3.21","3.23","3.24","3.25"],"当锁定的状态发生变化时触发":["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"],"当静音的状态变化时触发":["2.40"],"监听来自":["2.41"],"document":["2.41"],"的":["2.41"],"canplay":["2.42","12.42"],"canplaythrough":["2.43","12.43"],"complete":["2.44","12.44"],"durationchange":["2.45","12.45"],"emptied":["2.46","12.46"],"ended":["2.47","12.47"],"error":["2.48","12.48"],"loadeddata":["2.49","12.49"],"loadedmetadata":["2.50","12.50"],"pause":["2.51","12.51"],"play":["2.52","3.19","3.20","12.52","13.19","13.20","15.3"],"playing":["2.53","12.53"],"progress":["2.54","12.54","24.36"],"ratechange":["2.55","12.55"],"seeked":["2.56","12.56"],"seeking":["2.57","12.57"],"stalled":["2.58","12.58"],"suspend":["2.59","12.59"],"timeupdate":["2.60","12.60"],"volumechange":["2.61","12.61"],"waiting":["2.62","12.62"],"是否开始":["3.1"],"模式":["3.1"],"返回播放器样式文本":["3.2"],"是否开启右键菜单":["3.3"],"默认开启":["3.3"],"time":["3.4","3.8","3.9","3.14","3.15","3.16","3.17","3.21","3.22","3.24","13.4","13.8","13.9","13.14","13.15","13.16","13.17","13.21","13.22","13.24","24.25"],"提示信息的显示时长":["3.4"],"单位为毫秒":["3.4","3.8","3.9","3.13","3.16","3.17","3.22"],"width":["3.5","3.6","5.29","9.3","13.5","13.6","15.29","15.33"],"设置面板的默认宽度":["3.5"],"单位为像素":["3.5","3.6","3.7","3.10"],"默认为":["3.5","3.6","3.7","3.11","3.17","3.26","3.28","3.29","3.30","3.32","3.33"],"item":["3.6","3.7","13.6","13.7","19.6"],"设置面板的设置项的默认宽度":["3.6"],"height":["3.7","5.29","13.7","15.29","22.6"],"设置面板的设置项的默认高度":["3.7"],"事件的节流时间":["3.8","3.9"],"gap":["3.10","13.10"],"view":["3.10","10.12"],"事件的边界容差距离":["3.10"],"playback":["3.11","3.12","3.13","12.53","13.11","13.12","13.13","24.47"],"max":["3.11","3.14","13.11","13.14"],"自动回放功能的最大记录数":["3.11"],"min":["3.12","13.12","27.2"],"自动回放功能的最小记录时长":["3.12"],"单位为秒":["3.12","3.27","5.39"],"timeout":["3.13","13.13"],"自动回放功能的隐藏延迟时长":["3.13"],"发生连接错误时":["3.14","3.15"],"自动连接的最大次数":["3.14"],"sleep":["3.15","13.15"],"自动连接的延迟时间":["3.15"],"hide":["3.16","13.13","13.16"],"底部控制栏的自动隐藏的延迟时间":["3.16"],"双击事件的延迟事件":["3.17"],"fullscreen":["3.18","12.22","13.18"],"在桌面端":["3.18"],"是否双击切换全屏":["3.18"],"dbclick":["3.19","13.19"],"是否双击切换播放暂停":["3.19"],"click":["3.20","13.20"],"是否单击切换播放暂停":["3.20"],"orientation":["3.21","13.21"],"自动旋屏的延迟时间":["3.21"],"loop":["3.22","13.22"],"信息面板的刷新时间":["3.22"],"forward":["3.23","3.24","13.23","13.24"],"value":["3.23","13.23","21.8"],"长按加速的速率倍数":["3.23"],"长按加速的延迟时间":["3.24"],"move":["3.25","13.25"],"ratio":["3.25","3.29","13.25","13.29"],"左右滑动进度的速率倍数":["3.25"],"step":["3.26","3.27","13.26","13.27"],"快捷键调节音量的幅度比例":["3.26"],"快捷键调节播放进度的幅度":["3.27"],"rate":["3.28","13.28"],"内置播放速率的列表":["3.28"],"内置视频长宽比的列表":["3.29"],"default":["3.29","13.5","13.6","13.7","22.3","22.6","24.1","24.2","24.3","24.4","24.5","24.6","24.7","24.8","24.9","24.10","24.11","24.12","24.13","24.14","24.15","24.16","24.17","24.18","24.19","24.20","24.21","24.22","24.23","24.24","24.25","24.26","24.27","24.28","24.29","24.30","24.31","24.32","24.33","24.34","24.35","24.36","24.37","24.38","24.39","24.40","24.41","24.42","24.43","24.44","24.45","24.46","24.47","24.48","24.49","24.50","24.51","29.1","29.2","29.3","29.4","29.5","29.6","29.7","29.8","29.9","29.10","29.11","29.12","29.13","29.14","29.15","29.16","29.17","29.18","29.19","29.20","29.21","29.22","29.23","29.24","29.25","29.26","29.27","29.28","29.29","29.30","29.31","29.32","29.33","29.34","29.35","29.36","29.37","29.38","29.39","29.40","29.41","29.42","29.43","29.44","29.45","29.46","29.47","29.48","29.49","29.50","29.51"],"内置视频翻转的列表":["3.30"],"normal":["3.30"],"horizontal":["3.30"],"vertical":["3.30"],"web":["3.31","13.31"],"in":["3.31","13.28","13.29","13.30","13.31","19.1","20.10","21.11","22.2"],"body":["3.31","13.31"],"网页全屏时":["3.31"],"version":["3.32","13.32"],"设置是否打印播放器版本":["3.32"],"raf":["3.33","13.33"],"设置是否使用":["3.33"],"requestanimationframe":["3.33"],"src":["3.34","5.5","13.34","23.2","28.2"],"when":["3.34","10.3","12.1","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.28","12.31","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","13.34","15.33","22.4"],"destroy":["3.34","13.34"],"在销毁播放器时":["3.34"],"是否同时移除视频的":["3.34"],"但你已经知道播放器的":["4.0"],"属性":["4.0","6.1","7.1","8.1","9.2","9.3","9.5","9.6","29.33","29.34","29.36","29.37"],"方法":["4.0"],"后":["4.0"],"再编写插件是非常简单的事":["4.0"],"可以在实例化的时候加载插件的函数":["4.0"],"function":["4.0","5.1","5.2","5.3","5.4","5.5","5.12","5.13","5.17","5.18","5.19","5.27","5.33","5.34","5.37","5.41","5.42","5.44","9.3","14.0","15.1","15.2","15.3","15.4","15.5","15.12","15.13","15.17","15.18","15.19","15.27","15.33","15.34","15.37","15.41","15.42","15.44","24.4","24.51","29.4","29.51"],"myplugin":["4.0"],"art":["4.0","5.12","7.2","15.12","17.2","21.8","21.12","26.18","26.19"],"console":["4.0"],"info":["4.0"],"return":["4.0","21.8"],"something":["4.0"],"type":["5.1","5.2","5.3","5.4","5.5","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.15","5.16","5.17","5.18","5.19","5.20","5.21","5.22","5.23","5.24","5.25","5.26","5.27","5.28","5.30","5.31","5.32","5.33","5.34","5.36","5.37","5.38","5.39","5.40","5.41","5.42","5.43","5.44","5.45","5.46","5.47","15.1","15.2","15.3","15.4","15.5","15.6","15.7","15.8","15.9","15.10","15.11","15.12","15.13","15.14","15.15","15.16","15.17","15.18","15.19","15.20","15.21","15.22","15.23","15.24","15.25","15.26","15.27","15.28","15.29","15.30","15.31","15.32","15.33","15.34","15.36","15.37","15.38","15.39","15.40","15.41","15.42","15.43","15.44","15.45","15.46","15.47","16.1","17.1","18.1","19.2","19.3","19.5","19.6","20.10","24.1","24.2","24.3","24.4","24.5","24.6","24.7","24.8","24.9","24.10","24.11","24.12","24.13","24.14","24.15","24.16","24.17","24.18","24.19","24.20","24.21","24.22","24.23","24.24","24.25","24.26","24.27","24.28","24.29","24.30","24.31","24.32","24.33","24.34","24.35","24.36","24.37","24.38","24.39","24.41","24.42","24.43","24.44","24.45","24.46","24.47","24.48","24.49","24.50","24.51","29.1","29.2","29.3","29.4","29.5","29.6","29.7","29.8","29.9","29.10","29.11","29.12","29.13","29.14","29.15","29.16","29.17","29.18","29.19","29.20","29.21","29.22","29.23","29.24","29.25","29.26","29.27","29.28","29.29","29.30","29.31","29.32","29.33","29.34","29.35","29.36","29.37","29.38","29.39","29.41","29.42","29.43","29.44","29.45","29.46","29.47","29.48","29.49","29.50","29.51"],"播放视频":["5.1"],"暂停视频":["5.2"],"切换视频的播放和暂停":["5.3"],"parameter":["5.4","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.15","5.20","5.21","5.22","5.23","5.24","5.25","5.26","5.30","5.31","5.32","5.34","5.35","5.36","5.45","5.46","5.47","15.4","15.6","15.7","15.8","15.9","15.10","15.11","15.12","15.13","15.14","15.15","15.20","15.21","15.22","15.23","15.24","15.25","15.26","15.30","15.31","15.32","15.34","15.35","15.36","15.45","15.46","15.47","24.4"],"boolean":["5.4","5.14","5.20","5.21","5.22","5.25","7.1","15.4","15.14","15.20","15.21","15.22","15.24","15.25","16.1","17.1","18.1","24.8","24.9","24.10","24.11","24.12","24.13","24.14","24.15","24.16","24.17","24.18","24.19","24.20","24.21","24.22","24.23","24.24","24.25","24.26","24.27","24.28","24.44","24.45","24.46","24.47","24.48","24.49","29.8","29.9","29.10","29.11","29.12","29.13","29.14","29.15","29.16","29.17","29.18","29.19","29.20","29.21","29.22","29.23","29.24","29.25","29.26","29.27","29.28","29.44","29.45","29.46","29.47","29.48","29.49"],"重置播放器的视频元素":["5.5"],"会移除当前":["5.5"],"并调用一次":["5.5"],"setter":["5.6","5.7","5.8","5.9","5.10","5.11","5.14","5.15","5.20","5.21","5.22","5.23","5.24","5.26","5.30","5.31","5.32","5.35","5.36","5.45","5.46","5.47","15.6","15.7","15.8","15.9","15.10","15.11","15.14","15.15","15.20","15.21","15.22","15.23","15.24","15.26","15.30","15.31","15.32","15.35","15.36","15.45","15.46","15.47"],"number":["5.6","5.7","5.8","5.9","5.15","5.31","13.14","15.6","15.7","15.8","15.9","15.15","15.31","15.47","23.0","24.7","29.7"],"getter":["5.9","5.10","5.14","5.15","5.16","5.20","5.21","5.22","5.23","5.24","5.25","5.26","5.28","5.30","5.31","5.32","5.35","5.36","5.38","5.39","5.40","5.46","5.47","15.9","15.10","15.14","15.15","15.16","15.20","15.21","15.22","15.23","15.24","15.25","15.26","15.28","15.29","15.30","15.31","15.32","15.35","15.36","15.38","15.39","15.40","15.46","15.47"],"string":["5.11","5.12","5.13","5.23","5.26","5.30","5.32","5.34","5.35","5.36","9.2","9.3","9.5","9.6","15.10","15.11","15.12","15.13","15.23","15.26","15.30","15.32","15.34","15.35","15.36","17.1","19.2","19.3","19.5","19.6","24.1","24.2","24.3","24.5","24.6","24.40","24.42","29.1","29.2","29.3","29.5","29.6","29.40","29.42"],"设置视频地址":["5.11","5.12"],"设置时和":["5.11","5.12"],"设置视频画质地址":["5.13"],"获取视频时长":["5.16"],"下载当前视频帧的截图":["5.17"],"可选参数为截图名字":["5.17"],"获取当前视频帧的截图的":["5.18","5.19"],"base64":["5.18","15.18"],"地址":["5.18","5.19"],"blob":["5.19","15.19"],"设置和获取视频海报":["5.23"],"获取或设置播放器当前状态":["5.26"],"设置视频是否自适应尺寸":["5.27"],"获取播放器的尺寸和坐标信息":["5.28"],"top":["5.29","15.29"],"left":["5.29","15.29"],"right":["5.29","15.29"],"x":["5.29","15.29"],"y":["5.29","15.29"],"当容器只有宽度":["5.33"],"该属性可以自动计算出并设置视频的高度":["5.33"],"动态获取和设置":["5.34"],"开启隔空播放":["5.37"],"视频缓存的比例":["5.38"],"范围是":["5.38","5.40"],"已缓存的媒体时长":["5.39"],"视频播放的比例":["5.40"],"事件的代理函数":["5.41"],"实质上代理了":["5.41"],"的查询函数":["5.42"],"element":["5.43","9.2","9.3","9.5","9.6","15.5","15.43","19.2","19.3","19.5","19.6","21.10","24.1","29.1"],"快捷返回播放器的":["5.43"],"动态获取或设置":["5.44"],"css":["5.44"],"变量":["5.44","25.10"],"array":["5.45","9.3","11.1","15.45","19.3","24.29","24.30","24.31","24.32","24.33","24.34","24.35","29.29","29.30","29.31","29.32","29.33","29.34","29.35"],"动态设置画质列表":["5.45"],"object":["5.46","15.46","21.5","24.36","24.37","24.38","24.39","24.41","24.43","24.50","29.36","29.37","29.38","29.39","29.41","29.43","29.50"],"类型":["6.1","7.1","8.1","9.2","9.3","9.5","9.6","29.34","29.36","29.37"],"描述":["6.1","7.1","8.1","9.2","9.3","9.5","9.6","29.36"],"disable":["6.1","7.1","8.1","16.1","17.1","18.1"],"var":["7.2","9.4","17.2"],"new":["7.2","17.2","21.9","23.3"],"artplayer":["7.2","17.2","20.4","20.5","20.11","20.12","22.1","23.2","24.1","25.5","25.11","25.12","27.1","27.2","28.2","28.4","29.1"],"container":["7.2","15.33","17.2","22.2"],"须先打开设置面板":["9.1"],"然后自带四个内置项":["9.1"],"flip":["9.1"],"playbackrate":["9.1"],"按钮":["9.2"],"html":["9.2","9.3","9.5","9.6","19.2","19.3","19.5","19.6","20.3","25.3","29.39"],"元素的":["9.2","9.3","9.5","9.6"],"选择列表":["9.3"],"icon":["9.3","9.5","9.6","19.3","19.6"],"元素的图标":["9.3"],"selector":["9.3","19.3"],"元素列表":["9.3"],"onselect":["9.3"],"元素点击事件":["9.3"],"列表嵌套":["9.4"],"切换按钮":["9.5"],"范围滑块":["9.6"],"properties":["10.0","11.0","13.0","14.0","15.0"],"the":["10.0","10.1","10.2","10.3","10.4","10.6","10.7","10.8","10.9","10.10","10.11","10.12","10.13","10.14","10.15","10.16","10.17","11.2","11.3","11.4","11.5","11.6","11.7","11.8","11.9","11.10","11.11","11.12","12.0","12.1","12.2","12.3","12.4","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.23","12.24","12.25","12.26","12.27","12.28","12.32","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","12.42","12.43","12.46","12.58","13.0","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.21","13.22","13.23","13.24","13.25","13.26","13.27","13.28","13.29","13.30","13.34","14.0","15.1","15.2","15.4","15.5","15.11","15.12","15.13","15.16","15.18","15.19","15.22","15.28","15.33","15.38","15.39","15.40","15.45","17.1","19.2","19.3","19.5","19.6","20.6","20.9","20.11","20.13","21.1","21.5","21.8","21.9","21.10","21.11","21.13","22.2","22.3","22.4","22.5","22.6","22.7","23.0","23.1","24.1","24.2","24.3","24.4","24.5","24.6","24.7","24.11","24.22","24.33","24.34","24.36","24.40","24.41","24.47","24.51"],"player":["10.1","10.2","10.3","10.4","10.6","10.7","10.8","10.9","10.10","10.11","10.12","10.13","10.14","10.15","10.16","10.17","11.1","12.0","12.1","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.14","12.15","12.17","12.18","12.19","12.20","12.21","12.23","12.24","12.25","12.26","12.27","14.0","15.5","15.28","22.2","22.4","22.5","24.7"],"s":["10.1","10.4","10.6","10.7","10.8","10.9","10.10","10.11","10.12","10.13","10.14","10.15","10.16","10.17","12.17","12.18","13.34","14.0","15.5","15.28","21.6","22.2","22.5"],"options":["10.1","21.5","24.0"],"manages":["10.2","10.3","10.4","10.5","10.6","10.7","10.8","10.9","10.10","10.11","10.12","10.13","10.14","10.15","10.16","10.17"],"all":["10.2","10.3","10.5","11.1"],"elements":["10.2"],"of":["10.2","11.1","11.6","12.0","13.5","13.6","13.7","13.28","13.29","13.30","15.16","15.38","15.40","20.13","21.11","23.0"],"for":["10.3","10.5","12.41","13.8","13.9","13.17","13.26","15.41","19.5","19.6","21.5","21.13","22.5"],"it":["10.3","10.7","21.5","21.9","24.40"],"essentially":["10.3","15.41"],"proxies":["10.3"],"and":["10.3","10.11","12.0","13.34","14.0","15.23","20.0","21.4","21.5","21.6","21.7","21.8","21.9","21.12","21.13","22.0","22.2","22.3","22.4","22.5","22.6"],"using":["10.3"],"local":["10.4"],"property":["10.4","10.11","16.1","17.1","18.1","19.2","19.3","19.5","19.6"],"is":["10.4","10.6","10.8","10.9","10.10","10.14","10.16","12.20","20.13","21.4","21.5","21.8"],"used":["10.4","10.6","10.8","10.9","10.10","10.12","10.16","24.39","24.40","24.50"],"to":["10.4","10.6","10.8","10.9","10.10","10.12","10.16","13.1","13.3","13.31","13.32","13.33","13.34","15.12","16.1","17.1","19.1","21.5","21.9","21.11","23.0","24.10","24.15","24.16","24.17","24.19","24.22","24.27","24.33","24.39","24.40","24.47","24.50"],"cache":["10.4"],"method":["10.4","10.6","10.8","10.9","10.10","10.14","10.16"],"notifications":["10.7"],"only":["10.7","15.33","20.11","21.4"],"dynamically":["10.8","10.9","10.10","10.16","15.34","15.35","15.36","15.44","15.45"],"context":["10.10","12.37","24.31"],"menu":["10.10","16.0"],"functionality":["10.11","10.14","10.17"],"sets":["10.11","13.32","13.33","15.13","15.14","15.15","15.20","15.21","15.22","15.23","15.26","15.27","15.30","15.31","15.32"],"information":["10.12","24.34"],"panel":["10.12","10.16","12.39","19.0","21.7","21.10"],"commonly":["10.12"],"layer":["10.13","10.15"],"settings":["10.16","12.39","23.0"],"plugin":["10.17","14.0","21.8","21.10","22.1","22.3","22.4","27.2"],"with":["10.17","12.0","14.0","21.9","21.12"],"here":["11.0","15.0"],"returns":["11.1","11.2","11.3","11.4","11.5","11.6","11.7","11.8","11.9","11.10","11.11","11.12","13.2","15.43","22.3"],"an":["11.1","12.11","12.48","21.5"],"collection":["11.6"],"events":["12.0","14.0","15.41"],"are":["12.0","12.29","12.30","12.31","14.0","23.2"],"divided":["12.0"],"into":["12.0","21.10"],"two":["12.0"],"types":["12.0","22.6"],"native":["12.0"],"prefixed":["12.0"],"custom":["12.0","12.33","24.29","24.30","24.31","24.32","24.35","24.43"],"listening":["12.0"],"triggered":["12.1","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.28","12.29","12.30","12.31","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40"],"switches":["12.2"],"urls":["12.2"],"a":["12.5","12.22","12.33","14.0","15.17","15.33","15.41","15.42","20.13","21.6","21.10","21.11","22.3","23.3","23.4","24.4","24.26"],"occurs":["12.11"],"mouse":["12.12","12.13"],"enters":["12.12","12.21","12.23","12.24","12.25"],"state":["12.16","21.8"],"windowed":["12.22"],"subtitle":["12.28","24.25"],"offset":["12.28"],"changes":["12.28","22.4"],"before":["12.29","21.10","23.2"],"subtitles":["12.29","12.30","12.31","24.37"],"updated":["12.29","12.30"],"after":["12.30","22.4"],"loaded":["12.31","21.7","26.18"],"loader":["12.34"],"listens":["12.41"],"browser":["12.42"],"media":["12.46","15.39"],"has":["12.46","15.33"],"whether":["13.1","13.3","13.18","13.31","13.32","13.33","13.34","15.27","16.1","17.1","18.1","20.13","24.10","24.14","24.15","24.16","24.17","24.18","24.19","24.20","24.22","24.23","24.24","24.27","24.33","24.44","24.45","24.46","24.47","24.48","24.49"],"enable":["13.1","13.3","24.8","24.22"],"mode":["13.1"],"display":["13.4","21.0","24.17","24.33","24.34"],"duration":["13.4"],"throttle":["13.8","13.9"],"boundary":["13.10"],"tolerance":["13.10"],"distance":["13.10"],"maximum":["13.11","13.14"],"record":["13.11","13.12"],"minimum":["13.12"],"delay":["13.13","13.15","13.17"],"auto":["13.16"],"on":["13.18","13.19","13.20","13.21","13.23","13.24","13.25","21.12","22.4","24.34","24.36","24.41","26.18"],"desktop":["13.18"],"mobile":["13.21","13.23","13.24","13.25","20.13"],"refresh":["13.22"],"interval":["13.22"],"size":["13.26","13.27"],"built":["13.28","13.29","13.30"],"list":["13.28","13.29","13.30","15.45","19.3","19.4"],"mount":["13.31","21.10","26.13"],"attribute":["13.34"],"call":["13.34"],"plugins":["14.0","21.8","26.19"],"once":["14.0"],"you":["14.0","19.1","20.9"],"familiar":["14.0"],"methods":["14.0"],"becomes":["14.0"],"very":["14.0"],"straightforward":["14.0"],"task":["14.0"],"can":["14.0","20.9","21.5","22.6"],"load":["14.0","21.9","26.13","26.18"],"during":["14.0"],"instantiation":["14.0"],"removes":["15.5"],"rewind":["15.8"],"similar":["15.12"],"or":["15.15","15.20","15.22","15.26","15.44","22.5"],"gets":["15.15","15.16","15.18","15.19","15.20","15.22","15.23","15.25","15.26","15.28"],"downloads":["15.17"],"defined":["15.33"],"this":["15.33","21.7","24.4","24.43","26.6","26.9"],"initiate":["15.37"],"proportion":["15.38","15.40"],"buffered":["15.39"],"proxying":["15.41"],"quickly":["15.43"],"description":["16.1","17.1","18.1","19.2","19.3","19.5","19.6"],"control":["17.1","22.0","22.3","24.32","27.3"],"first":["19.1"],"need":["19.1"],"open":["19.1","21.1"],"button":["19.2","19.5"],"selection":["19.3","24.33"],"nested":["19.4"],"range":["19.6"],"slider":["19.6"],"group":["20.1","20.2","20.3","20.4","20.5","21.2","21.3","25.1","25.2","25.3","25.4","25.5","26.2","26.3"],"bash":["20.1","20.2","25.1","25.2","26.2","26.3"],"index":["20.3","25.3"],"jsx":["20.5","20.8","25.5","25.8"],"import":["20.5","23.4","25.5","25.9","28.4"],"from":["20.5","25.5","28.4"],"useeffect":["20.5","25.5"],"useref":["20.5"],"also":["20.9"],"use":["20.9","22.5","24.19","24.27","24.47"],"sometimes":["20.10"],"your":["20.10","22.2"],"files":["20.10","23.2"],"may":["20.10"],"lose":["20.10"],"typescript":["20.10","21.5","25.10","26.5"],"hints":["20.10"],"browsers":["20.11"],"production":["20.11"],"build":["20.11"],"supports":["20.11"],"latest":["20.11"],"major":["20.11"],"module":["20.12","25.12"],"tip":["20.12","25.12"],"esm":["20.12","25.12"],"demo":["20.12","25.12"],"https":["20.12","22.2","25.12","27.2"],"org":["20.12","25.12"],"useragent":["20.13","25.13"],"currently":["20.13"],"detection":["20.13"],"device":["20.13"],"中文说明":["21.0","22.0"],"timed":["21.0"],"comments":["21.0","21.7"],"over":["21.0"],"full":["21.1"],"sh":["21.2","22.1","27.1"],"npm":["21.2","21.13","26.21"],"install":["21.2"],"text":["21.3","21.4","26.4"],"structure":["21.4"],"required":["21.4"],"leading":["21.4"],"trailing":["21.4"],"whitespace":["21.4"],"pass":["21.5"],"option":["21.5","22.3","27.3"],"factory":["21.5","22.3"],"at":["21.5","21.11","23.2"],"runtime":["21.5","26.21"],"valid":["21.5"],"fields":["21.5","22.3","22.6"],"have":["21.5"],"defaults":["21.5"],"historical":["21.5","21.13"],"root":["21.5","21.13"],"declarations":["21.5"],"still":["21.5"],"require":["21.5"],"danmuku":["21.5","21.9","26.5","26.13"],"existing":["21.5","21.9","22.5"],"projects":["21.5"],"keep":["21.5","21.13"],"providing":["21.5"],"see":["21.5"],"xml":["21.6","26.8"],"asynchronous":["21.6"],"input":["21.6","21.7","21.9","26.14"],"uses":["21.6","22.2"],"bilibili":["21.6"],"comment":["21.6","21.8"],"format":["21.6","24.40"],"fetching":["21.6"],"callbacks":["21.7"],"submissions":["21.7"],"beforeemit":["21.7","26.6"],"filter":["21.7","26.6"],"beforevisible":["21.7","26.6"],"artplayerplugindanmuku":["21.7","21.8","21.12","26.19"],"visible":["21.7"],"direct":["21.7"],"emit":["21.7","21.8","26.6"],"calls":["21.7"],"registered":["21.8"],"available":["21.8"],"synchronously":["21.8"],"as":["21.8","22.2","24.4"],"member":["21.8"],"behavior":["21.8"],"processes":["21.8"],"one":["21.8"],"configuration":["21.9","24.43"],"changing":["21.9"],"config":["21.9","26.17"],"does":["21.9","21.11"],"not":["21.9","21.11"],"follow":["21.9"],"replace":["21.9","22.2","24.39"],"queue":["21.9","21.11"],"read":["21.9"],"failures":["21.9"],"leave":["21.9"],"intact":["21.9"],"create":["21.10"],"separate":["21.10"],"constructing":["21.10"],"moves":["21.10"],"controls":["21.10","24.38","29.38"],"true":["21.11","24.19","24.21","24.22","24.28","24.45","26.6","26.20","29.19","29.22"],"construction":["21.11"],"sample":["21.11"],"automatically":["21.11","24.12"],"live":["21.11"],"stream":["21.11","22.2"],"draw":["21.11"],"dense":["21.11"],"automatic":["21.11","24.47"],"curves":["21.11"],"now":["21.11"],"fit":["21.11"],"bottom":["21.11","22.3","24.32"],"quarter":["21.11"],"chart":["21.11"],"instead":["21.11"],"subscribe":["21.12"],"callback":["21.12","22.6","26.18"],"subscriptions":["21.12"],"off":["21.12","26.18"],"event":["21.12"],"payload":["21.12"],"meaning":["21.12","22.3"],"legacy":["21.13","26.21"],"entrypoints":["21.13"],"declaration":["21.13"],"shapes":["21.13"],"compatibility":["21.13"],"including":["21.13"],"quality":["22.0","22.3","27.3"],"audio":["22.0","22.3","22.6","27.3"],"track":["22.0"],"menus":["22.0"],"yarn":["22.1","27.1"],"hls":["22.1","22.2","22.7","27.1","27.2"],"example":["22.2"],"site":["22.2"],"same":["22.2"],"source":["22.2","22.5","24.2"],"online":["22.2"],"application":["22.2"],"data":["22.2","26.11","27.2"],"libs":["22.2","27.2"],"cdnjs":["22.2","27.2"],"artplayerpluginhlscontrol":["22.3","27.3"],"synchronous":["22.3"],"both":["22.3"],"accept":["22.3"],"these":["22.3"],"field":["22.3"],"omitted":["22.3"],"means":["22.3"],"hidden":["22.3"],"setting":["22.3"],"external":["22.4"],"updates":["22.4"],"ready":["22.4","27.4","29.4"],"restart":["22.4","27.4"],"ownership":["22.5"],"switching":["22.5"],"switchurl":["22.5","27.5"],"switchquality":["22.5"],"include":["22.6"],"level":["22.6"],"id":["22.6","27.6"],"language":["22.6","23.2","23.3","23.4","24.42","29.42"],"applications":["22.6"],"scope":["22.7"],"refactor":["22.7"],"tests":["22.7"],"danger":["23.0","28.0"],"due":["23.0"],"increasing":["23.0"],"languages":["23.1","23.2"],"bundling":["23.2"],"located":["23.2"],"i18n":["23.2","28.2"],"zhtw":["23.4","28.4"],"where":["24.1"],"unique":["24.3"],"undefined":["24.4","24.51","29.4","29.51"],"constructor":["24.4"],"accepts":["24.4"],"second":["24.4"],"f00":["24.6","29.6"],"false":["24.8","24.9","24.10","24.11","24.12","24.13","24.14","24.15","24.16","24.17","24.18","24.20","24.23","24.24","24.25","24.26","24.27","24.38","24.44","24.46","24.47","24.48","24.49","29.10","29.11","29.12","29.14","29.15","29.16","29.17","29.25","29.27","29.38","29.44","29.47","29.49"],"by":["24.11"],"hotkeys":["24.19"],"if":["24.21"],"blur":["24.22"],"ssr":["24.27","29.27"],"server":["24.27"],"initialize":["24.29","24.30","24.31","24.32","24.35"],"panels":["24.30"],"preview":["24.36"],"bar":["24.36"],"supported":["24.37"],"formats":["24.37"],"vtt":["24.37","29.37"],"srt":["24.37","29.37"],"ass":["24.37","29.37"],"preload":["24.38"],"metadata":["24.38"],"specify":["24.40"],"needs":["24.40"],"be":["24.40","24.43"],"matches":["24.41"],"based":["24.41"],"navigator":["24.42","29.42"],"will":["24.43"],"deeply":["24.43"],"merged":["24.43"],"导入":["25.6"],"你也可以使用选项的类型":["25.9"],"ts":["25.9"],"有时你的":["25.10"],"文件会丢失":["25.10"],"的类型提示":["25.10"],"这时候你可以手动导入类型":["25.10"],"生产构建的":["25.11"],"只兼容最新一个主版本的":["25.11"],"chrome":["25.11"],"last":["25.11"],"目前对于是否移动设备的判断并不准确":["25.13"],"有时候希望通过改变":["25.13"],"来调整播放器的ui":["25.13"],"english":["26.0","27.0"],"查看完整演示":["26.1"],"jsdelivr":["26.3"],"每一个弹幕是一个对象":["26.4"],"多个弹幕组成的数组就是弹幕库":["26.4"],"通常只需要":["26.4"],"就可以发送一个弹幕":["26.4"],"工厂需要一个配置对象":["26.5"],"运行时可传":["26.5"],"每个字段都有默认值":["26.5"],"旧版根入口类型仍要求":["26.5"],"旧项目继续传入它即可":["26.5"],"准确类型见下方":["26.5"],"说明":["26.5"],"弹幕数据":["26.5"],"speed":["26.5"],"弹幕持续时间":["26.5"],"范围在":["26.5"],"同步执行":["26.6"],"不应返回":["26.6"],"promise":["26.6","26.9","26.12","26.14"],"可异步":["26.6"],"但只有严格返回":["26.6"],"才发送":["26.6"],"可以异步":["26.6"],"普通函数形式的这三个回调":["26.6"],"其":["26.6"],"都是当前配置对象":["26.6"],"直接调用":["26.6"],"弹幕":["26.8"],"文件":["26.8"],"也可以直接传入":["26.9"],"弹幕数组":["26.9"],"或传入同步返回数组的函数":["26.9"],"输入函数没有配置对象作为":["26.9"],"通过方法":["26.10","26.12","26.13"],"进行隐藏或者显示弹幕":["26.10"],"通过属性":["26.11"],"判断当前弹幕是隐藏或者显示":["26.11"],"向队列添加一条弹幕":["26.12"],"它返回":["26.12"],"完成表示入队处理完成":["26.12"],"不代表已经显示":["26.12"],"请用":["26.12"],"await":["26.12"],"或":["26.12","27.5"],"catch":["26.12"],"同步合并弹幕配置":["26.13"],"更改":["26.13"],"不会自动重新加载":["26.13"],"之后调用无参数的":["26.13"],"才会替换队列":["26.13"],"无效配置不会覆盖现有配置":["26.13"],"需要移动发射器时调用":["26.13"],"通过":["26.14"],"重载":["26.14"],"切换或追加弹幕库":["26.14"],"返回":["26.14"],"无参数":["26.14"],"在读取配置中的输入成功后替换队列":["26.14"],"传入":["26.14"],"则追加":["26.14"],"输入读取失败不会清空现有队列":["26.14"],"但逐条过滤时发生异常不保证整批回滚":["26.14"],"用于清空当前显示的弹幕并将队列项重置为等待状态":["26.15"],"它不删除队列":["26.15"],"后续播放仍可按时间显示弹幕":["26.15"],"在初始化弹幕插件的时候":["26.16"],"是可以指定弹幕发射器的挂载位置的":["26.16"],"默认是挂载在控制栏的中部":["26.16"],"你也可以把它挂载在播放器以外的地方":["26.16"],"当播放器全屏的时候":["26.16"],"发射器会自动回到控制栏的中部":["26.16"],"假如你挂载的地方是亮色的话":["26.16"],"建议把":["26.16"],"theme":["26.16"],"设置成":["26.16"],"用于获取当前弹幕配置":["26.17"],"返回实时配置对象":["26.17"],"更新配置请调用":["26.17"],"避免直接修改对象而绕过校验和":["26.17"],"ui":["26.17"],"使用":["26.18"],"订阅":["26.18"],"取消订阅":["26.18"],"事件不会向迟到的监听器重放":["26.18"],"初始空数组可能在构造期间就完成加载":["26.18"],"若需要观察后续加载":["26.18"],"先订阅再调用":["26.18"],"与方法返回值":["26.19"],"初始化时设置":["26.20"],"heatmap":["26.20"],"按队列自动采样":["26.20"],"直播不绘制热力图":["26.20"],"本轮修复了密集弹幕曲线过高遮挡视频的问题":["26.20"],"issue":["26.20"],"自动曲线会适配到图表底部四分之一区域":["26.20"],"显式设置有限的":["26.20"],"ymin":["26.20"],"ymax":["26.20"],"或发送自定义":["26.20"],"points":["26.20"],"时保留原坐标映射":["26.20"],"也可传配置对象":["26.20"],"xmin":["26.20"],"xmax":["26.20"],"根入口和":["26.21"],"保留":["26.21"],"的历史声明形状":["26.21"],"其中部分方法返回值与真实运行时不一致":["26.21"],"当前分支新增":["26.21"],"控制":["27.0"],"下面与在线":["27.2"],"示例使用同一份代码和站点容器":["27.2"],"接入自己的应用时替换容器与视频地址":["27.2"],"cloudflare":["27.2"],"com":["27.2"],"ajax":["27.2"],"uncompiled":["27.2"],"同步返回插件工厂":["27.3"],"与":["27.3"],"都可以使用以下字段":["27.3"],"字段":["27.3"],"含义与默认行为":["27.3"],"显示底部控制器":["27.3"],"播放器":["27.4"],"会刷新菜单":["27.4"],"sdk":["27.4","27.6"],"所有权与换源":["27.5"],"换源继续使用播放器已有的":["27.5"],"默认回调类型包含画质高度":["27.6"],"名称和音轨":["27.6"],"名称":["27.6"],"语言字段":["27.6"],"可以通过泛型使用应用所需的":["27.6"],"元数据类型":["27.6"],"下面的示例只声明实际使用的字段":["27.6"],"无需导入":["27.6"],"重构使用本地媒体和真实":["27.7"],"worker":["27.7"],"验证":["27.7"],"鉴于捆绑的多国语言越来越多":["28.0"],"从":["28.0"],"默认语言有":["28.1"],"en":["28.1"],"zh":["28.1"],"打包前的语言文件存放于":["28.2"],"欢迎来添加你的语言":["28.2"],"打包后的语言文件存放于":["28.2"],"dist":["28.2"],"播放器挂载的":["29.1"],"视频源地址":["29.2"],"播放器的唯一标识":["29.3"],"构造函数接受一个函数作为第二个参数":["29.4"],"播放器初始化成功且视频可以播放时触发":["29.4"],"视频的海报":["29.5"],"是否自动播放":["29.10"],"是否使用快捷键":["29.19"],"是否开启播放器":["29.22"],"字幕时间偏移":["29.25"],"是否使用":["29.27"],"初始化自定义的":["29.29","29.30","29.31","29.35"],"层":["29.29"],"设置面板":["29.30"],"右键菜单":["29.31"],"初始化自定义的底部":["29.32"],"控制栏":["29.32"],"是否在底部控制栏里显示":["29.33"],"画质选择":["29.33"],"列表":["29.33"],"在进度条上显示":["29.34"],"高亮信息":["29.34"],"插件":["29.35"],"在进度条上设置":["29.36"],"预览图":["29.36"],"设置视频的字幕":["29.37"],"支持字幕格式":["29.37"],"用于替换默认图标":["29.39"],"支持":["29.39"],"用于指明视频的格式":["29.40"],"需要配合":["29.40"],"customtype":["29.40"],"通过视频的":["29.41"],"自定义":["29.43"],"配置":["29.43"],"该配置会和自带的":["29.43"],"进行深度合并":["29.43"],"新增你的语言":["29.43"],"是否使用自动":["29.47"],"回放功能":["29.47"],"用于改变内置的css变量":["29.50"]},{"0":["3.25","3.26","5.9","13.28","15.38","15.40","23.0","26.5","26.12","26.20","28.0"],"1":["3.26","3.28","5.9","5.38","5.40","13.28","15.38","15.40","20.11","21.5","22.2","23.0","25.10","27.7","28.0"],"2":["3.28","20.8","20.12","22.7","25.8","25.12","25.13","26.20"],"3":["3.23","13.29","20.9","24.2","25.10","29.2"],"4":["6.2","13.29","16.2","23.3","24.47","25.13","29.43"],"5":["3.12","3.14","3.25","3.27","13.28","20.12","21.5","22.2","23.0","24.29","24.30","25.12","25.13","26.12","27.7","28.0","29.29","29.30"],"6":["2.0","6.3","7.3","12.0","16.3","17.3","20.12","25.12"],"7":["22.7","29.7"],"9":["3.29","9.7","19.7","23.3","29.43"],"10":["2.2","3.11","7.2","17.2","21.5","26.4"],"11":["2.28"],"13":["6.2","6.3","16.2","16.3"],"14":["9.7","19.7"],"15":["14.0"],"16":["3.29","13.29"],"17":["22.2"],"19":["5.45","15.45"],"21":["6.4","6.5","7.3","7.4","8.4","16.4","16.5","17.3","17.4","18.4"],"22":["8.2","8.3","9.8","18.2","18.3","19.8"],"23":["24.29","29.29"],"24":["6.5","16.5"],"25":["3.28","21.5","26.5","26.20"],"29":["5.45","8.5","18.5"],"34":["24.30","29.30"],"35":["3.7"],"40":["7.5","17.5"],"50":["3.10"],"75":["13.28"],"128":["26.20"],"200":["3.6","3.8","3.9","3.21"],"300":["3.17"],"958":["21.11"],"1000":["3.15","3.22","3.24"],"2000":["3.4"],"3000":["3.13","3.16"],"code":["0.1","0.2","0.4","0.5","0.6","0.7","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.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","3.3","3.5","3.6","3.7","3.17","3.29","3.30","5.1","5.2","5.3","5.12","5.14","5.16","5.17","5.20","5.21","5.22","5.23","5.25","5.27","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.44","5.45","5.46","9.3","10.1","10.2","10.5","12.0","12.20","12.29","12.30","12.31","15.2","15.12","15.16","15.37","15.44","15.45","19.3","21.1","24.1","24.7","24.10","24.19","24.30","24.31","24.32","24.35","24.43","24.47","26.9","26.10","26.12","26.13","26.14","26.15","26.17","26.18","28.2","29.1","29.4","29.10","29.19","29.30","29.31","29.32","29.35","29.39","29.43","29.47","29.50"],"js":["0.2","0.4","0.14","0.17","2.2","2.18","2.22","2.24","2.28","2.29","2.30","2.31","5.45","6.2","6.3","6.4","7.4","8.4","9.3","9.6","9.7","10.2","12.0","14.0","15.16","15.45","16.2","16.3","16.4","17.4","18.4","19.7","21.4","21.5","22.0","22.2","23.3","24.2","24.10","24.19","24.29","24.30","24.47","26.4","26.11","27.0","27.1","27.6","27.7","28.1","29.2","29.4","29.29","29.30","29.32","29.43"],"var":["0.2","0.4","2.0","4.0","5.45","6.2","6.3","6.4","6.5","7.3","7.4","7.5","8.2","8.3","8.4","8.5","9.3","9.7","9.8","9.9","10.2","12.0","14.0","16.2","16.3","16.4","16.5","17.3","17.4","17.5","18.2","18.3","18.4","18.5","19.4","19.7","19.8","19.9","23.3","24.2","24.29","24.30","28.3","28.4","29.2","29.29","29.30"],"proxy":["0.3"],"方法用于代理":["0.3"],"hover":["0.3"],"方法用于代理自定义的":["0.3"],"div":["0.3","0.6","0.8","0.9","0.10","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","2.41","3.1","3.2","3.4","3.5","3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.15","3.16","3.17","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.28","3.29","3.30","3.32","3.33","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.15","5.17","5.18","5.19","5.20","5.21","5.22","5.23","5.24","5.25","5.27","5.30","5.31","5.32","5.34","5.35","5.36","5.39","5.41","5.43","5.44","5.46","5.47","9.1","9.3","10.5","12.0","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.20","12.22","12.24","12.26","12.27","12.28","12.29","12.30","12.31","12.34","12.39","12.40","12.41","15.1","15.2","15.3","15.12","15.16","15.20","15.22","15.28","15.33","15.37","15.44","15.45","15.46","15.47","19.3","20.4","24.1","24.7","24.10","24.19","24.31","24.32","24.35","24.39","24.43","24.47","25.4","26.6","26.8","26.9","26.12","26.13","26.14","26.17","26.18","29.1","29.3","29.4","29.5","29.7","29.8","29.9","29.10","29.13","29.17","29.19","29.21","29.26","29.35","29.39","29.43","29.45","29.46","29.47","29.50"],"classname":["0.4","0.5","0.6","0.7","0.8","0.9","0.10","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","2.41","3.1","3.2","3.3","3.4","3.5","3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.16","3.17","3.18","3.19","3.20","3.22","3.23","3.26","3.27","3.29","3.30","3.32","3.33","5.1","5.2","5.3","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.16","5.17","5.18","5.19","5.20","5.21","5.22","5.23","5.24","5.25","5.27","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.43","5.44","5.46","5.47","9.1","9.3","10.1","10.5","12.0","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.15","12.17","12.18","12.20","12.22","12.24","12.26","12.28","12.29","12.30","12.31","12.40","15.1","15.2","15.3","15.12","15.16","15.20","15.22","15.28","15.37","15.44","15.45","15.46","19.3","24.1","24.7","24.10","24.19","24.31","24.32","24.35","24.39","24.43","24.47","26.6","26.8","26.9","26.10","26.12","26.13","26.14","26.17","26.18","29.1","29.3","29.4","29.5","29.7","29.9","29.10","29.13","29.17","29.19","29.31","29.32","29.35","29.39","29.43","29.45","29.46","29.47","29.50"],"run":["0.4","0.5","0.6","0.7","0.10","0.13","0.14","0.15","0.16","0.17","1.1","1.6","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.13","2.14","2.15","2.16","2.19","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.40","2.41","3.3","3.5","3.6","3.7","3.8","3.9","3.10","3.11","3.17","3.22","3.29","3.30","3.32","5.1","5.2","5.3","5.8","5.10","5.12","5.14","5.16","5.17","5.18","5.19","5.20","5.21","5.22","5.23","5.25","5.27","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.44","5.46","5.47","9.1","9.3","10.1","10.2","10.5","12.0","12.6","12.7","12.8","12.10","12.20","12.22","12.28","12.29","12.30","12.31","15.1","15.2","15.3","15.12","15.16","15.20","15.28","15.37","15.44","15.45","19.3","21.1","24.1","24.7","24.10","24.19","24.30","24.31","24.32","24.35","24.43","24.47","26.8","26.9","26.10","26.12","26.13","26.14","26.15","26.17","26.18","29.1","29.4","29.5","29.7","29.10","29.19","29.31","29.32","29.35","29.39","29.43","29.47","29.50"],"art":["0.4","0.12","2.0","5.11","5.13","5.45","6.2","6.3","6.4","6.5","7.3","7.4","7.5","8.2","8.3","8.5","9.3","9.4","9.7","9.8","9.9","10.2","12.0","14.0","15.11","15.13","16.2","16.3","16.4","16.5","17.3","17.4","17.5","18.2","18.3","18.5","19.4","19.7","19.8","19.9","24.2","25.10","28.3","28.4","29.2"],"new":["0.4","2.0","4.0","6.2","6.3","6.4","6.5","7.3","7.4","7.5","8.3","9.3","9.4","9.7","9.8","9.9","10.2","12.0","14.0","16.2","16.3","16.4","16.5","17.3","17.4","17.5","18.3","19.4","19.7","19.8","19.9","23.2","24.2","28.3","29.2"],"artplayer":["0.4","2.0","4.0","5.5","6.2","6.3","6.4","6.5","7.3","7.4","7.5","9.3","9.4","9.8","9.9","12.0","14.0","16.2","16.3","16.4","16.5","17.3","17.4","17.5","19.4","19.8","19.9","20.3","20.6","21.2","22.2","23.4","24.2","25.3","25.4","25.6","25.9","25.10","26.7","26.10","26.11","26.15","26.18","26.21","27.6","29.2"],"container":["0.4","2.0","4.0","6.4","6.5","7.3","7.5","9.3","9.4","9.8","9.9","12.0","14.0","16.4","16.5","17.3","17.5","19.4","19.8","19.9","20.4","20.5","24.2","24.11","25.5","29.11"],"方法用于更新":["0.6"],"对象":["0.6"],"方法用于动态更新层":["0.8"],"show":["0.8","0.9","0.10","0.12","0.16","10.7"],"属性用于设置是否显示全部层":["0.8"],"toggle":["0.8","0.9","0.10","0.16","24.18"],"方法用于切换是否显示全部层":["0.8"],"方法用于动态更新控制器":["0.9"],"属性用于设置是否显示全部控制器":["0.9"],"方法用于切换是否显示全部控制器":["0.9"],"属性用于设置是否显示全部菜单":["0.10"],"方法用于切换是否显示全部菜单":["0.10"],"方法设置当前字幕地址和选项":["0.11"],"texttrack":["0.11"],"获取当前字幕轨":["0.11"],"activecues":["0.11"],"获取当前活跃的字幕列表":["0.11"],"cues":["0.11"],"通过":["0.12"],"控制面板的显示与隐藏":["0.12"],"触发的事件名为":["0.12"],"属性用于切换是否显示加载层":["0.13"],"属性用于切换是否显示遮罩层":["0.15"],"属性用于设置是否显示全部设置项":["0.16"],"方法用于切换是否显示全部设置项":["0.16"],"字符串":["1.11"],"app":["2.0","4.0","7.2","7.5","9.3","9.4","9.8","9.9","12.0","14.0","17.2","17.5","19.4","19.8","19.9","24.2"],"url":["2.0","4.0","5.11","7.2","7.5","9.4","9.9","12.0","14.0","15.11","15.13","17.2","17.5","19.4","19.9","21.5","21.6","24.36","24.37","29.36","29.37"],"assets":["2.0","4.0","7.2","8.2","8.3","8.4","8.5","9.4","9.9","12.0","14.0","17.2","18.2","18.3","18.4","18.5","19.4","19.9","24.2","24.29","29.29"],"sample":["2.0","4.0","7.2","8.2","8.3","8.4","8.5","9.4","9.9","12.0","14.0","17.2","18.2","18.3","18.4","18.5","19.4","19.9","24.29","29.29"],"mp4":["2.0","4.0","7.2","14.0","17.2"],"on":["2.0","4.0","12.16","19.6","21.10","24.21","24.45"],"canplay":["2.0"],"事件":["2.41","26.14"],"浏览器可以播放媒体文件了":["2.42"],"浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束":["2.43"],"offlineaudiocontext":["2.44"],"duration":["2.45","13.12","13.13","15.39","21.5"],"媒体内容变为空":["2.46"],"例如":["2.46"],"视频停止播放":["2.47"],"获取媒体数据时出错":["2.48"],"media":["2.49","12.59","13.34","22.7"],"已加载元数据":["2.50"],"播放已暂停":["2.51"],"播放已开始":["2.52"],"由于缺乏数据而暂停或延迟后":["2.53"],"在浏览器加载资源时周期性触发":["2.54"],"播放速率发生变化":["2.55"],"跳帧":["2.56","2.57"],"用户代理":["2.58"],"媒体数据加载已暂停":["2.59"],"currenttime":["2.60"],"音量发生变化":["2.61"],"由于暂时缺少数据":["2.62"],"可以打印出视频全部的内置事件":["3.1"],"默认关闭":["3.1"],"默认为":["3.4","3.8","3.9","3.10","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.27","3.31","3.34","5.4"],"单位为毫秒":["3.15","3.21","3.24"],"true":["3.18","3.19","3.31","3.32","3.34","5.4","13.34","22.3","26.13","27.3","29.21","29.28","29.45"],"false":["3.20","3.33","13.33","29.8","29.9","29.13","29.18","29.20","29.23","29.24","29.26","29.46","29.48"],"是否把播放器挂在在":["3.31"],"元素下":["3.31"],"目前主要用于进度条的平滑效果":["3.33"],"属性并调用":["3.34"],"load":["3.34","5.5","13.34","15.5","21.8","21.12"],"以主动释放媒体资源":["3.34"],"开启后可以在单页应用或频繁创建":["3.34"],"销毁播放器的场景下":["3.34"],"dosomething":["4.0","14.0"],"video":["4.0","5.34","5.38","5.40","7.2","9.4","9.9","10.12","14.0","15.1","15.2","15.7","15.8","15.9","15.10","15.14","15.15","15.17","15.23","15.25","15.27","15.33","15.34","15.35","17.2","19.4","19.9","21.0","21.11","24.4","24.14","24.15","24.16","29.41"],"plugins":["4.0"],"ready":["4.0","12.2","12.53","24.4"],"可以在实例化之后再加载插件的函数":["4.0"],"销毁播放器":["5.4"],"接受一个参数表示是否销毁后同时移除播放器的":["5.4"],"html":["5.4","20.12","24.39","25.12","29.27","29.33"],"常用于在单页应用中手动释放媒体资源或重新初始化视频标签":["5.5"],"注意":["5.5"],"全局配置":["5.5"],"remove":["5.5","10.8","10.9","10.10","10.14","10.16"],"视频时间跳转":["5.6"],"单位秒":["5.6","5.7","5.8","29.34"],"视频时间快进":["5.7"],"视频时间快退":["5.8"],"设置和获取视频音量":["5.9"],"范围在":["5.9","29.25"],"string":["5.10","6.1","7.1","8.1","11.11","16.1","18.1","24.36","24.37","29.33","29.34","29.36","29.37"],"设置和获取视频地址":["5.10"],"类似":["5.11","5.12","5.13","5.15","5.42"],"但会执行一些优化操作":["5.11","5.12"],"switchurl":["5.13","15.13"],"但会带上之前的播放进度":["5.13"],"设置和获取视频是否静音":["5.14"],"设置和获取视频当前时间":["5.15"],"设置时间时和":["5.15"],"seek":["5.15"],"但它不会触发额外的事件":["5.15"],"返回的是一个":["5.18","5.19"],"promise":["5.18","5.19","21.5","21.8","22.5","26.18","27.5"],"设置和获取播放器窗口全屏":["5.20"],"设置和获取播放器网页全屏":["5.21"],"设置和获取播放器画中画模式":["5.22"],"只有在视频播放前才能看到海报效果":["5.23"],"boolean":["5.24","6.1","8.1","9.5","19.5","29.33"],"设置和获取播放器迷你模式":["5.24"],"获取视频是否正在播放中":["5.25"],"支持":["5.26","5.30"],"standard":["5.26","15.26"],"正常":["5.26"],"mini":["5.26","24.12","24.26"],"迷你窗":["5.26"],"pip":["5.26"],"type":["5.29","11.10","20.9","25.9","25.10"],"getter":["5.29"],"这些属性是对":["5.29"],"rect":["5.29","15.29"],"的快捷访问":["5.29"],"设置和获取播放器翻转":["5.30"],"normal":["5.30","13.30"],"horizontal":["5.30","13.30"],"vertical":["5.30"],"设置和获取播放器播放速度":["5.31"],"设置和获取播放器长宽比":["5.32"],"元素的属性":["5.34"],"动态获取和设置视频类型":["5.35"],"动态获取和设置播放器主题颜色":["5.36"],"常配合":["5.38","5.40"],"timeupdate":["5.38","5.40"],"事件使用":["5.38","5.40"],"通常与":["5.39"],"loaded":["5.39","21.12","26.14"],"一起使用":["5.39","29.40"],"用于展示缓冲进度细节":["5.39"],"和":["5.41","29.6","29.14","29.15","29.16"],"removeeventlistener":["5.41","15.41"],"当使用":["5.41"],"来处理事件":["5.41"],"播放器销毁时也会自动销毁该事件":["5.41"],"document":["5.42","12.41","15.42"],"queryselector":["5.42","15.42"],"但被查询的对象局限于当前播放器内":["5.42"],"可以避免同类名的错误":["5.42"],"元素":["5.43"],"动态设置缩略图":["5.46"],"number":["5.47","9.2","9.3","17.1","19.3","24.34","24.36","29.34","29.36"],"动态设置字幕偏移":["5.47"],"是否禁用组件":["6.1","7.1","8.1"],"name":["6.1","7.1","7.2","8.1","14.0","16.1","17.2","18.1","24.37","29.37"],"组件唯一名称":["7.1"],"用于标记类名":["7.1"],"index":["7.1","7.2","17.1","17.2","22.2","26.11","27.2"],"controls":["7.2","17.2","22.0"],"your":["7.2","17.2","24.43"],"button":["7.2","17.2","24.18","24.44","24.49"],"img":["8.2","8.3","8.4","8.5","18.2","18.3","18.4","18.5","24.29","29.29"],"layer":["8.2","8.3","8.4","8.5","10.8","12.35","12.36","18.2","18.3","18.4","18.5"],"png":["8.2","8.3","8.5","18.2","18.3","18.5"],"aspectratio":["9.1"],"subtitleoffset":["9.1"],"icon":["9.2","19.2","19.5"],"元素的图标":["9.2","9.5","9.6"],"onclick":["9.2","19.2"],"function":["9.2","9.5","9.6","11.9","19.2","19.3","19.6","20.5","21.5","24.14","24.15","24.16","24.17","25.5"],"元素点击事件":["9.2"],"width":["9.2","19.3"],"列表宽度":["9.3"],"tooltip":["9.3","9.5","9.6","19.3"],"提示文本":["9.3","9.6"],"switch":["9.5","19.5"],"按钮默认状态":["9.5"],"onswitch":["9.5"],"按钮切换事件":["9.5"],"range":["9.6","15.9"],"array":["9.6","19.6","21.5"],"默认状态数组":["9.6"],"onrange":["9.6","19.6"],"完成时触发的事件":["9.6"],"onchange":["9.6"],"变化时触发的事件":["9.6"],"here":["10.0","13.0"],"following":["10.3"],"methods":["10.3"],"to":["10.3","10.13","10.14","10.15","12.0","12.2","13.0","15.5","15.6","15.11","15.13","15.29","15.41","15.42","18.1","20.13","21.6","21.10","22.0","22.3","24.4","24.9","24.13","24.14","24.18","24.20","24.23","24.24","24.28","24.38","24.41","24.44","24.45","24.46","24.48","24.49"],"handle":["10.3","15.41","22.5"],"will":["10.3","24.8","24.38"],"also":["10.3","22.4"],"be":["10.3","11.1"],"automatically":["10.3","12.18","12.19","15.33","15.41","24.38"],"destroyed":["10.3","12.6"],"is":["10.3","10.13","10.15","12.1","12.3","12.5","12.6","12.9","12.10","12.11","12.18","12.19","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.53","13.3","13.5","13.28","13.29","13.30","13.33","13.34","15.14","15.23","15.25","15.41","21.12","24.1","24.4","24.40"],"a":["10.4","10.7","10.8","10.9","12.26","12.27","12.56","12.57","13.6","13.7","13.15","15.4","15.6","15.18","15.19","21.8","21.9","21.12","24.44","24.46","24.51"],"get":["10.4","15.9","15.10","15.35","15.36"],"retrieve":["10.4","10.6"],"del":["10.4"],"the":["10.5","12.11","12.44","12.49","12.55","12.60","12.61","13.31","13.32","15.7","15.8","15.9","15.10","15.14","15.15","15.17","15.20","15.21","15.23","15.24","15.25","15.26","15.27","15.30","15.31","15.32","15.34","15.35","15.36","15.41","15.42","15.43","16.1","18.1","19.1","20.10","21.0","21.12","24.14","24.15","24.16","24.17","24.18","24.20","24.21","24.23","24.24","24.42","24.43","24.48","24.49","24.50"],"player":["10.5","11.6","12.11","12.12","12.13","12.28","13.2","13.31","13.32","13.34","15.4","15.20","15.21","15.22","15.24","15.26","15.30","15.31","15.32","15.36","15.43","20.5","21.10","22.0","22.3","24.1","24.3","24.4","24.6","24.11","24.12","24.22","24.23","24.24","24.48","25.5"],"an":["10.6","15.17","21.0","21.6","21.7","21.9","21.11","22.0"],"value":["10.6"],"update":["10.6","10.10","10.16"],"has":["10.7","12.47","12.62"],"property":["10.7","10.13","10.15","11.1","15.33","24.33","24.34","24.36","24.37"],"for":["10.7","10.17","11.6","11.7","12.1","12.46","13.10","13.11","13.12","13.13","13.15","13.16","13.21","13.22","13.23","13.24","13.25","13.27","17.1","20.9","20.11","21.8","23.2","24.3","24.22"],"displaying":["10.7"],"control":["10.9","22.1","22.2","24.17","24.33","27.1","27.2"],"items":["10.10","10.16"],"returns":["10.11","21.8","21.10"],"current":["10.11","10.12","15.5","15.15","15.17","15.18","15.19","15.26","21.12","21.13"],"style":["10.11"],"method":["10.11","10.17"],"of":["10.11","10.12","11.2","11.3","11.4","11.8","11.12","13.4","13.14","15.15","15.17","15.18","15.19","15.34","17.1","19.3","19.5","20.11","21.5","21.9","24.40"],"status":["10.12"],"and":["10.12","12.2","15.3","15.5","15.9","15.10","15.24","15.28","15.30","15.31","15.32","15.33","15.34","15.35","15.36","15.41","20.12","21.10","21.11","22.7","24.4","24.39","24.41"],"such":["10.12","20.10","24.22"],"as":["10.12","22.3","24.22"],"used":["10.13","10.14","10.15","15.5","15.39","17.1"],"set":["10.13","10.15","12.18","12.19","15.10","15.33","15.34","15.35","15.36","15.46","15.47"],"whether":["10.13","10.15","13.19","13.20","15.4","15.14","15.25","24.9","24.13","24.28"],"display":["10.13","10.15","21.5","24.14","24.15","24.16","24.18","24.20","24.23","24.24","24.42","24.44","24.49"],"hotkeys":["10.14"],"only":["10.17","15.23","22.6","24.5","24.26"],"one":["10.17","21.9"],"add":["10.17","24.43","24.46"],"dynamically":["10.17","15.46","15.47"],"adding":["10.17"],"this":["11.1","22.0","24.8"],"can":["11.1","12.42","13.1","15.33","20.10","20.11","21.7","21.11","24.51"],"useful":["11.1","24.27"],"information":["11.2","15.28"],"environment":["11.3"],"variables":["11.3","15.44","24.50"],"timestamp":["11.4"],"default":["11.5","11.12","13.3","13.8","13.9","13.18","13.28","13.29","13.30","13.32","13.33","13.34","19.5","19.6","20.5","25.5"],"configuration":["11.5"],"utility":["11.6"],"functions":["11.6"],"validation":["11.7","11.9"],"schema":["11.7"],"constructor":["11.8"],"detection":["11.10"],"required":["11.11"],"options":["11.12","13.30","20.9"],"first":["12.1"],"becomes":["12.2"],"play":["12.2"],"paused":["12.3"],"starts":["12.4"],"playing":["12.4","12.42"],"pressed":["12.5"],"gains":["12.7"],"loses":["12.8"],"focus":["12.8"],"double":["12.9","13.17","13.18","13.19"],"clicked":["12.9","12.10"],"while":["12.11","12.48","21.9","21.13"],"loading":["12.11","21.13"],"or":["12.12","12.21","12.23","12.24","12.25","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","15.14","15.21","21.5","21.10","21.11","22.4"],"leaves":["12.12"],"moves":["12.13"],"over":["12.13"],"s":["12.14","12.19","15.20","15.21","15.22","15.26","15.30","15.31","15.32","15.33","15.36","15.43","22.3","24.6","24.7","24.11","24.41"],"dimensions":["12.14","15.28","24.11"],"change":["12.14"],"enters":["12.15","24.12"],"viewport":["12.15"],"changes":["12.16","12.17","12.40","22.5"],"mobile":["12.16"],"devices":["12.16"],"aspect":["12.17","15.32","24.16"],"ratio":["12.17","24.16"],"height":["12.18","15.33"],"size":["12.19","15.27"],"flipped":["12.20"],"exits":["12.21","12.23","12.24","12.25"],"windowed":["12.21"],"mode":["12.21","12.23","12.24","15.22","24.8","24.12","24.27","24.28","26.5"],"error":["12.22","26.14","26.18"],"occurs":["12.22"],"web":["12.23","15.21","21.10","24.24"],"fullscreen":["12.23","21.10","24.48"],"picture":["12.25","15.22","24.20"],"in":["12.25","12.28","13.4","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.22","15.6","15.8","15.22","15.39","21.5","24.17","24.20","24.33","24.38","24.43","24.48","24.50"],"takes":["12.26"],"performs":["12.27","15.12"],"time":["12.27","15.6","15.7","15.8","15.15","21.4","24.34","26.4","29.34"],"panel":["12.32","13.5","13.6","13.7","13.22","19.1","21.0"],"shown":["12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39"],"hidden":["12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39"],"menu":["12.37","13.3","22.3"],"bar":["12.38","24.17","24.26","24.32","24.33","24.34"],"state":["12.40","15.20","15.30","19.5","19.6"],"event":["12.41","13.8","13.9","13.10","13.17","15.41","19.3","19.6","22.4"],"from":["12.41","15.38","15.40","20.12","22.1","22.2","23.0","23.4","24.25","25.9","26.21","27.2","27.6","28.2"],"start":["12.42","24.9"],"browser":["12.43","21.6"],"estimates":["12.43"],"triggered":["12.45","19.6","24.4"],"become":["12.46"],"empty":["12.46","21.4"],"example":["12.46","21.1","22.5","22.6"],"playback":["12.47","12.51","12.52","12.62","15.15","15.31","21.7","24.13","24.15"],"occurred":["12.48"],"metadata":["12.50","22.6","29.38"],"fired":["12.54"],"user":["12.58"],"agent":["12.58"],"refer":["13.0"],"which":["13.1","24.5"],"print":["13.1","13.32"],"all":["13.1"],"built":["13.1","24.43","24.50"],"context":["13.3"],"notification":["13.4"],"messages":["13.4"],"milliseconds":["13.4","13.8","13.9","13.17","13.22"],"settings":["13.5","13.6","13.7","19.1","22.3"],"pixels":["13.5","13.10","21.5"],"view":["13.10"],"count":["13.11"],"feature":["13.12","13.13","24.47"],"automatic":["13.14","13.15"],"reconnection":["13.14","13.15"],"attempts":["13.14"],"when":["13.14","13.15","15.11","15.12","15.41","24.4","24.5","24.12","24.22"],"connection":["13.15"],"delay":["13.16","13.21","13.24"],"bottom":["13.16","21.5","24.17","24.33"],"click":["13.17","13.18","13.19","19.2","19.3"],"toggles":["13.18","13.19","13.20"],"single":["13.20"],"rotation":["13.21"],"speed":["13.23","13.25","21.5","24.15"],"multiplier":["13.23","13.25"],"long":["13.23","13.24","24.46"],"press":["13.23","13.24","24.46"],"left":["13.25"],"right":["13.25"],"adjustment":["13.26"],"via":["13.26","13.27"],"keyboard":["13.26","13.27"],"shortcuts":["13.26","13.27"],"seeking":["13.27"],"rates":["13.28"],"ratios":["13.29"],"under":["13.31"],"element":["13.31","15.34","21.12"],"requestanimationframe":["13.33"],"currently":["13.33","15.25","24.3","24.6","24.42"],"it":["13.33","19.1","24.38"],"actively":["13.34"],"release":["13.34","15.5"],"resources":["13.34","23.0"],"destroying":["13.34"],"myplugin":["14.0"],"console":["14.0"],"info":["14.0"],"return":["14.0","21.13","24.51"],"something":["14.0"],"pause":["15.3"],"accepts":["15.4"],"indicating":["15.4"],"src":["15.5"],"calls":["15.5"],"once":["15.5"],"commonly":["15.5"],"manually":["15.5","20.10"],"specific":["15.6"],"fast":["15.7"],"seconds":["15.8","15.39","21.5"],"similar":["15.11","15.13","15.42"],"setting":["15.11","15.12","15.15","27.3"],"but":["15.12","15.13","15.42"],"some":["15.12"],"optimization":["15.12"],"operations":["15.12","21.9"],"quality":["15.13"],"gets":["15.14","15.21","15.24","15.30","15.31","15.32"],"frame":["15.17"],"screenshot":["15.18","15.19"],"window":["15.20","24.23"],"effect":["15.23","24.22"],"visible":["15.23","21.12","26.6"],"sets":["15.24"],"supported":["15.26"],"values":["15.26","21.13"],"adapts":["15.27"],"its":["15.27","21.10","21.12","22.4"],"coordinate":["15.28","21.11"],"these":["15.29"],"properties":["15.29"],"provide":["15.29"],"quick":["15.29"],"access":["15.29","21.6"],"calculate":["15.33"],"attributes":["15.34"],"buffered":["15.38"],"ranging":["15.38","15.40","24.25"],"often":["15.38","15.40","24.11"],"typically":["15.39"],"alongside":["15.39"],"using":["15.41"],"search":["15.42"],"css":["15.44","24.50"],"subtitle":["15.47"],"offset":["15.47","24.25"],"component":["16.1","18.1"],"unique":["16.1","17.1","18.1"],"class":["17.1"],"marking":["17.1"],"comes":["19.1"],"with":["19.1","21.0","22.7","24.40","24.43"],"four":["19.1"],"elements":["19.3"],"onselect":["19.3"],"text":["19.3","22.3","29.34"],"item":["19.5","21.12"],"usage":["20.0"],"npm":["20.1","22.2","25.1","26.2","27.2"],"install":["20.1","25.1","26.2"],"jsdelivr":["20.2","21.3","25.2"],"net":["20.2","25.2","26.3"],"https":["20.2","21.3","25.2","26.3"],"head":["20.3","25.3"],"title":["20.3","22.3","25.3","27.3"],"demo":["20.3"],"meta":["20.3"],"charset":["20.3"],"template":["20.4","25.4"],"ref":["20.4","21.12"],"export":["20.5","25.5"],"option":["20.5","21.8","25.5"],"getinstance":["20.5","25.5"],"rest":["20.5","25.5"],"const":["20.5","25.5"],"d":["20.6"],"import":["20.8","20.10","22.1","22.2","25.8","25.10","26.21","27.2","27.6","28.2"],"ts":["20.9","26.21","27.6","29.40"],"cases":["20.10"],"you":["20.10","20.11","20.13","24.27"],"types":["20.10","21.13"],"variable":["20.10"],"version":["20.11","20.12","23.0","25.11"],"chrome":["20.11"],"last":["20.11"],"starting":["20.12","23.0"],"not":["20.13"],"always":["20.13"],"accurate":["20.13","21.5","21.13"],"sometimes":["20.13"],"may":["20.13"],"want":["20.13","24.27"],"adjust":["20.13","24.38"],"input":["21.0","21.8"],"examples":["21.1"],"plugin":["21.2","22.0","22.2","26.7","26.10","26.11","26.18","27.1","27.6"],"danmuku":["21.2","21.8","26.11","26.18"],"yarn":["21.2"],"removed":["21.4"],"comments":["21.4","21.8"],"are":["21.4","23.1"],"ignored":["21.4"],"hello":["21.4"],"xml":["21.5"],"returning":["21.5"],"clamped":["21.5"],"margin":["21.5","26.5"],"top":["21.5"],"spacing":["21.5"],"cross":["21.6"],"origin":["21.6"],"requires":["21.6","21.7"],"that":["21.6","24.26"],"server":["21.6"],"allow":["21.6"],"describes":["21.7"],"accepted":["21.7"],"reject":["21.7"],"them":["21.7"],"scheduling":["21.7"],"still":["21.7"],"available":["21.7"],"track":["21.7"],"callback":["21.7"],"acceptance":["21.7"],"comment":["21.7"],"queue":["21.8","21.12"],"reads":["21.8"],"replaces":["21.8"],"appends":["21.8"],"filtering":["21.9"],"individual":["21.9"],"rows":["21.9"],"do":["21.9"],"guarantee":["21.9"],"atomic":["21.9"],"rollback":["21.9"],"entire":["21.9","24.11"],"batch":["21.9"],"independent":["21.9"],"append":["21.9"],"cancel":["21.9"],"another":["21.9"],"newer":["21.9"],"replacement":["21.9"],"cancels":["21.9"],"unfinished":["21.9"],"during":["21.10"],"configured":["21.10"],"exit":["21.10"],"use":["21.10","24.28"],"theme":["21.10"],"light":["21.10","26.16"],"covering":["21.11"],"issue":["21.11"],"explicit":["21.11"],"finite":["21.11"],"ymin":["21.11"],"ymax":["21.11"],"custom":["21.11","22.5"],"points":["21.11"],"retain":["21.11"],"their":["21.11","22.6"],"mapping":["21.11"],"object":["21.11"],"xmin":["21.11"],"xmax":["21.11"],"scale":["21.11","26.20"],"opacity":["21.11","26.5","26.20"],"minheight":["21.11","26.20"],"sampling":["21.11","26.20"],"smoothing":["21.11","26.20"],"flattening":["21.11","26.20"],"displayed":["21.12"],"full":["21.12"],"after":["21.12"],"successful":["21.12"],"inaccuracies":["21.13"],"about":["21.13"],"branch":["21.13"],"adds":["21.13"],"runtime":["21.13"],"same":["21.13"],"cloudflare":["22.2"],"com":["22.2"],"ajax":["22.2"],"min":["22.2"],"uncompiled":["22.2","26.7","26.10","26.11","26.15","26.18"],"i":["22.2","27.2"],"entry":["22.3"],"enable":["22.3","24.45"],"well":["22.3"],"defaults":["22.3"],"auto":["22.3"],"fallback":["22.3"],"sdk":["22.4","22.6"],"provides":["22.4"],"api":["22.4"],"manifest":["22.4"],"level":["22.4"],"audio":["22.4"],"destruction":["22.4"],"events":["22.4","24.45"],"returned":["22.5"],"loader":["22.5"],"destroys":["22.5"],"previous":["22.5"],"specify":["22.6"],"actual":["22.6"],"through":["22.6"],"existing":["22.6"],"generic":["22.6"],"factory":["22.6"],"below":["22.6"],"uses":["22.6"],"local":["22.7"],"real":["22.7"],"bundled":["23.0","23.2"],"multilingual":["23.0"],"en":["23.1","29.42"],"zh":["23.1","23.4","28.4","29.42"],"cn":["23.1","28.1"],"contributions":["23.2"],"welcome":["23.2"],"i18n":["23.4","28.4"],"tw":["23.4","28.4"],"mounted":["24.1"],"identifier":["24.3"],"successfully":["24.4"],"initialized":["24.4"],"image":["24.5","24.36"],"appears":["24.5","24.25"],"color":["24.6","26.5"],"live":["24.8"],"streaming":["24.8"],"fill":["24.11"],"multiple":["24.21"],"players":["24.21"],"exist":["24.21"],"page":["24.21"],"ui":["24.22","29.22"],"enabled":["24.22"],"overlays":["24.22"],"5s":["24.25","29.25"],"progress":["24.26","24.34"],"side":["24.27"],"rendering":["24.27"],"mount":["24.27"],"if":["24.27"],"menus":["24.31"],"list":["24.33"],"description":["24.33","24.34","24.36","24.37"],"thumbnail":["24.36"],"safari":["24.38","29.38"],"supports":["24.39"],"strings":["24.39"],"htmlelement":["24.39","29.39"],"together":["24.40"],"customtype":["24.40"],"by":["24.40"],"determined":["24.40"],"suffix":["24.40"],"delegates":["24.41"],"decoding":["24.41"],"third":["24.41","24.51"],"party":["24.41","24.51"],"tolowercase":["24.42","29.42"],"language":["24.43"],"rotate":["24.48"],"modify":["24.50"],"htmlcanvaselement":["24.51","29.51"],"useref":["25.5"],"let":["25.10"],"null":["25.10"],"参数":["25.10"],"对于古老的浏览器":["25.11"],"可以使用":["25.11"],"legacy":["25.11"],"文件":["25.11"],"从":["25.12"],"开始":["25.12"],"所以在":["25.13"],"开始新增了一个":["25.13"],"guide":["26.0"],"下方":["26.1"],"其余都是非必要参数":["26.4"],"弹幕文本":["26.4"],"弹幕上下边距":["26.5"],"支持像素数字和百分比":["26.5"],"弹幕透明度":["26.5"],"ffffff":["26.5"],"默认弹幕颜色":["26.5"],"可以被单独弹幕项覆盖":["26.5"],"默认弹幕模式":["26.5"],"不执行":["26.6"],"需要业务校验时请在调用前完成":["26.6"],"来自用户输入的弹幕":["26.6"],"artplayerplugindanmuku":["26.6"],"来自服务器或直接调用":["26.6"],"的弹幕":["26.6"],"data":["26.7","26.9","26.10","26.12","26.13","26.14","26.15","26.17","26.18"],"libs":["26.7","26.9","26.10","26.11","26.13","26.14","26.15","26.17","26.18"],"bilibili":["26.8"],"网站的弹幕格式一致":["26.8"],"处理拒绝":["26.12"],"省略时间时安排在当前播放时间之后":["26.12"],"秒":["26.12"],"显示仍受播放状态":["26.12"],"过滤器和可用轨道影响":["26.12"],"target":["26.13","26.16"],"热力图应在初始化时启用":["26.13"],"heatmap":["26.13"],"不会创建热力图":["26.13"],"并发追加互不取消":["26.14"],"新的替换会取消尚未完成的旧替换":["26.14"],"销毁会取消未完成加载":["26.14"],"被取消的":["26.14"],"仍正常结束":["26.14"],"但不会发出迟到的":["26.14"],"否则会看不清":["26.16"],"退出全屏后会返回配置的挂载点":["26.16"],"必须传入已存在的元素或选择器":["26.16"],"省略参数不会恢复默认位置":["26.16"],"它返回":["26.16"],"undefined":["26.16"],"销毁会移除插件面板":["26.16"],"应用创建的外部容器由应用清理":["26.16"],"同步":["26.17"],"参数是当前完整队列":["26.18"],"包含已追加数据":["26.18"],"也可能来自显示调度":["26.18"],"监听错误事件并不能代替处理公开方法的":["26.18"],"拒绝":["26.18"],"是实时只读的停止状态":["26.19"],"与":["26.19"],"ishide":["26.19"],"不同":["26.19"],"也不表示媒体是否准备就绪":["26.19"],"emit":["26.19"],"默认分别为":["26.20"],"图表宽度":["26.20"],"floor":["26.20"],"图表高度":["26.20"],"提供准确类型":["26.21"],"加载的仍是同一个运行时工厂":["26.21"],"该入口尚未发布":["26.21"],"不能从旧":["26.21"],"cdn":["26.21"],"版本导入":["26.21"],"为":["27.0"],"artplayerpluginhlscontrol":["27.2"],"省略时不显示":["27.3"],"显示设置项":["27.3"],"同时需要播放器的":["27.3"],"菜单标题":["27.3"],"画质默认":["27.3"],"提供事件接口时":["27.4"],"清单":["27.4"],"档位":["27.4"],"音轨与销毁事件也会刷新或清除菜单":["27.4"],"选中项来自当前":["27.4"],"switchquality":["27.5"],"并处理返回的":["27.5"],"示例在创建新":["27.5"],"hls":["27.6","27.7"],"声明":["27.6"],"hlscontrol":["27.6"],"无需手动导入":["28.1"],"group":["28.2"],"id":["28.2"],"容器":["29.1"],"目前只用于记忆播放":["29.3"],"autoplayback":["29.3"],"事件一样":["29.4"],"只会出现在播放器初始化且未播放的状态下":["29.5"],"播放器主题颜色":["29.6"],"目前用于":["29.6"],"进度条":["29.6"],"播放器的默认音量":["29.7"],"使用直播模式":["29.8"],"会隐藏进度条和播放时间":["29.8"],"是否默认静音":["29.9"],"播放器的尺寸默认会填充整个":["29.11"],"容器尺寸":["29.11"],"所以经常出现黑边":["29.11"],"该值能自动调整播放器尺寸以隐藏黑边":["29.11"],"当播放器滚动到浏览器视口以外时":["29.12"],"自动进入":["29.12"],"迷你播放":["29.12"],"模式":["29.12","29.28"],"是否循环播放":["29.13"],"是否显示视频翻转功能":["29.14"],"目前只出现在":["29.14"],"设置面板":["29.14","29.15","29.16","29.18","29.22","29.25"],"右键菜单":["29.14","29.15","29.16","29.22"],"是否显示视频播放速度功能":["29.15"],"会出现在":["29.15","29.16"],"是否显示视频长宽比功能":["29.16"],"是否在底部控制栏里显示":["29.17","29.18","29.20"],"视频截图":["29.17"],"功能":["29.17"],"的开关按钮":["29.18","29.20"],"画中画":["29.20"],"假如页面里同时存在多个播放器":["29.21"],"是否只能让一个播放器播放":["29.21"],"的背景虚化效果":["29.22"],"开启后":["29.22"],"是否在底部控制栏里显示播放器":["29.23","29.24"],"窗口全屏":["29.23"],"按钮":["29.23","29.24","29.49"],"网页全屏":["29.24"],"出现在":["29.25"],"迷你进度条":["29.26"],"只在播放器失去焦点后且正在播放时出现":["29.26"],"挂载模式":["29.27"],"假如你希望在播放器挂载前":["29.27"],"就提前渲染好播放器所需的":["29.27"],"时有用":["29.27"],"你可以通过":["29.27"],"在移动端是否使用":["29.28"],"类型":["29.33"],"描述":["29.33","29.34","29.37"],"默认画质":["29.33"],"画质名字":["29.33"],"高亮时间":["29.34"],"高亮文本":["29.34"],"预览图地址":["29.36"],"预览图数量":["29.36"],"column":["29.36"],"字幕名字":["29.37"],"字幕地址":["29.37"],"字幕类型":["29.37"],"可选":["29.37"],"preload":["29.38"],"中会自动调整为":["29.38"],"字符串和":["29.39"],"默认视频的格式就是视频地址的后缀":["29.40"],"如":["29.40"],"m3u8":["29.40"],"mkv":["29.40"],"但有时候视频地地址没有正确的后缀":["29.40"],"进行匹配":["29.41"],"把视频解码权交给第三方程序进行处理":["29.41"],"处理的函数能接收三个参数":["29.41"],"视频":["29.41"],"dom":["29.41"],"默认显示语言":["29.42"],"目前支持":["29.42"],"是否在移动端显示一个":["29.44"],"锁定按钮":["29.44"],"用于隐藏底部":["29.44"],"控制栏":["29.44"],"是否在移动端启用视频元素上的手势事件":["29.45"],"是否在移动端添加长按视频快进功能":["29.46"],"是否在移动端的网页全屏时":["29.48"],"根据视频尺寸和视口尺寸":["29.48"],"旋转播放器":["29.48"],"是否显示":["29.49"],"当前只有部分浏览器支持该功能":["29.49"],"函数可以返回一个第三方的":["29.51"],"或者":["29.51"],"htmlvideoelement":["29.51"],"例如可以代理一个已经存在的":["29.51"]},{"0":["9.6","13.25","13.26","15.9","21.4","21.5","21.11","26.4"],"1":["9.6","13.26","15.9","19.6","20.10","21.11","26.20"],"2":["13.28","21.5","21.11","24.1","26.5","27.7","29.1"],"3":["13.23","20.7","20.10","25.7"],"4":["24.7","24.10","24.19","24.31","24.32","24.39","24.43","28.1","29.10","29.19","29.31","29.32","29.39","29.47","29.50"],"5":["9.6","13.12","13.27","19.6","21.4","24.47","26.4","29.47"],"6":["2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40"],"7":["2.19","2.21","2.23","2.25","2.26","5.16","5.28","5.33","15.16","15.28","15.33","24.4","27.7","29.4","29.39"],"8":["2.17","2.20","5.1","5.14","5.21","5.31","5.32","5.34","5.35","5.36","5.44","12.20","15.44","20.3"],"9":["2.29","2.30","2.31","5.12","5.20","5.22","5.23","5.37","12.29","12.30","12.31","13.29","15.12","15.20","15.22","15.37","24.43","29.4"],"10":["2.6","2.18","2.24","7.5","9.6","13.11","17.5","21.4"],"11":["5.2","5.3","5.21","5.33","12.28","15.2","15.33","25.11"],"12":["24.31","29.31"],"15":["24.35","29.35"],"16":["24.32","29.32"],"17":["4.0","14.0","27.7"],"25":["13.28","21.11"],"29":["15.45"],"35":["13.7"],"50":["13.10"],"100":["21.11","26.20"],"128":["21.11"],"200":["13.6","13.8","13.9","13.21"],"250":["9.3","13.5","19.3"],"300":["13.17"],"1000":["13.22","13.24"],"2000":["13.4"],"3000":["13.13"],"是指挂载在":["0.0","1.0","5.0"],"js":["0.1","0.3","0.5","0.6","0.7","0.8","0.9","0.10","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.19","2.20","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.3","3.5","3.6","3.7","3.8","3.9","3.10","3.17","3.28","3.29","3.30","5.1","5.2","5.3","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.16","5.17","5.18","5.19","5.20","5.21","5.22","5.23","5.25","5.27","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.41","5.44","5.46","5.47","9.1","9.5","10.1","10.4","10.5","10.6","10.14","12.2","12.6","12.17","12.20","12.22","12.24","12.28","12.29","12.30","12.31","15.1","15.2","15.3","15.12","15.20","15.22","15.28","15.33","15.37","15.44","15.46","19.3","19.6","22.6","23.0","24.1","24.4","24.7","24.31","24.32","24.35","24.39","24.43","26.6","26.7","26.9","26.10","26.12","26.13","26.14","26.15","26.17","26.18","28.0","29.1","29.7","29.10","29.19","29.31","29.34","29.35","29.39","29.47","29.50"],"var":["0.1","0.3","0.5","0.6","0.7","0.8","0.9","0.10","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.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","5.2","5.3","5.12","5.14","5.16","5.20","5.22","5.23","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.44","5.46","9.5","10.1","10.5","10.14","12.22","12.29","12.30","12.31","15.12","15.16","15.20","15.22","15.33","15.44","15.45","19.3","23.4","24.1","24.7","24.10","24.19","24.31","24.32","24.43","24.47","26.10","26.11","26.12","26.13","26.14","26.18","28.1","28.2","29.1","29.4","29.10","29.19","29.31","29.32","29.39","29.43","29.47"],"art":["0.1","0.2","0.5","0.6","0.7","0.10","0.14","0.16","0.17","2.2","2.6","2.11","2.12","2.16","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","2.31","2.39","5.16","5.20","5.22","5.23","5.28","5.33","5.44","8.4","9.5","10.1","10.5","12.31","15.16","15.20","15.22","15.33","15.44","15.45","18.4","19.3","20.5","20.10","22.0","22.2","22.5","23.3","23.4","24.1","24.7","24.10","24.19","24.29","24.30","24.31","24.32","24.43","24.47","25.5","26.11","26.13","26.14","26.20","27.0","27.2","27.4","27.5","28.1","28.2","29.1","29.4","29.19","29.29","29.30","29.31","29.32","29.35","29.39","29.41","29.43","29.47"],"new":["0.1","0.2","0.6","0.7","0.14","0.16","0.17","2.2","2.6","2.17","2.18","2.20","2.22","2.24","2.28","2.29","2.30","2.31","5.12","5.23","5.44","5.45","8.2","8.4","8.5","10.1","15.12","15.16","15.20","15.33","15.45","18.2","18.4","18.5","19.3","20.5","22.2","23.4","24.1","24.7","24.10","24.19","24.29","24.30","24.31","24.32","24.43","24.47","25.5","26.11","26.14","26.18","27.2","28.4","29.1","29.4","29.29","29.30","29.31","29.32","29.43"],"artplayer":["0.2","0.7","0.14","0.16","0.17","2.2","2.22","2.24","2.28","2.29","2.30","2.31","3.5","3.6","3.7","3.29","3.30","5.12","5.23","5.45","8.2","8.3","8.4","8.5","9.7","10.1","10.2","15.12","15.16","15.45","18.2","18.3","18.4","18.5","19.3","19.7","20.1","20.8","20.9","20.10","21.3","21.13","22.6","23.0","23.3","24.10","24.19","24.29","24.30","24.32","24.43","24.47","25.1","25.8","26.2","26.3","26.6","26.8","26.9","26.12","26.13","26.14","26.16","26.17","28.0","28.3","29.4","29.27","29.29","29.30","29.32","29.43"],"container":["0.2","0.3","0.14","0.17","2.2","2.28","5.12","5.45","6.2","6.3","7.4","8.2","8.3","8.4","8.5","9.7","10.2","15.12","15.16","15.45","16.2","16.3","17.4","18.2","18.3","18.4","18.5","19.3","19.7","23.4","24.10","24.19","24.29","24.30","24.32","24.43","24.47","25.4","25.9","26.11","26.14","26.18","27.2","28.3","28.4","29.2","29.4","29.29","29.30","29.32","29.43"],"app":["0.2","0.4","0.14","5.45","6.2","6.3","6.4","6.5","7.3","7.4","8.2","8.3","8.4","8.5","9.7","10.2","15.12","15.16","15.45","16.2","16.3","16.4","16.5","17.3","17.4","18.2","18.3","18.4","18.5","19.3","19.7","20.4","22.2","24.1","24.19","24.29","24.30","24.47","25.4","26.11","26.18","27.2","28.4","29.2","29.4","29.29","29.30","29.43"],"url":["0.2","0.4","5.45","6.2","6.3","6.4","6.5","7.3","7.4","8.2","8.3","8.5","9.3","9.7","9.8","10.2","15.16","15.45","16.2","16.3","16.4","16.5","17.3","17.4","18.2","18.3","18.5","19.3","19.7","19.8","24.29","24.30","24.33","24.40","24.47","26.18","27.2","29.29","29.30","29.33","29.41","29.43"],"classname":["0.3","0.11","0.12","1.11","3.15","3.21","3.24","3.25","3.28","3.31","5.4","5.15","5.26","5.30","5.38","5.39","5.40","5.41","5.42","9.2","9.5","10.4","10.6","10.7","10.14","10.17","11.6","12.1","12.2","12.11","12.12","12.13","12.14","12.16","12.19","12.21","12.23","12.25","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.41","13.2","13.3","13.4","13.5","13.6","13.7","13.8","13.9","13.10","13.11","13.17","13.18","13.22","13.28","13.29","13.30","13.32","15.6","15.7","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.23","15.24","15.25","15.27","15.30","15.31","15.32","15.33","15.34","15.35","15.36","15.41","15.43","15.47","19.5","24.4","24.9","24.13","24.17","24.25","24.34","24.42","24.50","26.16","29.6","29.8","29.12","29.14","29.15","29.16","29.18","29.20","29.21","29.23","29.24","29.25","29.26","29.27","29.28","29.33","29.34","29.38","29.40","29.42","29.44","29.48","29.49","29.51"],"run":["0.3","0.8","0.9","0.11","0.12","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","3.1","3.2","3.4","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.23","3.24","3.25","3.26","3.27","3.28","3.31","3.33","5.4","5.6","5.7","5.9","5.11","5.13","5.15","5.24","5.30","5.38","5.39","5.40","5.41","5.42","5.43","9.2","9.5","10.4","10.6","10.7","10.14","10.17","11.6","12.1","12.2","12.3","12.4","12.5","12.9","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.21","12.23","12.24","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.3","13.5","13.8","13.9","13.10","13.17","13.28","13.29","13.30","15.7","15.8","15.9","15.10","15.14","15.21","15.22","15.23","15.25","15.27","15.31","15.32","15.33","15.34","15.35","15.36","15.41","15.43","15.46","15.47","24.4","24.9","24.13","24.17","24.34","24.39","24.50","26.1","26.6","26.16","29.3","29.6","29.8","29.9","29.12","29.13","29.14","29.15","29.16","29.17","29.18","29.20","29.21","29.23","29.24","29.25","29.26","29.28","29.33","29.34","29.40","29.42","29.44","29.45","29.46","29.48","29.49","29.51"],"code":["0.3","0.8","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","2.41","3.1","3.2","3.4","3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.28","3.31","3.32","3.33","5.4","5.6","5.7","5.8","5.9","5.10","5.11","5.13","5.15","5.18","5.19","5.24","5.30","5.38","5.39","5.40","5.41","5.42","5.43","5.47","9.1","9.2","9.5","10.4","10.6","10.7","10.14","10.17","11.6","12.1","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.28","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.29","13.30","15.1","15.3","15.8","15.9","15.10","15.14","15.20","15.21","15.22","15.25","15.27","15.28","15.31","15.32","15.33","15.34","15.35","15.36","15.41","15.43","15.46","15.47","23.0","23.2","24.4","24.13","24.17","24.39","24.50","26.6","26.8","26.16","29.3","29.5","29.7","29.8","29.9","29.12","29.13","29.17","29.18","29.20","29.21","29.23","29.24","29.25","29.26","29.28","29.33","29.34","29.40","29.42","29.44","29.45","29.46","29.48","29.49"],"document":["0.3","24.1"],"assets":["0.4","5.45","6.2","6.3","6.4","6.5","7.3","7.4","7.5","9.3","9.7","9.8","10.2","15.45","16.2","16.3","16.4","16.5","17.3","17.4","17.5","19.3","19.7","19.8","24.30","24.47","26.18","29.2","29.30","29.43"],"sample":["0.4","5.45","6.2","6.3","6.4","6.5","7.3","7.4","7.5","9.3","9.8","10.2","16.2","16.3","16.4","16.5","17.3","17.4","17.5","19.3","19.8","24.2","24.30","26.18","29.2","29.30","29.43"],"video":["0.4","3.34","5.45","6.2","6.3","6.4","6.5","7.3","7.5","8.2","8.3","8.5","9.3","9.8","10.2","12.11","13.1","15.6","15.18","15.19","16.2","16.3","16.4","16.5","17.3","17.5","18.2","18.3","18.5","19.3","19.8","24.38","24.45","24.46","26.18","27.4","29.2","29.51"],"mp4":["0.4","6.3","6.4","6.5","7.3","7.5","8.2","8.3","8.5","9.3","9.4","9.8","9.9","10.2","12.0","16.3","16.4","16.5","17.3","17.5","18.2","18.3","18.5","19.3","19.4","19.8","19.9","24.2","26.18","29.2"],"test":["0.4"],"foo":["0.4"],"bar":["0.4","13.16","24.6","24.8","24.22"],"const":["0.4","9.6","19.6","22.2","25.9","27.2"],"获取整体的字幕列表":["0.11"],"div":["0.11","0.12","3.31","5.4","5.26","5.38","5.40","5.42","9.2","9.5","10.4","10.6","10.7","10.14","10.17","11.5","11.6","11.9","11.10","12.1","12.11","12.19","12.21","12.23","12.25","12.32","12.33","12.35","12.36","12.37","12.38","13.2","13.3","13.4","13.5","13.6","13.7","13.8","13.9","13.10","13.11","13.17","13.18","13.19","13.20","13.21","13.22","13.23","13.26","13.28","13.29","13.30","13.32","15.6","15.7","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.23","15.24","15.25","15.27","15.30","15.31","15.32","15.34","15.35","15.36","15.41","15.43","19.5","20.3","24.4","24.9","24.13","24.17","24.25","24.28","24.34","24.42","24.50","26.16","29.6","29.12","29.14","29.15","29.16","29.18","29.20","29.23","29.24","29.25","29.27","29.28","29.33","29.34","29.38","29.40","29.41","29.42","29.44","29.48","29.49","29.51"],"详见事件文档":["0.12"],"console":["1.1","2.0","12.0"],"info":["2.0","12.0"],"只监听一次事件":["2.0"],"但估计没有足够的数据来支撑播放到结束":["2.42"],"渲染完成":["2.44"],"属性的值改变时触发":["2.45"],"当这个":["2.46"],"因为":["2.47"],"或者资源类型不是受支持的媒体格式":["2.48"],"中的首帧已经完成加载":["2.49"],"播放准备开始":["2.53"],"seek":["2.56","2.57","12.56","12.57","13.25","15.15"],"user":["2.58","25.13"],"属性指定的时间发生变化":["2.60"],"播放已停止":["2.62"],"也是指挂载在":["3.0"],"构造函数":["3.0"],"减少视频资源占用":["3.34"],"如果你希望保留":["3.34"],"元素的状态":["3.34"],"仅移除界面":["3.34"],"可将其设置为":["3.34"],"when":["5.5","11.1","12.45","24.26"],"destroy":["5.5","21.9","22.2","27.2"],"也会在调用":["5.5"],"时自动执行类似逻辑":["5.5"],"画中画":["5.26"],"fullscreen":["5.26","15.21","24.24"],"窗口全屏":["5.26"],"fullscreenweb":["5.26"],"网页全屏":["5.26"],"对应":["5.29"],"domrect":["5.29"],"的同名字段":["5.29"],"组件唯一名称":["6.1","8.1"],"用于标记类名":["6.1","8.1"],"index":["6.1","7.5","8.1","16.1","17.5","18.1","22.3","26.6","26.7","26.9","26.10","26.12","26.13","26.14","26.15","26.16","26.17","26.18"],"number":["6.1","7.1","8.1","10.12","16.1","18.1","19.2","27.6"],"contextmenu":["6.4","6.5","16.4","16.5"],"name":["6.5","7.5","9.9","16.5","17.5","19.9","24.33"],"组件索引":["7.1"],"用于显示的优先级":["7.1"],"html":["7.1","7.2","9.4","9.9","15.4","17.1","17.2","19.4","19.9","24.27","24.33"],"element":["7.1","17.1","24.45"],"position":["7.2","7.5","17.2","17.5"],"left":["7.2","17.2"],"tooltip":["7.2","9.2","9.9","17.2","19.2","19.5","19.6","19.9"],"style":["7.2","9.3","17.1","17.2","21.7","24.37","29.37"],"color":["7.2","15.36","17.2","21.5","21.7"],"red":["7.2","17.2"],"click":["7.2","17.2"],"function":["7.2","11.10","17.2","19.5","21.6","22.2","24.35","24.41","25.10","26.6","27.2","29.35"],"args":["7.2","17.2"],"controls":["7.3","7.5","17.3","17.5"],"add":["7.3","17.3","21.2"],"button1":["7.5","17.5"],"png":["8.4","18.4","24.29","29.29"],"列表宽度":["9.2"],"提示文本":["9.2","9.5"],"setting":["9.3","9.4","9.8","9.9","19.3","19.4","19.8","19.9"],"true":["9.3","9.4","9.8","9.9","13.18","13.19","13.32","19.3","19.4","19.8","19.9","21.5","21.7","26.5"],"settings":["9.3","9.4","9.9","19.3","19.4","19.9","21.0","24.14","24.15","24.16","24.18","24.22","24.25"],"subtitle":["9.3","19.3"],"01":["9.3","9.4"],"default":["9.3","13.1","13.4","13.10","13.11","13.12","13.13","13.14","13.15","13.16","13.17","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.31","21.5"],"span":["9.3"],"multi":["9.4","19.4"],"level":["9.4","13.0","19.4","22.3","27.6"],"selector":["9.4","19.4"],"value":["9.6","26.20"],"min":["9.6"],"flip":["9.8","19.1","19.8"],"slider":["9.9","19.9"],"5x":["9.9","19.9"],"icon":["9.9","19.9"],"refer":["10.0","11.0","15.0"],"to":["10.0","11.0","11.1","12.53","13.25","15.0","15.4","15.15","15.39","20.11","21.4","21.7"],"proxy":["10.3"],"method":["10.3","21.10"],"used":["10.3","13.33","15.38","15.40","24.3","24.6"],"hover":["10.3"],"delete":["10.4"],"clear":["10.4","22.4"],"all":["10.4","20.12"],"caches":["10.4"],"object":["10.6","21.6","29.11"],"update":["10.8","10.9"],"show":["10.8","10.9","10.10","10.16","21.8"],"property":["10.8","10.9","10.10","10.16"],"switch":["10.11"],"version":["10.12"],"resolution":["10.12"],"duration":["10.12"],"etc":["10.12"],"control":["10.12","22.6","27.6"],"visibility":["10.12"],"toggle":["10.13","10.15","24.20"],"set":["10.16"],"the":["11.0","12.45","12.48","15.0","15.6","15.29","21.6","22.0","24.8","24.12","24.25","24.26","24.27","24.44","24.45"],"you":["11.1","22.0"],"need":["11.1"],"manage":["11.1"],"multiple":["11.1"],"player":["11.2","11.3","11.4","11.7","11.11","11.12","15.41","15.42","20.13","21.5","24.5","24.21","24.26","24.27"],"for":["11.5","11.9","13.33","16.1","18.1","22.3","24.6","24.18","24.38","24.41","24.51"],"videos":["11.5"],"options":["11.7","11.9","24.37"],"event":["11.8","12.0","12.46","15.38","15.40","19.2","19.5","21.9","24.4"],"utility":["11.10"],"by":["11.11","20.13","24.9"],"on":["12.0","13.0","13.3","14.0","24.28","24.44","24.46","24.48"],"canplay":["12.0"],"an":["12.0","20.12"],"only":["12.0","21.7","24.3","24.14","24.21","24.49"],"once":["12.0"],"time":["12.1","12.60","21.7"],"a":["12.11","13.14","21.5","21.7","22.4","22.7","24.22"],"mode":["12.25","13.31","15.24","21.5","21.7","24.48"],"media":["12.42","15.5"],"but":["12.42","15.11","15.15"],"estimates":["12.42"],"it":["12.43","15.15","21.6","21.7","22.3","22.6","24.15","24.16","24.51"],"can":["12.43","13.34","24.41"],"play":["12.43","24.4"],"offlineaudiocontext":["12.44"],"this":["12.46","13.34","24.11"],"is":["12.46","12.58","13.1","13.4","13.6","13.7","13.8","13.9","13.10","13.11","13.12","13.13","13.14","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.31","13.32","15.15","15.42","20.11","23.1","24.2","24.5","24.21"],"sent":["12.46"],"stopped":["12.47","12.62"],"fetching":["12.48"],"first":["12.49"],"frame":["12.49","15.18","15.19"],"has":["12.50","12.51","12.52"],"start":["12.53"],"after":["12.53","14.0"],"periodically":["12.54"],"as":["12.54","21.6"],"playback":["12.55","15.13","24.3"],"trying":["12.58"],"data":["12.59","26.6","26.8","26.16"],"indicated":["12.60"],"volume":["12.61","24.22"],"top":["13.0"],"mounted":["13.0"],"in":["13.1","13.12","13.13","13.15","13.16","13.21","13.24","13.27","13.34","15.5","15.7","15.26","20.12","21.7","24.2","24.11","24.14","24.15","24.16","24.18","24.23","24.24","24.25","24.34"],"events":["13.1"],"text":["13.2","19.2","19.5","19.6","21.9","24.34"],"pixels":["13.6","13.7"],"feature":["13.11","24.46"],"seconds":["13.12","13.27","15.6","15.7","21.4","24.34"],"milliseconds":["13.13","13.15","13.16","13.21","13.24"],"connection":["13.14"],"error":["13.14","13.15","21.9","21.12"],"occurs":["13.14","13.15"],"pause":["13.19","13.20"],"false":["13.20","26.5"],"swipe":["13.25"],"vertical":["13.30","15.30"],"during":["13.31"],"primarily":["13.33"],"smooth":["13.33"],"progress":["13.33","15.13","15.39","24.6","24.8"],"enabling":["13.34"],"reduce":["13.34"],"resource":["13.34"],"usage":["13.34"],"single":["13.34","15.5"],"page":["13.34","15.5","15.21"],"applications":["13.34","15.5"],"or":["13.34","15.5","21.7","21.8","21.9","21.12","22.3","24.51"],"scenarios":["13.34"],"where":["13.34"],"ready":["14.0"],"also":["14.0","15.4","20.12","22.3"],"remove":["15.4"],"s":["15.4","15.24","20.13","24.27"],"resources":["15.5"],"reinitialize":["15.5"],"tag":["15.5"],"performs":["15.11"],"some":["15.11","24.49"],"optimization":["15.11"],"operations":["15.11"],"retains":["15.13"],"previous":["15.13","22.2","27.2"],"similar":["15.15","24.4"],"optional":["15.17","21.0"],"parameter":["15.17","20.10"],"specifies":["15.17"],"filename":["15.17"],"returns":["15.18","15.19"],"promise":["15.18","15.19","21.7","21.12","26.19"],"state":["15.21","22.4"],"before":["15.23","22.5","24.27"],"starts":["15.23"],"playing":["15.23"],"normal":["15.26","15.30"],"mini":["15.26"],"window":["15.26"],"pip":["15.26"],"picture":["15.26"],"automatically":["15.27","24.11"],"correspond":["15.29"],"fields":["15.29"],"of":["15.29","24.12","24.36"],"same":["15.29"],"supported":["15.30","22.7","24.42"],"values":["15.30"],"horizontal":["15.30"],"speed":["15.31"],"ratio":["15.32"],"with":["15.38","15.40","21.7"],"timeupdate":["15.38","15.40"],"loaded":["15.39","21.9"],"display":["15.39","17.1"],"detailed":["15.39"],"buffering":["15.39"],"cleaned":["15.41"],"up":["15.41"],"destroyed":["15.41"],"scoped":["15.42"],"current":["15.42","20.5","22.3","22.4","25.5"],"preventing":["15.42"],"css":["16.1","18.1","29.11"],"class":["16.1","18.1","20.3"],"determines":["17.1","22.4"],"priority":["17.1"],"dom":["17.1"],"items":["19.1"],"playbackrate":["19.1"],"aspectratio":["19.1"],"width":["19.2","24.36","29.36"],"list":["19.2"],"onswitch":["19.5"],"completion":["19.6"],"onchange":["19.6"],"change":["19.6"],"yarn":["20.1","25.1"],"utf":["20.3","29.37"],"body":["20.3"],"if":["20.5","22.2","25.5","27.2"],"typeof":["20.5","25.5"],"ts":["20.6","21.13","22.6","24.40"],"file":["20.6","20.11"],"from":["20.8","20.9","20.13","21.8","21.12","21.13","22.3","22.6","23.2","25.8","25.11","27.1"],"import":["20.9","21.13","22.6","23.1","23.2","25.11","27.1"],"let":["20.10","22.2","27.2"],"null":["20.10"],"use":["20.11","21.1"],"which":["20.11"],"compatible":["20.11"],"down":["20.11"],"ie":["20.11","25.11"],"plugins":["20.12"],"provide":["20.12","22.0"],"ui":["20.13"],"changing":["20.13"],"therefore":["20.13"],"starting":["20.13"],"and":["21.0","24.5","24.6","24.8","24.22"],"heatmap":["21.0"],"below":["21.1"],"site":["21.1"],"pnpm":["21.2"],"net":["21.3"],"npm":["21.3","26.3"],"plugin":["21.3","21.13","22.6","26.2","26.3","26.6","26.8","26.9","26.12","26.13","26.14","26.15","26.16","26.17","26.21"],"omitted":["21.4"],"defaults":["21.4","21.11"],"currenttime":["21.4"],"percentages":["21.5"],"opacity":["21.5"],"ffffff":["21.5"],"comment":["21.5"],"modes":["21.5","26.5"],"visible":["21.5"],"fontsize":["21.5","26.5"],"percentage":["21.5"],"height":["21.5","27.6","29.36"],"antioverlap":["21.5","26.5"],"synchronousplayback":["21.5","26.5"],"runs":["21.6"],"without":["21.6","21.9","22.6"],"option":["21.6","24.11"],"its":["21.6","22.3"],"receiver":["21.6"],"may":["21.6","24.40"],"return":["21.6","22.3"],"strict":["21.7"],"resolving":["21.7"],"sends":["21.7"],"filled":["21.7"],"synchronous":["21.7"],"config":["21.8","21.12"],"partialoption":["21.8"],"merges":["21.8"],"configuration":["21.8"],"hide":["21.8","24.8","24.44"],"hides":["21.8"],"shows":["21.8"],"layer":["21.8","24.29","29.29"],"reset":["21.8"],"clears":["21.8"],"older":["21.9"],"pending":["21.9"],"loads":["21.9"],"cancelled":["21.9"],"promises":["21.9"],"resolve":["21.9"],"owner":["21.9"],"late":["21.9"],"fetch":["21.9"],"response":["21.9"],"emit":["21.9","26.20"],"artplayerplugindanmuku":["21.9","26.20"],"reject":["21.9"],"background":["21.10"],"live":["21.10"],"target":["21.10"],"requires":["21.10"],"valid":["21.10"],"omitting":["21.10"],"argument":["21.10"],"does":["21.10","22.3"],"are":["21.11","22.7"],"chartwidth":["21.11"],"floor":["21.11"],"chartheight":["21.11"],"05":["21.11","26.20"],"max":["21.11","26.20"],"including":["21.12"],"appends":["21.12"],"original":["21.12","22.3"],"loading":["21.12","24.38"],"scheduling":["21.12"],"handle":["21.12"],"public":["21.12"],"rejections":["21.12"],"separately":["21.12"],"factory":["21.13"],"danmuku":["21.13","26.2","26.6","26.7","26.9","26.10","26.12","26.14","26.15","26.16","26.17","26.19","26.21"],"type":["21.13","26.21"],"runtimeoption":["21.13","26.21"],"point":["21.13","26.21"],"eventmap":["21.13","26.21"],"instance":["22.0"],"at":["22.0"],"artplayerpluginhlscontrol":["22.1","22.2"],"usehls":["22.2","27.2"],"issupported":["22.2","27.2"],"destroyhls":["22.2","27.2"],"undefined":["22.2","27.2"],"playertest":["22.2","27.2"],"longtailvideo":["22.2","27.2"],"uses":["22.3"],"not":["22.3","22.7","24.2","24.5","24.40"],"gain":["22.3"],"synthetic":["22.3"],"track":["22.3","27.6"],"getname":["22.3","27.3"],"item":["22.3","27.3"],"string":["22.3","24.33","24.34"],"sdk":["22.3"],"menus":["22.4"],"selected":["22.4"],"choice":["22.4"],"attaching":["22.4"],"replacement":["22.4"],"creating":["22.5"],"next":["22.5"],"one":["22.5","24.21"],"updates":["22.5"],"hls":["22.5","22.6","27.5"],"keeps":["22.5"],"final":["22.5"],"cleanup":["22.5"],"listener":["22.5"],"needs":["22.6"],"works":["22.6"],"importing":["22.6"],"declarations":["22.6"],"hlscontrol":["22.6"],"workers":["22.7"],"these":["22.7"],"tested":["22.7"],"points":["22.7"],"newly":["22.7"],"declared":["22.7"],"core":["23.0"],"will":["23.0","24.15","24.16","24.22"],"no":["23.0","23.1"],"longer":["23.0"],"bundle":["23.0"],"manual":["23.1"],"dist":["23.2","25.12"],"group":["23.2"],"id":["23.2"],"sometimes":["24.2","24.40"],"known":["24.2"],"immediately":["24.2"],"such":["24.2"],"cases":["24.2"],"memory":["24.3"],"autoplayback":["24.3"],"initialized":["24.5"],"resulting":["24.11"],"black":["24.11"],"bars":["24.11"],"adjusts":["24.11"],"scrolls":["24.12"],"out":["24.12"],"currently":["24.14","24.49"],"appears":["24.14","24.26"],"appear":["24.15","24.16"],"panel":["24.18","24.22","24.25"],"button":["24.20","24.23","24.24"],"bottom":["24.20","24.23","24.24"],"simultaneously":["24.21"],"whether":["24.21"],"context":["24.22"],"menu":["24.22"],"apply":["24.22"],"loses":["24.26"],"focus":["24.26"],"pre":["24.27"],"render":["24.27"],"required":["24.27"],"mobile":["24.28","24.44","24.45","24.48"],"devices":["24.28","24.44"],"boolean":["24.33"],"myplugin":["24.35","29.35"],"column":["24.36"],"columns":["24.36"],"encoding":["24.37","29.37"],"auto":["24.38","27.3","29.38"],"better":["24.38"],"experience":["24.38"],"more":["24.38"],"attributes":["24.38"],"e":["24.40"],"g":["24.40"],"m3u8":["24.40"],"mkv":["24.40"],"however":["24.40"],"have":["24.40"],"programs":["24.41"],"processing":["24.41"],"receive":["24.41"],"three":["24.41"],"en":["24.42"],"zh":["24.42","28.2"],"cn":["24.42","29.42"],"fast":["24.46"],"forward":["24.46"],"web":["24.48"],"based":["24.48"],"browsers":["24.49"],"support":["24.49"],"htmlvideoelement":["24.51"],"example":["24.51"],"demo":["25.3"],"meta":["25.3"],"charset":["25.3"],"ref":["25.4"],"时会自动导入的":["25.6"],"param":["25.10"],"getinstance":["25.10"],"可以兼容到":["25.11"],"和所有插件还会提供一个":["25.12"],"版本的":["25.12"],"mjs":["25.12"],"如":["25.12"],"globalthis":["25.13"],"custom":["25.13"],"agent":["25.13"],"全局变量":["25.13"],"本文描述当前重构分支":["26.0"],"弹幕时间":["26.4"],"单位秒":["26.4"],"省略时为当前播放器时间加":["26.4"],"秒":["26.4"],"滚动":["26.5"],"顶部":["26.5"],"底部":["26.5"],"弹幕可见的模式":["26.5"],"弹幕字体大小":["26.5"],"弹幕是否防重叠":["26.5"],"libs":["26.6","26.8","26.12","26.16"],"uncompiled":["26.6","26.8","26.9","26.12","26.13","26.14","26.16","26.17"],"保存到数据库":["26.6"],"savedanmu":["26.6"],"danmu":["26.6"],"load":["26.19"],"返回的":["26.19"],"完成后得到内部":["26.19"],"对象":["26.19"],"绘制自定义数据使用":["26.20"],"每项为":["26.20"],"x":["26.20"],"默认":["26.20","27.3","29.37"],"播放器添加画质与音轨菜单":["27.0"],"插件控制你放在":["27.0"],"音轨默认":["27.3"],"当前项未知时的文字":["27.3"],"画质还用于自动选项":["27.3"],"音轨不会因此新增一个虚拟":["27.3"],"轨道":["27.3"],"状态":["27.4"],"把替换后的实例绑定到同一个":["27.4"],"并赋给":["27.4"],"前销毁旧实例":["27.5"],"再更新":["27.5"],"每个播放器只保留一个最终清理监听器":["27.5"],"interface":["27.6"],"bitrate":["27.6"],"版本开始":["28.0"],"核心代码除了包含":["28.0"],"zhtw":["28.2"],"tw":["28.2"],"高亮元素":["29.6"],"上":["29.6"],"类似":["29.11"],"的":["29.11"],"fit":["29.11"],"里":["29.14","29.15","29.16","29.25"],"音量条等浮层会应用":["29.22"],"filter":["29.22"],"毛玻璃效果":["29.22"],"看起来更通透":["29.22"],"访问到播放器所需的":["29.27"],"画质地址":["29.33"],"预览图列数":["29.36"],"预览图宽度":["29.36"],"预览图高度":["29.36"],"scale":["29.36"],"字幕样式":["29.37"],"字幕编码":["29.37"],"以提升加载体验":["29.38"],"更多视频属性":["29.38"],"这些属性将直接写入视频元素里":["29.38"],"所以需要特别指明":["29.40"],"元素":["29.41"],"视频地址":["29.41"],"当前实例":["29.41"],"dom元素":["29.51"]},{"0":["19.6"],"1":["3.29","9.3","13.29","19.3","21.4"],"2":["3.29","9.6","19.6","20.13","21.4","29.3"],"3":["9.6"],"4":["9.1","20.13","23.1","24.17","24.34","24.50","25.10","29.5","29.7","29.8","29.9","29.13","29.17","29.21","29.25","29.26","29.33","29.34","29.40","29.42","29.45","29.46"],"5":["13.14","13.25","20.13"],"6":["2.41","5.42","5.43","12.1","12.3","12.4","12.5","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","25.10"],"7":["5.4","5.6","5.7","5.10","5.17","5.18","5.19","5.24","5.38","5.39","5.40","12.19","12.21","12.23","12.25","12.26","15.10","24.39"],"8":["5.9","5.15","5.25","5.27","5.30","5.41","12.17","15.1","15.9","15.14","15.21","15.25","15.30","15.31","15.32","15.34","15.35","15.36","15.41","24.37","25.3","29.37"],"9":["5.11","5.13","15.11","15.13","15.23","24.4"],"10":["5.8","5.41","7.3","7.4","12.2","12.6","12.18","12.24","15.8","15.12","15.41","17.3","17.4","19.6"],"11":["15.3","15.21","20.11"],"14":["29.33"],"22":["9.9","19.9"],"25":["24.34","29.34"],"40":["3.7"],"100":["3.10","21.13"],"150":["9.4","19.4"],"300":["3.5","3.6"],"500":["3.8","3.9","3.17"],"512":["21.5","26.5"],"1000":["13.15","26.6"],"3000":["13.16"],"实例":["0.0","5.0"],"artplayer":["0.1","0.3","0.5","0.6","0.8","0.9","0.10","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.19","2.20","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","3.1","3.3","3.4","3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.15","3.16","3.17","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.28","3.31","3.32","3.33","5.1","5.2","5.3","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.16","5.18","5.19","5.20","5.21","5.22","5.25","5.28","5.30","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.41","5.44","5.46","5.47","9.1","9.2","9.5","10.3","10.4","10.5","10.6","10.7","10.14","10.17","12.2","12.6","12.17","12.18","12.20","12.22","12.24","12.28","12.29","12.30","12.31","13.5","13.6","13.7","13.8","13.9","13.28","13.29","13.30","15.2","15.3","15.5","15.20","15.22","15.28","15.33","15.34","15.37","15.41","15.44","15.46","15.47","19.5","20.2","21.6","24.4","24.7","24.17","24.31","24.39","25.2","25.13","28.1","29.10","29.19","29.31","29.34","29.39","29.40","29.47","29.50"],"container":["0.1","0.5","0.6","0.7","0.8","0.9","0.10","0.13","0.15","0.16","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","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.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","5.2","5.3","5.9","5.11","5.13","5.14","5.16","5.20","5.21","5.22","5.23","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.41","5.44","5.46","5.47","9.2","9.5","10.1","10.3","10.4","10.5","10.6","10.7","10.14","10.17","12.2","12.20","12.22","12.28","12.29","12.30","12.31","15.2","15.20","15.22","15.28","15.41","15.44","15.46","19.5","20.9","21.10","23.3","24.4","24.7","24.17","24.31","24.39","26.6","26.10","26.12","26.13","28.1","28.2","29.10","29.19","29.31","29.34","29.39","29.47"],"app":["0.1","0.3","0.5","0.6","0.7","0.8","0.9","0.10","0.16","0.17","2.2","2.6","2.17","2.18","2.20","2.22","2.24","2.28","2.29","2.30","2.31","5.12","5.16","5.20","5.22","5.23","5.28","5.33","5.34","5.44","9.5","10.1","10.4","10.5","10.6","10.14","12.31","15.20","15.22","15.28","15.33","15.41","15.44","19.5","20.3","20.5","23.3","23.4","24.4","24.7","24.10","24.31","24.32","24.39","24.43","25.9","26.6","26.10","26.12","26.13","26.14","28.2","28.3","29.1","29.19","29.31","29.32","29.39","29.47"],"assets":["0.2","0.6","0.7","0.10","0.14","0.16","0.17","2.2","2.22","2.28","2.31","5.12","5.23","5.44","9.5","10.1","10.4","10.6","10.14","15.12","15.16","15.20","15.22","15.33","23.4","24.1","24.4","24.7","24.10","24.19","24.31","24.32","24.43","25.9","26.6","26.10","26.11","26.12","26.13","26.14","28.2","28.3","28.4","29.1","29.4","29.31","29.32"],"sample":["0.2","0.6","0.14","0.16","0.17","2.2","2.28","5.12","5.23","9.5","9.7","10.1","10.4","10.6","10.14","15.12","15.16","15.20","15.22","15.33","15.45","19.7","23.4","24.1","24.4","24.7","24.10","24.19","24.31","24.32","24.43","24.47","25.9","26.6","26.11","26.12","26.13","26.14","28.2","28.4","29.4","29.32"],"video":["0.2","0.14","0.16","0.17","5.12","7.4","8.4","9.5","9.7","10.4","10.6","10.14","15.20","15.22","15.45","17.4","18.4","19.7","21.5","22.4","23.4","24.1","24.10","24.19","24.29","24.30","24.32","24.43","24.47","24.48","24.51","26.11","26.12","26.13","26.14","28.2","28.4","29.4","29.29","29.30","29.32","29.43"],"mp4":["0.2","0.14","0.17","5.12","5.45","6.2","7.4","8.4","9.5","9.7","10.4","10.14","15.12","15.16","15.20","15.33","15.45","16.2","17.4","18.4","19.7","24.1","24.4","24.10","24.19","24.29","24.30","24.32","24.43","24.47","26.11","26.12","26.13","26.14","28.2","28.4","29.4","29.29","29.30","29.43"],"console":["0.2","0.4","1.6","7.2","10.2","11.6","15.16","17.2","24.35","26.18","29.35"],"info":["0.2","0.4","1.1","7.2","10.2","11.6","17.2","24.35","26.18","29.35"],"queryselector":["0.3","5.41","10.3","15.41","24.1","29.1"],"art":["0.3","0.8","0.9","0.11","0.13","0.15","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.13","2.14","2.15","2.19","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.40","2.41","3.5","3.6","3.7","3.30","5.1","5.2","5.3","5.6","5.7","5.8","5.9","5.10","5.14","5.15","5.17","5.18","5.19","5.21","5.24","5.25","5.27","5.30","5.31","5.32","5.34","5.35","5.36","5.37","5.39","5.46","5.47","9.1","9.2","10.4","10.6","10.7","10.12","10.14","10.17","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.15","12.16","12.17","12.18","12.20","12.21","12.22","12.23","12.24","12.26","12.27","12.28","12.29","12.30","12.39","12.40","12.41","15.1","15.2","15.3","15.8","15.9","15.10","15.14","15.23","15.28","15.31","15.32","15.34","15.35","15.36","15.37","15.46","15.47","19.2","19.5","21.11","22.4","23.2","24.4","24.17","24.35","24.39","24.50","26.6","26.7","26.9","26.10","26.12","26.15","26.17","29.5","29.7","29.10","29.17","29.33","29.34","29.40","29.50"],"new":["0.3","0.5","0.8","0.9","0.10","0.11","0.13","0.15","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.19","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.5","3.30","5.1","5.2","5.3","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.16","5.17","5.18","5.19","5.20","5.21","5.22","5.25","5.27","5.28","5.30","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.46","5.47","9.1","9.2","9.5","10.4","10.5","10.6","10.7","10.14","10.17","12.2","12.6","12.7","12.8","12.10","12.17","12.18","12.20","12.22","12.24","12.26","12.28","12.29","12.30","12.31","15.1","15.2","15.3","15.22","15.23","15.28","15.32","15.34","15.35","15.37","15.44","15.46","15.47","19.5","22.5","24.4","24.17","24.39","26.6","26.9","26.10","26.12","26.13","26.15","26.17","28.1","28.2","29.7","29.10","29.19","29.34","29.39","29.40","29.47","29.50"],"url":["0.6","0.7","0.9","0.10","0.14","0.16","0.17","2.2","2.18","2.22","2.24","2.28","2.29","2.30","2.31","5.20","5.23","5.33","5.44","8.4","9.5","10.1","10.4","10.5","10.6","10.14","15.20","15.22","15.33","15.44","18.4","23.3","23.4","24.1","24.4","24.7","24.10","24.19","24.31","24.32","24.41","24.43","25.9","26.6","26.10","26.11","26.12","26.13","26.14","28.2","28.3","28.4","29.1","29.4","29.31","29.32","29.39","29.47"],"js":["0.11","0.12","1.6","3.1","3.4","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.31","3.32","3.33","5.4","5.6","5.7","5.15","5.24","5.26","5.30","5.38","5.39","5.40","5.42","5.43","9.2","10.3","10.7","10.17","11.6","12.1","12.3","12.4","12.5","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.18","12.19","12.21","12.23","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.22","13.28","13.29","13.30","15.7","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.23","15.25","15.27","15.30","15.31","15.32","15.34","15.35","15.36","15.41","15.43","15.47","19.2","19.5","23.1","24.13","24.17","24.25","24.34","24.42","24.50","26.8","26.16","27.4","29.3","29.5","29.8","29.9","29.12","29.13","29.14","29.15","29.16","29.17","29.18","29.20","29.21","29.23","29.24","29.25","29.26","29.27","29.28","29.33","29.40","29.42","29.44","29.45","29.46","29.48","29.49"],"var":["0.11","0.12","1.1","2.41","3.5","3.6","3.7","3.17","3.30","5.1","5.6","5.7","5.8","5.9","5.10","5.11","5.13","5.15","5.17","5.18","5.19","5.21","5.24","5.25","5.27","5.30","5.38","5.39","5.40","5.41","5.43","5.47","9.1","9.2","10.3","10.4","10.6","10.7","10.17","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.23","12.24","12.25","12.26","12.27","12.28","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","15.1","15.2","15.3","15.8","15.9","15.10","15.14","15.23","15.25","15.28","15.31","15.32","15.34","15.35","15.36","15.37","15.41","15.46","15.47","19.2","19.5","23.1","23.2","24.4","24.17","24.34","24.39","24.50","26.6","26.7","26.9","26.15","26.16","26.17","29.3","29.5","29.7","29.17","29.25","29.33","29.34","29.40","29.50"],"function":["0.14","6.5","16.5","17.1","20.10","29.37"],"构造函数":["1.0"],"code":["1.11","3.34","5.5","5.26","5.29","9.6","10.3","11.1","13.1","13.2","13.3","13.4","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.31","13.32","13.33","15.6","15.7","15.11","15.13","15.17","15.18","15.19","15.23","15.24","15.30","15.38","15.39","15.40","19.1","19.2","19.5","20.11","21.6","24.3","24.5","24.9","24.25","24.28","24.33","24.34","24.40","24.42","24.45","25.11","26.1","26.20","29.6","29.11","29.14","29.15","29.16","29.22","29.27","29.36","29.38","29.41","29.51"],"once":["2.0","22.5"],"不必停下来进一步缓冲内容":["2.42"],"media":["2.46","2.47","12.43","12.48"],"已经加载完成":["2.46"],"操作完成":["2.56"],"操作开始":["2.57"],"agent":["2.58"],"的":["3.0"],"false":["3.3","3.34","20.5","21.5","25.5","26.14"],"div":["3.34","5.5","5.29","9.6","10.3","10.13","10.15","11.1","11.2","11.3","11.4","11.7","11.8","11.11","11.12","13.1","13.12","13.13","13.14","13.15","13.16","13.24","13.25","13.27","13.31","13.33","15.4","15.15","15.17","15.26","15.38","15.39","15.40","15.42","19.1","19.2","20.5","21.6","21.10","24.3","24.5","24.6","24.8","24.12","24.14","24.15","24.16","24.18","24.20","24.23","24.24","24.26","24.33","24.40","24.44","24.45","24.46","24.49","24.51","25.3","25.5","26.20","29.11","29.22","29.36"],"classname":["3.34","5.5","5.29","9.6","10.3","11.1","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","13.1","13.12","13.13","13.14","13.15","13.16","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.33","15.15","15.17","15.26","15.38","15.39","15.40","19.1","19.2","21.6","24.3","24.5","24.6","24.8","24.12","24.14","24.15","24.16","24.18","24.20","24.23","24.24","24.26","24.28","24.33","24.40","24.44","24.45","24.46","24.49","26.20","29.11","29.22","29.36","29.41"],"run":["3.34","5.5","5.26","5.29","9.6","10.3","11.1","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.12","13.1","13.2","13.4","13.6","13.7","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","15.6","15.11","15.13","15.15","15.17","15.18","15.19","15.24","15.30","15.38","15.39","15.40","19.1","19.2","19.5","21.6","24.3","24.5","24.6","24.8","24.12","24.20","24.23","24.24","24.25","24.28","24.33","24.40","24.42","24.45","24.46","24.49","26.20","29.11","29.22","29.27","29.36","29.38","29.41"],"add":["4.0","6.3","8.3","14.0","16.3","18.3","20.1","22.5","25.1","26.2"],"例如我想写一个在视频暂停后":["4.0"],"显示一个图片广告的插件":["4.0"],"on":["5.12","15.12","15.16","15.33"],"播放器当前可见宽高":["5.29"],"document":["5.41","10.3","15.41","26.16","29.1"],"default":["5.45","7.5","15.45","17.5","19.3","21.10","21.11","25.10"],"true":["5.45","7.5","9.7","13.31","15.4","15.45","17.5","19.7","21.13","22.2","24.4","24.10","24.30","24.47","26.21","27.2","29.4","29.30","29.37"],"html":["5.45","6.1","6.2","6.3","6.4","6.5","7.3","7.5","8.1","8.2","8.3","8.5","9.8","15.45","16.1","16.2","16.3","16.4","16.5","17.3","17.5","18.1","18.2","18.3","18.5","19.8","24.29","24.30","24.37","25.13","29.29","29.30","29.37"],"sd":["5.45","15.45"],"480p":["5.45","15.45"],"组件索引":["6.1","8.1"],"用于显示的优先级":["6.1","8.1"],"contextmenu":["6.2","6.3","16.2","16.3"],"name":["6.2","6.3","6.4","7.3","7.4","8.2","8.3","8.4","8.5","9.8","15.29","16.2","16.3","16.4","17.3","17.4","18.2","18.3","18.4","18.5","19.8","22.2","22.3","24.29","24.35","27.3","27.6","29.29","29.35"],"your":["6.2","6.3","6.4","6.5","7.3","16.2","16.3","16.4","16.5","17.3","24.47","29.43"],"menu":["6.2","6.3","6.4","6.5","16.2","16.3","16.4","16.5","24.14","24.15","24.16"],"click":["6.4","6.5","16.4","16.5","17.1"],"args":["6.5","16.5"],"组件的":["7.1"],"dom":["7.1","24.41","24.51"],"元素":["7.1"],"style":["7.1","8.2","8.3","8.5","18.2","18.3","18.5","19.3","20.4","24.29"],"object":["7.1","17.1"],"mounted":["7.2","17.2","24.27"],"subtitle":["7.2","7.5","17.2","17.5"],"button1":["7.3","7.4","17.3","17.4"],"index":["7.3","7.4","17.3","17.4","26.8","27.3"],"position":["7.3","17.3"],"left":["7.3","17.3"],"controls":["7.4","17.4","21.5","22.2","27.2"],"right":["7.5","17.5"],"selector":["7.5","17.5","24.30","29.30"],"01":["7.5","17.5","19.3","19.4"],"layers":["8.2","8.3","8.4","8.5","18.2","18.3","18.4","18.5"],"potser":["8.2","8.3","8.5","18.2","18.3","18.5","24.29","29.29"],"width":["8.2","8.3","8.5","9.4","9.9","18.2","18.3","18.5","19.4","19.9","21.5","24.29","26.5"],"100px":["8.2","8.3","8.5","18.2","18.3","18.5"],"src":["8.2","8.5","9.9","18.2","18.5","19.9"],"color":["9.3","19.3"],"red":["9.3","19.3"],"srt":["9.3","19.3"],"id":["9.3","19.3","24.47"],"yellow":["9.3"],"02":["9.3"],"setting":["9.5","9.7","19.7","22.2","24.30","27.2","29.30"],"max":["9.6","19.6"],"step":["9.6"],"settings":["9.8","19.8","22.2","27.2"],"slider":["9.8","19.8"],"tooltip":["9.8","19.8"],"5x":["9.8","19.8"],"icon":["9.8","19.8"],"img":["9.9","19.9"],"height":["9.9","19.9","22.3","24.36"],"state":["9.9","13.34","19.9"],"svg":["9.9","19.9"],"secondary":["10.0"],"custom":["10.3"],"test":["10.4"],"foo":["10.4"],"bar":["10.4","13.33","24.18","24.20","24.23","24.24","24.44"],"const":["10.4","20.8","20.9","21.13","22.6","25.8","26.21","27.6"],"set":["10.8","10.9","10.10","24.2"],"whether":["10.8","10.9","10.10","10.16","24.37"],"all":["10.8","10.9","10.10","10.16","13.0"],"are":["10.8","13.34"],"displayed":["10.8","21.8"],"toggle":["10.8","10.9","10.10","10.16"],"display":["10.9","10.10","10.16","16.1","18.1","21.7"],"options":["10.11"],"texttrack":["10.11"],"gets":["10.11"],"text":["10.11"],"track":["10.11","22.6"],"activecues":["10.11"],"list":["10.11","22.3"],"via":["10.12"],"show":["10.12","22.2","26.19","27.2"],"triggered":["10.12"],"event":["10.12","17.1"],"is":["10.12","12.42","13.15","20.6","22.5","24.26","24.27"],"named":["10.12"],"of":["10.13","10.15","12.49","12.62","13.34"],"first":["11.0","15.0"],"level":["11.0","15.0","22.2","27.3"],"players":["11.1","13.34"],"simultaneously":["11.1"],"there":["12.42"],"not":["12.42","15.15","21.8","21.10","22.0","22.5"],"rendering":["12.44","21.11"],"value":["12.45","19.6","21.11"],"when":["12.46","15.5","21.5"],"because":["12.47","12.62"],"the":["12.47","12.54","20.3","21.7","24.38","27.2"],"data":["12.48","21.6","25.10","26.20"],"or":["12.48","21.6","22.0"],"been":["12.50","12.51","12.53"],"begun":["12.52"],"having":["12.53"],"rate":["12.55"],"operation":["12.56","12.57"],"to":["12.58","21.8","22.4","24.11","24.21","24.37"],"fetch":["12.58"],"loading":["12.59"],"by":["12.60"],"has":["12.61"],"constructor":["13.0"],"property":["13.0","20.10"],"off":["13.1"],"effects":["13.33"],"frequently":["13.34"],"created":["13.34","21.10"],"destroyed":["13.34","22.5"],"if":["13.34","21.11"],"you":["13.34","24.1","24.2"],"wish":["13.34"],"preserve":["13.34"],"for":["14.0","22.1"],"example":["14.0"],"let":["14.0"],"after":["15.4"],"destruction":["15.4"],"defaults":["15.4"],"note":["15.5","20.3"],"global":["15.5","20.13"],"configuration":["15.5","21.12"],"remove":["15.5"],"destroy":["15.5","20.5","21.10","22.0","22.5","25.5"],"will":["15.5"],"also":["15.5"],"ready":["15.12","15.16"],"seek":["15.12"],"settimeout":["15.12","26.6"],"does":["15.15","21.8","22.0"],"trigger":["15.15"],"additional":["15.15"],"events":["15.15"],"fullscreen":["15.26"],"fullscreenweb":["15.26"],"webpage":["15.26"],"in":["15.29","27.2"],"domrect":["15.29"],"player":["15.29"],"s":["15.29","21.1"],"current":["15.29","21.0","21.9"],"errors":["15.42"],"with":["15.42"],"duplicate":["15.42"],"class":["15.42"],"names":["15.42"],"priority":["16.1","18.1"],"element":["16.1","24.41","24.51"],"handler":["17.1"],"subtitleoffset":["19.1"],"span":["19.3"],"min":["19.6"],"npm":["20.2","25.2"],"dist":["20.2","20.12","21.3","25.2","26.3"],"warning":["20.3","21.9","24.47"],"option":["20.4","21.9","21.13","25.4","26.21"],"get":["20.4","22.2"],"return":["20.5","24.35","25.5","25.10","26.6","29.35"],"ref":["20.5","25.5"],"param":["20.10"],"getinstance":["20.10"],"import":["20.11"],"from":["20.11"],"group":["20.11","25.11"],"bash":["20.11","25.11"],"jsdelivr":["20.11","25.11"],"net":["20.11","25.11"],"mjs":["20.12"],"format":["20.12"],"such":["20.12"],"as":["20.12"],"version":["20.13"],"variable":["20.13"],"globalthis":["20.13"],"user":["20.13"],"this":["21.0","21.5","24.49"],"guide":["21.0"],"describes":["21.0"],"refactor":["21.0"],"local":["21.1"],"plugin":["21.1","21.6","25.12"],"danmuku":["21.3","25.12","26.3","26.8"],"mode":["21.4","26.4"],"scrolling":["21.4"],"top":["21.4"],"bottom":["21.4","24.18","24.44"],"follow":["21.5"],"playbackrate":["21.5"],"enabled":["21.5"],"mount":["21.5","21.8","26.5"],"undefined":["21.5","26.5"],"center":["21.5"],"heatmap":["21.5","21.13","26.5","26.21"],"enable":["21.5"],"construction":["21.5"],"below":["21.5"],"input":["21.5"],"directly":["21.6","24.38"],"asynchronously":["21.6","24.2"],"libs":["21.6","26.20"],"uncompiled":["21.6"],"truthy":["21.7"],"result":["21.7"],"adds":["21.7"],"queue":["21.7"],"item":["21.7"],"including":["21.7"],"awaited":["21.7"],"permits":["21.7"],"normal":["21.7"],"functions":["21.7"],"receive":["21.7"],"items":["21.8"],"waiting":["21.8"],"delete":["21.8"],"target":["21.8"],"moves":["21.8"],"panel":["21.8","24.14","24.15","24.16"],"an":["21.8","24.51"],"existing":["21.8","22.4","24.51"],"corresponding":["21.9"],"public":["21.9"],"promise":["21.9"],"handle":["21.9"],"rejection":["21.9"],"await":["21.9"],"try":["21.9"],"catch":["21.9"],"initial":["21.9"],"automatic":["21.9"],"observes":["21.9"],"logs":["21.9"],"invalid":["21.9"],"leaves":["21.9"],"select":["21.10"],"releases":["21.10"],"application":["21.10"],"owns":["21.10"],"any":["21.10","23.0"],"it":["21.10","22.0"],"send":["21.11"],"emit":["21.11"],"artplayerplugindanmuku":["21.11","26.11","26.13","26.14","26.18"],"x":["21.11"],"pairs":["21.11"],"axis":["21.11"],"uses":["21.11"],"pixels":["21.11"],"seconds":["21.11"],"explicitly":["21.11","24.40"],"supplying":["21.11"],"another":["21.11"],"range":["21.11","22.7"],"start":["21.12"],"no":["21.12"],"starts":["21.12"],"stop":["21.12"],"stops":["21.12"],"hide":["21.12","24.11","26.19"],"layer":["21.12"],"points":["21.13","26.5"],"download":["22.0"],"create":["22.0"],"script":["22.1"],"tags":["22.1","24.37"],"load":["22.1","26.20"],"adaptive":["22.2","27.2"],"elephants":["22.2","27.2"],"dream":["22.2","27.2"],"v4":["22.2","27.2"],"m3u8":["22.2","27.2"],"plugins":["22.2","26.11","26.13","26.14","26.18","27.2"],"quality":["22.2","27.2"],"choices":["22.2","27.2"],"getname":["22.2"],"label":["22.3"],"call":["22.3"],"omits":["22.3"],"calls":["22.3"],"include":["22.3"],"without":["22.3"],"formatter":["22.3"],"labels":["22.3"],"use":["22.3","22.4"],"p":["22.3"],"lang":["22.3","22.6","24.43","27.6","29.43"],"then":["22.3"],"instance":["22.4","22.5"],"same":["22.4"],"assigning":["22.4"],"hls":["22.4","27.4"],"synchronous":["22.4"],"method":["22.4"],"per":["22.5"],"each":["22.5"],"do":["22.5"],"a":["22.5","24.21"],"interface":["22.6"],"number":["22.6"],"bitrate":["22.6"],"string":["22.6","27.6"],"firefox":["22.7","27.7"],"grouped":["22.7"],"stream":["22.7"],"crashes":["22.7"],"separate":["22.7"],"switching":["22.7"],"languages":["23.0"],"other":["23.0"],"than":["23.0"],"simplified":["23.0"],"chinese":["23.0"],"and":["23.0","24.14","24.15","24.16","24.26","24.48"],"english":["23.0"],"required":["23.1"],"zhtw":["23.2"],"zh":["23.2"],"tw":["23.2"],"may":["24.1"],"can":["24.2","24.27"],"muted":["24.4","29.4"],"yet":["24.5"],"playing":["24.5","24.26"],"highlighted":["24.6"],"elements":["24.6"],"playback":["24.8"],"time":["24.8","24.21"],"size":["24.11"],"browser":["24.12"],"viewport":["24.12","24.48"],"context":["24.14","24.15","24.16"],"control":["24.18","24.20","24.23","24.24","24.44"],"allowed":["24.21"],"play":["24.21","29.43"],"at":["24.21"],"filter":["24.22","26.5"],"frosted":["24.22"],"glass":["24.22"],"more":["24.22"],"transparent":["24.22"],"look":["24.22"],"however":["24.22"],"access":["24.27"],"setting01":["24.30","29.30"],"scale":["24.36"],"utf":["24.37","25.3"],"escape":["24.37","29.37"],"boolean":["24.37","29.37"],"these":["24.38"],"be":["24.38"],"written":["24.38"],"into":["24.38"],"correct":["24.40"],"so":["24.40"],"specified":["24.40"],"parameters":["24.41"],"devices":["24.45","24.46"],"mobile":["24.46"],"dimensions":["24.48"],"feature":["24.49"],"body":["25.3"],"属性":["25.10"],"export":["25.10"],"https":["25.11"],"head":["25.13"],"title":["25.13"],"runtime":["26.0"],"yarn":["26.2"],"显式":["26.4"],"保留":["26.4"],"是否同步播放速度":["26.5"],"弹幕发射器挂载点":["26.5"],"默认为播放器控制栏中部":["26.5"],"是否开启热力图":["26.5"],"当播放器宽度小于此值时":["26.5"],"弹幕发射器置于播放器底部":["26.5"],"保留的配置字段":["26.5"],"绘制自定义数据请发送":["26.5"],"事件":["26.5"],"resolve":["26.6"],"xml":["26.14","26.18"],"emitter":["26.14"],"danmu":["26.16","26.18"],"createelement":["26.16"],"visible":["26.18"],"显示弹幕":["26.18"],"config":["26.19"],"reset":["26.19"],"同步返回同一个内部对象":["26.19"],"它与注册在":["26.19"],"是图表像素坐标":["26.20"],"不是秒":["26.20"],"渲染会修改内层数组的第二项":["26.20"],"保留原数据时请复制每一对坐标":["26.20"],"配置中的":["26.20"],"字段仅存储":["26.20"],"不会自动绘图":["26.20"],"resize":["26.20"],"或成功":["26.20"],"会恢复自动曲线":["26.20"],"需要自定义曲线时可在这些事件后重新发送":["26.20"],"上的":["27.0"],"artplayerpluginhlscontrol":["27.1"],"根据原始":["27.3"],"sdk":["27.3"],"档位或轨道对象返回字符串":["27.3"],"当前标签调用没有":["27.3"],"列表调用带有索引":["27.3"],"省略画质回调时":["27.3"],"标签取":["27.3"],"后":["27.4"],"如需立即刷新":["27.4"],"可以调用已有同步方法":["27.4"],"每个":["27.5"],"实例只销毁一次":["27.5"],"不要在每次加载时累积新的播放器":["27.5"],"这两个版本是验证点":["27.7"],"不是新定义的支持范围":["27.7"],"的分组播放崩溃和另一项切组停滞仍在排查":["27.7"],"简体中文":["28.0"],"和":["28.0"],"英文":["28.0"],"有时候":["29.2"],"地址没那么快知道":["29.2"],"这时候你可以异步设置":["29.2"],"cover":["29.11"],"但在部分低性能设备或老旧浏览器上可能会有性能或兼容性问题":["29.22"],"预览图缩放":["29.36"],"是否转义":["29.37"],"标签":["29.37"],"默认为":["29.37"],"onvttload":["29.37"],"用于修改":["29.37"]},{"0":["15.12","25.9"],"1":["3.25","9.9","19.9","26.4"],"2":["3.26","9.3","13.29","19.3","24.3"],"3":["3.28","13.28","19.6","29.1"],"4":["3.28","13.28","19.1","20.10","24.5","24.8","24.9","24.13","24.23","24.24","24.25","24.28","24.33","24.36","24.40","24.42","24.45","24.46","24.49","29.6","29.11","29.12","29.14","29.15","29.16","29.18","29.20","29.22","29.23","29.24","29.28","29.36","29.37","29.38","29.41","29.44","29.48","29.49","29.51"],"5":["3.23","3.29","9.9","13.29","19.9","24.7"],"6":["3.29","13.29","15.43","20.10","24.2","29.2"],"7":["5.29","15.6","15.7","15.17","15.18","15.19","15.24","15.38","15.39","15.40","29.27","29.38"],"8":["5.26","15.15","15.26","15.27","24.36","25.13","29.36","29.41"],"9":["5.5"],"10":["3.12","3.14","3.27","5.12","9.9","19.9","21.13","26.21"],"14":["24.33"],"20":["3.11"],"22":["9.5"],"40":["13.7"],"100":["13.10","26.21"],"300":["13.5","13.6"],"500":["3.21","13.8","13.9","13.17"],"2000":["3.22","3.24","13.22"],"3000":["3.15","15.12"],"5000":["3.4","3.13","3.16"],"的":["0.0","0.4","1.0","5.0"],"url":["0.1","0.3","0.5","0.8","0.12","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.19","2.20","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.5","3.30","5.1","5.2","5.3","5.8","5.9","5.13","5.14","5.15","5.16","5.17","5.18","5.19","5.21","5.22","5.25","5.28","5.30","5.31","5.32","5.34","5.35","5.36","5.37","5.46","5.47","9.1","9.2","9.6","10.3","10.7","10.17","12.2","12.6","12.7","12.8","12.10","12.12","12.16","12.17","12.18","12.20","12.22","12.24","12.26","12.28","12.29","12.30","12.31","15.2","15.3","15.8","15.9","15.14","15.23","15.28","15.31","15.32","15.34","15.35","15.36","15.37","15.41","15.46","15.47","19.2","19.5","20.5","20.9","21.13","23.2","24.17","24.34","24.39","24.50","26.9","26.15","26.17","26.20","28.1","29.7","29.10","29.19","29.34","29.40","29.50"],"assets":["0.1","0.3","0.5","0.8","0.9","0.11","0.13","0.15","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.15","2.16","2.17","2.18","2.19","2.20","2.21","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","2.40","3.30","5.2","5.3","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.16","5.18","5.19","5.20","5.21","5.22","5.25","5.28","5.30","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.46","5.47","9.1","9.2","9.6","10.3","10.5","10.7","10.17","12.2","12.6","12.17","12.18","12.20","12.22","12.24","12.28","12.29","12.30","12.31","15.2","15.3","15.9","15.14","15.23","15.28","15.31","15.32","15.34","15.35","15.37","15.41","15.44","15.46","15.47","19.2","19.5","20.9","23.2","23.3","24.17","24.34","24.39","24.40","26.9","26.15","26.17","26.20","28.1","29.10","29.19","29.33","29.34","29.39","29.40","29.47","29.50"],"sample":["0.1","0.3","0.5","0.7","0.8","0.9","0.10","0.11","0.13","0.15","2.6","2.11","2.12","2.16","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.29","2.30","2.31","2.39","5.2","5.3","5.9","5.11","5.13","5.14","5.15","5.16","5.18","5.19","5.20","5.21","5.22","5.28","5.30","5.31","5.32","5.33","5.34","5.35","5.36","5.44","5.46","5.47","9.2","9.6","10.3","10.5","10.7","10.17","12.2","12.18","12.20","12.22","12.24","12.28","12.29","12.30","12.31","15.2","15.23","15.28","15.34","15.41","15.44","15.46","19.2","19.5","20.9","21.1","23.2","23.3","24.17","24.34","24.39","24.40","26.9","26.10","26.15","26.17","26.20","28.3","29.1","29.10","29.19","29.31","29.33","29.34","29.39","29.40","29.47"],"video":["0.1","0.3","0.5","0.6","0.7","0.8","0.9","0.10","0.13","0.15","2.2","2.6","2.12","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","2.31","5.2","5.3","5.9","5.11","5.13","5.14","5.16","5.20","5.22","5.23","5.28","5.31","5.32","5.33","5.35","5.36","5.44","5.46","9.2","9.6","10.1","10.3","10.5","10.7","10.17","12.2","12.22","12.28","12.29","12.30","12.31","15.28","15.41","15.44","15.46","19.2","19.5","20.9","21.13","23.2","23.3","24.7","24.17","24.31","24.39","25.9","26.6","26.10","28.3","29.1","29.10","29.19","29.31","29.34","29.39","29.40","29.47"],"mp4":["0.3","0.5","0.6","0.7","0.8","0.9","0.10","0.16","2.2","2.17","2.18","2.20","2.22","2.24","2.28","2.29","2.30","2.31","5.16","5.20","5.22","5.23","5.28","5.32","5.33","5.34","5.44","5.46","9.2","10.1","10.3","10.5","10.6","10.7","10.17","12.28","12.29","12.30","12.31","15.22","15.23","15.28","15.41","15.44","19.2","19.5","20.9","23.2","23.3","23.4","24.7","24.17","24.31","24.39","25.9","26.6","26.10","28.3","29.1","29.10","29.19","29.31","29.32","29.34","29.39","29.47"],"warning":["0.4","10.2","10.4","11.6","15.12","15.16","15.33","20.4","24.7","24.10","28.0"],"提示":["0.4"],"默认所有播放器实例都是共享同一个":["0.4"],"localstorage":["0.4"],"而且默认的":["0.4"],"是":["0.4"],"settings":["0.4","9.2","9.5","19.5"],"如果你想不同的播放器使用不同的":["0.4"],"console":["0.6","0.14","0.17","6.2","6.3","6.4","6.5","9.3","9.4","10.1","10.4","10.5","10.6","10.14","11.1","16.2","16.3","16.4","16.5","19.3","19.4","21.13","24.30","26.14"],"info":["0.6","0.14","0.17","1.6","6.2","6.3","6.4","6.5","9.3","9.4","10.1","10.4","10.5","10.6","10.14","11.1","15.16","16.2","16.3","16.4","16.5","19.3","19.4","24.30"],"play":["0.6","10.6","12.42","24.43","29.4"],"on":["0.7","0.8","0.9","0.10","2.2","2.22","5.33","5.44","7.5","8.5","9.9","10.7","10.14","15.0","15.28","15.44","17.5","18.5","19.9","20.3","22.5","24.22"],"ready":["0.9","0.10","2.2","5.12","5.44","7.5","10.14","15.33","17.5"],"artplayer":["0.11","0.12","1.6","2.41","3.34","5.4","5.6","5.7","5.17","5.24","5.26","5.27","5.29","5.38","5.39","5.40","5.42","5.43","9.6","11.1","11.6","12.1","12.3","12.4","12.5","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.19","12.21","12.23","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.1","13.3","13.4","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.31","13.32","13.33","15.1","15.7","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.23","15.24","15.25","15.27","15.30","15.31","15.32","15.35","15.36","15.43","19.1","19.2","19.6","20.13","21.10","23.1","24.25","24.27","24.33","24.34","24.40","24.42","24.50","26.20","29.3","29.5","29.7","29.8","29.9","29.13","29.14","29.15","29.16","29.17","29.21","29.25","29.26","29.33","29.36","29.42","29.45","29.46"],"container":["0.11","0.12","1.1","2.1","2.3","2.4","2.14","2.41","3.5","3.6","3.7","3.8","3.9","3.10","3.17","3.29","3.30","5.1","5.4","5.6","5.7","5.8","5.10","5.15","5.17","5.18","5.19","5.24","5.25","5.26","5.27","5.30","5.38","5.39","5.40","5.42","5.43","9.1","9.6","12.1","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.21","12.23","12.24","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.30","15.1","15.3","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.23","15.25","15.30","15.31","15.32","15.34","15.35","15.36","15.37","15.47","19.2","19.6","21.6","21.13","23.1","23.2","24.25","24.33","24.34","24.40","24.42","24.50","26.7","26.9","26.15","26.16","26.17","26.20","29.5","29.7","29.17","29.25","29.27","29.33","29.40","29.42","29.50"],"app":["0.11","0.12","0.13","0.15","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.19","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.5","3.6","3.7","3.30","5.1","5.2","5.3","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.17","5.18","5.19","5.21","5.25","5.27","5.30","5.31","5.32","5.35","5.36","5.37","5.39","5.41","5.46","5.47","9.1","9.2","9.6","10.3","10.7","10.17","12.2","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.15","12.16","12.17","12.18","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.28","12.29","12.30","12.39","12.40","12.41","15.1","15.2","15.3","15.8","15.9","15.10","15.11","15.13","15.14","15.21","15.23","15.30","15.31","15.32","15.34","15.35","15.36","15.37","15.46","15.47","19.2","20.9","21.6","23.2","24.17","24.34","24.40","24.50","25.3","25.5","26.7","26.9","26.15","26.16","26.17","26.20","28.1","29.7","29.10","29.17","29.25","29.27","29.33","29.34","29.40","29.50"],"new":["0.12","1.1","3.3","3.6","3.7","3.8","3.9","3.10","3.11","3.17","3.22","3.28","3.29","3.33","5.4","5.5","5.6","5.7","5.24","5.26","5.29","5.38","5.39","5.40","5.41","5.42","5.43","9.6","10.3","10.16","12.1","12.3","12.4","12.5","12.9","12.11","12.12","12.13","12.14","12.15","12.16","12.19","12.21","12.23","12.25","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.6","13.7","13.8","13.9","13.30","15.6","15.7","15.8","15.9","15.10","15.11","15.13","15.14","15.15","15.17","15.18","15.19","15.21","15.24","15.25","15.27","15.30","15.31","15.36","15.38","15.39","15.40","15.41","15.43","19.1","19.2","19.6","21.6","21.13","23.1","24.13","24.25","24.33","24.34","24.40","24.42","24.50","26.7","26.8","26.16","26.20","29.3","29.5","29.8","29.9","29.12","29.13","29.14","29.15","29.16","29.17","29.18","29.20","29.21","29.23","29.24","29.25","29.26","29.28","29.33","29.36","29.38","29.42","29.44","29.45","29.46","29.48","29.49","29.51"],"hotkeyevent":["0.14","10.14"],"event":["0.14","9.3","9.4","10.14","19.4","21.5"],"click":["0.14","6.2","6.3","7.1","7.3","10.14","15.20","15.22","16.2","16.3","17.3","24.31","26.14"],"true":["0.16","2.28","3.1","3.20","3.33","7.2","9.2","9.5","17.2","19.5","21.8","21.9","22.6","24.17","24.37","27.6"],"flip":["0.16"],"playbackrate":["0.16"],"aspectratio":["0.16"],"function":["0.17","6.2","6.3","6.4","7.1","7.3","9.4","10.14","10.17","15.20","15.22","16.2","16.3","16.4","17.3","19.4","24.30","24.37","26.14","29.30"],"myplugin":["0.17","10.17"],"art":["1.1","3.1","3.3","3.4","3.8","3.9","3.10","3.11","3.12","3.13","3.17","3.18","3.21","3.22","3.23","3.24","3.27","3.28","3.29","3.32","3.33","5.4","5.5","5.26","5.29","5.38","5.40","5.41","5.42","5.43","9.6","10.3","10.16","12.1","12.11","12.14","12.19","12.25","12.32","12.33","12.34","12.35","12.36","12.37","12.38","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.29","13.30","15.6","15.7","15.15","15.17","15.18","15.19","15.21","15.24","15.25","15.26","15.27","15.30","15.38","15.39","15.40","15.41","15.43","19.1","19.6","20.8","21.6","21.13","23.1","24.9","24.13","24.25","24.28","24.33","24.34","24.40","24.41","24.42","25.8","26.8","26.16","29.3","29.6","29.8","29.9","29.12","29.13","29.14","29.15","29.16","29.18","29.20","29.21","29.23","29.24","29.25","29.26","29.28","29.36","29.38","29.42","29.44","29.45","29.46","29.48","29.49","29.51"],"js":["1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.12","3.2","3.34","5.5","5.29","10.9","10.10","10.13","10.15","10.16","11.1","13.1","13.3","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","15.4","15.6","15.15","15.17","15.24","15.26","15.38","15.39","15.40","15.42","19.1","20.2","21.3","21.6","21.10","22.4","24.3","24.5","24.6","24.8","24.9","24.12","24.14","24.15","24.16","24.18","24.20","24.23","24.24","24.26","24.28","24.33","24.36","24.40","24.44","24.45","24.46","24.49","25.2","26.3","26.20","29.6","29.11","29.22","29.36","29.37","29.38","29.41","29.51"],"手动触发事件":["2.0"],"subtitle":["2.28","2.29","2.30","2.31","12.31"],"或者部分加载完成":["2.46"],"则发送此事件":["2.46"],"已经到达结束点":["2.47"],"正在尝试获取媒体数据":["2.58"],"一级属性":["3.0"],"var":["3.1","3.3","3.4","3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.28","3.29","3.31","3.32","3.33","5.4","5.5","5.26","5.29","5.42","9.6","10.13","10.15","10.16","12.1","12.11","13.3","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.22","13.28","13.29","13.30","15.6","15.7","15.11","15.13","15.15","15.17","15.18","15.19","15.21","15.24","15.26","15.27","15.30","15.38","15.39","15.40","15.43","19.1","19.6","21.6","21.10","24.3","24.5","24.9","24.13","24.25","24.28","24.33","24.40","24.42","26.8","26.20","29.6","29.8","29.9","29.12","29.13","29.14","29.15","29.16","29.18","29.20","29.21","29.22","29.23","29.24","29.26","29.27","29.28","29.36","29.38","29.41","29.42","29.44","29.45","29.46","29.48","29.49","29.51"],"false":["3.18","3.19","3.31","3.32","6.5","13.3","13.18","13.32","16.5","21.4"],"adsplugin":["4.0","14.0"],"option":["4.0","14.0","21.4","21.7","21.11"],"layers":["4.0","14.0"],"ads":["4.0"],"html":["4.0","7.4","8.4","9.7","15.20","15.22","17.4","18.4","19.7","20.13","21.2","24.31","24.32","26.11","26.12","26.13","26.14","29.31","29.32"],"img":["4.0","9.5","9.8","19.8","24.39","29.39"],"style":["4.0","6.1","7.3","8.1","8.4","16.1","17.3","18.1","18.4","25.4","29.29"],"width":["4.0","8.4","9.5","9.8","18.4","19.8","29.29"],"100px":["4.0","8.4","18.4","24.29","29.29"],"src":["4.0","8.3","8.4","9.8","18.3","18.4","19.8","24.29","29.29"],"display":["4.0","10.8"],"none":["4.0"],"position":["4.0","5.20","7.4","8.2","8.3","8.5","15.20","15.22","17.4","18.2","18.3","18.5","24.29","24.32","26.11","26.12","26.13","26.14","29.29","29.32"],"absolute":["4.0","8.2","8.3","8.5","18.2","18.3","18.5","24.29","29.29"],"top":["4.0","8.2","8.3","8.5","18.2","18.3","18.5","24.29","29.29"],"20px":["4.0","24.29","29.29"],"right":["4.0","7.2","7.4","8.2","8.5","15.20","15.22","17.2","17.4","18.2","18.5","24.29","26.11","26.12","26.13","26.14"],"seek":["5.12","24.19"],"settimeout":["5.12","7.5","17.5","24.2"],"controls":["5.20","5.22","15.20","15.22","26.11","26.12","26.13","26.14"],"jpg":["5.23"],"hd":["5.45","15.45"],"720p":["5.45","15.45"],"element":["6.1","8.1","13.34","18.1","21.8","24.38"],"组件的":["6.1","8.1"],"dom":["6.1","8.1","9.4","16.1","18.1","19.4"],"元素":["6.1","8.1"],"args":["6.2","6.3","6.4","16.2","16.3","16.4","24.30","29.30"],"show":["6.5","9.7","9.9","16.5","19.7","19.9","21.12"],"组件样式对象":["7.1"],"组件点击事件":["7.1"],"mounted":["7.1","15.0","17.1"],"selector":["7.2","17.2","21.8"],"default":["7.2","10.4","17.2","20.10","23.4","28.4"],"span":["7.2","17.2"],"01":["7.2","17.2","24.30","29.30"],"button":["7.3","7.4","17.3","17.4"],"tooltip":["7.3","7.4","8.2","8.3","17.1","17.3","17.4","18.2","18.3","24.32"],"color":["7.3","17.3","21.4"],"red":["7.3","17.3"],"your":["7.4","17.4","22.3","24.31","24.32","29.31","29.32","29.47"],"02":["7.5","9.4","17.5","19.3","19.4","24.30","29.30"],"update":["7.5","17.5","22.4","27.4"],"the":["7.5","17.5","21.2","22.1","23.4","24.10","28.4"],"tip":["8.2","8.3","18.2","18.3"],"50px":["8.2","8.3","8.5","18.2","18.3","18.5"],"potser":["8.4","18.4"],"setting":["9.2","19.5","22.6"],"item":["9.3","9.4","19.3","19.4"],"onselect":["9.4","19.4","24.30","29.30"],"pip":["9.5","19.5"],"mode":["9.5","19.5"],"close":["9.5","19.5"],"height":["9.5","9.8","19.8","22.2","27.2","27.3"],"add":["9.7"],"slider":["9.7","19.7"],"state":["9.8","19.8"],"range":["9.9","19.9"],"attached":["10.0","11.0"],"note":["10.2","10.4","15.12","15.16","15.33","24.7","24.10","24.47"],"to":["10.2","12.42","12.43","14.0","24.1"],"easily":["10.2"],"distinguish":["10.2"],"between":["10.2"],"and":["10.2","15.29","21.1","22.1"],"by":["10.4"],"zh":["10.6"],"cn":["10.6"],"of":["10.8","10.9","10.10","10.16","12.45","16.1","24.1"],"div":["10.8","10.9","10.10","10.11","10.12","10.16","15.5","15.29","19.6","24.11","24.21","24.27","24.36","24.37","24.38","24.41","24.48","29.37"],"classname":["10.8","10.9","10.10","10.12","10.13","10.15","10.16","15.4","15.5","15.29","15.42","19.6","21.10","24.21","24.27","24.36","24.37","24.38","24.41","24.48","24.51","29.37"],"run":["10.8","10.9","10.10","10.12","10.13","10.15","10.16","11.11","15.4","15.5","15.26","15.29","15.42","19.6","21.10","24.14","24.15","24.16","24.18","24.21","24.26","24.27","24.36","24.37","24.38","24.41","24.44","24.48","24.51","29.37"],"code":["10.8","10.9","10.10","10.12","10.13","10.15","10.16","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","15.4","15.15","15.26","15.29","15.42","19.6","21.10","24.6","24.8","24.12","24.14","24.15","24.16","24.18","24.20","24.21","24.23","24.24","24.26","24.27","24.36","24.37","24.38","24.44","24.46","24.48","24.49","24.51","29.37"],"currently":["10.11"],"active":["10.11"],"cues":["10.11"],"overall":["10.11"],"see":["10.12"],"documentation":["10.12"],"for":["10.12","21.7","21.11","24.1","24.37"],"details":["10.12"],"all":["11.6","21.7"],"manually":["12.0","23.0"],"triggering":["12.0"],"enough":["12.42"],"data":["12.42","12.58","20.10","21.5","21.10","21.11"],"through":["12.43","21.9"],"is":["12.44","14.0","15.5","17.1","22.3","22.4"],"already":["12.46"],"been":["12.46","20.13"],"loaded":["12.46","12.50"],"or":["12.46","12.53","24.22"],"media":["12.47","12.49","12.58","21.1"],"resource":["12.48"],"type":["12.48","26.13"],"paused":["12.51","12.53","14.0"],"browser":["12.54"],"has":["12.55","12.56","12.57","12.59","20.13"],"but":["12.58"],"currenttime":["12.60"],"changed":["12.61"],"a":["12.62"],"temporary":["12.62"],"names":["13.0"],"are":["13.0"],"in":["13.0"],"uppercase":["13.0"],"only":["13.34","21.5","21.8"],"ui":["13.34"],"set":["13.34","24.1"],"say":["14.0"],"i":["14.0"],"want":["14.0","24.10"],"write":["14.0"],"that":["14.0"],"displays":["14.0"],"an":["14.0","22.4","24.43"],"image":["14.0"],"ad":["14.0"],"when":["14.0","21.8","21.9","22.3"],"automatically":["15.5","20.6"],"execute":["15.5"],"similar":["15.5","24.11"],"logic":["15.5"],"called":["15.5"],"t":["15.12"],"some":["15.16","24.22"],"videos":["15.16"],"may":["15.16","21.5","24.22"],"not":["15.16","21.5","21.7"],"switch":["15.20"],"visible":["15.29","26.5"],"resize":["15.33","21.11"],"object":["16.1","18.1","21.7","24.11"],"triggered":["17.1"],"after":["17.1","26.16"],"yellow":["19.3"],"step":["19.6"],"pnpm":["20.1","25.1"],"unpkg":["20.2","20.11","21.3","25.2","26.3"],"player":["20.3","21.13","24.47"],"s":["20.3","22.1"],"dimensions":["20.3"],"depend":["20.3"],"instance":["20.4","24.41"],"getinstance":["20.4"],"path":["20.5"],"imported":["20.6"],"useref":["20.8","25.8"],"export":["20.10"],"return":["20.10","21.5"],"https":["20.11"],"cdn":["20.11","25.11"],"npm":["20.11","25.11","26.0"],"dist":["20.11","22.1","25.11"],"plugin":["20.12","21.9","22.5","26.20"],"danmuku":["20.12","21.6","21.10","26.20"],"doctype":["20.12","25.12"],"agent":["20.13"],"added":["20.13"],"head":["20.13"],"title":["20.13","22.2","27.2"],"demo":["20.13","25.13"],"branch":["21.0","22.0"],"runtime":["21.0"],"entrypoint":["21.0"],"build":["21.1"],"script":["21.2","27.1"],"javascript":["21.2"],"projects":["21.2"],"can":["21.2"],"import":["21.2","23.0"],"ffffff":["21.4"],"border":["21.4"],"panel":["21.5","21.9"],"moves":["21.5"],"points":["21.5","26.21"],"stored":["21.5","21.11"],"use":["21.5","21.8","21.9"],"draw":["21.5"],"custom":["21.5"],"filter":["21.5"],"synchronous":["21.5"],"do":["21.5"],"beforeemit":["21.5","26.5","26.19"],"submissions":["21.5"],"beforevisible":["21.5","26.5"],"index":["21.6","21.10","26.20"],"current":["21.7","21.8","22.0","24.41"],"as":["21.7","24.47"],"three":["21.7"],"arrow":["21.7"],"retain":["21.7"],"their":["21.7","22.3"],"lexical":["21.7"],"does":["21.7"],"call":["21.7"],"perform":["21.7","21.9"],"application":["21.7"],"undefined":["21.8","22.4","27.4"],"live":["21.8"],"validated":["21.8"],"updates":["21.8"],"ishide":["21.8"],"read":["21.8"],"visibility":["21.8"],"mount":["21.9"],"target":["21.9"],"move":["21.9"],"enable":["21.9"],"heatmap":["21.9"],"constructing":["21.9"],"libs":["21.10"],"uncompiled":["21.10","26.20"],"danmu":["21.10"],"mutates":["21.11"],"inner":["21.11"],"point":["21.11"],"arrays":["21.11"],"historical":["21.11"],"compatibility":["21.11","24.22"],"copy":["21.11"],"each":["21.11"],"pair":["21.11"],"reusing":["21.11"],"original":["21.11"],"successful":["21.11"],"load":["21.11","22.5"],"redraws":["21.11"],"hidden":["21.12"],"shown":["21.12"],"reset":["21.12"],"items":["21.12"],"destroy":["21.12","27.5"],"onerror":["21.13","26.21"],"error":["21.13","26.21"],"artplayerplugindanmuku":["21.13","26.10","26.12","26.21"],"sdk":["22.0"],"guide":["22.0"],"describes":["22.0"],"refactor":["22.0"],"p":["22.2","22.6","27.2","27.3","27.6"],"i18n":["22.2","27.2"],"auto":["22.2","27.2"],"audio":["22.2","27.2"],"audios":["22.2","27.2"],"track":["22.2","27.3"],"lang":["22.2","25.12","27.3","28.2","28.3"],"language":["22.3","27.3","28.4"],"empty":["22.3"],"titles":["22.3"],"fall":["22.3"],"back":["22.3"],"give":["22.3"],"formatters":["22.3"],"source":["22.3"],"lacks":["22.3","22.7"],"metadata":["22.3"],"plain":["22.3"],"callback":["22.3"],"immediate":["22.4"],"needed":["22.4"],"plugins":["22.4","26.6","26.10","26.12","27.4"],"artplayerpluginhlscontrol":["22.4","27.4"],"returns":["22.4"],"every":["22.5"],"while":["22.5"],"also":["22.5"],"destroying":["22.5"],"replaced":["22.5"],"instances":["22.5"],"yourself":["22.5"],"control":["22.5","29.32"],"releases":["22.5"],"its":["22.5"],"quality":["22.6","27.6"],"getname":["22.6","27.2","27.6"],"stall":["22.7"],"remain":["22.7"],"under":["22.7"],"investigation":["22.7"],"windows":["22.7","27.7"],"playwright":["22.7","27.7"],"webkit":["22.7","27.7"],"you":["23.0","24.10"],"need":["23.0","24.1"],"change":["23.4","28.4"],"size":["24.1"],"example":["24.1"],"equivalent":["24.4"],"muted":["24.10"],"if":["24.10"],"css":["24.11","29.1"],"fit":["24.11"],"cover":["24.11"],"description":["24.19"],"increase":["24.19"],"volume":["24.19","25.9"],"decrease":["24.19"],"forward":["24.19"],"backward":["24.19"],"this":["24.22","29.4"],"cause":["24.22"],"performance":["24.22"],"issues":["24.22"],"low":["24.22"],"via":["24.27"],"menu":["24.31","29.31"],"left":["24.32","29.32"],"something":["24.35","29.35"],"dosomething":["24.35","29.35"],"onvttload":["24.37"],"modifying":["24.37"],"text":["24.37"],"loading":["24.39","29.39"],"modify":["24.43"],"existing":["24.43"],"because":["24.47"],"uses":["24.47"],"key":["24.47"],"class":["25.3"],"get":["25.4","27.2"],"d":["25.6"],"选项":["25.10"],"meta":["25.13"],"charset":["25.13"],"utf":["25.13"],"类型入口与本轮修复尚未发布到":["26.0"],"使用本站构建的插件与样本":["26.1"],"接入自己的应用时":["26.1"],"com":["26.3"],"弹幕模式":["26.4"],"滚动":["26.4"],"默认":["26.4"],"顶部":["26.4"],"弹幕载入前的过滤器":["26.5"],"只支持返回布尔值":["26.5"],"输入框发送前的过滤器":["26.5"],"支持返回":["26.5"],"promise":["26.5"],"弹幕显示前的过滤器":["26.5"],"弹幕层是否可见":["26.5"],"emitter":["26.5"],"是否开启弹幕发射器":["26.5"],"maxlength":["26.5"],"xml":["26.6","26.11","26.12","26.13"],"这是用户在输入框输入弹幕文本":["26.6"],"然后点击发送按钮后触发的函数":["26.6"],"你可以对弹幕做合法校验":["26.6"],"或者做存库处理":["26.6"],"当返回true后才表示把弹幕加入到弹幕队列":["26.6"],"async":["26.6"],"const":["26.6"],"隐藏弹幕":["26.11"],"发送弹幕":["26.12"],"弹幕大小":["26.13"],"input":["26.13"],"重新加载当前弹幕库":["26.14"],"catch":["26.14"],"queryselector":["26.16","29.27"],"danmus":["26.18"],"加载弹幕":["26.18"],"length":["26.18"],"弹幕错误":["26.18"],"上的插件对象不是同一个对象":["26.19"],"后续命令继续通过注册的插件调用即可":["26.19"],"抛出或拒绝时会在控制台报告错误":["26.19"],"实例":["27.0"],"不负责下载":["27.0"],"通过":["27.1"],"name":["27.2"],"level":["27.2"],"或":["27.3"],"音轨依次取":["27.3"],"空标题和空":["27.3"],"返回":["27.4"],"监听器":["27.5"],"同时又自行销毁被替换的实例":["27.5"],"控制插件只释放自己的":["27.5"],"缺少测试所需的":["27.7"],"外":["28.0"],"不再捆绑其它多国语言":["28.0"],"需要自行导入需要的语言":["28.0"],"您可能需要初始化容器元素的大小":["29.1"],"如":["29.1"],"等同于":["29.4"],"document":["29.27"],"文本的函数":["29.37"],"修改现有的语言":["29.43"],"id":["29.47"]},{"0":["5.12","20.5","20.9"],"1":["9.8","13.25","19.8","26.13"],"2":["13.26","26.4"],"3":["24.1"],"4":["24.6","24.11","24.12","24.14","24.15","24.16","24.18","24.20","24.21","24.26","24.37","24.38","24.41","24.44","24.48","24.51"],"5":["9.8","13.23","19.8","20.9","25.9","26.20"],"6":["15.42"],"7":["15.4","15.29","24.27","24.38"],"8":["20.13","24.41","25.12"],"9":["15.5","24.29","29.29"],"10":["9.8","13.12","13.14","13.27","19.8"],"11":["24.43","29.43"],"12":["24.37","26.13","26.20","29.37"],"20":["13.11"],"22":["9.2","9.6","9.7","19.2","19.5","19.7"],"25":["26.13"],"32":["0.14","10.14"],"50":["26.13"],"60":["24.34","26.5","29.34"],"120":["29.34"],"150":["9.3","19.3"],"200":["21.5","26.5"],"404":["2.11","12.11"],"500":["13.21"],"1000":["21.5","24.2","26.5"],"2000":["13.24"],"3000":["5.12","13.15"],"5000":["13.4","13.13","13.16"],"二级属性":["0.0"],"mp4":["0.1","0.11","0.12","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.19","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.5","3.6","3.7","3.29","3.30","5.1","5.2","5.3","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.17","5.18","5.19","5.21","5.25","5.26","5.30","5.31","5.35","5.36","5.37","5.39","5.41","5.47","9.1","9.6","10.8","10.9","10.10","10.16","12.2","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.15","12.16","12.17","12.18","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.39","12.41","13.30","15.1","15.2","15.3","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.25","15.30","15.31","15.32","15.34","15.35","15.36","15.37","15.46","15.47","19.6","20.5","21.6","21.13","24.33","24.34","24.50","25.5","26.9","26.15","26.16","26.17","26.20","26.21","28.1","29.7","29.25","29.33","29.36","29.50"],"console":["0.1","0.3","0.5","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","3.2","5.9","5.14","5.15","5.16","5.23","5.28","5.30","5.31","5.32","5.34","5.35","5.36","5.44","7.3","8.2","8.3","10.3","10.17","13.2","15.28","15.32","15.34","15.41","15.44","17.3","18.2","18.3","21.7","24.29","24.31","24.32","26.21","29.29","29.30","29.31"],"info":["0.1","0.3","0.5","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.12","5.9","5.14","5.16","5.23","5.28","5.31","5.32","5.34","5.35","5.36","7.3","8.2","8.3","10.3","10.17","15.28","15.34","15.41","17.3","18.2","18.3","24.29","24.31","24.32","29.29","29.30","29.31"],"warning":["0.2","1.6","5.12","10.1","10.5","10.6","15.20","15.22","15.41","23.0","24.2","24.4","24.17","24.19","24.40","25.3","25.4","29.10","29.40","29.47"],"提示":["0.2","5.12","25.3","29.47"],"为了方便区别":["0.2"],"元素和普通对象":["0.2"],"播放器里的所有":["0.2"],"click":["0.3","5.20","5.22","6.1","8.1","8.2","8.3","10.3","15.41","16.1","18.1","18.2","18.3","24.29","24.32","26.10","26.11","26.12","29.29","29.31","29.32"],"event":["0.3","10.3","16.1","26.11"],"你可以修改":["0.4"],"即可":["0.4"],"zh":["0.6"],"cn":["0.6","23.4","28.4"],"your":["0.6","10.6","15.33","20.3","21.1","22.1","23.3","23.4","24.3","28.3","28.4","29.3"],"ready":["0.7","0.8","0.11","0.13","0.14","0.15","0.16","2.6","2.18","2.22","2.24","5.9","5.11","5.13","5.14","5.15","5.16","5.18","5.19","5.23","5.28","5.30","5.31","5.32","5.33","5.34","5.35","5.36","5.45","5.46","6.5","8.5","9.9","10.7","12.18","12.22","12.24","15.9","15.11","15.13","15.14","15.23","15.28","15.31","15.32","15.34","15.35","15.36","15.44","15.45","15.46","16.5","18.5","19.9"],"html":["0.8","0.9","0.10","5.20","5.22","14.0","26.10"],"some":["0.8","0.9","0.10"],"text":["0.8","0.9","0.10","17.1","21.6","26.6","26.12","26.20"],"position":["0.9","5.22","5.37","7.1","8.4","14.0","17.1","18.4","26.10"],"video":["0.11","0.12","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.13","2.14","2.15","2.16","2.19","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.5","3.6","3.7","3.28","3.29","3.30","5.1","5.6","5.7","5.8","5.10","5.15","5.17","5.18","5.19","5.21","5.24","5.25","5.26","5.27","5.29","5.30","5.37","5.39","5.41","5.47","9.1","10.8","10.9","10.10","10.16","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.23","12.24","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","15.21","15.30","15.31","15.32","15.36","15.37","15.47","19.6","20.5","21.6","22.2","24.25","24.33","24.34","24.42","24.50","25.5","26.7","26.9","26.15","26.16","26.17","26.20","26.21","27.2","28.1","29.7","29.17","29.25","29.33","29.36","29.50"],"on":["0.11","0.12","0.13","0.14","0.15","0.16","2.6","2.11","2.12","2.18","2.24","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.16","5.18","5.19","5.21","5.23","5.28","5.30","5.31","5.32","5.34","5.35","5.36","5.45","5.46","6.4","6.5","7.4","10.9","10.10","12.2","12.6","12.18","12.22","12.24","15.9","15.11","15.13","15.14","15.23","15.30","15.31","15.32","15.34","15.35","15.36","15.45","15.46","16.4","16.5","17.4","21.13","24.4"],"assets":["0.12","1.1","2.1","2.3","2.4","2.14","2.41","3.5","3.6","3.7","3.8","3.9","3.10","3.17","3.28","3.29","5.1","5.4","5.5","5.6","5.7","5.17","5.24","5.26","5.27","5.29","5.38","5.39","5.40","5.41","5.42","5.43","10.8","10.9","10.10","10.13","10.15","10.16","12.1","12.3","12.4","12.5","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.19","12.21","12.23","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.6","13.7","13.28","13.29","13.30","15.1","15.6","15.7","15.8","15.10","15.11","15.13","15.15","15.17","15.18","15.19","15.21","15.24","15.25","15.26","15.27","15.30","15.36","15.38","15.39","15.40","19.1","19.6","21.6","21.9","23.1","24.25","24.33","24.36","24.42","24.50","26.7","26.8","26.16","29.5","29.7","29.17","29.25","29.36","29.37","29.42"],"sample":["0.12","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.13","2.14","2.15","2.19","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.40","2.41","3.5","3.6","3.7","3.8","3.9","3.10","3.17","3.28","3.29","3.30","5.1","5.6","5.7","5.8","5.10","5.17","5.24","5.25","5.26","5.27","5.29","5.37","5.38","5.39","5.40","5.41","5.42","9.1","10.8","10.9","10.10","10.13","10.15","10.16","12.1","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.19","12.21","12.23","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.6","13.7","13.29","13.30","15.1","15.3","15.8","15.9","15.10","15.11","15.13","15.14","15.15","15.18","15.19","15.21","15.25","15.26","15.30","15.31","15.32","15.35","15.36","15.37","15.47","19.1","19.6","21.6","21.9","23.1","24.25","24.33","24.36","24.42","24.50","26.7","26.16","28.1","29.5","29.7","29.17","29.25","29.36","29.37","29.42","29.50"],"subtitleoffset":["0.16"],"return":["0.17","9.3","9.4","10.17","19.3","19.4","26.12"],"name":["0.17","10.17"],"something":["0.17"],"dosomething":["0.17"],"一级属性":["1.0","5.0"],"app":["1.1","3.3","3.8","3.9","3.10","3.11","3.12","3.13","3.17","3.22","3.23","3.28","3.29","3.33","5.4","5.5","5.6","5.7","5.24","5.26","5.29","5.38","5.40","5.42","5.43","10.8","10.9","10.10","10.13","10.15","10.16","12.1","12.3","12.4","12.11","12.14","12.19","12.32","12.33","12.34","12.35","12.36","12.37","12.38","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.28","13.29","13.30","15.6","15.7","15.15","15.17","15.18","15.19","15.24","15.25","15.26","15.27","15.29","15.38","15.39","15.40","15.43","19.1","19.6","20.13","21.9","21.10","23.1","24.5","24.9","24.13","24.25","24.27","24.33","24.36","24.37","24.42","26.8","29.5","29.6","29.8","29.9","29.12","29.13","29.14","29.15","29.16","29.18","29.20","29.21","29.23","29.24","29.26","29.28","29.36","29.37","29.38","29.41","29.42","29.44","29.45","29.46","29.48","29.49","29.51"],"url":["1.1","3.6","3.7","3.8","3.9","3.10","3.17","3.22","3.28","3.29","5.4","5.5","5.6","5.7","5.24","5.26","5.27","5.29","5.38","5.39","5.40","5.41","5.42","5.43","10.8","10.9","10.10","10.13","10.15","10.16","12.1","12.3","12.4","12.5","12.9","12.11","12.13","12.14","12.15","12.19","12.21","12.23","12.25","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.28","13.29","13.30","15.1","15.6","15.7","15.15","15.17","15.21","15.24","15.25","15.26","15.27","15.30","15.38","15.39","15.40","15.43","19.1","19.6","21.9","21.10","23.1","24.3","24.25","24.42","25.5","26.7","26.8","26.16","26.21","29.3","29.5","29.8","29.9","29.13","29.14","29.15","29.16","29.17","29.21","29.25","29.26","29.38","29.42","29.45","29.46","29.51"],"全部工具函数请参考以下地址":["1.6"],"js":["1.11","10.8","10.11","10.12","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","13.2","13.34","15.5","15.29","21.9","21.11","24.11","24.21","24.27","24.37","24.38","24.41","24.48","24.51"],"emit":["2.0","12.0"],"focus":["2.0","12.0"],"移除事件":["2.0"],"true":["2.16","2.17","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.39","3.30","5.2","5.3","5.21","6.2","6.4","6.5","9.1","9.6","10.16","12.17","12.20","12.28","13.1","13.20","13.33","15.2","15.3","16.2","16.4","16.5","19.2","19.6","26.16","29.10","29.33","29.47"],"setting":["2.17","2.20","2.28","3.30","9.1","9.6","12.17","12.20","13.30","19.2","19.6","24.7","27.6"],"fullscreen":["2.22"],"srt":["2.28","2.29","2.30","2.31","12.31"],"并调用":["2.46"],"但数据意外未出现":["2.58"],"属性名字全部都是大写的形式":["3.0"],"未来容易发生变动":["3.0"],"new":["3.1","3.4","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.23","3.24","3.25","3.26","3.27","3.31","3.32","3.34","10.8","10.9","10.10","10.11","10.12","10.13","10.15","11.1","13.1","13.3","13.4","13.10","13.11","13.12","13.13","13.17","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.26","13.27","13.28","13.29","13.31","13.32","13.33","15.4","15.5","15.26","15.29","15.42","21.10","21.11","24.3","24.5","24.6","24.8","24.9","24.12","24.14","24.15","24.16","24.18","24.20","24.21","24.23","24.24","24.26","24.28","24.35","24.36","24.37","24.38","24.44","24.45","24.46","24.48","24.49","24.51","25.9","26.21","29.6","29.11","29.22","29.35","29.37","29.41"],"container":["3.1","3.3","3.4","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.28","3.31","3.32","3.33","3.34","5.5","5.29","10.8","10.9","10.10","10.11","10.12","10.13","10.15","10.16","11.1","13.3","13.6","13.7","13.8","13.9","13.10","13.11","13.17","13.22","13.28","13.29","15.4","15.5","15.6","15.7","15.15","15.17","15.24","15.26","15.27","15.29","15.38","15.39","15.40","15.42","15.43","19.1","20.3","21.9","21.11","24.5","24.6","24.8","24.9","24.12","24.13","24.14","24.15","24.16","24.20","24.23","24.24","24.27","24.28","24.36","24.37","24.45","24.46","24.49","24.51","25.10","26.8","26.21","29.3","29.6","29.8","29.9","29.12","29.13","29.14","29.15","29.16","29.18","29.20","29.21","29.22","29.23","29.24","29.26","29.28","29.36","29.37","29.38","29.41","29.44","29.45","29.46","29.48","29.49","29.51"],"log":["3.2","5.44","15.44"],"art":["3.14","3.15","3.16","3.19","3.20","3.25","3.26","3.31","3.34","10.8","10.9","10.10","10.11","10.13","10.15","11.1","13.1","13.3","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.28","13.31","13.32","13.33","15.4","15.5","15.29","15.42","20.9","21.9","21.10","24.3","24.5","24.6","24.8","24.12","24.14","24.15","24.16","24.18","24.20","24.21","24.23","24.24","24.26","24.36","24.37","24.38","24.44","24.45","24.46","24.48","24.49","24.51","25.9","26.21","29.11","29.22","29.27","29.37"],"var":["3.34","10.8","10.9","10.10","10.11","10.12","11.1","13.1","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","15.4","15.5","15.29","15.42","21.9","21.11","24.6","24.8","24.12","24.14","24.15","24.16","24.18","24.20","24.21","24.23","24.24","24.26","24.27","24.35","24.36","24.37","24.38","24.41","24.44","24.45","24.46","24.48","24.49","24.51","29.11","29.35","29.37"],"show":["4.0","6.2","6.3","6.4","14.0","16.2","16.3","16.4","21.5"],"block":["4.0","14.0"],"hide":["4.0","14.0"],"controls":["4.0","5.37","15.37","17.1","26.10"],"tooltip":["4.0","7.1","9.7","19.7","29.32"],"muted":["5.2","5.3","5.25","15.2","15.3","29.10"],"seek":["5.11","5.13"],"t":["5.12"],"right":["5.20","5.22","8.3","8.4","14.0","17.1","18.3","18.4","26.10","29.29"],"switch":["5.20","15.12"],"function":["5.20","5.22","6.1","8.1","8.2","8.3","16.1","18.1","18.2","18.3","24.29","24.31","24.32","26.9","26.11","26.12","29.29","29.31"],"theme":["5.44","15.44","26.5"],"settimeout":["5.45","6.5","8.5","9.9","10.14","15.45","16.5","18.5","19.9","29.2"],"subtitle":["5.47","12.29","12.30"],"object":["6.1","8.1"],"组件样式对象":["6.1","8.1"],"false":["6.2","6.3","6.4","9.5","13.19","13.31","13.34","16.2","16.3","16.4","19.5","26.6"],"update":["6.5","8.5","9.9"],"组件挂载后触发":["7.1"],"组件的提示文本":["7.1"],"yellow":["7.2","17.2"],"02":["7.2","17.2"],"onselect":["7.2","17.2"],"item":["7.2","9.5","17.2"],"dom":["7.2","17.2"],"args":["7.3","8.2","8.3","17.3","18.2","18.3","24.29","24.31","24.32","29.29","29.31"],"mounted":["7.3","8.2","8.3","17.3","18.2","18.3"],"style":["7.4","14.0","17.4","20.5","21.4","24.32","25.5","26.13","29.32"],"color":["7.4","17.4","24.32","26.4","29.32"],"red":["7.4","17.4"],"control":["7.5","17.5"],"by":["7.5","8.5","9.9","17.5","18.5","19.9","24.2","24.47"],"absolute":["8.4","14.0","18.4"],"top":["8.4","14.0","18.4"],"50px":["8.4","18.4"],"the":["8.5","9.9","18.5","19.9","20.4"],"button":["9.2"],"img":["9.2","9.6","9.7","14.0","19.2","19.5","19.7"],"height":["9.2","9.6","19.2","19.5","20.5","24.1","25.5","29.1"],"src":["9.2","9.5","14.0","19.5","24.39","29.39"],"quality":["9.3","19.3"],"1080p":["9.3","19.3"],"state":["9.5","24.39","26.6","29.39"],"svg":["9.5","9.8","19.5","19.8"],"settings":["9.6","10.4","19.2","19.6"],"slider":["9.6"],"5x":["9.6","9.7","19.6","19.7"],"width":["9.6","9.7","14.0","19.5","19.7","20.5","24.1","25.5","29.1"],"icon":["9.7","19.7"],"range":["9.8","19.8","26.13"],"instance":["10.0","25.4"],"which":["10.0","17.1"],"note":["10.1","15.20","15.22","15.41","24.2","24.17","24.19"],"if":["10.1","10.4","15.41","20.11","24.47","26.6","26.11","26.12"],"you":["10.1","10.4","15.41","20.6"],"directly":["10.1","20.4"],"regular":["10.2"],"objects":["10.2"],"within":["10.2"],"are":["10.2","21.7","21.12","22.6"],"mouseenter":["10.3"],"instances":["10.4"],"share":["10.4"],"same":["10.4","15.12"],"localstorage":["10.4"],"and":["10.4","12.46","15.12"],"want":["10.4"],"different":["10.4"],"players":["10.4"],"use":["10.4"],"loading":["10.5"],"this":["10.5","21.4","22.3","24.40","27.3"],"is":["10.5","12.48","15.33","20.4"],"using":["10.6","22.3"],"can":["10.6","22.4","24.40"],"only":["10.6","24.40"],"to":["10.7","11.6","15.20","15.22","20.5","21.12","25.5"],"artplayer":["10.8","10.9","10.10","10.11","10.12","10.13","10.15","10.16","13.34","15.4","15.6","15.15","15.17","15.26","15.29","15.38","15.39","15.40","15.42","21.9","21.11","24.3","24.5","24.6","24.8","24.9","24.12","24.13","24.14","24.15","24.16","24.18","24.20","24.23","24.24","24.26","24.28","24.35","24.36","24.37","24.38","24.44","24.45","24.46","24.49","24.51","29.6","29.11","29.12","29.18","29.20","29.22","29.23","29.24","29.28","29.35","29.37","29.38","29.41","29.44","29.48","29.49","29.51"],"classname":["10.11","13.34","21.9","21.11","24.11","24.22"],"run":["10.11","13.34","21.9","21.11","24.11","24.22"],"code":["10.11","13.34","15.5","21.9","21.11","24.11","24.22","24.41"],"flip":["10.16"],"playbackrate":["10.16"],"constructor":["11.0"],"please":["11.6"],"refer":["11.6"],"removing":["12.0"],"through":["12.42"],"end":["12.43"],"without":["12.43","22.4"],"duration":["12.45"],"partially":["12.46"],"reached":["12.47"],"not":["12.48","20.4","21.0","21.12","21.13","22.4"],"has":["12.49"],"delayed":["12.53"],"due":["12.53","15.20","15.22","24.17"],"loads":["12.54"],"changed":["12.55"],"completed":["12.56"],"begun":["12.57"],"been":["12.59","21.0"],"property":["12.60"],"lack":["12.62"],"these":["13.0","24.19"],"subject":["13.0"],"change":["13.0"],"div":["13.34","20.13","21.9","21.11","24.22","25.13"],"ads":["14.0"],"100px":["14.0"],"display":["14.0","26.13"],"none":["14.0"],"20px":["14.0"],"have":["15.12","15.16","21.0"],"functionality":["15.12"],"a":["15.16","23.0"],"such":["15.16"],"as":["15.16"],"live":["15.16"],"streams":["15.16"],"or":["15.16","17.1","24.1"],"browser":["15.20","15.22","24.17"],"security":["15.20","15.22","24.17"],"mechanisms":["15.22","24.17"],"jpg":["15.23"],"json":["15.28"],"stringify":["15.28"],"useful":["15.33"],"but":["15.33"],"need":["15.41"],"certain":["15.41"],"left":["17.1"],"side":["17.1"],"bun":["20.1","25.1"],"com":["20.2","20.11","21.3","25.2","25.11"],"of":["20.3"],"its":["20.3"],"therefore":["20.3"],"must":["20.3"],"reactive":["20.4"],"modifying":["20.4"],"600px":["20.5","25.5"],"400px":["20.5","24.1","29.1"],"margin":["20.5"],"60px":["20.5"],"auto":["20.5"],"when":["20.6","21.7","21.11","23.0"],"null":["20.8","25.8"],"volume":["20.9"],"option":["20.10","22.6","25.10","26.18"],"tip":["20.11"],"lang":["20.12","23.2","23.3","27.2"],"en":["20.12","25.12"],"head":["20.12","25.12"],"meta":["20.12","20.13","25.12"],"charset":["20.12","20.13","25.12"],"utf":["20.12","20.13","25.12"],"body":["20.13","25.13"],"class":["20.13","25.13"],"fixes":["21.0","22.0"],"yet":["21.0"],"published":["21.0"],"in":["21.1","22.7"],"application":["21.1","21.12"],"default":["21.2"],"factory":["21.2"],"from":["21.2","21.6"],"css":["21.4","24.1"],"properties":["21.4"],"for":["21.4","21.12","24.47"],"explicit":["21.4","21.13"],"called":["21.5"],"before":["21.5","21.7","22.1"],"emitter":["21.5"],"s":["21.5"],"sending":["21.5"],"ui":["21.5"],"maxlength":["21.5"],"length":["21.5"],"locktime":["21.5","26.5"],"between":["21.5"],"plugins":["21.6","21.13","26.9","26.15","26.16","26.17","26.20"],"artplayerplugindanmuku":["21.6","26.9","26.15","26.16","26.17"],"hello":["21.6"],"validation":["21.7"],"calling":["21.7","22.4"],"needed":["21.7","21.11"],"failures":["21.7"],"logged":["21.7"],"leave":["21.7"],"another":["21.7"],"attempt":["21.7"],"asynchronous":["21.7"],"hidden":["21.8"],"isstop":["21.8"],"stopped":["21.8"],"distinct":["21.8"],"media":["21.8"],"readiness":["21.8"],"signal":["21.8"],"promises":["21.8"],"resolve":["21.8"],"create":["21.9"],"later":["21.9","21.12"],"data":["21.9"],"libs":["21.9","21.11"],"uncompiled":["21.9","21.11"],"index":["21.9","21.11"],"document":["21.10","24.27"],"createelement":["21.10"],"queryselector":["21.10","24.27"],"after":["21.10","21.11","22.5"],"curve":["21.11"],"so":["21.11","22.3"],"resend":["21.11"],"those":["21.11","22.7"],"events":["21.11"],"plugin":["21.11","21.12"],"danmuku":["21.11"],"destroyed":["21.12"],"points":["21.12"],"sent":["21.12"],"custom":["21.12"],"heatmap":["21.12"],"replayed":["21.12"],"listeners":["21.12"],"describes":["21.13"],"payloads":["21.13"],"it":["21.13","22.4","22.7"],"does":["21.13","22.7"],"automatic":["22.0"],"refresh":["22.0"],"lifecycle":["22.0"],"described":["22.0"],"here":["22.0"],"running":["22.1"],"setup":["22.1"],"customtype":["22.2","27.2"],"playm3u8":["22.2","27.2"],"loadsource":["22.2"],"attachmedia":["22.2"],"else":["22.2"],"canplaytype":["22.2"],"vnd":["22.2"],"apple":["22.2"],"mpegurl":["22.2"],"receive":["22.3"],"avoid":["22.3"],"optional":["22.3"],"required":["22.3"],"equal":["22.3"],"collapse":["22.3"],"into":["22.3"],"one":["22.3","24.34","29.34"],"displayed":["22.3"],"choice":["22.3"],"bitrate":["22.3"],"other":["22.3"],"distinguishing":["22.3"],"separate":["22.3"],"promise":["22.4","27.4"],"attached":["22.4"],"own":["22.5"],"subscriptions":["22.5"],"makes":["22.5"],"retained":["22.5"],"menu":["22.5"],"callbacks":["22.5"],"inert":["22.5"],"replacement":["22.5"],"destruction":["22.5"],"public":["22.6"],"config":["22.6","26.14","26.18"],"qualitylevel":["22.6"],"audiotrack":["22.6"],"result":["22.6"],"exported":["22.6"],"mse":["22.7","27.7"],"path":["22.7","25.5"],"used":["22.7"],"establish":["22.7"],"require":["23.0"],"cannot":["23.0"],"be":["23.0"],"matched":["23.0"],"script":["23.2","28.2"],"play":["23.4","24.19","28.4"],"300px":["24.1","29.1"],"three":["24.2"],"file":["24.2"],"formats":["24.2"],"caches":["24.7"],"last":["24.7"],"upon":["24.7","24.10"],"immediately":["24.10"],"page":["24.10"],"load":["24.10"],"space":["24.19"],"toggle":["24.19"],"pause":["24.19"],"devices":["24.22"],"older":["24.22"],"browsers":["24.22"],"opacity":["24.29","29.29"],"setting02":["24.30","29.30"],"green":["24.32","29.32"],"more":["24.34","29.34"],"chance":["24.34","29.34"],"ploading":["24.39","29.39"],"gif":["24.39","29.39"],"recognition":["24.40"],"player":["24.40","26.21"],"parse":["24.40"],"suffixes":["24.40"],"like":["24.40"],"cache":["24.47"],"progress":["24.47"],"however":["24.47"],"播放器的尺寸依赖于容器":["25.3"],"getinstance":["25.4"],"ts":["25.6"],"types":["25.10"],"const":["25.10"],"unpkg":["25.11"],"title":["25.12"],"cdn":["26.0"],"请替换容器和媒体":["26.1"],"pnpm":["26.2"],"底部":["26.4"],"ffffff":["26.4"],"弹幕颜色":["26.4"],"默认使用配置":["26.4"],"弹幕输入框最大长度":["26.5"],"输入框锁定时间":["26.5"],"dark":["26.5"],"弹幕主题":["26.5"],"支持":["26.5"],"和":["26.5"],"light":["26.5"],"只在自定义挂载时生效":["26.5"],"isdirty":["26.6"],"fuck":["26.6"],"i":["26.6"],"test":["26.6"],"await":["26.6"],"这里是所有弹幕的过滤器":["26.6"],"xml":["26.10"],"隐藏弹幕":["26.10"],"prompt":["26.12"],"请输入弹幕文本":["26.12"],"弹幕测试文本":["26.12"],"trim":["26.12"],"min":["26.13"],"max":["26.13"],"step":["26.13"],"value":["26.13"],"flex":["26.13"],"切换":["26.14"],"切换到新的弹幕库":["26.14"],"v2":["26.14"],"fullscreenweb":["26.16"],"配置变化":["26.18"],"stop":["26.18"],"弹幕停止":["26.18"],"输入框可再次尝试发送":["26.19"],"beforevisible":["26.19"],"拒绝时":["26.19"],"对该项在当前调度轮报告一次":["26.19"],"error":["26.19"],"热力图示例":["26.20"],"time":["26.20"],"创建或销毁":["27.0"],"sdk":["27.0"],"本页描述当前重构分支":["27.0"],"标签使用时":["27.1"],"先加载":["27.1"],"和插件的":["27.1"],"track":["27.2"],"文字会使用默认值":["27.3"],"媒体没有相关字段时":["27.3"],"自定义回调应提供字符串回退":["27.3"],"回调按普通函数调用":["27.3"],"不会绑定到播放器":["27.3"],"不能把可选索引视为必传字段":["27.3"],"相同标签会合并成一个选项":["27.3"],"如果想区分同高度的多个档位":["27.3"],"可在标签中加入码率":["27.3"],"不是":["27.4"],"在没有已绑定":["27.4"],"订阅":["27.5"],"替换或销毁播放器后":["27.5"],"旧菜单回调不再修改":["27.5"],"插件不会销毁":["27.5"],"audio":["27.6"],"路径":["27.7"],"不能代表":["27.7"],"safari":["27.7"],"当无法匹配到语言时":["28.0"],"会默认显示英文":["28.0"],"i18n":["28.0","28.3"],"或者使用":["29.1"],"aspect":["29.1"],"热键":["29.19"],"描述":["29.19"],"增加音量":["29.19"],"降低音量":["29.19"],"innerhtml":["29.27"],"sd":["29.33"],"后缀的识别":["29.40"],"播放器只能解析这种后缀":["29.40"],"因为播放器默认使用":["29.47"]},{"0":["25.5"],"1":["21.6","21.9","21.10","22.3","27.3"],"2":["5.31"],"4":["24.22"],"5":["5.8","5.9","5.15","15.8","21.11","29.7"],"8":["2.0","12.0","20.12"],"9":["5.32","24.1"],"10":["5.11","5.13","15.11","15.13","21.11","26.20"],"12":["21.11"],"16":["5.32","15.32","24.1","26.12","29.1"],"22":["19.6"],"30":["21.11","26.20"],"60":["21.5","24.36","29.36"],"75":["21.11","26.20"],"120":["24.34"],"180":["24.34","29.34"],"200":["26.6"],"240":["29.34"],"360":["9.3"],"720":["9.3","19.3"],"1000":["0.8","0.9","0.10","0.16","29.2"],"1080":["9.3","19.3"],"5000":["0.14","10.14"],"比较少用":["0.0"],"warning":["0.1","0.5","0.6","0.7","0.8","5.16","5.20","5.22","5.28","5.33","5.41","10.3","10.7","10.14","15.28","20.5","20.13","24.29","24.30","24.31","24.32","24.39","24.42","24.50","25.13","29.2","29.4","29.7","29.17","29.19","29.31","29.32","29.39","29.42","29.50"],"提示":["0.1","5.16","5.20","5.22","5.33","29.2","29.7","29.10","29.17"],"假如直接修改这个":["0.1"],"元素都是以":["0.2"],"开头命名的":["0.2"],"这是所有":["0.2"],"元素的定义":["0.2"],"mouseenter":["0.3"],"mouseleave":["0.3","10.3"],"loading":["0.5","12.49"],"这是所有图标的定义":["0.5"],"types":["0.5","1.6","11.6","28.0","29.50"],"使用":["0.6"],"只能更新实例化之后的":["0.6"],"to":["0.7","21.0","21.2","24.2"],"play":["0.7","4.0","5.2","10.7","15.2","23.3","24.2","28.3"],"如果想马上隐藏":["0.7"],"settimeout":["0.8","0.9","0.10","0.12","0.13","0.14","0.15","0.16","5.2","5.3","5.8","5.11","5.13","5.21","6.4","7.4","8.4","9.8","10.8","10.9","10.10","10.16","15.2","15.8","15.11","15.13","16.4","17.4","18.4","19.8"],"false":["0.8","0.9","0.10","0.15","0.16","21.9","24.29","24.31","26.4","29.29","29.31"],"left":["0.9","7.1","10.9"],"true":["0.10","0.12","0.13","2.19","3.5","3.6","3.7","3.28","3.29","5.1","5.14","5.25","5.34","6.3","10.10","12.16","12.19","12.21","12.22","12.23","12.24","12.25","12.26","12.39","13.5","13.6","13.7","13.28","13.29","13.30","15.1","15.21","15.25","15.34","16.3","19.1","21.10","24.25","24.33","29.17","29.25"],"srt":["0.11","5.47","12.28","12.29","12.30","15.47"],"ready":["0.12","5.2","5.3","5.5","5.6","5.7","5.8","5.10","5.17","5.21","5.24","5.25","5.26","5.27","5.29","6.4","7.4","8.4","9.8","10.8","10.9","10.10","10.11","10.12","10.13","10.15","10.16","12.0","12.6","15.2","15.3","15.5","15.8","15.10","15.15","15.17","15.18","15.19","15.21","15.25","15.26","15.29","15.30","16.4","17.4","18.4","19.8","26.17"],"on":["0.17","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.13","2.14","2.15","2.16","2.17","2.19","2.20","2.21","2.23","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","2.40","2.41","3.8","3.9","3.10","3.17","5.1","5.2","5.3","5.4","5.5","5.6","5.7","5.17","5.24","5.25","5.26","5.27","5.29","5.38","5.39","5.40","5.47","8.4","9.8","10.8","10.11","10.12","10.13","10.15","10.16","12.1","12.3","12.4","12.5","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.17","12.19","12.20","12.21","12.23","12.25","12.26","12.27","12.28","12.29","12.30","12.31","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.8","13.9","13.10","13.17","15.1","15.2","15.3","15.5","15.6","15.7","15.8","15.10","15.15","15.17","15.18","15.19","15.20","15.21","15.22","15.24","15.25","15.26","15.27","15.29","15.38","15.39","15.40","15.47","17.1","18.4","19.8","22.2","26.15","26.16","26.17","26.21","29.4"],"非常少使用":["1.0"],"sample":["1.1","3.1","3.3","3.4","3.11","3.12","3.13","3.18","3.21","3.22","3.23","3.24","3.27","3.31","3.32","3.33","3.34","5.4","5.5","5.43","10.11","10.12","11.1","13.8","13.9","13.10","13.11","13.12","13.13","13.17","13.21","13.22","13.23","13.24","13.28","13.33","13.34","15.4","15.5","15.6","15.7","15.17","15.24","15.27","15.29","15.38","15.39","15.40","15.42","15.43","20.10","21.10","24.5","24.6","24.8","24.9","24.12","24.13","24.14","24.15","24.16","24.18","24.20","24.23","24.24","24.26","24.28","24.35","24.37","24.38","24.41","24.44","24.45","24.46","24.49","24.51","25.10","26.8","29.6","29.8","29.9","29.11","29.12","29.13","29.14","29.15","29.16","29.18","29.20","29.21","29.22","29.23","29.24","29.26","29.28","29.35","29.38","29.41","29.44","29.45","29.46","29.48","29.49","29.51"],"video":["1.1","3.8","3.9","3.10","3.11","3.12","3.13","3.17","3.21","3.22","3.23","3.24","3.31","3.33","5.4","5.5","5.42","10.11","10.13","10.15","11.1","12.1","12.14","13.6","13.7","13.8","13.9","13.10","13.17","13.22","13.28","15.4","15.24","15.26","15.29","15.39","15.42","19.1","20.10","21.9","21.10","23.1","24.9","24.13","24.28","24.36","25.10","26.8","29.5","29.6","29.8","29.9","29.12","29.13","29.14","29.15","29.16","29.18","29.20","29.21","29.22","29.23","29.24","29.26","29.28","29.37","29.38","29.42","29.44","29.45","29.46","29.48","29.49"],"mp4":["1.1","3.8","3.9","3.10","3.17","3.22","3.28","3.34","5.4","5.5","5.6","5.7","5.24","5.27","5.29","5.38","5.40","5.42","5.43","10.11","10.12","10.13","10.15","12.1","12.3","12.4","12.11","12.14","12.19","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.40","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.22","13.28","13.29","13.34","15.4","15.5","15.6","15.7","15.15","15.17","15.24","15.26","15.27","15.29","15.38","15.39","15.40","15.42","15.43","19.1","20.10","21.9","21.10","21.11","23.1","24.5","24.25","24.36","24.37","24.38","24.42","25.10","26.7","26.8","29.5","29.8","29.9","29.13","29.14","29.15","29.16","29.17","29.21","29.26","29.37","29.38","29.42","29.45","29.46","29.51"],"artplayer":["1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","3.2","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","13.2","24.11","24.21","24.22","24.41","24.48"],"d":["1.6"],"info":["1.11","2.12","5.15","5.26","5.29","5.30","5.41","5.42","9.5","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","15.9","15.14","15.15","15.23","15.26","15.29","15.30","15.31","15.32","15.35","15.36","19.5","29.32"],"const":["2.0","5.18","5.19","9.5","12.0","15.18","15.19","19.5","20.10","26.13"],"onready":["2.0","12.0"],"console":["2.1","2.3","2.4","2.5","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.24","2.25","2.26","2.27","2.29","2.30","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.40","2.41","5.25","5.26","5.29","5.39","5.41","5.42","5.43","9.5","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","12.5","12.7","12.8","12.9","12.10","12.12","12.13","12.15","12.27","12.31","12.41","15.9","15.14","15.15","15.23","15.26","15.29","15.30","15.31","15.35","15.36","15.42","15.43","19.5","20.5","25.5","26.17","29.32"],"event":["2.5","2.7","2.8","2.9","2.10","2.12","2.13","2.22","2.41","5.41","9.2","9.5","12.5","12.7","12.8","12.9","12.10","12.12","12.13","12.22","18.1","21.13"],"reconnecttime":["2.11","12.11"],"state":["2.12","2.15","2.16","2.21","2.23","2.24","2.25","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","9.2","9.6","9.7","12.12","12.15","12.21","12.23","12.24","12.25","12.32","12.33","12.34","12.35","12.36","12.37","12.38","19.2","19.7"],"height":["2.18","9.7","19.6","19.7"],"datauri":["2.26","12.26"],"currenttime":["2.27","12.27"],"offset":["2.28"],"cues":["2.29","2.30","2.31","12.29","12.30","12.31"],"option":["2.31","12.31","27.6"],"load":["2.46","12.46"],"方法重新加载它":["2.46"],"基本上用不到":["3.0"],"app":["3.1","3.4","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.24","3.25","3.26","3.27","3.31","3.32","3.34","10.11","10.12","11.1","13.1","13.3","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","13.34","15.4","15.5","15.42","20.10","21.11","24.3","24.6","24.8","24.11","24.12","24.14","24.15","24.16","24.18","24.20","24.21","24.22","24.23","24.24","24.26","24.28","24.35","24.38","24.41","24.44","24.45","24.46","24.48","24.49","24.51","25.10","25.13","29.3","29.11","29.22","29.35"],"url":["3.1","3.3","3.4","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.23","3.24","3.25","3.26","3.27","3.31","3.32","3.33","3.34","10.12","11.1","13.1","13.3","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","13.34","15.4","15.5","15.29","15.42","20.10","21.11","24.5","24.6","24.8","24.9","24.11","24.12","24.13","24.14","24.15","24.16","24.18","24.20","24.21","24.22","24.23","24.24","24.26","24.28","24.35","24.38","24.44","24.45","24.46","24.48","24.49","24.51","25.10","26.1","29.6","29.11","29.12","29.18","29.20","29.22","29.23","29.24","29.27","29.28","29.35","29.44","29.48","29.49"],"assets":["3.1","3.3","3.4","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.31","3.32","3.33","3.34","10.11","10.12","11.1","13.3","13.4","13.8","13.9","13.10","13.11","13.12","13.13","13.17","13.18","13.21","13.22","13.23","13.24","13.31","13.32","13.33","13.34","15.4","15.5","15.29","15.42","15.43","20.10","21.10","21.11","24.5","24.6","24.8","24.9","24.12","24.13","24.14","24.15","24.16","24.18","24.20","24.21","24.22","24.23","24.24","24.26","24.28","24.35","24.37","24.38","24.41","24.44","24.45","24.46","24.48","24.49","24.51","25.10","29.3","29.6","29.8","29.9","29.11","29.12","29.13","29.14","29.15","29.16","29.18","29.20","29.21","29.22","29.23","29.24","29.26","29.27","29.28","29.35","29.38","29.41","29.44","29.45","29.46","29.48","29.49","29.51"],"loop":["3.5","3.6","3.7","13.5","13.6","13.7"],"flip":["3.5","3.6","3.7","13.5","13.6","13.7"],"dblclick":["3.17"],"setting":["3.28","3.29","12.28","13.28","13.29","19.1","26.13"],"playbackrate":["3.28","13.28"],"contextmenu":["3.28","3.29","3.30","13.29","13.30"],"aspectratio":["3.29","10.16","13.29"],"show":["3.29","3.30","9.8","13.30","19.8","24.29","24.31","26.11","26.18","29.29","29.31"],"click":["4.0","5.37","5.41","14.0","15.37"],"marginright":["4.0","14.0"],"比较常用":["5.0"],"muted":["5.1","15.1","15.25"],"seek":["5.8","15.8","15.11","15.13"],"switch":["5.12"],"和":["5.12","7.1","27.4","27.6"],"的功能是一样的":["5.12"],"只是":["5.12"],"有的视频是没有时长的":["5.16"],"async":["5.18","5.19","15.18","15.19","21.9"],"await":["5.18","5.19","15.18","15.19"],"t":["5.23"],"json":["5.28"],"stringify":["5.28"],"resize":["5.33","26.15"],"当你的容器只有宽度":["5.33"],"playsinline":["5.34","15.34"],"m3u8":["5.35","24.2","29.41"],"000":["5.36"],"right":["5.37","7.1","15.37"],"html":["5.37","10.8","10.9","10.10","15.37"],"timeupdate":["5.39"],"green":["5.44","15.44"],"1080p":["5.45","15.45"],"png":["5.46","15.46","24.36","24.39","29.36","29.39"],"组件点击事件":["6.1","8.1"],"mounted":["6.1","8.1","16.1","18.1","24.29","26.13","29.29"],"组件挂载后触发":["6.1","8.1"],"get":["6.2","6.3","7.2","7.3","8.2","8.3","16.2","16.3","17.2","17.3","18.2","18.3"],"the":["6.2","6.3","6.4","6.5","7.2","7.3","7.4","8.2","8.3","8.4","9.8","16.2","16.3","16.4","16.5","17.2","17.3","17.4","18.2","18.3","18.4","19.8","24.19"],"element":["6.2","6.3","7.2","7.3","8.2","8.3","16.2","16.3","17.2","17.3","18.2","18.3"],"of":["6.2","6.3","7.2","7.3","8.2","8.3","10.5","12.53","16.2","16.3","17.2","17.3","18.2","18.3"],"by":["6.2","6.3","6.4","6.5","7.2","7.4","8.4","16.2","16.3","16.4","16.5","17.2","17.4","18.4","23.0"],"delete":["6.4","7.4","8.4","9.8","16.4","17.4","18.4","19.8"],"控制控制器出现的左右位置":["7.1"],"selector":["7.1","17.1"],"array":["7.1","17.1","21.12"],"return":["7.2","17.2","26.9"],"control":["7.2","7.3","7.4","17.2","17.3","17.4"],"200px":["8.5","18.5"],"svg":["9.2","9.6","9.7","19.2","19.6","19.7"],"item":["9.2","9.6","19.2"],"720p":["9.3","19.3"],"360p":["9.3","19.3"],"nextstate":["9.5","19.5"],"src":["9.6","9.7","19.2","19.6","19.7","22.2","27.2"],"pip":["9.9","19.9"],"mode":["9.9","19.9","22.3"],"close":["9.9","19.9"],"are":["10.0","11.0","15.0","24.2"],"less":["10.0"],"commonly":["10.0","15.0"],"modify":["10.1","10.4","20.11","20.13"],"this":["10.1","10.2"],"object":["10.1","21.13"],"named":["10.2"],"with":["10.2","20.12","21.5","25.12"],"a":["10.2","12.48","15.12","15.20","15.22"],"prefix":["10.2"],"is":["10.2","15.12","20.5","22.1","22.2","24.47"],"definition":["10.2","10.5"],"note":["10.3","10.14","15.28","20.13","24.4"],"if":["10.3","10.6","10.7","21.12","24.4","24.17"],"you":["10.3","10.6","10.7","24.47"],"need":["10.3","20.11","20.13","24.47"],"that":["10.3","15.16","21.7","21.8"],"should":["10.3"],"only":["10.3","10.14","15.5","15.41","22.2","24.19"],"exist":["10.3","15.41"],"during":["10.3","21.12"],"can":["10.4","21.12"],"after":["10.6","10.14","16.1","18.1","24.19"],"instantiation":["10.6"],"want":["10.6","10.7"],"before":["10.6","20.13","21.12"],"hide":["10.7","26.18"],"some":["10.8","10.9","10.10"],"text":["10.8","10.9","10.10","21.10","21.11","26.7","26.9"],"position":["10.9","15.37"],"these":["10.14"],"take":["10.14","24.19"],"effect":["10.14","24.19"],"subtitleoffset":["10.16"],"something":["10.17"],"dosomething":["10.17"],"which":["11.0","15.0"],"rarely":["11.0"],"following":["11.6","20.11"],"address":["11.6"],"off":["12.0"],"end":["12.42","12.47"],"without":["12.42"],"stopping":["12.42","12.43"],"for":["12.42","12.43","23.0","24.10","24.30","24.31","24.32","24.50"],"property":["12.45"],"changes":["12.45"],"method":["12.46","15.12"],"called":["12.46"],"its":["12.47","21.2"],"supported":["12.48","22.2","22.4","24.2"],"finished":["12.49"],"lack":["12.53"],"resource":["12.54"],"unexpectedly":["12.58"],"not":["12.58","20.5","22.6"],"suspended":["12.59"],"has":["12.60"],"changed":["12.60"],"data":["12.62"],"future":["13.0"],"and":["13.0","20.11"],"container":["13.1","13.4","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","13.34","20.10","21.1","24.3","24.18","24.21","24.22","24.26","24.35","24.38","24.41","24.44","24.48","25.3","29.35"],"log":["13.2","20.5","25.5"],"new":["13.14","13.15","13.16","13.25","13.34","20.8","20.9","24.11","24.22","24.27","24.41","25.8","29.27"],"var":["13.34","24.11","24.22"],"art":["13.34","24.11","24.22","24.27"],"controls":["14.0","26.20"],"tooltip":["14.0","16.1"],"returns":["15.12"],"promise":["15.12","21.6"],"it":["15.12","15.33","15.41","20.13","22.5"],"resolve":["15.12","21.6","26.9"],"s":["15.12","15.41","21.13"],"been":["15.16","22.0"],"fully":["15.16"],"decoded":["15.16"],"in":["15.16","20.4","21.12","22.1"],"mechanisms":["15.20"],"user":["15.20","15.22"],"interaction":["15.20","15.22"],"e":["15.20","15.22","24.7"],"g":["15.20","15.22","24.7"],"dimension":["15.28"],"exact":["15.33"],"unknown":["15.33"],"lifecycle":["15.41"],"triggered":["16.1","18.1"],"mount":["16.1","18.1"],"appears":["17.1"],"objects":["17.1"],"selection":["17.1"],"list":["17.1"],"img":["19.6"],"width":["19.6","26.20"],"have":["20.3","22.0","22.3"],"defined":["20.3"],"tip":["20.3","20.9","25.9","25.11"],"see":["20.3"],"more":["20.3","24.10","24.42"],"will":["20.4"],"reactive":["20.5"],"import":["20.6","20.12","25.12"],"current":["20.8","25.8"],"full":["20.9"],"typescript":["20.9","25.9"],"support":["20.11"],"even":["20.11"],"older":["20.11"],"configuration":["20.11","24.31","24.32"],"title":["20.12"],"map":["20.12","25.12","26.20"],"npm":["21.0","22.0","27.0"],"unversioned":["21.0","22.0"],"cdn":["21.0"],"links":["21.0"],"still":["21.0"],"own":["21.1"],"builds":["21.2"],"expose":["21.2"],"artplayerplugindanmuku":["21.2","21.10","26.7","26.8"],"pass":["21.2"],"result":["21.2","27.6"],"preserved":["21.4"],"negative":["21.4"],"times":["21.4"],"clamped":["21.4"],"zero":["21.4"],"other":["21.4","21.7","22.5","24.2"],"than":["21.4"],"theme":["21.5"],"dark":["21.5","26.16"],"light":["21.5"],"external":["21.5"],"font":["21.5","26.5"],"size":["21.5","26.5"],"override":["21.5"],"slider":["21.5"],"definitions":["21.5"],"min":["21.5","26.5"],"max":["21.5","26.5"],"steps":["21.5"],"each":["21.5"],"step":["21.5"],"time":["21.6","21.9","21.10","21.11"],"alternatives":["21.6"],"rejection":["21.7"],"emits":["21.7"],"error":["21.7"],"once":["21.7"],"items":["21.7"],"continue":["21.7"],"pause":["21.7"],"resume":["21.7"],"reset":["21.7"],"replacing":["21.7"],"internal":["21.8"],"owner":["21.8"],"same":["21.8","22.3","24.47"],"different":["21.8","24.47"],"facade":["21.8"],"keep":["21.8"],"plugins":["21.9","21.10","21.11","26.7","26.8","26.21"],"emitter":["21.9"],"function":["21.9","21.11","26.10","26.13","26.20","29.32"],"updatecomments":["21.9"],"fullscreenweb":["21.10"],"input":["21.10"],"example":["21.11"],"particular":["21.12"],"an":["21.12","24.4"],"initially":["21.12"],"empty":["21.12"],"finish":["21.12"],"construction":["21.12"],"invoking":["21.12"],"augment":["21.13"],"core":["21.13"],"declarations":["21.13"],"automatically":["21.13"],"also":["21.13"],"exposes":["21.13"],"existing":["21.13"],"icons":["21.13"],"customization":["21.13"],"yet":["22.0"],"published":["22.0"],"global":["22.1"],"pin":["22.1"],"versions":["22.1"],"application":["22.1","27.2"],"notice":["22.2","27.2"],"unsupported":["22.2"],"playback":["22.2"],"format":["22.2"],"install":["22.2"],"when":["22.2"],"browser":["22.2"],"instead":["22.2"],"plays":["22.2"],"natively":["22.2"],"assigns":["22.2"],"variants":["22.3"],"lists":["22.3"],"remove":["22.3","22.5"],"menus":["22.3"],"choosing":["22.3"],"writes":["22.3"],"hls":["22.3","27.3"],"currentlevel":["22.3","27.3"],"selected":["22.3"],"reflects":["22.3"],"automatic":["22.3"],"autolevelenabled":["22.3","27.3"],"throw":["22.4"],"like":["22.4","24.2"],"integrations":["22.4"],"hooks":["22.4"],"must":["22.4","24.10"],"call":["22.4"],"their":["22.4"],"does":["22.5"],"consumers":["22.5"],"listeners":["22.5"],"implement":["22.5"],"js":["22.5","24.22","27.5"],"root":["22.6"],"entry":["22.6"],"legacy":["22.6","27.6"],"paths":["22.6"],"remain":["22.6"],"available":["22.6"],"do":["22.6"],"pretend":["22.6"],"every":["22.6"],"safari":["22.7"],"ios":["22.7","27.7"],"native":["22.7"],"acceptance":["22.7"],"verify":["22.7"],"your":["22.7"],"actual":["22.7"],"streams":["22.7"],"displayed":["23.0"],"default":["23.0"],"i18n":["23.0","23.3"],"syntax":["23.0","24.50"],"lang":["23.1","28.1"],"window":["23.2","28.2"],"imported":["23.4","28.4"],"use":["24.1"],"aspect":["24.1"],"ratio":["24.1","29.1"],"ogg":["24.2","29.2"],"webm":["24.2","29.2"],"or":["24.2"],"flv":["24.2"],"inside":["24.4"],"callback":["24.4"],"refers":["24.4"],"instance":["24.4"],"however":["24.4"],"arrow":["24.4"],"next":["24.7"],"initialization":["24.7"],"page":["24.7"],"refresh":["24.7"],"be":["24.10"],"set":["24.10"],"screenshotting":["24.17"],"may":["24.17"],"fail":["24.17"],"source":["24.17"],"player":["24.19"],"gains":["24.19"],"focus":["24.19"],"innerhtml":["24.27"],"component":["24.31","24.32"],"please":["24.32"],"refer":["24.32"],"sd":["24.33"],"480p":["24.33","29.33"],"谁でもいいはずなのに":["24.34","29.34"],"夏の想い出がまわる":["24.34","29.34"],"all":["24.39"],"icon":["24.39"],"but":["24.40"],"cannot":["24.40"],"zh":["24.43","29.43"],"cn":["24.43","29.43"],"then":["24.47"],"reference":["24.50"],"的尺寸":["25.3"],"所以你的容器":["25.3"],"必须是有尺寸的":["25.3"],"非响应式":["25.4"],"在":["25.4"],"400px":["25.5"],"margin":["25.5"],"60px":["25.5"],"auto":["25.5"],"全部":["25.9"],"定义":["25.9"],"volume":["25.10"],"假如你要兼容更古老的浏览器时":["25.11"],"请修改以下配置然后自行构建":["25.11"],"body":["25.12"],"默认仍加载已发布版本":["26.0"],"初始为白色":["26.4"],"border":["26.4"],"弹幕是否有描边":["26.4"],"默认为":["26.4"],"不透明度配置项":["26.5"],"弹幕字号配置项":["26.5"],"显示区域配置项":["26.5"],"弹幕速度配置项":["26.5"],"颜色列表配置项":["26.5"],"可覆盖滑块的":["26.5"],"包含来自服务端的和来自用户输入的":["26.6"],"length":["26.6"],"这是弹幕即将显示的时触发的函数":["26.6"],"当返回true后才表示可以马上发送到播放器里":["26.6"],"target":["26.11"],"innertext":["26.11"],"else":["26.11","27.2"],"color":["26.12"],"math":["26.12"],"floor":["26.12"],"random":["26.12"],"0xffffff":["26.12"],"tostring":["26.12"],"alignitems":["26.13"],"center":["26.13"],"queryselector":["26.13"],"追加":["26.14"],"追加新的弹幕库":["26.14"],"参数类型和option":["26.14"],"danmuku相同":["26.14"],"xml":["26.15","26.16","26.17"],"start":["26.18"],"弹幕开始":["26.18"],"弹幕隐藏":["26.18"],"其他项继续处理":["26.19"],"暂停后恢复":["26.19"],"或更换回调后":["26.19"],"仍符合时间条件的项可重试":["26.19"],"暂停":["26.19","29.19"],"drawpoints":["26.20"],"offsetwidth":["26.20"],"显式描述事件参数":["26.21"],"不会自动扩展核心历史事件声明":["26.21"],"工厂仍暴露":["26.21"],"这里说明的自动刷新与生命周期修复尚未发布":["27.0"],"未固定版本的":["27.0"],"dist":["27.1"],"loadsource":["27.2"],"attachmedia":["27.2"],"canplaytype":["27.2"],"vnd":["27.2"],"apple":["27.2"],"mpegurl":["27.2"],"轨道列表变空时会移除对应菜单":["27.3"],"选择画质会写入":["27.3"],"对应":["27.3"],"当":["27.3"],"为":["27.3"],"时":["27.3"],"实例时调用可能抛错":["27.4"],"没有对应事件接口的自定义适配器需要在状态变化后手动刷新":["27.4"],"菜单名":["27.4"],"quality":["27.4"],"移除其他使用者的监听器或实现":["27.5"],"错误恢复":["27.5"],"根入口导出":["27.6"],"config":["27.6"],"qualitylevel":["27.6"],"audiotrack":["27.6"],"类型":["27.6"],"原根入口及":["27.6"],"原生":["27.7"],"已验收":["27.7"],"写法参考":["28.0","29.50"],"默认支持三种视频文件格式":["29.2"],"播放器会缓存最后一次音量的大小":["29.7"],"假如希望默认进入页面就能自动播放视频":["29.10"],"必需为":["29.10"],"视频快进":["29.19"],"视频快退":["29.19"],"space":["29.19"],"切换播放":["29.19"],"subtitle":["29.25"],"args":["29.32"],"hd":["29.33"],"webkit":["29.38"],"全部图标的定义":["29.39"],"但无法解析这种后缀":["29.40"],"作为":["29.47"],"key":["29.47"],"来缓存播放进度的":["29.47"],"但假如你的同一个视频的":["29.47"]},{"0":["5.10","5.11","5.13","5.16","5.23","15.10","15.11","15.13","15.16","15.23","20.10","25.10"],"1":["5.47","9.7","15.47","19.7","26.7","26.9"],"2":["5.8","15.8","15.31","21.9"],"5":["5.6","5.7","9.7","15.6","15.7","15.9","15.15","19.7","20.10","25.10"],"9":["15.32","29.1"],"10":["5.46","9.7","15.46","19.7","24.36","29.36"],"50":["21.5"],"60":["5.46","15.46"],"240":["24.34"],"300":["24.34","29.34"],"360":["19.3"],"404":["3.14","3.15","13.14","13.15"],"1000":["0.13","0.15","10.8","10.9","10.10","10.13","10.15","10.16"],"3000":["0.12","5.2","5.3","5.8","5.11","5.13","5.21","5.45","6.4","6.5","7.4","7.5","8.4","8.5","9.8","9.9","10.12","15.2","15.3","15.8","15.11","15.13","15.21","15.45","16.4","16.5","17.4","17.5","18.4","18.5","19.8","19.9"],"对象":["0.1"],"播放器不会马上做出响应":["0.1"],"types":["0.2","2.0","10.2","10.5","20.9","23.0","24.39","24.50","25.9","29.39"],"d":["0.2","0.5","2.0","10.2","10.5","11.6","12.0","23.0","24.39","24.50","28.0","29.39","29.50"],"ts":["0.2","0.5","1.6","2.0","10.2","10.5","11.6","12.0","23.0","24.39","24.50","28.0","29.39","29.50"],"warning":["0.3","0.9","0.10","0.14","0.16","2.0","10.8","10.9","10.10","10.16","12.0","24.1","24.36","24.43","25.5","29.1","29.29","29.30","29.36","29.43"],"提示":["0.3","0.14","5.28","5.41","25.13","29.1","29.4","29.19"],"假如你需要一些":["0.3","5.41"],"事件只存在于播放器的生命周期上时":["0.3","5.41"],"强烈建议使用这些函数":["0.3"],"以避免造成内存泄漏":["0.3","5.41"],"your":["0.4","5.17","10.4","15.17","22.5","22.6"],"假如想在实例化之前更新":["0.6"],"请使用基础选项的":["0.6"],"来更新":["0.6"],"的显示":["0.7"],"组件配置":["0.8","0.9","0.10","29.29","29.31","29.32"],"请参考以下地址":["0.8","0.9","0.10","0.16","29.29","29.30","29.31","29.32"],"component":["0.8","0.9","0.10","0.16","10.8","10.9","10.10","10.16","24.29","24.30","29.29","29.30","29.31","29.32"],"color":["0.11","10.11","24.37","29.37"],"red":["0.11","10.11"],"false":["0.12","0.13","5.21","9.9","10.8","10.9","10.10","10.12","10.13","10.15","10.16","15.21","19.9","24.22","24.45","29.22","29.45"],"只在播放器获得焦点后":["0.14","29.19"],"如点击了播放器后":["0.14","29.19"],"这些快捷键才会生效":["0.14","29.19"],"true":["0.15","3.11","3.12","3.13","3.21","3.22","3.23","3.24","5.24","10.12","10.13","10.15","13.11","13.12","13.13","13.21","13.22","13.23","13.24","15.14","15.24","24.8","24.9","24.11","24.12","24.13","24.14","24.15","24.16","24.18","24.20","24.23","24.24","24.26","24.27","24.38","24.44","24.46","24.48","24.49","26.12","29.8","29.9","29.11","29.12","29.13","29.14","29.15","29.16","29.18","29.20","29.23","29.24","29.26","29.27","29.38","29.44","29.46","29.48","29.49"],"设置面板":["0.16"],"html":["0.16","10.16","20.1","24.42","24.43","25.1","26.2","29.42","29.43"],"ready":["0.17","2.0","5.1","5.4","5.47","10.17","15.1","15.4","15.6","15.7","15.24","15.27","15.47","21.11","26.20"],"off":["2.0"],"全部事件请参考以下地址":["2.0"],"events":["2.0"],"info":["2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.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","5.18","5.19","5.25","5.38","5.39","5.40","5.43","9.2","9.6","12.1","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.28","12.29","12.30","12.31","15.18","15.19","15.25","15.38","15.39","15.40","15.42","15.43","19.2","19.6","21.9","26.17"],"console":["2.2","2.6","2.19","2.28","2.39","3.8","3.9","3.10","3.17","5.18","5.19","5.38","5.40","9.2","9.6","12.1","12.2","12.3","12.4","12.6","12.11","12.14","12.16","12.17","12.18","12.19","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.28","12.29","12.30","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","13.8","13.9","13.10","13.17","15.18","15.19","15.25","15.38","15.39","15.40","19.2","19.6","21.9","26.12"],"log":["2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.8","3.9","3.10","3.17","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.8","13.9","13.10","13.17"],"video":["3.1","3.3","3.4","3.16","3.18","3.19","3.20","3.25","3.26","3.27","3.32","13.3","13.4","13.11","13.12","13.13","13.16","13.18","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","24.3","24.6","24.8","24.11","24.12","24.18","24.20","24.21","24.22","24.23","24.24","24.26","24.27","24.35","24.44","24.49","29.3","29.11","29.27","29.35"],"mp4":["3.1","3.3","3.4","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.23","3.24","3.25","3.26","3.27","3.31","3.32","3.33","11.1","13.1","13.3","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","24.3","24.6","24.8","24.9","24.11","24.12","24.13","24.14","24.15","24.16","24.18","24.20","24.21","24.22","24.23","24.24","24.26","24.27","24.28","24.35","24.44","24.45","24.46","24.48","24.49","24.51","29.3","29.6","29.11","29.12","29.18","29.20","29.22","29.23","29.24","29.27","29.28","29.35","29.44","29.48","29.49"],"playbackrate":["3.5","3.6","3.7","13.5","13.6","13.7"],"aspectratio":["3.5","3.6","3.7","13.5","13.6","13.7"],"autoplayback":["3.11","3.12","3.13","13.11","13.12","13.13"],"sample":["3.14","3.15","3.16","3.19","3.20","3.25","3.26","13.1","13.3","13.4","13.14","13.15","13.16","13.18","13.19","13.20","13.25","13.26","13.27","13.31","13.32","24.3","24.11","24.21","24.22","24.27","24.48","29.3","29.27"],"autoorientation":["3.21","13.21"],"show":["3.22","3.28","13.22","13.28","13.29","21.9","26.5"],"fastforward":["3.23","3.24","13.23","13.24"],"fullscreenweb":["3.31","13.31"],"miniprogressbar":["3.33","13.33"],"只销毁界面":["3.34"],"不主动清空":["3.34"],"pause":["4.0","14.0"],"layer":["4.0","14.0"],"png":["4.0","14.0"],"仅重置":["5.5"],"不移除界面":["5.5"],"t":["5.10","5.11","5.13","15.10","15.11","15.13","15.23"],"方法会返回":["5.12"],"promise":["5.12"],"当":["5.12"],"resolve":["5.12"],"时表示新地址是可以播放":["5.12"],"reject":["5.12","15.12"],"时表示新地址加载错误":["5.12"],"例如直播中的视频或者没被解码完成的视频":["5.16"],"这个时候获取的时长会是":["5.16"],"name":["5.17","15.17","21.5","26.5"],"由于浏览器安全机制":["5.20","5.22","29.17"],"触发窗口全屏前":["5.20"],"页面必须先存在交互":["5.20","5.22"],"例如用户点击过页面":["5.20","5.22"],"触发画中画前":["5.22"],"默认":["5.26"],"尺寸和坐标信息是通过":["5.28"],"getboundingclientrect":["5.28","15.28"],"获取的":["5.28"],"但不知道具体高度时":["5.33"],"这个属性很有用":["5.33"],"它能自动计算出视频的高度":["5.33"],"但你需要确定设置这个属性的时机":["5.33"],"强烈建议使用该函数":["5.41"],"4k":["5.45","15.45"],"number":["5.46","15.46","26.13"],"column":["5.46","15.46"],"tooltip":["6.1","8.1","18.1"],"组件的提示文本":["6.1","8.1"],"remove":["6.4","7.4","8.4","9.8","16.4","17.4","18.4","21.10","26.16"],"选择列表的对象数组":["7.1"],"onselect":["7.1","17.1"],"选择列表的元素被点击时触发的函数":["7.1"],"by":["7.3","8.2","8.3","9.8","17.3","18.2","18.3","19.8","21.7","22.2"],"left":["8.5","18.5","24.2"],"return":["9.2","9.5","9.6","19.2","19.5","19.6"],"switchquality":["9.3","19.3"],"open":["9.5","19.5"],"event":["9.6"],"x":["9.6","19.6"],"range":["9.7","19.7"],"switch":["9.9","19.9"],"used":["10.0","11.0","13.0","15.0","24.4"],"will":["10.1","15.16","20.5","24.4","24.7"],"not":["10.1","13.34","15.5","22.2","24.4"],"respond":["10.1"],"immediately":["10.1","10.7"],"s":["10.3","21.2","22.6","24.40"],"lifecycle":["10.3"],"strongly":["10.3","15.41"],"recommended":["10.3","15.41"],"use":["10.3","10.6","15.41","21.12","22.1","24.40"],"these":["10.3"],"functions":["10.3"],"avoid":["10.3","15.41"],"memory":["10.3","15.41"],"leaks":["10.3","15.41"],"please":["10.6","10.8","10.9","10.10","10.16","12.0","24.2","24.10","24.29","24.30","24.31"],"option":["10.6"],"in":["10.6","20.5","22.6"],"basic":["10.6"],"settings":["10.6","24.42","24.43"],"for":["10.8","10.9","10.10","10.16","12.0","15.33","20.13","22.2","22.4","24.4","24.29"],"configuration":["10.8","10.9","10.10","24.29"],"refer":["10.8","10.9","10.10","10.16","12.0","24.2","24.29","24.30","24.31"],"srt":["10.11","24.25","29.25"],"settimeout":["10.12","10.13","10.15","15.3","15.21"],"gains":["10.14"],"focus":["10.14"],"e":["10.14","24.19"],"g":["10.14","24.19"],"clicking":["10.14","24.19"],"on":["10.17","15.4","21.11","24.2","24.19","26.6","26.20","27.2"],"a":["12.0","17.1","22.2"],"complete":["12.0"],"list":["12.0"],"state":["12.39"],"further":["12.42"],"buffering":["12.42","12.43","22.3"],"to":["12.46","15.33","24.29","24.30","24.31","24.32"],"reload":["12.46"],"it":["12.46","20.11"],"format":["12.48","27.2"],"data":["12.53"],"forthcoming":["12.58"],"rarely":["13.0"],"assets":["13.1","13.14","13.15","13.16","13.19","13.20","13.25","13.26","13.27","24.3","24.11","24.27"],"dblclick":["13.17"],"contextmenu":["13.28"],"do":["13.34","15.5"],"clear":["13.34"],"play":["14.0"],"interface":["15.5"],"playable":["15.12"],"fails":["15.12"],"load":["15.12","21.0"],"cases":["15.16"],"obtained":["15.16","15.28"],"be":["15.16"],"page":["15.20","15.22"],"must":["15.20","15.22"],"occur":["15.20","15.22"],"before":["15.20","15.22","22.7"],"triggering":["15.20","15.22"],"default":["15.26"],"is":["15.26","15.28","21.7","24.17"],"via":["15.28"],"you":["15.33","21.12","24.40"],"need":["15.33","21.12"],"determine":["15.33"],"timing":["15.33"],"setting":["15.33","24.14","24.15","24.16","24.25","29.14","29.15","29.16","29.25"],"m3u8":["15.35","24.41","29.2"],"000":["15.36"],"timeupdate":["15.39"],"this":["15.41","22.2","22.4","24.7"],"text":["16.1","18.1","21.12"],"when":["17.1","21.12"],"item":["17.1"],"clicked":["17.1"],"script":["20.1","25.1","26.2"],"examples":["20.3"],"at":["20.3"],"following":["20.3","24.32"],"link":["20.3"],"example":["20.3","25.3"],"update":["20.4","20.5"],"player":["20.4","20.12","21.2","25.12"],"directly":["20.5"],"modifying":["20.5"],"the":["20.5","24.32"],"definitions":["20.9","24.39"],"packages":["20.9","25.9"],"volume":["20.10"],"art8":["20.10","25.10"],"new":["20.10","22.3","25.10"],"yourself":["20.11"],"scripts":["20.11","25.11"],"reference":["20.11","23.0"],"documentation":["20.11"],"browserslist":["20.11","25.11"],"body":["20.12"],"div":["20.12","25.12"],"id":["20.12","22.3","25.12","27.3"],"importing":["20.13"],"dependency":["20.13"],"take":["20.13"],"effect":["20.13"],"release":["21.0","22.0"],"urls":["21.1","22.1"],"plugins":["21.2"],"array":["21.2"],"modes":["21.4"],"contain":["21.5"],"value":["21.5","24.7","26.5"],"hide":["21.5","21.9","26.5","26.11"],"values":["21.5"],"are":["21.5"],"pairs":["21.5"],"such":["21.5"],"as":["21.5"],"replaces":["21.5"],"palette":["21.5"],"css":["21.5","26.5"],"strings":["21.5"],"empty":["21.5"],"uses":["21.5","22.0"],"built":["21.5"],"async":["21.6"],"retry":["21.7"],"if":["21.7","24.40"],"eligible":["21.7"],"pausing":["21.7"],"seeking":["21.7"],"hiding":["21.7"],"resetting":["21.7"],"destroying":["21.7"],"cancels":["21.7"],"unfinished":["21.7"],"visibility":["21.7"],"preparation":["21.7"],"using":["21.8"],"subsequent":["21.8"],"commands":["21.8","21.13"],"awaiting":["21.8"],"means":["21.8"],"processing":["21.8"],"has":["21.8","22.3"],"finished":["21.8","22.3"],"appeared":["21.8"],"appended":["21.9"],"scheduled":["21.9"],"from":["21.9"],"hidden":["21.9"],"ishide":["21.9"],"reset":["21.9","26.18"],"dark":["21.10"],"move":["21.10"],"later":["21.10"],"with":["21.10","22.3","24.17"],"otherelement":["21.10"],"drawpoints":["21.11"],"width":["21.11"],"controls":["21.11"],"offsetwidth":["21.11"],"map":["21.11"],"ratio":["21.11","26.20"],"loaded":["21.11","26.20"],"observe":["21.12"],"completion":["21.12"],"textcontent":["21.12","26.6"],"adding":["21.12"],"handler":["21.12"],"package":["21.13"],"readme":["21.13","26.21"],"md":["21.13","26.21"],"architecture":["21.13","26.21"],"describe":["21.13","22.6"],"module":["21.13"],"ownership":["21.13"],"maintenance":["21.13"],"remaining":["21.13"],"device":["21.13"],"combination":["21.13"],"validation":["21.13"],"cdn":["22.0","27.0"],"install":["22.0"],"still":["22.0"],"media":["22.1"],"that":["22.1","22.2"],"permit":["22.1"],"browser":["22.1"],"access":["22.1"],"without":["22.2"],"installing":["22.2"],"requires":["22.2"],"native":["22.2"],"selection":["22.2","22.3"],"supplied":["22.2"],"keep":["22.2"],"fixed":["22.2"],"instance":["22.2","22.6"],"recreate":["22.2"],"integration":["22.2","22.6"],"changes":["22.2","24.10","29.10"],"audiotrack":["22.3","27.3"],"mean":["22.3"],"stream":["22.3"],"decoding":["22.3"],"reserve":["22.4"],"menu":["22.4"],"names":["22.4"],"quality":["22.4"],"error":["22.5","26.12"],"recovery":["22.5"],"application":["22.5","22.6"],"remains":["22.5"],"responsible":["22.5"],"fatal":["22.5"],"errors":["22.5"],"playback":["22.5","27.2"],"policy":["22.5","24.10","29.10"],"already":["22.6"],"owns":["22.6"],"an":["22.6"],"engine":["22.6"],"art":["22.6","27.6"],"target":["22.7","26.14"],"devices":["22.7"],"adopting":["22.7"],"unpublished":["22.7"],"see":["23.0"],"or":["23.1","28.1"],"note":["24.1"],"among":["24.1"],"all":["24.1"],"options":["24.1"],"only":["24.1"],"required":["24.1"],"third":["24.2"],"party":["24.2"],"libraries":["24.2"],"section":["24.2"],"point":["24.4"],"jpg":["24.5","29.5"],"ffad00":["24.6","29.6"],"read":["24.7","24.10"],"cached":["24.7"],"information":["24.10"],"cross":["24.17"],"origin":["24.17"],"website":["24.17"],"disable":["24.22"],"url":["24.27"],"panel":["24.30"],"address":["24.32"],"hd":["24.33"],"720p":["24.33","29.33"],"こんなとこにあるはずもないのに":["24.34","29.34"],"终わり":["24.34","29.34"],"generate":["24.36"],"online":["24.36"],"tool":["24.36","29.36"],"03a9f4":["24.37","29.37"],"font":["24.37","29.37"],"size":["24.37","29.37"],"30px":["24.37","29.37"],"webkit":["24.38"],"playsinline":["24.38","29.38"],"therefore":["24.40"],"best":["24.40"],"also":["24.40"],"start":["24.42","24.43","29.42","29.43"],"i18n":["24.42","29.42"],"tw":["24.43","29.43"],"more":["24.43"],"identify":["24.47"],"unique":["24.47"],"document":["24.51","29.51"],"createelement":["24.51","29.51"],"tip":["25.3"],"以下链接可以看到更多的使用例子":["25.3"],"里直接修改":["25.4","25.5"],"是不会改变播放器的":["25.4","25.5"],"非响应式":["25.5"],"在":["25.5"],"构建配置":["25.11"],"build":["25.11"],"参考文档":["25.11"],"你需要在引入":["25.13"],"依赖前来修改它才会生效":["25.13"],"style":["26.4"],"弹幕自定义样式":["26.4"],"默认为空对象":["26.4"],"steps":["26.5"],"每个":["26.5"],"step":["26.5"],"可包含":["26.5"],"的":["26.5"],"是上下边距数组":["26.5"],"用":["26.5"],"颜色字符串数组替换调色板":["26.5"],"空数组使用内置调色板":["26.5"],"弹幕已经出现在播放器里":["26.6"],"你可以访问到弹幕的dom元素里":["26.6"],"ref":["26.6"],"ଘ":["26.6"],"੭ˊᵕˋ":["26.6"],"੭":["26.6"],"使用数组":["26.7"],"time":["26.7","26.9"],"使用":["26.9"],"异步返回":["26.9"],"显示弹幕":["26.10","26.11"],"border":["26.12"],"addeventlistener":["26.13"],"change":["26.13"],"fontsize":["26.13"],"const":["26.14"],"destroy":["26.16","26.18"],"也可以手动挂载":["26.16"],"弹幕显示":["26.18"],"弹幕重置":["26.18"],"弹幕销毁":["26.18"],"seek":["26.19"],"隐藏":["26.19"],"和销毁会取消尚未完成的显示准备":["26.19"],"icons":["26.21"],"对象供自定义图标":["26.21"],"包内":["26.21"],"和":["26.21"],"维护模块职责":["26.21"],"验证命令及尚未完成的设备和组合验收":["26.21"],"安装仍使用已发布版本":["27.0"],"插件全局名称为":["27.1"],"应用中应固定依赖版本":["27.1"],"并使用允许浏览器访问的视频地址":["27.1"],"unsupported":["27.2"],"仅在支持":["27.2"],"时安装控制插件":["27.2"],"若改用浏览器原生":["27.2"],"示例直接设置":["27.2"],"不安装必须依赖":["27.2"],"的插件":["27.2"],"该插件不会为原生播放提供画质或音轨选择":["27.2"],"单个播放器实例保持固定的":["27.2"],"更换播放集成方式时重新创建播放器":["27.2"],"当前标签反映自动模式":["27.3"],"选择音轨会把":["27.3"],"写入":["27.3"],"菜单选择是同步操作":["27.3"],"不代表新流已经完成缓冲或解码":["27.3"],"audio":["27.4"],"由插件使用":["27.4"],"其他菜单请使用不同名称":["27.4"],"应用仍负责处理":["27.5"],"致命错误和播放策略":["27.5"],"路径继续保留":["27.6"],"声明不会假定每个":["27.6"],"实例都有":["27.6"],"请在应用的集成类型中描述":["27.6"],"采用尚未发布的重构前":["27.7"],"应验证实际媒体与目标设备":["27.7"],"全部选项里":["29.1"],"只有":["29.1"],"是必填的":["29.1"],"如需要播放":["29.2"],"或者":["29.2"],"flv":["29.2"],"等其它格式":["29.2"],"请参考左侧的":["29.2"],"第三方库":["29.2"],"回调函数里的":["29.4"],"就是播放器实例":["29.4"],"但回调函数假如使用了箭头函数":["29.4"],"则不会指向播放器实例":["29.4"],"下次初始化时":["29.7"],"如刷新页面":["29.7"],"播放器会读取该缓存值":["29.7"],"更多信息请阅读":["29.10"],"假如视频源地址和网站是跨域的":["29.17"],"可能会出现截图失败":["29.17"],"关闭毛玻璃效果":["29.22"],"在线生成预览图":["29.36"],"thumbnail":["29.36"],"所以假如你使用了":["29.40"],"最好同时要指明":["29.40"],"function":["29.41"],"更多的语言设置":["29.42","29.43"],"是不同的话":["29.47"],"那么你需要使用":["29.47"],"来标识视频的唯一":["29.47"]}]'},t={"0.0":{t:"# 高级属性\r",p:`这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用 -`,l:"advanced/built-in.html",a:"高级属性"},"0.1":{t:"`option`\r",p:`播放器的选项 -<div className="run-code">▶ Run Code< ...`,l:"advanced/built-in.html#option",a:"option"},"0.2":{t:"`template`\r",p:`管理播放器所有的 DOM 元素 -<div className="run-code">▶ Ru ...`,l:"advanced/built-in.html#template",a:"template"},"0.3":{t:"`events`\r",p:"管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener ...",l:"advanced/built-in.html#events",a:"events"},"0.4":{t:"`storage`\r",p:`管理播放器的本地存储 - -name 属性用于设置缓存的 key -set 方法用于设置缓存 -get 方法用于获取缓存 -del 方 ...`,l:"advanced/built-in.html#storage",a:"storage"},"0.5":{t:"`icons`\r",p:`管理播放器所有的 svg 图标 -<div className="run-code">▶ Ru ...`,l:"advanced/built-in.html#icons",a:"icons"},"0.6":{t:"`i18n`\r",p:`管理播放器的 i18n - -get 方法用于获取 i18n 的值 -update 方法用于更新 i18n 对象 - -<div ...`,l:"advanced/built-in.html#i18n",a:"i18n"},"0.7":{t:"`notice`\r",p:`管理播放器的提示语,只有一个 show 属性用于显示提示语 -<div className="run-code ...`,l:"advanced/built-in.html#notice",a:"notice"},"0.8":{t:"`layers`\r",p:`管理播放器的层 - -add 方法用于动态添加层 -remove 方法用于动态删除层 -update 方法用于动态更新层 -show ...`,l:"advanced/built-in.html#layers",a:"layers"},"0.9":{t:"`controls`\r",p:`管理播放器的控制器 - -add 方法用于动态添加控制器 -remove 方法用于动态删除控制器 -update 方法用于动态更新控 ...`,l:"advanced/built-in.html#controls",a:"controls"},"0.10":{t:"`contextmenu`\r",p:`管理播放器的右键菜单 - -add 方法用于动态添加菜单 -remove 方法用于动态删除菜单 -update 方法用于动态更新菜单 ...`,l:"advanced/built-in.html#contextmenu",a:"contextmenu"},"0.11":{t:"`subtitle`\r",p:`管理播放器的字幕功能 - -url 属性设置和返回当前字幕地址 -style 方法设置当前字幕的样式 -switch 方法设置当前字 ...`,l:"advanced/built-in.html#subtitle",a:"subtitle"},"0.12":{t:"`info`\r",p:`管理播放器的信息面板,常用于查看当前播放器和视频的运行状态,例如版本号、分辨率、时长等。 - -通过 art.info.show ...`,l:"advanced/built-in.html#info",a:"info"},"0.13":{t:"`loading`\r",p:`管理播放器的加载层 - -show 属性用于设置是否显示加载层 -toggle 属性用于切换是否显示加载层 - -<div cl ...`,l:"advanced/built-in.html#loading",a:"loading"},"0.14":{t:"`hotkey`\r",p:`管理播放器的快捷键功能 - -add 方法用于添加快捷键 -remove 方法用于删除快捷键 - -<div className ...`,l:"advanced/built-in.html#hotkey",a:"hotkey"},"0.15":{t:"`mask`\r",p:`管理播放器的遮罩层 - -show 属性用于设置是否显示遮罩层 -toggle 属性用于切换是否显示遮罩层 - -<div cl ...`,l:"advanced/built-in.html#mask",a:"mask"},"0.16":{t:"`setting`\r",p:`管理播放器的设置面板 - -add 方法用于动态添加设置项 -remove 方法用于动态删除设置项 -update 方法用于动态更新 ...`,l:"advanced/built-in.html#setting",a:"setting"},"0.17":{t:"`plugins`\r",p:`管理播放器的插件功能,只有一个方法 add 用于动态添加插件 -<div className="run-cod ...`,l:"advanced/built-in.html#plugins",a:"plugins"},"1.0":{t:"# 静态属性\r",p:`这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用 -`,l:"advanced/class.html",a:"静态属性"},"1.1":{t:"`instances`\r",p:`返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性 -<div className=" ...`,l:"advanced/class.html#instances",a:"instances"},"1.2":{t:"`version`\r",p:`返回播放器的版本信息 -<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#version",a:"version"},"1.3":{t:"`env`\r",p:`返回播放器的环境变量 -<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#env",a:"env"},"1.4":{t:"`build`\r",p:`返回播放器的打包时间 -<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#build",a:"build"},"1.5":{t:"`config`\r",p:`返回视频的默认配置 -<div className="run-code">▶ Run Code ...`,l:"advanced/class.html#config",a:"config"},"1.6":{t:"`utils`\r",p:`返回播放器的工具函数集合 -<div className="run-code">▶ Run C ...`,l:"advanced/class.html#utils",a:"utils"},"1.7":{t:"`scheme`\r",p:`返回播放器选项的校验方案 -<div className="run-code">▶ Run C ...`,l:"advanced/class.html#scheme",a:"scheme"},"1.8":{t:"`Emitter`\r",p:`返回事件分发器的构造函数 -<div className="run-code">▶ Run C ...`,l:"advanced/class.html#emitter",a:"emitter"},"1.9":{t:"`validator`\r",p:`返回选项的校验函数 -<div className="run-code">▶ Run Code ...`,l:"advanced/class.html#validator",a:"validator"},"1.10":{t:"`kindOf`\r",p:`返回类型检测的函数工具 -<div className="run-code">▶ Run Co ...`,l:"advanced/class.html#kindof",a:"kindof"},"1.11":{t:"`html`\r",p:`返回播放器所需的 html 字符串 -<div className="run-code">▶ ...`,l:"advanced/class.html#html",a:"html"},"1.12":{t:"`option`\r",p:`返回播放器的默认选项 -<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#option",a:"option"},"2.0":{t:"# 实例事件\r",p:`播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件 -监听事件: -<div cl ...`,l:"advanced/event.html",a:"实例事件"},"2.1":{t:"`ready`\r",p:`当播放器首次可以播放器时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#ready",a:"ready"},"2.2":{t:"`restart`\r",p:`当播放器切换地址后并可以播放时触发 -<div className="run-code">▶ ...`,l:"advanced/event.html#restart",a:"restart"},"2.3":{t:"`pause`\r",p:`当播放器暂停时触发 -<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#pause",a:"pause"},"2.4":{t:"`play`\r",p:`当播放器播放时触发 -<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#play",a:"play"},"2.5":{t:"`hotkey`\r",p:`当播放器热键被按下时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#hotkey",a:"hotkey"},"2.6":{t:"`destroy`\r",p:`当播放器销毁时触发 -<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#destroy",a:"destroy"},"2.7":{t:"`focus`\r",p:`当播放器获得焦点时触发 -<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#focus",a:"focus"},"2.8":{t:"`blur`\r",p:`当播放器失去焦点时触发 -<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#blur",a:"blur"},"2.9":{t:"`dblclick`\r",p:`当播放器被双击时触发 -<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#dblclick",a:"dblclick"},"2.10":{t:"`click`\r",p:`当播放器被单击时触发 -<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#click",a:"click"},"2.11":{t:"`error`\r",p:`当播放器加载视频发生错误时触发 -<div className="run-code">▶ Ru ...`,l:"advanced/event.html#error",a:"error"},"2.12":{t:"`hover`\r",p:`当播放器被鼠标移出或者移入时触发 -<div className="run-code">▶ R ...`,l:"advanced/event.html#hover",a:"hover"},"2.13":{t:"`mousemove`\r",p:`当播放器被鼠标经过时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#mousemove",a:"mousemove"},"2.14":{t:"`resize`\r",p:`当播放器尺寸变化时触发 -<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#resize",a:"resize"},"2.15":{t:"`view`\r",p:`当播放器出现在视口时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#view",a:"view"},"2.16":{t:"`lock`\r",p:`在移动端,当锁定的状态发生变化时触发 -<div className="run-code">▶ ...`,l:"advanced/event.html#lock",a:"lock"},"2.17":{t:"`aspectRatio`\r",p:`当播放器长宽比变化时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#aspectratio",a:"aspectratio"},"2.18":{t:"`autoHeight`\r",p:`当播放器自动设置高度时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#autoheight",a:"autoheight"},"2.19":{t:"`autoSize`\r",p:`当播放器自动设置尺寸时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#autosize",a:"autosize"},"2.20":{t:"`flip`\r",p:`当播放器发生翻转时触发 -<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#flip",a:"flip"},"2.21":{t:"`fullscreen`\r",p:`当播放器发生窗口全屏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#fullscreen",a:"fullscreen"},"2.22":{t:"`fullscreenError`\r",p:`当播放器发生窗口全屏错误时触发 -<div className="run-code">▶ Ru ...`,l:"advanced/event.html#fullscreenerror",a:"fullscreenerror"},"2.23":{t:"`fullscreenWeb`\r",p:`当播放器发生网页全屏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#fullscreenweb",a:"fullscreenweb"},"2.24":{t:"`mini`\r",p:`当播放器进入迷你模式时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#mini",a:"mini"},"2.25":{t:"`pip`\r",p:`当播放器进入画中画时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#pip",a:"pip"},"2.26":{t:"`screenshot`\r",p:`当播放器被截图时触发 -<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#screenshot",a:"screenshot"},"2.27":{t:"`seek`\r",p:`当播放器发生时间跳转时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#seek",a:"seek"},"2.28":{t:"`subtitleOffset`\r",p:`当播放器发生字幕偏移时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#subtitleoffset",a:"subtitleoffset"},"2.29":{t:"`subtitleBeforeUpdate`\r",p:`当字幕更新前触发 -<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitlebeforeupdate",a:"subtitlebeforeupdate"},"2.30":{t:"`subtitleAfterUpdate`\r",p:`当字幕更新后触发 -<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleafterupdate",a:"subtitleafterupdate"},"2.31":{t:"`subtitleLoad`\r",p:`当字幕加载时触发 -<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleload",a:"subtitleload"},"2.32":{t:"`info`\r",p:`当信息面板显示或隐藏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#info",a:"info"},"2.33":{t:"`layer`\r",p:`当自定义层显示或隐藏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#layer",a:"layer"},"2.34":{t:"`loading`\r",p:`当加载器显示或隐藏时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#loading",a:"loading"},"2.35":{t:"`mask`\r",p:`当遮罩层显示或隐藏时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#mask",a:"mask"},"2.36":{t:"`subtitle`\r",p:`当字幕层显示或隐藏时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#subtitle",a:"subtitle"},"2.37":{t:"`contextmenu`\r",p:`当右键菜单显示或隐藏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#contextmenu",a:"contextmenu"},"2.38":{t:"`control`\r",p:`当控制器显示或隐藏时触发 -<div className="run-code">▶ Run C ...`,l:"advanced/event.html#control",a:"control"},"2.39":{t:"`setting`\r",p:`当设置面板显示或隐藏时触发 -<div className="run-code">▶ Run ...`,l:"advanced/event.html#setting",a:"setting"},"2.40":{t:"`muted`\r",p:`当静音的状态变化时触发 -<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#muted",a:"muted"},"2.41":{t:"`keydown`\r",p:`监听来自 document 的 keydown 事件 -<div className="run-code&qu ...`,l:"advanced/event.html#keydown",a:"keydown"},"2.42":{t:"`video:canplay`\r",p:`浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容 -`,l:"advanced/event.html#video-canplay",a:"video-canplay"},"2.43":{t:"`video:canplaythrough`\r",p:`浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束 -`,l:"advanced/event.html#video-canplaythrough",a:"video-canplaythrough"},"2.44":{t:"`video:complete`\r",p:`OfflineAudioContext 渲染完成 -`,l:"advanced/event.html#video-complete",a:"video-complete"},"2.45":{t:"`video:durationchange`\r",p:`duration 属性的值改变时触发 -`,l:"advanced/event.html#video-durationchange",a:"video-durationchange"},"2.46":{t:"`video:emptied`\r",p:"媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载 ...",l:"advanced/event.html#video-emptied",a:"video-emptied"},"2.47":{t:"`video:ended`\r",p:`视频停止播放,因为 media 已经到达结束点 -`,l:"advanced/event.html#video-ended",a:"video-ended"},"2.48":{t:"`video:error`\r",p:`获取媒体数据时出错,或者资源类型不是受支持的媒体格式 -`,l:"advanced/event.html#video-error",a:"video-error"},"2.49":{t:"`video:loadeddata`\r",p:`media 中的首帧已经完成加载 -`,l:"advanced/event.html#video-loadeddata",a:"video-loadeddata"},"2.50":{t:"`video:loadedmetadata`\r",p:`已加载元数据 -`,l:"advanced/event.html#video-loadedmetadata",a:"video-loadedmetadata"},"2.51":{t:"`video:pause`\r",p:`播放已暂停 -`,l:"advanced/event.html#video-pause",a:"video-pause"},"2.52":{t:"`video:play`\r",p:`播放已开始 -`,l:"advanced/event.html#video-play",a:"video-play"},"2.53":{t:"`video:playing`\r",p:`由于缺乏数据而暂停或延迟后,播放准备开始 -`,l:"advanced/event.html#video-playing",a:"video-playing"},"2.54":{t:"`video:progress`\r",p:`在浏览器加载资源时周期性触发 -`,l:"advanced/event.html#video-progress",a:"video-progress"},"2.55":{t:"`video:ratechange`\r",p:`播放速率发生变化 -`,l:"advanced/event.html#video-ratechange",a:"video-ratechange"},"2.56":{t:"`video:seeked`\r",p:`跳帧(seek)操作完成 -`,l:"advanced/event.html#video-seeked",a:"video-seeked"},"2.57":{t:"`video:seeking`\r",p:`跳帧(seek)操作开始 -`,l:"advanced/event.html#video-seeking",a:"video-seeking"},"2.58":{t:"`video:stalled`\r",p:`用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现 -`,l:"advanced/event.html#video-stalled",a:"video-stalled"},"2.59":{t:"`video:suspend`\r",p:`媒体数据加载已暂停 -`,l:"advanced/event.html#video-suspend",a:"video-suspend"},"2.60":{t:"`video:timeupdate`\r",p:`currentTime 属性指定的时间发生变化 -`,l:"advanced/event.html#video-timeupdate",a:"video-timeupdate"},"2.61":{t:"`video:volumechange`\r",p:`音量发生变化 -`,l:"advanced/event.html#video-volumechange",a:"video-volumechange"},"2.62":{t:"`video:waiting`\r",p:`由于暂时缺少数据,播放已停止 -`,l:"advanced/event.html#video-waiting",a:"video-waiting"},"3.0":{t:"# 全局属性\r",p:`这里的 全局属性 也是指挂载在 构造函数 的 一级属性,属性名字全部都是大写的形式,未来容易发生变动,基本上用不到 -`,l:"advanced/global.html",a:"全局属性"},"3.1":{t:"DEBUG\r",p:`是否开始 debug 模式,可以打印出视频全部的内置事件,默认关闭 -<div className="run- ...`,l:"advanced/global.html#debug",a:"debug"},"3.2":{t:"STYLE\r",p:`返回播放器样式文本 -<div className="run-code">▶ Run Code ...`,l:"advanced/global.html#style",a:"style"},"3.3":{t:"CONTEXTMENU\r",p:`是否开启右键菜单,默认开启 -<div className="run-code">▶ Run ...`,l:"advanced/global.html#contextmenu",a:"contextmenu"},"3.4":{t:"NOTICE_TIME\r",p:`提示信息的显示时长,单位为毫秒,默认为 2000 -<div className="run-code" ...`,l:"advanced/global.html#notice-time",a:"notice-time"},"3.5":{t:"SETTING_WIDTH\r",p:`设置面板的默认宽度,单位为像素,默认为 250 -<div className="run-code" ...`,l:"advanced/global.html#setting-width",a:"setting-width"},"3.6":{t:"SETTING_ITEM_WIDTH\r",p:`设置面板的设置项的默认宽度,单位为像素,默认为 200 -<div className="run-code&q ...`,l:"advanced/global.html#setting-item-width",a:"setting-item-width"},"3.7":{t:"SETTING_ITEM_HEIGHT\r",p:`设置面板的设置项的默认高度,单位为像素,默认为 35 -<div className="run-code&qu ...`,l:"advanced/global.html#setting-item-height",a:"setting-item-height"},"3.8":{t:"RESIZE_TIME\r",p:`resize 事件的节流时间,单位为毫秒,默认为 200 -<div className="run-code& ...`,l:"advanced/global.html#resize-time",a:"resize-time"},"3.9":{t:"SCROLL_TIME\r",p:`scroll 事件的节流时间,单位为毫秒,默认为 200 -<div className="run-code& ...`,l:"advanced/global.html#scroll-time",a:"scroll-time"},"3.10":{t:"SCROLL_GAP\r",p:`view 事件的边界容差距离,单位为像素,默认为 50 -<div className="run-code&q ...`,l:"advanced/global.html#scroll-gap",a:"scroll-gap"},"3.11":{t:"AUTO_PLAYBACK_MAX\r",p:`自动回放功能的最大记录数,默认为 10 -<div className="run-code"> ...`,l:"advanced/global.html#auto-playback-max",a:"auto-playback-max"},"3.12":{t:"AUTO_PLAYBACK_MIN\r",p:`自动回放功能的最小记录时长,单位为秒,默认为 5 -<div className="run-code" ...`,l:"advanced/global.html#auto-playback-min",a:"auto-playback-min"},"3.13":{t:"AUTO_PLAYBACK_TIMEOUT\r",p:`自动回放功能的隐藏延迟时长,单位为毫秒,默认为 3000 -<div className="run-code& ...`,l:"advanced/global.html#auto-playback-timeout",a:"auto-playback-timeout"},"3.14":{t:"RECONNECT_TIME_MAX\r",p:`发生连接错误时,自动连接的最大次数,默认为 5 -<div className="run-code" ...`,l:"advanced/global.html#reconnect-time-max",a:"reconnect-time-max"},"3.15":{t:"RECONNECT_SLEEP_TIME\r",p:`发生连接错误时,自动连接的延迟时间,单位为毫秒,默认为 1000 -<div className="run-c ...`,l:"advanced/global.html#reconnect-sleep-time",a:"reconnect-sleep-time"},"3.16":{t:"CONTROL_HIDE_TIME\r",p:`底部控制栏的自动隐藏的延迟时间,单位为毫秒,默认为 3000 -<div className="run-cod ...`,l:"advanced/global.html#control-hide-time",a:"control-hide-time"},"3.17":{t:"DBCLICK_TIME\r",p:`双击事件的延迟事件,单位为毫秒,默认为 300 -<div className="run-code" ...`,l:"advanced/global.html#dbclick-time",a:"dbclick-time"},"3.18":{t:"DBCLICK_FULLSCREEN\r",p:`在桌面端,是否双击切换全屏,默认为 true -<div className="run-code"& ...`,l:"advanced/global.html#dbclick-fullscreen",a:"dbclick-fullscreen"},"3.19":{t:"MOBILE_DBCLICK_PLAY\r",p:`在移动端,是否双击切换播放暂停,默认为 true -<div className="run-code" ...`,l:"advanced/global.html#mobile-dbclick-play",a:"mobile-dbclick-play"},"3.20":{t:"MOBILE_CLICK_PLAY\r",p:`在移动端,是否单击切换播放暂停,默认为 false -<div className="run-code&quo ...`,l:"advanced/global.html#mobile-click-play",a:"mobile-click-play"},"3.21":{t:"AUTO_ORIENTATION_TIME\r",p:`在移动端,自动旋屏的延迟时间,单位为毫秒,默认为 200 -<div className="run-code& ...`,l:"advanced/global.html#auto-orientation-time",a:"auto-orientation-time"},"3.22":{t:"INFO_LOOP_TIME\r",p:`信息面板的刷新时间,单位为毫秒,默认为 1000 -<div className="run-code" ...`,l:"advanced/global.html#info-loop-time",a:"info-loop-time"},"3.23":{t:"FAST_FORWARD_VALUE\r",p:`在移动端,长按加速的速率倍数,默认为 3 -<div className="run-code"> ...`,l:"advanced/global.html#fast-forward-value",a:"fast-forward-value"},"3.24":{t:"FAST_FORWARD_TIME\r",p:`在移动端,长按加速的延迟时间,单位为毫秒,默认为 1000 -<div className="run-code ...`,l:"advanced/global.html#fast-forward-time",a:"fast-forward-time"},"3.25":{t:"TOUCH_MOVE_RATIO\r",p:`在移动端,左右滑动进度的速率倍数,默认为 0.5 -<div className="run-code" ...`,l:"advanced/global.html#touch-move-ratio",a:"touch-move-ratio"},"3.26":{t:"VOLUME_STEP\r",p:`快捷键调节音量的幅度比例,默认为 0.1 -<div className="run-code"> ...`,l:"advanced/global.html#volume-step",a:"volume-step"},"3.27":{t:"SEEK_STEP\r",p:`快捷键调节播放进度的幅度,单位为秒,默认为 5 -<div className="run-code" ...`,l:"advanced/global.html#seek-step",a:"seek-step"},"3.28":{t:"PLAYBACK_RATE\r",p:`内置播放速率的列表,默认为 [0.5, 0.75, 1, 1.25, 1.5, 2] -<div className=& ...`,l:"advanced/global.html#playback-rate",a:"playback-rate"},"3.29":{t:"ASPECT_RATIO\r",p:`内置视频长宽比的列表,默认为 ['default', '4:3', '16:9'] -<div className=&q ...`,l:"advanced/global.html#aspect-ratio",a:"aspect-ratio"},"3.30":{t:"FLIP\r",p:`内置视频翻转的列表,默认为 ['normal', 'horizontal', 'vertical'] -<div cla ...`,l:"advanced/global.html#flip",a:"flip"},"3.31":{t:"FULLSCREEN_WEB_IN_BODY\r",p:`网页全屏时,是否把播放器挂在在 body 元素下,默认为 true -<div className="run- ...`,l:"advanced/global.html#fullscreen-web-in-body",a:"fullscreen-web-in-body"},"3.32":{t:"LOG_VERSION\r",p:`设置是否打印播放器版本,默认为 true -<div className="run-code"> ...`,l:"advanced/global.html#log-version",a:"log-version"},"3.33":{t:"USE_RAF\r",p:`设置是否使用 requestAnimationFrame ,默认为 false,目前主要用于进度条的平滑效果 -<div ...`,l:"advanced/global.html#use-raf",a:"use-raf"},"3.34":{t:"REMOVE_SRC_WHEN_DESTROY\r",p:`在销毁播放器时,是否同时移除视频的 src 属性并调用 load() 以主动释放媒体资源,默认为 true。 -开启后可以在单 ...`,l:"advanced/global.html#remove-src-when-destroy",a:"remove-src-when-destroy"},"4.0":{t:"# 编写插件\r",p:`但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事 -可以在实例化的时候加载插件的函数 -<div cla ...`,l:"advanced/plugin.html",a:"编写插件"},"5.0":{t:"# 实例属性\r",p:`这里的 实例属性 是指挂载在 实例 的 一级属性,比较常用 -`,l:"advanced/property.html",a:"实例属性"},"5.1":{t:"`play`\r",p:` -Type: Function - -播放视频 -<div className="run-code"&g ...`,l:"advanced/property.html#play",a:"play"},"5.2":{t:"`pause`\r",p:` -Type: Function - -暂停视频 -<div className="run-code"&g ...`,l:"advanced/property.html#pause",a:"pause"},"5.3":{t:"`toggle`\r",p:` -Type: Function - -切换视频的播放和暂停 -<div className="run-code&q ...`,l:"advanced/property.html#toggle",a:"toggle"},"5.4":{t:"`destroy`\r",p:` -Type: Function -Parameter: Boolean - -销毁播放器,接受一个参数表示是否销毁后同时移除播放器 ...`,l:"advanced/property.html#destroy",a:"destroy"},"5.5":{t:"`reset`\r",p:` -Type: Function - -重置播放器的视频元素:会移除当前 src 并调用一次 load(),常用于在单页应用中手动 ...`,l:"advanced/property.html#reset",a:"reset"},"5.6":{t:"`seek`\r",p:` -Type: Setter -Parameter: Number - -视频时间跳转,单位秒 -<div className= ...`,l:"advanced/property.html#seek",a:"seek"},"5.7":{t:"`forward`\r",p:` -Type: Setter -Parameter: Number - -视频时间快进,单位秒 -<div className= ...`,l:"advanced/property.html#forward",a:"forward"},"5.8":{t:"`backward`\r",p:` -Type: Setter -Parameter: Number - -视频时间快退,单位秒 -<div className= ...`,l:"advanced/property.html#backward",a:"backward"},"5.9":{t:"`volume`\r",p:` -Type: Setter/Getter -Parameter: Number - -设置和获取视频音量,范围在:[0, 1] -& ...`,l:"advanced/property.html#volume",a:"volume"},"5.10":{t:"`url`\r",p:` -Type: Setter/Getter -Parameter: String - -设置和获取视频地址 -<div clas ...`,l:"advanced/property.html#url",a:"url"},"5.11":{t:"`switch`\r",p:` -Type: Setter -Parameter: String - -设置视频地址,设置时和 art.url 类似,但会执行一些 ...`,l:"advanced/property.html#switch",a:"switch"},"5.12":{t:"`switchUrl`\r",p:` -Type: Function -Parameter: String - -设置视频地址,设置时和 art.url 类似,但会执行 ...`,l:"advanced/property.html#switchurl",a:"switchurl"},"5.13":{t:"`switchQuality`\r",p:` -Type: Function -Parameter: String - -设置视频画质地址,和 art.switchUrl 类似 ...`,l:"advanced/property.html#switchquality",a:"switchquality"},"5.14":{t:"`muted`\r",p:` -Type: Setter/Getter -Parameter: Boolean - -设置和获取视频是否静音 -<div c ...`,l:"advanced/property.html#muted",a:"muted"},"5.15":{t:"`currentTime`\r",p:` -Type: Setter/Getter -Parameter: Number - -设置和获取视频当前时间,设置时间时和 see ...`,l:"advanced/property.html#currenttime",a:"currenttime"},"5.16":{t:"`duration`\r",p:` -Type: Getter - -获取视频时长 -<div className="run-code"&g ...`,l:"advanced/property.html#duration",a:"duration"},"5.17":{t:"`screenshot`\r",p:` -Type: Function - -下载当前视频帧的截图, 可选参数为截图名字 -<div className=" ...`,l:"advanced/property.html#screenshot",a:"screenshot"},"5.18":{t:"`getDataURL`\r",p:` -Type: Function - -获取当前视频帧的截图的base64地址,返回的是一个 Promise -<div cl ...`,l:"advanced/property.html#getdataurl",a:"getdataurl"},"5.19":{t:"`getBlobUrl`\r",p:` -Type: Function - -获取当前视频帧的截图的blob地址,返回的是一个 Promise -<div clas ...`,l:"advanced/property.html#getbloburl",a:"getbloburl"},"5.20":{t:"`fullscreen`\r",p:` -Type: Setter/Getter -Parameter: Boolean - -设置和获取播放器窗口全屏 -<div ...`,l:"advanced/property.html#fullscreen",a:"fullscreen"},"5.21":{t:"`fullscreenWeb`\r",p:` -Type: Setter/Getter -Parameter: Boolean - -设置和获取播放器网页全屏 -<div ...`,l:"advanced/property.html#fullscreenweb",a:"fullscreenweb"},"5.22":{t:"`pip`\r",p:` -Type: Setter/Getter -Parameter: Boolean - -设置和获取播放器画中画模式 -<div ...`,l:"advanced/property.html#pip",a:"pip"},"5.23":{t:"`poster`\r",p:` -Type: Setter/Getter -Parameter: String - -设置和获取视频海报,只有在视频播放前才能看到 ...`,l:"advanced/property.html#poster",a:"poster"},"5.24":{t:"`mini`\r",p:` -Type: Setter/Getter -Parameter: Boolean - -设置和获取播放器迷你模式 -<div ...`,l:"advanced/property.html#mini",a:"mini"},"5.25":{t:"`playing`\r",p:` -Type: Getter -Parameter: Boolean - -获取视频是否正在播放中 -<div classNam ...`,l:"advanced/property.html#playing",a:"playing"},"5.26":{t:"`state`\r",p:` -Type: Setter/Getter -Parameter: String - -获取或设置播放器当前状态,支持:standa ...`,l:"advanced/property.html#state",a:"state"},"5.27":{t:"`autoSize`\r",p:` -Type: Function - -设置视频是否自适应尺寸 -<div className="run-code& ...`,l:"advanced/property.html#autosize",a:"autosize"},"5.28":{t:"`rect`\r",p:` -Type: Getter - -获取播放器的尺寸和坐标信息 -<div className="run-code& ...`,l:"advanced/property.html#rect",a:"rect"},"5.29":{t:"`bottom` / `top` / `left` / `right` / `x` / `y` / `width` / `height`\r",p:` -Type: Getter - -这些属性是对 rect 的快捷访问: - -bottom, top, left, right, x ...`,l:"advanced/property.html#bottom-top-left-right-x-y-width-height",a:"bottom-top-left-right-x-y-width-height"},"5.30":{t:"`flip`\r",p:` -Type: Setter/Getter -Parameter: String - -设置和获取播放器翻转,支持normal, ...`,l:"advanced/property.html#flip",a:"flip"},"5.31":{t:"`playbackRate`\r",p:` -Type: Setter/Getter -Parameter: Number - -设置和获取播放器播放速度 -<div c ...`,l:"advanced/property.html#playbackrate",a:"playbackrate"},"5.32":{t:"`aspectRatio`\r",p:` -Type: Setter/Getter -Parameter: String - -设置和获取播放器长宽比 -<div cl ...`,l:"advanced/property.html#aspectratio",a:"aspectratio"},"5.33":{t:"`autoHeight`\r",p:` -Type: Function - -当容器只有宽度,该属性可以自动计算出并设置视频的高度 -<div className= ...`,l:"advanced/property.html#autoheight",a:"autoheight"},"5.34":{t:"`attr`\r",p:` -Type: Function -Parameter: String - -动态获取和设置 video 元素的属性 -<div ...`,l:"advanced/property.html#attr",a:"attr"},"5.35":{t:"`type`\r",p:` -Type: Setter/Getter -Parameter: String - -动态获取和设置视频类型 -<div cl ...`,l:"advanced/property.html#type",a:"type"},"5.36":{t:"`theme`\r",p:` -Type: Setter/Getter -Parameter: String - -动态获取和设置播放器主题颜色 -<div ...`,l:"advanced/property.html#theme",a:"theme"},"5.37":{t:"`airplay`\r",p:` -Type: Function - -开启隔空播放 -<div className="run-code" ...`,l:"advanced/property.html#airplay",a:"airplay"},"5.38":{t:"`loaded`\r",p:` -Type: Getter - -视频缓存的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用 -&l ...`,l:"advanced/property.html#loaded",a:"loaded"},"5.39":{t:"`loadedTime`\r",p:` -Type: Getter - -已缓存的媒体时长,单位为秒。通常与 loaded 一起使用,用于展示缓冲进度细节。 -<d ...`,l:"advanced/property.html#loadedtime",a:"loadedtime"},"5.40":{t:"`played`\r",p:` -Type: Getter - -视频播放的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用 -&l ...`,l:"advanced/property.html#played",a:"played"},"5.41":{t:"`proxy`\r",p:` -Type: Function - -DOM 事件的代理函数,实质上代理了 addEventListener 和 removeE ...`,l:"advanced/property.html#proxy",a:"proxy"},"5.42":{t:"`query`\r",p:` -Type: Function - -DOM 的查询函数,类似 document.querySelector,但被查询的对象局限 ...`,l:"advanced/property.html#query",a:"query"},"5.43":{t:"`video`\r",p:` -Type: Element - -快捷返回播放器的 video 元素 -<div className="run- ...`,l:"advanced/property.html#video",a:"video"},"5.44":{t:"`cssVar`\r",p:` -Type: Function - -动态获取或设置 css 变量 -<div className="run-co ...`,l:"advanced/property.html#cssvar",a:"cssvar"},"5.45":{t:"`quality`\r",p:` -Type: Setter -Parameter: Array - -动态设置画质列表 -<div className=&qu ...`,l:"advanced/property.html#quality",a:"quality"},"5.46":{t:"`thumbnails`\r",p:` -Type: Setter/Getter -Parameter: Object - -动态设置缩略图 -<div classN ...`,l:"advanced/property.html#thumbnails",a:"thumbnails"},"5.47":{t:"`subtitleOffset`\r",p:` -Type: Setter/Getter -Parameter: Number - -动态设置字幕偏移 -<div class ...`,l:"advanced/property.html#subtitleoffset",a:"subtitleoffset"},"6.0":{t:"# 右键菜单\r",p:"\r",l:"component/contextmenu.html",a:"右键菜单"},"6.1":{t:"配置\r",p:` - - -属性 -类型 -描述 - - - - -disable -Boolean -是否禁用组件 - - -name -String -组件唯一名称,用于 ...`,l:"component/contextmenu.html#配置",a:"配置"},"6.2":{t:"创建\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#创建",a:"创建"},"6.3":{t:"添加\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#添加",a:"添加"},"6.4":{t:"删除\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#删除",a:"删除"},"6.5":{t:"更新\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#更新",a:"更新"},"7.0":{t:"# 控制器\r",p:"\r",l:"component/controls.html",a:"控制器"},"7.1":{t:"配置\r",p:` - - -属性 -类型 -描述 - - - - -disable -Boolean -是否禁用组件 - - -name -String -组件唯一名称,用于 ...`,l:"component/controls.html#配置",a:"配置"},"7.2":{t:"创建\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#创建",a:"创建"},"7.3":{t:"添加\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#添加",a:"添加"},"7.4":{t:"删除\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#删除",a:"删除"},"7.5":{t:"更新\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#更新",a:"更新"},"8.0":{t:"# 业务层\r",p:"\r",l:"component/layers.html",a:"业务层"},"8.1":{t:"配置\r",p:` - - -属性 -类型 -描述 - - - - -disable -Boolean -是否禁用组件 - - -name -String -组件唯一名称,用于 ...`,l:"component/layers.html#配置",a:"配置"},"8.2":{t:"创建\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#创建",a:"创建"},"8.3":{t:"添加\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#添加",a:"添加"},"8.4":{t:"删除\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#删除",a:"删除"},"8.5":{t:"更新\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#更新",a:"更新"},"9.0":{t:"# 设置面板\r",p:"\r",l:"component/setting.html",a:"设置面板"},"9.1":{t:"内置\r",p:"须先打开设置面板,然后自带四个内置项:flip, playbackRate, aspectRatio, subtitleOf ...",l:"component/setting.html#内置",a:"内置"},"9.2":{t:"创建 - 按钮\r",p:` - - -属性 -类型 -描述 - - - - -html -String, Element -元素的 DOM - - -icon -String, El ...`,l:"component/setting.html#创建-按钮",a:"创建-按钮"},"9.3":{t:"创建 - 选择列表\r",p:` - - -属性 -类型 -描述 - - - - -html -String, Element -元素的 DOM - - -icon -String, El ...`,l:"component/setting.html#创建-选择列表",a:"创建-选择列表"},"9.4":{t:"创建 - 列表嵌套\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#创建-列表嵌套",a:"创建-列表嵌套"},"9.5":{t:"创建 - 切换按钮\r",p:` - - -属性 -类型 -描述 - - - - -html -String, Element -元素的 DOM 元素 - - -icon -String, ...`,l:"component/setting.html#创建-切换按钮",a:"创建-切换按钮"},"9.6":{t:"创建 - 范围滑块\r",p:` - - -属性 -类型 -描述 - - - - -html -String, Element -元素的 DOM 元素 - - -icon -String, ...`,l:"component/setting.html#创建-范围滑块",a:"创建-范围滑块"},"9.7":{t:"添加\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#添加",a:"添加"},"9.8":{t:"删除\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#删除",a:"删除"},"9.9":{t:"更新\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#更新",a:"更新"},"10.0":{t:"# Advanced Properties\r",p:"The Advanced Properties here refer to the secondary properties ...",l:"en/advanced/built-in.html",a:"advanced-properties"},"10.1":{t:"`option`\r",p:`The player's options. -<div className="run-code"&g ...`,l:"en/advanced/built-in.html#option",a:"option"},"10.2":{t:"`template`\r",p:`Manages all DOM elements of the player. -<div className=&quo ...`,l:"en/advanced/built-in.html#template",a:"template"},"10.3":{t:"`events`\r",p:"Manages all DOM events for the player. It essentially proxies ...",l:"en/advanced/built-in.html#events",a:"events"},"10.4":{t:"`storage`\r",p:`Manages the player's local storage. - -The name property is used ...`,l:"en/advanced/built-in.html#storage",a:"storage"},"10.5":{t:"`icons`\r",p:`Manages all svg icons for the player. -<div className=" ...`,l:"en/advanced/built-in.html#icons",a:"icons"},"10.6":{t:"`i18n`\r",p:`Manages the player's i18n. - -The get method is used to retrieve ...`,l:"en/advanced/built-in.html#i18n",a:"i18n"},"10.7":{t:"`notice`\r",p:"Manages the player's notifications. It only has a show propert ...",l:"en/advanced/built-in.html#notice",a:"notice"},"10.8":{t:"`layers`\r",p:`Manages the player's layers. - -The add method is used to dynami ...`,l:"en/advanced/built-in.html#layers",a:"layers"},"10.9":{t:"`controls`\r",p:`Manages the player's controls. - - -The add method is used to dyn ...`,l:"en/advanced/built-in.html#controls",a:"controls"},"10.10":{t:"`contextmenu`\r",p:`Manages the player's context menu - -The add method is used to d ...`,l:"en/advanced/built-in.html#contextmenu",a:"contextmenu"},"10.11":{t:"`subtitle`\r",p:`Manages the player's subtitle functionality - -The url property ...`,l:"en/advanced/built-in.html#subtitle",a:"subtitle"},"10.12":{t:"`info`\r",p:"Manages the player's information panel, commonly used to view ...",l:"en/advanced/built-in.html#info",a:"info"},"10.13":{t:"`loading`\r",p:`Manages the player's loading layer - -The show property is used ...`,l:"en/advanced/built-in.html#loading",a:"loading"},"10.14":{t:"`hotkey`\r",p:`Manages the player's hotkey functionality - -The add method is u ...`,l:"en/advanced/built-in.html#hotkey",a:"hotkey"},"10.15":{t:"`mask`\r",p:`Manages the player's mask layer - -The show property is used to ...`,l:"en/advanced/built-in.html#mask",a:"mask"},"10.16":{t:"`setting`\r",p:`Manages the player's settings panel - -The add method is used to ...`,l:"en/advanced/built-in.html#setting",a:"setting"},"10.17":{t:"`plugins`\r",p:"Manages the player's plugin functionality, with only one metho ...",l:"en/advanced/built-in.html#plugins",a:"plugins"},"11.0":{t:"# Static Properties\r",p:"Here, static properties refer to the first-level properties at ...",l:"en/advanced/class.html",a:"static-properties"},"11.1":{t:"`instances`\r",p:"Returns an array of all player instances. This property can be ...",l:"en/advanced/class.html#instances",a:"instances"},"11.2":{t:"`version`\r",p:`Returns the version information of the player. -<div classNa ...`,l:"en/advanced/class.html#version",a:"version"},"11.3":{t:"`env`\r",p:`Returns the environment variables of the player. -<div class ...`,l:"en/advanced/class.html#env",a:"env"},"11.4":{t:"`build`\r",p:`Returns the build timestamp of the player. -<div className=& ...`,l:"en/advanced/class.html#build",a:"build"},"11.5":{t:"`config`\r",p:`Returns the default configuration for videos. -<div classNam ...`,l:"en/advanced/class.html#config",a:"config"},"11.6":{t:"`utils`\r",p:`Returns the collection of utility functions for the player. -&l ...`,l:"en/advanced/class.html#utils",a:"utils"},"11.7":{t:"`scheme`\r",p:`Returns the validation schema for player options. -<div clas ...`,l:"en/advanced/class.html#scheme",a:"scheme"},"11.8":{t:"`Emitter`\r",p:`Returns the constructor of the event emitter. -<div classNam ...`,l:"en/advanced/class.html#emitter",a:"emitter"},"11.9":{t:"`validator`\r",p:`Returns the validation function for options. -<div className ...`,l:"en/advanced/class.html#validator",a:"validator"},"11.10":{t:"`kindOf`\r",p:`Returns the type detection utility function. -<div className ...`,l:"en/advanced/class.html#kindof",a:"kindof"},"11.11":{t:"`html`\r",p:`Returns the html string required by the player. -<div classN ...`,l:"en/advanced/class.html#html",a:"html"},"11.12":{t:"`option`\r",p:`Returns the default options of the player. -<div className=& ...`,l:"en/advanced/class.html#option",a:"option"},"12.0":{t:"# Instance Events\r",p:"Player events are divided into two types: native events of the ...",l:"en/advanced/event.html",a:"instance-events"},"12.1":{t:"`ready`\r",p:`Triggered when the player is ready for the first time. -<div ...`,l:"en/advanced/event.html#ready",a:"ready"},"12.2":{t:"`restart`\r",p:"Triggered when the player switches URLs and becomes ready to p ...",l:"en/advanced/event.html#restart",a:"restart"},"12.3":{t:"`pause`\r",p:`Triggered when the player is paused. -<div className="r ...`,l:"en/advanced/event.html#pause",a:"pause"},"12.4":{t:"`play`\r",p:`Triggered when the player starts playing. -<div className=&q ...`,l:"en/advanced/event.html#play",a:"play"},"12.5":{t:"`hotkey`\r",p:`Triggered when a player hotkey is pressed. -<div className=& ...`,l:"en/advanced/event.html#hotkey",a:"hotkey"},"12.6":{t:"`destroy`\r",p:`Triggered when the player is destroyed. -<div className=&quo ...`,l:"en/advanced/event.html#destroy",a:"destroy"},"12.7":{t:"`focus`\r",p:`Triggered when the player gains focus. -<div className=" ...`,l:"en/advanced/event.html#focus",a:"focus"},"12.8":{t:"`blur`\r",p:`Triggered when the player loses focus. -<div className=" ...`,l:"en/advanced/event.html#blur",a:"blur"},"12.9":{t:"`dblclick`\r",p:`Triggered when the player is double-clicked. -<div className ...`,l:"en/advanced/event.html#dblclick",a:"dblclick"},"12.10":{t:"`click`\r",p:`Triggered when the player is clicked. -<div className=" ...`,l:"en/advanced/event.html#click",a:"click"},"12.11":{t:"`error`\r",p:"Triggered when an error occurs while the player is loading a v ...",l:"en/advanced/event.html#error",a:"error"},"12.12":{t:"`hover`\r",p:`Triggered when the mouse enters or leaves the player. -<div ...`,l:"en/advanced/event.html#hover",a:"hover"},"12.13":{t:"`mousemove`\r",p:`Triggered when the mouse moves over the player. -<div classN ...`,l:"en/advanced/event.html#mousemove",a:"mousemove"},"12.14":{t:"`resize`\r",p:`Triggered when the player's dimensions change. -<div classNa ...`,l:"en/advanced/event.html#resize",a:"resize"},"12.15":{t:"`view`\r",p:`Triggered when the player enters the viewport. -<div classNa ...`,l:"en/advanced/event.html#view",a:"view"},"12.16":{t:"`lock`\r",p:`Triggered when the lock state changes on mobile devices. -<d ...`,l:"en/advanced/event.html#lock",a:"lock"},"12.17":{t:"`aspectRatio`\r",p:`Triggered when the player's aspect ratio changes. -<div clas ...`,l:"en/advanced/event.html#aspectratio",a:"aspectratio"},"12.18":{t:"`autoHeight`\r",p:`Triggered when the player's height is automatically set. -<d ...`,l:"en/advanced/event.html#autoheight",a:"autoheight"},"12.19":{t:"`autoSize`\r",p:`Triggered when the player's size is automatically set. -<div ...`,l:"en/advanced/event.html#autosize",a:"autosize"},"12.20":{t:"`flip`\r",p:`Triggered when the player is flipped. -<div className=" ...`,l:"en/advanced/event.html#flip",a:"flip"},"12.21":{t:"`fullscreen`\r",p:"Triggered when the player enters or exits windowed fullscreen ...",l:"en/advanced/event.html#fullscreen",a:"fullscreen"},"12.22":{t:"`fullscreenError`\r",p:`Triggered when a windowed fullscreen error occurs. -<div cla ...`,l:"en/advanced/event.html#fullscreenerror",a:"fullscreenerror"},"12.23":{t:"`fullscreenWeb`\r",p:"Triggered when the player enters or exits web fullscreen mode. ...",l:"en/advanced/event.html#fullscreenweb",a:"fullscreenweb"},"12.24":{t:"`mini`\r",p:`Triggered when the player enters or exits mini mode. -<div c ...`,l:"en/advanced/event.html#mini",a:"mini"},"12.25":{t:"`pip`\r",p:"Triggered when the player enters or exits Picture-in-Picture m ...",l:"en/advanced/event.html#pip",a:"pip"},"12.26":{t:"`screenshot`\r",p:`Triggered when the player takes a screenshot. -<div classNam ...`,l:"en/advanced/event.html#screenshot",a:"screenshot"},"12.27":{t:"`seek`\r",p:`Triggered when the player performs a time seek. -<div classN ...`,l:"en/advanced/event.html#seek",a:"seek"},"12.28":{t:"`subtitleOffset`\r",p:`Triggered when the subtitle offset changes in the player. -< ...`,l:"en/advanced/event.html#subtitleoffset",a:"subtitleoffset"},"12.29":{t:"`subtitleBeforeUpdate`\r",p:`Triggered before subtitles are updated. -<div className=&quo ...`,l:"en/advanced/event.html#subtitlebeforeupdate",a:"subtitlebeforeupdate"},"12.30":{t:"`subtitleAfterUpdate`\r",p:`Triggered after subtitles are updated. -<div className=" ...`,l:"en/advanced/event.html#subtitleafterupdate",a:"subtitleafterupdate"},"12.31":{t:"`subtitleLoad`\r",p:`Triggered when subtitles are loaded. -<div className="r ...`,l:"en/advanced/event.html#subtitleload",a:"subtitleload"},"12.32":{t:"`info`\r",p:`Triggered when the info panel is shown or hidden. -<div clas ...`,l:"en/advanced/event.html#info",a:"info"},"12.33":{t:"`layer`\r",p:`Triggered when a custom layer is shown or hidden. -<div clas ...`,l:"en/advanced/event.html#layer",a:"layer"},"12.34":{t:"`loading`\r",p:`Triggered when the loader is shown or hidden. -<div classNam ...`,l:"en/advanced/event.html#loading",a:"loading"},"12.35":{t:"`mask`\r",p:`Triggered when the mask layer is shown or hidden. -<div clas ...`,l:"en/advanced/event.html#mask",a:"mask"},"12.36":{t:"`subtitle`\r",p:`Triggered when the subtitle layer is shown or hidden. -<div ...`,l:"en/advanced/event.html#subtitle",a:"subtitle"},"12.37":{t:"`contextmenu`\r",p:`Triggered when the context menu is shown or hidden. -<div cl ...`,l:"en/advanced/event.html#contextmenu",a:"contextmenu"},"12.38":{t:"`control`\r",p:`Triggered when the control bar is shown or hidden. -<div cla ...`,l:"en/advanced/event.html#control",a:"control"},"12.39":{t:"`setting`\r",p:`Triggered when the settings panel is shown or hidden. -<div ...`,l:"en/advanced/event.html#setting",a:"setting"},"12.40":{t:"`muted`\r",p:`Triggered when the muted state changes. -<div className=&quo ...`,l:"en/advanced/event.html#muted",a:"muted"},"12.41":{t:"`keydown`\r",p:`Listens for the keydown event from the document. -<div class ...`,l:"en/advanced/event.html#keydown",a:"keydown"},"12.42":{t:"`video:canplay`\r",p:"The browser can start playing the media, but estimates there i ...",l:"en/advanced/event.html#video-canplay",a:"video-canplay"},"12.43":{t:"`video:canplaythrough`\r",p:"The browser estimates it can play the media through to the end ...",l:"en/advanced/event.html#video-canplaythrough",a:"video-canplaythrough"},"12.44":{t:"`video:complete`\r",p:`The OfflineAudioContext rendering is complete. -`,l:"en/advanced/event.html#video-complete",a:"video-complete"},"12.45":{t:"`video:durationchange`\r",p:`Triggered when the value of the duration property changes. -`,l:"en/advanced/event.html#video-durationchange",a:"video-durationchange"},"12.46":{t:"`video:emptied`\r",p:"The media has become empty; for example, this event is sent wh ...",l:"en/advanced/event.html#video-emptied",a:"video-emptied"},"12.47":{t:"`video:ended`\r",p:`Playback has stopped because the media has reached its end. -`,l:"en/advanced/event.html#video-ended",a:"video-ended"},"12.48":{t:"`video:error`\r",p:"An error occurred while fetching the media data, or the resour ...",l:"en/advanced/event.html#video-error",a:"video-error"},"12.49":{t:"`video:loadeddata`\r",p:`The first frame of the media has finished loading. -`,l:"en/advanced/event.html#video-loadeddata",a:"video-loadeddata"},"12.50":{t:"`video:loadedmetadata`\r",p:`Metadata has been loaded. -`,l:"en/advanced/event.html#video-loadedmetadata",a:"video-loadedmetadata"},"12.51":{t:"`video:pause`\r",p:`Playback has been paused. -`,l:"en/advanced/event.html#video-pause",a:"video-pause"},"12.52":{t:"`video:play`\r",p:`Playback has begun. -`,l:"en/advanced/event.html#video-play",a:"video-play"},"12.53":{t:"`video:playing`\r",p:"Playback is ready to start after having been paused or delayed ...",l:"en/advanced/event.html#video-playing",a:"video-playing"},"12.54":{t:"`video:progress`\r",p:`Fired periodically as the browser loads the resource. -`,l:"en/advanced/event.html#video-progress",a:"video-progress"},"12.55":{t:"`video:ratechange`\r",p:`The playback rate has changed. -`,l:"en/advanced/event.html#video-ratechange",a:"video-ratechange"},"12.56":{t:"`video:seeked`\r",p:`A seek operation has completed. -`,l:"en/advanced/event.html#video-seeked",a:"video-seeked"},"12.57":{t:"`video:seeking`\r",p:`A seek operation has begun. -`,l:"en/advanced/event.html#video-seeking",a:"video-seeking"},"12.58":{t:"`video:stalled`\r",p:"The user agent is trying to fetch media data, but data is unex ...",l:"en/advanced/event.html#video-stalled",a:"video-stalled"},"12.59":{t:"`video:suspend`\r",p:`Media data loading has been suspended. -`,l:"en/advanced/event.html#video-suspend",a:"video-suspend"},"12.60":{t:"`video:timeupdate`\r",p:`The time indicated by the currentTime property has changed. -`,l:"en/advanced/event.html#video-timeupdate",a:"video-timeupdate"},"12.61":{t:"`video:volumechange`\r",p:`The volume has changed. -`,l:"en/advanced/event.html#video-volumechange",a:"video-volumechange"},"12.62":{t:"`video:waiting`\r",p:`Playback has stopped because of a temporary lack of data. -`,l:"en/advanced/event.html#video-waiting",a:"video-waiting"},"13.0":{t:"# Global Properties\r",p:"The global properties here refer to the top-level properties m ...",l:"en/advanced/global.html",a:"global-properties"},"13.1":{t:"DEBUG\r",p:"Whether to enable debug mode, which can print all built-in vid ...",l:"en/advanced/global.html#debug",a:"debug"},"13.2":{t:"STYLE\r",p:`Returns the player style text. -<div className="run-cod ...`,l:"en/advanced/global.html#style",a:"style"},"13.3":{t:"CONTEXTMENU\r",p:`Whether to enable the context menu. Default is on. -<div cla ...`,l:"en/advanced/global.html#contextmenu",a:"contextmenu"},"13.4":{t:"NOTICE_TIME\r",p:"The display duration of notification messages, in milliseconds ...",l:"en/advanced/global.html#notice-time",a:"notice-time"},"13.5":{t:"SETTING_WIDTH\r",p:"The default width of the settings panel, in pixels. Default is ...",l:"en/advanced/global.html#setting-width",a:"setting-width"},"13.6":{t:"SETTING_ITEM_WIDTH\r",p:"The default width of a setting item in the settings panel, in ...",l:"en/advanced/global.html#setting-item-width",a:"setting-item-width"},"13.7":{t:"SETTING_ITEM_HEIGHT\r",p:"The default height of a setting item in the settings panel, in ...",l:"en/advanced/global.html#setting-item-height",a:"setting-item-height"},"13.8":{t:"RESIZE_TIME\r",p:"The throttle time for the resize event, in milliseconds. Defau ...",l:"en/advanced/global.html#resize-time",a:"resize-time"},"13.9":{t:"SCROLL_TIME\r",p:"The throttle time for the scroll event, in milliseconds. Defau ...",l:"en/advanced/global.html#scroll-time",a:"scroll-time"},"13.10":{t:"SCROLL_GAP\r",p:"The boundary tolerance distance for the view event, in pixels. ...",l:"en/advanced/global.html#scroll-gap",a:"scroll-gap"},"13.11":{t:"AUTO_PLAYBACK_MAX\r",p:"The maximum record count for the auto-playback feature. Defaul ...",l:"en/advanced/global.html#auto-playback-max",a:"auto-playback-max"},"13.12":{t:"AUTO_PLAYBACK_MIN\r",p:"The minimum record duration for the auto-playback feature, in ...",l:"en/advanced/global.html#auto-playback-min",a:"auto-playback-min"},"13.13":{t:"AUTO_PLAYBACK_TIMEOUT\r",p:"The hide delay duration for the auto-playback feature, in mill ...",l:"en/advanced/global.html#auto-playback-timeout",a:"auto-playback-timeout"},"13.14":{t:"RECONNECT_TIME_MAX\r",p:"The maximum number of automatic reconnection attempts when a c ...",l:"en/advanced/global.html#reconnect-time-max",a:"reconnect-time-max"},"13.15":{t:"RECONNECT_SLEEP_TIME\r",p:"The delay time for automatic reconnection when a connection er ...",l:"en/advanced/global.html#reconnect-sleep-time",a:"reconnect-sleep-time"},"13.16":{t:"CONTROL_HIDE_TIME\r",p:"The auto-hide delay time for the bottom control bar, in millis ...",l:"en/advanced/global.html#control-hide-time",a:"control-hide-time"},"13.17":{t:"DBCLICK_TIME\r",p:"The delay time for the double-click event, in milliseconds. De ...",l:"en/advanced/global.html#dbclick-time",a:"dbclick-time"},"13.18":{t:"DBCLICK_FULLSCREEN\r",p:"On desktop, whether double-click toggles fullscreen. Default i ...",l:"en/advanced/global.html#dbclick-fullscreen",a:"dbclick-fullscreen"},"13.19":{t:"MOBILE_DBCLICK_PLAY\r",p:"On mobile, whether double-click toggles play/pause. Default is ...",l:"en/advanced/global.html#mobile-dbclick-play",a:"mobile-dbclick-play"},"13.20":{t:"MOBILE_CLICK_PLAY\r",p:"On mobile, whether single-click toggles play/pause. Default is ...",l:"en/advanced/global.html#mobile-click-play",a:"mobile-click-play"},"13.21":{t:"AUTO_ORIENTATION_TIME\r",p:"On mobile, the delay time for auto-rotation, in milliseconds. ...",l:"en/advanced/global.html#auto-orientation-time",a:"auto-orientation-time"},"13.22":{t:"INFO_LOOP_TIME\r",p:"The refresh interval for the info panel, in milliseconds. Defa ...",l:"en/advanced/global.html#info-loop-time",a:"info-loop-time"},"13.23":{t:"FAST_FORWARD_VALUE\r",p:"On mobile, the speed multiplier for long-press fast-forward. D ...",l:"en/advanced/global.html#fast-forward-value",a:"fast-forward-value"},"13.24":{t:"FAST_FORWARD_TIME\r",p:"On mobile, the delay time for long-press fast-forward, in mill ...",l:"en/advanced/global.html#fast-forward-time",a:"fast-forward-time"},"13.25":{t:"TOUCH_MOVE_RATIO\r",p:"On mobile, the speed multiplier for left/right swipe to seek. ...",l:"en/advanced/global.html#touch-move-ratio",a:"touch-move-ratio"},"13.26":{t:"VOLUME_STEP\r",p:"The step size for volume adjustment via keyboard shortcuts. De ...",l:"en/advanced/global.html#volume-step",a:"volume-step"},"13.27":{t:"SEEK_STEP\r",p:"The step size for seeking via keyboard shortcuts, in seconds. ...",l:"en/advanced/global.html#seek-step",a:"seek-step"},"13.28":{t:"PLAYBACK_RATE\r",p:"The built-in list of playback rates. Default is [0.5, 0.75, 1, ...",l:"en/advanced/global.html#playback-rate",a:"playback-rate"},"13.29":{t:"ASPECT_RATIO\r",p:"The built-in list of video aspect ratios. Default is ['default ...",l:"en/advanced/global.html#aspect-ratio",a:"aspect-ratio"},"13.30":{t:"FLIP\r",p:"The built-in list of video flip options. Default is ['normal', ...",l:"en/advanced/global.html#flip",a:"flip"},"13.31":{t:"FULLSCREEN_WEB_IN_BODY\r",p:"Whether to mount the player under the body element during web ...",l:"en/advanced/global.html#fullscreen-web-in-body",a:"fullscreen-web-in-body"},"13.32":{t:"LOG_VERSION\r",p:`Sets whether to print the player version. Default is true. -< ...`,l:"en/advanced/global.html#log-version",a:"log-version"},"13.33":{t:"USE_RAF\r",p:"Sets whether to use requestAnimationFrame. Default is false. C ...",l:"en/advanced/global.html#use-raf",a:"use-raf"},"13.34":{t:"REMOVE_SRC_WHEN_DESTROY\r",p:"Whether to remove the video's src attribute and call load() to ...",l:"en/advanced/global.html#remove-src-when-destroy",a:"remove-src-when-destroy"},"14.0":{t:"# Writing Plugins\r",p:"Once you are familiar with the player's properties, methods, a ...",l:"en/advanced/plugin.html",a:"writing-plugins"},"15.0":{t:"# Instance Properties\r",p:"Here, Instance Properties refer to the first-level properties ...",l:"en/advanced/property.html",a:"instance-properties"},"15.1":{t:"`play`\r",p:` -Type: Function - -Play the video. -<div className="run-c ...`,l:"en/advanced/property.html#play",a:"play"},"15.2":{t:"`pause`\r",p:` -Type: Function - -Pause the video. -<div className="run- ...`,l:"en/advanced/property.html#pause",a:"pause"},"15.3":{t:"`toggle`\r",p:` -Type: Function - -Toggle video play and pause. -<div classNam ...`,l:"en/advanced/property.html#toggle",a:"toggle"},"15.4":{t:"`destroy`\r",p:` -Type: Function -Parameter: Boolean - -Destroy the player. Accept ...`,l:"en/advanced/property.html#destroy",a:"destroy"},"15.5":{t:"`reset`\r",p:` -Type: Function - -Reset the player's video element: removes the ...`,l:"en/advanced/property.html#reset",a:"reset"},"15.6":{t:"`seek`\r",p:` -Type: Setter -Parameter: Number - -Seek to a specific time in th ...`,l:"en/advanced/property.html#seek",a:"seek"},"15.7":{t:"`forward`\r",p:` -Type: Setter -Parameter: Number - -Fast-forward the video time, ...`,l:"en/advanced/property.html#forward",a:"forward"},"15.8":{t:"`backward`\r",p:` -Type: Setter -Parameter: Number - -Rewind the video time, in sec ...`,l:"en/advanced/property.html#backward",a:"backward"},"15.9":{t:"`volume`\r",p:` -Type: Setter/Getter -Parameter: Number - -Set and get the video ...`,l:"en/advanced/property.html#volume",a:"volume"},"15.10":{t:"`url`\r",p:` -Type: Setter/Getter -Parameter: String - -Set and get the video ...`,l:"en/advanced/property.html#url",a:"url"},"15.11":{t:"`switch`\r",p:` -Type: Setter -Parameter: String - -Set the video URL. Similar to ...`,l:"en/advanced/property.html#switch",a:"switch"},"15.12":{t:"`switchUrl`\r",p:` -Type: Function -Parameter: String - -Set the video URL. Similar ...`,l:"en/advanced/property.html#switchurl",a:"switchurl"},"15.13":{t:"`switchQuality`\r",p:` -Type: Function -Parameter: String - -Sets the video quality URL. ...`,l:"en/advanced/property.html#switchquality",a:"switchquality"},"15.14":{t:"`muted`\r",p:` -Type: Setter/Getter -Parameter: Boolean - -Sets or gets whether ...`,l:"en/advanced/property.html#muted",a:"muted"},"15.15":{t:"`currentTime`\r",p:` -Type: Setter/Getter -Parameter: Number - -Sets or gets the curre ...`,l:"en/advanced/property.html#currenttime",a:"currenttime"},"15.16":{t:"`duration`\r",p:` -Type: Getter - -Gets the duration of the video. -<div classNa ...`,l:"en/advanced/property.html#duration",a:"duration"},"15.17":{t:"`screenshot`\r",p:` -Type: Function - -Downloads a screenshot of the current video f ...`,l:"en/advanced/property.html#screenshot",a:"screenshot"},"15.18":{t:"`getDataURL`\r",p:` -Type: Function - -Gets the base64 URL of a screenshot of the cu ...`,l:"en/advanced/property.html#getdataurl",a:"getdataurl"},"15.19":{t:"`getBlobUrl`\r",p:` -Type: Function - -Gets the blob URL of a screenshot of the curr ...`,l:"en/advanced/property.html#getbloburl",a:"getbloburl"},"15.20":{t:"`fullscreen`\r",p:` -Type: Setter/Getter -Parameter: Boolean - -Sets or gets the play ...`,l:"en/advanced/property.html#fullscreen",a:"fullscreen"},"15.21":{t:"`fullscreenWeb`\r",p:` -Type: Setter/Getter -Parameter: Boolean - -Sets or gets the play ...`,l:"en/advanced/property.html#fullscreenweb",a:"fullscreenweb"},"15.22":{t:"`pip`\r",p:` -Type: Setter/Getter -Parameter: Boolean - -Sets or gets the play ...`,l:"en/advanced/property.html#pip",a:"pip"},"15.23":{t:"`poster`\r",p:` -Type: Setter/Getter -Parameter: String - -Sets and gets the vide ...`,l:"en/advanced/property.html#poster",a:"poster"},"15.24":{t:"`mini`\r",p:` -Type: Setter/Getter -Parameter: Boolean - -Sets and gets the pla ...`,l:"en/advanced/property.html#mini",a:"mini"},"15.25":{t:"`playing`\r",p:` -Type: Getter -Parameter: Boolean - -Gets whether the video is cu ...`,l:"en/advanced/property.html#playing",a:"playing"},"15.26":{t:"`state`\r",p:` -Type: Setter/Getter -Parameter: String - -Gets or sets the playe ...`,l:"en/advanced/property.html#state",a:"state"},"15.27":{t:"`autoSize`\r",p:` -Type: Function - -Sets whether the video adapts its size automa ...`,l:"en/advanced/property.html#autosize",a:"autosize"},"15.28":{t:"`rect`\r",p:` -Type: Getter - -Gets the player's dimensions and coordinate inf ...`,l:"en/advanced/property.html#rect",a:"rect"},"15.29":{t:"`bottom` / `top` / `left` / `right` / `x` / `y` / `width` / `height`\r",p:` -Type: Getter - -These properties provide quick access to rect: - ...`,l:"en/advanced/property.html#bottom-top-left-right-x-y-width-height",a:"bottom-top-left-right-x-y-width-height"},"15.30":{t:"`flip`\r",p:` -Type: Setter/Getter -Parameter: String - -Sets and gets the play ...`,l:"en/advanced/property.html#flip",a:"flip"},"15.31":{t:"`playbackRate`\r",p:` -Type: Setter/Getter -Parameter: Number - -Sets and gets the play ...`,l:"en/advanced/property.html#playbackrate",a:"playbackrate"},"15.32":{t:"`aspectRatio`\r",p:` -Type: Setter/Getter -Parameter: String - -Sets and gets the play ...`,l:"en/advanced/property.html#aspectratio",a:"aspectratio"},"15.33":{t:"`autoHeight`\r",p:` -Type: Function - -When the container only has a defined width, ...`,l:"en/advanced/property.html#autoheight",a:"autoheight"},"15.34":{t:"`attr`\r",p:` -Type: Function -Parameter: String - -Dynamically get and set att ...`,l:"en/advanced/property.html#attr",a:"attr"},"15.35":{t:"`type`\r",p:` -Type: Setter/Getter -Parameter: String - -Dynamically get and se ...`,l:"en/advanced/property.html#type",a:"type"},"15.36":{t:"`theme`\r",p:` -Type: Setter/Getter -Parameter: String - -Dynamically get and se ...`,l:"en/advanced/property.html#theme",a:"theme"},"15.37":{t:"`airplay`\r",p:` -Type: Function - -Initiate AirPlay. -<div className="run ...`,l:"en/advanced/property.html#airplay",a:"airplay"},"15.38":{t:"`loaded`\r",p:` -Type: Getter - -The proportion of video buffered, ranging from ...`,l:"en/advanced/property.html#loaded",a:"loaded"},"15.39":{t:"`loadedTime`\r",p:` -Type: Getter - -The buffered media duration in seconds. Typical ...`,l:"en/advanced/property.html#loadedtime",a:"loadedtime"},"15.40":{t:"`played`\r",p:` -Type: Getter - -The proportion of video played, ranging from [0 ...`,l:"en/advanced/property.html#played",a:"played"},"15.41":{t:"`proxy`\r",p:` -Type: Function - -A proxy function for DOM events, essentially ...`,l:"en/advanced/property.html#proxy",a:"proxy"},"15.42":{t:"`query`\r",p:` -Type: Function - -A DOM query function, similar to document.que ...`,l:"en/advanced/property.html#query",a:"query"},"15.43":{t:"`video`\r",p:` -Type: Element - -Quickly returns the player's video element. -&l ...`,l:"en/advanced/property.html#video",a:"video"},"15.44":{t:"`cssVar`\r",p:` -Type: Function - -Dynamically get or set CSS variables. -<div ...`,l:"en/advanced/property.html#cssvar",a:"cssvar"},"15.45":{t:"`quality`\r",p:` -Type: Setter -Parameter: Array - -Dynamically set the quality li ...`,l:"en/advanced/property.html#quality",a:"quality"},"15.46":{t:"`thumbnails`\r",p:` -Type: Setter/Getter -Parameter: Object - -Dynamically set thumbn ...`,l:"en/advanced/property.html#thumbnails",a:"thumbnails"},"15.47":{t:"`subtitleOffset`\r",p:` -Type: Setter/Getter -Parameter: Number - -Dynamically set subtit ...`,l:"en/advanced/property.html#subtitleoffset",a:"subtitleoffset"},"16.0":{t:"# Context Menu\r",p:"\r",l:"en/component/contextmenu.html",a:"context-menu"},"16.1":{t:"Configuration\r",p:` - - -Property -Type -Description - - - - -disable -Boolean -Whether to di ...`,l:"en/component/contextmenu.html#configuration",a:"configuration"},"16.2":{t:"Creation\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#creation",a:"creation"},"16.3":{t:"Addition\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#addition",a:"addition"},"16.4":{t:"Deletion\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#deletion",a:"deletion"},"16.5":{t:"Update\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#update",a:"update"},"17.0":{t:"# Controls\r",p:"\r",l:"en/component/controls.html",a:"controls"},"17.1":{t:"Configuration\r",p:` - - -Property -Type -Description - - - - -disable -Boolean -Whether to di ...`,l:"en/component/controls.html#configuration",a:"configuration"},"17.2":{t:"Creation\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#creation",a:"creation"},"17.3":{t:"Adding\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#adding",a:"adding"},"17.4":{t:"Removal\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#removal",a:"removal"},"17.5":{t:"Updating\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#updating",a:"updating"},"18.0":{t:"# Layers\r",p:"\r",l:"en/component/layers.html",a:"layers"},"18.1":{t:"Configuration\r",p:` - - -Property -Type -Description - - - - -disable -Boolean -Whether to di ...`,l:"en/component/layers.html#configuration",a:"configuration"},"18.2":{t:"Creation\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#creation",a:"creation"},"18.3":{t:"Addition\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#addition",a:"addition"},"18.4":{t:"Removal\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#removal",a:"removal"},"18.5":{t:"Update\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#update",a:"update"},"19.0":{t:"# Settings Panel\r",p:"\r",l:"en/component/setting.html",a:"settings-panel"},"19.1":{t:"Built-in\r",p:"First, you need to open the settings panel. It comes with four ...",l:"en/component/setting.html#built-in",a:"built-in"},"19.2":{t:"Create - Button\r",p:` - - -Property -Type -Description - - - - -html -String, Element -The DOM ...`,l:"en/component/setting.html#create-button",a:"create-button"},"19.3":{t:"Create - Selection List\r",p:` - - -Property -Type -Description - - - - -html -String, Element -The DOM ...`,l:"en/component/setting.html#create-selection-list",a:"create-selection-list"},"19.4":{t:"Create - Nested List\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#create-nested-list",a:"create-nested-list"},"19.5":{t:"Create - Toggle Button\r",p:` - - -Property -Type -Description - - - - -html -String, Element -DOM elem ...`,l:"en/component/setting.html#create-toggle-button",a:"create-toggle-button"},"19.6":{t:"Create - Range Slider\r",p:` - - -Property -Type -Description - - - - -html -String, Element -DOM elem ...`,l:"en/component/setting.html#create-range-slider",a:"create-range-slider"},"19.7":{t:"Add\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#add",a:"add"},"19.8":{t:"Remove\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#remove",a:"remove"},"19.9":{t:"Update\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#update",a:"update"},"20.0":{t:"# Installation and Usage\r",p:"\r",l:"en/index.html",a:"installation-and-usage"},"20.1":{t:"Installation\r",p:`::: code-group -npm install artplayer - -yarn add artplayer - -pnpm ...`,l:"en/index.html#installation",a:"installation"},"20.2":{t:"`CDN`\r",p:`::: code-group -https://cdn.jsdelivr.net/npm/artplayer/dist/art ...`,l:"en/index.html#cdn",a:"cdn"},"20.3":{t:"Usage\r",p:`::: code-group -<html> - <head> - <title ...`,l:"en/index.html#usage",a:"usage"},"20.4":{t:"`Vue.js`\r",p:`::: code-group -<template> - <div ref="$container ...`,l:"en/index.html#vue-js",a:"vue-js"},"20.5":{t:"`React.js`\r",p:`::: code-group -import Artplayer from 'artplayer' -import { useE ...`,l:"en/index.html#react-js",a:"react-js"},"20.6":{t:"TypeScript\r",p:"The artplayer.d.ts file is automatically imported when you imp ...",l:"en/index.html#typescript",a:"typescript"},"20.7":{t:"Vue.js\r",p:` - -`,l:"en/index.html#vue-js",a:"vue-js"},"20.8":{t:"React.js\r",p:`import Artplayer from 'artplayer'; -const art = useRef<Artpl ...`,l:"en/index.html#react-js",a:"react-js"},"20.9":{t:"Option\r",p:`You can also use the type for the options. -import Artplayer, { ...`,l:"en/index.html#option",a:"option"},"20.10":{t:"JavaScript\r",p:"Sometimes your js files may lose TypeScript type hints. In suc ...",l:"en/index.html#javascript",a:"javascript"},"20.11":{t:"Legacy Browsers\r",p:"The production build artplayer.js only supports the latest maj ...",l:"en/index.html#legacy-browsers",a:"legacy-browsers"},"20.12":{t:"ECMAScript Module\r",p:`::: tip ESM Demo: -https://artplayer.org/esm.html -::: -Starting ...`,l:"en/index.html#ecmascript-module",a:"ecmascript-module"},"20.13":{t:"Custom userAgent\r",p:"Currently, the detection of whether a device is mobile is not ...",l:"en/index.html#custom-useragent",a:"custom-useragent"},"21.0":{t:"# Danmuku",p:`中文说明 -Display timed comments over the video, with an input pane ...`,l:"en/plugin/danmuku.html",a:"danmuku"},"21.1":{t:"Demo",p:`Open the full example. -Run Code examples below use the site's ...`,l:"en/plugin/danmuku.html#demo",a:"demo"},"21.2":{t:"Installation",p:`::: code-group -npm install artplayer artplayer-plugin-danmuku - ...`,l:"en/plugin/danmuku.html#installation",a:"installation"},"21.3":{t:"CDN",p:`::: code-group -https://cdn.jsdelivr.net/npm/artplayer-plugin-d ...`,l:"en/plugin/danmuku.html#cdn",a:"cdn"},"21.4":{t:"Comment structure",p:"Only text is required. Leading and trailing whitespace is remo ...",l:"en/plugin/danmuku.html#comment-structure",a:"comment-structure"},"21.5":{t:"All options",p:"Pass an option object to the factory. At runtime, {} is valid ...",l:"en/plugin/danmuku.html#all-options",a:"all-options"},"21.6":{t:"Array, XML and asynchronous input",p:"XML input uses Bilibili's comment format. Fetching a cross-ori ...",l:"en/plugin/danmuku.html#array-xml-and-asynchronous-input",a:"array-xml-and-asynchronous-input"},"21.7":{t:"Lifecycle callbacks",p:"Input-panel submissions run beforeEmit → filter → beforeVisibl ...",l:"en/plugin/danmuku.html#lifecycle-callbacks",a:"lifecycle-callbacks"},"21.8":{t:"Methods and state",p:"The registered plugin is available synchronously as art.plugin ...",l:"en/plugin/danmuku.html#methods-and-state",a:"methods-and-state"},"21.9":{t:"Loading and configuration",p:"Changing config({ danmuku: input }) does not load the new inpu ...",l:"en/plugin/danmuku.html#loading-and-configuration",a:"loading-and-configuration"},"21.10":{t:"External mount",p:"Create a separate mount element before constructing the plugin ...",l:"en/plugin/danmuku.html#external-mount",a:"external-mount"},"21.11":{t:"Heatmap",p:"Set heatmap: true at construction to sample the queue automati ...",l:"en/plugin/danmuku.html#heatmap",a:"heatmap"},"21.12":{t:"Events",p:"Subscribe with art.on(name, callback) and remove subscriptions ...",l:"en/plugin/danmuku.html#events",a:"events"},"21.13":{t:"TypeScript",p:"The root and /legacy entrypoints keep the npm 5.3.0 declaratio ...",l:"en/plugin/danmuku.html#typescript",a:"typescript"},"22.0":{t:"# HLS Control",p:`中文说明 -Add quality and audio-track menus to an Hls.js player. Th ...`,l:"en/plugin/hls-control.html",a:"hls-control"},"22.1":{t:"Installation",p:`yarn add artplayer hls.js artplayer-plugin-hls-control - -import ...`,l:"en/plugin/hls-control.html#installation",a:"installation"},"22.2":{t:"Complete example",p:"The example uses the site's player container and the same sour ...",l:"en/plugin/hls-control.html#complete-example",a:"complete-example"},"22.3":{t:"Configuration",p:"artplayerPluginHlsControl(option?) returns a synchronous plugi ...",l:"en/plugin/hls-control.html#configuration",a:"configuration"},"22.4":{t:"Refresh after external changes",p:"The plugin updates on player ready and restart. When the SDK p ...",l:"en/plugin/hls-control.html#refresh-after-external-changes",a:"refresh-after-external-changes"},"22.5":{t:"SDK ownership and source switching",p:"Use the player's existing switchUrl() or switchQuality() for s ...",l:"en/plugin/hls-control.html#sdk-ownership-and-source-switching",a:"sdk-ownership-and-source-switching"},"22.6":{t:"TypeScript",p:"The default callback types include level height/name and audio ...",l:"en/plugin/hls-control.html#typescript",a:"typescript"},"22.7":{t:"Validation scope",p:"The refactor tests Hls.js 1.5.17 and 1.7.2 with local media an ...",l:"en/plugin/hls-control.html#validation-scope",a:"validation-scope"},"23.0":{t:"# Language Settings\r",p:`::: danger -Due to the increasing number of bundled multilingua ...`,l:"en/start/i18n.html",a:"language-settings"},"23.1":{t:"Default Languages\r",p:"The default languages are: en, zh-cn. No manual import is requ ...",l:"en/start/i18n.html#default-languages",a:"default-languages"},"23.2":{t:"Importing Languages\r",p:"Language files before bundling are located at: artplayer/src/i ...",l:"en/start/i18n.html#importing-languages",a:"importing-languages"},"23.3":{t:"Adding a New Language\r",p:`var art = new Artplayer({ - container: '.artplayer-app', - ...`,l:"en/start/i18n.html#adding-a-new-language",a:"adding-a-new-language"},"23.4":{t:"Modifying a Language\r",p:`import zhTw from 'artplayer/i18n/zh-tw'; - -var art = new Artpla ...`,l:"en/start/i18n.html#modifying-a-language",a:"modifying-a-language"},"24.0":{t:"# Basic Options\r",p:"\r",l:"en/start/option.html",a:"basic-options"},"24.1":{t:"`container`\r",p:` -Type: String, Element -Default: #artplayer - -The DOM container ...`,l:"en/start/option.html#container",a:"container"},"24.2":{t:"`url`\r",p:` -Type: String -Default: '' - -The video source URL. -<div class ...`,l:"en/start/option.html#url",a:"url"},"24.3":{t:"`id`\r",p:` -Type: String -Default: '' - -The unique identifier for the playe ...`,l:"en/start/option.html#id",a:"id"},"24.4":{t:"`onReady`\r",p:` -Type: Function -Default: undefined - -The constructor accepts a ...`,l:"en/start/option.html#onready",a:"onready"},"24.5":{t:"`poster`\r",p:` -Type: String -Default: '' - -The video poster image, which only ...`,l:"en/start/option.html#poster",a:"poster"},"24.6":{t:"`theme`\r",p:` -Type: String -Default: #f00 - -The player's theme color, current ...`,l:"en/start/option.html#theme",a:"theme"},"24.7":{t:"`volume`\r",p:` -Type: Number -Default: 0.7 - -The player's default volume. -<d ...`,l:"en/start/option.html#volume",a:"volume"},"24.8":{t:"`isLive`\r",p:` -Type: Boolean -Default: false - -Enable live streaming mode. Thi ...`,l:"en/start/option.html#islive",a:"islive"},"24.9":{t:"`muted`\r",p:` -Type: Boolean -Default: false - -Whether to start muted by defau ...`,l:"en/start/option.html#muted",a:"muted"},"24.10":{t:"`autoplay`\r",p:` -Type: Boolean -Default: false - -Whether to autoplay. -<div cl ...`,l:"en/start/option.html#autoplay",a:"autoplay"},"24.11":{t:"`autoSize`\r",p:` -Type: Boolean -Default: false - -By default, the player's dimens ...`,l:"en/start/option.html#autosize",a:"autosize"},"24.12":{t:"`autoMini`\r",p:` -Type: Boolean -Default: false - -Automatically enters Mini Playe ...`,l:"en/start/option.html#automini",a:"automini"},"24.13":{t:"`loop`\r",p:` -Type: Boolean -Default: false - -Whether to loop playback. -<d ...`,l:"en/start/option.html#loop",a:"loop"},"24.14":{t:"`flip`\r",p:` -Type: Boolean -Default: false - -Whether to display the video fl ...`,l:"en/start/option.html#flip",a:"flip"},"24.15":{t:"`playbackRate`\r",p:` -Type: Boolean -Default: false - -Whether to display the video pl ...`,l:"en/start/option.html#playbackrate",a:"playbackrate"},"24.16":{t:"`aspectRatio`\r",p:` -Type: Boolean -Default: false - -Whether to display the video as ...`,l:"en/start/option.html#aspectratio",a:"aspectratio"},"24.17":{t:"`screenshot`\r",p:` -Type: Boolean -Default: false - -Whether to display the Screensh ...`,l:"en/start/option.html#screenshot",a:"screenshot"},"24.18":{t:"`setting`\r",p:` -Type: Boolean -Default: false - -Whether to display the toggle b ...`,l:"en/start/option.html#setting",a:"setting"},"24.19":{t:"`hotkey`\r",p:` -Type: Boolean -Default: true - -Whether to use hotkeys. -<div ...`,l:"en/start/option.html#hotkey",a:"hotkey"},"24.20":{t:"`pip`\r",p:` -Type: Boolean -Default: false - -Whether to display the Picture- ...`,l:"en/start/option.html#pip",a:"pip"},"24.21":{t:"`mutex`\r",p:` -Type: Boolean -Default: true - -If multiple players exist on the ...`,l:"en/start/option.html#mutex",a:"mutex"},"24.22":{t:"`backdrop`\r",p:` -Type: Boolean -Default: true - -Whether to enable the backdrop b ...`,l:"en/start/option.html#backdrop",a:"backdrop"},"24.23":{t:"`fullscreen`\r",p:` -Type: Boolean -Default: false - -Whether to display the player W ...`,l:"en/start/option.html#fullscreen",a:"fullscreen"},"24.24":{t:"`fullscreenWeb`\r",p:` -Type: Boolean -Default: false - -Whether to display the player W ...`,l:"en/start/option.html#fullscreenweb",a:"fullscreenweb"},"24.25":{t:"`subtitleOffset`\r",p:` -Type: Boolean -Default: false - -Subtitle time offset, ranging f ...`,l:"en/start/option.html#subtitleoffset",a:"subtitleoffset"},"24.26":{t:"`miniProgressBar`\r",p:` -Type: Boolean -Default: false - -A mini progress bar that only a ...`,l:"en/start/option.html#miniprogressbar",a:"miniprogressbar"},"24.27":{t:"`useSSR`\r",p:` -Type: Boolean -Default: false - -Whether to use SSR (Server-Side ...`,l:"en/start/option.html#usessr",a:"usessr"},"24.28":{t:"`playsInline`\r",p:` -Type: Boolean -Default: true - -Whether to use playsInline mode ...`,l:"en/start/option.html#playsinline",a:"playsinline"},"24.29":{t:"`layers`\r",p:` -Type: Array -Default: [] - -Initialize custom layers. -<div cl ...`,l:"en/start/option.html#layers",a:"layers"},"24.30":{t:"`settings`\r",p:` -Type: Array -Default: [] - -Initialize custom settings panels. -& ...`,l:"en/start/option.html#settings",a:"settings"},"24.31":{t:"`contextmenu`\r",p:` -Type: Array -Default: [] - -Initialize custom context menus. -< ...`,l:"en/start/option.html#contextmenu",a:"contextmenu"},"24.32":{t:"`controls`\r",p:` -Type: Array -Default: [] - -Initialize custom bottom control bar ...`,l:"en/start/option.html#controls",a:"controls"},"24.33":{t:"`quality`\r",p:` -Type: Array -Default: [] - -Whether to display the Quality Selec ...`,l:"en/start/option.html#quality",a:"quality"},"24.34":{t:"`highlight`\r",p:` -Type: Array -Default: [] - -Display Highlight Information on the ...`,l:"en/start/option.html#highlight",a:"highlight"},"24.35":{t:"`plugins`\r",p:` -Type: Array -Default: [] - -Initialize custom plugins. -<div c ...`,l:"en/start/option.html#plugins",a:"plugins"},"24.36":{t:"`thumbnails`\r",p:` -Type: Object -Default: {} - -Set Preview Thumbnails on the progr ...`,l:"en/start/option.html#thumbnails",a:"thumbnails"},"24.37":{t:"`subtitle`\r",p:` -Type: Object -Default: {} - -Set video subtitles. Supported subt ...`,l:"en/start/option.html#subtitle",a:"subtitle"},"24.38":{t:"`moreVideoAttr`\r",p:` -Type: Object -Default: {'controls': false, 'preload': 'metadat ...`,l:"en/start/option.html#morevideoattr",a:"morevideoattr"},"24.39":{t:"`icons`\r",p:` -Type: Object -Default: {} - -Used to replace default icons. Supp ...`,l:"en/start/option.html#icons",a:"icons"},"24.40":{t:"`type`\r",p:` -Type: String -Default: '' - -Used to specify the video format. I ...`,l:"en/start/option.html#type",a:"type"},"24.41":{t:"`customType`\r",p:` -Type: Object -Default: {} - -Matches based on the video's type a ...`,l:"en/start/option.html#customtype",a:"customtype"},"24.42":{t:"`lang`\r",p:` -Type: String -Default: navigator.language.toLowerCase() - -The d ...`,l:"en/start/option.html#lang",a:"lang"},"24.43":{t:"`i18n`\r",p:` -Type: Object -Default: {} - -Custom i18n configuration. This con ...`,l:"en/start/option.html#i18n",a:"i18n"},"24.44":{t:"`lock`\r",p:` -Type: Boolean -Default: false - -Whether to display a lock butto ...`,l:"en/start/option.html#lock",a:"lock"},"24.45":{t:"`gesture`\r",p:` -Type: Boolean -Default: true - -Whether to enable gesture events ...`,l:"en/start/option.html#gesture",a:"gesture"},"24.46":{t:"`fastForward`\r",p:` -Type: Boolean -Default: false - -Whether to add a long-press vid ...`,l:"en/start/option.html#fastforward",a:"fastforward"},"24.47":{t:"`autoPlayback`\r",p:` -Type: Boolean -Default: false - -Whether to use the automatic pl ...`,l:"en/start/option.html#autoplayback",a:"autoplayback"},"24.48":{t:"`autoOrientation`\r",p:` -Type: Boolean -Default: false - -Whether to rotate the player in ...`,l:"en/start/option.html#autoorientation",a:"autoorientation"},"24.49":{t:"`airplay`\r",p:` -Type: Boolean -Default: false - -Whether to display the airplay ...`,l:"en/start/option.html#airplay",a:"airplay"},"24.50":{t:"`cssVar`\r",p:` -Type: Object -Default: {} - -Used to modify the built-in CSS var ...`,l:"en/start/option.html#cssvar",a:"cssvar"},"24.51":{t:"`proxy`\r",p:` -Type: function -Default: undefined - -The function can return a ...`,l:"en/start/option.html#proxy",a:"proxy"},"25.0":{t:"# 安装使用\r",p:"\r",l:"index.html",a:"安装使用"},"25.1":{t:"安装\r",p:`::: code-group -npm install artplayer - -yarn add artplayer - -pnpm ...`,l:"index.html#安装",a:"安装"},"25.2":{t:"`CDN`\r",p:`::: code-group -https://cdn.jsdelivr.net/npm/artplayer/dist/art ...`,l:"index.html#cdn",a:"cdn"},"25.3":{t:"使用\r",p:`::: code-group -<html> - <head> - <title ...`,l:"index.html#使用",a:"使用"},"25.4":{t:"`Vue.js`\r",p:`::: code-group -<template> - <div ref="$container ...`,l:"index.html#vue-js",a:"vue-js"},"25.5":{t:"`React.js`\r",p:`::: code-group -import Artplayer from 'artplayer' -import { useE ...`,l:"index.html#react-js",a:"react-js"},"25.6":{t:"TypeScript\r",p:`导入 Artplayer 时会自动导入的 artplayer.d.ts -`,l:"index.html#typescript",a:"typescript"},"25.7":{t:"Vue.js\r",p:` - -`,l:"index.html#vue-js",a:"vue-js"},"25.8":{t:"React.js\r",p:`import Artplayer from 'artplayer'; -const art = useRef<Artpl ...`,l:"index.html#react-js",a:"react-js"},"25.9":{t:"Option\r",p:`你也可以使用选项的类型 -import Artplayer, { type Option } from 'artplayer' ...`,l:"index.html#option",a:"option"},"25.10":{t:"JavaScript\r",p:`有时你的 js 文件会丢失 TypeScript 的类型提示,这时候你可以手动导入类型 -变量: -/** - * @type { ...`,l:"index.html#javascript",a:"javascript"},"25.11":{t:"古老的浏览器\r",p:`生产构建的 artplayer.js 只兼容最新一个主版本的 Chrome:last 1 Chrome version -对于 ...`,l:"index.html#古老的浏览器",a:"古老的浏览器"},"25.12":{t:"ECMAScript Module\r",p:`::: tip ESM Demo: -https://artplayer.org/esm.html -::: -从 5.2.6 开 ...`,l:"index.html#ecmascript-module",a:"ecmascript-module"},"25.13":{t:"自定义 userAgent\r",p:"目前对于是否移动设备的判断并不准确,有时候希望通过改变 userAgent 来调整播放器的UI, 所以在 5.2.4 开始新 ...",l:"index.html#自定义-useragent",a:"自定义-useragent"},"26.0":{t:"# 弹幕库",p:`English guide -本文描述当前重构分支。/runtime 类型入口与本轮修复尚未发布到 npm;CDN 默认仍加载 ...`,l:"plugin/danmuku.html",a:"弹幕库"},"26.1":{t:"演示",p:`👉 查看完整演示 -下方 Run Code 使用本站构建的插件与样本。接入自己的应用时,请替换容器和媒体 URL。 -`,l:"plugin/danmuku.html#演示",a:"演示"},"26.2":{t:"安装",p:`::: code-group -npm install artplayer-plugin-danmuku - -yarn add ...`,l:"plugin/danmuku.html#安装",a:"安装"},"26.3":{t:"CDN",p:`::: code-group -https://cdn.jsdelivr.net/npm/artplayer-plugin-d ...`,l:"plugin/danmuku.html#cdn",a:"cdn"},"26.4":{t:"弹幕结构",p:`每一个弹幕是一个对象,多个弹幕组成的数组就是弹幕库,通常只需要text就可以发送一个弹幕,其余都是非必要参数 -{ - t ...`,l:"plugin/danmuku.html#弹幕结构",a:"弹幕结构"},"26.5":{t:"全部选项",p:"工厂需要一个配置对象。运行时可传 {},每个字段都有默认值;旧版根入口类型仍要求 danmuku,旧项目继续传入它即可。准确 ...",l:"plugin/danmuku.html#全部选项",a:"全部选项"},"26.6":{t:"生命周期",p:"filter 同步执行,不应返回 Promise;beforeEmit 可异步,但只有严格返回 true 才发送。befor ...",l:"plugin/danmuku.html#生命周期",a:"生命周期"},"26.7":{t:"使用弹幕数组",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/danmuku.html#使用弹幕数组",a:"使用弹幕数组"},"26.8":{t:"使用弹幕 XML",p:`弹幕 XML 文件,和 Bilibili 网站的弹幕格式一致 -<div className="run-cod ...`,l:"plugin/danmuku.html#使用弹幕-xml",a:"使用弹幕-xml"},"26.9":{t:"使用异步返回",p:`也可以直接传入 Promise<弹幕数组>,或传入同步返回数组的函数。输入函数没有配置对象作为 this。 -&l ...`,l:"plugin/danmuku.html#使用异步返回",a:"使用异步返回"},"26.10":{t:"`hide/show`",p:`通过方法 hide 和 show 进行隐藏或者显示弹幕 -<div className="run-code&q ...`,l:"plugin/danmuku.html#hide-show",a:"hide-show"},"26.11":{t:"`isHide`",p:`通过属性 isHide 判断当前弹幕是隐藏或者显示 -<div className="run-code&quo ...`,l:"plugin/danmuku.html#ishide",a:"ishide"},"26.12":{t:"`emit`",p:"通过方法 emit 向队列添加一条弹幕。它返回 Promise;完成表示入队处理完成,不代表已经显示。请用 await 或 ...",l:"plugin/danmuku.html#emit",a:"emit"},"26.13":{t:"`config`",p:"通过方法 config 同步合并弹幕配置。更改 danmuku 不会自动重新加载,之后调用无参数的 load() 才会替换队 ...",l:"plugin/danmuku.html#config",a:"config"},"26.14":{t:"`load`",p:"通过 load 重载、切换或追加弹幕库,返回 Promise。无参数 load() 在读取配置中的输入成功后替换队列;传入 ...",l:"plugin/danmuku.html#load",a:"load"},"26.15":{t:"`reset`",p:`用于清空当前显示的弹幕并将队列项重置为等待状态。它不删除队列;后续播放仍可按时间显示弹幕。 -<div classNam ...`,l:"plugin/danmuku.html#reset",a:"reset"},"26.16":{t:"`mount`",p:`在初始化弹幕插件的时候,是可以指定弹幕发射器的挂载位置的,默认是挂载在控制栏的中部,你也可以把它挂载在播放器以外的地方。 -当 ...`,l:"plugin/danmuku.html#mount",a:"mount"},"26.17":{t:"`option`",p:`用于获取当前弹幕配置,返回实时配置对象。更新配置请调用 config,避免直接修改对象而绕过校验和 UI 同步。 -<d ...`,l:"plugin/danmuku.html#option",a:"option"},"26.18":{t:"事件",p:"使用 art.on(name, callback) 订阅,art.off(name, callback) 取消订阅。事件不会 ...",l:"plugin/danmuku.html#事件",a:"事件"},"26.19":{t:"`isStop` 与方法返回值",p:"art.plugins.artplayerPluginDanmuku.isStop 是实时只读的停止状态,与 isHide ...",l:"plugin/danmuku.html#isstop-与方法返回值",a:"isstop-与方法返回值"},"26.20":{t:"热力图",p:`初始化时设置 heatmap: true,按队列自动采样;直播不绘制热力图。 -本轮修复了密集弹幕曲线过高遮挡视频的问题(is ...`,l:"plugin/danmuku.html#热力图",a:"热力图"},"26.21":{t:"TypeScript",p:`根入口和 /legacy 保留 npm 5.3.0 的历史声明形状,其中部分方法返回值与真实运行时不一致。 -当前分支新增 / ...`,l:"plugin/danmuku.html#typescript",a:"typescript"},"27.0":{t:"# HLS 控制",p:`English -为 Hls.js 播放器添加画质与音轨菜单。插件控制你放在 art.hls 上的 Hls.js 实例,不负责 ...`,l:"plugin/hls-control.html",a:"hls-控制"},"27.1":{t:"安装",p:`yarn add artplayer hls.js artplayer-plugin-hls-control - -import ...`,l:"plugin/hls-control.html#安装",a:"安装"},"27.2":{t:"完整示例",p:`下面与在线 HLS 示例使用同一份代码和站点容器。接入自己的应用时替换容器与视频地址。 -<div className= ...`,l:"plugin/hls-control.html#完整示例",a:"完整示例"},"27.3":{t:"配置",p:"artplayerPluginHlsControl(option?) 同步返回插件工厂。quality 与 audio 都可 ...",l:"plugin/hls-control.html#配置",a:"配置"},"27.4":{t:"外部修改后的刷新",p:"播放器 ready、restart 会刷新菜单;SDK 提供事件接口时,清单、档位、音轨与销毁事件也会刷新或清除菜单。选中项 ...",l:"plugin/hls-control.html#外部修改后的刷新",a:"外部修改后的刷新"},"27.5":{t:"SDK 所有权与换源",p:"换源继续使用播放器已有的 switchUrl() 或 switchQuality(),并处理返回的 Promise。示例在创 ...",l:"plugin/hls-control.html#sdk-所有权与换源",a:"sdk-所有权与换源"},"27.6":{t:"TypeScript",p:"默认回调类型包含画质高度/名称和音轨 ID/名称/语言字段。可以通过泛型使用应用所需的 SDK 元数据类型;下面的示例只声明 ...",l:"plugin/hls-control.html#typescript",a:"typescript"},"27.7":{t:"验证范围",p:"重构使用本地媒体和真实 worker 验证 Hls.js 1.5.17 / 1.7.2;这两个版本是验证点,不是新定义的支持 ...",l:"plugin/hls-control.html#验证范围",a:"验证范围"},"28.0":{t:"# 语言设置\r",p:`::: danger -鉴于捆绑的多国语言越来越多, 从 5.1.0 版本开始, artplayer.js 核心代码除了包含 ...`,l:"start/i18n.html",a:"语言设置"},"28.1":{t:"默认语言\r",p:`默认语言有: en, zh-cn, 无需手动导入 -var art = new Artplayer({ - contain ...`,l:"start/i18n.html#默认语言",a:"默认语言"},"28.2":{t:"导入语言\r",p:`打包前的语言文件存放于: artplayer/src/i18n/*.js, 欢迎来添加你的语言 -打包后的语言文件存放于: a ...`,l:"start/i18n.html#导入语言",a:"导入语言"},"28.3":{t:"新增语言\r",p:`var art = new Artplayer({ - container: '.artplayer-app', - ...`,l:"start/i18n.html#新增语言",a:"新增语言"},"28.4":{t:"修改语言\r",p:`import zhTw from 'artplayer/i18n/zh-tw'; - -var art = new Artpla ...`,l:"start/i18n.html#修改语言",a:"修改语言"},"29.0":{t:"# 基础选项\r",p:"\r",l:"start/option.html",a:"基础选项"},"29.1":{t:"`container`\r",p:` -Type: String, Element -Default: #artplayer - -播放器挂载的 DOM 容器 -< ...`,l:"start/option.html#container",a:"container"},"29.2":{t:"`url`\r",p:` -Type: String -Default: '' - -视频源地址 -<div className="run-c ...`,l:"start/option.html#url",a:"url"},"29.3":{t:"`id`\r",p:` -Type: String -Default: '' - -播放器的唯一标识,目前只用于记忆播放 autoplayback -< ...`,l:"start/option.html#id",a:"id"},"29.4":{t:"`onReady`\r",p:` -Type: Function -Default: undefined - -构造函数接受一个函数作为第二个参数,播放器初始化成功 ...`,l:"start/option.html#onready",a:"onready"},"29.5":{t:"`poster`\r",p:` -Type: String -Default: '' - -视频的海报,只会出现在播放器初始化且未播放的状态下 -<div c ...`,l:"start/option.html#poster",a:"poster"},"29.6":{t:"`theme`\r",p:` -Type: String -Default: #f00 - -播放器主题颜色,目前用于 进度条 和 高亮元素 上 -<div ...`,l:"start/option.html#theme",a:"theme"},"29.7":{t:"`volume`\r",p:` -Type: Number -Default: 0.7 - -播放器的默认音量 -<div className="r ...`,l:"start/option.html#volume",a:"volume"},"29.8":{t:"`isLive`\r",p:` -Type: Boolean -Default: false - -使用直播模式,会隐藏进度条和播放时间 -<div clas ...`,l:"start/option.html#islive",a:"islive"},"29.9":{t:"`muted`\r",p:` -Type: Boolean -Default: false - -是否默认静音 -<div className=" ...`,l:"start/option.html#muted",a:"muted"},"29.10":{t:"`autoplay`\r",p:` -Type: Boolean -Default: false - -是否自动播放 -<div className=" ...`,l:"start/option.html#autoplay",a:"autoplay"},"29.11":{t:"`autoSize`\r",p:` -Type: Boolean -Default: false - -播放器的尺寸默认会填充整个 container 容器尺寸,所以 ...`,l:"start/option.html#autosize",a:"autosize"},"29.12":{t:"`autoMini`\r",p:` -Type: Boolean -Default: false - -当播放器滚动到浏览器视口以外时,自动进入 迷你播放 模式 -&l ...`,l:"start/option.html#automini",a:"automini"},"29.13":{t:"`loop`\r",p:` -Type: Boolean -Default: false - -是否循环播放 -<div className=" ...`,l:"start/option.html#loop",a:"loop"},"29.14":{t:"`flip`\r",p:` -Type: Boolean -Default: false - -是否显示视频翻转功能,目前只出现在 设置面板 和 右键菜单 里 ...`,l:"start/option.html#flip",a:"flip"},"29.15":{t:"`playbackRate`\r",p:` -Type: Boolean -Default: false - -是否显示视频播放速度功能,会出现在 设置面板 和 右键菜单 里 ...`,l:"start/option.html#playbackrate",a:"playbackrate"},"29.16":{t:"`aspectRatio`\r",p:` -Type: Boolean -Default: false - -是否显示视频长宽比功能,会出现在 设置面板 和 右键菜单 里 - ...`,l:"start/option.html#aspectratio",a:"aspectratio"},"29.17":{t:"`screenshot`\r",p:` -Type: Boolean -Default: false - -是否在底部控制栏里显示 视频截图 功能 -<div cla ...`,l:"start/option.html#screenshot",a:"screenshot"},"29.18":{t:"`setting`\r",p:` -Type: Boolean -Default: false - -是否在底部控制栏里显示 设置面板 的开关按钮 -<div ...`,l:"start/option.html#setting",a:"setting"},"29.19":{t:"`hotkey`\r",p:` -Type: Boolean -Default: true - -是否使用快捷键 -<div className=" ...`,l:"start/option.html#hotkey",a:"hotkey"},"29.20":{t:"`pip`\r",p:` -Type: Boolean -Default: false - -是否在底部控制栏里显示 画中画 的开关按钮 -<div c ...`,l:"start/option.html#pip",a:"pip"},"29.21":{t:"`mutex`\r",p:` -Type: Boolean -Default: true - -假如页面里同时存在多个播放器,是否只能让一个播放器播放 -< ...`,l:"start/option.html#mutex",a:"mutex"},"29.22":{t:"`backdrop`\r",p:` -Type: Boolean -Default: true - -是否开启播放器 UI 的背景虚化效果。开启后,设置面板、右键菜单 ...`,l:"start/option.html#backdrop",a:"backdrop"},"29.23":{t:"`fullscreen`\r",p:` -Type: Boolean -Default: false - -是否在底部控制栏里显示播放器 窗口全屏 按钮 -<div ...`,l:"start/option.html#fullscreen",a:"fullscreen"},"29.24":{t:"`fullscreenWeb`\r",p:` -Type: Boolean -Default: false - -是否在底部控制栏里显示播放器 网页全屏 按钮 -<div ...`,l:"start/option.html#fullscreenweb",a:"fullscreenweb"},"29.25":{t:"`subtitleOffset`\r",p:` -Type: Boolean -Default: false - -字幕时间偏移,范围在 [-5s, 5s],出现在 设置面板 里 ...`,l:"start/option.html#subtitleoffset",a:"subtitleoffset"},"29.26":{t:"`miniProgressBar`\r",p:` -Type: Boolean -Default: false - -迷你进度条,只在播放器失去焦点后且正在播放时出现 -<di ...`,l:"start/option.html#miniprogressbar",a:"miniprogressbar"},"29.27":{t:"`useSSR`\r",p:` -Type: Boolean -Default: false - -是否使用 SSR 挂载模式,假如你希望在播放器挂载前,就提前渲 ...`,l:"start/option.html#usessr",a:"usessr"},"29.28":{t:"`playsInline`\r",p:` -Type: Boolean -Default: true - -在移动端是否使用 playsInline 模式 -<div ...`,l:"start/option.html#playsinline",a:"playsinline"},"29.29":{t:"`layers`\r",p:` -Type: Array -Default: [] - -初始化自定义的 层 -<div className="ru ...`,l:"start/option.html#layers",a:"layers"},"29.30":{t:"`settings`\r",p:` -Type: Array -Default: [] - -初始化自定义的 设置面板 -<div className=" ...`,l:"start/option.html#settings",a:"settings"},"29.31":{t:"`contextmenu`\r",p:` -Type: Array -Default: [] - -初始化自定义的 右键菜单 -<div className=" ...`,l:"start/option.html#contextmenu",a:"contextmenu"},"29.32":{t:"`controls`\r",p:` -Type: Array -Default: [] - -初始化自定义的底部 控制栏 -<div className=&quo ...`,l:"start/option.html#controls",a:"controls"},"29.33":{t:"`quality`\r",p:` -Type: Array -Default: [] - -是否在底部控制栏里显示 画质选择 列表 - - - -属性 -类型 -描述 - - - - - ...`,l:"start/option.html#quality",a:"quality"},"29.34":{t:"`highlight`\r",p:` -Type: Array -Default: [] - -在进度条上显示 高亮信息 - - - -属性 -类型 -描述 - - - - -time -Nu ...`,l:"start/option.html#highlight",a:"highlight"},"29.35":{t:"`plugins`\r",p:` -Type: Array -Default: [] - -初始化自定义的 插件 -<div className="r ...`,l:"start/option.html#plugins",a:"plugins"},"29.36":{t:"`thumbnails`\r",p:` -Type: Object -Default: {} - -在进度条上设置 预览图 - - - -属性 -类型 -描述 - - - - -url -Str ...`,l:"start/option.html#thumbnails",a:"thumbnails"},"29.37":{t:"`subtitle`\r",p:` -Type: Object -Default: {} - -设置视频的字幕,支持字幕格式:vtt, srt, ass - - - -属性 - ...`,l:"start/option.html#subtitle",a:"subtitle"},"29.38":{t:"`moreVideoAttr`\r",p:` -Type: Object -Default: {'controls': false, 'preload': 'metadat ...`,l:"start/option.html#morevideoattr",a:"morevideoattr"},"29.39":{t:"`icons`\r",p:` -Type: Object -Default: {} - -用于替换默认图标,支持 Html 字符串和 HTMLElement -& ...`,l:"start/option.html#icons",a:"icons"},"29.40":{t:"`type`\r",p:` -Type: String -Default: '' - -用于指明视频的格式,需要配合 customType 一起使用,默认视频 ...`,l:"start/option.html#type",a:"type"},"29.41":{t:"`customType`\r",p:` -Type: Object -Default: {} - -通过视频的 type 进行匹配,把视频解码权交给第三方程序进行处理,处 ...`,l:"start/option.html#customtype",a:"customtype"},"29.42":{t:"`lang`\r",p:` -Type: String -Default: navigator.language.toLowerCase() - -默认显示语 ...`,l:"start/option.html#lang",a:"lang"},"29.43":{t:"`i18n`\r",p:` -Type: Object -Default: {} - -自定义 i18n 配置,该配置会和自带的 i18n 进行深度合并 -新增 ...`,l:"start/option.html#i18n",a:"i18n"},"29.44":{t:"`lock`\r",p:` -Type: Boolean -Default: false - -是否在移动端显示一个 锁定按钮 ,用于隐藏底部 控制栏 -< ...`,l:"start/option.html#lock",a:"lock"},"29.45":{t:"`gesture`\r",p:` -Type: Boolean -Default: true - -是否在移动端启用视频元素上的手势事件 -<div class ...`,l:"start/option.html#gesture",a:"gesture"},"29.46":{t:"`fastForward`\r",p:` -Type: Boolean -Default: false - -是否在移动端添加长按视频快进功能 -<div classN ...`,l:"start/option.html#fastforward",a:"fastforward"},"29.47":{t:"`autoPlayback`\r",p:` -Type: Boolean -Default: false - -是否使用自动 回放功能 -<div className=& ...`,l:"start/option.html#autoplayback",a:"autoplayback"},"29.48":{t:"`autoOrientation`\r",p:` -Type: Boolean -Default: false - -是否在移动端的网页全屏时,根据视频尺寸和视口尺寸,旋转播放器 - ...`,l:"start/option.html#autoorientation",a:"autoorientation"},"29.49":{t:"`airplay`\r",p:` -Type: Boolean -Default: false - -是否显示 airplay 按钮,当前只有部分浏览器支持该功能 - ...`,l:"start/option.html#airplay",a:"airplay"},"29.50":{t:"`cssVar`\r",p:` -Type: Object -Default: {} - -用于改变内置的css变量 -<div className=&quo ...`,l:"start/option.html#cssvar",a:"cssvar"},"29.51":{t:"`proxy`\r",p:` -Type: function -Default: undefined - -函数可以返回一个第三方的 HTMLCanvasEle ...`,l:"start/option.html#proxy",a:"proxy"}},n={previewLength:62,buttonLabel:"Search",placeholder:"Search docs",allow:[],ignore:[]},a={INDEX_DATA:e,PREVIEW_LOOKUP:t,Options:n};export{a as default}; diff --git a/docs/document/assets/chunks/virtual_search-data.DDH2dNJ_.js b/docs/document/assets/chunks/virtual_search-data.DDH2dNJ_.js new file mode 100644 index 000000000..6861d6857 --- /dev/null +++ b/docs/document/assets/chunks/virtual_search-data.DDH2dNJ_.js @@ -0,0 +1,1421 @@ +const e={map:'[{"高级属性":["0.0"],"option":["0.1","1.12","10.1","11.12","20.9","26.9","27.17"],"template":["0.2","10.2"],"events":["0.3","10.3","21.12"],"storage":["0.4","10.4"],"icons":["0.5","10.5","25.39","31.39"],"i18n":["0.6","10.6","25.43","31.43"],"notice":["0.7","3.4","10.7","13.4"],"layers":["0.8","10.8","18.0","25.29","31.29"],"controls":["0.9","10.9","17.0","25.32","31.32"],"contextmenu":["0.10","2.37","3.3","10.10","12.37","13.3","25.31","31.31"],"subtitle":["0.11","2.36","10.11","12.36","25.37","31.37"],"info":["0.12","2.32","3.22","10.12","12.32","13.22"],"loading":["0.13","2.34","10.13","12.34","21.9"],"hotkey":["0.14","2.5","10.14","12.5","25.19","31.19"],"mask":["0.15","2.35","10.15","12.35"],"setting":["0.16","2.39","3.5","3.6","3.7","10.16","12.39","13.5","13.6","13.7","25.18","31.18"],"plugins":["0.17","10.17","25.35","31.35"],"静态属性":["1.0"],"instances":["1.1","11.1"],"version":["1.2","11.2"],"env":["1.3","11.3"],"build":["1.4","11.4"],"config":["1.5","11.5","27.13"],"utils":["1.6","11.6"],"scheme":["1.7","11.7"],"emitter":["1.8","11.8"],"validator":["1.9","11.9"],"kindof":["1.10","11.10"],"html":["1.11","11.11"],"实例事件":["2.0"],"ready":["2.1","12.1"],"restart":["2.2","12.2"],"pause":["2.3","5.2","12.3","15.2"],"play":["2.4","5.1","12.4","15.1"],"destroy":["2.6","5.4","12.6","15.4"],"focus":["2.7","12.7"],"blur":["2.8","12.8"],"dblclick":["2.9","12.9"],"click":["2.10","12.10"],"error":["2.11","12.11"],"hover":["2.12","12.12"],"mousemove":["2.13","12.13"],"resize":["2.14","3.8","12.14","13.8"],"view":["2.15","12.15"],"lock":["2.16","12.16","25.44","31.44"],"aspectratio":["2.17","5.32","12.17","15.32","25.16","31.16"],"autoheight":["2.18","5.33","12.18","15.33"],"autosize":["2.19","5.27","12.19","15.27","25.11","31.11"],"flip":["2.20","3.30","5.30","12.20","13.30","15.30","25.14","31.14"],"fullscreen":["2.21","3.31","5.20","12.21","13.31","15.20","25.23","31.23"],"fullscreenerror":["2.22","12.22"],"fullscreenweb":["2.23","5.21","12.23","15.21","25.24","31.24"],"mini":["2.24","5.24","12.24","15.24"],"pip":["2.25","5.22","12.25","15.22","25.20","31.20"],"screenshot":["2.26","5.17","12.26","15.17","25.17","31.17"],"seek":["2.27","3.27","5.6","12.27","13.27","15.6"],"subtitleoffset":["2.28","5.47","12.28","15.47","25.25","31.25"],"subtitlebeforeupdate":["2.29","12.29"],"subtitleafterupdate":["2.30","12.30"],"subtitleload":["2.31","12.31"],"layer":["2.33","12.33"],"control":["2.38","3.16","12.38","13.16"],"muted":["2.40","5.14","12.40","15.14","25.9","31.9"],"keydown":["2.41","12.41"],"video":["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","2.61","2.62","5.43","12.42","12.43","12.44","12.45","12.46","12.47","12.48","12.49","12.50","12.51","12.52","12.53","12.54","12.55","12.56","12.57","12.58","12.59","12.60","12.61","12.62","15.43"],"全局属性":["3.0"],"debug":["3.1","13.1"],"style":["3.2","13.2"],"scroll":["3.9","3.10","13.9","13.10"],"auto":["3.11","3.12","3.13","3.21","13.11","13.12","13.13","13.21"],"reconnect":["3.14","3.15","13.14","13.15"],"dbclick":["3.17","3.18","13.17","13.18"],"mobile":["3.19","3.20","13.19","13.20"],"fast":["3.23","3.24","13.23","13.24"],"touch":["3.25","13.25"],"volume":["3.26","5.9","13.26","15.9","25.7","31.7"],"playback":["3.28","13.28"],"aspect":["3.29","13.29"],"log":["3.32","13.32"],"use":["3.33","13.33"],"remove":["3.34","13.34","19.8"],"编写插件":["4.0"],"实例属性":["5.0"],"toggle":["5.3","15.3"],"reset":["5.5","15.5","27.15"],"forward":["5.7","15.7"],"backward":["5.8","15.8"],"url":["5.10","15.10","25.2","31.2"],"switch":["5.11","15.11"],"switchurl":["5.12","15.12"],"switchquality":["5.13","15.13"],"currenttime":["5.15","15.15"],"duration":["5.16","15.16"],"getdataurl":["5.18","15.18"],"getbloburl":["5.19","15.19"],"poster":["5.23","15.23","25.5","31.5"],"playing":["5.25","15.25"],"state":["5.26","15.26"],"rect":["5.28","15.28"],"bottom":["5.29","15.29"],"playbackrate":["5.31","15.31","25.15","31.15"],"attr":["5.34","15.34"],"type":["5.35","15.35","25.40","31.40"],"theme":["5.36","15.36","25.6","31.6"],"airplay":["5.37","15.37","25.49","31.49"],"loaded":["5.38","15.38"],"loadedtime":["5.39","15.39"],"played":["5.40","15.40"],"proxy":["5.41","15.41","25.51","31.51"],"query":["5.42","15.42"],"cssvar":["5.44","15.44","25.50","31.50"],"quality":["5.45","15.45","22.4","25.33","31.33"],"thumbnails":["5.46","15.46","25.36","31.36"],"右键菜单":["6.0"],"配置":["6.1","7.1","8.1","28.3","29.3"],"创建":["6.2","7.2","8.2","9.2","9.3","9.4","9.5","9.6"],"添加":["6.3","7.3","8.3","9.7"],"删除":["6.4","7.4","8.4","9.8"],"更新":["6.5","7.5","8.5","9.9"],"控制器":["7.0"],"业务层":["8.0"],"设置面板":["9.0"],"内置":["9.1"],"advanced":["10.0"],"static":["11.0"],"instance":["12.0","15.0"],"global":["13.0"],"writing":["14.0"],"context":["16.0"],"configuration":["16.1","17.1","18.1","22.3","23.3"],"creation":["16.2","17.2","18.2"],"addition":["16.3","18.3"],"deletion":["16.4"],"update":["16.5","18.5","19.9"],"adding":["17.3","24.3"],"removal":["17.4","18.4"],"updating":["17.5"],"settings":["19.0","25.30","31.30"],"built":["19.1"],"create":["19.2","19.3","19.4","19.5","19.6"],"add":["19.7"],"installation":["20.0","20.1","21.2","22.1","23.1"],"cdn":["20.2","21.3","26.2","27.3"],"usage":["20.3"],"vue":["20.4","20.7","26.4","26.7"],"react":["20.5","20.8","26.5","26.8"],"typescript":["20.6","21.13","22.7","23.6","26.6","27.21","28.7","29.6"],"javascript":["20.10","26.10"],"legacy":["20.11"],"ecmascript":["20.12","26.12"],"custom":["20.13"],"danmuku":["21.0"],"demo":["21.1"],"comment":["21.4"],"all":["21.5"],"array":["21.6"],"lifecycle":["21.7"],"methods":["21.8"],"external":["21.10"],"heatmap":["21.11"],"dash":["22.0","28.0"],"complete":["22.2","23.2"],"refresh":["22.5","23.4"],"sdk":["22.6","23.5","28.6","29.5"],"validation":["22.8","23.7"],"hls":["23.0","29.0"],"language":["24.0"],"default":["24.1"],"importing":["24.2"],"modifying":["24.4"],"basic":["25.0"],"container":["25.1","31.1"],"id":["25.3","31.3"],"onready":["25.4","31.4"],"islive":["25.8","31.8"],"autoplay":["25.10","31.10"],"automini":["25.12","31.12"],"loop":["25.13","31.13"],"mutex":["25.21","31.21"],"backdrop":["25.22","31.22"],"miniprogressbar":["25.26","31.26"],"usessr":["25.27","31.27"],"playsinline":["25.28","31.28"],"highlight":["25.34","31.34"],"morevideoattr":["25.38","31.38"],"customtype":["25.41","31.41"],"lang":["25.42","31.42"],"gesture":["25.45","31.45"],"fastforward":["25.46","31.46"],"autoplayback":["25.47","31.47"],"autoorientation":["25.48","31.48"],"安装使用":["26.0"],"安装":["26.1","27.2","28.1","29.1"],"使用":["26.3"],"古老的浏览器":["26.11"],"自定义":["26.13"],"弹幕库":["27.0"],"演示":["27.1"],"弹幕结构":["27.4"],"全部选项":["27.5"],"生命周期":["27.6"],"使用弹幕数组":["27.7"],"使用弹幕":["27.8"],"使用异步返回":["27.9"],"hide":["27.10"],"ishide":["27.11"],"emit":["27.12"],"load":["27.14"],"mount":["27.16"],"事件":["27.18"],"isstop":["27.19"],"热力图":["27.20"],"完整示例":["28.2","29.2"],"画质和音轨选择":["28.4"],"外部修改后的刷新":["28.5","29.4"],"验证范围":["28.8","29.7"],"语言设置":["30.0"],"默认语言":["30.1"],"导入语言":["30.2"],"新增语言":["30.3"],"修改语言":["30.4"],"基础选项":["31.0"]},{"0":["3.28","5.38","5.40","21.13","25.7","27.21","31.7"],"1":["23.7","26.11","27.5","28.2","29.2"],"2":["22.8","28.2"],"3":["3.29","21.13","26.9","27.21"],"4":["3.29","22.8","28.8","30.3"],"5":["3.28","8.2","18.2","21.13","22.8","23.7","27.5","27.21","28.2","29.2"],"7":["8.3","18.3","25.7"],"9":["30.3"],"10":["27.5"],"15":["4.0"],"17":["23.7","29.2"],"21":["8.5","9.9","18.5","19.9"],"26":["7.5","17.5"],"27":["9.9","19.9"],"75":["3.28"],"250":["3.5"],"958":["27.20"],"这里的":["0.0","1.0","3.0","5.0"],"播放器的选项":["0.1"],"div":["0.1","0.2","0.4","0.5","0.7","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","2.40","3.3","4.0","5.1","5.2","5.3","5.16","5.28","5.33","5.37","5.45","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.2","8.3","8.4","8.5","9.4","9.7","9.8","9.9","10.1","10.2","14.0","16.2","16.3","16.4","16.5","17.2","17.3","17.4","17.5","18.2","18.3","18.4","18.5","19.4","19.7","19.8","19.9","22.2","23.2","25.2","25.29","25.30","27.7","27.10","27.11","27.15","28.2","29.2","31.2","31.29","31.30","31.31","31.32"],"classname":["0.1","0.2","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","2.40","4.0","5.45","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.2","8.3","8.4","8.5","9.4","9.7","9.8","9.9","10.2","14.0","16.2","16.3","16.4","16.5","17.2","17.3","17.4","17.5","18.2","18.3","18.4","18.5","19.4","19.7","19.8","19.9","22.2","23.2","25.2","25.29","25.30","27.7","27.11","27.15","28.2","29.2","31.2","31.29","31.30"],"run":["0.1","0.2","2.0","2.2","2.6","2.11","2.12","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","2.31","2.39","4.0","5.45","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.2","8.3","8.4","8.5","9.4","9.7","9.8","9.9","14.0","16.2","16.3","16.4","16.5","17.2","17.3","17.4","17.5","18.2","18.3","18.4","18.5","19.4","19.7","19.8","19.9","21.7","22.2","23.2","25.2","25.29","27.7","27.11","28.2","29.2","31.2","31.29","31.30"],"管理播放器所有的":["0.2","0.3","0.5"],"dom":["0.2","0.3","5.41","5.42","9.2","9.3","9.5","9.6","10.2","10.3","15.41","15.42","19.2","19.3","19.5","19.6","25.1","31.1"],"元素":["0.2","9.5","9.6"],"事件":["0.3","4.0"],"实质上是代理了":["0.3"],"addeventlistener":["0.3","5.41","10.3","15.41"],"和":["0.3","4.0","5.13","27.8","27.10","28.3","28.5","31.4"],"removeeventlistener":["0.3","10.3"],"当使用以下方法来处理事件":["0.3"],"播放器销毁时也会自动销毁该事件":["0.3"],"管理播放器的本地存储":["0.4"],"name":["0.4","4.0","10.4","17.1","21.12","23.6","27.18"],"属性用于设置缓存的":["0.4"],"key":["0.4","10.4"],"set":["0.4","10.4","15.9","15.11","15.12","15.44","15.45","21.11","25.36","25.37"],"方法用于设置缓存":["0.4"],"get":["0.4","0.6","10.6","15.34","15.44"],"方法用于获取缓存":["0.4"],"del":["0.4"],"方法用于删除缓存":["0.4"],"clear":["0.4"],"方法用于清空缓存":["0.4"],"svg":["0.5","10.5"],"图标":["0.5"],"管理播放器的":["0.6"],"方法用于获取":["0.6"],"的值":["0.6"],"update":["0.6","0.8","0.9","0.10","0.16"],"管理播放器的提示语":["0.7"],"只有一个":["0.7"],"show":["0.7","0.13","0.15","10.13","10.15","23.3","27.10"],"属性用于显示提示语":["0.7"],"管理播放器的层":["0.8"],"add":["0.8","0.9","0.10","0.14","0.16","0.17","10.8","10.9","10.10","10.14","10.16","22.0","22.1","23.0","23.1","28.1","29.1"],"方法用于动态添加层":["0.8"],"remove":["0.8","0.9","0.10","0.14","0.16","21.12"],"方法用于动态删除层":["0.8"],"管理播放器的控制器":["0.9"],"方法用于动态添加控制器":["0.9"],"方法用于动态删除控制器":["0.9"],"管理播放器的右键菜单":["0.10"],"方法用于动态添加菜单":["0.10"],"方法用于动态删除菜单":["0.10"],"方法用于动态更新菜单":["0.10"],"管理播放器的字幕功能":["0.11"],"url":["0.11","5.12","10.11","15.12","15.18","15.19","22.2","23.2"],"属性设置和返回当前字幕地址":["0.11"],"style":["0.11"],"方法设置当前字幕的样式":["0.11"],"switch":["0.11"],"管理播放器的信息面板":["0.12"],"常用于查看当前播放器和视频的运行状态":["0.12"],"例如版本号":["0.12"],"分辨率":["0.12"],"时长等":["0.12"],"管理播放器的加载层":["0.13"],"属性用于设置是否显示加载层":["0.13"],"toggle":["0.13","0.15","19.5"],"管理播放器的快捷键功能":["0.14"],"方法用于添加快捷键":["0.14"],"方法用于删除快捷键":["0.14"],"管理播放器的遮罩层":["0.15"],"属性用于设置是否显示遮罩层":["0.15"],"管理播放器的设置面板":["0.16"],"方法用于动态添加设置项":["0.16"],"方法用于动态删除设置项":["0.16"],"方法用于动态更新设置项":["0.16"],"管理播放器的插件功能":["0.17"],"只有一个方法":["0.17"],"用于动态添加插件":["0.17"],"返回全部播放器实例的数组":["1.1"],"假如你想同时管理多个播放器的时候":["1.1"],"可以用到该属性":["1.1"],"返回播放器的版本信息":["1.2"],"返回播放器的环境变量":["1.3"],"返回播放器的打包时间":["1.4"],"返回视频的默认配置":["1.5"],"返回播放器的工具函数集合":["1.6"],"返回播放器选项的校验方案":["1.7"],"返回事件分发器的构造函数":["1.8"],"返回选项的校验函数":["1.9"],"返回类型检测的函数工具":["1.10"],"返回播放器所需的":["1.11"],"返回播放器的默认选项":["1.12"],"播放器的事件分为两种":["2.0"],"一种视频的":["2.0"],"原生事件":["2.0"],"前缀":["2.0"],"video":["2.0","12.0","13.29","13.30","13.34","15.3","15.5","15.11","15.12","15.13","15.16","15.38","15.40","22.0","22.4","25.2","25.5","25.37","25.40","25.41"],"另外一种是":["2.0"],"自定义事件":["2.0"],"监听事件":["2.0"],"code":["2.0","2.2","2.28","4.0","6.2","6.3","6.4","6.5","7.2","7.3","7.4","7.5","8.2","8.3","8.4","8.5","9.4","9.7","9.8","9.9","14.0","16.2","16.3","16.4","16.5","17.2","17.3","17.4","17.5","18.2","18.3","18.4","18.5","19.4","19.7","19.8","19.9","20.1","20.2","20.3","20.4","20.5","21.2","21.3","22.2","23.2","25.2","25.29","26.1","26.2","26.3","26.4","26.5","27.2","27.3","27.7","27.11","28.2","29.2","31.2","31.29"],"js":["2.0","4.0","6.5","7.2","7.3","7.5","8.2","8.3","8.5","9.4","9.8","9.9","16.5","17.2","17.3","17.5","18.2","18.3","18.5","19.4","19.8","19.9","20.4","20.5","20.7","20.8","20.10","20.11","22.8","23.1","23.7","24.2","24.4","26.4","26.5","26.7","26.8","26.10","26.11","27.5","28.2","28.8","29.2","30.2","30.3","30.4"],"当播放器首次可以播放器时触发":["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","3.19","3.20","3.21","3.23","3.24","3.25"],"当锁定的状态发生变化时触发":["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"],"当静音的状态变化时触发":["2.40"],"监听来自":["2.41"],"document":["2.41"],"的":["2.41"],"canplay":["2.42","12.42"],"canplaythrough":["2.43","12.43"],"complete":["2.44","12.44"],"durationchange":["2.45","12.45"],"emptied":["2.46","12.46"],"ended":["2.47","12.47"],"error":["2.48","12.48"],"loadeddata":["2.49","12.49"],"loadedmetadata":["2.50","12.50"],"pause":["2.51","12.51"],"play":["2.52","3.19","3.20","12.52","13.19","13.20","15.3"],"playing":["2.53","12.53"],"progress":["2.54","12.54","25.36"],"ratechange":["2.55","12.55"],"seeked":["2.56","12.56"],"seeking":["2.57","12.57"],"stalled":["2.58","12.58"],"suspend":["2.59","12.59"],"timeupdate":["2.60","12.60"],"volumechange":["2.61","12.61"],"waiting":["2.62","12.62"],"是否开始":["3.1"],"模式":["3.1"],"返回播放器样式文本":["3.2"],"是否开启右键菜单":["3.3"],"默认开启":["3.3"],"time":["3.4","3.8","3.9","3.14","3.15","3.16","3.17","3.21","3.22","3.24","13.4","13.8","13.9","13.14","13.15","13.16","13.17","13.21","13.22","13.24","25.25"],"提示信息的显示时长":["3.4"],"单位为毫秒":["3.4","3.8","3.9","3.13","3.16","3.17","3.22"],"width":["3.5","3.6","5.29","9.3","13.5","13.6","15.29","15.33","22.7"],"设置面板的默认宽度":["3.5"],"单位为像素":["3.5","3.6","3.7","3.10"],"默认为":["3.5","3.6","3.7","3.11","3.17","3.26","3.28","3.29","3.30","3.32","3.33"],"item":["3.6","3.7","13.6","13.7","19.6"],"设置面板的设置项的默认宽度":["3.6"],"height":["3.7","5.29","13.7","15.29","22.7","23.6"],"设置面板的设置项的默认高度":["3.7"],"事件的节流时间":["3.8","3.9"],"gap":["3.10","13.10"],"view":["3.10","10.12"],"事件的边界容差距离":["3.10"],"playback":["3.11","3.12","3.13","12.53","13.11","13.12","13.13","25.47"],"max":["3.11","3.14","13.11","13.14"],"自动回放功能的最大记录数":["3.11"],"min":["3.12","13.12","28.2","29.2"],"自动回放功能的最小记录时长":["3.12"],"单位为秒":["3.12","3.27","5.39"],"timeout":["3.13","13.13"],"自动回放功能的隐藏延迟时长":["3.13"],"发生连接错误时":["3.14","3.15"],"自动连接的最大次数":["3.14"],"sleep":["3.15","13.15"],"自动连接的延迟时间":["3.15"],"hide":["3.16","13.13","13.16"],"底部控制栏的自动隐藏的延迟时间":["3.16"],"双击事件的延迟事件":["3.17"],"fullscreen":["3.18","12.22","13.18"],"在桌面端":["3.18"],"是否双击切换全屏":["3.18"],"dbclick":["3.19","13.19"],"是否双击切换播放暂停":["3.19"],"click":["3.20","13.20"],"是否单击切换播放暂停":["3.20"],"orientation":["3.21","13.21"],"自动旋屏的延迟时间":["3.21"],"loop":["3.22","13.22"],"信息面板的刷新时间":["3.22"],"forward":["3.23","3.24","13.23","13.24"],"value":["3.23","13.23","21.8"],"长按加速的速率倍数":["3.23"],"长按加速的延迟时间":["3.24"],"move":["3.25","13.25"],"ratio":["3.25","3.29","13.25","13.29"],"左右滑动进度的速率倍数":["3.25"],"step":["3.26","3.27","13.26","13.27"],"快捷键调节音量的幅度比例":["3.26"],"快捷键调节播放进度的幅度":["3.27"],"rate":["3.28","13.28"],"内置播放速率的列表":["3.28"],"内置视频长宽比的列表":["3.29"],"default":["3.29","13.5","13.6","13.7","22.3","22.7","23.3","23.6","25.1","25.2","25.3","25.4","25.5","25.6","25.7","25.8","25.9","25.10","25.11","25.12","25.13","25.14","25.15","25.16","25.17","25.18","25.19","25.20","25.21","25.22","25.23","25.24","25.25","25.26","25.27","25.28","25.29","25.30","25.31","25.32","25.33","25.34","25.35","25.36","25.37","25.38","25.39","25.40","25.41","25.42","25.43","25.44","25.45","25.46","25.47","25.48","25.49","25.50","25.51","31.1","31.2","31.3","31.4","31.5","31.6","31.7","31.8","31.9","31.10","31.11","31.12","31.13","31.14","31.15","31.16","31.17","31.18","31.19","31.20","31.21","31.22","31.23","31.24","31.25","31.26","31.27","31.28","31.29","31.30","31.31","31.32","31.33","31.34","31.35","31.36","31.37","31.38","31.39","31.40","31.41","31.42","31.43","31.44","31.45","31.46","31.47","31.48","31.49","31.50","31.51"],"内置视频翻转的列表":["3.30"],"normal":["3.30"],"horizontal":["3.30"],"vertical":["3.30"],"web":["3.31","13.31"],"in":["3.31","13.28","13.29","13.30","13.31","19.1","20.10","21.11","22.2","23.2"],"body":["3.31","13.31"],"网页全屏时":["3.31"],"version":["3.32","13.32"],"设置是否打印播放器版本":["3.32"],"raf":["3.33","13.33"],"设置是否使用":["3.33"],"requestanimationframe":["3.33"],"src":["3.34","5.5","13.34","24.2","30.2"],"when":["3.34","10.3","12.1","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.28","12.31","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","13.34","15.33","23.4"],"destroy":["3.34","13.34"],"在销毁播放器时":["3.34"],"是否同时移除视频的":["3.34"],"但你已经知道播放器的":["4.0"],"属性":["4.0","6.1","7.1","8.1","9.2","9.3","9.5","9.6","31.33","31.34","31.36","31.37"],"方法":["4.0"],"后":["4.0"],"再编写插件是非常简单的事":["4.0"],"可以在实例化的时候加载插件的函数":["4.0"],"function":["4.0","5.1","5.2","5.3","5.4","5.5","5.12","5.13","5.17","5.18","5.19","5.27","5.33","5.34","5.37","5.41","5.42","5.44","9.3","14.0","15.1","15.2","15.3","15.4","15.5","15.12","15.13","15.17","15.18","15.19","15.27","15.33","15.34","15.37","15.41","15.42","15.44","25.4","25.51","31.4","31.51"],"myplugin":["4.0"],"art":["4.0","5.12","7.2","15.12","17.2","21.8","21.12","27.18","27.19"],"console":["4.0"],"info":["4.0"],"return":["4.0","21.8"],"something":["4.0"],"type":["5.1","5.2","5.3","5.4","5.5","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.15","5.16","5.17","5.18","5.19","5.20","5.21","5.22","5.23","5.24","5.25","5.26","5.27","5.28","5.30","5.31","5.32","5.33","5.34","5.36","5.37","5.38","5.39","5.40","5.41","5.42","5.43","5.44","5.45","5.46","5.47","15.1","15.2","15.3","15.4","15.5","15.6","15.7","15.8","15.9","15.10","15.11","15.12","15.13","15.14","15.15","15.16","15.17","15.18","15.19","15.20","15.21","15.22","15.23","15.24","15.25","15.26","15.27","15.28","15.29","15.30","15.31","15.32","15.33","15.34","15.36","15.37","15.38","15.39","15.40","15.41","15.42","15.43","15.44","15.45","15.46","15.47","16.1","17.1","18.1","19.2","19.3","19.5","19.6","20.10","25.1","25.2","25.3","25.4","25.5","25.6","25.7","25.8","25.9","25.10","25.11","25.12","25.13","25.14","25.15","25.16","25.17","25.18","25.19","25.20","25.21","25.22","25.23","25.24","25.25","25.26","25.27","25.28","25.29","25.30","25.31","25.32","25.33","25.34","25.35","25.36","25.37","25.38","25.39","25.41","25.42","25.43","25.44","25.45","25.46","25.47","25.48","25.49","25.50","25.51","31.1","31.2","31.3","31.4","31.5","31.6","31.7","31.8","31.9","31.10","31.11","31.12","31.13","31.14","31.15","31.16","31.17","31.18","31.19","31.20","31.21","31.22","31.23","31.24","31.25","31.26","31.27","31.28","31.29","31.30","31.31","31.32","31.33","31.34","31.35","31.36","31.37","31.38","31.39","31.41","31.42","31.43","31.44","31.45","31.46","31.47","31.48","31.49","31.50","31.51"],"播放视频":["5.1"],"暂停视频":["5.2"],"切换视频的播放和暂停":["5.3"],"parameter":["5.4","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.15","5.20","5.21","5.22","5.23","5.24","5.25","5.26","5.30","5.31","5.32","5.34","5.35","5.36","5.45","5.46","5.47","15.4","15.6","15.7","15.8","15.9","15.10","15.11","15.12","15.13","15.14","15.15","15.20","15.21","15.22","15.23","15.24","15.25","15.26","15.30","15.31","15.32","15.34","15.35","15.36","15.45","15.46","15.47","25.4"],"boolean":["5.4","5.14","5.20","5.21","5.22","5.25","7.1","15.4","15.14","15.20","15.21","15.22","15.24","15.25","16.1","17.1","18.1","25.8","25.9","25.10","25.11","25.12","25.13","25.14","25.15","25.16","25.17","25.18","25.19","25.20","25.21","25.22","25.23","25.24","25.25","25.26","25.27","25.28","25.44","25.45","25.46","25.47","25.48","25.49","31.8","31.9","31.10","31.11","31.12","31.13","31.14","31.15","31.16","31.17","31.18","31.19","31.20","31.21","31.22","31.23","31.24","31.25","31.26","31.27","31.28","31.44","31.45","31.46","31.47","31.48","31.49"],"重置播放器的视频元素":["5.5"],"会移除当前":["5.5"],"并调用一次":["5.5"],"setter":["5.6","5.7","5.8","5.9","5.10","5.11","5.14","5.15","5.20","5.21","5.22","5.23","5.24","5.26","5.30","5.31","5.32","5.35","5.36","5.45","5.46","5.47","15.6","15.7","15.8","15.9","15.10","15.11","15.14","15.15","15.20","15.21","15.22","15.23","15.24","15.26","15.30","15.31","15.32","15.35","15.36","15.45","15.46","15.47"],"number":["5.6","5.7","5.8","5.9","5.15","5.31","13.14","15.6","15.7","15.8","15.9","15.15","15.31","15.47","24.0","25.7","31.7"],"getter":["5.9","5.10","5.14","5.15","5.16","5.20","5.21","5.22","5.23","5.24","5.25","5.26","5.28","5.30","5.31","5.32","5.35","5.36","5.38","5.39","5.40","5.46","5.47","15.9","15.10","15.14","15.15","15.16","15.20","15.21","15.22","15.23","15.24","15.25","15.26","15.28","15.29","15.30","15.31","15.32","15.35","15.36","15.38","15.39","15.40","15.46","15.47"],"string":["5.11","5.12","5.13","5.23","5.26","5.30","5.32","5.34","5.35","5.36","9.2","9.3","9.5","9.6","15.10","15.11","15.12","15.13","15.23","15.26","15.30","15.32","15.34","15.35","15.36","17.1","19.2","19.3","19.5","19.6","25.1","25.2","25.3","25.5","25.6","25.40","25.42","31.1","31.2","31.3","31.5","31.6","31.40","31.42"],"设置视频地址":["5.11","5.12"],"设置时和":["5.11","5.12"],"设置视频画质地址":["5.13"],"获取视频时长":["5.16"],"下载当前视频帧的截图":["5.17"],"可选参数为截图名字":["5.17"],"获取当前视频帧的截图的":["5.18","5.19"],"base64":["5.18","15.18"],"地址":["5.18","5.19"],"blob":["5.19","15.19"],"设置和获取视频海报":["5.23"],"获取或设置播放器当前状态":["5.26"],"设置视频是否自适应尺寸":["5.27"],"获取播放器的尺寸和坐标信息":["5.28"],"top":["5.29","15.29"],"left":["5.29","15.29"],"right":["5.29","15.29"],"x":["5.29","15.29"],"y":["5.29","15.29"],"当容器只有宽度":["5.33"],"该属性可以自动计算出并设置视频的高度":["5.33"],"动态获取和设置":["5.34"],"开启隔空播放":["5.37"],"视频缓存的比例":["5.38"],"范围是":["5.38","5.40"],"已缓存的媒体时长":["5.39"],"视频播放的比例":["5.40"],"事件的代理函数":["5.41"],"实质上代理了":["5.41"],"的查询函数":["5.42"],"element":["5.43","9.2","9.3","9.5","9.6","15.5","15.43","19.2","19.3","19.5","19.6","21.10","25.1","31.1"],"快捷返回播放器的":["5.43"],"动态获取或设置":["5.44"],"css":["5.44"],"变量":["5.44","26.10"],"array":["5.45","9.3","11.1","15.45","19.3","25.29","25.30","25.31","25.32","25.33","25.34","25.35","31.29","31.30","31.31","31.32","31.33","31.34","31.35"],"动态设置画质列表":["5.45"],"object":["5.46","15.46","21.5","25.36","25.37","25.38","25.39","25.41","25.43","25.50","31.36","31.37","31.38","31.39","31.41","31.43","31.50"],"类型":["6.1","7.1","8.1","9.2","9.3","9.5","9.6","31.34","31.36","31.37"],"描述":["6.1","7.1","8.1","9.2","9.3","9.5","9.6","31.36"],"disable":["6.1","7.1","8.1","16.1","17.1","18.1"],"var":["7.2","9.4","17.2"],"new":["7.2","17.2","21.9","24.3"],"artplayer":["7.2","17.2","20.4","20.5","20.11","20.12","22.1","23.1","24.2","25.1","26.5","26.11","26.12","28.1","29.1","29.2","30.2","30.4","31.1"],"container":["7.2","15.33","17.2","22.2","23.2"],"须先打开设置面板":["9.1"],"然后自带四个内置项":["9.1"],"flip":["9.1"],"playbackrate":["9.1"],"按钮":["9.2"],"html":["9.2","9.3","9.5","9.6","19.2","19.3","19.5","19.6","20.3","26.3","31.39"],"元素的":["9.2","9.3","9.5","9.6"],"选择列表":["9.3"],"icon":["9.3","9.5","9.6","19.3","19.6"],"元素的图标":["9.3"],"selector":["9.3","19.3"],"元素列表":["9.3"],"onselect":["9.3"],"元素点击事件":["9.3"],"列表嵌套":["9.4"],"切换按钮":["9.5"],"范围滑块":["9.6"],"properties":["10.0","11.0","13.0","14.0","15.0"],"the":["10.0","10.1","10.2","10.3","10.4","10.6","10.7","10.8","10.9","10.10","10.11","10.12","10.13","10.14","10.15","10.16","10.17","11.2","11.3","11.4","11.5","11.6","11.7","11.8","11.9","11.10","11.11","11.12","12.0","12.1","12.2","12.3","12.4","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.23","12.24","12.25","12.26","12.27","12.28","12.32","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","12.42","12.43","12.46","12.58","13.0","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.21","13.22","13.23","13.24","13.25","13.26","13.27","13.28","13.29","13.30","13.34","14.0","15.1","15.2","15.4","15.5","15.11","15.12","15.13","15.16","15.18","15.19","15.22","15.28","15.33","15.38","15.39","15.40","15.45","17.1","19.2","19.3","19.5","19.6","20.6","20.9","20.11","20.13","21.1","21.5","21.8","21.9","21.10","21.11","21.13","22.2","22.4","22.5","22.6","22.7","22.8","23.2","23.3","23.4","23.5","23.6","23.7","24.0","24.1","25.1","25.2","25.3","25.4","25.5","25.6","25.7","25.11","25.22","25.33","25.34","25.36","25.40","25.41","25.47","25.51"],"player":["10.1","10.2","10.3","10.4","10.6","10.7","10.8","10.9","10.10","10.11","10.12","10.13","10.14","10.15","10.16","10.17","11.1","12.0","12.1","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.14","12.15","12.17","12.18","12.19","12.20","12.21","12.23","12.24","12.25","12.26","12.27","14.0","15.5","15.28","22.5","22.6","23.2","23.4","23.5","25.7"],"s":["10.1","10.4","10.6","10.7","10.8","10.9","10.10","10.11","10.12","10.13","10.14","10.15","10.16","10.17","12.17","12.18","13.34","14.0","15.5","15.28","21.6","22.2","23.2","23.5"],"options":["10.1","21.5","25.0"],"manages":["10.2","10.3","10.4","10.5","10.6","10.7","10.8","10.9","10.10","10.11","10.12","10.13","10.14","10.15","10.16","10.17"],"all":["10.2","10.3","10.5","11.1","28.2"],"elements":["10.2"],"of":["10.2","11.1","11.6","12.0","13.5","13.6","13.7","13.28","13.29","13.30","15.16","15.38","15.40","20.13","21.11","24.0"],"for":["10.3","10.5","12.41","13.8","13.9","13.17","13.26","15.41","19.5","19.6","21.5","21.13","23.5"],"it":["10.3","10.7","21.5","21.9","25.40"],"essentially":["10.3","15.41"],"proxies":["10.3"],"and":["10.3","10.11","12.0","13.34","14.0","15.23","20.0","21.4","21.5","21.6","21.7","21.8","21.9","21.12","21.13","22.0","22.2","22.3","22.4","22.5","22.6","22.7","22.8","23.0","23.2","23.3","23.4","23.5","23.6"],"using":["10.3"],"local":["10.4"],"property":["10.4","10.11","16.1","17.1","18.1","19.2","19.3","19.5","19.6"],"is":["10.4","10.6","10.8","10.9","10.10","10.14","10.16","12.20","20.13","21.4","21.5","21.8"],"used":["10.4","10.6","10.8","10.9","10.10","10.12","10.16","25.39","25.40","25.50"],"to":["10.4","10.6","10.8","10.9","10.10","10.12","10.16","13.1","13.3","13.31","13.32","13.33","13.34","15.12","16.1","17.1","19.1","21.5","21.9","21.11","24.0","25.10","25.15","25.16","25.17","25.19","25.22","25.27","25.33","25.39","25.40","25.47","25.50"],"cache":["10.4"],"method":["10.4","10.6","10.8","10.9","10.10","10.14","10.16"],"notifications":["10.7"],"only":["10.7","15.33","20.11","21.4"],"dynamically":["10.8","10.9","10.10","10.16","15.34","15.35","15.36","15.44","15.45"],"context":["10.10","12.37","25.31"],"menu":["10.10","16.0"],"functionality":["10.11","10.14","10.17"],"sets":["10.11","13.32","13.33","15.13","15.14","15.15","15.20","15.21","15.22","15.23","15.26","15.27","15.30","15.31","15.32"],"information":["10.12","25.34"],"panel":["10.12","10.16","12.39","19.0","21.7","21.10"],"commonly":["10.12"],"layer":["10.13","10.15"],"settings":["10.16","12.39","24.0"],"plugin":["10.17","14.0","21.8","21.10","22.1","22.3","23.1","23.3","23.4","29.2"],"with":["10.17","12.0","14.0","21.9","21.12"],"here":["11.0","15.0"],"returns":["11.1","11.2","11.3","11.4","11.5","11.6","11.7","11.8","11.9","11.10","11.11","11.12","13.2","15.43","22.3","23.3"],"an":["11.1","12.11","12.48","21.5"],"collection":["11.6"],"events":["12.0","14.0","15.41","22.5"],"are":["12.0","12.29","12.30","12.31","14.0","22.5","24.2"],"divided":["12.0"],"into":["12.0","21.10"],"two":["12.0"],"types":["12.0","22.7","23.6"],"native":["12.0"],"prefixed":["12.0"],"custom":["12.0","12.33","25.29","25.30","25.31","25.32","25.35","25.43"],"listening":["12.0"],"triggered":["12.1","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.28","12.29","12.30","12.31","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40"],"switches":["12.2"],"urls":["12.2"],"a":["12.5","12.22","12.33","14.0","15.17","15.33","15.41","15.42","20.13","21.6","21.10","21.11","22.3","23.3","24.3","24.4","25.4","25.26"],"occurs":["12.11"],"mouse":["12.12","12.13"],"enters":["12.12","12.21","12.23","12.24","12.25"],"state":["12.16","21.8"],"windowed":["12.22"],"subtitle":["12.28","25.25"],"offset":["12.28"],"changes":["12.28","22.5","23.4"],"before":["12.29","21.10","24.2"],"subtitles":["12.29","12.30","12.31","25.37"],"updated":["12.29","12.30"],"after":["12.30","22.5","23.4"],"loaded":["12.31","21.7","27.18"],"loader":["12.34"],"listens":["12.41"],"browser":["12.42"],"media":["12.46","15.39","22.2"],"has":["12.46","15.33"],"whether":["13.1","13.3","13.18","13.31","13.32","13.33","13.34","15.27","16.1","17.1","18.1","20.13","25.10","25.14","25.15","25.16","25.17","25.18","25.19","25.20","25.22","25.23","25.24","25.27","25.33","25.44","25.45","25.46","25.47","25.48","25.49"],"enable":["13.1","13.3","25.8","25.22"],"mode":["13.1"],"display":["13.4","21.0","22.3","25.17","25.33","25.34"],"duration":["13.4"],"throttle":["13.8","13.9"],"boundary":["13.10"],"tolerance":["13.10"],"distance":["13.10"],"maximum":["13.11","13.14"],"record":["13.11","13.12"],"minimum":["13.12"],"delay":["13.13","13.15","13.17"],"auto":["13.16","22.4","28.4"],"on":["13.18","13.19","13.20","13.21","13.23","13.24","13.25","21.12","23.4","25.34","25.36","25.41","27.18"],"desktop":["13.18"],"mobile":["13.21","13.23","13.24","13.25","20.13"],"refresh":["13.22"],"interval":["13.22"],"size":["13.26","13.27"],"built":["13.28","13.29","13.30"],"list":["13.28","13.29","13.30","15.45","19.3","19.4"],"mount":["13.31","21.10","27.13"],"attribute":["13.34"],"call":["13.34"],"plugins":["14.0","21.8","27.19"],"once":["14.0"],"you":["14.0","19.1","20.9"],"familiar":["14.0"],"methods":["14.0"],"becomes":["14.0"],"very":["14.0"],"straightforward":["14.0"],"task":["14.0"],"can":["14.0","20.9","21.5","23.6"],"load":["14.0","21.9","27.13","27.18"],"during":["14.0"],"instantiation":["14.0"],"removes":["15.5"],"rewind":["15.8"],"similar":["15.12"],"or":["15.15","15.20","15.22","15.26","15.44","22.6","23.5"],"gets":["15.15","15.16","15.18","15.19","15.20","15.22","15.23","15.25","15.26","15.28"],"downloads":["15.17"],"defined":["15.33"],"this":["15.33","21.7","25.4","25.43","27.6","27.9"],"initiate":["15.37"],"proportion":["15.38","15.40"],"buffered":["15.39"],"proxying":["15.41"],"quickly":["15.43"],"description":["16.1","17.1","18.1","19.2","19.3","19.5","19.6"],"control":["17.1","22.0","22.3","23.0","23.3","25.32","29.3"],"first":["19.1"],"need":["19.1"],"open":["19.1","21.1"],"button":["19.2","19.5"],"selection":["19.3","22.4","25.33"],"nested":["19.4"],"range":["19.6"],"slider":["19.6"],"group":["20.1","20.2","20.3","20.4","20.5","21.2","21.3","26.1","26.2","26.3","26.4","26.5","27.2","27.3"],"bash":["20.1","20.2","26.1","26.2","27.2","27.3"],"index":["20.3","22.7","26.3","28.7"],"jsx":["20.5","20.8","26.5","26.8"],"import":["20.5","24.4","26.5","26.9","30.4"],"from":["20.5","26.5","30.4"],"useeffect":["20.5","26.5"],"useref":["20.5"],"also":["20.9"],"use":["20.9","22.6","22.7","23.5","25.19","25.27","25.47"],"sometimes":["20.10"],"your":["20.10","22.2","23.2"],"files":["20.10","24.2"],"may":["20.10"],"lose":["20.10"],"typescript":["20.10","21.5","26.10","27.5"],"hints":["20.10"],"browsers":["20.11"],"production":["20.11"],"build":["20.11"],"supports":["20.11"],"latest":["20.11"],"major":["20.11"],"module":["20.12","26.12"],"tip":["20.12","26.12"],"esm":["20.12","26.12"],"demo":["20.12","26.12"],"https":["20.12","22.2","23.2","26.12","28.2","29.2"],"org":["20.12","26.12"],"useragent":["20.13","26.13"],"currently":["20.13"],"detection":["20.13"],"device":["20.13"],"中文说明":["21.0","22.0","23.0"],"timed":["21.0"],"comments":["21.0","21.7"],"over":["21.0"],"full":["21.1"],"sh":["21.2","22.1","23.1","28.1","29.1"],"npm":["21.2","21.13","27.21"],"install":["21.2"],"text":["21.3","21.4","27.4"],"structure":["21.4"],"required":["21.4"],"leading":["21.4"],"trailing":["21.4"],"whitespace":["21.4"],"pass":["21.5"],"option":["21.5","22.3","23.3","28.3","29.3"],"factory":["21.5","22.3","23.3"],"at":["21.5","21.11","24.2"],"runtime":["21.5","27.21"],"valid":["21.5"],"fields":["21.5","23.3","23.6"],"have":["21.5"],"defaults":["21.5"],"historical":["21.5","21.13"],"root":["21.5","21.13"],"declarations":["21.5"],"still":["21.5"],"require":["21.5"],"danmuku":["21.5","21.9","27.5","27.13"],"existing":["21.5","21.9","22.6","23.5"],"projects":["21.5"],"keep":["21.5","21.13"],"providing":["21.5"],"see":["21.5"],"xml":["21.6","27.8"],"asynchronous":["21.6"],"input":["21.6","21.7","21.9","27.14"],"uses":["21.6","23.2"],"bilibili":["21.6"],"comment":["21.6","21.8"],"format":["21.6","25.40"],"fetching":["21.6"],"callbacks":["21.7"],"submissions":["21.7"],"beforeemit":["21.7","27.6"],"filter":["21.7","27.6"],"beforevisible":["21.7","27.6"],"artplayerplugindanmuku":["21.7","21.8","21.12","27.19"],"visible":["21.7"],"direct":["21.7"],"emit":["21.7","21.8","27.6"],"calls":["21.7"],"registered":["21.8"],"available":["21.8"],"synchronously":["21.8","22.3"],"as":["21.8","23.2","25.4"],"member":["21.8"],"behavior":["21.8"],"processes":["21.8"],"one":["21.8"],"configuration":["21.9","25.43"],"changing":["21.9"],"config":["21.9","27.17"],"does":["21.9","21.11"],"not":["21.9","21.11"],"follow":["21.9"],"replace":["21.9","22.2","23.2","25.39"],"queue":["21.9","21.11"],"read":["21.9"],"failures":["21.9"],"leave":["21.9"],"intact":["21.9"],"create":["21.10"],"separate":["21.10"],"constructing":["21.10"],"moves":["21.10"],"controls":["21.10","25.38","31.38"],"true":["21.11","25.19","25.21","25.22","25.28","25.45","27.6","27.20","31.19","31.22"],"construction":["21.11"],"sample":["21.11"],"automatically":["21.11","25.12"],"live":["21.11"],"stream":["21.11","22.5","23.2"],"draw":["21.11"],"dense":["21.11"],"automatic":["21.11","25.47"],"curves":["21.11"],"now":["21.11"],"fit":["21.11"],"bottom":["21.11","22.3","23.3","25.32"],"quarter":["21.11"],"chart":["21.11"],"instead":["21.11"],"subscribe":["21.12"],"callback":["21.12","22.7","23.6","27.18"],"subscriptions":["21.12"],"off":["21.12","27.18"],"event":["21.12","22.5"],"payload":["21.12"],"meaning":["21.12","22.3","23.3"],"legacy":["21.13","27.21"],"entrypoints":["21.13"],"declaration":["21.13"],"shapes":["21.13"],"compatibility":["21.13"],"including":["21.13"],"quality":["22.0","22.3","22.5","22.7","23.0","23.3","28.3","29.3"],"audio":["22.0","22.3","22.4","22.7","23.0","23.3","23.6","28.3","29.3"],"track":["22.0","22.5","23.0"],"yarn":["22.1","23.1","28.1","29.1"],"dashjs":["22.1","28.1","28.2"],"example":["22.2","23.2"],"matches":["22.2","25.41"],"online":["22.2","23.2"],"dash":["22.2","22.8","28.2","28.8"],"site":["22.2","23.2"],"application":["22.2","23.2"],"data":["22.2","23.2","27.11","28.2","29.2"],"libs":["22.2","23.2","28.2","29.2"],"cdnjs":["22.2","23.2","28.2","29.2"],"cloudflare":["22.2","28.2","29.2"],"com":["22.2","28.2","29.2"],"ajax":["22.2","28.2","29.2"],"artplayerplugindashcontrol":["22.3","28.3"],"both":["22.3","23.3"],"accept":["22.3","23.3"],"field":["22.3","23.3"],"omitted":["22.3","23.3"],"manual":["22.4"],"disables":["22.4"],"switching":["22.4","22.6","23.5"],"then":["22.4"],"selects":["22.4"],"sdk":["22.4","22.5","28.4","28.5","29.4","29.6"],"enables":["22.4"],"external":["22.5","23.4"],"ready":["22.5","23.4","28.5","29.4","31.4"],"restart":["22.5","23.4","28.5","29.4"],"menus":["22.5","23.0"],"refreshes":["22.5"],"coalesced":["22.5"],"ownership":["22.6","23.5"],"source":["22.6","23.2","23.5","25.2"],"switchurl":["22.6","23.5","28.6","29.5"],"switchquality":["22.6","23.5"],"handle":["22.6"],"include":["22.7","23.6"],"id":["22.7","23.6","28.7","29.6"],"bitrate":["22.7"],"nullable":["22.7"],"lang":["22.7","28.7"],"generic":["22.7"],"scope":["22.8","23.7"],"refactor":["22.8","23.7"],"tests":["22.8","23.7"],"fixed":["22.8"],"hls":["23.1","23.2","23.7","29.1","29.2"],"same":["23.2"],"artplayerpluginhlscontrol":["23.3","29.3"],"synchronous":["23.3"],"these":["23.3"],"means":["23.3"],"hidden":["23.3"],"setting":["23.3"],"updates":["23.4"],"level":["23.6"],"language":["23.6","24.2","24.3","24.4","25.42","31.42"],"applications":["23.6"],"danger":["24.0","30.0"],"due":["24.0"],"increasing":["24.0"],"languages":["24.1","24.2"],"bundling":["24.2"],"located":["24.2"],"i18n":["24.2","30.2"],"zhtw":["24.4","30.4"],"where":["25.1"],"unique":["25.3"],"undefined":["25.4","25.51","31.4","31.51"],"constructor":["25.4"],"accepts":["25.4"],"second":["25.4"],"f00":["25.6","31.6"],"false":["25.8","25.9","25.10","25.11","25.12","25.13","25.14","25.15","25.16","25.17","25.18","25.20","25.23","25.24","25.25","25.26","25.27","25.38","25.44","25.46","25.47","25.48","25.49","31.10","31.11","31.12","31.14","31.15","31.16","31.17","31.25","31.27","31.38","31.44","31.47","31.49"],"by":["25.11"],"hotkeys":["25.19"],"if":["25.21"],"blur":["25.22"],"ssr":["25.27","31.27"],"server":["25.27"],"initialize":["25.29","25.30","25.31","25.32","25.35"],"panels":["25.30"],"preview":["25.36"],"bar":["25.36"],"supported":["25.37"],"formats":["25.37"],"vtt":["25.37","31.37"],"srt":["25.37","31.37"],"ass":["25.37","31.37"],"preload":["25.38"],"metadata":["25.38"],"specify":["25.40"],"needs":["25.40"],"be":["25.40","25.43"],"based":["25.41"],"navigator":["25.42","31.42"],"will":["25.43"],"deeply":["25.43"],"merged":["25.43"],"导入":["26.6"],"你也可以使用选项的类型":["26.9"],"ts":["26.9"],"有时你的":["26.10"],"文件会丢失":["26.10"],"的类型提示":["26.10"],"这时候你可以手动导入类型":["26.10"],"生产构建的":["26.11"],"只兼容最新一个主版本的":["26.11"],"chrome":["26.11"],"last":["26.11"],"目前对于是否移动设备的判断并不准确":["26.13"],"有时候希望通过改变":["26.13"],"来调整播放器的ui":["26.13"],"english":["27.0","28.0","29.0"],"查看完整演示":["27.1"],"jsdelivr":["27.3"],"每一个弹幕是一个对象":["27.4"],"多个弹幕组成的数组就是弹幕库":["27.4"],"通常只需要":["27.4"],"就可以发送一个弹幕":["27.4"],"工厂需要一个配置对象":["27.5"],"运行时可传":["27.5"],"每个字段都有默认值":["27.5"],"旧版根入口类型仍要求":["27.5"],"旧项目继续传入它即可":["27.5"],"准确类型见下方":["27.5"],"说明":["27.5"],"弹幕数据":["27.5"],"speed":["27.5"],"弹幕持续时间":["27.5"],"范围在":["27.5"],"同步执行":["27.6"],"不应返回":["27.6"],"promise":["27.6","27.9","27.12","27.14"],"可异步":["27.6"],"但只有严格返回":["27.6"],"才发送":["27.6"],"可以异步":["27.6"],"普通函数形式的这三个回调":["27.6"],"其":["27.6"],"都是当前配置对象":["27.6"],"直接调用":["27.6"],"弹幕":["27.8"],"文件":["27.8"],"也可以直接传入":["27.9"],"弹幕数组":["27.9"],"或传入同步返回数组的函数":["27.9"],"输入函数没有配置对象作为":["27.9"],"通过方法":["27.10","27.12","27.13"],"进行隐藏或者显示弹幕":["27.10"],"通过属性":["27.11"],"判断当前弹幕是隐藏或者显示":["27.11"],"向队列添加一条弹幕":["27.12"],"它返回":["27.12"],"完成表示入队处理完成":["27.12"],"不代表已经显示":["27.12"],"请用":["27.12"],"await":["27.12"],"或":["27.12","29.5"],"catch":["27.12"],"同步合并弹幕配置":["27.13"],"更改":["27.13"],"不会自动重新加载":["27.13"],"之后调用无参数的":["27.13"],"才会替换队列":["27.13"],"无效配置不会覆盖现有配置":["27.13"],"需要移动发射器时调用":["27.13"],"通过":["27.14"],"重载":["27.14"],"切换或追加弹幕库":["27.14"],"返回":["27.14"],"无参数":["27.14"],"在读取配置中的输入成功后替换队列":["27.14"],"传入":["27.14"],"则追加":["27.14"],"输入读取失败不会清空现有队列":["27.14"],"但逐条过滤时发生异常不保证整批回滚":["27.14"],"用于清空当前显示的弹幕并将队列项重置为等待状态":["27.15"],"它不删除队列":["27.15"],"后续播放仍可按时间显示弹幕":["27.15"],"在初始化弹幕插件的时候":["27.16"],"是可以指定弹幕发射器的挂载位置的":["27.16"],"默认是挂载在控制栏的中部":["27.16"],"你也可以把它挂载在播放器以外的地方":["27.16"],"当播放器全屏的时候":["27.16"],"发射器会自动回到控制栏的中部":["27.16"],"假如你挂载的地方是亮色的话":["27.16"],"建议把":["27.16"],"theme":["27.16"],"设置成":["27.16"],"用于获取当前弹幕配置":["27.17"],"返回实时配置对象":["27.17"],"更新配置请调用":["27.17"],"避免直接修改对象而绕过校验和":["27.17"],"ui":["27.17"],"使用":["27.18"],"订阅":["27.18"],"取消订阅":["27.18"],"事件不会向迟到的监听器重放":["27.18"],"初始空数组可能在构造期间就完成加载":["27.18"],"若需要观察后续加载":["27.18"],"先订阅再调用":["27.18"],"与方法返回值":["27.19"],"初始化时设置":["27.20"],"heatmap":["27.20"],"按队列自动采样":["27.20"],"直播不绘制热力图":["27.20"],"本轮修复了密集弹幕曲线过高遮挡视频的问题":["27.20"],"issue":["27.20"],"自动曲线会适配到图表底部四分之一区域":["27.20"],"显式设置有限的":["27.20"],"ymin":["27.20"],"ymax":["27.20"],"或发送自定义":["27.20"],"points":["27.20"],"时保留原坐标映射":["27.20"],"也可传配置对象":["27.20"],"xmin":["27.20"],"xmax":["27.20"],"根入口和":["27.21"],"保留":["27.21"],"的历史声明形状":["27.21"],"其中部分方法返回值与真实运行时不一致":["27.21"],"当前分支新增":["27.21"],"控制":["28.0","29.0"],"为":["28.0"],"下面与在线":["28.2","29.2"],"示例使用相同代码":["28.2"],"接入应用时替换站点容器和视频地址":["28.2"],"modern":["28.2"],"umd":["28.2"],"同步返回插件工厂":["28.3","29.3"],"都支持":["28.3"],"手动选画质先关闭视频的自动码率选择":["28.4"],"再调用":["28.4"],"选择档位":["28.4"],"只启用视频自动选择":["28.4"],"不覆盖其他":["28.4"],"abr":["28.4"],"播放器":["28.5","29.4"],"的画质":["28.5"],"音轨":["28.5"],"流事件会刷新菜单":["28.5"],"所有权与换源":["28.6","29.5"],"换源使用播放器已有的":["28.6"],"默认回调类型包含画质高度":["28.7","29.6"],"宽度":["28.7"],"码率":["28.7"],"以及允许为空的音轨":["28.7"],"可以通过泛型声明更具体的元数据":["28.7"],"下面只声明实际使用的字段":["28.7"],"无需导入":["28.7","29.6"],"重构使用固定":["28.8"],"示例使用同一份代码和站点容器":["29.2"],"接入自己的应用时替换容器与视频地址":["29.2"],"uncompiled":["29.2"],"与":["29.3"],"都可以使用以下字段":["29.3"],"字段":["29.3"],"含义与默认行为":["29.3"],"显示底部控制器":["29.3"],"会刷新菜单":["29.4"],"换源继续使用播放器已有的":["29.5"],"名称和音轨":["29.6"],"名称":["29.6"],"语言字段":["29.6"],"可以通过泛型使用应用所需的":["29.6"],"元数据类型":["29.6"],"下面的示例只声明实际使用的字段":["29.6"],"重构使用本地媒体和真实":["29.7"],"worker":["29.7"],"验证":["29.7"],"鉴于捆绑的多国语言越来越多":["30.0"],"从":["30.0"],"默认语言有":["30.1"],"en":["30.1"],"zh":["30.1"],"打包前的语言文件存放于":["30.2"],"欢迎来添加你的语言":["30.2"],"打包后的语言文件存放于":["30.2"],"dist":["30.2"],"播放器挂载的":["31.1"],"视频源地址":["31.2"],"播放器的唯一标识":["31.3"],"构造函数接受一个函数作为第二个参数":["31.4"],"播放器初始化成功且视频可以播放时触发":["31.4"],"视频的海报":["31.5"],"是否自动播放":["31.10"],"是否使用快捷键":["31.19"],"是否开启播放器":["31.22"],"字幕时间偏移":["31.25"],"是否使用":["31.27"],"初始化自定义的":["31.29","31.30","31.31","31.35"],"层":["31.29"],"设置面板":["31.30"],"右键菜单":["31.31"],"初始化自定义的底部":["31.32"],"控制栏":["31.32"],"是否在底部控制栏里显示":["31.33"],"画质选择":["31.33"],"列表":["31.33"],"在进度条上显示":["31.34"],"高亮信息":["31.34"],"插件":["31.35"],"在进度条上设置":["31.36"],"预览图":["31.36"],"设置视频的字幕":["31.37"],"支持字幕格式":["31.37"],"用于替换默认图标":["31.39"],"支持":["31.39"],"用于指明视频的格式":["31.40"],"需要配合":["31.40"],"customtype":["31.40"],"通过视频的":["31.41"],"自定义":["31.43"],"配置":["31.43"],"该配置会和自带的":["31.43"],"进行深度合并":["31.43"],"新增你的语言":["31.43"],"是否使用自动":["31.47"],"回放功能":["31.47"],"用于改变内置的css变量":["31.50"]},{"0":["3.25","3.26","5.9","13.28","15.38","15.40","24.0","27.5","27.12","27.20","30.0"],"1":["3.26","3.28","5.9","5.38","5.40","13.28","15.38","15.40","20.11","21.5","22.2","22.8","23.2","24.0","26.10","29.7","30.0"],"2":["3.28","20.8","20.12","22.2","23.7","26.8","26.12","26.13","27.20","28.8"],"3":["3.23","13.29","20.9","25.2","26.10","31.2"],"4":["6.2","13.29","16.2","24.3","25.47","26.13","31.43"],"5":["3.12","3.14","3.25","3.27","13.28","20.12","21.5","22.2","23.2","24.0","25.29","25.30","26.12","26.13","27.12","28.8","29.7","30.0","31.29","31.30"],"6":["2.0","6.3","7.3","12.0","16.3","17.3","20.12","26.12"],"7":["23.7","31.7"],"9":["3.29","9.7","19.7","24.3","31.43"],"10":["2.2","3.11","7.2","17.2","21.5","27.4"],"11":["2.28"],"13":["6.2","6.3","16.2","16.3"],"14":["9.7","19.7"],"15":["14.0"],"16":["3.29","13.29"],"17":["23.2"],"19":["5.45","15.45"],"21":["6.4","6.5","7.3","7.4","8.4","16.4","16.5","17.3","17.4","18.4"],"22":["8.2","8.3","9.8","18.2","18.3","19.8"],"23":["25.29","31.29"],"24":["6.5","16.5"],"25":["3.28","21.5","27.5","27.20"],"29":["5.45","8.5","18.5"],"34":["25.30","31.30"],"35":["3.7"],"40":["7.5","17.5"],"50":["3.10"],"75":["13.28"],"128":["27.20"],"200":["3.6","3.8","3.9","3.21"],"300":["3.17"],"958":["21.11"],"1000":["3.15","3.22","3.24"],"2000":["3.4"],"3000":["3.13","3.16"],"code":["0.1","0.2","0.4","0.5","0.6","0.7","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.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","3.3","3.5","3.6","3.7","3.17","3.29","3.30","5.1","5.2","5.3","5.12","5.14","5.16","5.17","5.20","5.21","5.22","5.23","5.25","5.27","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.44","5.45","5.46","9.3","10.1","10.2","10.5","12.0","12.20","12.29","12.30","12.31","15.2","15.12","15.16","15.37","15.44","15.45","19.3","21.1","25.1","25.7","25.10","25.19","25.30","25.31","25.32","25.35","25.43","25.47","27.9","27.10","27.12","27.13","27.14","27.15","27.17","27.18","30.2","31.1","31.4","31.10","31.19","31.30","31.31","31.32","31.35","31.39","31.43","31.47","31.50"],"js":["0.2","0.4","0.14","0.17","2.2","2.18","2.22","2.24","2.28","2.29","2.30","2.31","5.45","6.2","6.3","6.4","7.4","8.4","9.3","9.6","9.7","10.2","12.0","14.0","15.16","15.45","16.2","16.3","16.4","17.4","18.4","19.7","21.4","21.5","22.0","22.1","22.2","23.0","23.2","24.3","25.2","25.10","25.19","25.29","25.30","25.47","27.4","27.11","28.0","28.1","29.0","29.1","29.6","29.7","30.1","31.2","31.4","31.29","31.30","31.32","31.43"],"var":["0.2","0.4","2.0","4.0","5.45","6.2","6.3","6.4","6.5","7.3","7.4","7.5","8.2","8.3","8.4","8.5","9.3","9.7","9.8","9.9","10.2","12.0","14.0","16.2","16.3","16.4","16.5","17.3","17.4","17.5","18.2","18.3","18.4","18.5","19.4","19.7","19.8","19.9","24.3","25.2","25.29","25.30","30.3","30.4","31.2","31.29","31.30"],"proxy":["0.3"],"方法用于代理":["0.3"],"hover":["0.3"],"方法用于代理自定义的":["0.3"],"div":["0.3","0.6","0.8","0.9","0.10","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","2.41","3.1","3.2","3.4","3.5","3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.15","3.16","3.17","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.28","3.29","3.30","3.32","3.33","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.15","5.17","5.18","5.19","5.20","5.21","5.22","5.23","5.24","5.25","5.27","5.30","5.31","5.32","5.34","5.35","5.36","5.39","5.41","5.43","5.44","5.46","5.47","9.1","9.3","10.5","12.0","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.20","12.22","12.24","12.26","12.27","12.28","12.29","12.30","12.31","12.34","12.39","12.40","12.41","15.1","15.2","15.3","15.12","15.16","15.20","15.22","15.28","15.33","15.37","15.44","15.45","15.46","15.47","19.3","20.4","25.1","25.7","25.10","25.19","25.31","25.32","25.35","25.39","25.43","25.47","26.4","27.6","27.8","27.9","27.12","27.13","27.14","27.17","27.18","31.1","31.3","31.4","31.5","31.7","31.8","31.9","31.10","31.13","31.17","31.19","31.21","31.26","31.35","31.39","31.43","31.45","31.46","31.47","31.50"],"classname":["0.4","0.5","0.6","0.7","0.8","0.9","0.10","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","2.41","3.1","3.2","3.3","3.4","3.5","3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.16","3.17","3.18","3.19","3.20","3.22","3.23","3.26","3.27","3.29","3.30","3.32","3.33","5.1","5.2","5.3","5.6","5.7","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.16","5.17","5.18","5.19","5.20","5.21","5.22","5.23","5.24","5.25","5.27","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.43","5.44","5.46","5.47","9.1","9.3","10.1","10.5","12.0","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.15","12.17","12.18","12.20","12.22","12.24","12.26","12.28","12.29","12.30","12.31","12.40","15.1","15.2","15.3","15.12","15.16","15.20","15.22","15.28","15.37","15.44","15.45","15.46","19.3","25.1","25.7","25.10","25.19","25.31","25.32","25.35","25.39","25.43","25.47","27.6","27.8","27.9","27.10","27.12","27.13","27.14","27.17","27.18","31.1","31.3","31.4","31.5","31.7","31.9","31.10","31.13","31.17","31.19","31.31","31.32","31.35","31.39","31.43","31.45","31.46","31.47","31.50"],"run":["0.4","0.5","0.6","0.7","0.10","0.13","0.14","0.15","0.16","0.17","1.1","1.6","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.13","2.14","2.15","2.16","2.19","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.40","2.41","3.3","3.5","3.6","3.7","3.8","3.9","3.10","3.11","3.17","3.22","3.29","3.30","3.32","5.1","5.2","5.3","5.8","5.10","5.12","5.14","5.16","5.17","5.18","5.19","5.20","5.21","5.22","5.23","5.25","5.27","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.44","5.46","5.47","9.1","9.3","10.1","10.2","10.5","12.0","12.6","12.7","12.8","12.10","12.20","12.22","12.28","12.29","12.30","12.31","15.1","15.2","15.3","15.12","15.16","15.20","15.28","15.37","15.44","15.45","19.3","21.1","25.1","25.7","25.10","25.19","25.30","25.31","25.32","25.35","25.43","25.47","27.8","27.9","27.10","27.12","27.13","27.14","27.15","27.17","27.18","31.1","31.4","31.5","31.7","31.10","31.19","31.31","31.32","31.35","31.39","31.43","31.47","31.50"],"art":["0.4","0.12","2.0","5.11","5.13","5.45","6.2","6.3","6.4","6.5","7.3","7.4","7.5","8.2","8.3","8.5","9.3","9.4","9.7","9.8","9.9","10.2","12.0","14.0","15.11","15.13","16.2","16.3","16.4","16.5","17.3","17.4","17.5","18.2","18.3","18.5","19.4","19.7","19.8","19.9","25.2","26.10","30.3","30.4","31.2"],"new":["0.4","2.0","4.0","6.2","6.3","6.4","6.5","7.3","7.4","7.5","8.3","9.3","9.4","9.7","9.8","9.9","10.2","12.0","14.0","16.2","16.3","16.4","16.5","17.3","17.4","17.5","18.3","19.4","19.7","19.8","19.9","22.6","22.8","24.2","25.2","30.3","31.2"],"artplayer":["0.4","2.0","4.0","5.5","6.2","6.3","6.4","6.5","7.3","7.4","7.5","9.3","9.4","9.8","9.9","12.0","14.0","16.2","16.3","16.4","16.5","17.3","17.4","17.5","19.4","19.8","19.9","20.3","20.6","21.2","22.2","23.2","24.4","25.2","26.3","26.4","26.6","26.9","26.10","27.7","27.10","27.11","27.15","27.18","27.21","28.2","28.7","29.6","31.2"],"container":["0.4","2.0","4.0","6.4","6.5","7.3","7.5","9.3","9.4","9.8","9.9","12.0","14.0","16.4","16.5","17.3","17.5","19.4","19.8","19.9","20.4","20.5","25.2","25.11","26.5","31.11"],"方法用于更新":["0.6"],"对象":["0.6"],"方法用于动态更新层":["0.8"],"show":["0.8","0.9","0.10","0.12","0.16","10.7"],"属性用于设置是否显示全部层":["0.8"],"toggle":["0.8","0.9","0.10","0.16","25.18"],"方法用于切换是否显示全部层":["0.8"],"方法用于动态更新控制器":["0.9"],"属性用于设置是否显示全部控制器":["0.9"],"方法用于切换是否显示全部控制器":["0.9"],"属性用于设置是否显示全部菜单":["0.10"],"方法用于切换是否显示全部菜单":["0.10"],"方法设置当前字幕地址和选项":["0.11"],"texttrack":["0.11"],"获取当前字幕轨":["0.11"],"activecues":["0.11"],"获取当前活跃的字幕列表":["0.11"],"cues":["0.11"],"通过":["0.12"],"控制面板的显示与隐藏":["0.12"],"触发的事件名为":["0.12"],"属性用于切换是否显示加载层":["0.13"],"属性用于切换是否显示遮罩层":["0.15"],"属性用于设置是否显示全部设置项":["0.16"],"方法用于切换是否显示全部设置项":["0.16"],"字符串":["1.11"],"app":["2.0","4.0","7.2","7.5","9.3","9.4","9.8","9.9","12.0","14.0","17.2","17.5","19.4","19.8","19.9","25.2"],"url":["2.0","4.0","5.11","7.2","7.5","9.4","9.9","12.0","14.0","15.11","15.13","17.2","17.5","19.4","19.9","21.5","21.6","25.36","25.37","31.36","31.37"],"assets":["2.0","4.0","7.2","8.2","8.3","8.4","8.5","9.4","9.9","12.0","14.0","17.2","18.2","18.3","18.4","18.5","19.4","19.9","25.2","25.29","31.29"],"sample":["2.0","4.0","7.2","8.2","8.3","8.4","8.5","9.4","9.9","12.0","14.0","17.2","18.2","18.3","18.4","18.5","19.4","19.9","25.29","31.29"],"mp4":["2.0","4.0","7.2","14.0","17.2"],"on":["2.0","4.0","12.16","19.6","21.10","25.21","25.45"],"canplay":["2.0"],"事件":["2.41","27.14"],"浏览器可以播放媒体文件了":["2.42"],"浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束":["2.43"],"offlineaudiocontext":["2.44"],"duration":["2.45","13.12","13.13","15.39","21.5"],"媒体内容变为空":["2.46"],"例如":["2.46"],"视频停止播放":["2.47"],"获取媒体数据时出错":["2.48"],"media":["2.49","12.59","13.34","22.8","23.7"],"已加载元数据":["2.50"],"播放已暂停":["2.51"],"播放已开始":["2.52"],"由于缺乏数据而暂停或延迟后":["2.53"],"在浏览器加载资源时周期性触发":["2.54"],"播放速率发生变化":["2.55"],"跳帧":["2.56","2.57"],"用户代理":["2.58"],"媒体数据加载已暂停":["2.59"],"currenttime":["2.60"],"音量发生变化":["2.61"],"由于暂时缺少数据":["2.62"],"可以打印出视频全部的内置事件":["3.1"],"默认关闭":["3.1"],"默认为":["3.4","3.8","3.9","3.10","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.27","3.31","3.34","5.4"],"单位为毫秒":["3.15","3.21","3.24"],"true":["3.18","3.19","3.31","3.32","3.34","5.4","13.34","22.3","23.3","27.13","29.3","31.21","31.28","31.45"],"false":["3.20","3.33","13.33","31.8","31.9","31.13","31.18","31.20","31.23","31.24","31.26","31.46","31.48"],"是否把播放器挂在在":["3.31"],"元素下":["3.31"],"目前主要用于进度条的平滑效果":["3.33"],"属性并调用":["3.34"],"load":["3.34","5.5","13.34","15.5","21.8","21.12"],"以主动释放媒体资源":["3.34"],"开启后可以在单页应用或频繁创建":["3.34"],"销毁播放器的场景下":["3.34"],"dosomething":["4.0","14.0"],"video":["4.0","5.34","5.38","5.40","7.2","9.4","9.9","10.12","14.0","15.1","15.2","15.7","15.8","15.9","15.10","15.14","15.15","15.17","15.23","15.25","15.27","15.33","15.34","15.35","17.2","19.4","19.9","21.0","21.11","25.4","25.14","25.15","25.16","31.41"],"plugins":["4.0"],"ready":["4.0","12.2","12.53","25.4"],"可以在实例化之后再加载插件的函数":["4.0"],"销毁播放器":["5.4"],"接受一个参数表示是否销毁后同时移除播放器的":["5.4"],"html":["5.4","20.12","25.39","26.12","31.27","31.33"],"常用于在单页应用中手动释放媒体资源或重新初始化视频标签":["5.5"],"注意":["5.5"],"全局配置":["5.5"],"remove":["5.5","10.8","10.9","10.10","10.14","10.16"],"视频时间跳转":["5.6"],"单位秒":["5.6","5.7","5.8","31.34"],"视频时间快进":["5.7"],"视频时间快退":["5.8"],"设置和获取视频音量":["5.9"],"范围在":["5.9","31.25"],"string":["5.10","6.1","7.1","8.1","11.11","16.1","18.1","25.36","25.37","31.33","31.34","31.36","31.37"],"设置和获取视频地址":["5.10"],"类似":["5.11","5.12","5.13","5.15","5.42"],"但会执行一些优化操作":["5.11","5.12"],"switchurl":["5.13","15.13"],"但会带上之前的播放进度":["5.13"],"设置和获取视频是否静音":["5.14"],"设置和获取视频当前时间":["5.15"],"设置时间时和":["5.15"],"seek":["5.15"],"但它不会触发额外的事件":["5.15"],"返回的是一个":["5.18","5.19"],"promise":["5.18","5.19","21.5","21.8","22.6","23.5","27.18","28.6","29.5"],"设置和获取播放器窗口全屏":["5.20"],"设置和获取播放器网页全屏":["5.21"],"设置和获取播放器画中画模式":["5.22"],"只有在视频播放前才能看到海报效果":["5.23"],"boolean":["5.24","6.1","8.1","9.5","19.5","31.33"],"设置和获取播放器迷你模式":["5.24"],"获取视频是否正在播放中":["5.25"],"支持":["5.26","5.30"],"standard":["5.26","15.26"],"正常":["5.26"],"mini":["5.26","25.12","25.26"],"迷你窗":["5.26"],"pip":["5.26"],"type":["5.29","11.10","20.9","26.9","26.10"],"getter":["5.29"],"这些属性是对":["5.29"],"rect":["5.29","15.29"],"的快捷访问":["5.29"],"设置和获取播放器翻转":["5.30"],"normal":["5.30","13.30"],"horizontal":["5.30","13.30"],"vertical":["5.30"],"设置和获取播放器播放速度":["5.31"],"设置和获取播放器长宽比":["5.32"],"元素的属性":["5.34"],"动态获取和设置视频类型":["5.35"],"动态获取和设置播放器主题颜色":["5.36"],"常配合":["5.38","5.40"],"timeupdate":["5.38","5.40"],"事件使用":["5.38","5.40"],"通常与":["5.39"],"loaded":["5.39","21.12","27.14"],"一起使用":["5.39","31.40"],"用于展示缓冲进度细节":["5.39"],"和":["5.41","31.6","31.14","31.15","31.16"],"removeeventlistener":["5.41","15.41"],"当使用":["5.41"],"来处理事件":["5.41"],"播放器销毁时也会自动销毁该事件":["5.41"],"document":["5.42","12.41","15.42"],"queryselector":["5.42","15.42"],"但被查询的对象局限于当前播放器内":["5.42"],"可以避免同类名的错误":["5.42"],"元素":["5.43"],"动态设置缩略图":["5.46"],"number":["5.47","9.2","9.3","17.1","19.3","25.34","25.36","31.34","31.36"],"动态设置字幕偏移":["5.47"],"是否禁用组件":["6.1","7.1","8.1"],"name":["6.1","7.1","7.2","8.1","14.0","16.1","17.2","18.1","25.37","31.37"],"组件唯一名称":["7.1"],"用于标记类名":["7.1"],"index":["7.1","7.2","17.1","17.2","22.2","23.2","27.11","28.2","29.2"],"controls":["7.2","17.2","23.0"],"your":["7.2","17.2","25.43"],"button":["7.2","17.2","25.18","25.44","25.49"],"img":["8.2","8.3","8.4","8.5","18.2","18.3","18.4","18.5","25.29","31.29"],"layer":["8.2","8.3","8.4","8.5","10.8","12.35","12.36","18.2","18.3","18.4","18.5"],"png":["8.2","8.3","8.5","18.2","18.3","18.5"],"aspectratio":["9.1"],"subtitleoffset":["9.1"],"icon":["9.2","19.2","19.5"],"元素的图标":["9.2","9.5","9.6"],"onclick":["9.2","19.2"],"function":["9.2","9.5","9.6","11.9","19.2","19.3","19.6","20.5","21.5","25.14","25.15","25.16","25.17","26.5"],"元素点击事件":["9.2"],"width":["9.2","19.3"],"列表宽度":["9.3"],"tooltip":["9.3","9.5","9.6","19.3"],"提示文本":["9.3","9.6"],"switch":["9.5","19.5"],"按钮默认状态":["9.5"],"onswitch":["9.5"],"按钮切换事件":["9.5"],"range":["9.6","15.9"],"array":["9.6","19.6","21.5"],"默认状态数组":["9.6"],"onrange":["9.6","19.6"],"完成时触发的事件":["9.6"],"onchange":["9.6"],"变化时触发的事件":["9.6"],"here":["10.0","13.0"],"following":["10.3"],"methods":["10.3"],"to":["10.3","10.13","10.14","10.15","12.0","12.2","13.0","15.5","15.6","15.11","15.13","15.29","15.41","15.42","18.1","20.13","21.6","21.10","22.0","23.0","23.3","25.4","25.9","25.13","25.14","25.18","25.20","25.23","25.24","25.28","25.38","25.41","25.44","25.45","25.46","25.48","25.49"],"handle":["10.3","15.41","23.5"],"will":["10.3","25.8","25.38"],"also":["10.3","22.3","23.4"],"be":["10.3","11.1"],"automatically":["10.3","12.18","12.19","15.33","15.41","25.38"],"destroyed":["10.3","12.6"],"is":["10.3","10.13","10.15","12.1","12.3","12.5","12.6","12.9","12.10","12.11","12.18","12.19","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.53","13.3","13.5","13.28","13.29","13.30","13.33","13.34","15.14","15.23","15.25","15.41","21.12","25.1","25.4","25.40"],"a":["10.4","10.7","10.8","10.9","12.26","12.27","12.56","12.57","13.6","13.7","13.15","15.4","15.6","15.18","15.19","21.8","21.9","21.12","22.0","22.4","25.44","25.46","25.51"],"get":["10.4","15.9","15.10","15.35","15.36"],"retrieve":["10.4","10.6"],"del":["10.4"],"the":["10.5","12.11","12.44","12.49","12.55","12.60","12.61","13.31","13.32","15.7","15.8","15.9","15.10","15.14","15.15","15.17","15.20","15.21","15.23","15.24","15.25","15.26","15.27","15.30","15.31","15.32","15.34","15.35","15.36","15.41","15.42","15.43","16.1","18.1","19.1","20.10","21.0","21.12","22.3","25.14","25.15","25.16","25.17","25.18","25.20","25.21","25.23","25.24","25.42","25.43","25.48","25.49","25.50"],"player":["10.5","11.6","12.11","12.12","12.13","12.28","13.2","13.31","13.32","13.34","15.4","15.20","15.21","15.22","15.24","15.26","15.30","15.31","15.32","15.36","15.43","20.5","21.10","22.0","22.3","23.0","23.3","25.1","25.3","25.4","25.6","25.11","25.12","25.22","25.23","25.24","25.48","26.5"],"an":["10.6","15.17","21.0","21.6","21.7","21.9","21.11","22.5","23.0"],"value":["10.6"],"update":["10.6","10.10","10.16"],"has":["10.7","12.47","12.62"],"property":["10.7","10.13","10.15","11.1","15.33","25.33","25.34","25.36","25.37"],"for":["10.7","10.17","11.6","11.7","12.1","12.46","13.10","13.11","13.12","13.13","13.15","13.16","13.21","13.22","13.23","13.24","13.25","13.27","17.1","20.9","20.11","21.8","22.7","24.2","25.3","25.22"],"displaying":["10.7"],"control":["10.9","22.1","22.2","23.1","23.2","25.17","25.33","28.1","28.2","28.3","28.7","29.1","29.2"],"items":["10.10","10.16"],"returns":["10.11","21.8","21.10"],"current":["10.11","10.12","15.5","15.15","15.17","15.18","15.19","15.26","21.12","21.13","22.5"],"style":["10.11"],"method":["10.11","10.17"],"of":["10.11","10.12","11.2","11.3","11.4","11.8","11.12","13.4","13.14","15.15","15.17","15.18","15.19","15.34","17.1","19.3","19.5","20.11","21.5","21.9","25.40"],"status":["10.12"],"and":["10.12","12.2","15.3","15.5","15.9","15.10","15.24","15.28","15.30","15.31","15.32","15.33","15.34","15.35","15.36","15.41","20.12","21.10","21.11","23.7","25.4","25.39","25.41"],"such":["10.12","20.10","25.22"],"as":["10.12","23.3","25.22"],"used":["10.13","10.14","10.15","15.5","15.39","17.1"],"set":["10.13","10.15","12.18","12.19","15.10","15.33","15.34","15.35","15.36","15.46","15.47"],"whether":["10.13","10.15","13.19","13.20","15.4","15.14","15.25","25.9","25.13","25.28"],"display":["10.13","10.15","21.5","25.14","25.15","25.16","25.18","25.20","25.23","25.24","25.42","25.44","25.49"],"hotkeys":["10.14"],"only":["10.17","15.23","22.7","23.6","25.5","25.26"],"one":["10.17","21.9"],"add":["10.17","25.43","25.46"],"dynamically":["10.17","15.46","15.47"],"adding":["10.17"],"this":["11.1","22.7","23.0","25.8"],"can":["11.1","12.42","13.1","15.33","20.10","20.11","21.7","21.11","22.5","25.51"],"useful":["11.1","25.27"],"information":["11.2","15.28"],"environment":["11.3"],"variables":["11.3","15.44","25.50"],"timestamp":["11.4"],"default":["11.5","11.12","13.3","13.8","13.9","13.18","13.28","13.29","13.30","13.32","13.33","13.34","19.5","19.6","20.5","26.5"],"configuration":["11.5","22.5"],"utility":["11.6"],"functions":["11.6"],"validation":["11.7","11.9"],"schema":["11.7"],"constructor":["11.8"],"detection":["11.10"],"required":["11.11"],"options":["11.12","13.30","20.9"],"first":["12.1"],"becomes":["12.2"],"play":["12.2"],"paused":["12.3"],"starts":["12.4"],"playing":["12.4","12.42"],"pressed":["12.5"],"gains":["12.7"],"loses":["12.8"],"focus":["12.8"],"double":["12.9","13.17","13.18","13.19"],"clicked":["12.9","12.10"],"while":["12.11","12.48","21.9","21.13"],"loading":["12.11","21.13"],"or":["12.12","12.21","12.23","12.24","12.25","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","15.14","15.21","21.5","21.10","21.11","22.4","23.4"],"leaves":["12.12"],"moves":["12.13"],"over":["12.13"],"s":["12.14","12.19","15.20","15.21","15.22","15.26","15.30","15.31","15.32","15.33","15.36","15.43","22.3","23.3","25.6","25.7","25.11","25.41"],"dimensions":["12.14","15.28","25.11"],"change":["12.14","22.5"],"enters":["12.15","25.12"],"viewport":["12.15"],"changes":["12.16","12.17","12.40","23.5"],"mobile":["12.16"],"devices":["12.16"],"aspect":["12.17","15.32","25.16"],"ratio":["12.17","25.16"],"height":["12.18","15.33"],"size":["12.19","15.27"],"flipped":["12.20"],"exits":["12.21","12.23","12.24","12.25"],"windowed":["12.21"],"mode":["12.21","12.23","12.24","15.22","25.8","25.12","25.27","25.28","27.5"],"error":["12.22","27.14","27.18"],"occurs":["12.22"],"web":["12.23","15.21","21.10","25.24"],"fullscreen":["12.23","21.10","25.48"],"picture":["12.25","15.22","25.20"],"in":["12.25","12.28","13.4","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.22","15.6","15.8","15.22","15.39","21.5","25.17","25.20","25.33","25.38","25.43","25.48","25.50"],"takes":["12.26"],"performs":["12.27","15.12"],"time":["12.27","15.6","15.7","15.8","15.15","21.4","22.5","25.34","27.4","31.34"],"panel":["12.32","13.5","13.6","13.7","13.22","19.1","21.0"],"shown":["12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39"],"hidden":["12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","22.3"],"menu":["12.37","13.3","22.3","22.4","23.3"],"bar":["12.38","25.17","25.26","25.32","25.33","25.34"],"state":["12.40","15.20","15.30","19.5","19.6"],"event":["12.41","13.8","13.9","13.10","13.17","15.41","19.3","19.6","23.4"],"from":["12.41","15.38","15.40","20.12","22.1","22.2","23.1","23.2","24.0","24.4","25.25","26.9","27.21","28.2","28.7","29.2","29.6","30.2"],"start":["12.42","25.9"],"browser":["12.43","21.6"],"estimates":["12.43"],"triggered":["12.45","19.6","25.4"],"become":["12.46"],"empty":["12.46","21.4"],"example":["12.46","21.1","22.6","22.7","23.5","23.6"],"playback":["12.47","12.51","12.52","12.62","15.15","15.31","21.7","22.5","25.13","25.15"],"occurred":["12.48"],"metadata":["12.50","22.7","23.6","31.38"],"fired":["12.54"],"user":["12.58"],"agent":["12.58"],"refer":["13.0"],"which":["13.1","25.5"],"print":["13.1","13.32"],"all":["13.1","22.2"],"built":["13.1","25.43","25.50"],"context":["13.3"],"notification":["13.4"],"messages":["13.4"],"milliseconds":["13.4","13.8","13.9","13.17","13.22"],"settings":["13.5","13.6","13.7","19.1","22.3","22.4","23.3"],"pixels":["13.5","13.10","21.5"],"view":["13.10"],"count":["13.11"],"feature":["13.12","13.13","25.47"],"automatic":["13.14","13.15"],"reconnection":["13.14","13.15"],"attempts":["13.14"],"when":["13.14","13.15","15.11","15.12","15.41","22.5","25.4","25.5","25.12","25.22"],"connection":["13.15"],"delay":["13.16","13.21","13.24"],"bottom":["13.16","21.5","25.17","25.33"],"click":["13.17","13.18","13.19","19.2","19.3"],"toggles":["13.18","13.19","13.20"],"single":["13.20"],"rotation":["13.21"],"speed":["13.23","13.25","21.5","25.15"],"multiplier":["13.23","13.25"],"long":["13.23","13.24","25.46"],"press":["13.23","13.24","25.46"],"left":["13.25"],"right":["13.25"],"adjustment":["13.26"],"via":["13.26","13.27"],"keyboard":["13.26","13.27"],"shortcuts":["13.26","13.27"],"seeking":["13.27"],"rates":["13.28"],"ratios":["13.29"],"under":["13.31"],"element":["13.31","15.34","21.12"],"requestanimationframe":["13.33"],"currently":["13.33","15.25","25.3","25.6","25.42"],"it":["13.33","19.1","22.7","25.38"],"actively":["13.34"],"release":["13.34","15.5"],"resources":["13.34","24.0"],"destroying":["13.34"],"myplugin":["14.0"],"console":["14.0"],"info":["14.0"],"return":["14.0","21.13","25.51"],"something":["14.0"],"pause":["15.3"],"accepts":["15.4"],"indicating":["15.4"],"src":["15.5"],"calls":["15.5"],"once":["15.5"],"commonly":["15.5"],"manually":["15.5","20.10"],"specific":["15.6","22.7"],"fast":["15.7"],"seconds":["15.8","15.39","21.5"],"similar":["15.11","15.13","15.42"],"setting":["15.11","15.12","15.15","22.3","22.5","28.3","29.3"],"but":["15.12","15.13","15.42"],"some":["15.12"],"optimization":["15.12"],"operations":["15.12","21.9"],"quality":["15.13"],"gets":["15.14","15.21","15.24","15.30","15.31","15.32"],"frame":["15.17"],"screenshot":["15.18","15.19"],"window":["15.20","25.23"],"effect":["15.23","25.22"],"visible":["15.23","21.12","27.6"],"sets":["15.24"],"supported":["15.26"],"values":["15.26","21.13"],"adapts":["15.27"],"its":["15.27","21.10","21.12","22.6","23.4"],"coordinate":["15.28","21.11"],"these":["15.29"],"properties":["15.29"],"provide":["15.29"],"quick":["15.29"],"access":["15.29","21.6"],"calculate":["15.33"],"attributes":["15.34"],"buffered":["15.38"],"ranging":["15.38","15.40","25.25"],"often":["15.38","15.40","25.11"],"typically":["15.39"],"alongside":["15.39"],"using":["15.41"],"search":["15.42"],"css":["15.44","25.50"],"subtitle":["15.47"],"offset":["15.47","25.25"],"component":["16.1","18.1"],"unique":["16.1","17.1","18.1"],"class":["17.1"],"marking":["17.1"],"comes":["19.1"],"with":["19.1","21.0","22.8","23.7","25.40","25.43"],"four":["19.1"],"elements":["19.3"],"onselect":["19.3"],"text":["19.3","23.3","31.34"],"item":["19.5","21.12"],"usage":["20.0"],"npm":["20.1","22.2","23.2","26.1","27.2","28.2","29.2"],"install":["20.1","26.1","27.2"],"jsdelivr":["20.2","21.3","26.2"],"net":["20.2","26.2","27.3"],"https":["20.2","21.3","26.2","27.3"],"head":["20.3","26.3"],"title":["20.3","22.3","23.3","26.3","29.3"],"demo":["20.3"],"meta":["20.3"],"charset":["20.3"],"template":["20.4","26.4"],"ref":["20.4","21.12"],"export":["20.5","26.5"],"option":["20.5","21.8","26.5"],"getinstance":["20.5","26.5"],"rest":["20.5","26.5"],"const":["20.5","26.5"],"d":["20.6"],"import":["20.8","20.10","22.1","22.2","23.1","23.2","26.8","26.10","27.21","28.1","28.2","28.7","29.2","29.6","30.2"],"ts":["20.9","27.21","28.7","29.6","31.40"],"cases":["20.10"],"you":["20.10","20.11","20.13","22.0","25.27"],"types":["20.10","21.13"],"variable":["20.10"],"version":["20.11","20.12","24.0","26.11"],"chrome":["20.11"],"last":["20.11"],"starting":["20.12","24.0"],"not":["20.13","22.4","22.5","22.7"],"always":["20.13"],"accurate":["20.13","21.5","21.13"],"sometimes":["20.13"],"may":["20.13"],"want":["20.13","25.27"],"adjust":["20.13","25.38"],"input":["21.0","21.8"],"examples":["21.1"],"plugin":["21.2","22.2","23.0","23.2","27.7","27.10","27.11","27.18","28.1","28.2","28.7","29.1","29.6"],"danmuku":["21.2","21.8","27.11","27.18"],"yarn":["21.2"],"removed":["21.4"],"comments":["21.4","21.8"],"are":["21.4","24.1"],"ignored":["21.4"],"hello":["21.4"],"xml":["21.5"],"returning":["21.5"],"clamped":["21.5"],"margin":["21.5","27.5"],"top":["21.5"],"spacing":["21.5"],"cross":["21.6"],"origin":["21.6"],"requires":["21.6","21.7"],"that":["21.6","25.26"],"server":["21.6"],"allow":["21.6"],"describes":["21.7"],"accepted":["21.7"],"reject":["21.7"],"them":["21.7"],"scheduling":["21.7"],"still":["21.7"],"available":["21.7"],"track":["21.7"],"callback":["21.7"],"acceptance":["21.7"],"comment":["21.7"],"queue":["21.8","21.12"],"reads":["21.8"],"replaces":["21.8"],"appends":["21.8"],"filtering":["21.9"],"individual":["21.9"],"rows":["21.9"],"do":["21.9","22.5"],"guarantee":["21.9"],"atomic":["21.9"],"rollback":["21.9"],"entire":["21.9","25.11"],"batch":["21.9"],"independent":["21.9"],"append":["21.9"],"cancel":["21.9"],"another":["21.9"],"newer":["21.9"],"replacement":["21.9"],"cancels":["21.9"],"unfinished":["21.9"],"during":["21.10"],"configured":["21.10"],"exit":["21.10"],"use":["21.10","25.28"],"theme":["21.10"],"light":["21.10","27.16"],"covering":["21.11"],"issue":["21.11"],"explicit":["21.11"],"finite":["21.11"],"ymin":["21.11"],"ymax":["21.11"],"custom":["21.11","23.5"],"points":["21.11"],"retain":["21.11"],"their":["21.11","23.6"],"mapping":["21.11"],"object":["21.11"],"xmin":["21.11"],"xmax":["21.11"],"scale":["21.11","27.20"],"opacity":["21.11","27.5","27.20"],"minheight":["21.11","27.20"],"sampling":["21.11","27.20"],"smoothing":["21.11","27.20"],"flattening":["21.11","27.20"],"displayed":["21.12"],"full":["21.12"],"after":["21.12"],"successful":["21.12"],"inaccuracies":["21.13"],"about":["21.13"],"branch":["21.13"],"adds":["21.13"],"runtime":["21.13"],"same":["21.13"],"menus":["22.0","25.31"],"create":["22.0"],"dash":["22.1","28.1","28.7"],"dashjs":["22.2"],"modern":["22.2"],"umd":["22.2"],"min":["22.2","23.2"],"uncompiled":["22.2","23.2","27.7","27.10","27.11","27.15","27.18","28.2"],"i":["22.2","23.2","28.2","29.2"],"means":["22.3"],"entry":["22.3","23.3"],"enable":["22.3","23.3","25.45"],"without":["22.4"],"overwriting":["22.4"],"unrelated":["22.4"],"abr":["22.4"],"synchronous":["22.4","22.5"],"does":["22.4","22.7"],"mean":["22.4"],"buffering":["22.4"],"decoding":["22.4","25.41"],"selection":["22.5"],"unchanged":["22.5"],"redraw":["22.5"],"they":["22.5"],"detect":["22.5"],"auto":["22.5","23.3","28.5"],"changing":["22.5"],"complete":["22.6"],"destroys":["22.6","23.5"],"replaced":["22.6"],"assigns":["22.6"],"instance":["22.6"],"before":["22.6"],"factory":["22.7","23.6"],"more":["22.7"],"declares":["22.7"],"fields":["22.7"],"uses":["22.7","23.6"],"require":["22.7"],"importing":["22.7"],"sdk":["22.7","23.4","23.6","28.7"],"local":["22.8","23.7"],"adaptive":["22.8"],"old":["22.8"],"core":["22.8"],"cloudflare":["23.2"],"com":["23.2"],"ajax":["23.2"],"well":["23.3"],"defaults":["23.3"],"fallback":["23.3"],"provides":["23.4"],"api":["23.4"],"manifest":["23.4"],"level":["23.4","28.7"],"audio":["23.4"],"destruction":["23.4"],"events":["23.4","25.45"],"returned":["23.5"],"loader":["23.5"],"previous":["23.5"],"specify":["23.6"],"actual":["23.6"],"through":["23.6"],"existing":["23.6"],"generic":["23.6"],"below":["23.6"],"real":["23.7"],"bundled":["24.0","24.2"],"multilingual":["24.0"],"en":["24.1","31.42"],"zh":["24.1","24.4","30.4","31.42"],"cn":["24.1","30.1"],"contributions":["24.2"],"welcome":["24.2"],"i18n":["24.4","30.4"],"tw":["24.4","30.4"],"mounted":["25.1"],"identifier":["25.3"],"successfully":["25.4"],"initialized":["25.4"],"image":["25.5","25.36"],"appears":["25.5","25.25"],"color":["25.6","27.5"],"live":["25.8"],"streaming":["25.8"],"fill":["25.11"],"multiple":["25.21"],"players":["25.21"],"exist":["25.21"],"page":["25.21"],"ui":["25.22","31.22"],"enabled":["25.22"],"overlays":["25.22"],"5s":["25.25","31.25"],"progress":["25.26","25.34"],"side":["25.27"],"rendering":["25.27"],"mount":["25.27"],"if":["25.27"],"list":["25.33"],"description":["25.33","25.34","25.36","25.37"],"thumbnail":["25.36"],"safari":["25.38","31.38"],"supports":["25.39"],"strings":["25.39"],"htmlelement":["25.39","31.39"],"together":["25.40"],"customtype":["25.40"],"by":["25.40"],"determined":["25.40"],"suffix":["25.40"],"delegates":["25.41"],"third":["25.41","25.51"],"party":["25.41","25.51"],"tolowercase":["25.42","31.42"],"language":["25.43"],"rotate":["25.48"],"modify":["25.50"],"htmlcanvaselement":["25.51","31.51"],"useref":["26.5"],"let":["26.10"],"null":["26.10"],"参数":["26.10"],"对于古老的浏览器":["26.11"],"可以使用":["26.11"],"legacy":["26.11"],"文件":["26.11"],"从":["26.12"],"开始":["26.12"],"所以在":["26.13"],"开始新增了一个":["26.13"],"guide":["27.0"],"下方":["27.1"],"其余都是非必要参数":["27.4"],"弹幕文本":["27.4"],"弹幕上下边距":["27.5"],"支持像素数字和百分比":["27.5"],"弹幕透明度":["27.5"],"ffffff":["27.5"],"默认弹幕颜色":["27.5"],"可以被单独弹幕项覆盖":["27.5"],"默认弹幕模式":["27.5"],"不执行":["27.6"],"需要业务校验时请在调用前完成":["27.6"],"来自用户输入的弹幕":["27.6"],"artplayerplugindanmuku":["27.6"],"来自服务器或直接调用":["27.6"],"的弹幕":["27.6"],"data":["27.7","27.9","27.10","27.12","27.13","27.14","27.15","27.17","27.18"],"libs":["27.7","27.9","27.10","27.11","27.13","27.14","27.15","27.17","27.18"],"bilibili":["27.8"],"网站的弹幕格式一致":["27.8"],"处理拒绝":["27.12"],"省略时间时安排在当前播放时间之后":["27.12"],"秒":["27.12"],"显示仍受播放状态":["27.12"],"过滤器和可用轨道影响":["27.12"],"target":["27.13","27.16"],"热力图应在初始化时启用":["27.13"],"heatmap":["27.13"],"不会创建热力图":["27.13"],"并发追加互不取消":["27.14"],"新的替换会取消尚未完成的旧替换":["27.14"],"销毁会取消未完成加载":["27.14"],"被取消的":["27.14"],"仍正常结束":["27.14"],"但不会发出迟到的":["27.14"],"否则会看不清":["27.16"],"退出全屏后会返回配置的挂载点":["27.16"],"必须传入已存在的元素或选择器":["27.16"],"省略参数不会恢复默认位置":["27.16"],"它返回":["27.16"],"undefined":["27.16"],"销毁会移除插件面板":["27.16"],"应用创建的外部容器由应用清理":["27.16"],"同步":["27.17"],"参数是当前完整队列":["27.18"],"包含已追加数据":["27.18"],"也可能来自显示调度":["27.18"],"监听错误事件并不能代替处理公开方法的":["27.18"],"拒绝":["27.18"],"是实时只读的停止状态":["27.19"],"与":["27.19"],"ishide":["27.19"],"不同":["27.19"],"也不表示媒体是否准备就绪":["27.19"],"emit":["27.19"],"默认分别为":["27.20"],"图表宽度":["27.20"],"floor":["27.20"],"图表高度":["27.20"],"提供准确类型":["27.21"],"加载的仍是同一个运行时工厂":["27.21"],"该入口尚未发布":["27.21"],"不能从旧":["27.21"],"cdn":["27.21"],"版本导入":["27.21"],"播放器添加画质和音轨菜单":["28.0"],"artplayerplugindashcontrol":["28.2"],"字段":["28.3"],"含义与默认行为":["28.3"],"显示底部控制器":["28.3"],"省略时不显示":["28.3","29.3"],"显示设置项":["28.3","29.3"],"设置":["28.4"],"同步选择菜单不代表缓冲或解码已经完成":["28.4"],"插件根据":["28.4"],"实际提供的方法选择适配方式":["28.4"],"接口":["28.4"],"画质列表与选择":["28.4"],"事件刷新在当前同步选择结束后合并执行":["28.5"],"未变化的播放时间事件不重绘菜单":["28.5"],"但可以发现外部":["28.5"],"设置变化":["28.5"],"暂停时直接修改":["28.5"],"配置":["28.5"],"或":["28.6"],"switchquality":["28.6","29.5"],"并处理返回的":["28.6","29.5"],"声明":["28.7","29.6"],"dashcontrol":["28.7"],"interface":["28.7"],"为":["29.0"],"artplayerpluginhlscontrol":["29.2"],"同时需要播放器的":["29.3"],"菜单标题":["29.3"],"画质默认":["29.3"],"提供事件接口时":["29.4"],"清单":["29.4"],"档位":["29.4"],"音轨与销毁事件也会刷新或清除菜单":["29.4"],"选中项来自当前":["29.4"],"示例在创建新":["29.5"],"hls":["29.6","29.7"],"hlscontrol":["29.6"],"无需手动导入":["30.1"],"group":["30.2"],"id":["30.2"],"容器":["31.1"],"目前只用于记忆播放":["31.3"],"autoplayback":["31.3"],"事件一样":["31.4"],"只会出现在播放器初始化且未播放的状态下":["31.5"],"播放器主题颜色":["31.6"],"目前用于":["31.6"],"进度条":["31.6"],"播放器的默认音量":["31.7"],"使用直播模式":["31.8"],"会隐藏进度条和播放时间":["31.8"],"是否默认静音":["31.9"],"播放器的尺寸默认会填充整个":["31.11"],"容器尺寸":["31.11"],"所以经常出现黑边":["31.11"],"该值能自动调整播放器尺寸以隐藏黑边":["31.11"],"当播放器滚动到浏览器视口以外时":["31.12"],"自动进入":["31.12"],"迷你播放":["31.12"],"模式":["31.12","31.28"],"是否循环播放":["31.13"],"是否显示视频翻转功能":["31.14"],"目前只出现在":["31.14"],"设置面板":["31.14","31.15","31.16","31.18","31.22","31.25"],"右键菜单":["31.14","31.15","31.16","31.22"],"是否显示视频播放速度功能":["31.15"],"会出现在":["31.15","31.16"],"是否显示视频长宽比功能":["31.16"],"是否在底部控制栏里显示":["31.17","31.18","31.20"],"视频截图":["31.17"],"功能":["31.17"],"的开关按钮":["31.18","31.20"],"画中画":["31.20"],"假如页面里同时存在多个播放器":["31.21"],"是否只能让一个播放器播放":["31.21"],"的背景虚化效果":["31.22"],"开启后":["31.22"],"是否在底部控制栏里显示播放器":["31.23","31.24"],"窗口全屏":["31.23"],"按钮":["31.23","31.24","31.49"],"网页全屏":["31.24"],"出现在":["31.25"],"迷你进度条":["31.26"],"只在播放器失去焦点后且正在播放时出现":["31.26"],"挂载模式":["31.27"],"假如你希望在播放器挂载前":["31.27"],"就提前渲染好播放器所需的":["31.27"],"时有用":["31.27"],"你可以通过":["31.27"],"在移动端是否使用":["31.28"],"类型":["31.33"],"描述":["31.33","31.34","31.37"],"默认画质":["31.33"],"画质名字":["31.33"],"高亮时间":["31.34"],"高亮文本":["31.34"],"预览图地址":["31.36"],"预览图数量":["31.36"],"column":["31.36"],"字幕名字":["31.37"],"字幕地址":["31.37"],"字幕类型":["31.37"],"可选":["31.37"],"preload":["31.38"],"中会自动调整为":["31.38"],"字符串和":["31.39"],"默认视频的格式就是视频地址的后缀":["31.40"],"如":["31.40"],"m3u8":["31.40"],"mkv":["31.40"],"但有时候视频地地址没有正确的后缀":["31.40"],"进行匹配":["31.41"],"把视频解码权交给第三方程序进行处理":["31.41"],"处理的函数能接收三个参数":["31.41"],"视频":["31.41"],"dom":["31.41"],"默认显示语言":["31.42"],"目前支持":["31.42"],"是否在移动端显示一个":["31.44"],"锁定按钮":["31.44"],"用于隐藏底部":["31.44"],"控制栏":["31.44"],"是否在移动端启用视频元素上的手势事件":["31.45"],"是否在移动端添加长按视频快进功能":["31.46"],"是否在移动端的网页全屏时":["31.48"],"根据视频尺寸和视口尺寸":["31.48"],"旋转播放器":["31.48"],"是否显示":["31.49"],"当前只有部分浏览器支持该功能":["31.49"],"函数可以返回一个第三方的":["31.51"],"或者":["31.51"],"htmlvideoelement":["31.51"],"例如可以代理一个已经存在的":["31.51"]},{"0":["9.6","13.25","13.26","15.9","21.4","21.5","21.11","27.4"],"1":["9.6","13.26","15.9","19.6","20.10","21.11","27.20","28.8"],"2":["13.28","21.5","21.11","25.1","27.5","29.7","31.1"],"3":["13.23","20.7","20.10","26.7"],"4":["25.7","25.10","25.19","25.31","25.32","25.39","25.43","28.4","30.1","31.10","31.19","31.31","31.32","31.39","31.47","31.50"],"5":["9.6","13.12","13.27","19.6","21.4","25.47","27.4","31.47"],"6":["2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40"],"7":["2.19","2.21","2.23","2.25","2.26","5.16","5.28","5.33","15.16","15.28","15.33","25.4","29.7","31.4","31.39"],"8":["2.17","2.20","5.1","5.14","5.21","5.31","5.32","5.34","5.35","5.36","5.44","12.20","15.44","20.3"],"9":["2.29","2.30","2.31","5.12","5.20","5.22","5.23","5.37","12.29","12.30","12.31","13.29","15.12","15.20","15.22","15.37","25.43","31.4"],"10":["2.6","2.18","2.24","7.5","9.6","13.11","17.5","21.4"],"11":["5.2","5.3","5.21","5.33","12.28","15.2","15.33","26.11"],"12":["25.31","31.31"],"15":["25.35","31.35"],"16":["25.32","31.32"],"17":["4.0","14.0","29.7"],"25":["13.28","21.11"],"29":["15.45"],"35":["13.7"],"50":["13.10"],"100":["21.11","27.20"],"128":["21.11"],"200":["13.6","13.8","13.9","13.21"],"250":["9.3","13.5","19.3"],"300":["13.17"],"1000":["13.22","13.24"],"2000":["13.4"],"3000":["13.13"],"是指挂载在":["0.0","1.0","5.0"],"js":["0.1","0.3","0.5","0.6","0.7","0.8","0.9","0.10","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.19","2.20","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.3","3.5","3.6","3.7","3.8","3.9","3.10","3.17","3.28","3.29","3.30","5.1","5.2","5.3","5.8","5.9","5.10","5.11","5.12","5.13","5.14","5.16","5.17","5.18","5.19","5.20","5.21","5.22","5.23","5.25","5.27","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.41","5.44","5.46","5.47","9.1","9.5","10.1","10.4","10.5","10.6","10.14","12.2","12.6","12.17","12.20","12.22","12.24","12.28","12.29","12.30","12.31","15.1","15.2","15.3","15.12","15.20","15.22","15.28","15.33","15.37","15.44","15.46","19.3","19.6","22.5","23.6","24.0","25.1","25.4","25.7","25.31","25.32","25.35","25.39","25.43","27.6","27.7","27.9","27.10","27.12","27.13","27.14","27.15","27.17","27.18","28.4","28.5","30.0","31.1","31.7","31.10","31.19","31.31","31.34","31.35","31.39","31.47","31.50"],"var":["0.1","0.3","0.5","0.6","0.7","0.8","0.9","0.10","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.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","5.2","5.3","5.12","5.14","5.16","5.20","5.22","5.23","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.44","5.46","9.5","10.1","10.5","10.14","12.22","12.29","12.30","12.31","15.12","15.16","15.20","15.22","15.33","15.44","15.45","19.3","24.4","25.1","25.7","25.10","25.19","25.31","25.32","25.43","25.47","27.10","27.11","27.12","27.13","27.14","27.18","30.1","30.2","31.1","31.4","31.10","31.19","31.31","31.32","31.39","31.43","31.47"],"art":["0.1","0.2","0.5","0.6","0.7","0.10","0.14","0.16","0.17","2.2","2.6","2.11","2.12","2.16","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","2.31","2.39","5.16","5.20","5.22","5.23","5.28","5.33","5.44","8.4","9.5","10.1","10.5","12.31","15.16","15.20","15.22","15.33","15.44","15.45","18.4","19.3","20.5","20.10","22.0","22.2","22.5","23.0","23.2","23.5","24.3","24.4","25.1","25.7","25.10","25.19","25.29","25.30","25.31","25.32","25.43","25.47","26.5","27.11","27.13","27.14","27.20","28.2","28.5","29.0","29.2","29.4","29.5","30.1","30.2","31.1","31.4","31.19","31.29","31.30","31.31","31.32","31.35","31.39","31.41","31.43","31.47"],"new":["0.1","0.2","0.6","0.7","0.14","0.16","0.17","2.2","2.6","2.17","2.18","2.20","2.22","2.24","2.28","2.29","2.30","2.31","5.12","5.23","5.44","5.45","8.2","8.4","8.5","10.1","15.12","15.16","15.20","15.33","15.45","18.2","18.4","18.5","19.3","20.5","22.2","23.2","24.4","25.1","25.7","25.10","25.19","25.29","25.30","25.31","25.32","25.43","25.47","26.5","27.11","27.14","27.18","28.2","29.2","30.4","31.1","31.4","31.29","31.30","31.31","31.32","31.43"],"artplayer":["0.2","0.7","0.14","0.16","0.17","2.2","2.22","2.24","2.28","2.29","2.30","2.31","3.5","3.6","3.7","3.29","3.30","5.12","5.23","5.45","8.2","8.3","8.4","8.5","9.7","10.1","10.2","15.12","15.16","15.45","18.2","18.3","18.4","18.5","19.3","19.7","20.1","20.8","20.9","20.10","21.3","21.13","22.7","23.6","24.0","24.3","25.10","25.19","25.29","25.30","25.32","25.43","25.47","26.1","26.8","27.2","27.3","27.6","27.8","27.9","27.12","27.13","27.14","27.16","27.17","30.0","30.3","31.4","31.27","31.29","31.30","31.32","31.43"],"container":["0.2","0.3","0.14","0.17","2.2","2.28","5.12","5.45","6.2","6.3","7.4","8.2","8.3","8.4","8.5","9.7","10.2","15.12","15.16","15.45","16.2","16.3","17.4","18.2","18.3","18.4","18.5","19.3","19.7","24.4","25.10","25.19","25.29","25.30","25.32","25.43","25.47","26.4","26.9","27.11","27.14","27.18","28.2","29.2","30.3","30.4","31.2","31.4","31.29","31.30","31.32","31.43"],"app":["0.2","0.4","0.14","5.45","6.2","6.3","6.4","6.5","7.3","7.4","8.2","8.3","8.4","8.5","9.7","10.2","15.12","15.16","15.45","16.2","16.3","16.4","16.5","17.3","17.4","18.2","18.3","18.4","18.5","19.3","19.7","20.4","22.2","23.2","25.1","25.19","25.29","25.30","25.47","26.4","27.11","27.18","28.2","29.2","30.4","31.2","31.4","31.29","31.30","31.43"],"url":["0.2","0.4","5.45","6.2","6.3","6.4","6.5","7.3","7.4","8.2","8.3","8.5","9.3","9.7","9.8","10.2","15.16","15.45","16.2","16.3","16.4","16.5","17.3","17.4","18.2","18.3","18.5","19.3","19.7","19.8","25.29","25.30","25.33","25.40","25.47","27.18","29.2","31.29","31.30","31.33","31.41","31.43"],"classname":["0.3","0.11","0.12","1.11","3.15","3.21","3.24","3.25","3.28","3.31","5.4","5.15","5.26","5.30","5.38","5.39","5.40","5.41","5.42","9.2","9.5","10.4","10.6","10.7","10.14","10.17","11.6","12.1","12.2","12.11","12.12","12.13","12.14","12.16","12.19","12.21","12.23","12.25","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.41","13.2","13.3","13.4","13.5","13.6","13.7","13.8","13.9","13.10","13.11","13.17","13.18","13.22","13.28","13.29","13.30","13.32","15.6","15.7","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.23","15.24","15.25","15.27","15.30","15.31","15.32","15.33","15.34","15.35","15.36","15.41","15.43","15.47","19.5","25.4","25.9","25.13","25.17","25.25","25.34","25.42","25.50","27.16","31.6","31.8","31.12","31.14","31.15","31.16","31.18","31.20","31.21","31.23","31.24","31.25","31.26","31.27","31.28","31.33","31.34","31.38","31.40","31.42","31.44","31.48","31.49","31.51"],"run":["0.3","0.8","0.9","0.11","0.12","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","3.1","3.2","3.4","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.23","3.24","3.25","3.26","3.27","3.28","3.31","3.33","5.4","5.6","5.7","5.9","5.11","5.13","5.15","5.24","5.30","5.38","5.39","5.40","5.41","5.42","5.43","9.2","9.5","10.4","10.6","10.7","10.14","10.17","11.6","12.1","12.2","12.3","12.4","12.5","12.9","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.21","12.23","12.24","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.3","13.5","13.8","13.9","13.10","13.17","13.28","13.29","13.30","15.7","15.8","15.9","15.10","15.14","15.21","15.22","15.23","15.25","15.27","15.31","15.32","15.33","15.34","15.35","15.36","15.41","15.43","15.46","15.47","25.4","25.9","25.13","25.17","25.34","25.39","25.50","27.1","27.6","27.16","31.3","31.6","31.8","31.9","31.12","31.13","31.14","31.15","31.16","31.17","31.18","31.20","31.21","31.23","31.24","31.25","31.26","31.28","31.33","31.34","31.40","31.42","31.44","31.45","31.46","31.48","31.49","31.51"],"code":["0.3","0.8","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","2.41","3.1","3.2","3.4","3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.28","3.31","3.32","3.33","5.4","5.6","5.7","5.8","5.9","5.10","5.11","5.13","5.15","5.18","5.19","5.24","5.30","5.38","5.39","5.40","5.41","5.42","5.43","5.47","9.1","9.2","9.5","10.4","10.6","10.7","10.14","10.17","11.6","12.1","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.28","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.29","13.30","15.1","15.3","15.8","15.9","15.10","15.14","15.20","15.21","15.22","15.25","15.27","15.28","15.31","15.32","15.33","15.34","15.35","15.36","15.41","15.43","15.46","15.47","24.0","24.2","25.4","25.13","25.17","25.39","25.50","27.6","27.8","27.16","31.3","31.5","31.7","31.8","31.9","31.12","31.13","31.17","31.18","31.20","31.21","31.23","31.24","31.25","31.26","31.28","31.33","31.34","31.40","31.42","31.44","31.45","31.46","31.48","31.49"],"document":["0.3","25.1"],"assets":["0.4","5.45","6.2","6.3","6.4","6.5","7.3","7.4","7.5","9.3","9.7","9.8","10.2","15.45","16.2","16.3","16.4","16.5","17.3","17.4","17.5","19.3","19.7","19.8","25.30","25.47","27.18","31.2","31.30","31.43"],"sample":["0.4","5.45","6.2","6.3","6.4","6.5","7.3","7.4","7.5","9.3","9.8","10.2","16.2","16.3","16.4","16.5","17.3","17.4","17.5","19.3","19.8","25.2","25.30","27.18","31.2","31.30","31.43"],"video":["0.4","3.34","5.45","6.2","6.3","6.4","6.5","7.3","7.5","8.2","8.3","8.5","9.3","9.8","10.2","12.11","13.1","15.6","15.18","15.19","16.2","16.3","16.4","16.5","17.3","17.5","18.2","18.3","18.5","19.3","19.8","25.38","25.45","25.46","27.18","28.4","29.4","31.2","31.51"],"mp4":["0.4","6.3","6.4","6.5","7.3","7.5","8.2","8.3","8.5","9.3","9.4","9.8","9.9","10.2","12.0","16.3","16.4","16.5","17.3","17.5","18.2","18.3","18.5","19.3","19.4","19.8","19.9","25.2","27.18","31.2"],"test":["0.4"],"foo":["0.4"],"bar":["0.4","13.16","25.6","25.8","25.22"],"const":["0.4","9.6","19.6","22.2","23.2","26.9","28.2","29.2"],"获取整体的字幕列表":["0.11"],"div":["0.11","0.12","3.31","5.4","5.26","5.38","5.40","5.42","9.2","9.5","10.4","10.6","10.7","10.14","10.17","11.5","11.6","11.9","11.10","12.1","12.11","12.19","12.21","12.23","12.25","12.32","12.33","12.35","12.36","12.37","12.38","13.2","13.3","13.4","13.5","13.6","13.7","13.8","13.9","13.10","13.11","13.17","13.18","13.19","13.20","13.21","13.22","13.23","13.26","13.28","13.29","13.30","13.32","15.6","15.7","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.23","15.24","15.25","15.27","15.30","15.31","15.32","15.34","15.35","15.36","15.41","15.43","19.5","20.3","25.4","25.9","25.13","25.17","25.25","25.28","25.34","25.42","25.50","27.16","31.6","31.12","31.14","31.15","31.16","31.18","31.20","31.23","31.24","31.25","31.27","31.28","31.33","31.34","31.38","31.40","31.41","31.42","31.44","31.48","31.49","31.51"],"详见事件文档":["0.12"],"console":["1.1","2.0","12.0"],"info":["2.0","12.0"],"只监听一次事件":["2.0"],"但估计没有足够的数据来支撑播放到结束":["2.42"],"渲染完成":["2.44"],"属性的值改变时触发":["2.45"],"当这个":["2.46"],"因为":["2.47"],"或者资源类型不是受支持的媒体格式":["2.48"],"中的首帧已经完成加载":["2.49"],"播放准备开始":["2.53"],"seek":["2.56","2.57","12.56","12.57","13.25","15.15"],"user":["2.58","26.13"],"属性指定的时间发生变化":["2.60"],"播放已停止":["2.62"],"也是指挂载在":["3.0"],"构造函数":["3.0"],"减少视频资源占用":["3.34"],"如果你希望保留":["3.34"],"元素的状态":["3.34"],"仅移除界面":["3.34"],"可将其设置为":["3.34"],"when":["5.5","11.1","12.45","25.26"],"destroy":["5.5","21.9","22.2","23.2","28.2","29.2"],"也会在调用":["5.5"],"时自动执行类似逻辑":["5.5"],"画中画":["5.26"],"fullscreen":["5.26","15.21","25.24"],"窗口全屏":["5.26"],"fullscreenweb":["5.26"],"网页全屏":["5.26"],"对应":["5.29"],"domrect":["5.29"],"的同名字段":["5.29"],"组件唯一名称":["6.1","8.1"],"用于标记类名":["6.1","8.1"],"index":["6.1","7.5","8.1","16.1","17.5","18.1","23.3","27.6","27.7","27.9","27.10","27.12","27.13","27.14","27.15","27.16","27.17","27.18"],"number":["6.1","7.1","8.1","10.12","16.1","18.1","19.2","22.7","28.7","29.6"],"contextmenu":["6.4","6.5","16.4","16.5"],"name":["6.5","7.5","9.9","16.5","17.5","19.9","25.33"],"组件索引":["7.1"],"用于显示的优先级":["7.1"],"html":["7.1","7.2","9.4","9.9","15.4","17.1","17.2","19.4","19.9","25.27","25.33"],"element":["7.1","17.1","25.45"],"position":["7.2","7.5","17.2","17.5"],"left":["7.2","17.2"],"tooltip":["7.2","9.2","9.9","17.2","19.2","19.5","19.6","19.9"],"style":["7.2","9.3","17.1","17.2","21.7","25.37","31.37"],"color":["7.2","15.36","17.2","21.5","21.7"],"red":["7.2","17.2"],"click":["7.2","17.2"],"function":["7.2","11.10","17.2","19.5","21.6","22.2","23.2","25.35","25.41","26.10","27.6","28.2","29.2","31.35"],"args":["7.2","17.2"],"controls":["7.3","7.5","17.3","17.5"],"add":["7.3","17.3","21.2"],"button1":["7.5","17.5"],"png":["8.4","18.4","25.29","31.29"],"列表宽度":["9.2"],"提示文本":["9.2","9.5"],"setting":["9.3","9.4","9.8","9.9","19.3","19.4","19.8","19.9"],"true":["9.3","9.4","9.8","9.9","13.18","13.19","13.32","19.3","19.4","19.8","19.9","21.5","21.7","27.5","28.3"],"settings":["9.3","9.4","9.9","19.3","19.4","19.9","21.0","25.14","25.15","25.16","25.18","25.22","25.25"],"subtitle":["9.3","19.3"],"01":["9.3","9.4"],"default":["9.3","13.1","13.4","13.10","13.11","13.12","13.13","13.14","13.15","13.16","13.17","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.31","21.5"],"span":["9.3"],"multi":["9.4","19.4"],"level":["9.4","13.0","19.4","22.7","23.3","29.6"],"selector":["9.4","19.4"],"value":["9.6","27.20"],"min":["9.6"],"flip":["9.8","19.1","19.8"],"slider":["9.9","19.9"],"5x":["9.9","19.9"],"icon":["9.9","19.9"],"refer":["10.0","11.0","15.0"],"to":["10.0","11.0","11.1","12.53","13.25","15.0","15.4","15.15","15.39","20.11","21.4","21.7"],"proxy":["10.3"],"method":["10.3","21.10","22.4"],"used":["10.3","13.33","15.38","15.40","25.3","25.6"],"hover":["10.3"],"delete":["10.4"],"clear":["10.4","23.4"],"all":["10.4","20.12"],"caches":["10.4"],"object":["10.6","21.6","31.11"],"update":["10.8","10.9","22.5","28.5"],"show":["10.8","10.9","10.10","10.16","21.8"],"property":["10.8","10.9","10.10","10.16"],"switch":["10.11"],"version":["10.12"],"resolution":["10.12"],"duration":["10.12"],"etc":["10.12"],"control":["10.12","22.7","23.6","29.6"],"visibility":["10.12"],"toggle":["10.13","10.15","25.20"],"set":["10.16"],"the":["11.0","12.45","12.48","15.0","15.6","15.29","21.6","22.0","23.0","25.8","25.12","25.25","25.26","25.27","25.44","25.45"],"you":["11.1","23.0"],"need":["11.1"],"manage":["11.1"],"multiple":["11.1"],"player":["11.2","11.3","11.4","11.7","11.11","11.12","15.41","15.42","20.13","21.5","25.5","25.21","25.26","25.27"],"for":["11.5","11.9","13.33","16.1","18.1","22.3","23.3","25.6","25.18","25.38","25.41","25.51"],"videos":["11.5"],"options":["11.7","11.9","25.37"],"event":["11.8","12.0","12.46","15.38","15.40","19.2","19.5","21.9","25.4"],"utility":["11.10"],"by":["11.11","20.13","25.9"],"on":["12.0","13.0","13.3","14.0","25.28","25.44","25.46","25.48"],"canplay":["12.0"],"an":["12.0","20.12"],"only":["12.0","21.7","25.3","25.14","25.21","25.49"],"once":["12.0"],"time":["12.1","12.60","21.7"],"a":["12.11","13.14","21.5","21.7","22.5","22.6","22.8","23.4","23.7","25.22"],"mode":["12.25","13.31","15.24","21.5","21.7","25.48"],"media":["12.42","15.5"],"but":["12.42","15.11","15.15"],"estimates":["12.42"],"it":["12.43","15.15","21.6","21.7","22.3","22.5","22.6","23.3","23.6","25.15","25.16","25.51"],"can":["12.43","13.34","25.41"],"play":["12.43","25.4"],"offlineaudiocontext":["12.44"],"this":["12.46","13.34","25.11"],"is":["12.46","12.58","13.1","13.4","13.6","13.7","13.8","13.9","13.10","13.11","13.12","13.13","13.14","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.31","13.32","15.15","15.42","20.11","22.5","24.1","25.2","25.5","25.21"],"sent":["12.46"],"stopped":["12.47","12.62"],"fetching":["12.48"],"first":["12.49"],"frame":["12.49","15.18","15.19"],"has":["12.50","12.51","12.52","22.4"],"start":["12.53"],"after":["12.53","14.0"],"periodically":["12.54"],"as":["12.54","21.6"],"playback":["12.55","15.13","25.3"],"trying":["12.58"],"data":["12.59","27.6","27.8","27.16"],"indicated":["12.60"],"volume":["12.61","25.22"],"top":["13.0"],"mounted":["13.0"],"in":["13.1","13.12","13.13","13.15","13.16","13.21","13.24","13.27","13.34","15.5","15.7","15.26","20.12","21.7","25.2","25.11","25.14","25.15","25.16","25.18","25.23","25.24","25.25","25.34"],"events":["13.1"],"text":["13.2","19.2","19.5","19.6","21.9","22.3","25.34"],"pixels":["13.6","13.7"],"feature":["13.11","25.46"],"seconds":["13.12","13.27","15.6","15.7","21.4","25.34"],"milliseconds":["13.13","13.15","13.16","13.21","13.24"],"connection":["13.14"],"error":["13.14","13.15","21.9","21.12"],"occurs":["13.14","13.15"],"pause":["13.19","13.20"],"false":["13.20","27.5"],"swipe":["13.25"],"vertical":["13.30","15.30"],"during":["13.31"],"primarily":["13.33"],"smooth":["13.33"],"progress":["13.33","15.13","15.39","25.6","25.8"],"enabling":["13.34"],"reduce":["13.34"],"resource":["13.34"],"usage":["13.34"],"single":["13.34","15.5"],"page":["13.34","15.5","15.21"],"applications":["13.34","15.5"],"or":["13.34","15.5","21.7","21.8","21.9","21.12","22.3","23.3","25.51"],"scenarios":["13.34"],"where":["13.34"],"ready":["14.0"],"also":["14.0","15.4","20.12","23.3"],"remove":["15.4"],"s":["15.4","15.24","20.13","22.4","25.27"],"resources":["15.5"],"reinitialize":["15.5"],"tag":["15.5"],"performs":["15.11"],"some":["15.11","25.49"],"optimization":["15.11"],"operations":["15.11"],"retains":["15.13"],"previous":["15.13","22.2","23.2","28.2","29.2"],"similar":["15.15","25.4"],"optional":["15.17","21.0"],"parameter":["15.17","20.10"],"specifies":["15.17"],"filename":["15.17"],"returns":["15.18","15.19","22.5"],"promise":["15.18","15.19","21.7","21.12","27.19"],"state":["15.21","23.4"],"before":["15.23","23.5","25.27"],"starts":["15.23"],"playing":["15.23"],"normal":["15.26","15.30"],"mini":["15.26"],"window":["15.26"],"pip":["15.26"],"picture":["15.26"],"automatically":["15.27","25.11"],"correspond":["15.29"],"fields":["15.29"],"of":["15.29","25.12","25.36"],"same":["15.29"],"supported":["15.30","23.7","25.42"],"values":["15.30"],"horizontal":["15.30"],"speed":["15.31"],"ratio":["15.32"],"with":["15.38","15.40","21.7"],"timeupdate":["15.38","15.40"],"loaded":["15.39","21.9"],"display":["15.39","17.1"],"detailed":["15.39"],"buffering":["15.39"],"cleaned":["15.41"],"up":["15.41"],"destroyed":["15.41"],"scoped":["15.42"],"current":["15.42","20.5","23.3","23.4","26.5"],"preventing":["15.42"],"css":["16.1","18.1","31.11"],"class":["16.1","18.1","20.3"],"determines":["17.1","23.4"],"priority":["17.1"],"dom":["17.1"],"items":["19.1"],"playbackrate":["19.1"],"aspectratio":["19.1"],"width":["19.2","25.36","31.36"],"list":["19.2","22.4"],"onswitch":["19.5"],"completion":["19.6"],"onchange":["19.6"],"change":["19.6"],"yarn":["20.1","26.1"],"utf":["20.3","31.37"],"body":["20.3"],"if":["20.5","22.2","23.2","26.5","28.2","29.2"],"typeof":["20.5","26.5"],"ts":["20.6","21.13","22.7","23.6","25.40"],"file":["20.6","20.11"],"from":["20.8","20.9","20.13","21.8","21.12","21.13","22.7","23.3","23.6","24.2","26.8","26.11","28.1","29.1"],"import":["20.9","21.13","22.7","23.6","24.1","24.2","26.11","29.1"],"let":["20.10","22.2","23.2","28.2","29.2"],"null":["20.10","28.7"],"use":["20.11","21.1"],"which":["20.11"],"compatible":["20.11"],"down":["20.11"],"ie":["20.11","26.11"],"plugins":["20.12","22.5","28.5"],"provide":["20.12","23.0"],"ui":["20.13"],"changing":["20.13"],"therefore":["20.13"],"starting":["20.13"],"and":["21.0","25.5","25.6","25.8","25.22"],"heatmap":["21.0"],"below":["21.1"],"site":["21.1"],"pnpm":["21.2"],"net":["21.3"],"npm":["21.3","27.3"],"plugin":["21.3","21.13","22.4","22.7","23.6","27.2","27.3","27.6","27.8","27.9","27.12","27.13","27.14","27.15","27.16","27.17","27.21"],"omitted":["21.4"],"defaults":["21.4","21.11"],"currenttime":["21.4"],"percentages":["21.5"],"opacity":["21.5"],"ffffff":["21.5"],"comment":["21.5"],"modes":["21.5","27.5"],"visible":["21.5"],"fontsize":["21.5","27.5"],"percentage":["21.5"],"height":["21.5","28.7","29.6","31.36"],"antioverlap":["21.5","27.5"],"synchronousplayback":["21.5","27.5"],"runs":["21.6"],"without":["21.6","21.9","22.5","23.6"],"option":["21.6","25.11"],"its":["21.6","22.3","23.3"],"receiver":["21.6"],"may":["21.6","25.40"],"return":["21.6","23.3"],"strict":["21.7"],"resolving":["21.7"],"sends":["21.7"],"filled":["21.7"],"synchronous":["21.7"],"config":["21.8","21.12"],"partialoption":["21.8"],"merges":["21.8"],"configuration":["21.8"],"hide":["21.8","25.8","25.44"],"hides":["21.8"],"shows":["21.8"],"layer":["21.8","25.29","31.29"],"reset":["21.8"],"clears":["21.8"],"older":["21.9"],"pending":["21.9"],"loads":["21.9"],"cancelled":["21.9"],"promises":["21.9"],"resolve":["21.9"],"owner":["21.9"],"late":["21.9"],"fetch":["21.9"],"response":["21.9"],"emit":["21.9","27.20"],"artplayerplugindanmuku":["21.9","27.20"],"reject":["21.9"],"background":["21.10"],"live":["21.10"],"target":["21.10"],"requires":["21.10","22.5"],"valid":["21.10"],"omitting":["21.10"],"argument":["21.10"],"does":["21.10","22.3","22.6","23.3"],"are":["21.11","22.8","23.7"],"chartwidth":["21.11"],"floor":["21.11"],"chartheight":["21.11"],"05":["21.11","27.20"],"max":["21.11","27.20"],"including":["21.12"],"appends":["21.12"],"original":["21.12","23.3"],"loading":["21.12","25.38"],"scheduling":["21.12"],"handle":["21.12"],"public":["21.12"],"rejections":["21.12"],"separately":["21.12"],"factory":["21.13"],"danmuku":["21.13","27.2","27.6","27.7","27.9","27.10","27.12","27.14","27.15","27.16","27.17","27.19","27.21"],"type":["21.13","27.21"],"runtimeoption":["21.13","27.21"],"point":["21.13","27.21"],"eventmap":["21.13","27.21"],"attach":["22.0"],"sdk":["22.0","23.3","28.0"],"instance":["22.0","23.0"],"at":["22.0","23.0"],"artplayerplugindashcontrol":["22.1","22.2","22.5","28.5"],"usedash":["22.2","28.2"],"supportsmediasource":["22.2","28.2"],"destroydash":["22.2","28.2"],"undefined":["22.2","22.5","23.2","28.2","29.2"],"auto":["22.3","25.38","29.3","31.38"],"fallback":["22.3"],"uses":["22.3","23.3"],"automatic":["22.3"],"selection":["22.3"],"row":["22.3"],"not":["22.3","22.6","22.8","23.3","23.7","25.2","25.5","25.40"],"create":["22.3"],"synthetic":["22.3","23.3"],"completed":["22.4"],"detects":["22.4"],"available":["22.4"],"family":["22.4"],"interface":["22.4","22.7","29.6"],"dash":["22.4","22.7","28.4"],"while":["22.5"],"paused":["22.5"],"subsequent":["22.5"],"explicitly":["22.5"],"initialization":["22.6"],"keeps":["22.6","23.5"],"one":["22.6","23.5","25.21"],"final":["22.6","23.5"],"cleanup":["22.6","23.5"],"listener":["22.6","23.5"],"accumulate":["22.6"],"declarations":["22.7","23.6"],"dashcontrol":["22.7"],"bitrateinkbit":["22.7","28.7"],"track":["22.7","23.3","28.7","29.6"],"string":["22.7","23.3","25.33","25.34","28.7"],"combinations":["22.8"],"those":["22.8"],"tested":["22.8","23.7"],"points":["22.8","23.7"],"blanket":["22.8"],"support":["22.8","25.49"],"range":["22.8"],"artplayerpluginhlscontrol":["23.1","23.2"],"usehls":["23.2","29.2"],"issupported":["23.2","29.2"],"destroyhls":["23.2","29.2"],"playertest":["23.2","29.2"],"longtailvideo":["23.2","29.2"],"gain":["23.3"],"getname":["23.3","29.3"],"item":["23.3","29.3"],"menus":["23.4"],"selected":["23.4"],"choice":["23.4"],"attaching":["23.4"],"replacement":["23.4"],"creating":["23.5"],"next":["23.5"],"updates":["23.5"],"hls":["23.5","23.6","29.5"],"needs":["23.6"],"works":["23.6"],"importing":["23.6"],"hlscontrol":["23.6"],"workers":["23.7"],"these":["23.7"],"newly":["23.7"],"declared":["23.7"],"core":["24.0"],"will":["24.0","25.15","25.16","25.22"],"no":["24.0","24.1"],"longer":["24.0"],"bundle":["24.0"],"manual":["24.1"],"dist":["24.2","26.12"],"group":["24.2"],"id":["24.2"],"sometimes":["25.2","25.40"],"known":["25.2"],"immediately":["25.2"],"such":["25.2"],"cases":["25.2"],"memory":["25.3"],"autoplayback":["25.3"],"initialized":["25.5"],"resulting":["25.11"],"black":["25.11"],"bars":["25.11"],"adjusts":["25.11"],"scrolls":["25.12"],"out":["25.12"],"currently":["25.14","25.49"],"appears":["25.14","25.26"],"appear":["25.15","25.16"],"panel":["25.18","25.22","25.25"],"button":["25.20","25.23","25.24"],"bottom":["25.20","25.23","25.24"],"simultaneously":["25.21"],"whether":["25.21"],"context":["25.22"],"menu":["25.22"],"apply":["25.22"],"loses":["25.26"],"focus":["25.26"],"pre":["25.27"],"render":["25.27"],"required":["25.27"],"mobile":["25.28","25.44","25.45","25.48"],"devices":["25.28","25.44"],"boolean":["25.33"],"myplugin":["25.35","31.35"],"column":["25.36"],"columns":["25.36"],"encoding":["25.37","31.37"],"better":["25.38"],"experience":["25.38"],"more":["25.38"],"attributes":["25.38"],"e":["25.40"],"g":["25.40"],"m3u8":["25.40"],"mkv":["25.40"],"however":["25.40"],"have":["25.40"],"programs":["25.41"],"processing":["25.41"],"receive":["25.41"],"three":["25.41"],"en":["25.42"],"zh":["25.42","30.2"],"cn":["25.42","31.42"],"fast":["25.46"],"forward":["25.46"],"web":["25.48"],"based":["25.48"],"browsers":["25.49"],"htmlvideoelement":["25.51"],"example":["25.51"],"demo":["26.3"],"meta":["26.3"],"charset":["26.3"],"ref":["26.4"],"时会自动导入的":["26.6"],"param":["26.10"],"getinstance":["26.10"],"可以兼容到":["26.11"],"和所有插件还会提供一个":["26.12"],"版本的":["26.12"],"mjs":["26.12"],"如":["26.12"],"globalthis":["26.13"],"custom":["26.13"],"agent":["26.13"],"全局变量":["26.13"],"本文描述当前重构分支":["27.0"],"弹幕时间":["27.4"],"单位秒":["27.4"],"省略时为当前播放器时间加":["27.4"],"秒":["27.4"],"滚动":["27.5"],"顶部":["27.5"],"底部":["27.5"],"弹幕可见的模式":["27.5"],"弹幕字体大小":["27.5"],"弹幕是否防重叠":["27.5"],"libs":["27.6","27.8","27.12","27.16"],"uncompiled":["27.6","27.8","27.9","27.12","27.13","27.14","27.16","27.17"],"保存到数据库":["27.6"],"savedanmu":["27.6"],"danmu":["27.6"],"load":["27.19"],"返回的":["27.19"],"完成后得到内部":["27.19"],"对象":["27.19"],"绘制自定义数据使用":["27.20"],"每项为":["27.20"],"x":["27.20"],"默认":["27.20","28.3","29.3","31.37"],"你负责创建":["28.0"],"绑定":["28.0"],"还需播放器配置":["28.3"],"title":["28.3"],"菜单标题":["28.3"],"或":["28.3"],"风格":["28.4"],"getbitrateinfolistfor":["28.4"],"getqualityfor":["28.4"],"且没有后续":["28.5"],"事件":["28.5"],"可以手动刷新":["28.5"],"完整示例先销毁被替换的":["28.6"],"在初始化前赋值新实例":["28.6"],"每个播放器只注册一个最终清理监听器":["28.6"],"本地自适应媒体和新旧核心组合验证":["28.8"],"这两个版本是验证点":["28.8"],"不是新定义的完整支持范围":["28.8"],"播放器添加画质与音轨菜单":["29.0"],"插件控制你放在":["29.0"],"音轨默认":["29.3"],"当前项未知时的文字":["29.3"],"画质还用于自动选项":["29.3"],"音轨不会因此新增一个虚拟":["29.3"],"轨道":["29.3"],"状态":["29.4"],"把替换后的实例绑定到同一个":["29.4"],"并赋给":["29.4"],"前销毁旧实例":["29.5"],"再更新":["29.5"],"每个播放器只保留一个最终清理监听器":["29.5"],"bitrate":["29.6"],"版本开始":["30.0"],"核心代码除了包含":["30.0"],"zhtw":["30.2"],"tw":["30.2"],"高亮元素":["31.6"],"上":["31.6"],"类似":["31.11"],"的":["31.11"],"fit":["31.11"],"里":["31.14","31.15","31.16","31.25"],"音量条等浮层会应用":["31.22"],"filter":["31.22"],"毛玻璃效果":["31.22"],"看起来更通透":["31.22"],"访问到播放器所需的":["31.27"],"画质地址":["31.33"],"预览图列数":["31.36"],"预览图宽度":["31.36"],"预览图高度":["31.36"],"scale":["31.36"],"字幕样式":["31.37"],"字幕编码":["31.37"],"以提升加载体验":["31.38"],"更多视频属性":["31.38"],"这些属性将直接写入视频元素里":["31.38"],"所以需要特别指明":["31.40"],"元素":["31.41"],"视频地址":["31.41"],"当前实例":["31.41"],"dom元素":["31.51"]},{"0":["19.6"],"1":["3.29","9.3","13.29","19.3","21.4"],"2":["3.29","9.6","19.6","20.13","21.4","31.3"],"3":["9.6"],"4":["9.1","20.13","22.4","24.1","25.17","25.34","25.50","26.10","31.5","31.7","31.8","31.9","31.13","31.17","31.21","31.25","31.26","31.33","31.34","31.40","31.42","31.45","31.46"],"5":["13.14","13.25","20.13","22.4","28.4"],"6":["2.41","5.42","5.43","12.1","12.3","12.4","12.5","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","26.10"],"7":["5.4","5.6","5.7","5.10","5.17","5.18","5.19","5.24","5.38","5.39","5.40","12.19","12.21","12.23","12.25","12.26","15.10","25.39"],"8":["5.9","5.15","5.25","5.27","5.30","5.41","12.17","15.1","15.9","15.14","15.21","15.25","15.30","15.31","15.32","15.34","15.35","15.36","15.41","25.37","26.3","31.37"],"9":["5.11","5.13","15.11","15.13","15.23","25.4"],"10":["5.8","5.41","7.3","7.4","12.2","12.6","12.18","12.24","15.8","15.12","15.41","17.3","17.4","19.6"],"11":["15.3","15.21","20.11"],"14":["31.33"],"22":["9.9","19.9"],"25":["25.34","31.34"],"40":["3.7"],"100":["3.10","21.13"],"150":["9.4","19.4"],"300":["3.5","3.6"],"500":["3.8","3.9","3.17"],"512":["21.5","27.5"],"1000":["13.15","27.6"],"3000":["13.16"],"实例":["0.0","5.0"],"artplayer":["0.1","0.3","0.5","0.6","0.8","0.9","0.10","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.19","2.20","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","3.1","3.3","3.4","3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.15","3.16","3.17","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.28","3.31","3.32","3.33","5.1","5.2","5.3","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.16","5.18","5.19","5.20","5.21","5.22","5.25","5.28","5.30","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.41","5.44","5.46","5.47","9.1","9.2","9.5","10.3","10.4","10.5","10.6","10.7","10.14","10.17","12.2","12.6","12.17","12.18","12.20","12.22","12.24","12.28","12.29","12.30","12.31","13.5","13.6","13.7","13.8","13.9","13.28","13.29","13.30","15.2","15.3","15.5","15.20","15.22","15.28","15.33","15.34","15.37","15.41","15.44","15.46","15.47","19.5","20.2","21.6","25.4","25.7","25.17","25.31","25.39","26.2","26.13","30.1","31.10","31.19","31.31","31.34","31.39","31.40","31.47","31.50"],"container":["0.1","0.5","0.6","0.7","0.8","0.9","0.10","0.13","0.15","0.16","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","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.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","5.2","5.3","5.9","5.11","5.13","5.14","5.16","5.20","5.21","5.22","5.23","5.28","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.41","5.44","5.46","5.47","9.2","9.5","10.1","10.3","10.4","10.5","10.6","10.7","10.14","10.17","12.2","12.20","12.22","12.28","12.29","12.30","12.31","15.2","15.20","15.22","15.28","15.41","15.44","15.46","19.5","20.9","21.10","24.3","25.4","25.7","25.17","25.31","25.39","27.6","27.10","27.12","27.13","30.1","30.2","31.10","31.19","31.31","31.34","31.39","31.47"],"app":["0.1","0.3","0.5","0.6","0.7","0.8","0.9","0.10","0.16","0.17","2.2","2.6","2.17","2.18","2.20","2.22","2.24","2.28","2.29","2.30","2.31","5.12","5.16","5.20","5.22","5.23","5.28","5.33","5.34","5.44","9.5","10.1","10.4","10.5","10.6","10.14","12.31","15.20","15.22","15.28","15.33","15.41","15.44","19.5","20.3","20.5","24.3","24.4","25.4","25.7","25.10","25.31","25.32","25.39","25.43","26.9","27.6","27.10","27.12","27.13","27.14","30.2","30.3","31.1","31.19","31.31","31.32","31.39","31.47"],"assets":["0.2","0.6","0.7","0.10","0.14","0.16","0.17","2.2","2.22","2.28","2.31","5.12","5.23","5.44","9.5","10.1","10.4","10.6","10.14","15.12","15.16","15.20","15.22","15.33","24.4","25.1","25.4","25.7","25.10","25.19","25.31","25.32","25.43","26.9","27.6","27.10","27.11","27.12","27.13","27.14","30.2","30.3","30.4","31.1","31.4","31.31","31.32"],"sample":["0.2","0.6","0.14","0.16","0.17","2.2","2.28","5.12","5.23","9.5","9.7","10.1","10.4","10.6","10.14","15.12","15.16","15.20","15.22","15.33","15.45","19.7","24.4","25.1","25.4","25.7","25.10","25.19","25.31","25.32","25.43","25.47","26.9","27.6","27.11","27.12","27.13","27.14","30.2","30.4","31.4","31.32"],"video":["0.2","0.14","0.16","0.17","5.12","7.4","8.4","9.5","9.7","10.4","10.6","10.14","15.20","15.22","15.45","17.4","18.4","19.7","21.5","22.5","23.4","24.4","25.1","25.10","25.19","25.29","25.30","25.32","25.43","25.47","25.48","25.51","27.11","27.12","27.13","27.14","28.0","28.5","30.2","30.4","31.4","31.29","31.30","31.32","31.43"],"mp4":["0.2","0.14","0.17","5.12","5.45","6.2","7.4","8.4","9.5","9.7","10.4","10.14","15.12","15.16","15.20","15.33","15.45","16.2","17.4","18.4","19.7","25.1","25.4","25.10","25.19","25.29","25.30","25.32","25.43","25.47","27.11","27.12","27.13","27.14","30.2","30.4","31.4","31.29","31.30","31.43"],"console":["0.2","0.4","1.6","7.2","10.2","11.6","15.16","17.2","25.35","27.18","31.35"],"info":["0.2","0.4","1.1","7.2","10.2","11.6","17.2","25.35","27.18","31.35"],"queryselector":["0.3","5.41","10.3","15.41","25.1","31.1"],"art":["0.3","0.8","0.9","0.11","0.13","0.15","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.13","2.14","2.15","2.19","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.40","2.41","3.5","3.6","3.7","3.30","5.1","5.2","5.3","5.6","5.7","5.8","5.9","5.10","5.14","5.15","5.17","5.18","5.19","5.21","5.24","5.25","5.27","5.30","5.31","5.32","5.34","5.35","5.36","5.37","5.39","5.46","5.47","9.1","9.2","10.4","10.6","10.7","10.12","10.14","10.17","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.15","12.16","12.17","12.18","12.20","12.21","12.22","12.23","12.24","12.26","12.27","12.28","12.29","12.30","12.39","12.40","12.41","15.1","15.2","15.3","15.8","15.9","15.10","15.14","15.23","15.28","15.31","15.32","15.34","15.35","15.36","15.37","15.46","15.47","19.2","19.5","21.11","23.4","24.2","25.4","25.17","25.35","25.39","25.50","27.6","27.7","27.9","27.10","27.12","27.15","27.17","28.0","31.5","31.7","31.10","31.17","31.33","31.34","31.40","31.50"],"new":["0.3","0.5","0.8","0.9","0.10","0.11","0.13","0.15","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.19","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.5","3.30","5.1","5.2","5.3","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.16","5.17","5.18","5.19","5.20","5.21","5.22","5.25","5.27","5.28","5.30","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.46","5.47","9.1","9.2","9.5","10.4","10.5","10.6","10.7","10.14","10.17","12.2","12.6","12.7","12.8","12.10","12.17","12.18","12.20","12.22","12.24","12.26","12.28","12.29","12.30","12.31","15.1","15.2","15.3","15.22","15.23","15.28","15.32","15.34","15.35","15.37","15.44","15.46","15.47","19.5","23.5","25.4","25.17","25.39","27.6","27.9","27.10","27.12","27.13","27.15","27.17","30.1","30.2","31.7","31.10","31.19","31.34","31.39","31.40","31.47","31.50"],"url":["0.6","0.7","0.9","0.10","0.14","0.16","0.17","2.2","2.18","2.22","2.24","2.28","2.29","2.30","2.31","5.20","5.23","5.33","5.44","8.4","9.5","10.1","10.4","10.5","10.6","10.14","15.20","15.22","15.33","15.44","18.4","24.3","24.4","25.1","25.4","25.7","25.10","25.19","25.31","25.32","25.41","25.43","26.9","27.6","27.10","27.11","27.12","27.13","27.14","28.2","30.2","30.3","30.4","31.1","31.4","31.31","31.32","31.39","31.47"],"js":["0.11","0.12","1.6","3.1","3.4","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.31","3.32","3.33","5.4","5.6","5.7","5.15","5.24","5.26","5.30","5.38","5.39","5.40","5.42","5.43","9.2","10.3","10.7","10.17","11.6","12.1","12.3","12.4","12.5","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.18","12.19","12.21","12.23","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.22","13.28","13.29","13.30","15.7","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.23","15.25","15.27","15.30","15.31","15.32","15.34","15.35","15.36","15.41","15.43","15.47","19.2","19.5","22.4","24.1","25.13","25.17","25.25","25.34","25.42","25.50","27.8","27.16","29.4","31.3","31.5","31.8","31.9","31.12","31.13","31.14","31.15","31.16","31.17","31.18","31.20","31.21","31.23","31.24","31.25","31.26","31.27","31.28","31.33","31.40","31.42","31.44","31.45","31.46","31.48","31.49"],"var":["0.11","0.12","1.1","2.41","3.5","3.6","3.7","3.17","3.30","5.1","5.6","5.7","5.8","5.9","5.10","5.11","5.13","5.15","5.17","5.18","5.19","5.21","5.24","5.25","5.27","5.30","5.38","5.39","5.40","5.41","5.43","5.47","9.1","9.2","10.3","10.4","10.6","10.7","10.17","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.23","12.24","12.25","12.26","12.27","12.28","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","15.1","15.2","15.3","15.8","15.9","15.10","15.14","15.23","15.25","15.28","15.31","15.32","15.34","15.35","15.36","15.37","15.41","15.46","15.47","19.2","19.5","24.1","24.2","25.4","25.17","25.34","25.39","25.50","27.6","27.7","27.9","27.15","27.16","27.17","31.3","31.5","31.7","31.17","31.25","31.33","31.34","31.40","31.50"],"function":["0.14","6.5","16.5","17.1","20.10","31.37"],"构造函数":["1.0"],"code":["1.11","3.34","5.5","5.26","5.29","9.6","10.3","11.1","13.1","13.2","13.3","13.4","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.31","13.32","13.33","15.6","15.7","15.11","15.13","15.17","15.18","15.19","15.23","15.24","15.30","15.38","15.39","15.40","19.1","19.2","19.5","20.11","21.6","25.3","25.5","25.9","25.25","25.28","25.33","25.34","25.40","25.42","25.45","26.11","27.1","27.20","31.6","31.11","31.14","31.15","31.16","31.22","31.27","31.36","31.38","31.41","31.51"],"once":["2.0","23.5"],"不必停下来进一步缓冲内容":["2.42"],"media":["2.46","2.47","12.43","12.48","28.2"],"已经加载完成":["2.46"],"操作完成":["2.56"],"操作开始":["2.57"],"agent":["2.58"],"的":["3.0"],"false":["3.3","3.34","20.5","21.5","26.5","27.14"],"div":["3.34","5.5","5.29","9.6","10.3","10.13","10.15","11.1","11.2","11.3","11.4","11.7","11.8","11.11","11.12","13.1","13.12","13.13","13.14","13.15","13.16","13.24","13.25","13.27","13.31","13.33","15.4","15.15","15.17","15.26","15.38","15.39","15.40","15.42","19.1","19.2","20.5","21.6","21.10","25.3","25.5","25.6","25.8","25.12","25.14","25.15","25.16","25.18","25.20","25.23","25.24","25.26","25.33","25.40","25.44","25.45","25.46","25.49","25.51","26.3","26.5","27.20","31.11","31.22","31.36"],"classname":["3.34","5.5","5.29","9.6","10.3","11.1","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","13.1","13.12","13.13","13.14","13.15","13.16","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.33","15.15","15.17","15.26","15.38","15.39","15.40","19.1","19.2","21.6","25.3","25.5","25.6","25.8","25.12","25.14","25.15","25.16","25.18","25.20","25.23","25.24","25.26","25.28","25.33","25.40","25.44","25.45","25.46","25.49","27.20","31.11","31.22","31.36","31.41"],"run":["3.34","5.5","5.26","5.29","9.6","10.3","11.1","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.12","13.1","13.2","13.4","13.6","13.7","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","15.6","15.11","15.13","15.15","15.17","15.18","15.19","15.24","15.30","15.38","15.39","15.40","19.1","19.2","19.5","21.6","25.3","25.5","25.6","25.8","25.12","25.20","25.23","25.24","25.25","25.28","25.33","25.40","25.42","25.45","25.46","25.49","27.20","31.11","31.22","31.27","31.36","31.38","31.41"],"add":["4.0","6.3","8.3","14.0","16.3","18.3","20.1","23.5","26.1","27.2"],"例如我想写一个在视频暂停后":["4.0"],"显示一个图片广告的插件":["4.0"],"on":["5.12","15.12","15.16","15.33","22.6"],"播放器当前可见宽高":["5.29"],"document":["5.41","10.3","15.41","27.16","31.1"],"default":["5.45","7.5","15.45","17.5","19.3","21.10","21.11","26.10"],"true":["5.45","7.5","9.7","13.31","15.4","15.45","17.5","19.7","21.13","22.2","22.7","23.2","25.4","25.10","25.30","25.47","27.21","28.2","28.7","29.2","31.4","31.30","31.37"],"html":["5.45","6.1","6.2","6.3","6.4","6.5","7.3","7.5","8.1","8.2","8.3","8.5","9.8","15.45","16.1","16.2","16.3","16.4","16.5","17.3","17.5","18.1","18.2","18.3","18.5","19.8","25.29","25.30","25.37","26.13","31.29","31.30","31.37"],"sd":["5.45","15.45"],"480p":["5.45","15.45"],"组件索引":["6.1","8.1"],"用于显示的优先级":["6.1","8.1"],"contextmenu":["6.2","6.3","16.2","16.3"],"name":["6.2","6.3","6.4","7.3","7.4","8.2","8.3","8.4","8.5","9.8","15.29","16.2","16.3","16.4","17.3","17.4","18.2","18.3","18.4","18.5","19.8","23.2","23.3","25.29","25.35","29.3","29.6","31.29","31.35"],"your":["6.2","6.3","6.4","6.5","7.3","16.2","16.3","16.4","16.5","17.3","25.47","31.43"],"menu":["6.2","6.3","6.4","6.5","16.2","16.3","16.4","16.5","25.14","25.15","25.16"],"click":["6.4","6.5","16.4","16.5","17.1"],"args":["6.5","16.5"],"组件的":["7.1"],"dom":["7.1","25.41","25.51"],"元素":["7.1"],"style":["7.1","8.2","8.3","8.5","18.2","18.3","18.5","19.3","20.4","22.4","25.29"],"object":["7.1","17.1"],"mounted":["7.2","17.2","25.27"],"subtitle":["7.2","7.5","17.2","17.5"],"button1":["7.3","7.4","17.3","17.4"],"index":["7.3","7.4","17.3","17.4","27.8","29.3"],"position":["7.3","17.3"],"left":["7.3","17.3"],"controls":["7.4","17.4","21.5","22.0","22.2","23.2","28.2","29.2"],"right":["7.5","17.5"],"selector":["7.5","17.5","25.30","31.30"],"01":["7.5","17.5","19.3","19.4"],"layers":["8.2","8.3","8.4","8.5","18.2","18.3","18.4","18.5"],"potser":["8.2","8.3","8.5","18.2","18.3","18.5","25.29","31.29"],"width":["8.2","8.3","8.5","9.4","9.9","18.2","18.3","18.5","19.4","19.9","21.5","25.29","27.5"],"100px":["8.2","8.3","8.5","18.2","18.3","18.5"],"src":["8.2","8.5","9.9","18.2","18.5","19.9"],"color":["9.3","19.3"],"red":["9.3","19.3"],"srt":["9.3","19.3"],"id":["9.3","19.3","25.47"],"yellow":["9.3"],"02":["9.3"],"setting":["9.5","9.7","19.7","22.2","23.2","25.30","28.2","29.2","31.30"],"max":["9.6","19.6"],"step":["9.6"],"settings":["9.8","19.8","22.2","23.2","29.2"],"slider":["9.8","19.8"],"tooltip":["9.8","19.8"],"5x":["9.8","19.8"],"icon":["9.8","19.8"],"img":["9.9","19.9"],"height":["9.9","19.9","23.3","25.36"],"state":["9.9","13.34","19.9"],"svg":["9.9","19.9"],"secondary":["10.0"],"custom":["10.3"],"test":["10.4"],"foo":["10.4"],"bar":["10.4","13.33","25.18","25.20","25.23","25.24","25.44"],"const":["10.4","20.8","20.9","21.13","22.7","23.6","26.8","27.21","28.7","29.6"],"set":["10.8","10.9","10.10","25.2"],"whether":["10.8","10.9","10.10","10.16","25.37"],"all":["10.8","10.9","10.10","10.16","13.0"],"are":["10.8","13.34"],"displayed":["10.8","21.8"],"toggle":["10.8","10.9","10.10","10.16"],"display":["10.9","10.10","10.16","16.1","18.1","21.7"],"options":["10.11"],"texttrack":["10.11"],"gets":["10.11"],"text":["10.11"],"track":["10.11","22.3","23.6"],"activecues":["10.11"],"list":["10.11","23.3"],"via":["10.12"],"show":["10.12","22.2","23.2","27.19","28.2","29.2"],"triggered":["10.12"],"event":["10.12","17.1"],"is":["10.12","12.42","13.15","20.6","23.5","25.26","25.27"],"named":["10.12"],"of":["10.13","10.15","12.49","12.62","13.34"],"first":["11.0","15.0"],"level":["11.0","15.0","22.3","23.2","29.3"],"players":["11.1","13.34"],"simultaneously":["11.1"],"there":["12.42"],"not":["12.42","15.15","21.8","21.10","23.0","23.5"],"rendering":["12.44","21.11"],"value":["12.45","19.6","21.11"],"when":["12.46","15.5","21.5"],"because":["12.47","12.62"],"the":["12.47","12.54","20.3","21.7","25.38","28.2","29.2"],"data":["12.48","21.6","26.10","27.20"],"or":["12.48","21.6","23.0"],"been":["12.50","12.51","12.53"],"begun":["12.52"],"having":["12.53"],"rate":["12.55"],"operation":["12.56","12.57"],"to":["12.58","21.8","22.5","23.4","25.11","25.21","25.37"],"fetch":["12.58"],"loading":["12.59"],"by":["12.60"],"has":["12.61"],"constructor":["13.0"],"property":["13.0","20.10"],"off":["13.1"],"effects":["13.33"],"frequently":["13.34"],"created":["13.34","21.10"],"destroyed":["13.34","23.5"],"if":["13.34","21.11","22.5"],"you":["13.34","25.1","25.2"],"wish":["13.34"],"preserve":["13.34"],"for":["14.0","22.1","22.8","23.1"],"example":["14.0"],"let":["14.0"],"after":["15.4"],"destruction":["15.4"],"defaults":["15.4"],"note":["15.5","20.3"],"global":["15.5","20.13"],"configuration":["15.5","21.12"],"remove":["15.5"],"destroy":["15.5","20.5","21.10","22.6","23.0","23.5","26.5","28.6"],"will":["15.5"],"also":["15.5"],"ready":["15.12","15.16"],"seek":["15.12","22.8"],"settimeout":["15.12","27.6"],"does":["15.15","21.8","23.0"],"trigger":["15.15"],"additional":["15.15"],"events":["15.15"],"fullscreen":["15.26"],"fullscreenweb":["15.26"],"webpage":["15.26"],"in":["15.29","28.2","29.2"],"domrect":["15.29"],"player":["15.29"],"s":["15.29","21.1","22.5"],"current":["15.29","21.0","21.9"],"errors":["15.42"],"with":["15.42","22.3"],"duplicate":["15.42"],"class":["15.42"],"names":["15.42"],"priority":["16.1","18.1"],"element":["16.1","25.41","25.51"],"handler":["17.1"],"subtitleoffset":["19.1"],"span":["19.3"],"min":["19.6"],"npm":["20.2","26.2"],"dist":["20.2","20.12","21.3","26.2","27.3"],"warning":["20.3","21.9","25.47"],"option":["20.4","21.9","21.13","26.4","27.21"],"get":["20.4","23.2"],"return":["20.5","22.3","25.35","26.5","26.10","27.6","31.35"],"ref":["20.5","26.5"],"param":["20.10"],"getinstance":["20.10"],"import":["20.11"],"from":["20.11","22.3"],"group":["20.11","26.11"],"bash":["20.11","26.11"],"jsdelivr":["20.11","26.11"],"net":["20.11","22.2","26.11","28.2"],"mjs":["20.12"],"format":["20.12"],"such":["20.12"],"as":["20.12"],"version":["20.13"],"variable":["20.13"],"globalthis":["20.13"],"user":["20.13"],"this":["21.0","21.5","25.49"],"guide":["21.0"],"describes":["21.0"],"refactor":["21.0"],"local":["21.1"],"plugin":["21.1","21.6","22.0","22.8","26.12"],"danmuku":["21.3","26.12","27.3","27.8"],"mode":["21.4","27.4"],"scrolling":["21.4"],"top":["21.4"],"bottom":["21.4","25.18","25.44"],"follow":["21.5"],"playbackrate":["21.5"],"enabled":["21.5"],"mount":["21.5","21.8","27.5"],"undefined":["21.5","27.5","28.5"],"center":["21.5"],"heatmap":["21.5","21.13","27.5","27.21"],"enable":["21.5"],"construction":["21.5"],"below":["21.5"],"input":["21.5"],"directly":["21.6","25.38"],"asynchronously":["21.6","25.2"],"libs":["21.6","27.20"],"uncompiled":["21.6"],"truthy":["21.7"],"result":["21.7"],"adds":["21.7"],"queue":["21.7"],"item":["21.7","22.3"],"including":["21.7"],"awaited":["21.7"],"permits":["21.7"],"normal":["21.7"],"functions":["21.7"],"receive":["21.7"],"items":["21.8"],"waiting":["21.8"],"delete":["21.8"],"target":["21.8"],"moves":["21.8"],"panel":["21.8","25.14","25.15","25.16"],"an":["21.8","25.51"],"existing":["21.8","23.4","25.51"],"corresponding":["21.9"],"public":["21.9"],"promise":["21.9"],"handle":["21.9"],"rejection":["21.9"],"await":["21.9"],"try":["21.9"],"catch":["21.9"],"initial":["21.9"],"automatic":["21.9"],"observes":["21.9"],"logs":["21.9"],"invalid":["21.9"],"leaves":["21.9"],"select":["21.10"],"releases":["21.10","22.0"],"application":["21.10"],"owns":["21.10"],"any":["21.10","24.0"],"it":["21.10","23.0"],"send":["21.11"],"emit":["21.11"],"artplayerplugindanmuku":["21.11","27.11","27.13","27.14","27.18"],"x":["21.11"],"pairs":["21.11"],"axis":["21.11"],"uses":["21.11"],"pixels":["21.11"],"seconds":["21.11"],"explicitly":["21.11","25.40"],"supplying":["21.11"],"another":["21.11"],"range":["21.11","23.7"],"start":["21.12"],"no":["21.12","22.3"],"starts":["21.12"],"stop":["21.12"],"stops":["21.12"],"hide":["21.12","25.11","27.19"],"layer":["21.12"],"points":["21.13","27.5"],"that":["22.0","22.5"],"its":["22.0"],"own":["22.0"],"script":["22.1","23.1"],"tags":["22.1","23.1","25.37"],"load":["22.1","22.6","23.1","27.20"],"axprod":["22.2","28.2"],"testvectors":["22.2","28.2"],"v7":["22.2","28.2"],"clear":["22.2","28.2"],"manifest":["22.2","28.2"],"1080p":["22.2","28.2"],"mpd":["22.2","28.2"],"plugins":["22.2","23.2","27.11","27.13","27.14","27.18","28.2","29.2"],"quality":["22.2","23.2","28.2","28.7","29.2"],"choices":["22.2","23.2","28.2","29.2"],"getname":["22.3","22.7","23.2","28.3","28.7"],"string":["22.3","23.6","29.6"],"original":["22.3"],"sdk":["22.3","29.3"],"receives":["22.3"],"one":["22.3"],"argument":["22.3"],"receiver":["22.3"],"getbitrateinfolistfor":["22.4"],"getqualityfor":["22.4"],"setqualityfor":["22.4","28.4"],"qualityindex":["22.4","28.4"],"getrepresentationsbytype":["22.4","28.4"],"getcurrentrepresentationfortype":["22.4"],"dash":["22.5","28.5"],"be":["22.5","25.38"],"attached":["22.5"],"throw":["22.5"],"contract":["22.5"],"met":["22.5"],"assigning":["22.5","23.4"],"different":["22.5"],"every":["22.6"],"engines":["22.6"],"again":["22.6"],"at":["22.6","25.21"],"end":["22.6"],"null":["22.7"],"p":["22.7","23.3"],"includes":["22.8"],"targeted":["22.8"],"paused":["22.8"],"recovery":["22.8"],"download":["23.0"],"create":["23.0"],"adaptive":["23.2","29.2"],"elephants":["23.2","29.2"],"dream":["23.2","29.2"],"v4":["23.2","29.2"],"m3u8":["23.2","29.2"],"label":["23.3"],"call":["23.3"],"omits":["23.3"],"calls":["23.3"],"include":["23.3"],"without":["23.3"],"formatter":["23.3"],"labels":["23.3"],"use":["23.3","23.4"],"lang":["23.3","23.6","25.43","29.6","31.43"],"then":["23.3"],"instance":["23.4","23.5"],"same":["23.4"],"hls":["23.4","29.4"],"synchronous":["23.4"],"method":["23.4"],"per":["23.5"],"each":["23.5"],"do":["23.5"],"a":["23.5","25.21"],"interface":["23.6"],"number":["23.6"],"bitrate":["23.6"],"firefox":["23.7","29.7"],"grouped":["23.7"],"stream":["23.7"],"crashes":["23.7"],"separate":["23.7"],"switching":["23.7"],"languages":["24.0"],"other":["24.0"],"than":["24.0"],"simplified":["24.0"],"chinese":["24.0"],"and":["24.0","25.14","25.15","25.16","25.26","25.48"],"english":["24.0"],"required":["24.1"],"zhtw":["24.2"],"zh":["24.2"],"tw":["24.2"],"may":["25.1"],"can":["25.2","25.27"],"muted":["25.4","31.4"],"yet":["25.5"],"playing":["25.5","25.26"],"highlighted":["25.6"],"elements":["25.6"],"playback":["25.8"],"time":["25.8","25.21"],"size":["25.11"],"browser":["25.12"],"viewport":["25.12","25.48"],"context":["25.14","25.15","25.16"],"control":["25.18","25.20","25.23","25.24","25.44"],"allowed":["25.21"],"play":["25.21","31.43"],"filter":["25.22","27.5"],"frosted":["25.22"],"glass":["25.22"],"more":["25.22"],"transparent":["25.22"],"look":["25.22"],"however":["25.22"],"access":["25.27"],"setting01":["25.30","31.30"],"scale":["25.36"],"utf":["25.37","26.3"],"escape":["25.37","31.37"],"boolean":["25.37","31.37"],"these":["25.38"],"written":["25.38"],"into":["25.38"],"correct":["25.40"],"so":["25.40"],"specified":["25.40"],"parameters":["25.41"],"devices":["25.45","25.46"],"mobile":["25.46"],"dimensions":["25.48"],"feature":["25.49"],"body":["26.3"],"属性":["26.10"],"export":["26.10"],"https":["26.11"],"head":["26.13"],"title":["26.13"],"runtime":["27.0"],"yarn":["27.2"],"显式":["27.4"],"保留":["27.4"],"是否同步播放速度":["27.5"],"弹幕发射器挂载点":["27.5"],"默认为播放器控制栏中部":["27.5"],"是否开启热力图":["27.5"],"当播放器宽度小于此值时":["27.5"],"弹幕发射器置于播放器底部":["27.5"],"保留的配置字段":["27.5"],"绘制自定义数据请发送":["27.5"],"事件":["27.5"],"resolve":["27.6"],"xml":["27.14","27.18"],"emitter":["27.14"],"danmu":["27.16","27.18"],"createelement":["27.16"],"visible":["27.18"],"显示弹幕":["27.18"],"config":["27.19"],"reset":["27.19"],"同步返回同一个内部对象":["27.19"],"它与注册在":["27.19"],"是图表像素坐标":["27.20"],"不是秒":["27.20"],"渲染会修改内层数组的第二项":["27.20"],"保留原数据时请复制每一对坐标":["27.20"],"配置中的":["27.20"],"字段仅存储":["27.20"],"不会自动绘图":["27.20"],"resize":["27.20"],"或成功":["27.20"],"会恢复自动曲线":["27.20"],"需要自定义曲线时可在这些事件后重新发送":["27.20"],"并赋给":["28.0"],"artplayerplugindashcontrol":["28.1"],"auto":["28.3"],"回退文字":["28.3"],"画质还用于自动选项":["28.3"],"不会新增一个虚拟音轨":["28.3"],"同步返回":["28.5"],"要求":["28.5"],"已绑定到播放器的":["28.5"],"否则可能抛错":["28.5"],"不在每次加载时累积新的":["28.6"],"回调":["28.6"],"也不在最后重复销毁旧实例":["28.6"],"插件对4":["28.8"],"2暂停拖动后空缓冲指标陈旧的问题有定向恢复":["28.8"],"保留调用方":["28.8"],"上的":["29.0"],"artplayerpluginhlscontrol":["29.1"],"根据原始":["29.3"],"档位或轨道对象返回字符串":["29.3"],"当前标签调用没有":["29.3"],"列表调用带有索引":["29.3"],"省略画质回调时":["29.3"],"标签取":["29.3"],"后":["29.4"],"如需立即刷新":["29.4"],"可以调用已有同步方法":["29.4"],"每个":["29.5"],"实例只销毁一次":["29.5"],"不要在每次加载时累积新的播放器":["29.5"],"这两个版本是验证点":["29.7"],"不是新定义的支持范围":["29.7"],"的分组播放崩溃和另一项切组停滞仍在排查":["29.7"],"简体中文":["30.0"],"和":["30.0"],"英文":["30.0"],"有时候":["31.2"],"地址没那么快知道":["31.2"],"这时候你可以异步设置":["31.2"],"cover":["31.11"],"但在部分低性能设备或老旧浏览器上可能会有性能或兼容性问题":["31.22"],"预览图缩放":["31.36"],"是否转义":["31.37"],"标签":["31.37"],"默认为":["31.37"],"onvttload":["31.37"],"用于修改":["31.37"]},{"0":["15.12","26.9"],"1":["3.25","9.9","19.9","27.4"],"2":["3.26","9.3","13.29","19.3","25.3"],"3":["3.28","13.28","19.6","31.1"],"4":["3.28","13.28","19.1","20.10","25.5","25.8","25.9","25.13","25.23","25.24","25.25","25.28","25.33","25.36","25.40","25.42","25.45","25.46","25.49","31.6","31.11","31.12","31.14","31.15","31.16","31.18","31.20","31.22","31.23","31.24","31.28","31.36","31.37","31.38","31.41","31.44","31.48","31.49","31.51"],"5":["3.23","3.29","9.9","13.29","19.9","25.7"],"6":["3.29","13.29","15.43","20.10","25.2","31.2"],"7":["5.29","15.6","15.7","15.17","15.18","15.19","15.24","15.38","15.39","15.40","31.27","31.38"],"8":["5.26","15.15","15.26","15.27","25.36","26.13","31.36","31.41"],"9":["5.5"],"10":["3.12","3.14","3.27","5.12","9.9","19.9","21.13","27.21"],"14":["25.33"],"20":["3.11"],"22":["9.5"],"40":["13.7"],"100":["13.10","27.21"],"300":["13.5","13.6"],"500":["3.21","13.8","13.9","13.17"],"2000":["3.22","3.24","13.22"],"3000":["3.15","15.12"],"5000":["3.4","3.13","3.16"],"的":["0.0","0.4","1.0","5.0"],"url":["0.1","0.3","0.5","0.8","0.12","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.19","2.20","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.5","3.30","5.1","5.2","5.3","5.8","5.9","5.13","5.14","5.15","5.16","5.17","5.18","5.19","5.21","5.22","5.25","5.28","5.30","5.31","5.32","5.34","5.35","5.36","5.37","5.46","5.47","9.1","9.2","9.6","10.3","10.7","10.17","12.2","12.6","12.7","12.8","12.10","12.12","12.16","12.17","12.18","12.20","12.22","12.24","12.26","12.28","12.29","12.30","12.31","15.2","15.3","15.8","15.9","15.14","15.23","15.28","15.31","15.32","15.34","15.35","15.36","15.37","15.41","15.46","15.47","19.2","19.5","20.5","20.9","21.13","24.2","25.17","25.34","25.39","25.50","27.9","27.15","27.17","27.20","30.1","31.7","31.10","31.19","31.34","31.40","31.50"],"assets":["0.1","0.3","0.5","0.8","0.9","0.11","0.13","0.15","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.15","2.16","2.17","2.18","2.19","2.20","2.21","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","2.40","3.30","5.2","5.3","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.16","5.18","5.19","5.20","5.21","5.22","5.25","5.28","5.30","5.31","5.32","5.33","5.34","5.35","5.36","5.37","5.46","5.47","9.1","9.2","9.6","10.3","10.5","10.7","10.17","12.2","12.6","12.17","12.18","12.20","12.22","12.24","12.28","12.29","12.30","12.31","15.2","15.3","15.9","15.14","15.23","15.28","15.31","15.32","15.34","15.35","15.37","15.41","15.44","15.46","15.47","19.2","19.5","20.9","24.2","24.3","25.17","25.34","25.39","25.40","27.9","27.15","27.17","27.20","30.1","31.10","31.19","31.33","31.34","31.39","31.40","31.47","31.50"],"sample":["0.1","0.3","0.5","0.7","0.8","0.9","0.10","0.11","0.13","0.15","2.6","2.11","2.12","2.16","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.29","2.30","2.31","2.39","5.2","5.3","5.9","5.11","5.13","5.14","5.15","5.16","5.18","5.19","5.20","5.21","5.22","5.28","5.30","5.31","5.32","5.33","5.34","5.35","5.36","5.44","5.46","5.47","9.2","9.6","10.3","10.5","10.7","10.17","12.2","12.18","12.20","12.22","12.24","12.28","12.29","12.30","12.31","15.2","15.23","15.28","15.34","15.41","15.44","15.46","19.2","19.5","20.9","21.1","24.2","24.3","25.17","25.34","25.39","25.40","27.9","27.10","27.15","27.17","27.20","30.3","31.1","31.10","31.19","31.31","31.33","31.34","31.39","31.40","31.47"],"video":["0.1","0.3","0.5","0.6","0.7","0.8","0.9","0.10","0.13","0.15","2.2","2.6","2.12","2.17","2.18","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.28","2.29","2.30","2.31","5.2","5.3","5.9","5.11","5.13","5.14","5.16","5.20","5.22","5.23","5.28","5.31","5.32","5.33","5.35","5.36","5.44","5.46","9.2","9.6","10.1","10.3","10.5","10.7","10.17","12.2","12.22","12.28","12.29","12.30","12.31","15.28","15.41","15.44","15.46","19.2","19.5","20.9","21.13","24.2","24.3","25.7","25.17","25.31","25.39","26.9","27.6","27.10","30.3","31.1","31.10","31.19","31.31","31.34","31.39","31.40","31.47"],"mp4":["0.3","0.5","0.6","0.7","0.8","0.9","0.10","0.16","2.2","2.17","2.18","2.20","2.22","2.24","2.28","2.29","2.30","2.31","5.16","5.20","5.22","5.23","5.28","5.32","5.33","5.34","5.44","5.46","9.2","10.1","10.3","10.5","10.6","10.7","10.17","12.28","12.29","12.30","12.31","15.22","15.23","15.28","15.41","15.44","19.2","19.5","20.9","24.2","24.3","24.4","25.7","25.17","25.31","25.39","26.9","27.6","27.10","30.3","31.1","31.10","31.19","31.31","31.32","31.34","31.39","31.47"],"warning":["0.4","10.2","10.4","11.6","15.12","15.16","15.33","20.4","25.7","25.10","30.0"],"提示":["0.4"],"默认所有播放器实例都是共享同一个":["0.4"],"localstorage":["0.4"],"而且默认的":["0.4"],"是":["0.4"],"settings":["0.4","9.2","9.5","19.5","22.8","28.2"],"如果你想不同的播放器使用不同的":["0.4"],"console":["0.6","0.14","0.17","6.2","6.3","6.4","6.5","9.3","9.4","10.1","10.4","10.5","10.6","10.14","11.1","16.2","16.3","16.4","16.5","19.3","19.4","21.13","25.30","27.14"],"info":["0.6","0.14","0.17","1.6","6.2","6.3","6.4","6.5","9.3","9.4","10.1","10.4","10.5","10.6","10.14","11.1","15.16","16.2","16.3","16.4","16.5","19.3","19.4","25.30"],"play":["0.6","10.6","12.42","25.43","31.4"],"on":["0.7","0.8","0.9","0.10","2.2","2.22","5.33","5.44","7.5","8.5","9.9","10.7","10.14","15.0","15.28","15.44","17.5","18.5","19.9","20.3","23.5","25.22"],"ready":["0.9","0.10","2.2","5.12","5.44","7.5","10.14","15.33","17.5"],"artplayer":["0.11","0.12","1.6","2.41","3.34","5.4","5.6","5.7","5.17","5.24","5.26","5.27","5.29","5.38","5.39","5.40","5.42","5.43","9.6","11.1","11.6","12.1","12.3","12.4","12.5","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.19","12.21","12.23","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.1","13.3","13.4","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.31","13.32","13.33","15.1","15.7","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.23","15.24","15.25","15.27","15.30","15.31","15.32","15.35","15.36","15.43","19.1","19.2","19.6","20.13","21.10","24.1","25.25","25.27","25.33","25.34","25.40","25.42","25.50","27.20","31.3","31.5","31.7","31.8","31.9","31.13","31.14","31.15","31.16","31.17","31.21","31.25","31.26","31.33","31.36","31.42","31.45","31.46"],"container":["0.11","0.12","1.1","2.1","2.3","2.4","2.14","2.41","3.5","3.6","3.7","3.8","3.9","3.10","3.17","3.29","3.30","5.1","5.4","5.6","5.7","5.8","5.10","5.15","5.17","5.18","5.19","5.24","5.25","5.26","5.27","5.30","5.38","5.39","5.40","5.42","5.43","9.1","9.6","12.1","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.21","12.23","12.24","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.30","15.1","15.3","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.23","15.25","15.30","15.31","15.32","15.34","15.35","15.36","15.37","15.47","19.2","19.6","21.6","21.13","24.1","24.2","25.25","25.33","25.34","25.40","25.42","25.50","27.7","27.9","27.15","27.16","27.17","27.20","31.5","31.7","31.17","31.25","31.27","31.33","31.40","31.42","31.50"],"app":["0.11","0.12","0.13","0.15","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.19","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.5","3.6","3.7","3.30","5.1","5.2","5.3","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.17","5.18","5.19","5.21","5.25","5.27","5.30","5.31","5.32","5.35","5.36","5.37","5.39","5.41","5.46","5.47","9.1","9.2","9.6","10.3","10.7","10.17","12.2","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.15","12.16","12.17","12.18","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.28","12.29","12.30","12.39","12.40","12.41","15.1","15.2","15.3","15.8","15.9","15.10","15.11","15.13","15.14","15.21","15.23","15.30","15.31","15.32","15.34","15.35","15.36","15.37","15.46","15.47","19.2","20.9","21.6","24.2","25.17","25.34","25.40","25.50","26.3","26.5","27.7","27.9","27.15","27.16","27.17","27.20","30.1","31.7","31.10","31.17","31.25","31.27","31.33","31.34","31.40","31.50"],"new":["0.12","1.1","3.3","3.6","3.7","3.8","3.9","3.10","3.11","3.17","3.22","3.28","3.29","3.33","5.4","5.5","5.6","5.7","5.24","5.26","5.29","5.38","5.39","5.40","5.41","5.42","5.43","9.6","10.3","10.16","12.1","12.3","12.4","12.5","12.9","12.11","12.12","12.13","12.14","12.15","12.16","12.19","12.21","12.23","12.25","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.6","13.7","13.8","13.9","13.30","15.6","15.7","15.8","15.9","15.10","15.11","15.13","15.14","15.15","15.17","15.18","15.19","15.21","15.24","15.25","15.27","15.30","15.31","15.36","15.38","15.39","15.40","15.41","15.43","19.1","19.2","19.6","21.6","21.13","24.1","25.13","25.25","25.33","25.34","25.40","25.42","25.50","27.7","27.8","27.16","27.20","31.3","31.5","31.8","31.9","31.12","31.13","31.14","31.15","31.16","31.17","31.18","31.20","31.21","31.23","31.24","31.25","31.26","31.28","31.33","31.36","31.38","31.42","31.44","31.45","31.46","31.48","31.49","31.51"],"hotkeyevent":["0.14","10.14"],"event":["0.14","9.3","9.4","10.14","19.4","21.5"],"click":["0.14","6.2","6.3","7.1","7.3","10.14","15.20","15.22","16.2","16.3","17.3","25.31","27.14"],"true":["0.16","2.28","3.1","3.20","3.33","7.2","9.2","9.5","17.2","19.5","21.8","21.9","23.6","25.17","25.37","29.6"],"flip":["0.16"],"playbackrate":["0.16"],"aspectratio":["0.16"],"function":["0.17","6.2","6.3","6.4","7.1","7.3","9.4","10.14","10.17","15.20","15.22","16.2","16.3","16.4","17.3","19.4","25.30","25.37","27.14","31.30"],"myplugin":["0.17","10.17"],"art":["1.1","3.1","3.3","3.4","3.8","3.9","3.10","3.11","3.12","3.13","3.17","3.18","3.21","3.22","3.23","3.24","3.27","3.28","3.29","3.32","3.33","5.4","5.5","5.26","5.29","5.38","5.40","5.41","5.42","5.43","9.6","10.3","10.16","12.1","12.11","12.14","12.19","12.25","12.32","12.33","12.34","12.35","12.36","12.37","12.38","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.29","13.30","15.6","15.7","15.15","15.17","15.18","15.19","15.21","15.24","15.25","15.26","15.27","15.30","15.38","15.39","15.40","15.41","15.43","19.1","19.6","20.8","21.6","21.13","24.1","25.9","25.13","25.25","25.28","25.33","25.34","25.40","25.41","25.42","26.8","27.8","27.16","31.3","31.6","31.8","31.9","31.12","31.13","31.14","31.15","31.16","31.18","31.20","31.21","31.23","31.24","31.25","31.26","31.28","31.36","31.38","31.42","31.44","31.45","31.46","31.48","31.49","31.51"],"js":["1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.12","3.2","3.34","5.5","5.29","10.9","10.10","10.13","10.15","10.16","11.1","13.1","13.3","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","15.4","15.6","15.15","15.17","15.24","15.26","15.38","15.39","15.40","15.42","19.1","20.2","21.3","21.6","21.10","23.4","25.3","25.5","25.6","25.8","25.9","25.12","25.14","25.15","25.16","25.18","25.20","25.23","25.24","25.26","25.28","25.33","25.36","25.40","25.44","25.45","25.46","25.49","26.2","27.3","27.20","31.6","31.11","31.22","31.36","31.37","31.38","31.41","31.51"],"手动触发事件":["2.0"],"subtitle":["2.28","2.29","2.30","2.31","12.31"],"或者部分加载完成":["2.46"],"则发送此事件":["2.46"],"已经到达结束点":["2.47"],"正在尝试获取媒体数据":["2.58"],"一级属性":["3.0"],"var":["3.1","3.3","3.4","3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.28","3.29","3.31","3.32","3.33","5.4","5.5","5.26","5.29","5.42","9.6","10.13","10.15","10.16","12.1","12.11","13.3","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.22","13.28","13.29","13.30","15.6","15.7","15.11","15.13","15.15","15.17","15.18","15.19","15.21","15.24","15.26","15.27","15.30","15.38","15.39","15.40","15.43","19.1","19.6","21.6","21.10","25.3","25.5","25.9","25.13","25.25","25.28","25.33","25.40","25.42","27.8","27.20","31.6","31.8","31.9","31.12","31.13","31.14","31.15","31.16","31.18","31.20","31.21","31.22","31.23","31.24","31.26","31.27","31.28","31.36","31.38","31.41","31.42","31.44","31.45","31.46","31.48","31.49","31.51"],"false":["3.18","3.19","3.31","3.32","6.5","13.3","13.18","13.32","16.5","21.4"],"adsplugin":["4.0","14.0"],"option":["4.0","14.0","21.4","21.7","21.11","22.7"],"layers":["4.0","14.0"],"ads":["4.0"],"html":["4.0","7.4","8.4","9.7","15.20","15.22","17.4","18.4","19.7","20.13","21.2","25.31","25.32","27.11","27.12","27.13","27.14","31.31","31.32"],"img":["4.0","9.5","9.8","19.8","25.39","31.39"],"style":["4.0","6.1","7.3","8.1","8.4","16.1","17.3","18.1","18.4","26.4","31.29"],"width":["4.0","8.4","9.5","9.8","18.4","19.8","31.29"],"100px":["4.0","8.4","18.4","25.29","31.29"],"src":["4.0","8.3","8.4","9.8","18.3","18.4","19.8","25.29","31.29"],"display":["4.0","10.8"],"none":["4.0"],"position":["4.0","5.20","7.4","8.2","8.3","8.5","15.20","15.22","17.4","18.2","18.3","18.5","25.29","25.32","27.11","27.12","27.13","27.14","31.29","31.32"],"absolute":["4.0","8.2","8.3","8.5","18.2","18.3","18.5","25.29","31.29"],"top":["4.0","8.2","8.3","8.5","18.2","18.3","18.5","25.29","31.29"],"20px":["4.0","25.29","31.29"],"right":["4.0","7.2","7.4","8.2","8.5","15.20","15.22","17.2","17.4","18.2","18.5","25.29","27.11","27.12","27.13","27.14"],"seek":["5.12","25.19"],"settimeout":["5.12","7.5","17.5","25.2"],"controls":["5.20","5.22","15.20","15.22","27.11","27.12","27.13","27.14"],"jpg":["5.23"],"hd":["5.45","15.45"],"720p":["5.45","15.45"],"element":["6.1","8.1","13.34","18.1","21.8","25.38"],"组件的":["6.1","8.1"],"dom":["6.1","8.1","9.4","16.1","18.1","19.4"],"元素":["6.1","8.1"],"args":["6.2","6.3","6.4","16.2","16.3","16.4","25.30","31.30"],"show":["6.5","9.7","9.9","16.5","19.7","19.9","21.12"],"组件样式对象":["7.1"],"组件点击事件":["7.1"],"mounted":["7.1","15.0","17.1"],"selector":["7.2","17.2","21.8"],"default":["7.2","10.4","17.2","20.10","24.4","30.4"],"span":["7.2","17.2"],"01":["7.2","17.2","25.30","31.30"],"button":["7.3","7.4","17.3","17.4"],"tooltip":["7.3","7.4","8.2","8.3","17.1","17.3","17.4","18.2","18.3","25.32"],"color":["7.3","17.3","21.4"],"red":["7.3","17.3"],"your":["7.4","17.4","22.6","23.3","25.31","25.32","31.31","31.32","31.47"],"02":["7.5","9.4","17.5","19.3","19.4","25.30","31.30"],"update":["7.5","17.5","23.4","29.4"],"the":["7.5","17.5","21.2","23.1","24.4","25.10","30.4"],"tip":["8.2","8.3","18.2","18.3"],"50px":["8.2","8.3","8.5","18.2","18.3","18.5"],"potser":["8.4","18.4"],"setting":["9.2","19.5","22.7","23.6","28.7"],"item":["9.3","9.4","19.3","19.4","28.3"],"onselect":["9.4","19.4","25.30","31.30"],"pip":["9.5","19.5"],"mode":["9.5","19.5"],"close":["9.5","19.5"],"height":["9.5","9.8","19.8","22.2","22.3","23.2","28.2","29.2","29.3"],"add":["9.7"],"slider":["9.7","19.7"],"state":["9.8","19.8"],"range":["9.9","19.9"],"attached":["10.0","11.0"],"note":["10.2","10.4","15.12","15.16","15.33","25.7","25.10","25.47"],"to":["10.2","12.42","12.43","14.0","25.1"],"easily":["10.2"],"distinguish":["10.2"],"between":["10.2"],"and":["10.2","15.29","21.1","22.1","23.1"],"by":["10.4"],"zh":["10.6"],"cn":["10.6"],"of":["10.8","10.9","10.10","10.16","12.45","16.1","25.1"],"div":["10.8","10.9","10.10","10.11","10.12","10.16","15.5","15.29","19.6","25.11","25.21","25.27","25.36","25.37","25.38","25.41","25.48","31.37"],"classname":["10.8","10.9","10.10","10.12","10.13","10.15","10.16","15.4","15.5","15.29","15.42","19.6","21.10","25.21","25.27","25.36","25.37","25.38","25.41","25.48","25.51","31.37"],"run":["10.8","10.9","10.10","10.12","10.13","10.15","10.16","11.11","15.4","15.5","15.26","15.29","15.42","19.6","21.10","25.14","25.15","25.16","25.18","25.21","25.26","25.27","25.36","25.37","25.38","25.41","25.44","25.48","25.51","31.37"],"code":["10.8","10.9","10.10","10.12","10.13","10.15","10.16","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","15.4","15.15","15.26","15.29","15.42","19.6","21.10","25.6","25.8","25.12","25.14","25.15","25.16","25.18","25.20","25.21","25.23","25.24","25.26","25.27","25.36","25.37","25.38","25.44","25.46","25.48","25.49","25.51","31.37"],"currently":["10.11"],"active":["10.11"],"cues":["10.11"],"overall":["10.11"],"see":["10.12"],"documentation":["10.12"],"for":["10.12","21.7","21.11","22.4","25.1","25.37"],"details":["10.12"],"all":["11.6","21.7"],"manually":["12.0","24.0"],"triggering":["12.0"],"enough":["12.42"],"data":["12.42","12.58","20.10","21.5","21.10","21.11"],"through":["12.43","21.9"],"is":["12.44","14.0","15.5","17.1","22.3","23.3","23.4"],"already":["12.46"],"been":["12.46","20.13"],"loaded":["12.46","12.50"],"or":["12.46","12.53","22.5","25.22"],"media":["12.47","12.49","12.58","21.1"],"resource":["12.48"],"type":["12.48","27.13"],"paused":["12.51","12.53","14.0"],"browser":["12.54"],"has":["12.55","12.56","12.57","12.59","20.13"],"but":["12.58"],"currenttime":["12.60"],"changed":["12.61"],"a":["12.62"],"temporary":["12.62"],"names":["13.0"],"are":["13.0","22.7"],"in":["13.0"],"uppercase":["13.0"],"only":["13.34","21.5","21.8"],"ui":["13.34"],"set":["13.34","25.1"],"say":["14.0"],"i":["14.0"],"want":["14.0","25.10"],"write":["14.0"],"that":["14.0"],"displays":["14.0"],"an":["14.0","23.4","25.43"],"image":["14.0"],"ad":["14.0"],"when":["14.0","21.8","21.9","23.3"],"automatically":["15.5","20.6"],"execute":["15.5"],"similar":["15.5","25.11"],"logic":["15.5"],"called":["15.5"],"t":["15.12"],"some":["15.16","25.22"],"videos":["15.16"],"may":["15.16","21.5","22.3","25.22"],"not":["15.16","21.5","21.7"],"switch":["15.20"],"visible":["15.29","27.5"],"resize":["15.33","21.11"],"object":["16.1","18.1","21.7","25.11"],"triggered":["17.1"],"after":["17.1","27.16"],"yellow":["19.3"],"step":["19.6"],"pnpm":["20.1","26.1"],"unpkg":["20.2","20.11","21.3","26.2","27.3"],"player":["20.3","21.13","25.47"],"s":["20.3","22.8","23.1"],"dimensions":["20.3"],"depend":["20.3"],"instance":["20.4","25.41"],"getinstance":["20.4"],"path":["20.5"],"imported":["20.6"],"useref":["20.8","26.8"],"export":["20.10"],"return":["20.10","21.5"],"https":["20.11"],"cdn":["20.11","26.11"],"npm":["20.11","26.11","27.0"],"dist":["20.11","22.1","23.1","26.11"],"plugin":["20.12","21.9","22.6","23.5","27.20"],"danmuku":["20.12","21.6","21.10","27.20"],"doctype":["20.12","26.12"],"agent":["20.13"],"added":["20.13"],"head":["20.13"],"title":["20.13","22.2","23.2","28.2","29.2"],"demo":["20.13","26.13"],"branch":["21.0","23.0"],"runtime":["21.0"],"entrypoint":["21.0"],"build":["21.1"],"script":["21.2","28.1","29.1"],"javascript":["21.2"],"projects":["21.2"],"can":["21.2"],"import":["21.2","24.0"],"ffffff":["21.4"],"border":["21.4"],"panel":["21.5","21.9"],"moves":["21.5"],"points":["21.5","27.21"],"stored":["21.5","21.11"],"use":["21.5","21.8","21.9","22.3","22.5"],"draw":["21.5"],"custom":["21.5"],"filter":["21.5"],"synchronous":["21.5"],"do":["21.5","22.4"],"beforeemit":["21.5","27.5","27.19"],"submissions":["21.5"],"beforevisible":["21.5","27.5"],"index":["21.6","21.10","22.3","27.20"],"current":["21.7","21.8","22.0","23.0","25.41"],"as":["21.7","25.47"],"three":["21.7"],"arrow":["21.7"],"retain":["21.7"],"their":["21.7","23.3"],"lexical":["21.7"],"does":["21.7","22.5"],"call":["21.7","22.5"],"perform":["21.7","21.9"],"application":["21.7"],"undefined":["21.8","23.4","29.4"],"live":["21.8"],"validated":["21.8"],"updates":["21.8"],"ishide":["21.8"],"read":["21.8"],"visibility":["21.8"],"mount":["21.9"],"target":["21.9"],"move":["21.9"],"enable":["21.9"],"heatmap":["21.9"],"constructing":["21.9"],"libs":["21.10"],"uncompiled":["21.10","27.20"],"danmu":["21.10"],"mutates":["21.11"],"inner":["21.11"],"point":["21.11"],"arrays":["21.11"],"historical":["21.11"],"compatibility":["21.11","25.22"],"copy":["21.11"],"each":["21.11"],"pair":["21.11"],"reusing":["21.11"],"original":["21.11"],"successful":["21.11"],"load":["21.11","23.5"],"redraws":["21.11"],"hidden":["21.12"],"shown":["21.12"],"reset":["21.12"],"items":["21.12"],"destroy":["21.12","29.5"],"onerror":["21.13","27.21"],"error":["21.13","27.21"],"artplayerplugindanmuku":["21.13","27.10","27.12","27.21"],"listeners":["22.0"],"this":["22.0","25.22","28.3","31.4"],"guide":["22.0","23.0"],"describes":["22.0","23.0"],"refactor":["22.0","23.0"],"get":["22.2","26.4","28.2","29.2"],"name":["22.2","28.2","29.2"],"level":["22.2","28.2","29.2"],"getname":["22.2","23.6","28.2","29.2","29.6"],"p":["22.2","22.3","23.2","23.6","28.2","28.7","29.2","29.3","29.6"],"i18n":["22.2","23.2","28.2","29.2"],"auto":["22.2","23.2","28.2","29.2"],"audio":["22.2","23.2","28.2","28.7","29.2"],"audios":["22.2","23.2","28.2","29.2"],"label":["22.3"],"labels":["22.3"],"lang":["22.3","23.2","26.12","29.3","30.2","30.3"],"id":["22.3","22.4","28.4","31.47"],"metadata":["22.3","23.3"],"be":["22.3"],"missing":["22.3"],"setrepresentationfortypebyid":["22.4","28.4"],"representation":["22.4","28.4"],"uses":["22.4","25.47"],"including":["22.4"],"numeric":["22.4"],"zero":["22.4"],"substitute":["22.4"],"alone":["22.5"],"subscribe":["22.5"],"immediately":["22.5"],"normal":["22.5"],"flow":["22.5"],"attachment":["22.5"],"automatic":["22.5"],"preserves":["22.5"],"own":["22.6"],"never":["22.6"],"calls":["22.6"],"dash":["22.6","28.6"],"changes":["22.6"],"touppercase":["22.7","28.7"],"config":["22.7"],"qualitylevel":["22.7"],"audiotrack":["22.7"],"result":["22.7"],"exported":["22.7"],"stale":["22.8"],"empty":["22.8","23.3"],"buffer":["22.8"],"metrics":["22.8"],"while":["22.8","23.5"],"preserving":["22.8"],"caller":["22.8"],"sdk":["22.8","23.0","28.3","28.8"],"track":["23.2","29.3"],"language":["23.3","29.3","30.4"],"titles":["23.3"],"fall":["23.3"],"back":["23.3"],"give":["23.3"],"formatters":["23.3"],"source":["23.3"],"lacks":["23.3","23.7"],"plain":["23.3"],"callback":["23.3"],"immediate":["23.4"],"needed":["23.4"],"plugins":["23.4","27.6","27.10","27.12","29.4"],"artplayerpluginhlscontrol":["23.4","29.4"],"returns":["23.4"],"every":["23.5"],"also":["23.5"],"destroying":["23.5"],"replaced":["23.5"],"instances":["23.5"],"yourself":["23.5"],"control":["23.5","31.32"],"releases":["23.5"],"its":["23.5"],"quality":["23.6","29.6"],"stall":["23.7"],"remain":["23.7"],"under":["23.7"],"investigation":["23.7"],"windows":["23.7","28.8","29.7"],"playwright":["23.7","28.8","29.7"],"webkit":["23.7","28.8","29.7"],"you":["24.0","25.10"],"need":["24.0","25.1"],"change":["24.4","30.4"],"size":["25.1"],"example":["25.1"],"equivalent":["25.4"],"muted":["25.10"],"if":["25.10"],"css":["25.11","31.1"],"fit":["25.11"],"cover":["25.11"],"description":["25.19"],"increase":["25.19"],"volume":["25.19","26.9"],"decrease":["25.19"],"forward":["25.19"],"backward":["25.19"],"cause":["25.22"],"performance":["25.22"],"issues":["25.22"],"low":["25.22"],"via":["25.27"],"menu":["25.31","31.31"],"left":["25.32","31.32"],"something":["25.35","31.35"],"dosomething":["25.35","31.35"],"onvttload":["25.37"],"modifying":["25.37"],"text":["25.37"],"loading":["25.39","31.39"],"modify":["25.43"],"existing":["25.43"],"because":["25.47"],"key":["25.47"],"class":["26.3"],"d":["26.6"],"选项":["26.10"],"meta":["26.13"],"charset":["26.13"],"utf":["26.13"],"类型入口与本轮修复尚未发布到":["27.0"],"使用本站构建的插件与样本":["27.1"],"接入自己的应用时":["27.1"],"com":["27.3"],"弹幕模式":["27.4"],"滚动":["27.4"],"默认":["27.4"],"顶部":["27.4"],"弹幕载入前的过滤器":["27.5"],"只支持返回布尔值":["27.5"],"输入框发送前的过滤器":["27.5"],"支持返回":["27.5"],"promise":["27.5"],"弹幕显示前的过滤器":["27.5"],"弹幕层是否可见":["27.5"],"emitter":["27.5"],"是否开启弹幕发射器":["27.5"],"maxlength":["27.5"],"xml":["27.6","27.11","27.12","27.13"],"这是用户在输入框输入弹幕文本":["27.6"],"然后点击发送按钮后触发的函数":["27.6"],"你可以对弹幕做合法校验":["27.6"],"或者做存库处理":["27.6"],"当返回true后才表示把弹幕加入到弹幕队列":["27.6"],"async":["27.6"],"const":["27.6"],"隐藏弹幕":["27.11"],"发送弹幕":["27.12"],"弹幕大小":["27.13"],"input":["27.13"],"重新加载当前弹幕库":["27.14"],"catch":["27.14"],"queryselector":["27.16","31.27"],"danmus":["27.18"],"加载弹幕":["27.18"],"length":["27.18"],"弹幕错误":["27.18"],"上的插件对象不是同一个对象":["27.19"],"后续命令继续通过注册的插件调用即可":["27.19"],"抛出或拒绝时会在控制台报告错误":["27.19"],"插件控制这个实例":["28.0"],"只清理自己创建的菜单和监听器":["28.0"],"本页描述当前重构分支":["28.0"],"使用":["28.1"],"标签时":["28.1"],"在初始化前加载":["28.1"],"根据原始":["28.3"],"档位或轨道对象返回字符串":["28.3"],"只有一个参数":["28.3"],"不提供索引或播放器":["28.3"],"默认画质标签为":["28.3"],"getcurrentrepresentationfortype":["28.4"],"接口使用":["28.4"],"仅赋值一个新的":["28.5"],"不会立即订阅它":["28.5"],"绑定后调用":["28.5"],"或走正常":["28.5"],"控制插件不会调用":["28.6"],"更换清单地址或移除其他使用者的监听器":["28.6"],"设置和媒体时间":["28.8"],"实例":["29.0"],"不负责下载":["29.0"],"通过":["29.1"],"或":["29.3"],"音轨依次取":["29.3"],"空标题和空":["29.3"],"返回":["29.4"],"监听器":["29.5"],"同时又自行销毁被替换的实例":["29.5"],"控制插件只释放自己的":["29.5"],"缺少测试所需的":["29.7"],"外":["30.0"],"不再捆绑其它多国语言":["30.0"],"需要自行导入需要的语言":["30.0"],"您可能需要初始化容器元素的大小":["31.1"],"如":["31.1"],"等同于":["31.4"],"document":["31.27"],"文本的函数":["31.37"],"修改现有的语言":["31.43"]},{"0":["5.12","20.5","20.9"],"1":["9.8","13.25","19.8","27.13"],"2":["13.26","22.7","27.4"],"3":["25.1"],"4":["22.7","25.6","25.11","25.12","25.14","25.15","25.16","25.18","25.20","25.21","25.26","25.37","25.38","25.41","25.44","25.48","25.51"],"5":["9.8","13.23","19.8","20.9","22.7","26.9","27.20"],"6":["15.42"],"7":["15.4","15.29","25.27","25.38"],"8":["20.13","25.41","26.12"],"9":["15.5","25.29","31.29"],"10":["9.8","13.12","13.14","13.27","19.8"],"11":["25.43","31.43"],"12":["25.37","27.13","27.20","31.37"],"20":["13.11"],"22":["9.2","9.6","9.7","19.2","19.5","19.7"],"25":["27.13"],"32":["0.14","10.14"],"50":["27.13"],"60":["25.34","27.5","31.34"],"120":["31.34"],"150":["9.3","19.3"],"200":["21.5","27.5"],"404":["2.11","12.11"],"500":["13.21"],"1000":["21.5","25.2","27.5"],"2000":["13.24"],"3000":["5.12","13.15"],"5000":["13.4","13.13","13.16"],"二级属性":["0.0"],"mp4":["0.1","0.11","0.12","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.19","2.21","2.23","2.25","2.26","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.5","3.6","3.7","3.29","3.30","5.1","5.2","5.3","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.17","5.18","5.19","5.21","5.25","5.26","5.30","5.31","5.35","5.36","5.37","5.39","5.41","5.47","9.1","9.6","10.8","10.9","10.10","10.16","12.2","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.15","12.16","12.17","12.18","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.39","12.41","13.30","15.1","15.2","15.3","15.8","15.9","15.10","15.11","15.13","15.14","15.18","15.19","15.21","15.25","15.30","15.31","15.32","15.34","15.35","15.36","15.37","15.46","15.47","19.6","20.5","21.6","21.13","25.33","25.34","25.50","26.5","27.9","27.15","27.16","27.17","27.20","27.21","30.1","31.7","31.25","31.33","31.36","31.50"],"console":["0.1","0.3","0.5","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","3.2","5.9","5.14","5.15","5.16","5.23","5.28","5.30","5.31","5.32","5.34","5.35","5.36","5.44","7.3","8.2","8.3","10.3","10.17","13.2","15.28","15.32","15.34","15.41","15.44","17.3","18.2","18.3","21.7","25.29","25.31","25.32","27.21","31.29","31.30","31.31"],"info":["0.1","0.3","0.5","1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.12","5.9","5.14","5.16","5.23","5.28","5.31","5.32","5.34","5.35","5.36","7.3","8.2","8.3","10.3","10.17","15.28","15.34","15.41","17.3","18.2","18.3","25.29","25.31","25.32","31.29","31.30","31.31"],"warning":["0.2","1.6","5.12","10.1","10.5","10.6","15.20","15.22","15.41","24.0","25.2","25.4","25.17","25.19","25.40","26.3","26.4","31.10","31.40","31.47"],"提示":["0.2","5.12","26.3","31.47"],"为了方便区别":["0.2"],"元素和普通对象":["0.2"],"播放器里的所有":["0.2"],"click":["0.3","5.20","5.22","6.1","8.1","8.2","8.3","10.3","15.41","16.1","18.1","18.2","18.3","25.29","25.32","27.10","27.11","27.12","31.29","31.31","31.32"],"event":["0.3","10.3","16.1","27.11"],"你可以修改":["0.4"],"即可":["0.4"],"zh":["0.6"],"cn":["0.6","24.4","30.4"],"your":["0.6","10.6","15.33","20.3","21.1","23.1","24.3","24.4","25.3","30.3","30.4","31.3"],"ready":["0.7","0.8","0.11","0.13","0.14","0.15","0.16","2.6","2.18","2.22","2.24","5.9","5.11","5.13","5.14","5.15","5.16","5.18","5.19","5.23","5.28","5.30","5.31","5.32","5.33","5.34","5.35","5.36","5.45","5.46","6.5","8.5","9.9","10.7","12.18","12.22","12.24","15.9","15.11","15.13","15.14","15.23","15.28","15.31","15.32","15.34","15.35","15.36","15.44","15.45","15.46","16.5","18.5","19.9"],"html":["0.8","0.9","0.10","5.20","5.22","14.0","27.10"],"some":["0.8","0.9","0.10"],"text":["0.8","0.9","0.10","17.1","21.6","27.6","27.12","27.20"],"position":["0.9","5.22","5.37","7.1","8.4","14.0","17.1","18.4","27.10"],"video":["0.11","0.12","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.13","2.14","2.15","2.16","2.19","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.5","3.6","3.7","3.28","3.29","3.30","5.1","5.6","5.7","5.8","5.10","5.15","5.17","5.18","5.19","5.21","5.24","5.25","5.26","5.27","5.29","5.30","5.37","5.39","5.41","5.47","9.1","10.8","10.9","10.10","10.16","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.12","12.13","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.23","12.24","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","15.21","15.30","15.31","15.32","15.36","15.37","15.47","19.6","20.5","21.6","22.2","23.2","25.25","25.33","25.34","25.42","25.50","26.5","27.7","27.9","27.15","27.16","27.17","27.20","27.21","29.2","30.1","31.7","31.17","31.25","31.33","31.36","31.50"],"on":["0.11","0.12","0.13","0.14","0.15","0.16","2.6","2.11","2.12","2.18","2.24","5.8","5.9","5.10","5.11","5.13","5.14","5.15","5.16","5.18","5.19","5.21","5.23","5.28","5.30","5.31","5.32","5.34","5.35","5.36","5.45","5.46","6.4","6.5","7.4","10.9","10.10","12.2","12.6","12.18","12.22","12.24","15.9","15.11","15.13","15.14","15.23","15.30","15.31","15.32","15.34","15.35","15.36","15.45","15.46","16.4","16.5","17.4","21.13","25.4"],"assets":["0.12","1.1","2.1","2.3","2.4","2.14","2.41","3.5","3.6","3.7","3.8","3.9","3.10","3.17","3.28","3.29","5.1","5.4","5.5","5.6","5.7","5.17","5.24","5.26","5.27","5.29","5.38","5.39","5.40","5.41","5.42","5.43","10.8","10.9","10.10","10.13","10.15","10.16","12.1","12.3","12.4","12.5","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.19","12.21","12.23","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.6","13.7","13.28","13.29","13.30","15.1","15.6","15.7","15.8","15.10","15.11","15.13","15.15","15.17","15.18","15.19","15.21","15.24","15.25","15.26","15.27","15.30","15.36","15.38","15.39","15.40","19.1","19.6","21.6","21.9","24.1","25.25","25.33","25.36","25.42","25.50","27.7","27.8","27.16","31.5","31.7","31.17","31.25","31.36","31.37","31.42"],"sample":["0.12","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.13","2.14","2.15","2.19","2.27","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.40","2.41","3.5","3.6","3.7","3.8","3.9","3.10","3.17","3.28","3.29","3.30","5.1","5.6","5.7","5.8","5.10","5.17","5.24","5.25","5.26","5.27","5.29","5.37","5.38","5.39","5.40","5.41","5.42","9.1","10.8","10.9","10.10","10.13","10.15","10.16","12.1","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.19","12.21","12.23","12.25","12.26","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.6","13.7","13.29","13.30","15.1","15.3","15.8","15.9","15.10","15.11","15.13","15.14","15.15","15.18","15.19","15.21","15.25","15.26","15.30","15.31","15.32","15.35","15.36","15.37","15.47","19.1","19.6","21.6","21.9","24.1","25.25","25.33","25.36","25.42","25.50","27.7","27.16","30.1","31.5","31.7","31.17","31.25","31.36","31.37","31.42","31.50"],"subtitleoffset":["0.16"],"return":["0.17","9.3","9.4","10.17","19.3","19.4","27.12"],"name":["0.17","10.17"],"something":["0.17"],"dosomething":["0.17"],"一级属性":["1.0","5.0"],"app":["1.1","3.3","3.8","3.9","3.10","3.11","3.12","3.13","3.17","3.22","3.23","3.28","3.29","3.33","5.4","5.5","5.6","5.7","5.24","5.26","5.29","5.38","5.40","5.42","5.43","10.8","10.9","10.10","10.13","10.15","10.16","12.1","12.3","12.4","12.11","12.14","12.19","12.32","12.33","12.34","12.35","12.36","12.37","12.38","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.28","13.29","13.30","15.6","15.7","15.15","15.17","15.18","15.19","15.24","15.25","15.26","15.27","15.29","15.38","15.39","15.40","15.43","19.1","19.6","20.13","21.9","21.10","24.1","25.5","25.9","25.13","25.25","25.27","25.33","25.36","25.37","25.42","27.8","31.5","31.6","31.8","31.9","31.12","31.13","31.14","31.15","31.16","31.18","31.20","31.21","31.23","31.24","31.26","31.28","31.36","31.37","31.38","31.41","31.42","31.44","31.45","31.46","31.48","31.49","31.51"],"url":["1.1","3.6","3.7","3.8","3.9","3.10","3.17","3.22","3.28","3.29","5.4","5.5","5.6","5.7","5.24","5.26","5.27","5.29","5.38","5.39","5.40","5.41","5.42","5.43","10.8","10.9","10.10","10.13","10.15","10.16","12.1","12.3","12.4","12.5","12.9","12.11","12.13","12.14","12.15","12.19","12.21","12.23","12.25","12.27","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.28","13.29","13.30","15.1","15.6","15.7","15.15","15.17","15.21","15.24","15.25","15.26","15.27","15.30","15.38","15.39","15.40","15.43","19.1","19.6","21.9","21.10","22.6","24.1","25.3","25.25","25.42","26.5","27.7","27.8","27.16","27.21","31.3","31.5","31.8","31.9","31.13","31.14","31.15","31.16","31.17","31.21","31.25","31.26","31.38","31.42","31.45","31.46","31.51"],"全部工具函数请参考以下地址":["1.6"],"js":["1.11","10.8","10.11","10.12","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","13.2","13.34","15.5","15.29","21.9","21.11","22.7","25.11","25.21","25.27","25.37","25.38","25.41","25.48","25.51"],"emit":["2.0","12.0"],"focus":["2.0","12.0"],"移除事件":["2.0"],"true":["2.16","2.17","2.20","2.21","2.22","2.23","2.24","2.25","2.26","2.39","3.30","5.2","5.3","5.21","6.2","6.4","6.5","9.1","9.6","10.16","12.17","12.20","12.28","13.1","13.20","13.33","15.2","15.3","16.2","16.4","16.5","19.2","19.6","27.16","31.10","31.33","31.47"],"setting":["2.17","2.20","2.28","3.30","9.1","9.6","12.17","12.20","13.30","19.2","19.6","25.7","29.6"],"fullscreen":["2.22"],"srt":["2.28","2.29","2.30","2.31","12.31"],"并调用":["2.46"],"但数据意外未出现":["2.58"],"属性名字全部都是大写的形式":["3.0"],"未来容易发生变动":["3.0"],"new":["3.1","3.4","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.23","3.24","3.25","3.26","3.27","3.31","3.32","3.34","10.8","10.9","10.10","10.11","10.12","10.13","10.15","11.1","13.1","13.3","13.4","13.10","13.11","13.12","13.13","13.17","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.26","13.27","13.28","13.29","13.31","13.32","13.33","15.4","15.5","15.26","15.29","15.42","21.10","21.11","25.3","25.5","25.6","25.8","25.9","25.12","25.14","25.15","25.16","25.18","25.20","25.21","25.23","25.24","25.26","25.28","25.35","25.36","25.37","25.38","25.44","25.45","25.46","25.48","25.49","25.51","26.9","27.21","31.6","31.11","31.22","31.35","31.37","31.41"],"container":["3.1","3.3","3.4","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.28","3.31","3.32","3.33","3.34","5.5","5.29","10.8","10.9","10.10","10.11","10.12","10.13","10.15","10.16","11.1","13.3","13.6","13.7","13.8","13.9","13.10","13.11","13.17","13.22","13.28","13.29","15.4","15.5","15.6","15.7","15.15","15.17","15.24","15.26","15.27","15.29","15.38","15.39","15.40","15.42","15.43","19.1","20.3","21.9","21.11","25.5","25.6","25.8","25.9","25.12","25.13","25.14","25.15","25.16","25.20","25.23","25.24","25.27","25.28","25.36","25.37","25.45","25.46","25.49","25.51","26.10","27.8","27.21","31.3","31.6","31.8","31.9","31.12","31.13","31.14","31.15","31.16","31.18","31.20","31.21","31.22","31.23","31.24","31.26","31.28","31.36","31.37","31.38","31.41","31.44","31.45","31.46","31.48","31.49","31.51"],"log":["3.2","5.44","15.44"],"art":["3.14","3.15","3.16","3.19","3.20","3.25","3.26","3.31","3.34","10.8","10.9","10.10","10.11","10.13","10.15","11.1","13.1","13.3","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.28","13.31","13.32","13.33","15.4","15.5","15.29","15.42","20.9","21.9","21.10","25.3","25.5","25.6","25.8","25.12","25.14","25.15","25.16","25.18","25.20","25.21","25.23","25.24","25.26","25.36","25.37","25.38","25.44","25.45","25.46","25.48","25.49","25.51","26.9","27.21","31.11","31.22","31.27","31.37"],"var":["3.34","10.8","10.9","10.10","10.11","10.12","11.1","13.1","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","15.4","15.5","15.29","15.42","21.9","21.11","25.6","25.8","25.12","25.14","25.15","25.16","25.18","25.20","25.21","25.23","25.24","25.26","25.27","25.35","25.36","25.37","25.38","25.41","25.44","25.45","25.46","25.48","25.49","25.51","31.11","31.35","31.37"],"show":["4.0","6.2","6.3","6.4","14.0","16.2","16.3","16.4","21.5"],"block":["4.0","14.0"],"hide":["4.0","14.0"],"controls":["4.0","5.37","15.37","17.1","27.10"],"tooltip":["4.0","7.1","9.7","19.7","31.32"],"muted":["5.2","5.3","5.25","15.2","15.3","31.10"],"seek":["5.11","5.13"],"t":["5.12"],"right":["5.20","5.22","8.3","8.4","14.0","17.1","18.3","18.4","27.10","31.29"],"switch":["5.20","15.12","22.4"],"function":["5.20","5.22","6.1","8.1","8.2","8.3","16.1","18.1","18.2","18.3","25.29","25.31","25.32","27.9","27.11","27.12","31.29","31.31"],"theme":["5.44","15.44","27.5"],"settimeout":["5.45","6.5","8.5","9.9","10.14","15.45","16.5","18.5","19.9","31.2"],"subtitle":["5.47","12.29","12.30"],"object":["6.1","8.1"],"组件样式对象":["6.1","8.1"],"false":["6.2","6.3","6.4","9.5","13.19","13.31","13.34","16.2","16.3","16.4","19.5","27.6"],"update":["6.5","8.5","9.9"],"组件挂载后触发":["7.1"],"组件的提示文本":["7.1"],"yellow":["7.2","17.2"],"02":["7.2","17.2"],"onselect":["7.2","17.2"],"item":["7.2","9.5","17.2"],"dom":["7.2","17.2"],"args":["7.3","8.2","8.3","17.3","18.2","18.3","25.29","25.31","25.32","31.29","31.31"],"mounted":["7.3","8.2","8.3","17.3","18.2","18.3"],"style":["7.4","14.0","17.4","20.5","21.4","25.32","26.5","27.13","31.32"],"color":["7.4","17.4","25.32","27.4","31.32"],"red":["7.4","17.4"],"control":["7.5","17.5"],"by":["7.5","8.5","9.9","17.5","18.5","19.9","22.8","25.2","25.47"],"absolute":["8.4","14.0","18.4"],"top":["8.4","14.0","18.4"],"50px":["8.4","18.4"],"the":["8.5","9.9","18.5","19.9","20.4","22.1"],"button":["9.2"],"img":["9.2","9.6","9.7","14.0","19.2","19.5","19.7"],"height":["9.2","9.6","19.2","19.5","20.5","25.1","26.5","28.3","31.1"],"src":["9.2","9.5","14.0","19.5","25.39","31.39"],"quality":["9.3","19.3","28.5"],"1080p":["9.3","19.3"],"state":["9.5","25.39","27.6","31.39"],"svg":["9.5","9.8","19.5","19.8"],"settings":["9.6","10.4","19.2","19.6","22.5"],"slider":["9.6"],"5x":["9.6","9.7","19.6","19.7"],"width":["9.6","9.7","14.0","19.5","19.7","20.5","25.1","26.5","31.1"],"icon":["9.7","19.7"],"range":["9.8","19.8","27.13"],"instance":["10.0","26.4"],"which":["10.0","17.1"],"note":["10.1","15.20","15.22","15.41","25.2","25.17","25.19"],"if":["10.1","10.4","15.41","20.11","22.7","25.47","27.6","27.11","27.12"],"you":["10.1","10.4","15.41","20.6","22.4"],"directly":["10.1","20.4"],"regular":["10.2"],"objects":["10.2"],"within":["10.2"],"are":["10.2","21.7","21.12","23.6"],"mouseenter":["10.3"],"instances":["10.4"],"share":["10.4"],"same":["10.4","15.12"],"localstorage":["10.4"],"and":["10.4","12.46","15.12"],"want":["10.4"],"different":["10.4"],"players":["10.4"],"use":["10.4"],"loading":["10.5"],"this":["10.5","21.4","23.3","25.40","29.3"],"is":["10.5","12.48","15.33","20.4"],"using":["10.6","22.7","23.3"],"can":["10.6","23.4","25.40"],"only":["10.6","25.40"],"to":["10.7","11.6","15.20","15.22","20.5","21.12","22.4","22.6","26.5"],"artplayer":["10.8","10.9","10.10","10.11","10.12","10.13","10.15","10.16","13.34","15.4","15.6","15.15","15.17","15.26","15.29","15.38","15.39","15.40","15.42","21.9","21.11","25.3","25.5","25.6","25.8","25.9","25.12","25.13","25.14","25.15","25.16","25.18","25.20","25.23","25.24","25.26","25.28","25.35","25.36","25.37","25.38","25.44","25.45","25.46","25.49","25.51","31.6","31.11","31.12","31.18","31.20","31.22","31.23","31.24","31.28","31.35","31.37","31.38","31.41","31.44","31.48","31.49","31.51"],"classname":["10.11","13.34","21.9","21.11","25.11","25.22"],"run":["10.11","13.34","21.9","21.11","25.11","25.22"],"code":["10.11","13.34","15.5","21.9","21.11","25.11","25.22","25.41"],"flip":["10.16"],"playbackrate":["10.16"],"constructor":["11.0"],"please":["11.6"],"refer":["11.6"],"removing":["12.0"],"through":["12.42"],"end":["12.43"],"without":["12.43","23.4"],"duration":["12.45"],"partially":["12.46"],"reached":["12.47"],"not":["12.48","20.4","21.0","21.12","21.13","23.4"],"has":["12.49"],"delayed":["12.53"],"due":["12.53","15.20","15.22","25.17"],"loads":["12.54"],"changed":["12.55"],"completed":["12.56"],"begun":["12.57"],"been":["12.59","21.0"],"property":["12.60"],"lack":["12.62"],"these":["13.0","25.19"],"subject":["13.0"],"change":["13.0"],"div":["13.34","20.13","21.9","21.11","25.22","26.13"],"ads":["14.0"],"100px":["14.0"],"display":["14.0","27.13"],"none":["14.0"],"20px":["14.0"],"have":["15.12","15.16","21.0"],"functionality":["15.12"],"a":["15.16","24.0"],"such":["15.16"],"as":["15.16","22.3"],"live":["15.16"],"streams":["15.16"],"or":["15.16","17.1","25.1"],"browser":["15.20","15.22","25.17"],"security":["15.20","15.22","25.17"],"mechanisms":["15.22","25.17"],"jpg":["15.23"],"json":["15.28"],"stringify":["15.28"],"useful":["15.33"],"but":["15.33"],"need":["15.41","22.4"],"certain":["15.41"],"left":["17.1"],"side":["17.1"],"bun":["20.1","26.1"],"com":["20.2","20.11","21.3","26.2","26.11"],"of":["20.3","22.4"],"its":["20.3","22.5"],"therefore":["20.3"],"must":["20.3"],"reactive":["20.4"],"modifying":["20.4"],"600px":["20.5","26.5"],"400px":["20.5","25.1","31.1"],"margin":["20.5"],"60px":["20.5"],"auto":["20.5"],"when":["20.6","21.7","21.11","24.0"],"null":["20.8","22.3","26.8"],"volume":["20.9"],"option":["20.10","23.6","26.10","27.18","28.7"],"tip":["20.11"],"lang":["20.12","22.2","24.2","24.3","28.2","28.3","29.2"],"en":["20.12","26.12"],"head":["20.12","26.12"],"meta":["20.12","20.13","26.12"],"charset":["20.12","20.13","26.12"],"utf":["20.12","20.13","26.12"],"body":["20.13","26.13"],"class":["20.13","26.13"],"fixes":["21.0","23.0"],"yet":["21.0"],"published":["21.0"],"in":["21.1","22.4","23.7"],"application":["21.1","21.12"],"default":["21.2"],"factory":["21.2"],"from":["21.2","21.6","22.6"],"css":["21.4","25.1"],"properties":["21.4"],"for":["21.4","21.12","22.5","25.47"],"explicit":["21.4","21.13","22.5"],"called":["21.5"],"before":["21.5","21.7","22.1","23.1"],"emitter":["21.5"],"s":["21.5"],"sending":["21.5"],"ui":["21.5"],"maxlength":["21.5"],"length":["21.5"],"locktime":["21.5","27.5"],"between":["21.5"],"plugins":["21.6","21.13","27.9","27.15","27.16","27.17","27.20"],"artplayerplugindanmuku":["21.6","27.9","27.15","27.16","27.17"],"hello":["21.6"],"validation":["21.7"],"calling":["21.7","23.4"],"needed":["21.7","21.11"],"failures":["21.7"],"logged":["21.7"],"leave":["21.7"],"another":["21.7"],"attempt":["21.7"],"asynchronous":["21.7"],"hidden":["21.8"],"isstop":["21.8"],"stopped":["21.8"],"distinct":["21.8"],"media":["21.8"],"readiness":["21.8"],"signal":["21.8"],"promises":["21.8"],"resolve":["21.8"],"create":["21.9","22.2"],"later":["21.9","21.12"],"data":["21.9"],"libs":["21.9","21.11"],"uncompiled":["21.9","21.11"],"index":["21.9","21.11","22.4"],"document":["21.10","25.27"],"createelement":["21.10"],"queryselector":["21.10","25.27"],"after":["21.10","21.11","23.5"],"curve":["21.11"],"so":["21.11","23.3"],"resend":["21.11"],"those":["21.11","23.7"],"events":["21.11"],"plugin":["21.11","21.12","22.5"],"danmuku":["21.11"],"destroyed":["21.12"],"points":["21.12"],"sent":["21.12"],"custom":["21.12","22.3"],"heatmap":["21.12"],"replayed":["21.12"],"listeners":["21.12","22.6"],"describes":["21.13"],"payloads":["21.13"],"it":["21.13","23.4","23.7"],"does":["21.13","23.7"],"branch":["22.0"],"adaptation":["22.0"],"automatic":["22.0","23.0"],"refresh":["22.0","23.0"],"lifecycle":["22.0","23.0"],"setup":["22.1","23.1"],"global":["22.1"],"track":["22.2","28.2","28.3","29.2"],"touppercase":["22.2","28.2"],"string":["22.2","28.2"],"id":["22.2","28.2"],"customtype":["22.2","23.2","29.2"],"plaympd":["22.2"],"mediaplayer":["22.2"],"formatter":["22.3"],"should":["22.3"],"complete":["22.3"],"example":["22.3"],"empty":["22.3"],"filtered":["22.4"],"array":["22.4"],"configure":["22.4"],"version":["22.4"],"open":["22.5"],"owned":["22.5"],"audio":["22.5","29.6"],"panel":["22.5"],"keeps":["22.5"],"existing":["22.5"],"rebuild":["22.5"],"behavior":["22.5"],"reserve":["22.5"],"manifest":["22.6"],"removes":["22.6"],"belonging":["22.6"],"other":["22.6","23.3"],"consumers":["22.6"],"retained":["22.6","23.5"],"callbacks":["22.6","23.5"],"old":["22.6"],"menus":["22.6"],"root":["22.7"],"legacy":["22.7","28.7"],"paths":["22.7"],"remain":["22.7"],"available":["22.7"],"actual":["22.7"],"time":["22.8","27.20"],"windows":["22.8"],"playwright":["22.8"],"webkit":["22.8"],"lacks":["22.8"],"mse":["22.8","23.7","28.8","29.7"],"path":["22.8","23.7","26.5"],"used":["22.8","23.7"],"described":["23.0"],"here":["23.0"],"running":["23.1"],"playm3u8":["23.2","29.2"],"loadsource":["23.2"],"attachmedia":["23.2"],"else":["23.2"],"canplaytype":["23.2"],"vnd":["23.2"],"apple":["23.2"],"mpegurl":["23.2"],"receive":["23.3"],"avoid":["23.3"],"optional":["23.3"],"required":["23.3"],"equal":["23.3"],"collapse":["23.3"],"into":["23.3"],"one":["23.3","25.34","31.34"],"displayed":["23.3"],"choice":["23.3"],"bitrate":["23.3"],"distinguishing":["23.3"],"separate":["23.3"],"promise":["23.4","29.4"],"attached":["23.4"],"own":["23.5"],"subscriptions":["23.5"],"makes":["23.5"],"menu":["23.5"],"inert":["23.5"],"replacement":["23.5"],"destruction":["23.5"],"public":["23.6"],"config":["23.6","27.14","27.18","28.7"],"qualitylevel":["23.6","28.7"],"audiotrack":["23.6","28.7"],"result":["23.6","28.7"],"exported":["23.6"],"establish":["23.7"],"require":["24.0"],"cannot":["24.0"],"be":["24.0"],"matched":["24.0"],"script":["24.2","30.2"],"play":["24.4","25.19","30.4"],"300px":["25.1","31.1"],"three":["25.2"],"file":["25.2"],"formats":["25.2"],"caches":["25.7"],"last":["25.7"],"upon":["25.7","25.10"],"immediately":["25.10"],"page":["25.10"],"load":["25.10"],"space":["25.19"],"toggle":["25.19"],"pause":["25.19"],"devices":["25.22"],"older":["25.22"],"browsers":["25.22"],"opacity":["25.29","31.29"],"setting02":["25.30","31.30"],"green":["25.32","31.32"],"more":["25.34","31.34"],"chance":["25.34","31.34"],"ploading":["25.39","31.39"],"gif":["25.39","31.39"],"recognition":["25.40"],"player":["25.40","27.21"],"parse":["25.40"],"suffixes":["25.40"],"like":["25.40"],"cache":["25.47"],"progress":["25.47"],"however":["25.47"],"播放器的尺寸依赖于容器":["26.3"],"getinstance":["26.4"],"ts":["26.6"],"types":["26.10"],"const":["26.10"],"unpkg":["26.11"],"title":["26.12"],"cdn":["27.0"],"请替换容器和媒体":["27.1"],"pnpm":["27.2"],"底部":["27.4"],"ffffff":["27.4"],"弹幕颜色":["27.4"],"默认使用配置":["27.4"],"弹幕输入框最大长度":["27.5"],"输入框锁定时间":["27.5"],"dark":["27.5"],"弹幕主题":["27.5"],"支持":["27.5"],"和":["27.5","28.1","28.7"],"light":["27.5"],"只在自定义挂载时生效":["27.5"],"isdirty":["27.6"],"fuck":["27.6"],"i":["27.6"],"test":["27.6"],"await":["27.6"],"这里是所有弹幕的过滤器":["27.6"],"xml":["27.10"],"隐藏弹幕":["27.10"],"prompt":["27.12"],"请输入弹幕文本":["27.12"],"弹幕测试文本":["27.12"],"trim":["27.12"],"min":["27.13"],"max":["27.13"],"step":["27.13"],"value":["27.13"],"flex":["27.13"],"切换":["27.14"],"切换到新的弹幕库":["27.14"],"v2":["27.14"],"fullscreenweb":["27.16"],"配置变化":["27.18"],"stop":["27.18"],"弹幕停止":["27.18"],"输入框可再次尝试发送":["27.19"],"beforevisible":["27.19"],"拒绝时":["27.19"],"对该项在当前调度轮报告一次":["27.19"],"error":["27.19"],"热力图示例":["27.20"],"这里的":["28.0"],"适配":["28.0"],"dist":["28.1"],"level":["28.3"],"p":["28.3"],"音轨标签取":["28.3"],"选择":["28.4"],"数字零也是合法":["28.4"],"不能用过滤后数组的索引代替":["28.4"],"无需给插件额外设置":["28.4"],"版本开关":["28.4"],"流程":["28.5"],"自动刷新会保留已打开":["28.5"],"由插件管理的画质或音轨设置子菜单":["28.5"],"显式":["28.5"],"保留原有重建行为":["28.5"],"插件使用":["28.5"],"替换实例或销毁播放器后":["28.6"],"旧菜单回调失效":["28.6"],"应用仍负责":["28.6"],"drm":["28.6"],"根入口导出":["28.7"],"原根入口与":["28.7"],"路径继续保留":["28.7"],"缺少相关":["28.8"],"路径":["28.8","29.7"],"不能代表":["28.8","29.7"],"创建或销毁":["29.0"],"sdk":["29.0"],"本页描述当前重构分支":["29.0"],"标签使用时":["29.1"],"先加载":["29.1"],"和插件的":["29.1"],"文字会使用默认值":["29.3"],"媒体没有相关字段时":["29.3"],"自定义回调应提供字符串回退":["29.3"],"回调按普通函数调用":["29.3"],"不会绑定到播放器":["29.3"],"不能把可选索引视为必传字段":["29.3"],"相同标签会合并成一个选项":["29.3"],"如果想区分同高度的多个档位":["29.3"],"可在标签中加入码率":["29.3"],"不是":["29.4"],"在没有已绑定":["29.4"],"订阅":["29.5"],"替换或销毁播放器后":["29.5"],"旧菜单回调不再修改":["29.5"],"插件不会销毁":["29.5"],"safari":["29.7"],"当无法匹配到语言时":["30.0"],"会默认显示英文":["30.0"],"i18n":["30.0","30.3"],"或者使用":["31.1"],"aspect":["31.1"],"热键":["31.19"],"描述":["31.19"],"增加音量":["31.19"],"降低音量":["31.19"],"innerhtml":["31.27"],"sd":["31.33"],"后缀的识别":["31.40"],"播放器只能解析这种后缀":["31.40"],"因为播放器默认使用":["31.47"]},{"0":["26.5"],"1":["21.6","21.9","21.10","22.7","23.3","29.3"],"2":["5.31","28.7"],"4":["25.22","28.7"],"5":["5.8","5.9","5.15","15.8","21.11","28.7","31.7"],"8":["2.0","12.0","20.12"],"9":["5.32","25.1"],"10":["5.11","5.13","15.11","15.13","21.11","27.20"],"12":["21.11"],"16":["5.32","15.32","25.1","27.12","31.1"],"22":["19.6"],"30":["21.11","27.20"],"60":["21.5","25.36","31.36"],"75":["21.11","27.20"],"120":["25.34"],"180":["25.34","31.34"],"200":["27.6"],"240":["31.34"],"360":["9.3"],"720":["9.3","19.3"],"1000":["0.8","0.9","0.10","0.16","31.2"],"1080":["9.3","19.3"],"5000":["0.14","10.14"],"比较少用":["0.0"],"warning":["0.1","0.5","0.6","0.7","0.8","5.16","5.20","5.22","5.28","5.33","5.41","10.3","10.7","10.14","15.28","20.5","20.13","25.29","25.30","25.31","25.32","25.39","25.42","25.50","26.13","31.2","31.4","31.7","31.17","31.19","31.31","31.32","31.39","31.42","31.50"],"提示":["0.1","5.16","5.20","5.22","5.33","31.2","31.7","31.10","31.17"],"假如直接修改这个":["0.1"],"元素都是以":["0.2"],"开头命名的":["0.2"],"这是所有":["0.2"],"元素的定义":["0.2"],"mouseenter":["0.3"],"mouseleave":["0.3","10.3"],"loading":["0.5","12.49"],"这是所有图标的定义":["0.5"],"types":["0.5","1.6","11.6","30.0","31.50"],"使用":["0.6"],"只能更新实例化之后的":["0.6"],"to":["0.7","21.0","21.2","25.2"],"play":["0.7","4.0","5.2","10.7","15.2","24.3","25.2","30.3"],"如果想马上隐藏":["0.7"],"settimeout":["0.8","0.9","0.10","0.12","0.13","0.14","0.15","0.16","5.2","5.3","5.8","5.11","5.13","5.21","6.4","7.4","8.4","9.8","10.8","10.9","10.10","10.16","15.2","15.8","15.11","15.13","16.4","17.4","18.4","19.8"],"false":["0.8","0.9","0.10","0.15","0.16","21.9","25.29","25.31","27.4","31.29","31.31"],"left":["0.9","7.1","10.9"],"true":["0.10","0.12","0.13","2.19","3.5","3.6","3.7","3.28","3.29","5.1","5.14","5.25","5.34","6.3","10.10","12.16","12.19","12.21","12.22","12.23","12.24","12.25","12.26","12.39","13.5","13.6","13.7","13.28","13.29","13.30","15.1","15.21","15.25","15.34","16.3","19.1","21.10","25.25","25.33","31.17","31.25"],"srt":["0.11","5.47","12.28","12.29","12.30","15.47"],"ready":["0.12","5.2","5.3","5.5","5.6","5.7","5.8","5.10","5.17","5.21","5.24","5.25","5.26","5.27","5.29","6.4","7.4","8.4","9.8","10.8","10.9","10.10","10.11","10.12","10.13","10.15","10.16","12.0","12.6","15.2","15.3","15.5","15.8","15.10","15.15","15.17","15.18","15.19","15.21","15.25","15.26","15.29","15.30","16.4","17.4","18.4","19.8","27.17"],"on":["0.17","2.1","2.3","2.4","2.5","2.7","2.8","2.9","2.10","2.13","2.14","2.15","2.16","2.17","2.19","2.20","2.21","2.23","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","2.40","2.41","3.8","3.9","3.10","3.17","5.1","5.2","5.3","5.4","5.5","5.6","5.7","5.17","5.24","5.25","5.26","5.27","5.29","5.38","5.39","5.40","5.47","8.4","9.8","10.8","10.11","10.12","10.13","10.15","10.16","12.1","12.3","12.4","12.5","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.17","12.19","12.20","12.21","12.23","12.25","12.26","12.27","12.28","12.29","12.30","12.31","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.8","13.9","13.10","13.17","15.1","15.2","15.3","15.5","15.6","15.7","15.8","15.10","15.15","15.17","15.18","15.19","15.20","15.21","15.22","15.24","15.25","15.26","15.27","15.29","15.38","15.39","15.40","15.47","17.1","18.4","19.8","22.2","23.2","27.15","27.16","27.17","27.21","31.4"],"非常少使用":["1.0"],"sample":["1.1","3.1","3.3","3.4","3.11","3.12","3.13","3.18","3.21","3.22","3.23","3.24","3.27","3.31","3.32","3.33","3.34","5.4","5.5","5.43","10.11","10.12","11.1","13.8","13.9","13.10","13.11","13.12","13.13","13.17","13.21","13.22","13.23","13.24","13.28","13.33","13.34","15.4","15.5","15.6","15.7","15.17","15.24","15.27","15.29","15.38","15.39","15.40","15.42","15.43","20.10","21.10","25.5","25.6","25.8","25.9","25.12","25.13","25.14","25.15","25.16","25.18","25.20","25.23","25.24","25.26","25.28","25.35","25.37","25.38","25.41","25.44","25.45","25.46","25.49","25.51","26.10","27.8","31.6","31.8","31.9","31.11","31.12","31.13","31.14","31.15","31.16","31.18","31.20","31.21","31.22","31.23","31.24","31.26","31.28","31.35","31.38","31.41","31.44","31.45","31.46","31.48","31.49","31.51"],"video":["1.1","3.8","3.9","3.10","3.11","3.12","3.13","3.17","3.21","3.22","3.23","3.24","3.31","3.33","5.4","5.5","5.42","10.11","10.13","10.15","11.1","12.1","12.14","13.6","13.7","13.8","13.9","13.10","13.17","13.22","13.28","15.4","15.24","15.26","15.29","15.39","15.42","19.1","20.10","21.9","21.10","24.1","25.9","25.13","25.28","25.36","26.10","27.8","28.2","31.5","31.6","31.8","31.9","31.12","31.13","31.14","31.15","31.16","31.18","31.20","31.21","31.22","31.23","31.24","31.26","31.28","31.37","31.38","31.42","31.44","31.45","31.46","31.48","31.49"],"mp4":["1.1","3.8","3.9","3.10","3.17","3.22","3.28","3.34","5.4","5.5","5.6","5.7","5.24","5.27","5.29","5.38","5.40","5.42","5.43","10.11","10.12","10.13","10.15","12.1","12.3","12.4","12.11","12.14","12.19","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.40","13.5","13.6","13.7","13.8","13.9","13.10","13.17","13.22","13.28","13.29","13.34","15.4","15.5","15.6","15.7","15.15","15.17","15.24","15.26","15.27","15.29","15.38","15.39","15.40","15.42","15.43","19.1","20.10","21.9","21.10","21.11","24.1","25.5","25.25","25.36","25.37","25.38","25.42","26.10","27.7","27.8","31.5","31.8","31.9","31.13","31.14","31.15","31.16","31.17","31.21","31.26","31.37","31.38","31.42","31.45","31.46","31.51"],"artplayer":["1.2","1.3","1.4","1.5","1.7","1.8","1.9","1.10","1.11","1.12","3.2","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","13.2","25.11","25.21","25.22","25.41","25.48"],"d":["1.6"],"info":["1.11","2.12","5.15","5.26","5.29","5.30","5.41","5.42","9.5","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","15.9","15.14","15.15","15.23","15.26","15.29","15.30","15.31","15.32","15.35","15.36","19.5","31.32"],"const":["2.0","5.18","5.19","9.5","12.0","15.18","15.19","19.5","20.10","27.13"],"onready":["2.0","12.0"],"console":["2.1","2.3","2.4","2.5","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.24","2.25","2.26","2.27","2.29","2.30","2.31","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.40","2.41","5.25","5.26","5.29","5.39","5.41","5.42","5.43","9.5","11.2","11.3","11.4","11.5","11.7","11.8","11.9","11.10","11.11","11.12","12.5","12.7","12.8","12.9","12.10","12.12","12.13","12.15","12.27","12.31","12.41","15.9","15.14","15.15","15.23","15.26","15.29","15.30","15.31","15.35","15.36","15.42","15.43","19.5","20.5","26.5","27.17","31.32"],"event":["2.5","2.7","2.8","2.9","2.10","2.12","2.13","2.22","2.41","5.41","9.2","9.5","12.5","12.7","12.8","12.9","12.10","12.12","12.13","12.22","18.1","21.13"],"reconnecttime":["2.11","12.11"],"state":["2.12","2.15","2.16","2.21","2.23","2.24","2.25","2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","9.2","9.6","9.7","12.12","12.15","12.21","12.23","12.24","12.25","12.32","12.33","12.34","12.35","12.36","12.37","12.38","19.2","19.7"],"height":["2.18","9.7","19.6","19.7"],"datauri":["2.26","12.26"],"currenttime":["2.27","12.27"],"offset":["2.28"],"cues":["2.29","2.30","2.31","12.29","12.30","12.31"],"option":["2.31","12.31","22.2","28.2","29.6"],"load":["2.46","12.46"],"方法重新加载它":["2.46"],"基本上用不到":["3.0"],"app":["3.1","3.4","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.24","3.25","3.26","3.27","3.31","3.32","3.34","10.11","10.12","11.1","13.1","13.3","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","13.34","15.4","15.5","15.42","20.10","21.11","25.3","25.6","25.8","25.11","25.12","25.14","25.15","25.16","25.18","25.20","25.21","25.22","25.23","25.24","25.26","25.28","25.35","25.38","25.41","25.44","25.45","25.46","25.48","25.49","25.51","26.10","26.13","31.3","31.11","31.22","31.35"],"url":["3.1","3.3","3.4","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.23","3.24","3.25","3.26","3.27","3.31","3.32","3.33","3.34","10.12","11.1","13.1","13.3","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.22","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","13.34","15.4","15.5","15.29","15.42","20.10","21.11","25.5","25.6","25.8","25.9","25.11","25.12","25.13","25.14","25.15","25.16","25.18","25.20","25.21","25.22","25.23","25.24","25.26","25.28","25.35","25.38","25.44","25.45","25.46","25.48","25.49","25.51","26.10","27.1","31.6","31.11","31.12","31.18","31.20","31.22","31.23","31.24","31.27","31.28","31.35","31.44","31.48","31.49"],"assets":["3.1","3.3","3.4","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25","3.26","3.27","3.31","3.32","3.33","3.34","10.11","10.12","11.1","13.3","13.4","13.8","13.9","13.10","13.11","13.12","13.13","13.17","13.18","13.21","13.22","13.23","13.24","13.31","13.32","13.33","13.34","15.4","15.5","15.29","15.42","15.43","20.10","21.10","21.11","25.5","25.6","25.8","25.9","25.12","25.13","25.14","25.15","25.16","25.18","25.20","25.21","25.22","25.23","25.24","25.26","25.28","25.35","25.37","25.38","25.41","25.44","25.45","25.46","25.48","25.49","25.51","26.10","31.3","31.6","31.8","31.9","31.11","31.12","31.13","31.14","31.15","31.16","31.18","31.20","31.21","31.22","31.23","31.24","31.26","31.27","31.28","31.35","31.38","31.41","31.44","31.45","31.46","31.48","31.49","31.51"],"loop":["3.5","3.6","3.7","13.5","13.6","13.7"],"flip":["3.5","3.6","3.7","13.5","13.6","13.7"],"dblclick":["3.17"],"setting":["3.28","3.29","12.28","13.28","13.29","19.1","27.13"],"playbackrate":["3.28","13.28"],"contextmenu":["3.28","3.29","3.30","13.29","13.30"],"aspectratio":["3.29","10.16","13.29"],"show":["3.29","3.30","9.8","13.30","19.8","25.29","25.31","27.11","27.18","31.29","31.31"],"click":["4.0","5.37","5.41","14.0","15.37"],"marginright":["4.0","14.0"],"比较常用":["5.0"],"muted":["5.1","15.1","15.25"],"seek":["5.8","15.8","15.11","15.13"],"switch":["5.12"],"和":["5.12","7.1","29.4","29.6"],"的功能是一样的":["5.12"],"只是":["5.12"],"有的视频是没有时长的":["5.16"],"async":["5.18","5.19","15.18","15.19","21.9"],"await":["5.18","5.19","15.18","15.19"],"t":["5.23"],"json":["5.28"],"stringify":["5.28"],"resize":["5.33","27.15"],"当你的容器只有宽度":["5.33"],"playsinline":["5.34","15.34"],"m3u8":["5.35","25.2","31.41"],"000":["5.36"],"right":["5.37","7.1","15.37"],"html":["5.37","10.8","10.9","10.10","15.37"],"timeupdate":["5.39"],"green":["5.44","15.44"],"1080p":["5.45","15.45"],"png":["5.46","15.46","25.36","25.39","31.36","31.39"],"组件点击事件":["6.1","8.1"],"mounted":["6.1","8.1","16.1","18.1","25.29","27.13","31.29"],"组件挂载后触发":["6.1","8.1"],"get":["6.2","6.3","7.2","7.3","8.2","8.3","16.2","16.3","17.2","17.3","18.2","18.3"],"the":["6.2","6.3","6.4","6.5","7.2","7.3","7.4","8.2","8.3","8.4","9.8","16.2","16.3","16.4","16.5","17.2","17.3","17.4","18.2","18.3","18.4","19.8","25.19"],"element":["6.2","6.3","7.2","7.3","8.2","8.3","16.2","16.3","17.2","17.3","18.2","18.3"],"of":["6.2","6.3","7.2","7.3","8.2","8.3","10.5","12.53","16.2","16.3","17.2","17.3","18.2","18.3"],"by":["6.2","6.3","6.4","6.5","7.2","7.4","8.4","16.2","16.3","16.4","16.5","17.2","17.4","18.4","22.4","24.0"],"delete":["6.4","7.4","8.4","9.8","16.4","17.4","18.4","19.8"],"控制控制器出现的左右位置":["7.1"],"selector":["7.1","17.1"],"array":["7.1","17.1","21.12"],"return":["7.2","17.2","27.9"],"control":["7.2","7.3","7.4","17.2","17.3","17.4"],"200px":["8.5","18.5"],"svg":["9.2","9.6","9.7","19.2","19.6","19.7"],"item":["9.2","9.6","19.2"],"720p":["9.3","19.3"],"360p":["9.3","19.3"],"nextstate":["9.5","19.5"],"src":["9.6","9.7","19.2","19.6","19.7","23.2","29.2"],"pip":["9.9","19.9"],"mode":["9.9","19.9","23.3"],"close":["9.9","19.9"],"are":["10.0","11.0","15.0","25.2"],"less":["10.0"],"commonly":["10.0","15.0"],"modify":["10.1","10.4","20.11","20.13"],"this":["10.1","10.2"],"object":["10.1","21.13","22.4"],"named":["10.2"],"with":["10.2","20.12","21.5","22.4","26.12"],"a":["10.2","12.48","15.12","15.20","15.22"],"prefix":["10.2"],"is":["10.2","15.12","20.5","22.1","22.8","23.1","23.2","25.47"],"definition":["10.2","10.5"],"note":["10.3","10.14","15.28","20.13","25.4"],"if":["10.3","10.6","10.7","21.12","25.4","25.17"],"you":["10.3","10.6","10.7","25.47"],"need":["10.3","20.11","20.13","25.47"],"that":["10.3","15.16","21.7","21.8"],"should":["10.3"],"only":["10.3","10.14","15.5","15.41","23.2","25.19"],"exist":["10.3","15.41"],"during":["10.3","21.12"],"can":["10.4","21.12"],"after":["10.6","10.14","16.1","18.1","22.6","25.19"],"instantiation":["10.6"],"want":["10.6","10.7"],"before":["10.6","20.13","21.12"],"hide":["10.7","27.18"],"some":["10.8","10.9","10.10"],"text":["10.8","10.9","10.10","21.10","21.11","27.7","27.9"],"position":["10.9","15.37"],"these":["10.14","22.8"],"take":["10.14","25.19"],"effect":["10.14","25.19"],"subtitleoffset":["10.16"],"something":["10.17"],"dosomething":["10.17"],"which":["11.0","15.0"],"rarely":["11.0"],"following":["11.6","20.11"],"address":["11.6"],"off":["12.0"],"end":["12.42","12.47"],"without":["12.42"],"stopping":["12.42","12.43"],"for":["12.42","12.43","22.6","24.0","25.10","25.30","25.31","25.32","25.50"],"property":["12.45"],"changes":["12.45"],"method":["12.46","15.12"],"called":["12.46"],"its":["12.47","21.2","22.2","22.7"],"supported":["12.48","23.2","23.4","25.2"],"finished":["12.49"],"lack":["12.53"],"resource":["12.54"],"unexpectedly":["12.58"],"not":["12.58","20.5","22.0","23.6"],"suspended":["12.59"],"has":["12.60"],"changed":["12.60"],"data":["12.62"],"future":["13.0"],"and":["13.0","20.11"],"container":["13.1","13.4","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","13.34","20.10","21.1","25.3","25.18","25.21","25.22","25.26","25.35","25.38","25.41","25.44","25.48","26.3","31.35"],"log":["13.2","20.5","26.5"],"new":["13.14","13.15","13.16","13.25","13.34","20.8","20.9","25.11","25.22","25.27","25.41","26.8","31.27"],"var":["13.34","25.11","25.22"],"art":["13.34","25.11","25.22","25.27"],"controls":["14.0","27.20"],"tooltip":["14.0","16.1"],"returns":["15.12"],"promise":["15.12","21.6"],"it":["15.12","15.33","15.41","20.13","22.4","22.8","23.5"],"resolve":["15.12","21.6","27.9"],"s":["15.12","15.41","21.13"],"been":["15.16","22.0","23.0"],"fully":["15.16"],"decoded":["15.16"],"in":["15.16","20.4","21.12","23.1"],"mechanisms":["15.20"],"user":["15.20","15.22"],"interaction":["15.20","15.22"],"e":["15.20","15.22","25.7"],"g":["15.20","15.22","25.7"],"dimension":["15.28"],"exact":["15.33"],"unknown":["15.33"],"lifecycle":["15.41"],"triggered":["16.1","18.1"],"mount":["16.1","18.1"],"appears":["17.1"],"objects":["17.1"],"selection":["17.1"],"list":["17.1"],"img":["19.6"],"width":["19.6","27.20"],"have":["20.3","22.0","22.3","22.7","23.0","23.3"],"defined":["20.3"],"tip":["20.3","20.9","26.9","26.11"],"see":["20.3"],"more":["20.3","25.10","25.42"],"will":["20.4"],"reactive":["20.5"],"import":["20.6","20.12","26.12"],"current":["20.8","22.4","26.8"],"full":["20.9"],"typescript":["20.9","26.9"],"support":["20.11"],"even":["20.11"],"older":["20.11"],"configuration":["20.11","25.31","25.32"],"title":["20.12"],"map":["20.12","26.12","27.20"],"npm":["21.0","22.0","23.0","28.0","29.0"],"unversioned":["21.0","22.0","23.0"],"cdn":["21.0"],"links":["21.0"],"still":["21.0"],"own":["21.1","22.8"],"builds":["21.2"],"expose":["21.2"],"artplayerplugindanmuku":["21.2","21.10","27.7","27.8"],"pass":["21.2"],"result":["21.2","29.6"],"preserved":["21.4"],"negative":["21.4"],"times":["21.4"],"clamped":["21.4"],"zero":["21.4"],"other":["21.4","21.7","22.3","23.5","25.2"],"than":["21.4"],"theme":["21.5"],"dark":["21.5","27.16"],"light":["21.5"],"external":["21.5"],"font":["21.5","27.5"],"size":["21.5","27.5"],"override":["21.5"],"slider":["21.5"],"definitions":["21.5"],"min":["21.5","27.5"],"max":["21.5","27.5"],"steps":["21.5"],"each":["21.5"],"step":["21.5"],"time":["21.6","21.9","21.10","21.11"],"alternatives":["21.6"],"rejection":["21.7"],"emits":["21.7"],"error":["21.7"],"once":["21.7","22.2"],"items":["21.7"],"continue":["21.7"],"pause":["21.7"],"resume":["21.7"],"reset":["21.7"],"replacing":["21.7"],"internal":["21.8"],"owner":["21.8"],"same":["21.8","22.3","23.3","25.47"],"different":["21.8","22.7","25.47"],"facade":["21.8"],"keep":["21.8"],"plugins":["21.9","21.10","21.11","27.7","27.8","27.21"],"emitter":["21.9"],"function":["21.9","21.11","27.10","27.13","27.20","31.32"],"updatecomments":["21.9"],"fullscreenweb":["21.10"],"input":["21.10"],"example":["21.11"],"particular":["21.12"],"an":["21.12","22.0","25.4"],"initially":["21.12"],"empty":["21.12"],"finish":["21.12"],"construction":["21.12"],"invoking":["21.12"],"augment":["21.13"],"core":["21.13"],"declarations":["21.13"],"automatically":["21.13"],"also":["21.13"],"exposes":["21.13","22.7"],"existing":["21.13"],"icons":["21.13"],"customization":["21.13"],"fixes":["22.0"],"yet":["22.0","23.0"],"published":["22.0","23.0"],"pin":["22.1","23.1"],"your":["22.1","22.8","23.7"],"dependency":["22.1"],"versions":["22.1","23.1"],"use":["22.1","25.1"],"initialize":["22.2","28.2"],"autoplay":["22.2","28.2"],"else":["22.2","27.11","28.2","29.2"],"notice":["22.2","23.2","29.2"],"unsupported":["22.2","23.2"],"playback":["22.2","22.8","23.2"],"format":["22.2","23.2"],"chooses":["22.2"],"sdk":["22.2"],"capability":["22.2"],"path":["22.2"],"per":["22.2"],"player":["22.2","25.19"],"equal":["22.3"],"collapse":["22.3"],"into":["22.3"],"displayed":["22.3","24.0"],"choice":["22.3"],"include":["22.3"],"bitrate":["22.3"],"when":["22.3","23.2"],"several":["22.3"],"variants":["22.3","23.3"],"calls":["22.4"],"setcurrenttrack":["22.4","28.4"],"original":["22.4"],"track":["22.4"],"matches":["22.4"],"identity":["22.4"],"menu":["22.5"],"names":["22.5"],"asynchronous":["22.5"],"getter":["22.5","28.5"],"formatter":["22.5"],"fails":["22.5"],"warns":["22.5"],"stops":["22.5"],"observation":["22.5"],"clears":["22.5"],"become":["22.6"],"inactive":["22.6"],"replacement":["22.6"],"destruction":["22.6"],"application":["22.6","23.1","29.2"],"remains":["22.6"],"responsible":["22.6"],"drm":["22.6"],"bitrateinfo":["22.7","28.7"],"representation":["22.7"],"compiler":["22.7"],"module":["22.7"],"resolution":["22.7"],"requirements":["22.7"],"so":["22.7"],"test":["22.7","22.8"],"safari":["22.8","23.7","28.8"],"device":["22.8"],"acceptance":["22.8","23.7"],"global":["23.1"],"install":["23.2"],"browser":["23.2"],"instead":["23.2"],"plays":["23.2"],"natively":["23.2"],"assigns":["23.2"],"lists":["23.3"],"remove":["23.3","23.5"],"menus":["23.3"],"choosing":["23.3"],"writes":["23.3"],"hls":["23.3","29.3"],"currentlevel":["23.3","29.3"],"selected":["23.3"],"reflects":["23.3"],"automatic":["23.3"],"autolevelenabled":["23.3","29.3"],"throw":["23.4"],"like":["23.4","25.2"],"integrations":["23.4"],"hooks":["23.4"],"must":["23.4","25.10"],"call":["23.4"],"their":["23.4"],"does":["23.5"],"consumers":["23.5"],"listeners":["23.5"],"implement":["23.5"],"js":["23.5","25.22","28.7","29.5"],"root":["23.6"],"entry":["23.6"],"legacy":["23.6","29.6"],"paths":["23.6"],"remain":["23.6"],"available":["23.6"],"do":["23.6"],"pretend":["23.6"],"every":["23.6"],"ios":["23.7","29.7"],"native":["23.7"],"verify":["23.7"],"actual":["23.7"],"streams":["23.7"],"default":["24.0"],"i18n":["24.0","24.3"],"syntax":["24.0","25.50"],"lang":["24.1","30.1"],"window":["24.2","30.2"],"imported":["24.4","30.4"],"aspect":["25.1"],"ratio":["25.1","31.1"],"ogg":["25.2","31.2"],"webm":["25.2","31.2"],"or":["25.2"],"flv":["25.2"],"inside":["25.4"],"callback":["25.4"],"refers":["25.4"],"instance":["25.4"],"however":["25.4"],"arrow":["25.4"],"next":["25.7"],"initialization":["25.7"],"page":["25.7"],"refresh":["25.7"],"be":["25.10"],"set":["25.10"],"screenshotting":["25.17"],"may":["25.17"],"fail":["25.17"],"source":["25.17"],"gains":["25.19"],"focus":["25.19"],"innerhtml":["25.27"],"component":["25.31","25.32"],"please":["25.32"],"refer":["25.32"],"sd":["25.33"],"480p":["25.33","31.33"],"谁でもいいはずなのに":["25.34","31.34"],"夏の想い出がまわる":["25.34","31.34"],"all":["25.39"],"icon":["25.39"],"but":["25.40"],"cannot":["25.40"],"zh":["25.43","31.43"],"cn":["25.43","31.43"],"then":["25.47"],"reference":["25.50"],"的尺寸":["26.3"],"所以你的容器":["26.3"],"必须是有尺寸的":["26.3"],"非响应式":["26.4"],"在":["26.4"],"400px":["26.5"],"margin":["26.5"],"60px":["26.5"],"auto":["26.5"],"全部":["26.9"],"定义":["26.9"],"volume":["26.10"],"假如你要兼容更古老的浏览器时":["26.11"],"请修改以下配置然后自行构建":["26.11"],"body":["26.12"],"默认仍加载已发布版本":["27.0"],"初始为白色":["27.4"],"border":["27.4"],"弹幕是否有描边":["27.4"],"默认为":["27.4"],"不透明度配置项":["27.5"],"弹幕字号配置项":["27.5"],"显示区域配置项":["27.5"],"弹幕速度配置项":["27.5"],"颜色列表配置项":["27.5"],"可覆盖滑块的":["27.5"],"包含来自服务端的和来自用户输入的":["27.6"],"length":["27.6"],"这是弹幕即将显示的时触发的函数":["27.6"],"当返回true后才表示可以马上发送到播放器里":["27.6"],"target":["27.11"],"innertext":["27.11"],"color":["27.12"],"math":["27.12"],"floor":["27.12"],"random":["27.12"],"0xffffff":["27.12"],"tostring":["27.12"],"alignitems":["27.13"],"center":["27.13"],"queryselector":["27.13"],"追加":["27.14"],"追加新的弹幕库":["27.14"],"参数类型和option":["27.14"],"danmuku相同":["27.14"],"xml":["27.15","27.16","27.17"],"start":["27.18"],"弹幕开始":["27.18"],"弹幕隐藏":["27.18"],"其他项继续处理":["27.19"],"暂停后恢复":["27.19"],"或更换回调后":["27.19"],"仍符合时间条件的项可重试":["27.19"],"暂停":["27.19","31.19"],"drawpoints":["27.20"],"offsetwidth":["27.20"],"显式描述事件参数":["27.21"],"不会自动扩展核心历史事件声明":["27.21"],"工厂仍暴露":["27.21"],"自动刷新和生命周期修复尚未发布":["28.0"],"未固定版本的":["28.0","29.0"],"插件全局名称为":["28.1"],"customtype":["28.2"],"plaympd":["28.2"],"mediaplayer":["28.2"],"create":["28.2"],"id":["28.3"],"这些元数据可能缺失或为":["28.3"],"null":["28.3"],"自定义回调应像完整示例一样返回字符串回退":["28.3"],"空标题或空":["28.3"],"文字会使用默认值":["28.3"],"相同文字标签会合并成一个选项":["28.3"],"选择音轨时":["28.4"],"把原始":["28.4"],"轨道对象交给":["28.4"],"当前项优先通过对象身份匹配":["28.4"],"再通过可用":["28.4"],"audio":["28.5"],"菜单名":["28.5","29.4"],"其他菜单请避开这些名称":["28.5"],"异步":["28.5"],"或格式回调失败时":["28.5"],"错误":["28.6"],"自动播放策略":["28.6"],"以及自身集成所需的异步":["28.6"],"使用实际":["28.7"],"声明时":["28.7"],"的画质类型为":["28.7"],"或真机播放已验收":["28.8"],"采用未发布重构前":["28.8"],"应验证自己的":["28.8"],"这里说明的自动刷新与生命周期修复尚未发布":["29.0"],"dist":["29.1"],"loadsource":["29.2"],"attachmedia":["29.2"],"canplaytype":["29.2"],"vnd":["29.2"],"apple":["29.2"],"mpegurl":["29.2"],"轨道列表变空时会移除对应菜单":["29.3"],"选择画质会写入":["29.3"],"对应":["29.3"],"当":["29.3"],"为":["29.3"],"时":["29.3"],"实例时调用可能抛错":["29.4"],"没有对应事件接口的自定义适配器需要在状态变化后手动刷新":["29.4"],"quality":["29.4"],"移除其他使用者的监听器或实现":["29.5"],"错误恢复":["29.5"],"根入口导出":["29.6"],"config":["29.6"],"qualitylevel":["29.6"],"audiotrack":["29.6"],"类型":["29.6"],"原根入口及":["29.6"],"原生":["29.7"],"已验收":["29.7"],"写法参考":["30.0","31.50"],"默认支持三种视频文件格式":["31.2"],"播放器会缓存最后一次音量的大小":["31.7"],"假如希望默认进入页面就能自动播放视频":["31.10"],"必需为":["31.10"],"视频快进":["31.19"],"视频快退":["31.19"],"space":["31.19"],"切换播放":["31.19"],"subtitle":["31.25"],"args":["31.32"],"hd":["31.33"],"webkit":["31.38"],"全部图标的定义":["31.39"],"但无法解析这种后缀":["31.40"],"作为":["31.47"],"key":["31.47"],"来缓存播放进度的":["31.47"],"但假如你的同一个视频的":["31.47"]},{"0":["5.10","5.11","5.13","5.16","5.23","15.10","15.11","15.13","15.16","15.23","20.10","26.10"],"1":["5.47","9.7","15.47","19.7","27.7","27.9","28.7"],"2":["5.8","15.8","15.31","21.9"],"5":["5.6","5.7","9.7","15.6","15.7","15.9","15.15","19.7","20.10","26.10"],"9":["15.32","31.1"],"10":["5.46","9.7","15.46","19.7","25.36","31.36"],"50":["21.5"],"60":["5.46","15.46"],"240":["25.34"],"300":["25.34","31.34"],"360":["19.3"],"404":["3.14","3.15","13.14","13.15"],"1000":["0.13","0.15","10.8","10.9","10.10","10.13","10.15","10.16"],"3000":["0.12","5.2","5.3","5.8","5.11","5.13","5.21","5.45","6.4","6.5","7.4","7.5","8.4","8.5","9.8","9.9","10.12","15.2","15.3","15.8","15.11","15.13","15.21","15.45","16.4","16.5","17.4","17.5","18.4","18.5","19.8","19.9"],"对象":["0.1"],"播放器不会马上做出响应":["0.1"],"types":["0.2","2.0","10.2","10.5","20.9","24.0","25.39","25.50","26.9","31.39"],"d":["0.2","0.5","2.0","10.2","10.5","11.6","12.0","24.0","25.39","25.50","30.0","31.39","31.50"],"ts":["0.2","0.5","1.6","2.0","10.2","10.5","11.6","12.0","24.0","25.39","25.50","30.0","31.39","31.50"],"warning":["0.3","0.9","0.10","0.14","0.16","2.0","10.8","10.9","10.10","10.16","12.0","25.1","25.36","25.43","26.5","31.1","31.29","31.30","31.36","31.43"],"提示":["0.3","0.14","5.28","5.41","26.13","31.1","31.4","31.19"],"假如你需要一些":["0.3","5.41"],"事件只存在于播放器的生命周期上时":["0.3","5.41"],"强烈建议使用这些函数":["0.3"],"以避免造成内存泄漏":["0.3","5.41"],"your":["0.4","5.17","10.4","15.17","22.7","23.5","23.6"],"假如想在实例化之前更新":["0.6"],"请使用基础选项的":["0.6"],"来更新":["0.6"],"的显示":["0.7"],"组件配置":["0.8","0.9","0.10","31.29","31.31","31.32"],"请参考以下地址":["0.8","0.9","0.10","0.16","31.29","31.30","31.31","31.32"],"component":["0.8","0.9","0.10","0.16","10.8","10.9","10.10","10.16","25.29","25.30","31.29","31.30","31.31","31.32"],"color":["0.11","10.11","25.37","31.37"],"red":["0.11","10.11"],"false":["0.12","0.13","5.21","9.9","10.8","10.9","10.10","10.12","10.13","10.15","10.16","15.21","19.9","25.22","25.45","31.22","31.45"],"只在播放器获得焦点后":["0.14","31.19"],"如点击了播放器后":["0.14","31.19"],"这些快捷键才会生效":["0.14","31.19"],"true":["0.15","3.11","3.12","3.13","3.21","3.22","3.23","3.24","5.24","10.12","10.13","10.15","13.11","13.12","13.13","13.21","13.22","13.23","13.24","15.14","15.24","25.8","25.9","25.11","25.12","25.13","25.14","25.15","25.16","25.18","25.20","25.23","25.24","25.26","25.27","25.38","25.44","25.46","25.48","25.49","27.12","31.8","31.9","31.11","31.12","31.13","31.14","31.15","31.16","31.18","31.20","31.23","31.24","31.26","31.27","31.38","31.44","31.46","31.48","31.49"],"设置面板":["0.16"],"html":["0.16","10.16","20.1","25.42","25.43","26.1","27.2","31.42","31.43"],"ready":["0.17","2.0","5.1","5.4","5.47","10.17","15.1","15.4","15.6","15.7","15.24","15.27","15.47","21.11","27.20"],"off":["2.0"],"全部事件请参考以下地址":["2.0"],"events":["2.0"],"info":["2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.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","5.18","5.19","5.25","5.38","5.39","5.40","5.43","9.2","9.6","12.1","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10","12.11","12.12","12.13","12.14","12.15","12.16","12.17","12.18","12.19","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.27","12.28","12.29","12.30","12.31","15.18","15.19","15.25","15.38","15.39","15.40","15.42","15.43","19.2","19.6","21.9","27.17"],"console":["2.2","2.6","2.19","2.28","2.39","3.8","3.9","3.10","3.17","5.18","5.19","5.38","5.40","9.2","9.6","12.1","12.2","12.3","12.4","12.6","12.11","12.14","12.16","12.17","12.18","12.19","12.20","12.21","12.22","12.23","12.24","12.25","12.26","12.28","12.29","12.30","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","13.8","13.9","13.10","13.17","15.18","15.19","15.25","15.38","15.39","15.40","19.2","19.6","21.9","27.12"],"log":["2.32","2.33","2.34","2.35","2.36","2.37","2.38","2.39","2.40","2.41","3.8","3.9","3.10","3.17","12.32","12.33","12.34","12.35","12.36","12.37","12.38","12.39","12.40","12.41","13.8","13.9","13.10","13.17"],"video":["3.1","3.3","3.4","3.16","3.18","3.19","3.20","3.25","3.26","3.27","3.32","13.3","13.4","13.11","13.12","13.13","13.16","13.18","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","25.3","25.6","25.8","25.11","25.12","25.18","25.20","25.21","25.22","25.23","25.24","25.26","25.27","25.35","25.44","25.49","31.3","31.11","31.27","31.35"],"mp4":["3.1","3.3","3.4","3.11","3.12","3.13","3.14","3.15","3.16","3.18","3.19","3.20","3.21","3.23","3.24","3.25","3.26","3.27","3.31","3.32","3.33","11.1","13.1","13.3","13.4","13.11","13.12","13.13","13.14","13.15","13.16","13.18","13.19","13.20","13.21","13.23","13.24","13.25","13.26","13.27","13.31","13.32","13.33","25.3","25.6","25.8","25.9","25.11","25.12","25.13","25.14","25.15","25.16","25.18","25.20","25.21","25.22","25.23","25.24","25.26","25.27","25.28","25.35","25.44","25.45","25.46","25.48","25.49","25.51","31.3","31.6","31.11","31.12","31.18","31.20","31.22","31.23","31.24","31.27","31.28","31.35","31.44","31.48","31.49"],"playbackrate":["3.5","3.6","3.7","13.5","13.6","13.7"],"aspectratio":["3.5","3.6","3.7","13.5","13.6","13.7"],"autoplayback":["3.11","3.12","3.13","13.11","13.12","13.13"],"sample":["3.14","3.15","3.16","3.19","3.20","3.25","3.26","13.1","13.3","13.4","13.14","13.15","13.16","13.18","13.19","13.20","13.25","13.26","13.27","13.31","13.32","25.3","25.11","25.21","25.22","25.27","25.48","31.3","31.27"],"autoorientation":["3.21","13.21"],"show":["3.22","3.28","13.22","13.28","13.29","21.9","27.5"],"fastforward":["3.23","3.24","13.23","13.24"],"fullscreenweb":["3.31","13.31"],"miniprogressbar":["3.33","13.33"],"只销毁界面":["3.34"],"不主动清空":["3.34"],"pause":["4.0","14.0"],"layer":["4.0","14.0"],"png":["4.0","14.0"],"仅重置":["5.5"],"不移除界面":["5.5"],"t":["5.10","5.11","5.13","15.10","15.11","15.13","15.23"],"方法会返回":["5.12"],"promise":["5.12"],"当":["5.12"],"resolve":["5.12"],"时表示新地址是可以播放":["5.12"],"reject":["5.12","15.12"],"时表示新地址加载错误":["5.12"],"例如直播中的视频或者没被解码完成的视频":["5.16"],"这个时候获取的时长会是":["5.16"],"name":["5.17","15.17","21.5","27.5"],"由于浏览器安全机制":["5.20","5.22","31.17"],"触发窗口全屏前":["5.20"],"页面必须先存在交互":["5.20","5.22"],"例如用户点击过页面":["5.20","5.22"],"触发画中画前":["5.22"],"默认":["5.26"],"尺寸和坐标信息是通过":["5.28"],"getboundingclientrect":["5.28","15.28"],"获取的":["5.28"],"但不知道具体高度时":["5.33"],"这个属性很有用":["5.33"],"它能自动计算出视频的高度":["5.33"],"但你需要确定设置这个属性的时机":["5.33"],"强烈建议使用该函数":["5.41"],"4k":["5.45","15.45"],"number":["5.46","15.46","27.13"],"column":["5.46","15.46"],"tooltip":["6.1","8.1","18.1"],"组件的提示文本":["6.1","8.1"],"remove":["6.4","7.4","8.4","9.8","16.4","17.4","18.4","21.10","22.3","27.16"],"选择列表的对象数组":["7.1"],"onselect":["7.1","17.1"],"选择列表的元素被点击时触发的函数":["7.1"],"by":["7.3","8.2","8.3","9.8","17.3","18.2","18.3","19.8","21.7","23.2"],"left":["8.5","18.5","25.2"],"return":["9.2","9.5","9.6","19.2","19.5","19.6"],"switchquality":["9.3","19.3"],"open":["9.5","19.5"],"event":["9.6"],"x":["9.6","19.6"],"range":["9.7","19.7"],"switch":["9.9","19.9"],"used":["10.0","11.0","13.0","15.0","25.4"],"will":["10.1","15.16","20.5","25.4","25.7"],"not":["10.1","13.34","15.5","22.2","23.2","25.4"],"respond":["10.1"],"immediately":["10.1","10.7"],"s":["10.3","21.2","22.7","23.6","25.40"],"lifecycle":["10.3"],"strongly":["10.3","15.41"],"recommended":["10.3","15.41"],"use":["10.3","10.6","15.41","21.12","22.2","23.1","25.40"],"these":["10.3"],"functions":["10.3"],"avoid":["10.3","15.41"],"memory":["10.3","15.41"],"leaks":["10.3","15.41"],"please":["10.6","10.8","10.9","10.10","10.16","12.0","25.2","25.10","25.29","25.30","25.31"],"option":["10.6"],"in":["10.6","20.5","22.7","23.6"],"basic":["10.6"],"settings":["10.6","25.42","25.43"],"for":["10.8","10.9","10.10","10.16","12.0","15.33","20.13","23.2","23.4","25.4","25.29"],"configuration":["10.8","10.9","10.10","25.29"],"refer":["10.8","10.9","10.10","10.16","12.0","25.2","25.29","25.30","25.31"],"srt":["10.11","25.25","31.25"],"settimeout":["10.12","10.13","10.15","15.3","15.21"],"gains":["10.14"],"focus":["10.14"],"e":["10.14","25.19"],"g":["10.14","25.19"],"clicking":["10.14","25.19"],"on":["10.17","15.4","21.11","25.2","25.19","27.6","27.20","28.2","29.2"],"a":["12.0","17.1","22.1","22.2","23.2"],"complete":["12.0"],"list":["12.0"],"state":["12.39","22.5"],"further":["12.42"],"buffering":["12.42","12.43","23.3"],"to":["12.46","15.33","25.29","25.30","25.31","25.32"],"reload":["12.46"],"it":["12.46","20.11","22.2"],"format":["12.48","28.2","29.2"],"data":["12.53"],"forthcoming":["12.58"],"rarely":["13.0"],"assets":["13.1","13.14","13.15","13.16","13.19","13.20","13.25","13.26","13.27","25.3","25.11","25.27"],"dblclick":["13.17"],"contextmenu":["13.28"],"do":["13.34","15.5"],"clear":["13.34"],"play":["14.0"],"interface":["15.5"],"playable":["15.12"],"fails":["15.12"],"load":["15.12","21.0"],"cases":["15.16"],"obtained":["15.16","15.28"],"be":["15.16"],"page":["15.20","15.22"],"must":["15.20","15.22"],"occur":["15.20","15.22"],"before":["15.20","15.22","22.8","23.7"],"triggering":["15.20","15.22"],"default":["15.26"],"is":["15.26","15.28","21.7","22.4","25.17"],"via":["15.28"],"you":["15.33","21.12","25.40"],"need":["15.33","21.12"],"determine":["15.33"],"timing":["15.33"],"setting":["15.33","25.14","25.15","25.16","25.25","31.14","31.15","31.16","31.25"],"m3u8":["15.35","25.41","31.2"],"000":["15.36"],"timeupdate":["15.39"],"this":["15.41","22.2","23.2","23.4","25.7"],"text":["16.1","18.1","21.12"],"when":["17.1","21.12"],"item":["17.1"],"clicked":["17.1"],"script":["20.1","26.1","27.2"],"examples":["20.3"],"at":["20.3"],"following":["20.3","25.32"],"link":["20.3"],"example":["20.3","26.3"],"update":["20.4","20.5"],"player":["20.4","20.12","21.2","26.12"],"directly":["20.5"],"modifying":["20.5"],"the":["20.5","25.32"],"definitions":["20.9","25.39"],"packages":["20.9","26.9"],"volume":["20.10"],"art8":["20.10","26.10"],"new":["20.10","23.3","26.10"],"yourself":["20.11"],"scripts":["20.11","26.11"],"reference":["20.11","24.0"],"documentation":["20.11"],"browserslist":["20.11","26.11"],"body":["20.12"],"div":["20.12","26.12"],"id":["20.12","23.3","26.12","29.3"],"importing":["20.13"],"dependency":["20.13"],"take":["20.13"],"effect":["20.13"],"release":["21.0","22.0","23.0"],"urls":["21.1","23.1"],"plugins":["21.2"],"array":["21.2"],"modes":["21.4"],"contain":["21.5"],"value":["21.5","25.7","27.5"],"hide":["21.5","21.9","27.5","27.11"],"values":["21.5"],"are":["21.5"],"pairs":["21.5"],"such":["21.5"],"as":["21.5"],"replaces":["21.5"],"palette":["21.5"],"css":["21.5","27.5"],"strings":["21.5"],"empty":["21.5"],"uses":["21.5","22.0","23.0"],"built":["21.5"],"async":["21.6"],"retry":["21.7"],"if":["21.7","25.40"],"eligible":["21.7"],"pausing":["21.7"],"seeking":["21.7"],"hiding":["21.7"],"resetting":["21.7"],"destroying":["21.7"],"cancels":["21.7"],"unfinished":["21.7"],"visibility":["21.7"],"preparation":["21.7"],"using":["21.8"],"subsequent":["21.8"],"commands":["21.8","21.13"],"awaiting":["21.8"],"means":["21.8"],"processing":["21.8"],"has":["21.8","23.3"],"finished":["21.8","23.3"],"appeared":["21.8"],"appended":["21.9"],"scheduled":["21.9"],"from":["21.9"],"hidden":["21.9"],"ishide":["21.9"],"reset":["21.9","27.18"],"dark":["21.10"],"move":["21.10"],"later":["21.10"],"with":["21.10","23.3","25.17"],"otherelement":["21.10"],"drawpoints":["21.11"],"width":["21.11"],"controls":["21.11"],"offsetwidth":["21.11"],"map":["21.11"],"ratio":["21.11","27.20"],"loaded":["21.11","27.20"],"observe":["21.12"],"completion":["21.12"],"textcontent":["21.12","27.6"],"adding":["21.12"],"handler":["21.12"],"package":["21.13"],"readme":["21.13","27.21"],"md":["21.13","27.21"],"architecture":["21.13","27.21"],"describe":["21.13","22.7","23.6"],"module":["21.13"],"ownership":["21.13"],"maintenance":["21.13"],"remaining":["21.13"],"device":["21.13"],"combination":["21.13","22.4","22.7"],"validation":["21.13"],"cdn":["22.0","23.0","28.0","29.0"],"install":["22.0","23.0"],"still":["22.0","23.0"],"browser":["22.1","23.1"],"accessible":["22.1"],"mpd":["22.1","28.1","28.8"],"segments":["22.1"],"cannot":["22.2"],"mediasource":["22.2","28.2"],"displays":["22.2"],"existing":["22.2"],"without":["22.2","23.2"],"creating":["22.2"],"an":["22.2","22.4","23.6"],"or":["22.2","24.1","30.1"],"installing":["22.2","23.2"],"does":["22.2"],"provide":["22.2"],"native":["22.2","23.2"],"fallback":["22.2"],"remain":["22.3"],"separate":["22.3"],"choices":["22.3"],"selected":["22.3"],"duplicate":["22.3"],"keeps":["22.3"],"actual":["22.3"],"key":["22.3"],"object":["22.3"],"lists":["22.3"],"their":["22.3","22.5"],"menus":["22.3"],"unambiguous":["22.4"],"lang":["22.4","28.4"],"fields":["22.4"],"there":["22.4"],"no":["22.4"],"extra":["22.4"],"row":["22.4"],"fix":["22.5"],"recover":["22.5"],"errors":["22.5","22.6","23.5"],"keep":["22.5","23.2"],"throwing":["22.5"],"autoplay":["22.6"],"decisions":["22.6"],"any":["22.6"],"asynchronous":["22.6"],"shutdown":["22.6"],"policy":["22.6","23.5","25.10","31.10"],"integration":["22.6","22.7","23.2","23.6"],"requires":["22.6","23.2"],"externally":["22.7"],"attached":["22.7"],"art":["22.7","23.6","28.7","29.6"],"application":["22.7","23.5","23.6"],"mpds":["22.8"],"drm":["22.8","28.8"],"target":["22.8","23.7","27.14"],"devices":["22.8","23.7"],"adopting":["22.8","23.7"],"unpublished":["22.8","23.7"],"media":["23.1"],"that":["23.1","23.2"],"permit":["23.1"],"access":["23.1"],"selection":["23.2","23.3"],"supplied":["23.2"],"fixed":["23.2"],"instance":["23.2","23.6"],"recreate":["23.2"],"changes":["23.2","25.10","31.10"],"audiotrack":["23.3","29.3"],"mean":["23.3"],"stream":["23.3"],"decoding":["23.3"],"reserve":["23.4"],"menu":["23.4"],"names":["23.4"],"quality":["23.4"],"error":["23.5","27.12"],"recovery":["23.5"],"remains":["23.5"],"responsible":["23.5"],"fatal":["23.5"],"playback":["23.5","28.2","29.2"],"already":["23.6"],"owns":["23.6"],"engine":["23.6"],"see":["24.0"],"note":["25.1"],"among":["25.1"],"all":["25.1"],"options":["25.1"],"only":["25.1"],"required":["25.1"],"third":["25.2"],"party":["25.2"],"libraries":["25.2"],"section":["25.2"],"point":["25.4"],"jpg":["25.5","31.5"],"ffad00":["25.6","31.6"],"read":["25.7","25.10"],"cached":["25.7"],"information":["25.10"],"cross":["25.17"],"origin":["25.17"],"website":["25.17"],"disable":["25.22"],"url":["25.27"],"panel":["25.30"],"address":["25.32"],"hd":["25.33"],"720p":["25.33","31.33"],"こんなとこにあるはずもないのに":["25.34","31.34"],"终わり":["25.34","31.34"],"generate":["25.36"],"online":["25.36"],"tool":["25.36","31.36"],"03a9f4":["25.37","31.37"],"font":["25.37","31.37"],"size":["25.37","31.37"],"30px":["25.37","31.37"],"webkit":["25.38"],"playsinline":["25.38","31.38"],"therefore":["25.40"],"best":["25.40"],"also":["25.40"],"start":["25.42","25.43","31.42","31.43"],"i18n":["25.42","31.42"],"tw":["25.43","31.43"],"more":["25.43"],"identify":["25.47"],"unique":["25.47"],"document":["25.51","31.51"],"createelement":["25.51","31.51"],"tip":["26.3"],"以下链接可以看到更多的使用例子":["26.3"],"里直接修改":["26.4","26.5"],"是不会改变播放器的":["26.4","26.5"],"非响应式":["26.5"],"在":["26.5"],"构建配置":["26.11"],"build":["26.11"],"参考文档":["26.11"],"你需要在引入":["26.13"],"依赖前来修改它才会生效":["26.13"],"style":["27.4"],"弹幕自定义样式":["27.4"],"默认为空对象":["27.4"],"steps":["27.5"],"每个":["27.5"],"step":["27.5"],"可包含":["27.5"],"的":["27.5"],"是上下边距数组":["27.5"],"用":["27.5"],"颜色字符串数组替换调色板":["27.5"],"空数组使用内置调色板":["27.5"],"弹幕已经出现在播放器里":["27.6"],"你可以访问到弹幕的dom元素里":["27.6"],"ref":["27.6"],"ଘ":["27.6"],"੭ˊᵕˋ":["27.6"],"੭":["27.6"],"使用数组":["27.7"],"time":["27.7","27.9"],"使用":["27.9","28.7"],"异步返回":["27.9"],"显示弹幕":["27.10","27.11"],"border":["27.12"],"addeventlistener":["27.13"],"change":["27.13"],"fontsize":["27.13"],"const":["27.14"],"destroy":["27.16","27.18"],"也可以手动挂载":["27.16"],"弹幕显示":["27.18"],"弹幕重置":["27.18"],"弹幕销毁":["27.18"],"seek":["27.19"],"隐藏":["27.19"],"和销毁会取消尚未完成的显示准备":["27.19"],"icons":["27.21"],"对象供自定义图标":["27.21"],"包内":["27.21"],"和":["27.21"],"维护模块职责":["27.21"],"验证命令及尚未完成的设备和组合验收":["27.21"],"安装仍使用已发布版本":["28.0","29.0"],"应用应固定依赖版本":["28.1"],"并使用浏览器可访问的":["28.1"],"和媒体片段":["28.1"],"notice":["28.2"],"unsupported":["28.2","29.2"],"示例在创建播放器时固定":["28.2"],"sdk":["28.2"],"能力分支":["28.2"],"若":["28.2"],"无法使用":["28.2"],"则保留原来的格式不支持提示":["28.2"],"不创建":["28.2"],"或安装依赖它的控制插件":["28.2"],"这个示例没有提供原生":["28.2"],"回退":["28.2"],"若同高度的多个档位需要分别显示":["28.3"],"可以在标签中加入码率或其他元数据":["28.3"],"选中重复项时":["28.3"],"会保留实际选中的":["28.3"],"标识或轨道对象":["28.3"],"轨道列表变空时移除对应菜单":["28.3"],"index":["28.4"],"字段的唯一组合匹配":["28.4"],"不会任意选中有歧义的项":["28.4"],"音轨列表没有额外":["28.4"],"行":["28.4"],"插件会输出警告":["28.5"],"停止该观察并清除菜单":["28.5"],"修正回调或":["28.5"],"状态后调用":["28.5"],"恢复":["28.5"],"显式更新和同步选择的错误仍按原语义抛出":["28.5"],"关闭策略":["28.6"],"representation":["28.7"],"其编译器与模块解析要求不同":["28.7"],"应验证实际":["28.7"],"组合":["28.7"],"在应用的集成类型中描述外部附加的":["28.7"],"和目标设备":["28.8"],"插件全局名称为":["29.1"],"应用中应固定依赖版本":["29.1"],"并使用允许浏览器访问的视频地址":["29.1"],"仅在支持":["29.2"],"时安装控制插件":["29.2"],"若改用浏览器原生":["29.2"],"示例直接设置":["29.2"],"不安装必须依赖":["29.2"],"的插件":["29.2"],"该插件不会为原生播放提供画质或音轨选择":["29.2"],"单个播放器实例保持固定的":["29.2"],"更换播放集成方式时重新创建播放器":["29.2"],"当前标签反映自动模式":["29.3"],"选择音轨会把":["29.3"],"写入":["29.3"],"菜单选择是同步操作":["29.3"],"不代表新流已经完成缓冲或解码":["29.3"],"audio":["29.4"],"由插件使用":["29.4"],"其他菜单请使用不同名称":["29.4"],"应用仍负责处理":["29.5"],"致命错误和播放策略":["29.5"],"路径继续保留":["29.6"],"声明不会假定每个":["29.6"],"实例都有":["29.6"],"请在应用的集成类型中描述":["29.6"],"采用尚未发布的重构前":["29.7"],"应验证实际媒体与目标设备":["29.7"],"全部选项里":["31.1"],"只有":["31.1"],"是必填的":["31.1"],"如需要播放":["31.2"],"或者":["31.2"],"flv":["31.2"],"等其它格式":["31.2"],"请参考左侧的":["31.2"],"第三方库":["31.2"],"回调函数里的":["31.4"],"就是播放器实例":["31.4"],"但回调函数假如使用了箭头函数":["31.4"],"则不会指向播放器实例":["31.4"],"下次初始化时":["31.7"],"如刷新页面":["31.7"],"播放器会读取该缓存值":["31.7"],"更多信息请阅读":["31.10"],"假如视频源地址和网站是跨域的":["31.17"],"可能会出现截图失败":["31.17"],"关闭毛玻璃效果":["31.22"],"在线生成预览图":["31.36"],"thumbnail":["31.36"],"所以假如你使用了":["31.40"],"最好同时要指明":["31.40"],"function":["31.41"],"更多的语言设置":["31.42","31.43"],"是不同的话":["31.47"],"那么你需要使用":["31.47"],"来标识视频的唯一":["31.47"]}]'},t={"0.0":{t:"# 高级属性\r",p:`这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用 +`,l:"advanced/built-in.html",a:"高级属性"},"0.1":{t:"`option`\r",p:`播放器的选项 +<div className="run-code">▶ Run Code< ...`,l:"advanced/built-in.html#option",a:"option"},"0.2":{t:"`template`\r",p:`管理播放器所有的 DOM 元素 +<div className="run-code">▶ Ru ...`,l:"advanced/built-in.html#template",a:"template"},"0.3":{t:"`events`\r",p:"管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener ...",l:"advanced/built-in.html#events",a:"events"},"0.4":{t:"`storage`\r",p:`管理播放器的本地存储 + +name 属性用于设置缓存的 key +set 方法用于设置缓存 +get 方法用于获取缓存 +del 方 ...`,l:"advanced/built-in.html#storage",a:"storage"},"0.5":{t:"`icons`\r",p:`管理播放器所有的 svg 图标 +<div className="run-code">▶ Ru ...`,l:"advanced/built-in.html#icons",a:"icons"},"0.6":{t:"`i18n`\r",p:`管理播放器的 i18n + +get 方法用于获取 i18n 的值 +update 方法用于更新 i18n 对象 + +<div ...`,l:"advanced/built-in.html#i18n",a:"i18n"},"0.7":{t:"`notice`\r",p:`管理播放器的提示语,只有一个 show 属性用于显示提示语 +<div className="run-code ...`,l:"advanced/built-in.html#notice",a:"notice"},"0.8":{t:"`layers`\r",p:`管理播放器的层 + +add 方法用于动态添加层 +remove 方法用于动态删除层 +update 方法用于动态更新层 +show ...`,l:"advanced/built-in.html#layers",a:"layers"},"0.9":{t:"`controls`\r",p:`管理播放器的控制器 + +add 方法用于动态添加控制器 +remove 方法用于动态删除控制器 +update 方法用于动态更新控 ...`,l:"advanced/built-in.html#controls",a:"controls"},"0.10":{t:"`contextmenu`\r",p:`管理播放器的右键菜单 + +add 方法用于动态添加菜单 +remove 方法用于动态删除菜单 +update 方法用于动态更新菜单 ...`,l:"advanced/built-in.html#contextmenu",a:"contextmenu"},"0.11":{t:"`subtitle`\r",p:`管理播放器的字幕功能 + +url 属性设置和返回当前字幕地址 +style 方法设置当前字幕的样式 +switch 方法设置当前字 ...`,l:"advanced/built-in.html#subtitle",a:"subtitle"},"0.12":{t:"`info`\r",p:`管理播放器的信息面板,常用于查看当前播放器和视频的运行状态,例如版本号、分辨率、时长等。 + +通过 art.info.show ...`,l:"advanced/built-in.html#info",a:"info"},"0.13":{t:"`loading`\r",p:`管理播放器的加载层 + +show 属性用于设置是否显示加载层 +toggle 属性用于切换是否显示加载层 + +<div cl ...`,l:"advanced/built-in.html#loading",a:"loading"},"0.14":{t:"`hotkey`\r",p:`管理播放器的快捷键功能 + +add 方法用于添加快捷键 +remove 方法用于删除快捷键 + +<div className ...`,l:"advanced/built-in.html#hotkey",a:"hotkey"},"0.15":{t:"`mask`\r",p:`管理播放器的遮罩层 + +show 属性用于设置是否显示遮罩层 +toggle 属性用于切换是否显示遮罩层 + +<div cl ...`,l:"advanced/built-in.html#mask",a:"mask"},"0.16":{t:"`setting`\r",p:`管理播放器的设置面板 + +add 方法用于动态添加设置项 +remove 方法用于动态删除设置项 +update 方法用于动态更新 ...`,l:"advanced/built-in.html#setting",a:"setting"},"0.17":{t:"`plugins`\r",p:`管理播放器的插件功能,只有一个方法 add 用于动态添加插件 +<div className="run-cod ...`,l:"advanced/built-in.html#plugins",a:"plugins"},"1.0":{t:"# 静态属性\r",p:`这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用 +`,l:"advanced/class.html",a:"静态属性"},"1.1":{t:"`instances`\r",p:`返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性 +<div className=" ...`,l:"advanced/class.html#instances",a:"instances"},"1.2":{t:"`version`\r",p:`返回播放器的版本信息 +<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#version",a:"version"},"1.3":{t:"`env`\r",p:`返回播放器的环境变量 +<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#env",a:"env"},"1.4":{t:"`build`\r",p:`返回播放器的打包时间 +<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#build",a:"build"},"1.5":{t:"`config`\r",p:`返回视频的默认配置 +<div className="run-code">▶ Run Code ...`,l:"advanced/class.html#config",a:"config"},"1.6":{t:"`utils`\r",p:`返回播放器的工具函数集合 +<div className="run-code">▶ Run C ...`,l:"advanced/class.html#utils",a:"utils"},"1.7":{t:"`scheme`\r",p:`返回播放器选项的校验方案 +<div className="run-code">▶ Run C ...`,l:"advanced/class.html#scheme",a:"scheme"},"1.8":{t:"`Emitter`\r",p:`返回事件分发器的构造函数 +<div className="run-code">▶ Run C ...`,l:"advanced/class.html#emitter",a:"emitter"},"1.9":{t:"`validator`\r",p:`返回选项的校验函数 +<div className="run-code">▶ Run Code ...`,l:"advanced/class.html#validator",a:"validator"},"1.10":{t:"`kindOf`\r",p:`返回类型检测的函数工具 +<div className="run-code">▶ Run Co ...`,l:"advanced/class.html#kindof",a:"kindof"},"1.11":{t:"`html`\r",p:`返回播放器所需的 html 字符串 +<div className="run-code">▶ ...`,l:"advanced/class.html#html",a:"html"},"1.12":{t:"`option`\r",p:`返回播放器的默认选项 +<div className="run-code">▶ Run Cod ...`,l:"advanced/class.html#option",a:"option"},"2.0":{t:"# 实例事件\r",p:`播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件 +监听事件: +<div cl ...`,l:"advanced/event.html",a:"实例事件"},"2.1":{t:"`ready`\r",p:`当播放器首次可以播放器时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#ready",a:"ready"},"2.2":{t:"`restart`\r",p:`当播放器切换地址后并可以播放时触发 +<div className="run-code">▶ ...`,l:"advanced/event.html#restart",a:"restart"},"2.3":{t:"`pause`\r",p:`当播放器暂停时触发 +<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#pause",a:"pause"},"2.4":{t:"`play`\r",p:`当播放器播放时触发 +<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#play",a:"play"},"2.5":{t:"`hotkey`\r",p:`当播放器热键被按下时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#hotkey",a:"hotkey"},"2.6":{t:"`destroy`\r",p:`当播放器销毁时触发 +<div className="run-code">▶ Run Code ...`,l:"advanced/event.html#destroy",a:"destroy"},"2.7":{t:"`focus`\r",p:`当播放器获得焦点时触发 +<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#focus",a:"focus"},"2.8":{t:"`blur`\r",p:`当播放器失去焦点时触发 +<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#blur",a:"blur"},"2.9":{t:"`dblclick`\r",p:`当播放器被双击时触发 +<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#dblclick",a:"dblclick"},"2.10":{t:"`click`\r",p:`当播放器被单击时触发 +<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#click",a:"click"},"2.11":{t:"`error`\r",p:`当播放器加载视频发生错误时触发 +<div className="run-code">▶ Ru ...`,l:"advanced/event.html#error",a:"error"},"2.12":{t:"`hover`\r",p:`当播放器被鼠标移出或者移入时触发 +<div className="run-code">▶ R ...`,l:"advanced/event.html#hover",a:"hover"},"2.13":{t:"`mousemove`\r",p:`当播放器被鼠标经过时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#mousemove",a:"mousemove"},"2.14":{t:"`resize`\r",p:`当播放器尺寸变化时触发 +<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#resize",a:"resize"},"2.15":{t:"`view`\r",p:`当播放器出现在视口时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#view",a:"view"},"2.16":{t:"`lock`\r",p:`在移动端,当锁定的状态发生变化时触发 +<div className="run-code">▶ ...`,l:"advanced/event.html#lock",a:"lock"},"2.17":{t:"`aspectRatio`\r",p:`当播放器长宽比变化时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#aspectratio",a:"aspectratio"},"2.18":{t:"`autoHeight`\r",p:`当播放器自动设置高度时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#autoheight",a:"autoheight"},"2.19":{t:"`autoSize`\r",p:`当播放器自动设置尺寸时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#autosize",a:"autosize"},"2.20":{t:"`flip`\r",p:`当播放器发生翻转时触发 +<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#flip",a:"flip"},"2.21":{t:"`fullscreen`\r",p:`当播放器发生窗口全屏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#fullscreen",a:"fullscreen"},"2.22":{t:"`fullscreenError`\r",p:`当播放器发生窗口全屏错误时触发 +<div className="run-code">▶ Ru ...`,l:"advanced/event.html#fullscreenerror",a:"fullscreenerror"},"2.23":{t:"`fullscreenWeb`\r",p:`当播放器发生网页全屏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#fullscreenweb",a:"fullscreenweb"},"2.24":{t:"`mini`\r",p:`当播放器进入迷你模式时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#mini",a:"mini"},"2.25":{t:"`pip`\r",p:`当播放器进入画中画时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#pip",a:"pip"},"2.26":{t:"`screenshot`\r",p:`当播放器被截图时触发 +<div className="run-code">▶ Run Cod ...`,l:"advanced/event.html#screenshot",a:"screenshot"},"2.27":{t:"`seek`\r",p:`当播放器发生时间跳转时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#seek",a:"seek"},"2.28":{t:"`subtitleOffset`\r",p:`当播放器发生字幕偏移时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#subtitleoffset",a:"subtitleoffset"},"2.29":{t:"`subtitleBeforeUpdate`\r",p:`当字幕更新前触发 +<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitlebeforeupdate",a:"subtitlebeforeupdate"},"2.30":{t:"`subtitleAfterUpdate`\r",p:`当字幕更新后触发 +<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleafterupdate",a:"subtitleafterupdate"},"2.31":{t:"`subtitleLoad`\r",p:`当字幕加载时触发 +<div className="run-code">▶ Run Code& ...`,l:"advanced/event.html#subtitleload",a:"subtitleload"},"2.32":{t:"`info`\r",p:`当信息面板显示或隐藏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#info",a:"info"},"2.33":{t:"`layer`\r",p:`当自定义层显示或隐藏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#layer",a:"layer"},"2.34":{t:"`loading`\r",p:`当加载器显示或隐藏时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#loading",a:"loading"},"2.35":{t:"`mask`\r",p:`当遮罩层显示或隐藏时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#mask",a:"mask"},"2.36":{t:"`subtitle`\r",p:`当字幕层显示或隐藏时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#subtitle",a:"subtitle"},"2.37":{t:"`contextmenu`\r",p:`当右键菜单显示或隐藏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#contextmenu",a:"contextmenu"},"2.38":{t:"`control`\r",p:`当控制器显示或隐藏时触发 +<div className="run-code">▶ Run C ...`,l:"advanced/event.html#control",a:"control"},"2.39":{t:"`setting`\r",p:`当设置面板显示或隐藏时触发 +<div className="run-code">▶ Run ...`,l:"advanced/event.html#setting",a:"setting"},"2.40":{t:"`muted`\r",p:`当静音的状态变化时触发 +<div className="run-code">▶ Run Co ...`,l:"advanced/event.html#muted",a:"muted"},"2.41":{t:"`keydown`\r",p:`监听来自 document 的 keydown 事件 +<div className="run-code&qu ...`,l:"advanced/event.html#keydown",a:"keydown"},"2.42":{t:"`video:canplay`\r",p:`浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容 +`,l:"advanced/event.html#video-canplay",a:"video-canplay"},"2.43":{t:"`video:canplaythrough`\r",p:`浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束 +`,l:"advanced/event.html#video-canplaythrough",a:"video-canplaythrough"},"2.44":{t:"`video:complete`\r",p:`OfflineAudioContext 渲染完成 +`,l:"advanced/event.html#video-complete",a:"video-complete"},"2.45":{t:"`video:durationchange`\r",p:`duration 属性的值改变时触发 +`,l:"advanced/event.html#video-durationchange",a:"video-durationchange"},"2.46":{t:"`video:emptied`\r",p:"媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载 ...",l:"advanced/event.html#video-emptied",a:"video-emptied"},"2.47":{t:"`video:ended`\r",p:`视频停止播放,因为 media 已经到达结束点 +`,l:"advanced/event.html#video-ended",a:"video-ended"},"2.48":{t:"`video:error`\r",p:`获取媒体数据时出错,或者资源类型不是受支持的媒体格式 +`,l:"advanced/event.html#video-error",a:"video-error"},"2.49":{t:"`video:loadeddata`\r",p:`media 中的首帧已经完成加载 +`,l:"advanced/event.html#video-loadeddata",a:"video-loadeddata"},"2.50":{t:"`video:loadedmetadata`\r",p:`已加载元数据 +`,l:"advanced/event.html#video-loadedmetadata",a:"video-loadedmetadata"},"2.51":{t:"`video:pause`\r",p:`播放已暂停 +`,l:"advanced/event.html#video-pause",a:"video-pause"},"2.52":{t:"`video:play`\r",p:`播放已开始 +`,l:"advanced/event.html#video-play",a:"video-play"},"2.53":{t:"`video:playing`\r",p:`由于缺乏数据而暂停或延迟后,播放准备开始 +`,l:"advanced/event.html#video-playing",a:"video-playing"},"2.54":{t:"`video:progress`\r",p:`在浏览器加载资源时周期性触发 +`,l:"advanced/event.html#video-progress",a:"video-progress"},"2.55":{t:"`video:ratechange`\r",p:`播放速率发生变化 +`,l:"advanced/event.html#video-ratechange",a:"video-ratechange"},"2.56":{t:"`video:seeked`\r",p:`跳帧(seek)操作完成 +`,l:"advanced/event.html#video-seeked",a:"video-seeked"},"2.57":{t:"`video:seeking`\r",p:`跳帧(seek)操作开始 +`,l:"advanced/event.html#video-seeking",a:"video-seeking"},"2.58":{t:"`video:stalled`\r",p:`用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现 +`,l:"advanced/event.html#video-stalled",a:"video-stalled"},"2.59":{t:"`video:suspend`\r",p:`媒体数据加载已暂停 +`,l:"advanced/event.html#video-suspend",a:"video-suspend"},"2.60":{t:"`video:timeupdate`\r",p:`currentTime 属性指定的时间发生变化 +`,l:"advanced/event.html#video-timeupdate",a:"video-timeupdate"},"2.61":{t:"`video:volumechange`\r",p:`音量发生变化 +`,l:"advanced/event.html#video-volumechange",a:"video-volumechange"},"2.62":{t:"`video:waiting`\r",p:`由于暂时缺少数据,播放已停止 +`,l:"advanced/event.html#video-waiting",a:"video-waiting"},"3.0":{t:"# 全局属性\r",p:`这里的 全局属性 也是指挂载在 构造函数 的 一级属性,属性名字全部都是大写的形式,未来容易发生变动,基本上用不到 +`,l:"advanced/global.html",a:"全局属性"},"3.1":{t:"DEBUG\r",p:`是否开始 debug 模式,可以打印出视频全部的内置事件,默认关闭 +<div className="run- ...`,l:"advanced/global.html#debug",a:"debug"},"3.2":{t:"STYLE\r",p:`返回播放器样式文本 +<div className="run-code">▶ Run Code ...`,l:"advanced/global.html#style",a:"style"},"3.3":{t:"CONTEXTMENU\r",p:`是否开启右键菜单,默认开启 +<div className="run-code">▶ Run ...`,l:"advanced/global.html#contextmenu",a:"contextmenu"},"3.4":{t:"NOTICE_TIME\r",p:`提示信息的显示时长,单位为毫秒,默认为 2000 +<div className="run-code" ...`,l:"advanced/global.html#notice-time",a:"notice-time"},"3.5":{t:"SETTING_WIDTH\r",p:`设置面板的默认宽度,单位为像素,默认为 250 +<div className="run-code" ...`,l:"advanced/global.html#setting-width",a:"setting-width"},"3.6":{t:"SETTING_ITEM_WIDTH\r",p:`设置面板的设置项的默认宽度,单位为像素,默认为 200 +<div className="run-code&q ...`,l:"advanced/global.html#setting-item-width",a:"setting-item-width"},"3.7":{t:"SETTING_ITEM_HEIGHT\r",p:`设置面板的设置项的默认高度,单位为像素,默认为 35 +<div className="run-code&qu ...`,l:"advanced/global.html#setting-item-height",a:"setting-item-height"},"3.8":{t:"RESIZE_TIME\r",p:`resize 事件的节流时间,单位为毫秒,默认为 200 +<div className="run-code& ...`,l:"advanced/global.html#resize-time",a:"resize-time"},"3.9":{t:"SCROLL_TIME\r",p:`scroll 事件的节流时间,单位为毫秒,默认为 200 +<div className="run-code& ...`,l:"advanced/global.html#scroll-time",a:"scroll-time"},"3.10":{t:"SCROLL_GAP\r",p:`view 事件的边界容差距离,单位为像素,默认为 50 +<div className="run-code&q ...`,l:"advanced/global.html#scroll-gap",a:"scroll-gap"},"3.11":{t:"AUTO_PLAYBACK_MAX\r",p:`自动回放功能的最大记录数,默认为 10 +<div className="run-code"> ...`,l:"advanced/global.html#auto-playback-max",a:"auto-playback-max"},"3.12":{t:"AUTO_PLAYBACK_MIN\r",p:`自动回放功能的最小记录时长,单位为秒,默认为 5 +<div className="run-code" ...`,l:"advanced/global.html#auto-playback-min",a:"auto-playback-min"},"3.13":{t:"AUTO_PLAYBACK_TIMEOUT\r",p:`自动回放功能的隐藏延迟时长,单位为毫秒,默认为 3000 +<div className="run-code& ...`,l:"advanced/global.html#auto-playback-timeout",a:"auto-playback-timeout"},"3.14":{t:"RECONNECT_TIME_MAX\r",p:`发生连接错误时,自动连接的最大次数,默认为 5 +<div className="run-code" ...`,l:"advanced/global.html#reconnect-time-max",a:"reconnect-time-max"},"3.15":{t:"RECONNECT_SLEEP_TIME\r",p:`发生连接错误时,自动连接的延迟时间,单位为毫秒,默认为 1000 +<div className="run-c ...`,l:"advanced/global.html#reconnect-sleep-time",a:"reconnect-sleep-time"},"3.16":{t:"CONTROL_HIDE_TIME\r",p:`底部控制栏的自动隐藏的延迟时间,单位为毫秒,默认为 3000 +<div className="run-cod ...`,l:"advanced/global.html#control-hide-time",a:"control-hide-time"},"3.17":{t:"DBCLICK_TIME\r",p:`双击事件的延迟事件,单位为毫秒,默认为 300 +<div className="run-code" ...`,l:"advanced/global.html#dbclick-time",a:"dbclick-time"},"3.18":{t:"DBCLICK_FULLSCREEN\r",p:`在桌面端,是否双击切换全屏,默认为 true +<div className="run-code"& ...`,l:"advanced/global.html#dbclick-fullscreen",a:"dbclick-fullscreen"},"3.19":{t:"MOBILE_DBCLICK_PLAY\r",p:`在移动端,是否双击切换播放暂停,默认为 true +<div className="run-code" ...`,l:"advanced/global.html#mobile-dbclick-play",a:"mobile-dbclick-play"},"3.20":{t:"MOBILE_CLICK_PLAY\r",p:`在移动端,是否单击切换播放暂停,默认为 false +<div className="run-code&quo ...`,l:"advanced/global.html#mobile-click-play",a:"mobile-click-play"},"3.21":{t:"AUTO_ORIENTATION_TIME\r",p:`在移动端,自动旋屏的延迟时间,单位为毫秒,默认为 200 +<div className="run-code& ...`,l:"advanced/global.html#auto-orientation-time",a:"auto-orientation-time"},"3.22":{t:"INFO_LOOP_TIME\r",p:`信息面板的刷新时间,单位为毫秒,默认为 1000 +<div className="run-code" ...`,l:"advanced/global.html#info-loop-time",a:"info-loop-time"},"3.23":{t:"FAST_FORWARD_VALUE\r",p:`在移动端,长按加速的速率倍数,默认为 3 +<div className="run-code"> ...`,l:"advanced/global.html#fast-forward-value",a:"fast-forward-value"},"3.24":{t:"FAST_FORWARD_TIME\r",p:`在移动端,长按加速的延迟时间,单位为毫秒,默认为 1000 +<div className="run-code ...`,l:"advanced/global.html#fast-forward-time",a:"fast-forward-time"},"3.25":{t:"TOUCH_MOVE_RATIO\r",p:`在移动端,左右滑动进度的速率倍数,默认为 0.5 +<div className="run-code" ...`,l:"advanced/global.html#touch-move-ratio",a:"touch-move-ratio"},"3.26":{t:"VOLUME_STEP\r",p:`快捷键调节音量的幅度比例,默认为 0.1 +<div className="run-code"> ...`,l:"advanced/global.html#volume-step",a:"volume-step"},"3.27":{t:"SEEK_STEP\r",p:`快捷键调节播放进度的幅度,单位为秒,默认为 5 +<div className="run-code" ...`,l:"advanced/global.html#seek-step",a:"seek-step"},"3.28":{t:"PLAYBACK_RATE\r",p:`内置播放速率的列表,默认为 [0.5, 0.75, 1, 1.25, 1.5, 2] +<div className=& ...`,l:"advanced/global.html#playback-rate",a:"playback-rate"},"3.29":{t:"ASPECT_RATIO\r",p:`内置视频长宽比的列表,默认为 ['default', '4:3', '16:9'] +<div className=&q ...`,l:"advanced/global.html#aspect-ratio",a:"aspect-ratio"},"3.30":{t:"FLIP\r",p:`内置视频翻转的列表,默认为 ['normal', 'horizontal', 'vertical'] +<div cla ...`,l:"advanced/global.html#flip",a:"flip"},"3.31":{t:"FULLSCREEN_WEB_IN_BODY\r",p:`网页全屏时,是否把播放器挂在在 body 元素下,默认为 true +<div className="run- ...`,l:"advanced/global.html#fullscreen-web-in-body",a:"fullscreen-web-in-body"},"3.32":{t:"LOG_VERSION\r",p:`设置是否打印播放器版本,默认为 true +<div className="run-code"> ...`,l:"advanced/global.html#log-version",a:"log-version"},"3.33":{t:"USE_RAF\r",p:`设置是否使用 requestAnimationFrame ,默认为 false,目前主要用于进度条的平滑效果 +<div ...`,l:"advanced/global.html#use-raf",a:"use-raf"},"3.34":{t:"REMOVE_SRC_WHEN_DESTROY\r",p:`在销毁播放器时,是否同时移除视频的 src 属性并调用 load() 以主动释放媒体资源,默认为 true。 +开启后可以在单 ...`,l:"advanced/global.html#remove-src-when-destroy",a:"remove-src-when-destroy"},"4.0":{t:"# 编写插件\r",p:`但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事 +可以在实例化的时候加载插件的函数 +<div cla ...`,l:"advanced/plugin.html",a:"编写插件"},"5.0":{t:"# 实例属性\r",p:`这里的 实例属性 是指挂载在 实例 的 一级属性,比较常用 +`,l:"advanced/property.html",a:"实例属性"},"5.1":{t:"`play`\r",p:` +Type: Function + +播放视频 +<div className="run-code"&g ...`,l:"advanced/property.html#play",a:"play"},"5.2":{t:"`pause`\r",p:` +Type: Function + +暂停视频 +<div className="run-code"&g ...`,l:"advanced/property.html#pause",a:"pause"},"5.3":{t:"`toggle`\r",p:` +Type: Function + +切换视频的播放和暂停 +<div className="run-code&q ...`,l:"advanced/property.html#toggle",a:"toggle"},"5.4":{t:"`destroy`\r",p:` +Type: Function +Parameter: Boolean + +销毁播放器,接受一个参数表示是否销毁后同时移除播放器 ...`,l:"advanced/property.html#destroy",a:"destroy"},"5.5":{t:"`reset`\r",p:` +Type: Function + +重置播放器的视频元素:会移除当前 src 并调用一次 load(),常用于在单页应用中手动 ...`,l:"advanced/property.html#reset",a:"reset"},"5.6":{t:"`seek`\r",p:` +Type: Setter +Parameter: Number + +视频时间跳转,单位秒 +<div className= ...`,l:"advanced/property.html#seek",a:"seek"},"5.7":{t:"`forward`\r",p:` +Type: Setter +Parameter: Number + +视频时间快进,单位秒 +<div className= ...`,l:"advanced/property.html#forward",a:"forward"},"5.8":{t:"`backward`\r",p:` +Type: Setter +Parameter: Number + +视频时间快退,单位秒 +<div className= ...`,l:"advanced/property.html#backward",a:"backward"},"5.9":{t:"`volume`\r",p:` +Type: Setter/Getter +Parameter: Number + +设置和获取视频音量,范围在:[0, 1] +& ...`,l:"advanced/property.html#volume",a:"volume"},"5.10":{t:"`url`\r",p:` +Type: Setter/Getter +Parameter: String + +设置和获取视频地址 +<div clas ...`,l:"advanced/property.html#url",a:"url"},"5.11":{t:"`switch`\r",p:` +Type: Setter +Parameter: String + +设置视频地址,设置时和 art.url 类似,但会执行一些 ...`,l:"advanced/property.html#switch",a:"switch"},"5.12":{t:"`switchUrl`\r",p:` +Type: Function +Parameter: String + +设置视频地址,设置时和 art.url 类似,但会执行 ...`,l:"advanced/property.html#switchurl",a:"switchurl"},"5.13":{t:"`switchQuality`\r",p:` +Type: Function +Parameter: String + +设置视频画质地址,和 art.switchUrl 类似 ...`,l:"advanced/property.html#switchquality",a:"switchquality"},"5.14":{t:"`muted`\r",p:` +Type: Setter/Getter +Parameter: Boolean + +设置和获取视频是否静音 +<div c ...`,l:"advanced/property.html#muted",a:"muted"},"5.15":{t:"`currentTime`\r",p:` +Type: Setter/Getter +Parameter: Number + +设置和获取视频当前时间,设置时间时和 see ...`,l:"advanced/property.html#currenttime",a:"currenttime"},"5.16":{t:"`duration`\r",p:` +Type: Getter + +获取视频时长 +<div className="run-code"&g ...`,l:"advanced/property.html#duration",a:"duration"},"5.17":{t:"`screenshot`\r",p:` +Type: Function + +下载当前视频帧的截图, 可选参数为截图名字 +<div className=" ...`,l:"advanced/property.html#screenshot",a:"screenshot"},"5.18":{t:"`getDataURL`\r",p:` +Type: Function + +获取当前视频帧的截图的base64地址,返回的是一个 Promise +<div cl ...`,l:"advanced/property.html#getdataurl",a:"getdataurl"},"5.19":{t:"`getBlobUrl`\r",p:` +Type: Function + +获取当前视频帧的截图的blob地址,返回的是一个 Promise +<div clas ...`,l:"advanced/property.html#getbloburl",a:"getbloburl"},"5.20":{t:"`fullscreen`\r",p:` +Type: Setter/Getter +Parameter: Boolean + +设置和获取播放器窗口全屏 +<div ...`,l:"advanced/property.html#fullscreen",a:"fullscreen"},"5.21":{t:"`fullscreenWeb`\r",p:` +Type: Setter/Getter +Parameter: Boolean + +设置和获取播放器网页全屏 +<div ...`,l:"advanced/property.html#fullscreenweb",a:"fullscreenweb"},"5.22":{t:"`pip`\r",p:` +Type: Setter/Getter +Parameter: Boolean + +设置和获取播放器画中画模式 +<div ...`,l:"advanced/property.html#pip",a:"pip"},"5.23":{t:"`poster`\r",p:` +Type: Setter/Getter +Parameter: String + +设置和获取视频海报,只有在视频播放前才能看到 ...`,l:"advanced/property.html#poster",a:"poster"},"5.24":{t:"`mini`\r",p:` +Type: Setter/Getter +Parameter: Boolean + +设置和获取播放器迷你模式 +<div ...`,l:"advanced/property.html#mini",a:"mini"},"5.25":{t:"`playing`\r",p:` +Type: Getter +Parameter: Boolean + +获取视频是否正在播放中 +<div classNam ...`,l:"advanced/property.html#playing",a:"playing"},"5.26":{t:"`state`\r",p:` +Type: Setter/Getter +Parameter: String + +获取或设置播放器当前状态,支持:standa ...`,l:"advanced/property.html#state",a:"state"},"5.27":{t:"`autoSize`\r",p:` +Type: Function + +设置视频是否自适应尺寸 +<div className="run-code& ...`,l:"advanced/property.html#autosize",a:"autosize"},"5.28":{t:"`rect`\r",p:` +Type: Getter + +获取播放器的尺寸和坐标信息 +<div className="run-code& ...`,l:"advanced/property.html#rect",a:"rect"},"5.29":{t:"`bottom` / `top` / `left` / `right` / `x` / `y` / `width` / `height`\r",p:` +Type: Getter + +这些属性是对 rect 的快捷访问: + +bottom, top, left, right, x ...`,l:"advanced/property.html#bottom-top-left-right-x-y-width-height",a:"bottom-top-left-right-x-y-width-height"},"5.30":{t:"`flip`\r",p:` +Type: Setter/Getter +Parameter: String + +设置和获取播放器翻转,支持normal, ...`,l:"advanced/property.html#flip",a:"flip"},"5.31":{t:"`playbackRate`\r",p:` +Type: Setter/Getter +Parameter: Number + +设置和获取播放器播放速度 +<div c ...`,l:"advanced/property.html#playbackrate",a:"playbackrate"},"5.32":{t:"`aspectRatio`\r",p:` +Type: Setter/Getter +Parameter: String + +设置和获取播放器长宽比 +<div cl ...`,l:"advanced/property.html#aspectratio",a:"aspectratio"},"5.33":{t:"`autoHeight`\r",p:` +Type: Function + +当容器只有宽度,该属性可以自动计算出并设置视频的高度 +<div className= ...`,l:"advanced/property.html#autoheight",a:"autoheight"},"5.34":{t:"`attr`\r",p:` +Type: Function +Parameter: String + +动态获取和设置 video 元素的属性 +<div ...`,l:"advanced/property.html#attr",a:"attr"},"5.35":{t:"`type`\r",p:` +Type: Setter/Getter +Parameter: String + +动态获取和设置视频类型 +<div cl ...`,l:"advanced/property.html#type",a:"type"},"5.36":{t:"`theme`\r",p:` +Type: Setter/Getter +Parameter: String + +动态获取和设置播放器主题颜色 +<div ...`,l:"advanced/property.html#theme",a:"theme"},"5.37":{t:"`airplay`\r",p:` +Type: Function + +开启隔空播放 +<div className="run-code" ...`,l:"advanced/property.html#airplay",a:"airplay"},"5.38":{t:"`loaded`\r",p:` +Type: Getter + +视频缓存的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用 +&l ...`,l:"advanced/property.html#loaded",a:"loaded"},"5.39":{t:"`loadedTime`\r",p:` +Type: Getter + +已缓存的媒体时长,单位为秒。通常与 loaded 一起使用,用于展示缓冲进度细节。 +<d ...`,l:"advanced/property.html#loadedtime",a:"loadedtime"},"5.40":{t:"`played`\r",p:` +Type: Getter + +视频播放的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用 +&l ...`,l:"advanced/property.html#played",a:"played"},"5.41":{t:"`proxy`\r",p:` +Type: Function + +DOM 事件的代理函数,实质上代理了 addEventListener 和 removeE ...`,l:"advanced/property.html#proxy",a:"proxy"},"5.42":{t:"`query`\r",p:` +Type: Function + +DOM 的查询函数,类似 document.querySelector,但被查询的对象局限 ...`,l:"advanced/property.html#query",a:"query"},"5.43":{t:"`video`\r",p:` +Type: Element + +快捷返回播放器的 video 元素 +<div className="run- ...`,l:"advanced/property.html#video",a:"video"},"5.44":{t:"`cssVar`\r",p:` +Type: Function + +动态获取或设置 css 变量 +<div className="run-co ...`,l:"advanced/property.html#cssvar",a:"cssvar"},"5.45":{t:"`quality`\r",p:` +Type: Setter +Parameter: Array + +动态设置画质列表 +<div className=&qu ...`,l:"advanced/property.html#quality",a:"quality"},"5.46":{t:"`thumbnails`\r",p:` +Type: Setter/Getter +Parameter: Object + +动态设置缩略图 +<div classN ...`,l:"advanced/property.html#thumbnails",a:"thumbnails"},"5.47":{t:"`subtitleOffset`\r",p:` +Type: Setter/Getter +Parameter: Number + +动态设置字幕偏移 +<div class ...`,l:"advanced/property.html#subtitleoffset",a:"subtitleoffset"},"6.0":{t:"# 右键菜单\r",p:"\r",l:"component/contextmenu.html",a:"右键菜单"},"6.1":{t:"配置\r",p:` + + +属性 +类型 +描述 + + + + +disable +Boolean +是否禁用组件 + + +name +String +组件唯一名称,用于 ...`,l:"component/contextmenu.html#配置",a:"配置"},"6.2":{t:"创建\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#创建",a:"创建"},"6.3":{t:"添加\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#添加",a:"添加"},"6.4":{t:"删除\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#删除",a:"删除"},"6.5":{t:"更新\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/contextmenu.html#更新",a:"更新"},"7.0":{t:"# 控制器\r",p:"\r",l:"component/controls.html",a:"控制器"},"7.1":{t:"配置\r",p:` + + +属性 +类型 +描述 + + + + +disable +Boolean +是否禁用组件 + + +name +String +组件唯一名称,用于 ...`,l:"component/controls.html#配置",a:"配置"},"7.2":{t:"创建\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#创建",a:"创建"},"7.3":{t:"添加\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#添加",a:"添加"},"7.4":{t:"删除\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#删除",a:"删除"},"7.5":{t:"更新\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/controls.html#更新",a:"更新"},"8.0":{t:"# 业务层\r",p:"\r",l:"component/layers.html",a:"业务层"},"8.1":{t:"配置\r",p:` + + +属性 +类型 +描述 + + + + +disable +Boolean +是否禁用组件 + + +name +String +组件唯一名称,用于 ...`,l:"component/layers.html#配置",a:"配置"},"8.2":{t:"创建\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#创建",a:"创建"},"8.3":{t:"添加\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#添加",a:"添加"},"8.4":{t:"删除\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#删除",a:"删除"},"8.5":{t:"更新\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/layers.html#更新",a:"更新"},"9.0":{t:"# 设置面板\r",p:"\r",l:"component/setting.html",a:"设置面板"},"9.1":{t:"内置\r",p:"须先打开设置面板,然后自带四个内置项:flip, playbackRate, aspectRatio, subtitleOf ...",l:"component/setting.html#内置",a:"内置"},"9.2":{t:"创建 - 按钮\r",p:` + + +属性 +类型 +描述 + + + + +html +String, Element +元素的 DOM + + +icon +String, El ...`,l:"component/setting.html#创建-按钮",a:"创建-按钮"},"9.3":{t:"创建 - 选择列表\r",p:` + + +属性 +类型 +描述 + + + + +html +String, Element +元素的 DOM + + +icon +String, El ...`,l:"component/setting.html#创建-选择列表",a:"创建-选择列表"},"9.4":{t:"创建 - 列表嵌套\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#创建-列表嵌套",a:"创建-列表嵌套"},"9.5":{t:"创建 - 切换按钮\r",p:` + + +属性 +类型 +描述 + + + + +html +String, Element +元素的 DOM 元素 + + +icon +String, ...`,l:"component/setting.html#创建-切换按钮",a:"创建-切换按钮"},"9.6":{t:"创建 - 范围滑块\r",p:` + + +属性 +类型 +描述 + + + + +html +String, Element +元素的 DOM 元素 + + +icon +String, ...`,l:"component/setting.html#创建-范围滑块",a:"创建-范围滑块"},"9.7":{t:"添加\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#添加",a:"添加"},"9.8":{t:"删除\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#删除",a:"删除"},"9.9":{t:"更新\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"component/setting.html#更新",a:"更新"},"10.0":{t:"# Advanced Properties\r",p:"The Advanced Properties here refer to the secondary properties ...",l:"en/advanced/built-in.html",a:"advanced-properties"},"10.1":{t:"`option`\r",p:`The player's options. +<div className="run-code"&g ...`,l:"en/advanced/built-in.html#option",a:"option"},"10.2":{t:"`template`\r",p:`Manages all DOM elements of the player. +<div className=&quo ...`,l:"en/advanced/built-in.html#template",a:"template"},"10.3":{t:"`events`\r",p:"Manages all DOM events for the player. It essentially proxies ...",l:"en/advanced/built-in.html#events",a:"events"},"10.4":{t:"`storage`\r",p:`Manages the player's local storage. + +The name property is used ...`,l:"en/advanced/built-in.html#storage",a:"storage"},"10.5":{t:"`icons`\r",p:`Manages all svg icons for the player. +<div className=" ...`,l:"en/advanced/built-in.html#icons",a:"icons"},"10.6":{t:"`i18n`\r",p:`Manages the player's i18n. + +The get method is used to retrieve ...`,l:"en/advanced/built-in.html#i18n",a:"i18n"},"10.7":{t:"`notice`\r",p:"Manages the player's notifications. It only has a show propert ...",l:"en/advanced/built-in.html#notice",a:"notice"},"10.8":{t:"`layers`\r",p:`Manages the player's layers. + +The add method is used to dynami ...`,l:"en/advanced/built-in.html#layers",a:"layers"},"10.9":{t:"`controls`\r",p:`Manages the player's controls. + + +The add method is used to dyn ...`,l:"en/advanced/built-in.html#controls",a:"controls"},"10.10":{t:"`contextmenu`\r",p:`Manages the player's context menu + +The add method is used to d ...`,l:"en/advanced/built-in.html#contextmenu",a:"contextmenu"},"10.11":{t:"`subtitle`\r",p:`Manages the player's subtitle functionality + +The url property ...`,l:"en/advanced/built-in.html#subtitle",a:"subtitle"},"10.12":{t:"`info`\r",p:"Manages the player's information panel, commonly used to view ...",l:"en/advanced/built-in.html#info",a:"info"},"10.13":{t:"`loading`\r",p:`Manages the player's loading layer + +The show property is used ...`,l:"en/advanced/built-in.html#loading",a:"loading"},"10.14":{t:"`hotkey`\r",p:`Manages the player's hotkey functionality + +The add method is u ...`,l:"en/advanced/built-in.html#hotkey",a:"hotkey"},"10.15":{t:"`mask`\r",p:`Manages the player's mask layer + +The show property is used to ...`,l:"en/advanced/built-in.html#mask",a:"mask"},"10.16":{t:"`setting`\r",p:`Manages the player's settings panel + +The add method is used to ...`,l:"en/advanced/built-in.html#setting",a:"setting"},"10.17":{t:"`plugins`\r",p:"Manages the player's plugin functionality, with only one metho ...",l:"en/advanced/built-in.html#plugins",a:"plugins"},"11.0":{t:"# Static Properties\r",p:"Here, static properties refer to the first-level properties at ...",l:"en/advanced/class.html",a:"static-properties"},"11.1":{t:"`instances`\r",p:"Returns an array of all player instances. This property can be ...",l:"en/advanced/class.html#instances",a:"instances"},"11.2":{t:"`version`\r",p:`Returns the version information of the player. +<div classNa ...`,l:"en/advanced/class.html#version",a:"version"},"11.3":{t:"`env`\r",p:`Returns the environment variables of the player. +<div class ...`,l:"en/advanced/class.html#env",a:"env"},"11.4":{t:"`build`\r",p:`Returns the build timestamp of the player. +<div className=& ...`,l:"en/advanced/class.html#build",a:"build"},"11.5":{t:"`config`\r",p:`Returns the default configuration for videos. +<div classNam ...`,l:"en/advanced/class.html#config",a:"config"},"11.6":{t:"`utils`\r",p:`Returns the collection of utility functions for the player. +&l ...`,l:"en/advanced/class.html#utils",a:"utils"},"11.7":{t:"`scheme`\r",p:`Returns the validation schema for player options. +<div clas ...`,l:"en/advanced/class.html#scheme",a:"scheme"},"11.8":{t:"`Emitter`\r",p:`Returns the constructor of the event emitter. +<div classNam ...`,l:"en/advanced/class.html#emitter",a:"emitter"},"11.9":{t:"`validator`\r",p:`Returns the validation function for options. +<div className ...`,l:"en/advanced/class.html#validator",a:"validator"},"11.10":{t:"`kindOf`\r",p:`Returns the type detection utility function. +<div className ...`,l:"en/advanced/class.html#kindof",a:"kindof"},"11.11":{t:"`html`\r",p:`Returns the html string required by the player. +<div classN ...`,l:"en/advanced/class.html#html",a:"html"},"11.12":{t:"`option`\r",p:`Returns the default options of the player. +<div className=& ...`,l:"en/advanced/class.html#option",a:"option"},"12.0":{t:"# Instance Events\r",p:"Player events are divided into two types: native events of the ...",l:"en/advanced/event.html",a:"instance-events"},"12.1":{t:"`ready`\r",p:`Triggered when the player is ready for the first time. +<div ...`,l:"en/advanced/event.html#ready",a:"ready"},"12.2":{t:"`restart`\r",p:"Triggered when the player switches URLs and becomes ready to p ...",l:"en/advanced/event.html#restart",a:"restart"},"12.3":{t:"`pause`\r",p:`Triggered when the player is paused. +<div className="r ...`,l:"en/advanced/event.html#pause",a:"pause"},"12.4":{t:"`play`\r",p:`Triggered when the player starts playing. +<div className=&q ...`,l:"en/advanced/event.html#play",a:"play"},"12.5":{t:"`hotkey`\r",p:`Triggered when a player hotkey is pressed. +<div className=& ...`,l:"en/advanced/event.html#hotkey",a:"hotkey"},"12.6":{t:"`destroy`\r",p:`Triggered when the player is destroyed. +<div className=&quo ...`,l:"en/advanced/event.html#destroy",a:"destroy"},"12.7":{t:"`focus`\r",p:`Triggered when the player gains focus. +<div className=" ...`,l:"en/advanced/event.html#focus",a:"focus"},"12.8":{t:"`blur`\r",p:`Triggered when the player loses focus. +<div className=" ...`,l:"en/advanced/event.html#blur",a:"blur"},"12.9":{t:"`dblclick`\r",p:`Triggered when the player is double-clicked. +<div className ...`,l:"en/advanced/event.html#dblclick",a:"dblclick"},"12.10":{t:"`click`\r",p:`Triggered when the player is clicked. +<div className=" ...`,l:"en/advanced/event.html#click",a:"click"},"12.11":{t:"`error`\r",p:"Triggered when an error occurs while the player is loading a v ...",l:"en/advanced/event.html#error",a:"error"},"12.12":{t:"`hover`\r",p:`Triggered when the mouse enters or leaves the player. +<div ...`,l:"en/advanced/event.html#hover",a:"hover"},"12.13":{t:"`mousemove`\r",p:`Triggered when the mouse moves over the player. +<div classN ...`,l:"en/advanced/event.html#mousemove",a:"mousemove"},"12.14":{t:"`resize`\r",p:`Triggered when the player's dimensions change. +<div classNa ...`,l:"en/advanced/event.html#resize",a:"resize"},"12.15":{t:"`view`\r",p:`Triggered when the player enters the viewport. +<div classNa ...`,l:"en/advanced/event.html#view",a:"view"},"12.16":{t:"`lock`\r",p:`Triggered when the lock state changes on mobile devices. +<d ...`,l:"en/advanced/event.html#lock",a:"lock"},"12.17":{t:"`aspectRatio`\r",p:`Triggered when the player's aspect ratio changes. +<div clas ...`,l:"en/advanced/event.html#aspectratio",a:"aspectratio"},"12.18":{t:"`autoHeight`\r",p:`Triggered when the player's height is automatically set. +<d ...`,l:"en/advanced/event.html#autoheight",a:"autoheight"},"12.19":{t:"`autoSize`\r",p:`Triggered when the player's size is automatically set. +<div ...`,l:"en/advanced/event.html#autosize",a:"autosize"},"12.20":{t:"`flip`\r",p:`Triggered when the player is flipped. +<div className=" ...`,l:"en/advanced/event.html#flip",a:"flip"},"12.21":{t:"`fullscreen`\r",p:"Triggered when the player enters or exits windowed fullscreen ...",l:"en/advanced/event.html#fullscreen",a:"fullscreen"},"12.22":{t:"`fullscreenError`\r",p:`Triggered when a windowed fullscreen error occurs. +<div cla ...`,l:"en/advanced/event.html#fullscreenerror",a:"fullscreenerror"},"12.23":{t:"`fullscreenWeb`\r",p:"Triggered when the player enters or exits web fullscreen mode. ...",l:"en/advanced/event.html#fullscreenweb",a:"fullscreenweb"},"12.24":{t:"`mini`\r",p:`Triggered when the player enters or exits mini mode. +<div c ...`,l:"en/advanced/event.html#mini",a:"mini"},"12.25":{t:"`pip`\r",p:"Triggered when the player enters or exits Picture-in-Picture m ...",l:"en/advanced/event.html#pip",a:"pip"},"12.26":{t:"`screenshot`\r",p:`Triggered when the player takes a screenshot. +<div classNam ...`,l:"en/advanced/event.html#screenshot",a:"screenshot"},"12.27":{t:"`seek`\r",p:`Triggered when the player performs a time seek. +<div classN ...`,l:"en/advanced/event.html#seek",a:"seek"},"12.28":{t:"`subtitleOffset`\r",p:`Triggered when the subtitle offset changes in the player. +< ...`,l:"en/advanced/event.html#subtitleoffset",a:"subtitleoffset"},"12.29":{t:"`subtitleBeforeUpdate`\r",p:`Triggered before subtitles are updated. +<div className=&quo ...`,l:"en/advanced/event.html#subtitlebeforeupdate",a:"subtitlebeforeupdate"},"12.30":{t:"`subtitleAfterUpdate`\r",p:`Triggered after subtitles are updated. +<div className=" ...`,l:"en/advanced/event.html#subtitleafterupdate",a:"subtitleafterupdate"},"12.31":{t:"`subtitleLoad`\r",p:`Triggered when subtitles are loaded. +<div className="r ...`,l:"en/advanced/event.html#subtitleload",a:"subtitleload"},"12.32":{t:"`info`\r",p:`Triggered when the info panel is shown or hidden. +<div clas ...`,l:"en/advanced/event.html#info",a:"info"},"12.33":{t:"`layer`\r",p:`Triggered when a custom layer is shown or hidden. +<div clas ...`,l:"en/advanced/event.html#layer",a:"layer"},"12.34":{t:"`loading`\r",p:`Triggered when the loader is shown or hidden. +<div classNam ...`,l:"en/advanced/event.html#loading",a:"loading"},"12.35":{t:"`mask`\r",p:`Triggered when the mask layer is shown or hidden. +<div clas ...`,l:"en/advanced/event.html#mask",a:"mask"},"12.36":{t:"`subtitle`\r",p:`Triggered when the subtitle layer is shown or hidden. +<div ...`,l:"en/advanced/event.html#subtitle",a:"subtitle"},"12.37":{t:"`contextmenu`\r",p:`Triggered when the context menu is shown or hidden. +<div cl ...`,l:"en/advanced/event.html#contextmenu",a:"contextmenu"},"12.38":{t:"`control`\r",p:`Triggered when the control bar is shown or hidden. +<div cla ...`,l:"en/advanced/event.html#control",a:"control"},"12.39":{t:"`setting`\r",p:`Triggered when the settings panel is shown or hidden. +<div ...`,l:"en/advanced/event.html#setting",a:"setting"},"12.40":{t:"`muted`\r",p:`Triggered when the muted state changes. +<div className=&quo ...`,l:"en/advanced/event.html#muted",a:"muted"},"12.41":{t:"`keydown`\r",p:`Listens for the keydown event from the document. +<div class ...`,l:"en/advanced/event.html#keydown",a:"keydown"},"12.42":{t:"`video:canplay`\r",p:"The browser can start playing the media, but estimates there i ...",l:"en/advanced/event.html#video-canplay",a:"video-canplay"},"12.43":{t:"`video:canplaythrough`\r",p:"The browser estimates it can play the media through to the end ...",l:"en/advanced/event.html#video-canplaythrough",a:"video-canplaythrough"},"12.44":{t:"`video:complete`\r",p:`The OfflineAudioContext rendering is complete. +`,l:"en/advanced/event.html#video-complete",a:"video-complete"},"12.45":{t:"`video:durationchange`\r",p:`Triggered when the value of the duration property changes. +`,l:"en/advanced/event.html#video-durationchange",a:"video-durationchange"},"12.46":{t:"`video:emptied`\r",p:"The media has become empty; for example, this event is sent wh ...",l:"en/advanced/event.html#video-emptied",a:"video-emptied"},"12.47":{t:"`video:ended`\r",p:`Playback has stopped because the media has reached its end. +`,l:"en/advanced/event.html#video-ended",a:"video-ended"},"12.48":{t:"`video:error`\r",p:"An error occurred while fetching the media data, or the resour ...",l:"en/advanced/event.html#video-error",a:"video-error"},"12.49":{t:"`video:loadeddata`\r",p:`The first frame of the media has finished loading. +`,l:"en/advanced/event.html#video-loadeddata",a:"video-loadeddata"},"12.50":{t:"`video:loadedmetadata`\r",p:`Metadata has been loaded. +`,l:"en/advanced/event.html#video-loadedmetadata",a:"video-loadedmetadata"},"12.51":{t:"`video:pause`\r",p:`Playback has been paused. +`,l:"en/advanced/event.html#video-pause",a:"video-pause"},"12.52":{t:"`video:play`\r",p:`Playback has begun. +`,l:"en/advanced/event.html#video-play",a:"video-play"},"12.53":{t:"`video:playing`\r",p:"Playback is ready to start after having been paused or delayed ...",l:"en/advanced/event.html#video-playing",a:"video-playing"},"12.54":{t:"`video:progress`\r",p:`Fired periodically as the browser loads the resource. +`,l:"en/advanced/event.html#video-progress",a:"video-progress"},"12.55":{t:"`video:ratechange`\r",p:`The playback rate has changed. +`,l:"en/advanced/event.html#video-ratechange",a:"video-ratechange"},"12.56":{t:"`video:seeked`\r",p:`A seek operation has completed. +`,l:"en/advanced/event.html#video-seeked",a:"video-seeked"},"12.57":{t:"`video:seeking`\r",p:`A seek operation has begun. +`,l:"en/advanced/event.html#video-seeking",a:"video-seeking"},"12.58":{t:"`video:stalled`\r",p:"The user agent is trying to fetch media data, but data is unex ...",l:"en/advanced/event.html#video-stalled",a:"video-stalled"},"12.59":{t:"`video:suspend`\r",p:`Media data loading has been suspended. +`,l:"en/advanced/event.html#video-suspend",a:"video-suspend"},"12.60":{t:"`video:timeupdate`\r",p:`The time indicated by the currentTime property has changed. +`,l:"en/advanced/event.html#video-timeupdate",a:"video-timeupdate"},"12.61":{t:"`video:volumechange`\r",p:`The volume has changed. +`,l:"en/advanced/event.html#video-volumechange",a:"video-volumechange"},"12.62":{t:"`video:waiting`\r",p:`Playback has stopped because of a temporary lack of data. +`,l:"en/advanced/event.html#video-waiting",a:"video-waiting"},"13.0":{t:"# Global Properties\r",p:"The global properties here refer to the top-level properties m ...",l:"en/advanced/global.html",a:"global-properties"},"13.1":{t:"DEBUG\r",p:"Whether to enable debug mode, which can print all built-in vid ...",l:"en/advanced/global.html#debug",a:"debug"},"13.2":{t:"STYLE\r",p:`Returns the player style text. +<div className="run-cod ...`,l:"en/advanced/global.html#style",a:"style"},"13.3":{t:"CONTEXTMENU\r",p:`Whether to enable the context menu. Default is on. +<div cla ...`,l:"en/advanced/global.html#contextmenu",a:"contextmenu"},"13.4":{t:"NOTICE_TIME\r",p:"The display duration of notification messages, in milliseconds ...",l:"en/advanced/global.html#notice-time",a:"notice-time"},"13.5":{t:"SETTING_WIDTH\r",p:"The default width of the settings panel, in pixels. Default is ...",l:"en/advanced/global.html#setting-width",a:"setting-width"},"13.6":{t:"SETTING_ITEM_WIDTH\r",p:"The default width of a setting item in the settings panel, in ...",l:"en/advanced/global.html#setting-item-width",a:"setting-item-width"},"13.7":{t:"SETTING_ITEM_HEIGHT\r",p:"The default height of a setting item in the settings panel, in ...",l:"en/advanced/global.html#setting-item-height",a:"setting-item-height"},"13.8":{t:"RESIZE_TIME\r",p:"The throttle time for the resize event, in milliseconds. Defau ...",l:"en/advanced/global.html#resize-time",a:"resize-time"},"13.9":{t:"SCROLL_TIME\r",p:"The throttle time for the scroll event, in milliseconds. Defau ...",l:"en/advanced/global.html#scroll-time",a:"scroll-time"},"13.10":{t:"SCROLL_GAP\r",p:"The boundary tolerance distance for the view event, in pixels. ...",l:"en/advanced/global.html#scroll-gap",a:"scroll-gap"},"13.11":{t:"AUTO_PLAYBACK_MAX\r",p:"The maximum record count for the auto-playback feature. Defaul ...",l:"en/advanced/global.html#auto-playback-max",a:"auto-playback-max"},"13.12":{t:"AUTO_PLAYBACK_MIN\r",p:"The minimum record duration for the auto-playback feature, in ...",l:"en/advanced/global.html#auto-playback-min",a:"auto-playback-min"},"13.13":{t:"AUTO_PLAYBACK_TIMEOUT\r",p:"The hide delay duration for the auto-playback feature, in mill ...",l:"en/advanced/global.html#auto-playback-timeout",a:"auto-playback-timeout"},"13.14":{t:"RECONNECT_TIME_MAX\r",p:"The maximum number of automatic reconnection attempts when a c ...",l:"en/advanced/global.html#reconnect-time-max",a:"reconnect-time-max"},"13.15":{t:"RECONNECT_SLEEP_TIME\r",p:"The delay time for automatic reconnection when a connection er ...",l:"en/advanced/global.html#reconnect-sleep-time",a:"reconnect-sleep-time"},"13.16":{t:"CONTROL_HIDE_TIME\r",p:"The auto-hide delay time for the bottom control bar, in millis ...",l:"en/advanced/global.html#control-hide-time",a:"control-hide-time"},"13.17":{t:"DBCLICK_TIME\r",p:"The delay time for the double-click event, in milliseconds. De ...",l:"en/advanced/global.html#dbclick-time",a:"dbclick-time"},"13.18":{t:"DBCLICK_FULLSCREEN\r",p:"On desktop, whether double-click toggles fullscreen. Default i ...",l:"en/advanced/global.html#dbclick-fullscreen",a:"dbclick-fullscreen"},"13.19":{t:"MOBILE_DBCLICK_PLAY\r",p:"On mobile, whether double-click toggles play/pause. Default is ...",l:"en/advanced/global.html#mobile-dbclick-play",a:"mobile-dbclick-play"},"13.20":{t:"MOBILE_CLICK_PLAY\r",p:"On mobile, whether single-click toggles play/pause. Default is ...",l:"en/advanced/global.html#mobile-click-play",a:"mobile-click-play"},"13.21":{t:"AUTO_ORIENTATION_TIME\r",p:"On mobile, the delay time for auto-rotation, in milliseconds. ...",l:"en/advanced/global.html#auto-orientation-time",a:"auto-orientation-time"},"13.22":{t:"INFO_LOOP_TIME\r",p:"The refresh interval for the info panel, in milliseconds. Defa ...",l:"en/advanced/global.html#info-loop-time",a:"info-loop-time"},"13.23":{t:"FAST_FORWARD_VALUE\r",p:"On mobile, the speed multiplier for long-press fast-forward. D ...",l:"en/advanced/global.html#fast-forward-value",a:"fast-forward-value"},"13.24":{t:"FAST_FORWARD_TIME\r",p:"On mobile, the delay time for long-press fast-forward, in mill ...",l:"en/advanced/global.html#fast-forward-time",a:"fast-forward-time"},"13.25":{t:"TOUCH_MOVE_RATIO\r",p:"On mobile, the speed multiplier for left/right swipe to seek. ...",l:"en/advanced/global.html#touch-move-ratio",a:"touch-move-ratio"},"13.26":{t:"VOLUME_STEP\r",p:"The step size for volume adjustment via keyboard shortcuts. De ...",l:"en/advanced/global.html#volume-step",a:"volume-step"},"13.27":{t:"SEEK_STEP\r",p:"The step size for seeking via keyboard shortcuts, in seconds. ...",l:"en/advanced/global.html#seek-step",a:"seek-step"},"13.28":{t:"PLAYBACK_RATE\r",p:"The built-in list of playback rates. Default is [0.5, 0.75, 1, ...",l:"en/advanced/global.html#playback-rate",a:"playback-rate"},"13.29":{t:"ASPECT_RATIO\r",p:"The built-in list of video aspect ratios. Default is ['default ...",l:"en/advanced/global.html#aspect-ratio",a:"aspect-ratio"},"13.30":{t:"FLIP\r",p:"The built-in list of video flip options. Default is ['normal', ...",l:"en/advanced/global.html#flip",a:"flip"},"13.31":{t:"FULLSCREEN_WEB_IN_BODY\r",p:"Whether to mount the player under the body element during web ...",l:"en/advanced/global.html#fullscreen-web-in-body",a:"fullscreen-web-in-body"},"13.32":{t:"LOG_VERSION\r",p:`Sets whether to print the player version. Default is true. +< ...`,l:"en/advanced/global.html#log-version",a:"log-version"},"13.33":{t:"USE_RAF\r",p:"Sets whether to use requestAnimationFrame. Default is false. C ...",l:"en/advanced/global.html#use-raf",a:"use-raf"},"13.34":{t:"REMOVE_SRC_WHEN_DESTROY\r",p:"Whether to remove the video's src attribute and call load() to ...",l:"en/advanced/global.html#remove-src-when-destroy",a:"remove-src-when-destroy"},"14.0":{t:"# Writing Plugins\r",p:"Once you are familiar with the player's properties, methods, a ...",l:"en/advanced/plugin.html",a:"writing-plugins"},"15.0":{t:"# Instance Properties\r",p:"Here, Instance Properties refer to the first-level properties ...",l:"en/advanced/property.html",a:"instance-properties"},"15.1":{t:"`play`\r",p:` +Type: Function + +Play the video. +<div className="run-c ...`,l:"en/advanced/property.html#play",a:"play"},"15.2":{t:"`pause`\r",p:` +Type: Function + +Pause the video. +<div className="run- ...`,l:"en/advanced/property.html#pause",a:"pause"},"15.3":{t:"`toggle`\r",p:` +Type: Function + +Toggle video play and pause. +<div classNam ...`,l:"en/advanced/property.html#toggle",a:"toggle"},"15.4":{t:"`destroy`\r",p:` +Type: Function +Parameter: Boolean + +Destroy the player. Accept ...`,l:"en/advanced/property.html#destroy",a:"destroy"},"15.5":{t:"`reset`\r",p:` +Type: Function + +Reset the player's video element: removes the ...`,l:"en/advanced/property.html#reset",a:"reset"},"15.6":{t:"`seek`\r",p:` +Type: Setter +Parameter: Number + +Seek to a specific time in th ...`,l:"en/advanced/property.html#seek",a:"seek"},"15.7":{t:"`forward`\r",p:` +Type: Setter +Parameter: Number + +Fast-forward the video time, ...`,l:"en/advanced/property.html#forward",a:"forward"},"15.8":{t:"`backward`\r",p:` +Type: Setter +Parameter: Number + +Rewind the video time, in sec ...`,l:"en/advanced/property.html#backward",a:"backward"},"15.9":{t:"`volume`\r",p:` +Type: Setter/Getter +Parameter: Number + +Set and get the video ...`,l:"en/advanced/property.html#volume",a:"volume"},"15.10":{t:"`url`\r",p:` +Type: Setter/Getter +Parameter: String + +Set and get the video ...`,l:"en/advanced/property.html#url",a:"url"},"15.11":{t:"`switch`\r",p:` +Type: Setter +Parameter: String + +Set the video URL. Similar to ...`,l:"en/advanced/property.html#switch",a:"switch"},"15.12":{t:"`switchUrl`\r",p:` +Type: Function +Parameter: String + +Set the video URL. Similar ...`,l:"en/advanced/property.html#switchurl",a:"switchurl"},"15.13":{t:"`switchQuality`\r",p:` +Type: Function +Parameter: String + +Sets the video quality URL. ...`,l:"en/advanced/property.html#switchquality",a:"switchquality"},"15.14":{t:"`muted`\r",p:` +Type: Setter/Getter +Parameter: Boolean + +Sets or gets whether ...`,l:"en/advanced/property.html#muted",a:"muted"},"15.15":{t:"`currentTime`\r",p:` +Type: Setter/Getter +Parameter: Number + +Sets or gets the curre ...`,l:"en/advanced/property.html#currenttime",a:"currenttime"},"15.16":{t:"`duration`\r",p:` +Type: Getter + +Gets the duration of the video. +<div classNa ...`,l:"en/advanced/property.html#duration",a:"duration"},"15.17":{t:"`screenshot`\r",p:` +Type: Function + +Downloads a screenshot of the current video f ...`,l:"en/advanced/property.html#screenshot",a:"screenshot"},"15.18":{t:"`getDataURL`\r",p:` +Type: Function + +Gets the base64 URL of a screenshot of the cu ...`,l:"en/advanced/property.html#getdataurl",a:"getdataurl"},"15.19":{t:"`getBlobUrl`\r",p:` +Type: Function + +Gets the blob URL of a screenshot of the curr ...`,l:"en/advanced/property.html#getbloburl",a:"getbloburl"},"15.20":{t:"`fullscreen`\r",p:` +Type: Setter/Getter +Parameter: Boolean + +Sets or gets the play ...`,l:"en/advanced/property.html#fullscreen",a:"fullscreen"},"15.21":{t:"`fullscreenWeb`\r",p:` +Type: Setter/Getter +Parameter: Boolean + +Sets or gets the play ...`,l:"en/advanced/property.html#fullscreenweb",a:"fullscreenweb"},"15.22":{t:"`pip`\r",p:` +Type: Setter/Getter +Parameter: Boolean + +Sets or gets the play ...`,l:"en/advanced/property.html#pip",a:"pip"},"15.23":{t:"`poster`\r",p:` +Type: Setter/Getter +Parameter: String + +Sets and gets the vide ...`,l:"en/advanced/property.html#poster",a:"poster"},"15.24":{t:"`mini`\r",p:` +Type: Setter/Getter +Parameter: Boolean + +Sets and gets the pla ...`,l:"en/advanced/property.html#mini",a:"mini"},"15.25":{t:"`playing`\r",p:` +Type: Getter +Parameter: Boolean + +Gets whether the video is cu ...`,l:"en/advanced/property.html#playing",a:"playing"},"15.26":{t:"`state`\r",p:` +Type: Setter/Getter +Parameter: String + +Gets or sets the playe ...`,l:"en/advanced/property.html#state",a:"state"},"15.27":{t:"`autoSize`\r",p:` +Type: Function + +Sets whether the video adapts its size automa ...`,l:"en/advanced/property.html#autosize",a:"autosize"},"15.28":{t:"`rect`\r",p:` +Type: Getter + +Gets the player's dimensions and coordinate inf ...`,l:"en/advanced/property.html#rect",a:"rect"},"15.29":{t:"`bottom` / `top` / `left` / `right` / `x` / `y` / `width` / `height`\r",p:` +Type: Getter + +These properties provide quick access to rect: + ...`,l:"en/advanced/property.html#bottom-top-left-right-x-y-width-height",a:"bottom-top-left-right-x-y-width-height"},"15.30":{t:"`flip`\r",p:` +Type: Setter/Getter +Parameter: String + +Sets and gets the play ...`,l:"en/advanced/property.html#flip",a:"flip"},"15.31":{t:"`playbackRate`\r",p:` +Type: Setter/Getter +Parameter: Number + +Sets and gets the play ...`,l:"en/advanced/property.html#playbackrate",a:"playbackrate"},"15.32":{t:"`aspectRatio`\r",p:` +Type: Setter/Getter +Parameter: String + +Sets and gets the play ...`,l:"en/advanced/property.html#aspectratio",a:"aspectratio"},"15.33":{t:"`autoHeight`\r",p:` +Type: Function + +When the container only has a defined width, ...`,l:"en/advanced/property.html#autoheight",a:"autoheight"},"15.34":{t:"`attr`\r",p:` +Type: Function +Parameter: String + +Dynamically get and set att ...`,l:"en/advanced/property.html#attr",a:"attr"},"15.35":{t:"`type`\r",p:` +Type: Setter/Getter +Parameter: String + +Dynamically get and se ...`,l:"en/advanced/property.html#type",a:"type"},"15.36":{t:"`theme`\r",p:` +Type: Setter/Getter +Parameter: String + +Dynamically get and se ...`,l:"en/advanced/property.html#theme",a:"theme"},"15.37":{t:"`airplay`\r",p:` +Type: Function + +Initiate AirPlay. +<div className="run ...`,l:"en/advanced/property.html#airplay",a:"airplay"},"15.38":{t:"`loaded`\r",p:` +Type: Getter + +The proportion of video buffered, ranging from ...`,l:"en/advanced/property.html#loaded",a:"loaded"},"15.39":{t:"`loadedTime`\r",p:` +Type: Getter + +The buffered media duration in seconds. Typical ...`,l:"en/advanced/property.html#loadedtime",a:"loadedtime"},"15.40":{t:"`played`\r",p:` +Type: Getter + +The proportion of video played, ranging from [0 ...`,l:"en/advanced/property.html#played",a:"played"},"15.41":{t:"`proxy`\r",p:` +Type: Function + +A proxy function for DOM events, essentially ...`,l:"en/advanced/property.html#proxy",a:"proxy"},"15.42":{t:"`query`\r",p:` +Type: Function + +A DOM query function, similar to document.que ...`,l:"en/advanced/property.html#query",a:"query"},"15.43":{t:"`video`\r",p:` +Type: Element + +Quickly returns the player's video element. +&l ...`,l:"en/advanced/property.html#video",a:"video"},"15.44":{t:"`cssVar`\r",p:` +Type: Function + +Dynamically get or set CSS variables. +<div ...`,l:"en/advanced/property.html#cssvar",a:"cssvar"},"15.45":{t:"`quality`\r",p:` +Type: Setter +Parameter: Array + +Dynamically set the quality li ...`,l:"en/advanced/property.html#quality",a:"quality"},"15.46":{t:"`thumbnails`\r",p:` +Type: Setter/Getter +Parameter: Object + +Dynamically set thumbn ...`,l:"en/advanced/property.html#thumbnails",a:"thumbnails"},"15.47":{t:"`subtitleOffset`\r",p:` +Type: Setter/Getter +Parameter: Number + +Dynamically set subtit ...`,l:"en/advanced/property.html#subtitleoffset",a:"subtitleoffset"},"16.0":{t:"# Context Menu\r",p:"\r",l:"en/component/contextmenu.html",a:"context-menu"},"16.1":{t:"Configuration\r",p:` + + +Property +Type +Description + + + + +disable +Boolean +Whether to di ...`,l:"en/component/contextmenu.html#configuration",a:"configuration"},"16.2":{t:"Creation\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#creation",a:"creation"},"16.3":{t:"Addition\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#addition",a:"addition"},"16.4":{t:"Deletion\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#deletion",a:"deletion"},"16.5":{t:"Update\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/contextmenu.html#update",a:"update"},"17.0":{t:"# Controls\r",p:"\r",l:"en/component/controls.html",a:"controls"},"17.1":{t:"Configuration\r",p:` + + +Property +Type +Description + + + + +disable +Boolean +Whether to di ...`,l:"en/component/controls.html#configuration",a:"configuration"},"17.2":{t:"Creation\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#creation",a:"creation"},"17.3":{t:"Adding\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#adding",a:"adding"},"17.4":{t:"Removal\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#removal",a:"removal"},"17.5":{t:"Updating\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/controls.html#updating",a:"updating"},"18.0":{t:"# Layers\r",p:"\r",l:"en/component/layers.html",a:"layers"},"18.1":{t:"Configuration\r",p:` + + +Property +Type +Description + + + + +disable +Boolean +Whether to di ...`,l:"en/component/layers.html#configuration",a:"configuration"},"18.2":{t:"Creation\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#creation",a:"creation"},"18.3":{t:"Addition\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#addition",a:"addition"},"18.4":{t:"Removal\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#removal",a:"removal"},"18.5":{t:"Update\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/layers.html#update",a:"update"},"19.0":{t:"# Settings Panel\r",p:"\r",l:"en/component/setting.html",a:"settings-panel"},"19.1":{t:"Built-in\r",p:"First, you need to open the settings panel. It comes with four ...",l:"en/component/setting.html#built-in",a:"built-in"},"19.2":{t:"Create - Button\r",p:` + + +Property +Type +Description + + + + +html +String, Element +The DOM ...`,l:"en/component/setting.html#create-button",a:"create-button"},"19.3":{t:"Create - Selection List\r",p:` + + +Property +Type +Description + + + + +html +String, Element +The DOM ...`,l:"en/component/setting.html#create-selection-list",a:"create-selection-list"},"19.4":{t:"Create - Nested List\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#create-nested-list",a:"create-nested-list"},"19.5":{t:"Create - Toggle Button\r",p:` + + +Property +Type +Description + + + + +html +String, Element +DOM elem ...`,l:"en/component/setting.html#create-toggle-button",a:"create-toggle-button"},"19.6":{t:"Create - Range Slider\r",p:` + + +Property +Type +Description + + + + +html +String, Element +DOM elem ...`,l:"en/component/setting.html#create-range-slider",a:"create-range-slider"},"19.7":{t:"Add\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#add",a:"add"},"19.8":{t:"Remove\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#remove",a:"remove"},"19.9":{t:"Update\r",p:"<div className="run-code">▶ Run Code</div&g ...",l:"en/component/setting.html#update",a:"update"},"20.0":{t:"# Installation and Usage\r",p:"\r",l:"en/index.html",a:"installation-and-usage"},"20.1":{t:"Installation\r",p:`::: code-group +npm install artplayer + +yarn add artplayer + +pnpm ...`,l:"en/index.html#installation",a:"installation"},"20.2":{t:"`CDN`\r",p:`::: code-group +https://cdn.jsdelivr.net/npm/artplayer/dist/art ...`,l:"en/index.html#cdn",a:"cdn"},"20.3":{t:"Usage\r",p:`::: code-group +<html> + <head> + <title ...`,l:"en/index.html#usage",a:"usage"},"20.4":{t:"`Vue.js`\r",p:`::: code-group +<template> + <div ref="$container ...`,l:"en/index.html#vue-js",a:"vue-js"},"20.5":{t:"`React.js`\r",p:`::: code-group +import Artplayer from 'artplayer' +import { useE ...`,l:"en/index.html#react-js",a:"react-js"},"20.6":{t:"TypeScript\r",p:"The artplayer.d.ts file is automatically imported when you imp ...",l:"en/index.html#typescript",a:"typescript"},"20.7":{t:"Vue.js\r",p:` + +`,l:"en/index.html#vue-js",a:"vue-js"},"20.8":{t:"React.js\r",p:`import Artplayer from 'artplayer'; +const art = useRef<Artpl ...`,l:"en/index.html#react-js",a:"react-js"},"20.9":{t:"Option\r",p:`You can also use the type for the options. +import Artplayer, { ...`,l:"en/index.html#option",a:"option"},"20.10":{t:"JavaScript\r",p:"Sometimes your js files may lose TypeScript type hints. In suc ...",l:"en/index.html#javascript",a:"javascript"},"20.11":{t:"Legacy Browsers\r",p:"The production build artplayer.js only supports the latest maj ...",l:"en/index.html#legacy-browsers",a:"legacy-browsers"},"20.12":{t:"ECMAScript Module\r",p:`::: tip ESM Demo: +https://artplayer.org/esm.html +::: +Starting ...`,l:"en/index.html#ecmascript-module",a:"ecmascript-module"},"20.13":{t:"Custom userAgent\r",p:"Currently, the detection of whether a device is mobile is not ...",l:"en/index.html#custom-useragent",a:"custom-useragent"},"21.0":{t:"# Danmuku",p:`中文说明 +Display timed comments over the video, with an input pane ...`,l:"en/plugin/danmuku.html",a:"danmuku"},"21.1":{t:"Demo",p:`Open the full example. +Run Code examples below use the site's ...`,l:"en/plugin/danmuku.html#demo",a:"demo"},"21.2":{t:"Installation",p:`::: code-group +npm install artplayer artplayer-plugin-danmuku + ...`,l:"en/plugin/danmuku.html#installation",a:"installation"},"21.3":{t:"CDN",p:`::: code-group +https://cdn.jsdelivr.net/npm/artplayer-plugin-d ...`,l:"en/plugin/danmuku.html#cdn",a:"cdn"},"21.4":{t:"Comment structure",p:"Only text is required. Leading and trailing whitespace is remo ...",l:"en/plugin/danmuku.html#comment-structure",a:"comment-structure"},"21.5":{t:"All options",p:"Pass an option object to the factory. At runtime, {} is valid ...",l:"en/plugin/danmuku.html#all-options",a:"all-options"},"21.6":{t:"Array, XML and asynchronous input",p:"XML input uses Bilibili's comment format. Fetching a cross-ori ...",l:"en/plugin/danmuku.html#array-xml-and-asynchronous-input",a:"array-xml-and-asynchronous-input"},"21.7":{t:"Lifecycle callbacks",p:"Input-panel submissions run beforeEmit → filter → beforeVisibl ...",l:"en/plugin/danmuku.html#lifecycle-callbacks",a:"lifecycle-callbacks"},"21.8":{t:"Methods and state",p:"The registered plugin is available synchronously as art.plugin ...",l:"en/plugin/danmuku.html#methods-and-state",a:"methods-and-state"},"21.9":{t:"Loading and configuration",p:"Changing config({ danmuku: input }) does not load the new inpu ...",l:"en/plugin/danmuku.html#loading-and-configuration",a:"loading-and-configuration"},"21.10":{t:"External mount",p:"Create a separate mount element before constructing the plugin ...",l:"en/plugin/danmuku.html#external-mount",a:"external-mount"},"21.11":{t:"Heatmap",p:"Set heatmap: true at construction to sample the queue automati ...",l:"en/plugin/danmuku.html#heatmap",a:"heatmap"},"21.12":{t:"Events",p:"Subscribe with art.on(name, callback) and remove subscriptions ...",l:"en/plugin/danmuku.html#events",a:"events"},"21.13":{t:"TypeScript",p:"The root and /legacy entrypoints keep the npm 5.3.0 declaratio ...",l:"en/plugin/danmuku.html#typescript",a:"typescript"},"22.0":{t:"# DASH Control",p:`中文说明 +Add video quality and audio-track menus to a dash.js play ...`,l:"en/plugin/dash-control.html",a:"dash-control"},"22.1":{t:"Installation",p:`yarn add artplayer dashjs artplayer-plugin-dash-control + +impor ...`,l:"en/plugin/dash-control.html#installation",a:"installation"},"22.2":{t:"Complete example",p:"The example matches the online DASH example. Replace the site' ...",l:"en/plugin/dash-control.html#complete-example",a:"complete-example"},"22.3":{t:"Configuration",p:"artplayerPluginDashControl(option?) synchronously returns a pl ...",l:"en/plugin/dash-control.html#configuration",a:"configuration"},"22.4":{t:"Quality and audio selection",p:"Manual quality selection disables video Auto switching, then s ...",l:"en/plugin/dash-control.html#quality-and-audio-selection",a:"quality-and-audio-selection"},"22.5":{t:"Refresh after external changes",p:"Player ready/restart and SDK quality, track and stream events ...",l:"en/plugin/dash-control.html#refresh-after-external-changes",a:"refresh-after-external-changes"},"22.6":{t:"SDK ownership and source switching",p:"Use the existing player switchUrl() or switchQuality() and han ...",l:"en/plugin/dash-control.html#sdk-ownership-and-source-switching",a:"sdk-ownership-and-source-switching"},"22.7":{t:"TypeScript",p:"Default callback types include quality height/width/ID/bitrate ...",l:"en/plugin/dash-control.html#typescript",a:"typescript"},"22.8":{t:"Validation scope",p:"The refactor tests fixed dash.js 4.5.2 and 5.2.1 with local ad ...",l:"en/plugin/dash-control.html#validation-scope",a:"validation-scope"},"23.0":{t:"# HLS Control",p:`中文说明 +Add quality and audio-track menus to an Hls.js player. Th ...`,l:"en/plugin/hls-control.html",a:"hls-control"},"23.1":{t:"Installation",p:`yarn add artplayer hls.js artplayer-plugin-hls-control + +import ...`,l:"en/plugin/hls-control.html#installation",a:"installation"},"23.2":{t:"Complete example",p:"The example uses the site's player container and the same sour ...",l:"en/plugin/hls-control.html#complete-example",a:"complete-example"},"23.3":{t:"Configuration",p:"artplayerPluginHlsControl(option?) returns a synchronous plugi ...",l:"en/plugin/hls-control.html#configuration",a:"configuration"},"23.4":{t:"Refresh after external changes",p:"The plugin updates on player ready and restart. When the SDK p ...",l:"en/plugin/hls-control.html#refresh-after-external-changes",a:"refresh-after-external-changes"},"23.5":{t:"SDK ownership and source switching",p:"Use the player's existing switchUrl() or switchQuality() for s ...",l:"en/plugin/hls-control.html#sdk-ownership-and-source-switching",a:"sdk-ownership-and-source-switching"},"23.6":{t:"TypeScript",p:"The default callback types include level height/name and audio ...",l:"en/plugin/hls-control.html#typescript",a:"typescript"},"23.7":{t:"Validation scope",p:"The refactor tests Hls.js 1.5.17 and 1.7.2 with local media an ...",l:"en/plugin/hls-control.html#validation-scope",a:"validation-scope"},"24.0":{t:"# Language Settings\r",p:`::: danger +Due to the increasing number of bundled multilingua ...`,l:"en/start/i18n.html",a:"language-settings"},"24.1":{t:"Default Languages\r",p:"The default languages are: en, zh-cn. No manual import is requ ...",l:"en/start/i18n.html#default-languages",a:"default-languages"},"24.2":{t:"Importing Languages\r",p:"Language files before bundling are located at: artplayer/src/i ...",l:"en/start/i18n.html#importing-languages",a:"importing-languages"},"24.3":{t:"Adding a New Language\r",p:`var art = new Artplayer({ + container: '.artplayer-app', + ...`,l:"en/start/i18n.html#adding-a-new-language",a:"adding-a-new-language"},"24.4":{t:"Modifying a Language\r",p:`import zhTw from 'artplayer/i18n/zh-tw'; + +var art = new Artpla ...`,l:"en/start/i18n.html#modifying-a-language",a:"modifying-a-language"},"25.0":{t:"# Basic Options\r",p:"\r",l:"en/start/option.html",a:"basic-options"},"25.1":{t:"`container`\r",p:` +Type: String, Element +Default: #artplayer + +The DOM container ...`,l:"en/start/option.html#container",a:"container"},"25.2":{t:"`url`\r",p:` +Type: String +Default: '' + +The video source URL. +<div class ...`,l:"en/start/option.html#url",a:"url"},"25.3":{t:"`id`\r",p:` +Type: String +Default: '' + +The unique identifier for the playe ...`,l:"en/start/option.html#id",a:"id"},"25.4":{t:"`onReady`\r",p:` +Type: Function +Default: undefined + +The constructor accepts a ...`,l:"en/start/option.html#onready",a:"onready"},"25.5":{t:"`poster`\r",p:` +Type: String +Default: '' + +The video poster image, which only ...`,l:"en/start/option.html#poster",a:"poster"},"25.6":{t:"`theme`\r",p:` +Type: String +Default: #f00 + +The player's theme color, current ...`,l:"en/start/option.html#theme",a:"theme"},"25.7":{t:"`volume`\r",p:` +Type: Number +Default: 0.7 + +The player's default volume. +<d ...`,l:"en/start/option.html#volume",a:"volume"},"25.8":{t:"`isLive`\r",p:` +Type: Boolean +Default: false + +Enable live streaming mode. Thi ...`,l:"en/start/option.html#islive",a:"islive"},"25.9":{t:"`muted`\r",p:` +Type: Boolean +Default: false + +Whether to start muted by defau ...`,l:"en/start/option.html#muted",a:"muted"},"25.10":{t:"`autoplay`\r",p:` +Type: Boolean +Default: false + +Whether to autoplay. +<div cl ...`,l:"en/start/option.html#autoplay",a:"autoplay"},"25.11":{t:"`autoSize`\r",p:` +Type: Boolean +Default: false + +By default, the player's dimens ...`,l:"en/start/option.html#autosize",a:"autosize"},"25.12":{t:"`autoMini`\r",p:` +Type: Boolean +Default: false + +Automatically enters Mini Playe ...`,l:"en/start/option.html#automini",a:"automini"},"25.13":{t:"`loop`\r",p:` +Type: Boolean +Default: false + +Whether to loop playback. +<d ...`,l:"en/start/option.html#loop",a:"loop"},"25.14":{t:"`flip`\r",p:` +Type: Boolean +Default: false + +Whether to display the video fl ...`,l:"en/start/option.html#flip",a:"flip"},"25.15":{t:"`playbackRate`\r",p:` +Type: Boolean +Default: false + +Whether to display the video pl ...`,l:"en/start/option.html#playbackrate",a:"playbackrate"},"25.16":{t:"`aspectRatio`\r",p:` +Type: Boolean +Default: false + +Whether to display the video as ...`,l:"en/start/option.html#aspectratio",a:"aspectratio"},"25.17":{t:"`screenshot`\r",p:` +Type: Boolean +Default: false + +Whether to display the Screensh ...`,l:"en/start/option.html#screenshot",a:"screenshot"},"25.18":{t:"`setting`\r",p:` +Type: Boolean +Default: false + +Whether to display the toggle b ...`,l:"en/start/option.html#setting",a:"setting"},"25.19":{t:"`hotkey`\r",p:` +Type: Boolean +Default: true + +Whether to use hotkeys. +<div ...`,l:"en/start/option.html#hotkey",a:"hotkey"},"25.20":{t:"`pip`\r",p:` +Type: Boolean +Default: false + +Whether to display the Picture- ...`,l:"en/start/option.html#pip",a:"pip"},"25.21":{t:"`mutex`\r",p:` +Type: Boolean +Default: true + +If multiple players exist on the ...`,l:"en/start/option.html#mutex",a:"mutex"},"25.22":{t:"`backdrop`\r",p:` +Type: Boolean +Default: true + +Whether to enable the backdrop b ...`,l:"en/start/option.html#backdrop",a:"backdrop"},"25.23":{t:"`fullscreen`\r",p:` +Type: Boolean +Default: false + +Whether to display the player W ...`,l:"en/start/option.html#fullscreen",a:"fullscreen"},"25.24":{t:"`fullscreenWeb`\r",p:` +Type: Boolean +Default: false + +Whether to display the player W ...`,l:"en/start/option.html#fullscreenweb",a:"fullscreenweb"},"25.25":{t:"`subtitleOffset`\r",p:` +Type: Boolean +Default: false + +Subtitle time offset, ranging f ...`,l:"en/start/option.html#subtitleoffset",a:"subtitleoffset"},"25.26":{t:"`miniProgressBar`\r",p:` +Type: Boolean +Default: false + +A mini progress bar that only a ...`,l:"en/start/option.html#miniprogressbar",a:"miniprogressbar"},"25.27":{t:"`useSSR`\r",p:` +Type: Boolean +Default: false + +Whether to use SSR (Server-Side ...`,l:"en/start/option.html#usessr",a:"usessr"},"25.28":{t:"`playsInline`\r",p:` +Type: Boolean +Default: true + +Whether to use playsInline mode ...`,l:"en/start/option.html#playsinline",a:"playsinline"},"25.29":{t:"`layers`\r",p:` +Type: Array +Default: [] + +Initialize custom layers. +<div cl ...`,l:"en/start/option.html#layers",a:"layers"},"25.30":{t:"`settings`\r",p:` +Type: Array +Default: [] + +Initialize custom settings panels. +& ...`,l:"en/start/option.html#settings",a:"settings"},"25.31":{t:"`contextmenu`\r",p:` +Type: Array +Default: [] + +Initialize custom context menus. +< ...`,l:"en/start/option.html#contextmenu",a:"contextmenu"},"25.32":{t:"`controls`\r",p:` +Type: Array +Default: [] + +Initialize custom bottom control bar ...`,l:"en/start/option.html#controls",a:"controls"},"25.33":{t:"`quality`\r",p:` +Type: Array +Default: [] + +Whether to display the Quality Selec ...`,l:"en/start/option.html#quality",a:"quality"},"25.34":{t:"`highlight`\r",p:` +Type: Array +Default: [] + +Display Highlight Information on the ...`,l:"en/start/option.html#highlight",a:"highlight"},"25.35":{t:"`plugins`\r",p:` +Type: Array +Default: [] + +Initialize custom plugins. +<div c ...`,l:"en/start/option.html#plugins",a:"plugins"},"25.36":{t:"`thumbnails`\r",p:` +Type: Object +Default: {} + +Set Preview Thumbnails on the progr ...`,l:"en/start/option.html#thumbnails",a:"thumbnails"},"25.37":{t:"`subtitle`\r",p:` +Type: Object +Default: {} + +Set video subtitles. Supported subt ...`,l:"en/start/option.html#subtitle",a:"subtitle"},"25.38":{t:"`moreVideoAttr`\r",p:` +Type: Object +Default: {'controls': false, 'preload': 'metadat ...`,l:"en/start/option.html#morevideoattr",a:"morevideoattr"},"25.39":{t:"`icons`\r",p:` +Type: Object +Default: {} + +Used to replace default icons. Supp ...`,l:"en/start/option.html#icons",a:"icons"},"25.40":{t:"`type`\r",p:` +Type: String +Default: '' + +Used to specify the video format. I ...`,l:"en/start/option.html#type",a:"type"},"25.41":{t:"`customType`\r",p:` +Type: Object +Default: {} + +Matches based on the video's type a ...`,l:"en/start/option.html#customtype",a:"customtype"},"25.42":{t:"`lang`\r",p:` +Type: String +Default: navigator.language.toLowerCase() + +The d ...`,l:"en/start/option.html#lang",a:"lang"},"25.43":{t:"`i18n`\r",p:` +Type: Object +Default: {} + +Custom i18n configuration. This con ...`,l:"en/start/option.html#i18n",a:"i18n"},"25.44":{t:"`lock`\r",p:` +Type: Boolean +Default: false + +Whether to display a lock butto ...`,l:"en/start/option.html#lock",a:"lock"},"25.45":{t:"`gesture`\r",p:` +Type: Boolean +Default: true + +Whether to enable gesture events ...`,l:"en/start/option.html#gesture",a:"gesture"},"25.46":{t:"`fastForward`\r",p:` +Type: Boolean +Default: false + +Whether to add a long-press vid ...`,l:"en/start/option.html#fastforward",a:"fastforward"},"25.47":{t:"`autoPlayback`\r",p:` +Type: Boolean +Default: false + +Whether to use the automatic pl ...`,l:"en/start/option.html#autoplayback",a:"autoplayback"},"25.48":{t:"`autoOrientation`\r",p:` +Type: Boolean +Default: false + +Whether to rotate the player in ...`,l:"en/start/option.html#autoorientation",a:"autoorientation"},"25.49":{t:"`airplay`\r",p:` +Type: Boolean +Default: false + +Whether to display the airplay ...`,l:"en/start/option.html#airplay",a:"airplay"},"25.50":{t:"`cssVar`\r",p:` +Type: Object +Default: {} + +Used to modify the built-in CSS var ...`,l:"en/start/option.html#cssvar",a:"cssvar"},"25.51":{t:"`proxy`\r",p:` +Type: function +Default: undefined + +The function can return a ...`,l:"en/start/option.html#proxy",a:"proxy"},"26.0":{t:"# 安装使用\r",p:"\r",l:"index.html",a:"安装使用"},"26.1":{t:"安装\r",p:`::: code-group +npm install artplayer + +yarn add artplayer + +pnpm ...`,l:"index.html#安装",a:"安装"},"26.2":{t:"`CDN`\r",p:`::: code-group +https://cdn.jsdelivr.net/npm/artplayer/dist/art ...`,l:"index.html#cdn",a:"cdn"},"26.3":{t:"使用\r",p:`::: code-group +<html> + <head> + <title ...`,l:"index.html#使用",a:"使用"},"26.4":{t:"`Vue.js`\r",p:`::: code-group +<template> + <div ref="$container ...`,l:"index.html#vue-js",a:"vue-js"},"26.5":{t:"`React.js`\r",p:`::: code-group +import Artplayer from 'artplayer' +import { useE ...`,l:"index.html#react-js",a:"react-js"},"26.6":{t:"TypeScript\r",p:`导入 Artplayer 时会自动导入的 artplayer.d.ts +`,l:"index.html#typescript",a:"typescript"},"26.7":{t:"Vue.js\r",p:` + +`,l:"index.html#vue-js",a:"vue-js"},"26.8":{t:"React.js\r",p:`import Artplayer from 'artplayer'; +const art = useRef<Artpl ...`,l:"index.html#react-js",a:"react-js"},"26.9":{t:"Option\r",p:`你也可以使用选项的类型 +import Artplayer, { type Option } from 'artplayer' ...`,l:"index.html#option",a:"option"},"26.10":{t:"JavaScript\r",p:`有时你的 js 文件会丢失 TypeScript 的类型提示,这时候你可以手动导入类型 +变量: +/** + * @type { ...`,l:"index.html#javascript",a:"javascript"},"26.11":{t:"古老的浏览器\r",p:`生产构建的 artplayer.js 只兼容最新一个主版本的 Chrome:last 1 Chrome version +对于 ...`,l:"index.html#古老的浏览器",a:"古老的浏览器"},"26.12":{t:"ECMAScript Module\r",p:`::: tip ESM Demo: +https://artplayer.org/esm.html +::: +从 5.2.6 开 ...`,l:"index.html#ecmascript-module",a:"ecmascript-module"},"26.13":{t:"自定义 userAgent\r",p:"目前对于是否移动设备的判断并不准确,有时候希望通过改变 userAgent 来调整播放器的UI, 所以在 5.2.4 开始新 ...",l:"index.html#自定义-useragent",a:"自定义-useragent"},"27.0":{t:"# 弹幕库",p:`English guide +本文描述当前重构分支。/runtime 类型入口与本轮修复尚未发布到 npm;CDN 默认仍加载 ...`,l:"plugin/danmuku.html",a:"弹幕库"},"27.1":{t:"演示",p:`👉 查看完整演示 +下方 Run Code 使用本站构建的插件与样本。接入自己的应用时,请替换容器和媒体 URL。 +`,l:"plugin/danmuku.html#演示",a:"演示"},"27.2":{t:"安装",p:`::: code-group +npm install artplayer-plugin-danmuku + +yarn add ...`,l:"plugin/danmuku.html#安装",a:"安装"},"27.3":{t:"CDN",p:`::: code-group +https://cdn.jsdelivr.net/npm/artplayer-plugin-d ...`,l:"plugin/danmuku.html#cdn",a:"cdn"},"27.4":{t:"弹幕结构",p:`每一个弹幕是一个对象,多个弹幕组成的数组就是弹幕库,通常只需要text就可以发送一个弹幕,其余都是非必要参数 +{ + t ...`,l:"plugin/danmuku.html#弹幕结构",a:"弹幕结构"},"27.5":{t:"全部选项",p:"工厂需要一个配置对象。运行时可传 {},每个字段都有默认值;旧版根入口类型仍要求 danmuku,旧项目继续传入它即可。准确 ...",l:"plugin/danmuku.html#全部选项",a:"全部选项"},"27.6":{t:"生命周期",p:"filter 同步执行,不应返回 Promise;beforeEmit 可异步,但只有严格返回 true 才发送。befor ...",l:"plugin/danmuku.html#生命周期",a:"生命周期"},"27.7":{t:"使用弹幕数组",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/danmuku.html#使用弹幕数组",a:"使用弹幕数组"},"27.8":{t:"使用弹幕 XML",p:`弹幕 XML 文件,和 Bilibili 网站的弹幕格式一致 +<div className="run-cod ...`,l:"plugin/danmuku.html#使用弹幕-xml",a:"使用弹幕-xml"},"27.9":{t:"使用异步返回",p:`也可以直接传入 Promise<弹幕数组>,或传入同步返回数组的函数。输入函数没有配置对象作为 this。 +&l ...`,l:"plugin/danmuku.html#使用异步返回",a:"使用异步返回"},"27.10":{t:"`hide/show`",p:`通过方法 hide 和 show 进行隐藏或者显示弹幕 +<div className="run-code&q ...`,l:"plugin/danmuku.html#hide-show",a:"hide-show"},"27.11":{t:"`isHide`",p:`通过属性 isHide 判断当前弹幕是隐藏或者显示 +<div className="run-code&quo ...`,l:"plugin/danmuku.html#ishide",a:"ishide"},"27.12":{t:"`emit`",p:"通过方法 emit 向队列添加一条弹幕。它返回 Promise;完成表示入队处理完成,不代表已经显示。请用 await 或 ...",l:"plugin/danmuku.html#emit",a:"emit"},"27.13":{t:"`config`",p:"通过方法 config 同步合并弹幕配置。更改 danmuku 不会自动重新加载,之后调用无参数的 load() 才会替换队 ...",l:"plugin/danmuku.html#config",a:"config"},"27.14":{t:"`load`",p:"通过 load 重载、切换或追加弹幕库,返回 Promise。无参数 load() 在读取配置中的输入成功后替换队列;传入 ...",l:"plugin/danmuku.html#load",a:"load"},"27.15":{t:"`reset`",p:`用于清空当前显示的弹幕并将队列项重置为等待状态。它不删除队列;后续播放仍可按时间显示弹幕。 +<div classNam ...`,l:"plugin/danmuku.html#reset",a:"reset"},"27.16":{t:"`mount`",p:`在初始化弹幕插件的时候,是可以指定弹幕发射器的挂载位置的,默认是挂载在控制栏的中部,你也可以把它挂载在播放器以外的地方。 +当 ...`,l:"plugin/danmuku.html#mount",a:"mount"},"27.17":{t:"`option`",p:`用于获取当前弹幕配置,返回实时配置对象。更新配置请调用 config,避免直接修改对象而绕过校验和 UI 同步。 +<d ...`,l:"plugin/danmuku.html#option",a:"option"},"27.18":{t:"事件",p:"使用 art.on(name, callback) 订阅,art.off(name, callback) 取消订阅。事件不会 ...",l:"plugin/danmuku.html#事件",a:"事件"},"27.19":{t:"`isStop` 与方法返回值",p:"art.plugins.artplayerPluginDanmuku.isStop 是实时只读的停止状态,与 isHide ...",l:"plugin/danmuku.html#isstop-与方法返回值",a:"isstop-与方法返回值"},"27.20":{t:"热力图",p:`初始化时设置 heatmap: true,按队列自动采样;直播不绘制热力图。 +本轮修复了密集弹幕曲线过高遮挡视频的问题(is ...`,l:"plugin/danmuku.html#热力图",a:"热力图"},"27.21":{t:"TypeScript",p:`根入口和 /legacy 保留 npm 5.3.0 的历史声明形状,其中部分方法返回值与真实运行时不一致。 +当前分支新增 / ...`,l:"plugin/danmuku.html#typescript",a:"typescript"},"28.0":{t:"# DASH 控制",p:`English +为 dash.js 播放器添加画质和音轨菜单。你负责创建 SDK、绑定 video 并赋给 art.dash ...`,l:"plugin/dash-control.html",a:"dash-控制"},"28.1":{t:"安装",p:`yarn add artplayer dashjs artplayer-plugin-dash-control + +impor ...`,l:"plugin/dash-control.html#安装",a:"安装"},"28.2":{t:"完整示例",p:`下面与在线 DASH 示例使用相同代码。接入应用时替换站点容器和视频地址。 +<div className=" ...`,l:"plugin/dash-control.html#完整示例",a:"完整示例"},"28.3":{t:"配置",p:"artplayerPluginDashControl(option?) 同步返回插件工厂。quality 和 audio 都 ...",l:"plugin/dash-control.html#配置",a:"配置"},"28.4":{t:"画质和音轨选择",p:"手动选画质先关闭视频的自动码率选择,再调用 SDK 选择档位;Auto 只启用视频自动选择,不覆盖其他 ABR 设置。同步选 ...",l:"plugin/dash-control.html#画质和音轨选择",a:"画质和音轨选择"},"28.5":{t:"外部修改后的刷新",p:"播放器 ready/restart 和 SDK 的画质、音轨、流事件会刷新菜单。SDK 事件刷新在当前同步选择结束后合并执行 ...",l:"plugin/dash-control.html#外部修改后的刷新",a:"外部修改后的刷新"},"28.6":{t:"SDK 所有权与换源",p:"换源使用播放器已有的 switchUrl() 或 switchQuality(),并处理返回的 Promise。完整示例先销 ...",l:"plugin/dash-control.html#sdk-所有权与换源",a:"sdk-所有权与换源"},"28.7":{t:"TypeScript",p:"默认回调类型包含画质高度/宽度/ID/码率,以及允许为空的音轨 id/index/lang。可以通过泛型声明更具体的元数据; ...",l:"plugin/dash-control.html#typescript",a:"typescript"},"28.8":{t:"验证范围",p:"重构使用固定 dash.js 4.5.2 / 5.2.1、本地自适应媒体和新旧核心组合验证;这两个版本是验证点,不是新定义的 ...",l:"plugin/dash-control.html#验证范围",a:"验证范围"},"29.0":{t:"# HLS 控制",p:`English +为 Hls.js 播放器添加画质与音轨菜单。插件控制你放在 art.hls 上的 Hls.js 实例,不负责 ...`,l:"plugin/hls-control.html",a:"hls-控制"},"29.1":{t:"安装",p:`yarn add artplayer hls.js artplayer-plugin-hls-control + +import ...`,l:"plugin/hls-control.html#安装",a:"安装"},"29.2":{t:"完整示例",p:`下面与在线 HLS 示例使用同一份代码和站点容器。接入自己的应用时替换容器与视频地址。 +<div className= ...`,l:"plugin/hls-control.html#完整示例",a:"完整示例"},"29.3":{t:"配置",p:"artplayerPluginHlsControl(option?) 同步返回插件工厂。quality 与 audio 都可 ...",l:"plugin/hls-control.html#配置",a:"配置"},"29.4":{t:"外部修改后的刷新",p:"播放器 ready、restart 会刷新菜单;SDK 提供事件接口时,清单、档位、音轨与销毁事件也会刷新或清除菜单。选中项 ...",l:"plugin/hls-control.html#外部修改后的刷新",a:"外部修改后的刷新"},"29.5":{t:"SDK 所有权与换源",p:"换源继续使用播放器已有的 switchUrl() 或 switchQuality(),并处理返回的 Promise。示例在创 ...",l:"plugin/hls-control.html#sdk-所有权与换源",a:"sdk-所有权与换源"},"29.6":{t:"TypeScript",p:"默认回调类型包含画质高度/名称和音轨 ID/名称/语言字段。可以通过泛型使用应用所需的 SDK 元数据类型;下面的示例只声明 ...",l:"plugin/hls-control.html#typescript",a:"typescript"},"29.7":{t:"验证范围",p:"重构使用本地媒体和真实 worker 验证 Hls.js 1.5.17 / 1.7.2;这两个版本是验证点,不是新定义的支持 ...",l:"plugin/hls-control.html#验证范围",a:"验证范围"},"30.0":{t:"# 语言设置\r",p:`::: danger +鉴于捆绑的多国语言越来越多, 从 5.1.0 版本开始, artplayer.js 核心代码除了包含 ...`,l:"start/i18n.html",a:"语言设置"},"30.1":{t:"默认语言\r",p:`默认语言有: en, zh-cn, 无需手动导入 +var art = new Artplayer({ + contain ...`,l:"start/i18n.html#默认语言",a:"默认语言"},"30.2":{t:"导入语言\r",p:`打包前的语言文件存放于: artplayer/src/i18n/*.js, 欢迎来添加你的语言 +打包后的语言文件存放于: a ...`,l:"start/i18n.html#导入语言",a:"导入语言"},"30.3":{t:"新增语言\r",p:`var art = new Artplayer({ + container: '.artplayer-app', + ...`,l:"start/i18n.html#新增语言",a:"新增语言"},"30.4":{t:"修改语言\r",p:`import zhTw from 'artplayer/i18n/zh-tw'; + +var art = new Artpla ...`,l:"start/i18n.html#修改语言",a:"修改语言"},"31.0":{t:"# 基础选项\r",p:"\r",l:"start/option.html",a:"基础选项"},"31.1":{t:"`container`\r",p:` +Type: String, Element +Default: #artplayer + +播放器挂载的 DOM 容器 +< ...`,l:"start/option.html#container",a:"container"},"31.2":{t:"`url`\r",p:` +Type: String +Default: '' + +视频源地址 +<div className="run-c ...`,l:"start/option.html#url",a:"url"},"31.3":{t:"`id`\r",p:` +Type: String +Default: '' + +播放器的唯一标识,目前只用于记忆播放 autoplayback +< ...`,l:"start/option.html#id",a:"id"},"31.4":{t:"`onReady`\r",p:` +Type: Function +Default: undefined + +构造函数接受一个函数作为第二个参数,播放器初始化成功 ...`,l:"start/option.html#onready",a:"onready"},"31.5":{t:"`poster`\r",p:` +Type: String +Default: '' + +视频的海报,只会出现在播放器初始化且未播放的状态下 +<div c ...`,l:"start/option.html#poster",a:"poster"},"31.6":{t:"`theme`\r",p:` +Type: String +Default: #f00 + +播放器主题颜色,目前用于 进度条 和 高亮元素 上 +<div ...`,l:"start/option.html#theme",a:"theme"},"31.7":{t:"`volume`\r",p:` +Type: Number +Default: 0.7 + +播放器的默认音量 +<div className="r ...`,l:"start/option.html#volume",a:"volume"},"31.8":{t:"`isLive`\r",p:` +Type: Boolean +Default: false + +使用直播模式,会隐藏进度条和播放时间 +<div clas ...`,l:"start/option.html#islive",a:"islive"},"31.9":{t:"`muted`\r",p:` +Type: Boolean +Default: false + +是否默认静音 +<div className=" ...`,l:"start/option.html#muted",a:"muted"},"31.10":{t:"`autoplay`\r",p:` +Type: Boolean +Default: false + +是否自动播放 +<div className=" ...`,l:"start/option.html#autoplay",a:"autoplay"},"31.11":{t:"`autoSize`\r",p:` +Type: Boolean +Default: false + +播放器的尺寸默认会填充整个 container 容器尺寸,所以 ...`,l:"start/option.html#autosize",a:"autosize"},"31.12":{t:"`autoMini`\r",p:` +Type: Boolean +Default: false + +当播放器滚动到浏览器视口以外时,自动进入 迷你播放 模式 +&l ...`,l:"start/option.html#automini",a:"automini"},"31.13":{t:"`loop`\r",p:` +Type: Boolean +Default: false + +是否循环播放 +<div className=" ...`,l:"start/option.html#loop",a:"loop"},"31.14":{t:"`flip`\r",p:` +Type: Boolean +Default: false + +是否显示视频翻转功能,目前只出现在 设置面板 和 右键菜单 里 ...`,l:"start/option.html#flip",a:"flip"},"31.15":{t:"`playbackRate`\r",p:` +Type: Boolean +Default: false + +是否显示视频播放速度功能,会出现在 设置面板 和 右键菜单 里 ...`,l:"start/option.html#playbackrate",a:"playbackrate"},"31.16":{t:"`aspectRatio`\r",p:` +Type: Boolean +Default: false + +是否显示视频长宽比功能,会出现在 设置面板 和 右键菜单 里 + ...`,l:"start/option.html#aspectratio",a:"aspectratio"},"31.17":{t:"`screenshot`\r",p:` +Type: Boolean +Default: false + +是否在底部控制栏里显示 视频截图 功能 +<div cla ...`,l:"start/option.html#screenshot",a:"screenshot"},"31.18":{t:"`setting`\r",p:` +Type: Boolean +Default: false + +是否在底部控制栏里显示 设置面板 的开关按钮 +<div ...`,l:"start/option.html#setting",a:"setting"},"31.19":{t:"`hotkey`\r",p:` +Type: Boolean +Default: true + +是否使用快捷键 +<div className=" ...`,l:"start/option.html#hotkey",a:"hotkey"},"31.20":{t:"`pip`\r",p:` +Type: Boolean +Default: false + +是否在底部控制栏里显示 画中画 的开关按钮 +<div c ...`,l:"start/option.html#pip",a:"pip"},"31.21":{t:"`mutex`\r",p:` +Type: Boolean +Default: true + +假如页面里同时存在多个播放器,是否只能让一个播放器播放 +< ...`,l:"start/option.html#mutex",a:"mutex"},"31.22":{t:"`backdrop`\r",p:` +Type: Boolean +Default: true + +是否开启播放器 UI 的背景虚化效果。开启后,设置面板、右键菜单 ...`,l:"start/option.html#backdrop",a:"backdrop"},"31.23":{t:"`fullscreen`\r",p:` +Type: Boolean +Default: false + +是否在底部控制栏里显示播放器 窗口全屏 按钮 +<div ...`,l:"start/option.html#fullscreen",a:"fullscreen"},"31.24":{t:"`fullscreenWeb`\r",p:` +Type: Boolean +Default: false + +是否在底部控制栏里显示播放器 网页全屏 按钮 +<div ...`,l:"start/option.html#fullscreenweb",a:"fullscreenweb"},"31.25":{t:"`subtitleOffset`\r",p:` +Type: Boolean +Default: false + +字幕时间偏移,范围在 [-5s, 5s],出现在 设置面板 里 ...`,l:"start/option.html#subtitleoffset",a:"subtitleoffset"},"31.26":{t:"`miniProgressBar`\r",p:` +Type: Boolean +Default: false + +迷你进度条,只在播放器失去焦点后且正在播放时出现 +<di ...`,l:"start/option.html#miniprogressbar",a:"miniprogressbar"},"31.27":{t:"`useSSR`\r",p:` +Type: Boolean +Default: false + +是否使用 SSR 挂载模式,假如你希望在播放器挂载前,就提前渲 ...`,l:"start/option.html#usessr",a:"usessr"},"31.28":{t:"`playsInline`\r",p:` +Type: Boolean +Default: true + +在移动端是否使用 playsInline 模式 +<div ...`,l:"start/option.html#playsinline",a:"playsinline"},"31.29":{t:"`layers`\r",p:` +Type: Array +Default: [] + +初始化自定义的 层 +<div className="ru ...`,l:"start/option.html#layers",a:"layers"},"31.30":{t:"`settings`\r",p:` +Type: Array +Default: [] + +初始化自定义的 设置面板 +<div className=" ...`,l:"start/option.html#settings",a:"settings"},"31.31":{t:"`contextmenu`\r",p:` +Type: Array +Default: [] + +初始化自定义的 右键菜单 +<div className=" ...`,l:"start/option.html#contextmenu",a:"contextmenu"},"31.32":{t:"`controls`\r",p:` +Type: Array +Default: [] + +初始化自定义的底部 控制栏 +<div className=&quo ...`,l:"start/option.html#controls",a:"controls"},"31.33":{t:"`quality`\r",p:` +Type: Array +Default: [] + +是否在底部控制栏里显示 画质选择 列表 + + + +属性 +类型 +描述 + + + + + ...`,l:"start/option.html#quality",a:"quality"},"31.34":{t:"`highlight`\r",p:` +Type: Array +Default: [] + +在进度条上显示 高亮信息 + + + +属性 +类型 +描述 + + + + +time +Nu ...`,l:"start/option.html#highlight",a:"highlight"},"31.35":{t:"`plugins`\r",p:` +Type: Array +Default: [] + +初始化自定义的 插件 +<div className="r ...`,l:"start/option.html#plugins",a:"plugins"},"31.36":{t:"`thumbnails`\r",p:` +Type: Object +Default: {} + +在进度条上设置 预览图 + + + +属性 +类型 +描述 + + + + +url +Str ...`,l:"start/option.html#thumbnails",a:"thumbnails"},"31.37":{t:"`subtitle`\r",p:` +Type: Object +Default: {} + +设置视频的字幕,支持字幕格式:vtt, srt, ass + + + +属性 + ...`,l:"start/option.html#subtitle",a:"subtitle"},"31.38":{t:"`moreVideoAttr`\r",p:` +Type: Object +Default: {'controls': false, 'preload': 'metadat ...`,l:"start/option.html#morevideoattr",a:"morevideoattr"},"31.39":{t:"`icons`\r",p:` +Type: Object +Default: {} + +用于替换默认图标,支持 Html 字符串和 HTMLElement +& ...`,l:"start/option.html#icons",a:"icons"},"31.40":{t:"`type`\r",p:` +Type: String +Default: '' + +用于指明视频的格式,需要配合 customType 一起使用,默认视频 ...`,l:"start/option.html#type",a:"type"},"31.41":{t:"`customType`\r",p:` +Type: Object +Default: {} + +通过视频的 type 进行匹配,把视频解码权交给第三方程序进行处理,处 ...`,l:"start/option.html#customtype",a:"customtype"},"31.42":{t:"`lang`\r",p:` +Type: String +Default: navigator.language.toLowerCase() + +默认显示语 ...`,l:"start/option.html#lang",a:"lang"},"31.43":{t:"`i18n`\r",p:` +Type: Object +Default: {} + +自定义 i18n 配置,该配置会和自带的 i18n 进行深度合并 +新增 ...`,l:"start/option.html#i18n",a:"i18n"},"31.44":{t:"`lock`\r",p:` +Type: Boolean +Default: false + +是否在移动端显示一个 锁定按钮 ,用于隐藏底部 控制栏 +< ...`,l:"start/option.html#lock",a:"lock"},"31.45":{t:"`gesture`\r",p:` +Type: Boolean +Default: true + +是否在移动端启用视频元素上的手势事件 +<div class ...`,l:"start/option.html#gesture",a:"gesture"},"31.46":{t:"`fastForward`\r",p:` +Type: Boolean +Default: false + +是否在移动端添加长按视频快进功能 +<div classN ...`,l:"start/option.html#fastforward",a:"fastforward"},"31.47":{t:"`autoPlayback`\r",p:` +Type: Boolean +Default: false + +是否使用自动 回放功能 +<div className=& ...`,l:"start/option.html#autoplayback",a:"autoplayback"},"31.48":{t:"`autoOrientation`\r",p:` +Type: Boolean +Default: false + +是否在移动端的网页全屏时,根据视频尺寸和视口尺寸,旋转播放器 + ...`,l:"start/option.html#autoorientation",a:"autoorientation"},"31.49":{t:"`airplay`\r",p:` +Type: Boolean +Default: false + +是否显示 airplay 按钮,当前只有部分浏览器支持该功能 + ...`,l:"start/option.html#airplay",a:"airplay"},"31.50":{t:"`cssVar`\r",p:` +Type: Object +Default: {} + +用于改变内置的css变量 +<div className=&quo ...`,l:"start/option.html#cssvar",a:"cssvar"},"31.51":{t:"`proxy`\r",p:` +Type: function +Default: undefined + +函数可以返回一个第三方的 HTMLCanvasEle ...`,l:"start/option.html#proxy",a:"proxy"}},n={previewLength:62,buttonLabel:"Search",placeholder:"Search docs",allow:[],ignore:[]},a={INDEX_DATA:e,PREVIEW_LOOKUP:t,Options:n};export{a as default}; diff --git a/docs/document/assets/en_plugin_dash-control.md.91f02kuD.js b/docs/document/assets/en_plugin_dash-control.md.91f02kuD.js new file mode 100644 index 000000000..4e05d4041 --- /dev/null +++ b/docs/document/assets/en_plugin_dash-control.md.91f02kuD.js @@ -0,0 +1,81 @@ +import{_ as i,o as n,c as e,ak as a,j as t}from"./chunks/framework.xxfEszSJ.js";const E=JSON.parse('{"title":"DASH Control","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/dash-control.md","filePath":"en/plugin/dash-control.md","lastUpdated":null}'),l={name:"en/plugin/dash-control.md"};function p(h,s,r,k,d,o){return n(),e("div",null,s[0]||(s[0]=[a(`

DASH Control ​

中文说明

Add video quality and audio-track menus to a dash.js player. You create and attach the SDK instance at art.dash; the plugin controls that instance and releases its own menus and listeners.

This guide describes the current refactor branch. Its SDK adaptation, automatic refresh and lifecycle fixes have not yet been published. An unversioned npm/CDN install still uses the published release.

Installation ​

sh
yarn add artplayer dashjs artplayer-plugin-dash-control
js
import Artplayer from 'artplayer';
+import dashjs from 'dashjs';
+import artplayerPluginDashControl from 'artplayer-plugin-dash-control';

For script tags, load ArtPlayer, dash.js and dist/artplayer-plugin-dash-control.js before setup. The plugin global is artplayerPluginDashControl. Pin your dependency versions and use a browser-accessible MPD and segments.

Complete example ​

The example matches the online DASH example. Replace the site's container and media URL in your application.

`,10),t("div",{className:"run-code","data-libs":`https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js +./uncompiled/artplayer-plugin-dash-control/index.js`},null,-1),a(`
js
// npm i dashjs
+// npm i artplayer-plugin-dash-control
+
+// import dashjs from 'dashjs';
+// import artplayerPluginDashControl from 'artplayer-plugin-dash-control';
+
+const useDash = dashjs.supportsMediaSource()
+let dash
+
+function destroyDash() {
+  const previous = dash
+  dash = undefined
+  if (previous)
+    previous.destroy()
+}
+
+const art = new Artplayer({
+  container: '.artplayer-app',
+  url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd',
+  setting: true,
+  plugins: useDash
+    ? [
+        artplayerPluginDashControl({
+          quality: {
+            // Show quality choices in the controls
+            control: true,
+            // Show quality choices in settings
+            setting: true,
+            // Get the quality name from level
+            getName: level => \`\${level.height}P\`,
+            // I18n
+            title: 'Quality',
+            auto: 'Auto',
+          },
+          audio: {
+            // Show audios in control
+            control: true,
+            // Show audios in setting
+            setting: true,
+            // Get the audio name from track
+            getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'),
+            // I18n
+            title: 'Audio',
+            auto: 'Auto',
+          },
+        }),
+      ]
+    : [],
+  customType: {
+    mpd: function playMpd(video, url, art) {
+      destroyDash()
+      if (useDash) {
+        dash = dashjs.MediaPlayer().create()
+        art.dash = dash
+        dash.initialize(video, url, art.option.autoplay)
+      }
+      else {
+        art.notice.show = 'Unsupported playback format: mpd'
+      }
+    },
+  },
+})
+
+art.on('destroy', destroyDash)

The example chooses its SDK capability path once per player. If dash.js cannot use MediaSource, it displays the existing unsupported-format notice without creating an SDK or installing its controls. This example does not provide a native DASH fallback.

Configuration ​

artplayerPluginDashControl(option?) synchronously returns a plugin factory. Both quality and audio accept:

FieldMeaning and default
controlDisplay a bottom control; omitted means hidden.
settingDisplay a settings entry; omitted means hidden. Also enable the player's setting: true.
titleMenu title, default Quality or Audio.
autoFallback text, default Auto; quality also uses it for its automatic selection row. It does not create a synthetic audio track.
getName(item)Return a string from the original SDK level or track. It receives one argument, with no player receiver or index.

The default quality label is level.height + 'p'. Default audio labels use track.lang or track.id; metadata may be missing or null. A custom formatter should return a string fallback, as the complete example does. Empty title/Auto text uses the default.

Equal text labels collapse into one displayed choice. Include bitrate or other metadata when several variants have the same height and should remain separate choices. A selected duplicate keeps the actual selected SDK key or track object. Empty track lists remove their menus.

Quality and audio selection ​

Manual quality selection disables video Auto switching, then selects the SDK quality. Auto enables video Auto switching without overwriting unrelated ABR settings. A synchronous menu selection does not mean buffering or decoding has completed.

The plugin detects the SDK's available method family:

SDK interfaceQuality list and selection
dash.js 4 stylegetBitrateInfoListFor('video'), getQualityFor('video'), setQualityFor('video', qualityIndex)
dash.js 5 stylegetRepresentationsByType('video'), getCurrentRepresentationForType('video'), setRepresentationForTypeById('video', id)

For the representation interface, selection uses the representation ID, including numeric zero. Do not substitute the index of a filtered array. You do not need to configure a version switch in the plugin.

Audio selection calls setCurrentTrack() with the original SDK track object. It matches the current track by object identity or an unambiguous combination of available id/index/lang fields. There is no extra Auto audio row.

Refresh after external changes ​

Player ready/restart and SDK quality, track and stream events refresh menus. SDK event refreshes are coalesced after the current synchronous selection. Unchanged playback-time events do not redraw menus; they can detect an external Auto-setting change.

When changing SDK configuration while paused without a subsequent SDK event, refresh explicitly:

js
art.plugins.artplayerPluginDashControl.update();

update() is synchronous and returns undefined. It requires art.dash to be attached to the player's video and can throw if that contract is not met. Assigning a different art.dash alone does not subscribe to it immediately; call update() or use the normal ready/restart flow after attachment.

Automatic refresh preserves an open, plugin-owned quality or audio settings panel. Explicit update() keeps its existing rebuild behavior. Reserve dash-quality and dash-audio for the plugin's menu names.

If an asynchronous SDK getter or formatter fails, the plugin warns, stops that observation and clears its menus. Fix the formatter/SDK state and call update() to recover. Explicit update and synchronous selection errors keep their normal throwing behavior.

SDK ownership and source switching ​

Use the existing player switchUrl() or switchQuality() and handle its Promise. The complete example destroys the replaced SDK, assigns the new instance before initialization, and keeps one final player cleanup listener. It does not accumulate a new destroy listener on every load or destroy replaced engines again at the end.

The plugin does not own your SDK: it never calls dash.destroy(), changes the manifest URL or removes listeners belonging to other consumers. Retained callbacks from old menus become inactive after replacement or player destruction. Your application remains responsible for DRM, SDK errors, autoplay decisions and any asynchronous SDK shutdown policy its integration requires.

TypeScript ​

Default callback types include quality height/width/ID/bitrate and nullable audio id/index/lang. Use the generic factory for more specific metadata. This example declares only the fields it uses and does not require importing SDK declarations:

ts
import dashControl from 'artplayer-plugin-dash-control';
+
+interface Level { height: number; bitrateInKbit?: number }
+interface Track { id?: string | number | null; lang?: string | null }
+
+const plugin = dashControl<Level, Track>({
+    quality: {
+        control: true,
+        getName: level => level.height + 'p',
+    },
+    audio: {
+        setting: true,
+        getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'),
+    },
+});

Option, Config, QualityLevel, AudioTrack and Result are exported from the root. Root and legacy paths remain available. If using actual SDK declarations, dash.js 4.5.2 exposes BitrateInfo for quality; 5.2.1 uses Representation. Its declarations have different compiler/module-resolution requirements, so test your actual SDK and TypeScript combination. Describe the externally attached art.dash in your application's integration types.

Validation scope ​

The refactor tests fixed dash.js 4.5.2 and 5.2.1 with local adaptive media and old/new core combinations. Those are tested points, not a new blanket support range. The plugin includes a targeted 4.5.2 paused-seek recovery for stale empty-buffer metrics while preserving the caller's SDK settings and media time. Windows Playwright WebKit lacks the MSE path used by these tests; it is not Safari/device playback acceptance. Test your own MPDs, DRM and target devices before adopting the unpublished refactor.

`,29)]))}const g=i(l,[["render",p]]);export{E as __pageData,g as default}; diff --git a/docs/document/assets/en_plugin_dash-control.md.91f02kuD.lean.js b/docs/document/assets/en_plugin_dash-control.md.91f02kuD.lean.js new file mode 100644 index 000000000..bdd041ed8 --- /dev/null +++ b/docs/document/assets/en_plugin_dash-control.md.91f02kuD.lean.js @@ -0,0 +1,2 @@ +import{_ as i,o as n,c as e,ak as a,j as t}from"./chunks/framework.xxfEszSJ.js";const E=JSON.parse('{"title":"DASH Control","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/dash-control.md","filePath":"en/plugin/dash-control.md","lastUpdated":null}'),l={name:"en/plugin/dash-control.md"};function p(h,s,r,k,d,o){return n(),e("div",null,s[0]||(s[0]=[a("",10),t("div",{className:"run-code","data-libs":`https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js +./uncompiled/artplayer-plugin-dash-control/index.js`},null,-1),a("",29)]))}const g=i(l,[["render",p]]);export{E as __pageData,g as default}; diff --git a/docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.js b/docs/document/assets/en_plugin_hls-control.md.D-g42K7T.js similarity index 93% rename from docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.js rename to docs/document/assets/en_plugin_hls-control.md.D-g42K7T.js index a8d9bece7..4a588196d 100644 --- a/docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.js +++ b/docs/document/assets/en_plugin_hls-control.md.D-g42K7T.js @@ -1,4 +1,4 @@ -import{_ as a,o as n,c as e,ak as i,j as l}from"./chunks/framework.xxfEszSJ.js";const E=JSON.parse('{"title":"HLS Control","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/hls-control.md","filePath":"en/plugin/hls-control.md","lastUpdated":null}'),t={name:"en/plugin/hls-control.md"};function p(h,s,r,k,d,o){return n(),e("div",null,s[0]||(s[0]=[i(`

HLS Control ​

中文说明

Add quality and audio-track menus to an Hls.js player. This plugin controls the Hls.js instance you provide at art.hls; it does not download, create or destroy the SDK.

This guide describes the current refactor branch. The automatic refresh and lifecycle fixes described here have not yet been published. An unversioned npm/CDN install still uses the published release.

Installation ​

sh
yarn add artplayer hls.js artplayer-plugin-hls-control
js
import Artplayer from 'artplayer';
+import{_ as a,o as n,c as e,ak as i,j as l}from"./chunks/framework.xxfEszSJ.js";const E=JSON.parse('{"title":"HLS Control","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/hls-control.md","filePath":"en/plugin/hls-control.md","lastUpdated":1789466111000}'),t={name:"en/plugin/hls-control.md"};function p(h,s,r,k,d,o){return n(),e("div",null,s[0]||(s[0]=[i(`

HLS Control ​

中文说明

Add quality and audio-track menus to an Hls.js player. This plugin controls the Hls.js instance you provide at art.hls; it does not download, create or destroy the SDK.

This guide describes the current refactor branch. The automatic refresh and lifecycle fixes described here have not yet been published. An unversioned npm/CDN install still uses the published release.

Installation ​

sh
yarn add artplayer hls.js artplayer-plugin-hls-control
js
import Artplayer from 'artplayer';
 import Hls from 'hls.js';
 import artplayerPluginHlsControl from 'artplayer-plugin-hls-control';

For script tags, load ArtPlayer, Hls.js and the plugin's dist/artplayer-plugin-hls-control.js before running your setup. The plugin global is artplayerPluginHlsControl. Pin versions in your application and use media URLs that permit browser access.

Complete example ​

The example uses the site's player container and the same source as the online HLS example. Replace the container and stream URL in your application.

`,10),l("div",{className:"run-code","data-libs":`https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js ./uncompiled/artplayer-plugin-hls-control/index.js`},null,-1),i(`
js
// npm i hls.js
diff --git a/docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.lean.js b/docs/document/assets/en_plugin_hls-control.md.D-g42K7T.lean.js
similarity index 62%
rename from docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.lean.js
rename to docs/document/assets/en_plugin_hls-control.md.D-g42K7T.lean.js
index 0f0c4a9fd..926ba843e 100644
--- a/docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.lean.js
+++ b/docs/document/assets/en_plugin_hls-control.md.D-g42K7T.lean.js
@@ -1,2 +1,2 @@
-import{_ as a,o as n,c as e,ak as i,j as l}from"./chunks/framework.xxfEszSJ.js";const E=JSON.parse('{"title":"HLS Control","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/hls-control.md","filePath":"en/plugin/hls-control.md","lastUpdated":null}'),t={name:"en/plugin/hls-control.md"};function p(h,s,r,k,d,o){return n(),e("div",null,s[0]||(s[0]=[i("",10),l("div",{className:"run-code","data-libs":`https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js
+import{_ as a,o as n,c as e,ak as i,j as l}from"./chunks/framework.xxfEszSJ.js";const E=JSON.parse('{"title":"HLS Control","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/hls-control.md","filePath":"en/plugin/hls-control.md","lastUpdated":1789466111000}'),t={name:"en/plugin/hls-control.md"};function p(h,s,r,k,d,o){return n(),e("div",null,s[0]||(s[0]=[i("",10),l("div",{className:"run-code","data-libs":`https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js
 ./uncompiled/artplayer-plugin-hls-control/index.js`},null,-1),i("",22)]))}const g=a(t,[["render",p]]);export{E as __pageData,g as default};
diff --git a/docs/document/assets/plugin_dash-control.md.CFnlLzry.js b/docs/document/assets/plugin_dash-control.md.CFnlLzry.js
new file mode 100644
index 000000000..1194d1d1c
--- /dev/null
+++ b/docs/document/assets/plugin_dash-control.md.CFnlLzry.js
@@ -0,0 +1,81 @@
+import{_ as a,o as n,c as l,ak as i,j as p}from"./chunks/framework.xxfEszSJ.js";const o=JSON.parse('{"title":"DASH 控制","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/dash-control.md","filePath":"plugin/dash-control.md","lastUpdated":null}'),e={name:"plugin/dash-control.md"};function t(h,s,k,r,d,E){return n(),l("div",null,s[0]||(s[0]=[i(`

DASH 控制 ​

English

为 dash.js 播放器添加画质和音轨菜单。你负责创建 SDK、绑定 video 并赋给 art.dash;插件控制这个实例,只清理自己创建的菜单和监听器。

本页描述当前重构分支。这里的 SDK 适配、自动刷新和生命周期修复尚未发布;未固定版本的 npm/CDN 安装仍使用已发布版本。

安装 ​

sh
yarn add artplayer dashjs artplayer-plugin-dash-control
js
import Artplayer from 'artplayer';
+import dashjs from 'dashjs';
+import artplayerPluginDashControl from 'artplayer-plugin-dash-control';

使用 script 标签时,在初始化前加载 ArtPlayer、dash.js 和 dist/artplayer-plugin-dash-control.js。插件全局名称为 artplayerPluginDashControl。应用应固定依赖版本,并使用浏览器可访问的 MPD 和媒体片段。

完整示例 ​

下面与在线 DASH 示例使用相同代码。接入应用时替换站点容器和视频地址。

`,10),p("div",{className:"run-code","data-libs":`https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js +./uncompiled/artplayer-plugin-dash-control/index.js`},null,-1),i(`
js
// npm i dashjs
+// npm i artplayer-plugin-dash-control
+
+// import dashjs from 'dashjs';
+// import artplayerPluginDashControl from 'artplayer-plugin-dash-control';
+
+const useDash = dashjs.supportsMediaSource()
+let dash
+
+function destroyDash() {
+  const previous = dash
+  dash = undefined
+  if (previous)
+    previous.destroy()
+}
+
+const art = new Artplayer({
+  container: '.artplayer-app',
+  url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd',
+  setting: true,
+  plugins: useDash
+    ? [
+        artplayerPluginDashControl({
+          quality: {
+            // Show quality choices in the controls
+            control: true,
+            // Show quality choices in settings
+            setting: true,
+            // Get the quality name from level
+            getName: level => \`\${level.height}P\`,
+            // I18n
+            title: 'Quality',
+            auto: 'Auto',
+          },
+          audio: {
+            // Show audios in control
+            control: true,
+            // Show audios in setting
+            setting: true,
+            // Get the audio name from track
+            getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'),
+            // I18n
+            title: 'Audio',
+            auto: 'Auto',
+          },
+        }),
+      ]
+    : [],
+  customType: {
+    mpd: function playMpd(video, url, art) {
+      destroyDash()
+      if (useDash) {
+        dash = dashjs.MediaPlayer().create()
+        art.dash = dash
+        dash.initialize(video, url, art.option.autoplay)
+      }
+      else {
+        art.notice.show = 'Unsupported playback format: mpd'
+      }
+    },
+  },
+})
+
+art.on('destroy', destroyDash)

示例在创建播放器时固定 SDK 能力分支。若 dash.js 无法使用 MediaSource,则保留原来的格式不支持提示,不创建 SDK 或安装依赖它的控制插件。这个示例没有提供原生 DASH 回退。

配置 ​

artplayerPluginDashControl(option?) 同步返回插件工厂。quality 和 audio 都支持:

字段含义与默认行为
control显示底部控制器;省略时不显示。
setting显示设置项;省略时不显示,还需播放器配置 setting: true。
title菜单标题,默认 Quality 或 Audio。
auto回退文字,默认 Auto;画质还用于自动选项,不会新增一个虚拟音轨。
getName(item)根据原始 SDK 档位或轨道对象返回字符串。只有一个参数,不提供索引或播放器 this。

默认画质标签为 level.height + 'p',音轨标签取 track.lang 或 track.id。这些元数据可能缺失或为 null,自定义回调应像完整示例一样返回字符串回退。空标题或空 Auto 文字会使用默认值。

相同文字标签会合并成一个选项。若同高度的多个档位需要分别显示,可以在标签中加入码率或其他元数据。选中重复项时,会保留实际选中的 SDK 标识或轨道对象。轨道列表变空时移除对应菜单。

画质和音轨选择 ​

手动选画质先关闭视频的自动码率选择,再调用 SDK 选择档位;Auto 只启用视频自动选择,不覆盖其他 ABR 设置。同步选择菜单不代表缓冲或解码已经完成。

插件根据 SDK 实际提供的方法选择适配方式:

SDK 接口画质列表与选择
dash.js 4 风格getBitrateInfoListFor('video')、getQualityFor('video')、setQualityFor('video', qualityIndex)
dash.js 5 风格getRepresentationsByType('video')、getCurrentRepresentationForType('video')、setRepresentationForTypeById('video', id)

representation 接口使用 ID 选择,数字零也是合法 ID;不能用过滤后数组的索引代替。无需给插件额外设置 SDK 版本开关。

选择音轨时,把原始 SDK 轨道对象交给 setCurrentTrack()。当前项优先通过对象身份匹配,再通过可用 id/index/lang 字段的唯一组合匹配,不会任意选中有歧义的项。音轨列表没有额外 Auto 行。

外部修改后的刷新 ​

播放器 ready/restart 和 SDK 的画质、音轨、流事件会刷新菜单。SDK 事件刷新在当前同步选择结束后合并执行;未变化的播放时间事件不重绘菜单,但可以发现外部 Auto 设置变化。

暂停时直接修改 SDK 配置、且没有后续 SDK 事件,可以手动刷新:

js
art.plugins.artplayerPluginDashControl.update();

update() 同步返回 undefined,要求 art.dash 已绑定到播放器的 video,否则可能抛错。仅赋值一个新的 art.dash 不会立即订阅它;绑定后调用 update(),或走正常 ready/restart 流程。

自动刷新会保留已打开、由插件管理的画质或音轨设置子菜单;显式 update() 保留原有重建行为。插件使用 dash-quality 和 dash-audio 菜单名,其他菜单请避开这些名称。

异步 SDK getter 或格式回调失败时,插件会输出警告、停止该观察并清除菜单;修正回调或 SDK 状态后调用 update() 恢复。显式更新和同步选择的错误仍按原语义抛出。

SDK 所有权与换源 ​

换源使用播放器已有的 switchUrl() 或 switchQuality(),并处理返回的 Promise。完整示例先销毁被替换的 SDK,在初始化前赋值新实例,每个播放器只注册一个最终清理监听器,不在每次加载时累积新的 destroy 回调,也不在最后重复销毁旧实例。

控制插件不会调用 dash.destroy()、更换清单地址或移除其他使用者的监听器;替换实例或销毁播放器后,旧菜单回调失效。应用仍负责 DRM、SDK 错误、自动播放策略,以及自身集成所需的异步 SDK 关闭策略。

TypeScript ​

默认回调类型包含画质高度/宽度/ID/码率,以及允许为空的音轨 id/index/lang。可以通过泛型声明更具体的元数据;下面只声明实际使用的字段,无需导入 SDK 声明:

ts
import dashControl from 'artplayer-plugin-dash-control';
+
+interface Level { height: number; bitrateInKbit?: number }
+interface Track { id?: string | number | null; lang?: string | null }
+
+const plugin = dashControl<Level, Track>({
+    quality: {
+        control: true,
+        getName: level => level.height + 'p',
+    },
+    audio: {
+        setting: true,
+        getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'),
+    },
+});

根入口导出 Option、Config、QualityLevel、AudioTrack 和 Result,原根入口与 legacy 路径继续保留。使用实际 SDK 声明时,dash.js 4.5.2 的画质类型为 BitrateInfo,5.2.1 使用 Representation;其编译器与模块解析要求不同,应验证实际 SDK/TypeScript 组合。在应用的集成类型中描述外部附加的 art.dash。

验证范围 ​

重构使用固定 dash.js 4.5.2 / 5.2.1、本地自适应媒体和新旧核心组合验证;这两个版本是验证点,不是新定义的完整支持范围。插件对4.5.2暂停拖动后空缓冲指标陈旧的问题有定向恢复,保留调用方 SDK 设置和媒体时间。Windows Playwright WebKit 缺少相关 MSE 路径,不能代表 Safari 或真机播放已验收。采用未发布重构前,应验证自己的 MPD、DRM 和目标设备。

`,29)]))}const g=a(e,[["render",t]]);export{o as __pageData,g as default}; diff --git a/docs/document/assets/plugin_dash-control.md.CFnlLzry.lean.js b/docs/document/assets/plugin_dash-control.md.CFnlLzry.lean.js new file mode 100644 index 000000000..802b53a63 --- /dev/null +++ b/docs/document/assets/plugin_dash-control.md.CFnlLzry.lean.js @@ -0,0 +1,2 @@ +import{_ as a,o as n,c as l,ak as i,j as p}from"./chunks/framework.xxfEszSJ.js";const o=JSON.parse('{"title":"DASH 控制","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/dash-control.md","filePath":"plugin/dash-control.md","lastUpdated":null}'),e={name:"plugin/dash-control.md"};function t(h,s,k,r,d,E){return n(),l("div",null,s[0]||(s[0]=[i("",10),p("div",{className:"run-code","data-libs":`https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js +./uncompiled/artplayer-plugin-dash-control/index.js`},null,-1),i("",29)]))}const g=a(e,[["render",t]]);export{o as __pageData,g as default}; diff --git a/docs/document/assets/plugin_hls-control.md.G4-jWSB9.js b/docs/document/assets/plugin_hls-control.md.IVFa-2v4.js similarity index 93% rename from docs/document/assets/plugin_hls-control.md.G4-jWSB9.js rename to docs/document/assets/plugin_hls-control.md.IVFa-2v4.js index 01535ed70..59f5ac038 100644 --- a/docs/document/assets/plugin_hls-control.md.G4-jWSB9.js +++ b/docs/document/assets/plugin_hls-control.md.IVFa-2v4.js @@ -1,4 +1,4 @@ -import{_ as a,o as n,c as l,ak as i,j as p}from"./chunks/framework.xxfEszSJ.js";const g=JSON.parse('{"title":"HLS 控制","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/hls-control.md","filePath":"plugin/hls-control.md","lastUpdated":null}'),e={name:"plugin/hls-control.md"};function h(t,s,k,r,d,E){return n(),l("div",null,s[0]||(s[0]=[i(`

HLS 控制 ​

English

为 Hls.js 播放器添加画质与音轨菜单。插件控制你放在 art.hls 上的 Hls.js 实例,不负责下载、创建或销毁 SDK。

本页描述当前重构分支。这里说明的自动刷新与生命周期修复尚未发布;未固定版本的 npm/CDN 安装仍使用已发布版本。

安装 ​

sh
yarn add artplayer hls.js artplayer-plugin-hls-control
js
import Artplayer from 'artplayer';
+import{_ as a,o as n,c as l,ak as i,j as p}from"./chunks/framework.xxfEszSJ.js";const g=JSON.parse('{"title":"HLS 控制","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/hls-control.md","filePath":"plugin/hls-control.md","lastUpdated":1789466111000}'),e={name:"plugin/hls-control.md"};function h(t,s,k,r,d,E){return n(),l("div",null,s[0]||(s[0]=[i(`

HLS 控制 ​

English

为 Hls.js 播放器添加画质与音轨菜单。插件控制你放在 art.hls 上的 Hls.js 实例,不负责下载、创建或销毁 SDK。

本页描述当前重构分支。这里说明的自动刷新与生命周期修复尚未发布;未固定版本的 npm/CDN 安装仍使用已发布版本。

安装 ​

sh
yarn add artplayer hls.js artplayer-plugin-hls-control
js
import Artplayer from 'artplayer';
 import Hls from 'hls.js';
 import artplayerPluginHlsControl from 'artplayer-plugin-hls-control';

通过 script 标签使用时,先加载 ArtPlayer、Hls.js 和插件的 dist/artplayer-plugin-hls-control.js。插件全局名称为 artplayerPluginHlsControl。应用中应固定依赖版本,并使用允许浏览器访问的视频地址。

完整示例 ​

下面与在线 HLS 示例使用同一份代码和站点容器。接入自己的应用时替换容器与视频地址。

`,10),p("div",{className:"run-code","data-libs":`https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js ./uncompiled/artplayer-plugin-hls-control/index.js`},null,-1),i(`
js
// npm i hls.js
diff --git a/docs/document/assets/plugin_hls-control.md.G4-jWSB9.lean.js b/docs/document/assets/plugin_hls-control.md.IVFa-2v4.lean.js
similarity index 63%
rename from docs/document/assets/plugin_hls-control.md.G4-jWSB9.lean.js
rename to docs/document/assets/plugin_hls-control.md.IVFa-2v4.lean.js
index 9e16ab11a..7d3cd184e 100644
--- a/docs/document/assets/plugin_hls-control.md.G4-jWSB9.lean.js
+++ b/docs/document/assets/plugin_hls-control.md.IVFa-2v4.lean.js
@@ -1,2 +1,2 @@
-import{_ as a,o as n,c as l,ak as i,j as p}from"./chunks/framework.xxfEszSJ.js";const g=JSON.parse('{"title":"HLS 控制","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/hls-control.md","filePath":"plugin/hls-control.md","lastUpdated":null}'),e={name:"plugin/hls-control.md"};function h(t,s,k,r,d,E){return n(),l("div",null,s[0]||(s[0]=[i("",10),p("div",{className:"run-code","data-libs":`https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js
+import{_ as a,o as n,c as l,ak as i,j as p}from"./chunks/framework.xxfEszSJ.js";const g=JSON.parse('{"title":"HLS 控制","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/hls-control.md","filePath":"plugin/hls-control.md","lastUpdated":1789466111000}'),e={name:"plugin/hls-control.md"};function h(t,s,k,r,d,E){return n(),l("div",null,s[0]||(s[0]=[i("",10),p("div",{className:"run-code","data-libs":`https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js
 ./uncompiled/artplayer-plugin-hls-control/index.js`},null,-1),i("",22)]))}const o=a(e,[["render",h]]);export{g as __pageData,o as default};
diff --git a/docs/document/component/contextmenu.html b/docs/document/component/contextmenu.html
index 0ad73b6c8..44e41d20c 100644
--- a/docs/document/component/contextmenu.html
+++ b/docs/document/component/contextmenu.html
@@ -9,9 +9,9 @@
     
     
     
-    
+    
     
-    
+    
     
     
     
@@ -23,7 +23,7 @@
     
   
   
-    
Skip to content

右键菜单 ​

配置 ​

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

创建 ​

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

右键菜单 ​

配置 ​

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

创建 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -106,7 +106,7 @@
         })
     }, 3000);
 });
- + \ No newline at end of file diff --git a/docs/document/component/controls.html b/docs/document/component/controls.html index 45d2a1390..f6901b426 100644 --- a/docs/document/component/controls.html +++ b/docs/document/component/controls.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

控制器 ​

配置 ​

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

创建 ​

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

控制器 ​

配置 ​

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

创建 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -153,7 +153,7 @@
         });
     }, 3000);
 });
- + \ No newline at end of file diff --git a/docs/document/component/layers.html b/docs/document/component/layers.html index f9e1c49ae..035a815f4 100644 --- a/docs/document/component/layers.html +++ b/docs/document/component/layers.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

业务层 ​

配置 ​

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

创建 ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
+    
Skip to content

业务层 ​

配置 ​

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

创建 ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -125,7 +125,7 @@
         });
     }, 3000);
 });
- + \ No newline at end of file diff --git a/docs/document/component/setting.html b/docs/document/component/setting.html index bc04fd6b2..18a04f04c 100644 --- a/docs/document/component/setting.html +++ b/docs/document/component/setting.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

设置面板 ​

内置 ​

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

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

设置面板 ​

内置 ​

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

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 	setting: true,
@@ -245,7 +245,7 @@
         });
     }, 3000);
 });
- + \ No newline at end of file diff --git a/docs/document/en/advanced/built-in.html b/docs/document/en/advanced/built-in.html index 27aefb8b4..c3d6e47ec 100644 --- a/docs/document/en/advanced/built-in.html +++ b/docs/document/en/advanced/built-in.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Advanced Properties ​

The Advanced Properties here refer to the secondary properties attached to the instance, which are less commonly used.

option ​

The player's options.

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

Advanced Properties ​

The Advanced Properties here refer to the secondary properties attached to the instance, which are less commonly used.

option ​

The player's options.

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -217,7 +217,7 @@
 art.on('ready', () => {
     art.plugins.add(myPlugin);
 });
- + \ No newline at end of file diff --git a/docs/document/en/advanced/class.html b/docs/document/en/advanced/class.html index db8a60a78..f1fab7726 100644 --- a/docs/document/en/advanced/class.html +++ b/docs/document/en/advanced/class.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Static Properties ​

Here, static properties refer to the first-level properties attached to the constructor, which are rarely used.

instances ​

Returns an array of all player instances. This property can be useful when you need to manage multiple players simultaneously.

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

Static Properties ​

Here, static properties refer to the first-level properties attached to the constructor, which are rarely used.

instances ​

Returns an array of all player instances. This property can be useful when you need to manage multiple players simultaneously.

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

version ​

Returns the version information of the player.

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

env ​

Returns the environment variables of the player.

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

build ​

Returns the build timestamp of the player.

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

config ​

Returns the default configuration for videos.

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

utils ​

Returns the collection of utility functions for the player.

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

For all utility functions, please refer to the following address:

artplayer/types/utils.d.ts

scheme ​

Returns the validation schema for player options.

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

Emitter ​

Returns the constructor of the event emitter.

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

validator ​

Returns the validation function for options.

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

kindOf ​

Returns the type detection utility function.

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

html ​

Returns the html string required by the player.

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

option ​

Returns the default options of the player.

▶ Run Code
js
console.info(Artplayer.option);
- + \ No newline at end of file diff --git a/docs/document/en/advanced/event.html b/docs/document/en/advanced/event.html index 0018c8621..ff731974a 100644 --- a/docs/document/en/advanced/event.html +++ b/docs/document/en/advanced/event.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Instance Events ​

Player events are divided into two types: native events of the video (prefixed with video:), and custom events.

Listening to events:

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

Instance Events ​

Player events are divided into two types: native events of the video (prefixed with video:), and custom events.

Listening to events:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -385,7 +385,7 @@
 art.on('keydown', (event) => {
     console.log(event.code);
 });

video:canplay ​

The browser can start playing the media, but estimates there is not enough data to play through to the end without stopping for further buffering.

video:canplaythrough ​

The browser estimates it can play the media through to the end without stopping for buffering.

video:complete ​

The OfflineAudioContext rendering is complete.

video:durationchange ​

Triggered when the value of the duration property changes.

video:emptied ​

The media has become empty; for example, this event is sent when the media has already been loaded (or partially loaded), and the load() method is called to reload it.

video:ended ​

Playback has stopped because the media has reached its end.

video:error ​

An error occurred while fetching the media data, or the resource type is not a supported media format.

video:loadeddata ​

The first frame of the media has finished loading.

video:loadedmetadata ​

Metadata has been loaded.

video:pause ​

Playback has been paused.

video:play ​

Playback has begun.

video:playing ​

Playback is ready to start after having been paused or delayed due to lack of data.

video:progress ​

Fired periodically as the browser loads the resource.

video:ratechange ​

The playback rate has changed.

video:seeked ​

A seek operation has completed.

video:seeking ​

A seek operation has begun.

video:stalled ​

The user agent is trying to fetch media data, but data is unexpectedly not forthcoming.

video:suspend ​

Media data loading has been suspended.

video:timeupdate ​

The time indicated by the currentTime property has changed.

video:volumechange ​

The volume has changed.

video:waiting ​

Playback has stopped because of a temporary lack of data.

- + \ No newline at end of file diff --git a/docs/document/en/advanced/global.html b/docs/document/en/advanced/global.html index 7cec73517..3f7bad7e2 100644 --- a/docs/document/en/advanced/global.html +++ b/docs/document/en/advanced/global.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Global Properties ​

The global properties here refer to the top-level properties mounted on the constructor. All property names are in uppercase. These are subject to change in the future and are rarely used.

DEBUG ​

Whether to enable debug mode, which can print all built-in video events. Default is off.

▶ Run Code
js
Artplayer.DEBUG = true;
+    
Skip to content

Global Properties ​

The global properties here refer to the top-level properties mounted on the constructor. All property names are in uppercase. These are subject to change in the future and are rarely used.

DEBUG ​

Whether to enable debug mode, which can print all built-in video events. Default is off.

▶ Run Code
js
Artplayer.DEBUG = true;
 
 var art = new Artplayer({
     container: '.artplayer-app',
@@ -248,7 +248,7 @@
 
 // Only destroy the UI, do not actively clear the src
 art.destroy();
- + \ No newline at end of file diff --git a/docs/document/en/advanced/plugin.html b/docs/document/en/advanced/plugin.html index 7e434f2ce..e5e955f73 100644 --- a/docs/document/en/advanced/plugin.html +++ b/docs/document/en/advanced/plugin.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Writing Plugins ​

Once you are familiar with the player's properties, methods, and events, writing a plugin becomes a very straightforward task.

You can load a plugin function during instantiation.

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

Writing Plugins ​

Once you are familiar with the player's properties, methods, and events, writing a plugin becomes a very straightforward task.

You can load a plugin function during instantiation.

▶ Run Code
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -122,7 +122,7 @@
         })
     ],
 });
- + \ No newline at end of file diff --git a/docs/document/en/advanced/property.html b/docs/document/en/advanced/property.html index 82ed1d5df..adbe8df57 100644 --- a/docs/document/en/advanced/property.html +++ b/docs/document/en/advanced/property.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Instance Properties ​

Here, Instance Properties refer to the first-level properties mounted on the instance, which are commonly used.

play ​

  • Type: Function

Play the video.

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

Instance Properties ​

Here, Instance Properties refer to the first-level properties mounted on the instance, which are commonly used.

play ​

  • Type: Function

Play the video.

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -457,7 +457,7 @@
 art.on('ready', () => {
     art.subtitleOffset = 1;
 });
- + \ No newline at end of file diff --git a/docs/document/en/component/contextmenu.html b/docs/document/en/component/contextmenu.html index a3618eb13..ccbca1cf1 100644 --- a/docs/document/en/component/contextmenu.html +++ b/docs/document/en/component/contextmenu.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Context Menu ​

Configuration ​

PropertyTypeDescription
disableBooleanWhether to disable the component
nameStringUnique component name for CSS class
indexNumberComponent index for display priority
htmlString, ElementDOM element of the component
styleObjectComponent style object
clickFunctionComponent click event
mountedFunctionTriggered after component mount
tooltipStringTooltip text for the component

Creation ​

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

Context Menu ​

Configuration ​

PropertyTypeDescription
disableBooleanWhether to disable the component
nameStringUnique component name for CSS class
indexNumberComponent index for display priority
htmlString, ElementDOM element of the component
styleObjectComponent style object
clickFunctionComponent click event
mountedFunctionTriggered after component mount
tooltipStringTooltip text for the component

Creation ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -106,7 +106,7 @@
         })
     }, 3000);
 });
- + \ No newline at end of file diff --git a/docs/document/en/component/controls.html b/docs/document/en/component/controls.html index 0f4f39420..8084f7d65 100644 --- a/docs/document/en/component/controls.html +++ b/docs/document/en/component/controls.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Controls ​

Configuration ​

PropertyTypeDescription
disableBooleanWhether to disable the control
nameStringUnique name of the control, used for class marking
indexNumberControl index, determines display priority
htmlString, ElementDOM element of the control
styleObjectStyle object for the control
clickFunctionClick event handler for the control
mountedFunctionTriggered after the control is mounted
tooltipStringTooltip text for the control
positionStringleft or right - controls which side the control appears on
selectorArrayArray of objects for selection list
onSelectFunctionFunction triggered when a selection list item is clicked

Creation ​

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

Controls ​

Configuration ​

PropertyTypeDescription
disableBooleanWhether to disable the control
nameStringUnique name of the control, used for class marking
indexNumberControl index, determines display priority
htmlString, ElementDOM element of the control
styleObjectStyle object for the control
clickFunctionClick event handler for the control
mountedFunctionTriggered after the control is mounted
tooltipStringTooltip text for the control
positionStringleft or right - controls which side the control appears on
selectorArrayArray of objects for selection list
onSelectFunctionFunction triggered when a selection list item is clicked

Creation ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -153,7 +153,7 @@
         });
     }, 3000);
 });
- + \ No newline at end of file diff --git a/docs/document/en/component/layers.html b/docs/document/en/component/layers.html index 7f74d0920..48857726a 100644 --- a/docs/document/en/component/layers.html +++ b/docs/document/en/component/layers.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Layers ​

Configuration ​

PropertyTypeDescription
disableBooleanWhether to disable the component
nameStringUnique component name for CSS class
indexNumberComponent index for display priority
htmlString, ElementComponent DOM element
styleObjectComponent style object
clickFunctionComponent click event
mountedFunctionTriggered after component mount
tooltipStringComponent tooltip text

Creation ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
+    
Skip to content

Layers ​

Configuration ​

PropertyTypeDescription
disableBooleanWhether to disable the component
nameStringUnique component name for CSS class
indexNumberComponent index for display priority
htmlString, ElementComponent DOM element
styleObjectComponent style object
clickFunctionComponent click event
mountedFunctionTriggered after component mount
tooltipStringComponent tooltip text

Creation ​

▶ Run Code
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -125,7 +125,7 @@
         });
     }, 3000);
 });
- + \ No newline at end of file diff --git a/docs/document/en/component/setting.html b/docs/document/en/component/setting.html index c9a6daa1f..8255425c1 100644 --- a/docs/document/en/component/setting.html +++ b/docs/document/en/component/setting.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Settings Panel ​

Built-in ​

First, you need to open the settings panel. It comes with four built-in items: flip, playbackRate, aspectRatio, subtitleOffset.

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

Settings Panel ​

Built-in ​

First, you need to open the settings panel. It comes with four built-in items: flip, playbackRate, aspectRatio, subtitleOffset.

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -245,7 +245,7 @@
         });
     }, 3000);
 });
- + \ No newline at end of file diff --git a/docs/document/en/index.html b/docs/document/en/index.html index b6ba04678..dcfc89f4c 100644 --- a/docs/document/en/index.html +++ b/docs/document/en/index.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Installation and Usage ​

Installation ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
bash
bun 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

Usage ​

html
<html>
+    
Skip to content

Installation and Usage ​

Installation ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
bash
bun 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

Usage ​

html
<html>
     <head>
         <title>ArtPlayer Demo</title>
         <meta charset="UTF-8" />
@@ -237,7 +237,7 @@
         </script>
     </body>
 </html>

Note

You need to modify it before importing the Artplayer dependency for it to take effect.

- + \ No newline at end of file diff --git a/docs/document/en/plugin/danmuku.html b/docs/document/en/plugin/danmuku.html index b1b5fab26..4d1242358 100644 --- a/docs/document/en/plugin/danmuku.html +++ b/docs/document/en/plugin/danmuku.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Danmuku ​

中文说明

Display timed comments over the video, with an input panel, display settings and an optional heatmap. This guide describes the current refactor branch. The /runtime entrypoint and refactor fixes have not yet been published to npm; unversioned CDN links still load the published release.

Demo ​

Open the full example. Run Code examples below use the site's local plugin build and sample media. In your application, use your own container and media URLs.

Installation ​

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

Danmuku ​

中文说明

Display timed comments over the video, with an input panel, display settings and an optional heatmap. This guide describes the current refactor branch. The /runtime entrypoint and refactor fixes have not yet been published to npm; unversioned CDN links still load the published release.

Demo ​

Open the full example. Run Code examples below use the site's local plugin build and sample media. In your application, use your own container and media URLs.

Installation ​

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

JavaScript projects can import the default factory from artplayer-plugin-danmuku. Script builds expose artplayerPluginDanmuku; pass its result to the player's plugins array.

CDN ​

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

Comment structure ​

Only text is required. Leading and trailing whitespace is removed; empty comments are ignored.

js
({
     text: 'Hello!',
     time: 10, // Seconds; omitted time defaults to currentTime + 0.5
@@ -125,7 +125,7 @@
 const onError = (...[error]: EventMap['artplayerPluginDanmuku:error']) => console.error(error);
 const art = new Artplayer({ container: '#player', url: '/video.mp4', plugins: [danmuku(option)] });
 art.on('artplayerPluginDanmuku:error', onError);

The explicit EventMap describes payloads; it does not augment the core's historical event declarations automatically. The factory also exposes the existing icons object for customization. Package README.md and ARCHITECTURE.md describe module ownership, maintenance commands and remaining device/combination validation.

- + \ No newline at end of file diff --git a/docs/document/en/plugin/dash-control.html b/docs/document/en/plugin/dash-control.html new file mode 100644 index 000000000..fd2ecddf7 --- /dev/null +++ b/docs/document/en/plugin/dash-control.html @@ -0,0 +1,110 @@ + + + + + + DASH Control | Artplayer.js + + + + + + + + + + + + + + + + + + + +
Skip to content

DASH Control ​

中文说明

Add video quality and audio-track menus to a dash.js player. You create and attach the SDK instance at art.dash; the plugin controls that instance and releases its own menus and listeners.

This guide describes the current refactor branch. Its SDK adaptation, automatic refresh and lifecycle fixes have not yet been published. An unversioned npm/CDN install still uses the published release.

Installation ​

sh
yarn add artplayer dashjs artplayer-plugin-dash-control
js
import Artplayer from 'artplayer';
+import dashjs from 'dashjs';
+import artplayerPluginDashControl from 'artplayer-plugin-dash-control';

For script tags, load ArtPlayer, dash.js and dist/artplayer-plugin-dash-control.js before setup. The plugin global is artplayerPluginDashControl. Pin your dependency versions and use a browser-accessible MPD and segments.

Complete example ​

The example matches the online DASH example. Replace the site's container and media URL in your application.

js
// npm i dashjs
+// npm i artplayer-plugin-dash-control
+
+// import dashjs from 'dashjs';
+// import artplayerPluginDashControl from 'artplayer-plugin-dash-control';
+
+const useDash = dashjs.supportsMediaSource()
+let dash
+
+function destroyDash() {
+  const previous = dash
+  dash = undefined
+  if (previous)
+    previous.destroy()
+}
+
+const art = new Artplayer({
+  container: '.artplayer-app',
+  url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd',
+  setting: true,
+  plugins: useDash
+    ? [
+        artplayerPluginDashControl({
+          quality: {
+            // Show quality choices in the controls
+            control: true,
+            // Show quality choices in settings
+            setting: true,
+            // Get the quality name from level
+            getName: level => `${level.height}P`,
+            // I18n
+            title: 'Quality',
+            auto: 'Auto',
+          },
+          audio: {
+            // Show audios in control
+            control: true,
+            // Show audios in setting
+            setting: true,
+            // Get the audio name from track
+            getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'),
+            // I18n
+            title: 'Audio',
+            auto: 'Auto',
+          },
+        }),
+      ]
+    : [],
+  customType: {
+    mpd: function playMpd(video, url, art) {
+      destroyDash()
+      if (useDash) {
+        dash = dashjs.MediaPlayer().create()
+        art.dash = dash
+        dash.initialize(video, url, art.option.autoplay)
+      }
+      else {
+        art.notice.show = 'Unsupported playback format: mpd'
+      }
+    },
+  },
+})
+
+art.on('destroy', destroyDash)

The example chooses its SDK capability path once per player. If dash.js cannot use MediaSource, it displays the existing unsupported-format notice without creating an SDK or installing its controls. This example does not provide a native DASH fallback.

Configuration ​

artplayerPluginDashControl(option?) synchronously returns a plugin factory. Both quality and audio accept:

FieldMeaning and default
controlDisplay a bottom control; omitted means hidden.
settingDisplay a settings entry; omitted means hidden. Also enable the player's setting: true.
titleMenu title, default Quality or Audio.
autoFallback text, default Auto; quality also uses it for its automatic selection row. It does not create a synthetic audio track.
getName(item)Return a string from the original SDK level or track. It receives one argument, with no player receiver or index.

The default quality label is level.height + 'p'. Default audio labels use track.lang or track.id; metadata may be missing or null. A custom formatter should return a string fallback, as the complete example does. Empty title/Auto text uses the default.

Equal text labels collapse into one displayed choice. Include bitrate or other metadata when several variants have the same height and should remain separate choices. A selected duplicate keeps the actual selected SDK key or track object. Empty track lists remove their menus.

Quality and audio selection ​

Manual quality selection disables video Auto switching, then selects the SDK quality. Auto enables video Auto switching without overwriting unrelated ABR settings. A synchronous menu selection does not mean buffering or decoding has completed.

The plugin detects the SDK's available method family:

SDK interfaceQuality list and selection
dash.js 4 stylegetBitrateInfoListFor('video'), getQualityFor('video'), setQualityFor('video', qualityIndex)
dash.js 5 stylegetRepresentationsByType('video'), getCurrentRepresentationForType('video'), setRepresentationForTypeById('video', id)

For the representation interface, selection uses the representation ID, including numeric zero. Do not substitute the index of a filtered array. You do not need to configure a version switch in the plugin.

Audio selection calls setCurrentTrack() with the original SDK track object. It matches the current track by object identity or an unambiguous combination of available id/index/lang fields. There is no extra Auto audio row.

Refresh after external changes ​

Player ready/restart and SDK quality, track and stream events refresh menus. SDK event refreshes are coalesced after the current synchronous selection. Unchanged playback-time events do not redraw menus; they can detect an external Auto-setting change.

When changing SDK configuration while paused without a subsequent SDK event, refresh explicitly:

js
art.plugins.artplayerPluginDashControl.update();

update() is synchronous and returns undefined. It requires art.dash to be attached to the player's video and can throw if that contract is not met. Assigning a different art.dash alone does not subscribe to it immediately; call update() or use the normal ready/restart flow after attachment.

Automatic refresh preserves an open, plugin-owned quality or audio settings panel. Explicit update() keeps its existing rebuild behavior. Reserve dash-quality and dash-audio for the plugin's menu names.

If an asynchronous SDK getter or formatter fails, the plugin warns, stops that observation and clears its menus. Fix the formatter/SDK state and call update() to recover. Explicit update and synchronous selection errors keep their normal throwing behavior.

SDK ownership and source switching ​

Use the existing player switchUrl() or switchQuality() and handle its Promise. The complete example destroys the replaced SDK, assigns the new instance before initialization, and keeps one final player cleanup listener. It does not accumulate a new destroy listener on every load or destroy replaced engines again at the end.

The plugin does not own your SDK: it never calls dash.destroy(), changes the manifest URL or removes listeners belonging to other consumers. Retained callbacks from old menus become inactive after replacement or player destruction. Your application remains responsible for DRM, SDK errors, autoplay decisions and any asynchronous SDK shutdown policy its integration requires.

TypeScript ​

Default callback types include quality height/width/ID/bitrate and nullable audio id/index/lang. Use the generic factory for more specific metadata. This example declares only the fields it uses and does not require importing SDK declarations:

ts
import dashControl from 'artplayer-plugin-dash-control';
+
+interface Level { height: number; bitrateInKbit?: number }
+interface Track { id?: string | number | null; lang?: string | null }
+
+const plugin = dashControl<Level, Track>({
+    quality: {
+        control: true,
+        getName: level => level.height + 'p',
+    },
+    audio: {
+        setting: true,
+        getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'),
+    },
+});

Option, Config, QualityLevel, AudioTrack and Result are exported from the root. Root and legacy paths remain available. If using actual SDK declarations, dash.js 4.5.2 exposes BitrateInfo for quality; 5.2.1 uses Representation. Its declarations have different compiler/module-resolution requirements, so test your actual SDK and TypeScript combination. Describe the externally attached art.dash in your application's integration types.

Validation scope ​

The refactor tests fixed dash.js 4.5.2 and 5.2.1 with local adaptive media and old/new core combinations. Those are tested points, not a new blanket support range. The plugin includes a targeted 4.5.2 paused-seek recovery for stale empty-buffer metrics while preserving the caller's SDK settings and media time. Windows Playwright WebKit lacks the MSE path used by these tests; it is not Safari/device playback acceptance. Test your own MPDs, DRM and target devices before adopting the unpublished refactor.

+ + + + \ No newline at end of file diff --git a/docs/document/en/plugin/hls-control.html b/docs/document/en/plugin/hls-control.html index 1661d3612..97a2aae4f 100644 --- a/docs/document/en/plugin/hls-control.html +++ b/docs/document/en/plugin/hls-control.html @@ -9,11 +9,11 @@ - + - + - + @@ -23,7 +23,7 @@ -
Skip to content

HLS Control ​

中文说明

Add quality and audio-track menus to an Hls.js player. This plugin controls the Hls.js instance you provide at art.hls; it does not download, create or destroy the SDK.

This guide describes the current refactor branch. The automatic refresh and lifecycle fixes described here have not yet been published. An unversioned npm/CDN install still uses the published release.

Installation ​

sh
yarn add artplayer hls.js artplayer-plugin-hls-control
js
import Artplayer from 'artplayer';
+    
Skip to content

HLS Control ​

中文说明

Add quality and audio-track menus to an Hls.js player. This plugin controls the Hls.js instance you provide at art.hls; it does not download, create or destroy the SDK.

This guide describes the current refactor branch. The automatic refresh and lifecycle fixes described here have not yet been published. An unversioned npm/CDN install still uses the published release.

Installation ​

sh
yarn add artplayer hls.js artplayer-plugin-hls-control
js
import Artplayer from 'artplayer';
 import Hls from 'hls.js';
 import artplayerPluginHlsControl from 'artplayer-plugin-hls-control';

For script tags, load ArtPlayer, Hls.js and the plugin's dist/artplayer-plugin-hls-control.js before running your setup. The plugin global is artplayerPluginHlsControl. Pin versions in your application and use media URLs that permit browser access.

Complete example ​

The example uses the site's player container and the same source as the online HLS example. Replace the container and stream URL in your application.

js
// npm i hls.js
@@ -107,8 +107,8 @@
         setting: true,
         getName: track => track.name || track.lang || 'Audio',
     },
-});

Public Option, Config, QualityLevel, AudioTrack and Result types are exported from the root entry. The root and legacy import paths remain available. The types do not pretend every ArtPlayer instance already owns an Hls.js engine; describe art.hls in your application's integration types.

Validation scope ​

The refactor tests Hls.js 1.5.17 and 1.7.2 with local media and real workers; these are tested points, not a newly declared supported range. Firefox grouped-stream crashes and a separate switching stall remain under investigation. Windows Playwright WebKit lacks the MSE path used in those tests; it does not establish Safari/iOS native-HLS acceptance. Verify your actual streams and target devices before adopting the unpublished refactor.

- +});

Public Option, Config, QualityLevel, AudioTrack and Result types are exported from the root entry. The root and legacy import paths remain available. The types do not pretend every ArtPlayer instance already owns an Hls.js engine; describe art.hls in your application's integration types.

Validation scope ​

The refactor tests Hls.js 1.5.17 and 1.7.2 with local media and real workers; these are tested points, not a newly declared supported range. Firefox grouped-stream crashes and a separate switching stall remain under investigation. Windows Playwright WebKit lacks the MSE path used in those tests; it does not establish Safari/iOS native-HLS acceptance. Verify your actual streams and target devices before adopting the unpublished refactor.

+ \ No newline at end of file diff --git a/docs/document/en/start/i18n.html b/docs/document/en/start/i18n.html index a25b2bac6..c8881912b 100644 --- a/docs/document/en/start/i18n.html +++ b/docs/document/en/start/i18n.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Language Settings ​

DANGER

Due to the increasing number of bundled multilingual resources, starting from version 5.1.0, the core artplayer.js code will no longer bundle any languages other than Simplified Chinese and English. You will need to manually import any other languages you require.

WARNING

When a language cannot be matched, English will be displayed by default. For i18n syntax reference, see: artplayer/types/i18n.d.ts

Default Languages ​

The default languages are: en, zh-cn. No manual import is required.

js
var art = new Artplayer({
+    
Skip to content

Language Settings ​

DANGER

Due to the increasing number of bundled multilingual resources, starting from version 5.1.0, the core artplayer.js code will no longer bundle any languages other than Simplified Chinese and English. You will need to manually import any other languages you require.

WARNING

When a language cannot be matched, English will be displayed by default. For i18n syntax reference, see: artplayer/types/i18n.d.ts

Default Languages ​

The default languages are: en, zh-cn. No manual import is required.

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'zh-cn', // or 'en'
@@ -75,7 +75,7 @@
         },
     },
 });
- + \ No newline at end of file diff --git a/docs/document/en/start/option.html b/docs/document/en/start/option.html index e41808d58..067a4626d 100644 --- a/docs/document/en/start/option.html +++ b/docs/document/en/start/option.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

Basic Options ​

container ​

  • Type: String, Element
  • Default: #artplayer

The DOM container where the player is mounted.

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

Basic Options ​

container ​

  • Type: String, Element
  • Default: #artplayer

The DOM container where the player is mounted.

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     // container: document.querySelector('.artplayer-app'),
     url: '/assets/sample/video.mp4',
@@ -415,7 +415,7 @@
     url: '/assets/sample/video.mp4',
     proxy: () => document.createElement('video')
 });
- + \ No newline at end of file diff --git a/docs/document/hashmap.json b/docs/document/hashmap.json index 86700a4b5..288bc44cd 100644 --- a/docs/document/hashmap.json +++ b/docs/document/hashmap.json @@ -1 +1 @@ -{"advanced_built-in.md":"DbXkhR8l","advanced_class.md":"BE9Wp7q6","advanced_event.md":"DoIgqIU9","advanced_global.md":"Db4VcykV","advanced_plugin.md":"CVp3Oe2x","advanced_property.md":"C_nOKniE","component_contextmenu.md":"lsIURdc3","component_controls.md":"CKAl0l5Z","component_layers.md":"D34Y4OkH","component_setting.md":"BwCpY3NU","en_advanced_built-in.md":"yQHjIPvf","en_advanced_class.md":"DklNHOdd","en_advanced_event.md":"opkwpdYa","en_advanced_global.md":"C8Y_RPho","en_advanced_plugin.md":"C22jhoxt","en_advanced_property.md":"BBsrm5xX","en_component_contextmenu.md":"BZMIBA5Z","en_component_controls.md":"CzJX3V-W","en_component_layers.md":"CMe9ljjt","en_component_setting.md":"BEB18u4V","en_index.md":"BBeGRjus","en_plugin_danmuku.md":"BA2ZgDal","en_plugin_hls-control.md":"0CaKxnLg","en_start_i18n.md":"DxgNQ6qb","en_start_option.md":"CTPFIwzU","index.md":"CvYUO2aO","plugin_danmuku.md":"NvAEp3Xn","plugin_hls-control.md":"G4-jWSB9","start_i18n.md":"D_Yw7TSy","start_option.md":"DRwrMHeQ"} +{"advanced_built-in.md":"DbXkhR8l","advanced_class.md":"BE9Wp7q6","advanced_event.md":"DoIgqIU9","advanced_global.md":"Db4VcykV","advanced_plugin.md":"CVp3Oe2x","advanced_property.md":"C_nOKniE","component_contextmenu.md":"lsIURdc3","component_controls.md":"CKAl0l5Z","component_layers.md":"D34Y4OkH","component_setting.md":"BwCpY3NU","en_advanced_built-in.md":"yQHjIPvf","en_advanced_class.md":"DklNHOdd","en_advanced_event.md":"opkwpdYa","en_advanced_global.md":"C8Y_RPho","en_advanced_plugin.md":"C22jhoxt","en_advanced_property.md":"BBsrm5xX","en_component_contextmenu.md":"BZMIBA5Z","en_component_controls.md":"CzJX3V-W","en_component_layers.md":"CMe9ljjt","en_component_setting.md":"BEB18u4V","en_index.md":"BBeGRjus","en_plugin_danmuku.md":"BA2ZgDal","en_plugin_dash-control.md":"91f02kuD","en_plugin_hls-control.md":"D-g42K7T","en_start_i18n.md":"DxgNQ6qb","en_start_option.md":"CTPFIwzU","index.md":"CvYUO2aO","plugin_danmuku.md":"NvAEp3Xn","plugin_dash-control.md":"CFnlLzry","plugin_hls-control.md":"IVFa-2v4","start_i18n.md":"D_Yw7TSy","start_option.md":"DRwrMHeQ"} diff --git a/docs/document/index.html b/docs/document/index.html index f79c1abd6..005ac0bea 100644 --- a/docs/document/index.html +++ b/docs/document/index.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

安装使用 ​

安装 ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
bash
bun 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

使用 ​

html
<html>
+    
Skip to content

安装使用 ​

安装 ​

bash
npm install artplayer
bash
yarn add artplayer
bash
pnpm add artplayer
bash
bun 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

使用 ​

html
<html>
     <head>
         <title>ArtPlayer Demo</title>
         <meta charset="UTF-8" />
@@ -237,7 +237,7 @@
         </script>
     </body>
 </html>

提示

你需要在引入 Artplayer 依赖前来修改它才会生效

- + \ No newline at end of file diff --git a/docs/document/main.js b/docs/document/main.js index 0580825a0..a0cdd4a06 100644 --- a/docs/document/main.js +++ b/docs/document/main.js @@ -50,5 +50,5 @@ } // - installNavigation(window, ["advanced/built-in.html", "advanced/built-in", "advanced/class.html", "advanced/class", "advanced/event.html", "advanced/event", "advanced/global.html", "advanced/global", "advanced/plugin.html", "advanced/plugin", "advanced/property.html", "advanced/property", "component/contextmenu.html", "component/contextmenu", "component/controls.html", "component/controls", "component/layers.html", "component/layers", "component/setting.html", "component/setting", "", "index.html", "plugin/danmuku.html", "plugin/danmuku", "plugin/hls-control.html", "plugin/hls-control", "start/i18n.html", "start/i18n", "start/option.html", "start/option"]); + installNavigation(window, ["advanced/built-in.html", "advanced/built-in", "advanced/class.html", "advanced/class", "advanced/event.html", "advanced/event", "advanced/global.html", "advanced/global", "advanced/plugin.html", "advanced/plugin", "advanced/property.html", "advanced/property", "component/contextmenu.html", "component/contextmenu", "component/controls.html", "component/controls", "component/layers.html", "component/layers", "component/setting.html", "component/setting", "", "index.html", "plugin/danmuku.html", "plugin/danmuku", "plugin/dash-control.html", "plugin/dash-control", "plugin/hls-control.html", "plugin/hls-control", "start/i18n.html", "start/i18n", "start/option.html", "start/option"]); })(); diff --git a/docs/document/plugin/danmuku.html b/docs/document/plugin/danmuku.html index 12d677aaf..77984e23a 100644 --- a/docs/document/plugin/danmuku.html +++ b/docs/document/plugin/danmuku.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

弹幕库 ​

English guide

本文描述当前重构分支。/runtime 类型入口与本轮修复尚未发布到 npm;CDN 默认仍加载已发布版本。

演示 ​

👉 查看完整演示

下方 Run Code 使用本站构建的插件与样本。接入自己的应用时,请替换容器和媒体 URL。

安装 ​

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

弹幕结构 ​

每一个弹幕是一个对象,多个弹幕组成的数组就是弹幕库,通常只需要text就可以发送一个弹幕,其余都是非必要参数

js
{
+    
Skip to content

弹幕库 ​

English guide

本文描述当前重构分支。/runtime 类型入口与本轮修复尚未发布到 npm;CDN 默认仍加载已发布版本。

演示 ​

👉 查看完整演示

下方 Run Code 使用本站构建的插件与样本。接入自己的应用时,请替换容器和媒体 URL。

安装 ​

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

弹幕结构 ​

每一个弹幕是一个对象,多个弹幕组成的数组就是弹幕库,通常只需要text就可以发送一个弹幕,其余都是非必要参数

js
{
     text: '', // 弹幕文本
     time: 10, // 弹幕时间, 单位秒,省略时为当前播放器时间加 0.5 秒;显式 0 保留
     mode: 0, // 弹幕模式: 0: 滚动(默认),1: 顶部,2: 底部
@@ -393,7 +393,7 @@
 const onError = (...[error]: EventMap['artplayerPluginDanmuku:error']) => console.error(error);
 const art = new Artplayer({ container: '#player', url: '/video.mp4', plugins: [danmuku(option)] });
 art.on('artplayerPluginDanmuku:error', onError);

EventMap 显式描述事件参数,不会自动扩展核心历史事件声明。工厂仍暴露 icons 对象供自定义图标。 包内 README.md 和 ARCHITECTURE.md 维护模块职责、验证命令及尚未完成的设备和组合验收。

- + \ No newline at end of file diff --git a/docs/document/plugin/dash-control.html b/docs/document/plugin/dash-control.html new file mode 100644 index 000000000..25543b55c --- /dev/null +++ b/docs/document/plugin/dash-control.html @@ -0,0 +1,110 @@ + + + + + + DASH 控制 | Artplayer.js + + + + + + + + + + + + + + + + + + + +
Skip to content

DASH 控制 ​

English

为 dash.js 播放器添加画质和音轨菜单。你负责创建 SDK、绑定 video 并赋给 art.dash;插件控制这个实例,只清理自己创建的菜单和监听器。

本页描述当前重构分支。这里的 SDK 适配、自动刷新和生命周期修复尚未发布;未固定版本的 npm/CDN 安装仍使用已发布版本。

安装 ​

sh
yarn add artplayer dashjs artplayer-plugin-dash-control
js
import Artplayer from 'artplayer';
+import dashjs from 'dashjs';
+import artplayerPluginDashControl from 'artplayer-plugin-dash-control';

使用 script 标签时,在初始化前加载 ArtPlayer、dash.js 和 dist/artplayer-plugin-dash-control.js。插件全局名称为 artplayerPluginDashControl。应用应固定依赖版本,并使用浏览器可访问的 MPD 和媒体片段。

完整示例 ​

下面与在线 DASH 示例使用相同代码。接入应用时替换站点容器和视频地址。

js
// npm i dashjs
+// npm i artplayer-plugin-dash-control
+
+// import dashjs from 'dashjs';
+// import artplayerPluginDashControl from 'artplayer-plugin-dash-control';
+
+const useDash = dashjs.supportsMediaSource()
+let dash
+
+function destroyDash() {
+  const previous = dash
+  dash = undefined
+  if (previous)
+    previous.destroy()
+}
+
+const art = new Artplayer({
+  container: '.artplayer-app',
+  url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd',
+  setting: true,
+  plugins: useDash
+    ? [
+        artplayerPluginDashControl({
+          quality: {
+            // Show quality choices in the controls
+            control: true,
+            // Show quality choices in settings
+            setting: true,
+            // Get the quality name from level
+            getName: level => `${level.height}P`,
+            // I18n
+            title: 'Quality',
+            auto: 'Auto',
+          },
+          audio: {
+            // Show audios in control
+            control: true,
+            // Show audios in setting
+            setting: true,
+            // Get the audio name from track
+            getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'),
+            // I18n
+            title: 'Audio',
+            auto: 'Auto',
+          },
+        }),
+      ]
+    : [],
+  customType: {
+    mpd: function playMpd(video, url, art) {
+      destroyDash()
+      if (useDash) {
+        dash = dashjs.MediaPlayer().create()
+        art.dash = dash
+        dash.initialize(video, url, art.option.autoplay)
+      }
+      else {
+        art.notice.show = 'Unsupported playback format: mpd'
+      }
+    },
+  },
+})
+
+art.on('destroy', destroyDash)

示例在创建播放器时固定 SDK 能力分支。若 dash.js 无法使用 MediaSource,则保留原来的格式不支持提示,不创建 SDK 或安装依赖它的控制插件。这个示例没有提供原生 DASH 回退。

配置 ​

artplayerPluginDashControl(option?) 同步返回插件工厂。quality 和 audio 都支持:

字段含义与默认行为
control显示底部控制器;省略时不显示。
setting显示设置项;省略时不显示,还需播放器配置 setting: true。
title菜单标题,默认 Quality 或 Audio。
auto回退文字,默认 Auto;画质还用于自动选项,不会新增一个虚拟音轨。
getName(item)根据原始 SDK 档位或轨道对象返回字符串。只有一个参数,不提供索引或播放器 this。

默认画质标签为 level.height + 'p',音轨标签取 track.lang 或 track.id。这些元数据可能缺失或为 null,自定义回调应像完整示例一样返回字符串回退。空标题或空 Auto 文字会使用默认值。

相同文字标签会合并成一个选项。若同高度的多个档位需要分别显示,可以在标签中加入码率或其他元数据。选中重复项时,会保留实际选中的 SDK 标识或轨道对象。轨道列表变空时移除对应菜单。

画质和音轨选择 ​

手动选画质先关闭视频的自动码率选择,再调用 SDK 选择档位;Auto 只启用视频自动选择,不覆盖其他 ABR 设置。同步选择菜单不代表缓冲或解码已经完成。

插件根据 SDK 实际提供的方法选择适配方式:

SDK 接口画质列表与选择
dash.js 4 风格getBitrateInfoListFor('video')、getQualityFor('video')、setQualityFor('video', qualityIndex)
dash.js 5 风格getRepresentationsByType('video')、getCurrentRepresentationForType('video')、setRepresentationForTypeById('video', id)

representation 接口使用 ID 选择,数字零也是合法 ID;不能用过滤后数组的索引代替。无需给插件额外设置 SDK 版本开关。

选择音轨时,把原始 SDK 轨道对象交给 setCurrentTrack()。当前项优先通过对象身份匹配,再通过可用 id/index/lang 字段的唯一组合匹配,不会任意选中有歧义的项。音轨列表没有额外 Auto 行。

外部修改后的刷新 ​

播放器 ready/restart 和 SDK 的画质、音轨、流事件会刷新菜单。SDK 事件刷新在当前同步选择结束后合并执行;未变化的播放时间事件不重绘菜单,但可以发现外部 Auto 设置变化。

暂停时直接修改 SDK 配置、且没有后续 SDK 事件,可以手动刷新:

js
art.plugins.artplayerPluginDashControl.update();

update() 同步返回 undefined,要求 art.dash 已绑定到播放器的 video,否则可能抛错。仅赋值一个新的 art.dash 不会立即订阅它;绑定后调用 update(),或走正常 ready/restart 流程。

自动刷新会保留已打开、由插件管理的画质或音轨设置子菜单;显式 update() 保留原有重建行为。插件使用 dash-quality 和 dash-audio 菜单名,其他菜单请避开这些名称。

异步 SDK getter 或格式回调失败时,插件会输出警告、停止该观察并清除菜单;修正回调或 SDK 状态后调用 update() 恢复。显式更新和同步选择的错误仍按原语义抛出。

SDK 所有权与换源 ​

换源使用播放器已有的 switchUrl() 或 switchQuality(),并处理返回的 Promise。完整示例先销毁被替换的 SDK,在初始化前赋值新实例,每个播放器只注册一个最终清理监听器,不在每次加载时累积新的 destroy 回调,也不在最后重复销毁旧实例。

控制插件不会调用 dash.destroy()、更换清单地址或移除其他使用者的监听器;替换实例或销毁播放器后,旧菜单回调失效。应用仍负责 DRM、SDK 错误、自动播放策略,以及自身集成所需的异步 SDK 关闭策略。

TypeScript ​

默认回调类型包含画质高度/宽度/ID/码率,以及允许为空的音轨 id/index/lang。可以通过泛型声明更具体的元数据;下面只声明实际使用的字段,无需导入 SDK 声明:

ts
import dashControl from 'artplayer-plugin-dash-control';
+
+interface Level { height: number; bitrateInKbit?: number }
+interface Track { id?: string | number | null; lang?: string | null }
+
+const plugin = dashControl<Level, Track>({
+    quality: {
+        control: true,
+        getName: level => level.height + 'p',
+    },
+    audio: {
+        setting: true,
+        getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'),
+    },
+});

根入口导出 Option、Config、QualityLevel、AudioTrack 和 Result,原根入口与 legacy 路径继续保留。使用实际 SDK 声明时,dash.js 4.5.2 的画质类型为 BitrateInfo,5.2.1 使用 Representation;其编译器与模块解析要求不同,应验证实际 SDK/TypeScript 组合。在应用的集成类型中描述外部附加的 art.dash。

验证范围 ​

重构使用固定 dash.js 4.5.2 / 5.2.1、本地自适应媒体和新旧核心组合验证;这两个版本是验证点,不是新定义的完整支持范围。插件对4.5.2暂停拖动后空缓冲指标陈旧的问题有定向恢复,保留调用方 SDK 设置和媒体时间。Windows Playwright WebKit 缺少相关 MSE 路径,不能代表 Safari 或真机播放已验收。采用未发布重构前,应验证自己的 MPD、DRM 和目标设备。

+ + + + \ No newline at end of file diff --git a/docs/document/plugin/hls-control.html b/docs/document/plugin/hls-control.html index adee73cb3..d111db3a2 100644 --- a/docs/document/plugin/hls-control.html +++ b/docs/document/plugin/hls-control.html @@ -9,11 +9,11 @@ - + - + - + @@ -23,7 +23,7 @@ -
Skip to content

HLS 控制 ​

English

为 Hls.js 播放器添加画质与音轨菜单。插件控制你放在 art.hls 上的 Hls.js 实例,不负责下载、创建或销毁 SDK。

本页描述当前重构分支。这里说明的自动刷新与生命周期修复尚未发布;未固定版本的 npm/CDN 安装仍使用已发布版本。

安装 ​

sh
yarn add artplayer hls.js artplayer-plugin-hls-control
js
import Artplayer from 'artplayer';
+    
Skip to content

HLS 控制 ​

English

为 Hls.js 播放器添加画质与音轨菜单。插件控制你放在 art.hls 上的 Hls.js 实例,不负责下载、创建或销毁 SDK。

本页描述当前重构分支。这里说明的自动刷新与生命周期修复尚未发布;未固定版本的 npm/CDN 安装仍使用已发布版本。

安装 ​

sh
yarn add artplayer hls.js artplayer-plugin-hls-control
js
import Artplayer from 'artplayer';
 import Hls from 'hls.js';
 import artplayerPluginHlsControl from 'artplayer-plugin-hls-control';

通过 script 标签使用时,先加载 ArtPlayer、Hls.js 和插件的 dist/artplayer-plugin-hls-control.js。插件全局名称为 artplayerPluginHlsControl。应用中应固定依赖版本,并使用允许浏览器访问的视频地址。

完整示例 ​

下面与在线 HLS 示例使用同一份代码和站点容器。接入自己的应用时替换容器与视频地址。

js
// npm i hls.js
@@ -107,8 +107,8 @@
         setting: true,
         getName: track => track.name || track.lang || 'Audio',
     },
-});

根入口导出 Option、Config、QualityLevel、AudioTrack 和 Result 类型,原根入口及 legacy 路径继续保留。声明不会假定每个 ArtPlayer 实例都有 Hls.js;请在应用的集成类型中描述 art.hls。

验证范围 ​

重构使用本地媒体和真实 worker 验证 Hls.js 1.5.17 / 1.7.2;这两个版本是验证点,不是新定义的支持范围。Firefox 的分组播放崩溃和另一项切组停滞仍在排查。Windows Playwright WebKit 缺少测试所需的 MSE 路径,不能代表 Safari/iOS 原生 HLS 已验收。采用尚未发布的重构前,应验证实际媒体与目标设备。

- +});

根入口导出 Option、Config、QualityLevel、AudioTrack 和 Result 类型,原根入口及 legacy 路径继续保留。声明不会假定每个 ArtPlayer 实例都有 Hls.js;请在应用的集成类型中描述 art.hls。

验证范围 ​

重构使用本地媒体和真实 worker 验证 Hls.js 1.5.17 / 1.7.2;这两个版本是验证点,不是新定义的支持范围。Firefox 的分组播放崩溃和另一项切组停滞仍在排查。Windows Playwright WebKit 缺少测试所需的 MSE 路径,不能代表 Safari/iOS 原生 HLS 已验收。采用尚未发布的重构前,应验证实际媒体与目标设备。

+ \ No newline at end of file diff --git a/docs/document/start/i18n.html b/docs/document/start/i18n.html index b75eb15eb..3ba218ae1 100644 --- a/docs/document/start/i18n.html +++ b/docs/document/start/i18n.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

语言设置 ​

DANGER

鉴于捆绑的多国语言越来越多, 从 5.1.0 版本开始, artplayer.js 核心代码除了包含 简体中文 和 英文 外, 不再捆绑其它多国语言, 需要自行导入需要的语言。

WARNING

当无法匹配到语言时, 会默认显示英文, i18n 写法参考: artplayer/types/i18n.d.ts

默认语言 ​

默认语言有: en, zh-cn, 无需手动导入

js
var art = new Artplayer({
+    
Skip to content

语言设置 ​

DANGER

鉴于捆绑的多国语言越来越多, 从 5.1.0 版本开始, artplayer.js 核心代码除了包含 简体中文 和 英文 外, 不再捆绑其它多国语言, 需要自行导入需要的语言。

WARNING

当无法匹配到语言时, 会默认显示英文, i18n 写法参考: artplayer/types/i18n.d.ts

默认语言 ​

默认语言有: en, zh-cn, 无需手动导入

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'zh-cn', // or 'en'
@@ -75,7 +75,7 @@
         },
     },
 });
- + \ No newline at end of file diff --git a/docs/document/start/option.html b/docs/document/start/option.html index c2d4b8a4b..3ad7002a9 100644 --- a/docs/document/start/option.html +++ b/docs/document/start/option.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@ -
Skip to content

基础选项 ​

container ​

  • Type: String, Element
  • Default: #artplayer

播放器挂载的 DOM 容器

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

基础选项 ​

container ​

  • Type: String, Element
  • Default: #artplayer

播放器挂载的 DOM 容器

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app', 
     // container: document.querySelector('.artplayer-app'),
     url: '/assets/sample/video.mp4',
@@ -415,7 +415,7 @@
     url: '/assets/sample/video.mp4',
     proxy: () => document.createElement('video')
 });
- + \ No newline at end of file diff --git a/docs/llms.manifest.json b/docs/llms.manifest.json index e26adc6cb..7ccf7fc6d 100644 --- a/docs/llms.manifest.json +++ b/docs/llms.manifest.json @@ -50,6 +50,10 @@ "file": "packages/artplayer-vitepress/docs/en/plugin/danmuku.md", "sha256Lf": "a563349b064adac119dac943060ffc5bc82a8ccbd6e20d2d7b5a1e1cb4d66ba2" }, + { + "file": "packages/artplayer-vitepress/docs/en/plugin/dash-control.md", + "sha256Lf": "0ccfc925832c7e0643d1e6a0927390742f4640a3ac2f1eeeed6b40df3409007b" + }, { "file": "packages/artplayer-vitepress/docs/en/plugin/hls-control.md", "sha256Lf": "c0271b386e44fcc47c9aad017b3b02f75bb3baec830bca9634edcb2060cd91d3" @@ -196,7 +200,7 @@ }, { "file": "docs/assets/example/dash.control.js", - "sha256Lf": "edc4326f03262a222e06bb780aab05c903ee162829dec60970e738c1e260eef2" + "sha256Lf": "1738bc47c13de1227cd4be091f881249180235904d12631f6334579fc146293a" }, { "file": "docs/assets/example/dash.js", @@ -275,5 +279,5 @@ "sha256Lf": "967db6e5026a2fd3cc24d8a04e5c78859f543d0c0f6d4f9599c103e4e93c9b29" } ], - "outputSha256Lf": "3d907bba5a29e7e856ecdd3c387ced645dc60328999b686104c01884eb6aad4c" + "outputSha256Lf": "d2b41d68719734e09881cccc194609e9646bd5085483bb2e8dec516a74908b76" } diff --git a/docs/llms.txt b/docs/llms.txt index f184faa23..37d4b4547 100644 --- a/docs/llms.txt +++ b/docs/llms.txt @@ -4894,6 +4894,188 @@ The explicit `EventMap` describes payloads; it does not augment the core's histo The factory also exposes the existing `icons` object for customization. Package `README.md` and `ARCHITECTURE.md` describe module ownership, maintenance commands and remaining device/combination validation. +===== packages/artplayer-vitepress/docs/en/plugin/dash-control.md ===== + +# DASH Control + +[中文说明](../../plugin/dash-control.md) + +Add video quality and audio-track menus to a dash.js player. You create and attach the SDK instance at `art.dash`; the plugin controls that instance and releases its own menus and listeners. + +This guide describes the current refactor branch. Its SDK adaptation, automatic refresh and lifecycle fixes have not yet been published. An unversioned npm/CDN install still uses the published release. + +## Installation + +```sh +yarn add artplayer dashjs artplayer-plugin-dash-control +``` + +```js +import Artplayer from 'artplayer'; +import dashjs from 'dashjs'; +import artplayerPluginDashControl from 'artplayer-plugin-dash-control'; +``` + +For script tags, load ArtPlayer, dash.js and `dist/artplayer-plugin-dash-control.js` before setup. The plugin global is `artplayerPluginDashControl`. Pin your dependency versions and use a browser-accessible MPD and segments. + +## Complete example + +The example matches the [online DASH example](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js%0A./uncompiled/artplayer-plugin-dash-control/index.js&example=dash.control). Replace the site's container and media URL in your application. + +
+ +```js +// npm i dashjs +// npm i artplayer-plugin-dash-control + +// import dashjs from 'dashjs'; +// import artplayerPluginDashControl from 'artplayer-plugin-dash-control'; + +const useDash = dashjs.supportsMediaSource() +let dash + +function destroyDash() { + const previous = dash + dash = undefined + if (previous) + previous.destroy() +} + +const art = new Artplayer({ + container: '.artplayer-app', + url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd', + setting: true, + plugins: useDash + ? [ + artplayerPluginDashControl({ + quality: { + // Show quality choices in the controls + control: true, + // Show quality choices in settings + setting: true, + // Get the quality name from level + getName: level => `${level.height}P`, + // I18n + title: 'Quality', + auto: 'Auto', + }, + audio: { + // Show audios in control + control: true, + // Show audios in setting + setting: true, + // Get the audio name from track + getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'), + // I18n + title: 'Audio', + auto: 'Auto', + }, + }), + ] + : [], + customType: { + mpd: function playMpd(video, url, art) { + destroyDash() + if (useDash) { + dash = dashjs.MediaPlayer().create() + art.dash = dash + dash.initialize(video, url, art.option.autoplay) + } + else { + art.notice.show = 'Unsupported playback format: mpd' + } + }, + }, +}) + +art.on('destroy', destroyDash) +``` + +The example chooses its SDK capability path once per player. If dash.js cannot use MediaSource, it displays the existing unsupported-format notice without creating an SDK or installing its controls. This example does not provide a native DASH fallback. + +## Configuration + +`artplayerPluginDashControl(option?)` synchronously returns a plugin factory. Both `quality` and `audio` accept: + +| Field | Meaning and default | +| --- | --- | +| `control` | Display a bottom control; omitted means hidden. | +| `setting` | Display a settings entry; omitted means hidden. Also enable the player's `setting: true`. | +| `title` | Menu title, default `Quality` or `Audio`. | +| `auto` | Fallback text, default `Auto`; quality also uses it for its automatic selection row. It does not create a synthetic audio track. | +| `getName(item)` | Return a string from the original SDK level or track. It receives one argument, with no player receiver or index. | + +The default quality label is `level.height + 'p'`. Default audio labels use `track.lang` or `track.id`; metadata may be missing or null. A custom formatter should return a string fallback, as the complete example does. Empty title/Auto text uses the default. + +Equal text labels collapse into one displayed choice. Include bitrate or other metadata when several variants have the same height and should remain separate choices. A selected duplicate keeps the actual selected SDK key or track object. Empty track lists remove their menus. + +## Quality and audio selection + +Manual quality selection disables video Auto switching, then selects the SDK quality. Auto enables video Auto switching without overwriting unrelated ABR settings. A synchronous menu selection does not mean buffering or decoding has completed. + +The plugin detects the SDK's available method family: + +| SDK interface | Quality list and selection | +| --- | --- | +| dash.js 4 style | `getBitrateInfoListFor('video')`, `getQualityFor('video')`, `setQualityFor('video', qualityIndex)` | +| dash.js 5 style | `getRepresentationsByType('video')`, `getCurrentRepresentationForType('video')`, `setRepresentationForTypeById('video', id)` | + +For the representation interface, selection uses the representation ID, including numeric zero. Do not substitute the index of a filtered array. You do not need to configure a version switch in the plugin. + +Audio selection calls `setCurrentTrack()` with the original SDK track object. It matches the current track by object identity or an unambiguous combination of available id/index/lang fields. There is no extra Auto audio row. + +## Refresh after external changes + +Player `ready`/`restart` and SDK quality, track and stream events refresh menus. SDK event refreshes are coalesced after the current synchronous selection. Unchanged playback-time events do not redraw menus; they can detect an external Auto-setting change. + +When changing SDK configuration while paused without a subsequent SDK event, refresh explicitly: + +```js +art.plugins.artplayerPluginDashControl.update(); +``` + +`update()` is synchronous and returns `undefined`. It requires `art.dash` to be attached to the player's video and can throw if that contract is not met. Assigning a different `art.dash` alone does not subscribe to it immediately; call `update()` or use the normal ready/restart flow after attachment. + +Automatic refresh preserves an open, plugin-owned quality or audio settings panel. Explicit `update()` keeps its existing rebuild behavior. Reserve `dash-quality` and `dash-audio` for the plugin's menu names. + +If an asynchronous SDK getter or formatter fails, the plugin warns, stops that observation and clears its menus. Fix the formatter/SDK state and call `update()` to recover. Explicit update and synchronous selection errors keep their normal throwing behavior. + +## SDK ownership and source switching + +Use the existing player `switchUrl()` or `switchQuality()` and handle its Promise. The complete example destroys the replaced SDK, assigns the new instance before initialization, and keeps one final player cleanup listener. It does not accumulate a new destroy listener on every load or destroy replaced engines again at the end. + +The plugin does not own your SDK: it never calls `dash.destroy()`, changes the manifest URL or removes listeners belonging to other consumers. Retained callbacks from old menus become inactive after replacement or player destruction. Your application remains responsible for DRM, SDK errors, autoplay decisions and any asynchronous SDK shutdown policy its integration requires. + +## TypeScript + +Default callback types include quality height/width/ID/bitrate and nullable audio id/index/lang. Use the generic factory for more specific metadata. This example declares only the fields it uses and does not require importing SDK declarations: + +```ts +import dashControl from 'artplayer-plugin-dash-control'; + +interface Level { height: number; bitrateInKbit?: number } +interface Track { id?: string | number | null; lang?: string | null } + +const plugin = dashControl({ + quality: { + control: true, + getName: level => level.height + 'p', + }, + audio: { + setting: true, + getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'), + }, +}); +``` + +`Option`, `Config`, `QualityLevel`, `AudioTrack` and `Result` are exported from the root. Root and legacy paths remain available. If using actual SDK declarations, dash.js 4.5.2 exposes `BitrateInfo` for quality; 5.2.1 uses `Representation`. Its declarations have different compiler/module-resolution requirements, so test your actual SDK and TypeScript combination. Describe the externally attached `art.dash` in your application's integration types. + +## Validation scope + +The refactor tests fixed dash.js 4.5.2 and 5.2.1 with local adaptive media and old/new core combinations. Those are tested points, not a new blanket support range. The plugin includes a targeted 4.5.2 paused-seek recovery for stale empty-buffer metrics while preserving the caller's SDK settings and media time. Windows Playwright WebKit lacks the MSE path used by these tests; it is not Safari/device playback acceptance. Test your own MPDs, DRM and target devices before adopting the unpublished refactor. + + ===== packages/artplayer-vitepress/docs/en/plugin/hls-control.md ===== # HLS Control @@ -9610,45 +9792,55 @@ const art = new Artplayer({ // import dashjs from 'dashjs'; // import artplayerPluginDashControl from 'artplayer-plugin-dash-control'; +const useDash = dashjs.supportsMediaSource() +let dash + +function destroyDash() { + const previous = dash + dash = undefined + if (previous) + previous.destroy() +} + const art = new Artplayer({ container: '.artplayer-app', url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd', setting: true, - plugins: [ - artplayerPluginDashControl({ - quality: { - // Show qualitys in control - control: true, - // Show qualitys in setting - setting: true, - // Get the quality name from level - getName: level => `${level.height}P`, - // I18n - title: 'Quality', - auto: 'Auto', - }, - audio: { - // Show audios in control - control: true, - // Show audios in setting - setting: true, - // Get the audio name from track - getName: track => track.lang.toUpperCase(), - // I18n - title: 'Audio', - auto: 'Auto', - }, - }), - ], + plugins: useDash + ? [ + artplayerPluginDashControl({ + quality: { + // Show quality choices in the controls + control: true, + // Show quality choices in settings + setting: true, + // Get the quality name from level + getName: level => `${level.height}P`, + // I18n + title: 'Quality', + auto: 'Auto', + }, + audio: { + // Show audios in control + control: true, + // Show audios in setting + setting: true, + // Get the audio name from track + getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'), + // I18n + title: 'Audio', + auto: 'Auto', + }, + }), + ] + : [], customType: { mpd: function playMpd(video, url, art) { - if (dashjs.supportsMediaSource()) { - if (art.dash) - art.dash.destroy() - const dash = dashjs.MediaPlayer().create() - dash.initialize(video, url, art.option.autoplay) + destroyDash() + if (useDash) { + dash = dashjs.MediaPlayer().create() art.dash = dash - art.on('destroy', () => dash.destroy()) + dash.initialize(video, url, art.option.autoplay) } else { art.notice.show = 'Unsupported playback format: mpd' @@ -9657,6 +9849,8 @@ const art = new Artplayer({ }, }) +art.on('destroy', destroyDash) + ===== docs/assets/example/dash.js ===== diff --git a/package.json b/package.json index 528acbd42..b8bbf3a9b 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "ci:build": "yarn build:types && yarn build all && yarn build:i18n && yarn build:ts && yarn build:llm && yarn build:vconsole && yarn build:console && yarn build:site-notices && yarn build:test && yarn build:docs && yarn test:imports", "test:imports": "node --test test/esm.test.js test/i18n.test.js test/ssr.test.js test/asr-distribution.test.js", "typecheck": "node scripts/typecheck.mjs", - "test:unit": "node --test test/danmuku-setting.test.js test/danmuku-heatmap.test.js test/danmuku-renderer.test.js test/danmuku-scheduler.test.js test/danmuku-worker-client.test.js test/danmuku-input.test.js test/danmuku-parser.test.js test/danmuku-failures.test.js test/danmuku-mask-failures.test.js test/danmuku-mask-lifecycle.test.js test/asr-encoding.test.js test/asr-lifecycle.test.js test/asr-audio.test.js test/asr.test.js test/jassub.test.js test/jassub-registration.test.js test/jassub-runtime.test.js test/jassub-vendor-lifecycle.test.js test/jassub-frame-polyfill.test.js test/jassub-offscreen.test.js test/multiple-subtitles-ass.test.js test/multiple-subtitles-caption.test.js test/multiple-subtitles-merge.test.js test/multiple-subtitles-entities.test.js test/multiple-subtitles-lifecycle.test.js test/multiple-subtitles-failures.test.js test/multiple-subtitles.test.js test/multiple-subtitles-vendor.test.js test/vtt-thumbnail-parser.test.js test/vtt-thumbnail-lifecycle.test.js test/vtt-thumbnail.test.js test/auto-thumbnail-exports.test.js test/auto-thumbnail-canvas.test.js test/auto-thumbnail-frames.test.js test/auto-thumbnail-encoding.test.js test/auto-thumbnail-metadata.test.js test/auto-thumbnail-lifecycle.test.js test/auto-thumbnail.test.js test/thumbnail-emitter.test.js test/thumbnail-runtime.test.js test/thumbnail-vendor.test.js test/thumbnail-lifecycle.test.js test/thumbnail-input.test.js test/thumbnail.test.js test/iframe-navigation.test.js test/iframe-boundaries.test.js test/iframe-lifecycle.test.js test/iframe.test.js test/mediabunny.test.js test/mediabunny-shim.test.js test/mediabunny-coordination.test.js test/mediabunny-video.test.js test/mediabunny-audio.test.js test/mediabunny-hls.test.js test/mediabunny-entry.test.js test/mediabunny-capability.test.js test/mediabunny-load.test.js test/mediabunny-input.test.js test/dpip.test.js test/dpip-lifecycle.test.js test/canvas.test.js test/canvas-lifecycle.test.js test/ambilight.test.js test/ambilight-lifecycle.test.js test/ambilight-proxy.test.js test/vast-exports.test.js test/vast.test.js test/vast-lifecycle.test.js test/vast-compatibility.test.js test/ads.test.js test/ads-lifecycle.test.js test/playback.test.js test/dash-control.test.js test/dash-contract.test.js test/dash-lifecycle.test.js test/dash-events.test.js test/hls-control.test.js test/audio-track.test.js test/public-behavior.test.js test/helpers.test.js test/chapter.test.js test/utils.test.js test/resource-scope.test.js test/instance-lifecycle.test.js test/options.test.js test/media-hosts.test.js test/plugins.test.js test/source.test.js test/playback-properties.test.js test/media-events.test.js test/template-resources.test.js test/core-vendor.test.js test/component-resources.test.js test/setting-model.test.js test/setting-layout.test.js test/setting-resources.test.js test/subtitle.test.js test/display-native.test.js test/display-video-fullscreen.test.js test/display-pip.test.js test/display-mini.test.js test/display-sizing.test.js test/display-orientation.test.js test/hotkey.test.js test/listener-registry.test.js test/global-events.test.js test/pointer-events.test.js test/gesture.test.js test/event-scheduling.test.js test/notice.test.js test/fast-forward.test.js test/auto-playback.test.js test/builtin-layers.test.js test/prompt-components.test.js test/screenshot.test.js test/thumbnails.test.js test/progress.test.js test/environment.test.js test/storage.test.js test/facade-properties.test.js test/dom-boundaries.test.js test/initialization.test.js test/entry.test.js test/accessibility-button.test.js test/accessibility-focus.test.js test/accessibility-slider.test.js test/asr-fallback-routing.test.js test/asr-local-example.test.js test/asr-explicit-capture.test.js test/chromecast.test.js test/chromecast-failures.test.js test/chromecast-runtime.test.js test/asr-media-error.test.js test/thumbnail-cleanup-errors.test.js test/dash-cleanup-errors.test.js test/hls-example.test.js", + "test:unit": "node --test test/danmuku-setting.test.js test/danmuku-heatmap.test.js test/danmuku-renderer.test.js test/danmuku-scheduler.test.js test/danmuku-worker-client.test.js test/danmuku-input.test.js test/danmuku-parser.test.js test/danmuku-failures.test.js test/danmuku-mask-failures.test.js test/danmuku-mask-lifecycle.test.js test/asr-encoding.test.js test/asr-lifecycle.test.js test/asr-audio.test.js test/asr.test.js test/jassub.test.js test/jassub-registration.test.js test/jassub-runtime.test.js test/jassub-vendor-lifecycle.test.js test/jassub-frame-polyfill.test.js test/jassub-offscreen.test.js test/multiple-subtitles-ass.test.js test/multiple-subtitles-caption.test.js test/multiple-subtitles-merge.test.js test/multiple-subtitles-entities.test.js test/multiple-subtitles-lifecycle.test.js test/multiple-subtitles-failures.test.js test/multiple-subtitles.test.js test/multiple-subtitles-vendor.test.js test/vtt-thumbnail-parser.test.js test/vtt-thumbnail-lifecycle.test.js test/vtt-thumbnail.test.js test/auto-thumbnail-exports.test.js test/auto-thumbnail-canvas.test.js test/auto-thumbnail-frames.test.js test/auto-thumbnail-encoding.test.js test/auto-thumbnail-metadata.test.js test/auto-thumbnail-lifecycle.test.js test/auto-thumbnail.test.js test/thumbnail-emitter.test.js test/thumbnail-runtime.test.js test/thumbnail-vendor.test.js test/thumbnail-lifecycle.test.js test/thumbnail-input.test.js test/thumbnail.test.js test/iframe-navigation.test.js test/iframe-boundaries.test.js test/iframe-lifecycle.test.js test/iframe.test.js test/mediabunny.test.js test/mediabunny-shim.test.js test/mediabunny-coordination.test.js test/mediabunny-video.test.js test/mediabunny-audio.test.js test/mediabunny-hls.test.js test/mediabunny-entry.test.js test/mediabunny-capability.test.js test/mediabunny-load.test.js test/mediabunny-input.test.js test/dpip.test.js test/dpip-lifecycle.test.js test/canvas.test.js test/canvas-lifecycle.test.js test/ambilight.test.js test/ambilight-lifecycle.test.js test/ambilight-proxy.test.js test/vast-exports.test.js test/vast.test.js test/vast-lifecycle.test.js test/vast-compatibility.test.js test/ads.test.js test/ads-lifecycle.test.js test/playback.test.js test/dash-control.test.js test/dash-contract.test.js test/dash-lifecycle.test.js test/dash-events.test.js test/hls-control.test.js test/audio-track.test.js test/public-behavior.test.js test/helpers.test.js test/chapter.test.js test/utils.test.js test/resource-scope.test.js test/instance-lifecycle.test.js test/options.test.js test/media-hosts.test.js test/plugins.test.js test/source.test.js test/playback-properties.test.js test/media-events.test.js test/template-resources.test.js test/core-vendor.test.js test/component-resources.test.js test/setting-model.test.js test/setting-layout.test.js test/setting-resources.test.js test/subtitle.test.js test/display-native.test.js test/display-video-fullscreen.test.js test/display-pip.test.js test/display-mini.test.js test/display-sizing.test.js test/display-orientation.test.js test/hotkey.test.js test/listener-registry.test.js test/global-events.test.js test/pointer-events.test.js test/gesture.test.js test/event-scheduling.test.js test/notice.test.js test/fast-forward.test.js test/auto-playback.test.js test/builtin-layers.test.js test/prompt-components.test.js test/screenshot.test.js test/thumbnails.test.js test/progress.test.js test/environment.test.js test/storage.test.js test/facade-properties.test.js test/dom-boundaries.test.js test/initialization.test.js test/entry.test.js test/accessibility-button.test.js test/accessibility-focus.test.js test/accessibility-slider.test.js test/asr-fallback-routing.test.js test/asr-local-example.test.js test/asr-explicit-capture.test.js test/chromecast.test.js test/chromecast-failures.test.js test/chromecast-runtime.test.js test/asr-media-error.test.js test/thumbnail-cleanup-errors.test.js test/dash-cleanup-errors.test.js test/hls-example.test.js test/dash-example.test.js", "test:coverage": "node --test test/coverage.test.js && node scripts/coverage.mjs", "test": "yarn test:node && yarn test:baseline", "test:browser": "playwright test", diff --git a/packages/artplayer-plugin-dash-control/ARCHITECTURE.md b/packages/artplayer-plugin-dash-control/ARCHITECTURE.md index b876a3951..0b954b1fe 100644 --- a/packages/artplayer-plugin-dash-control/ARCHITECTURE.md +++ b/packages/artplayer-plugin-dash-control/ARCHITECTURE.md @@ -148,6 +148,20 @@ and checked standalone against both TS 4.3.5 and 5.9.3, then consumed by real Mo ## Validation and next work +The bilingual `artplayer-vitepress/docs/{en/,}plugin/dash-control.md` guides contain +the exact `docs/assets/example/dash.control.js` setup. The example keeps one final +SDK cleanup listener, releases replaced instances once, skips SDK-dependent controls +when MediaSource is unsupported, and formats nullable language metadata safely. +`test/dash-example.test.js` exercises the actual source against these old failures. +`document-dash.spec.js` requires both guides to match that source, then runs it with +both frozen SDK generations and published/candidate core. WebKit's unsupported +branch is capability evidence only. The original SDK initialization settings and +plugin APIs are unchanged; full SDK/device/DRM acceptance remains separate. + +When changing the example, update both guides, run the example and browser tests, +rebuild the LLM corpus/docs and refresh the site inventory. `document-site.spec.js` +checks guide navigation and the two-library Run Code parameters in both languages. + Run at the workspace root with pinned Node and Yarn: ```sh diff --git a/packages/artplayer-plugin-dash-control/README.md b/packages/artplayer-plugin-dash-control/README.md index d3368c183..1fb67201c 100644 --- a/packages/artplayer-plugin-dash-control/README.md +++ b/packages/artplayer-plugin-dash-control/README.md @@ -2,6 +2,11 @@ Dash control plugin for ArtPlayer +Complete usage and SDK ownership: +[English guide](../artplayer-vitepress/docs/en/plugin/dash-control.md) / +[中文指南](../artplayer-vitepress/docs/plugin/dash-control.md). +These guides describe the current refactor branch; its fixes are not published yet. + Accepts a caller-owned dash.js instance at `art.dash`. Quality selection adapts to the dash.js 4.x quality methods or 5.x representation methods. Version 5 selection uses representation IDs so bitrate filtering does not change the selected quality. diff --git a/packages/artplayer-vitepress/README.md b/packages/artplayer-vitepress/README.md index c0283888a..889add558 100644 --- a/packages/artplayer-vitepress/README.md +++ b/packages/artplayer-vitepress/README.md @@ -12,14 +12,15 @@ not a VitePress page. Keep both URL surfaces compatible. | `docs/en` | English counterparts | `/document/en/` | | `docs/plugin/danmuku.md`, `docs/en/plugin/danmuku.md` | Danmuku options, callbacks, commands, heatmap and types in both languages | `/document/plugin/danmuku.html`, `/document/en/plugin/danmuku.html` | | `docs/plugin/hls-control.md`, `docs/en/plugin/hls-control.md` | HLS SDK setup, menus, lifecycle and types | `/document/plugin/hls-control.html`, `/document/en/plugin/hls-control.html` | +| `docs/plugin/dash-control.md`, `docs/en/plugin/dash-control.md` | DASH SDK generations, menus, lifecycle and types | `/document/plugin/dash-control.html`, `/document/en/plugin/dash-control.html` | | `docs/.vitepress/config.js` | Navigation, base URL, output path, page head | Repository `docs/document/` | | `docs/vite.config.ts` | Search plugin configuration | VitePress/Vite integration; real search acceptance remains pending | | `docs/public/main.js` | Run Code links and first-visit language redirect | Copied into the built site | | `docs/public/style.css` | Documentation presentation | Copied into the built site | Edit Markdown and public sources here. Do not edit the generated repository -`docs/document/`. The current inventory contains 30 Markdown pages: 15 Chinese -and 15 English. Danmuku and HLS have dedicated guides and navigation in both languages. Other plugins currently +`docs/document/`. The current inventory contains 32 Markdown pages: 16 Chinese +and 16 English. Danmuku, HLS and DASH have dedicated guides and navigation in both languages. Other plugins currently use their package README, architecture notes and linked editor examples; navigation links alone are not complete API documentation. @@ -131,3 +132,8 @@ root. `test/browser/document-hls.spec.js` enforces that parity and checks the source lifecycle with frozen real SDKs. `document-site.spec.js` checks both sidebar links and the two-library Run Code destination. Preserve the native-HLS capability boundary and SDK ownership explanation when editing either language. + +The DASH guides use the same exact-example rule with `docs/assets/example/dash.control.js` +and `test/browser/document-dash.spec.js`. Their formatter has one argument, unlike +the optional HLS list index. Preserve the distinction between SDK 4 qualityIndex +and SDK 5 representation IDs, nullable language fields, and synchronous update. diff --git a/packages/artplayer-vitepress/docs/.vitepress/config.js b/packages/artplayer-vitepress/docs/.vitepress/config.js index 440153309..cb0fb8b1b 100644 --- a/packages/artplayer-vitepress/docs/.vitepress/config.js +++ b/packages/artplayer-vitepress/docs/.vitepress/config.js @@ -71,7 +71,7 @@ const config = { { text: '视频广告', link: 'https://artplayer.org/?libs=./uncompiled/artplayer-plugin-ads/index.js&example=ads' }, { text: 'Iframe 控制', link: 'https://artplayer.org/?libs=./uncompiled/artplayer-tool-iframe/index.js&example=iframe' }, { text: 'HLS 控制', link: '/plugin/hls-control' }, - { text: 'DASH 控制', link: 'https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js%0A./uncompiled/artplayer-plugin-dash-control/index.js&example=dash.control' }, + { text: 'DASH 控制', link: '/plugin/dash-control' }, { text: 'VTT 缩略图', link: 'https://artplayer.org/?libs=./uncompiled/artplayer-plugin-vtt-thumbnail/index.js&example=vtt.thumbnail' }, { text: '多重字幕', link: 'https://artplayer.org/?libs=./uncompiled/artplayer-plugin-multiple-subtitles/index.js&example=multiple.subtitles' }, { text: 'ASS 字幕 - JASSUB', link: 'https://artplayer.org/?libs=./uncompiled/artplayer-plugin-jassub/index.js&example=jassub' }, @@ -143,7 +143,7 @@ const config = { { text: 'Advertise', link: 'https://artplayer.org/?libs=./uncompiled/artplayer-plugin-ads/index.js&example=ads' }, { text: 'Iframe Control', link: 'https://artplayer.org/?libs=./uncompiled/artplayer-tool-iframe/index.js&example=iframe' }, { text: 'HLS Control', link: '/en/plugin/hls-control' }, - { text: 'DASH Control', link: 'https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js%0A./uncompiled/artplayer-plugin-dash-control/index.js&example=dash.control' }, + { text: 'DASH Control', link: '/en/plugin/dash-control' }, { text: 'VTT Thumbnail', link: 'https://artplayer.org/?libs=./uncompiled/artplayer-plugin-vtt-thumbnail/index.js&example=vtt.thumbnail' }, { text: 'Multiple Subtitles', link: 'https://artplayer.org/?libs=./uncompiled/artplayer-plugin-multiple-subtitles/index.js&example=multiple.subtitles' }, { text: 'ASS Subtitle - JASSUB', link: 'https://artplayer.org/?libs=./uncompiled/artplayer-plugin-jassub/index.js&example=jassub' }, diff --git a/packages/artplayer-vitepress/docs/en/plugin/dash-control.md b/packages/artplayer-vitepress/docs/en/plugin/dash-control.md new file mode 100644 index 000000000..a84f07db8 --- /dev/null +++ b/packages/artplayer-vitepress/docs/en/plugin/dash-control.md @@ -0,0 +1,178 @@ +# DASH Control + +[中文说明](../../plugin/dash-control.md) + +Add video quality and audio-track menus to a dash.js player. You create and attach the SDK instance at `art.dash`; the plugin controls that instance and releases its own menus and listeners. + +This guide describes the current refactor branch. Its SDK adaptation, automatic refresh and lifecycle fixes have not yet been published. An unversioned npm/CDN install still uses the published release. + +## Installation + +```sh +yarn add artplayer dashjs artplayer-plugin-dash-control +``` + +```js +import Artplayer from 'artplayer'; +import dashjs from 'dashjs'; +import artplayerPluginDashControl from 'artplayer-plugin-dash-control'; +``` + +For script tags, load ArtPlayer, dash.js and `dist/artplayer-plugin-dash-control.js` before setup. The plugin global is `artplayerPluginDashControl`. Pin your dependency versions and use a browser-accessible MPD and segments. + +## Complete example + +The example matches the [online DASH example](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js%0A./uncompiled/artplayer-plugin-dash-control/index.js&example=dash.control). Replace the site's container and media URL in your application. + +
+ +```js +// npm i dashjs +// npm i artplayer-plugin-dash-control + +// import dashjs from 'dashjs'; +// import artplayerPluginDashControl from 'artplayer-plugin-dash-control'; + +const useDash = dashjs.supportsMediaSource() +let dash + +function destroyDash() { + const previous = dash + dash = undefined + if (previous) + previous.destroy() +} + +const art = new Artplayer({ + container: '.artplayer-app', + url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd', + setting: true, + plugins: useDash + ? [ + artplayerPluginDashControl({ + quality: { + // Show quality choices in the controls + control: true, + // Show quality choices in settings + setting: true, + // Get the quality name from level + getName: level => `${level.height}P`, + // I18n + title: 'Quality', + auto: 'Auto', + }, + audio: { + // Show audios in control + control: true, + // Show audios in setting + setting: true, + // Get the audio name from track + getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'), + // I18n + title: 'Audio', + auto: 'Auto', + }, + }), + ] + : [], + customType: { + mpd: function playMpd(video, url, art) { + destroyDash() + if (useDash) { + dash = dashjs.MediaPlayer().create() + art.dash = dash + dash.initialize(video, url, art.option.autoplay) + } + else { + art.notice.show = 'Unsupported playback format: mpd' + } + }, + }, +}) + +art.on('destroy', destroyDash) +``` + +The example chooses its SDK capability path once per player. If dash.js cannot use MediaSource, it displays the existing unsupported-format notice without creating an SDK or installing its controls. This example does not provide a native DASH fallback. + +## Configuration + +`artplayerPluginDashControl(option?)` synchronously returns a plugin factory. Both `quality` and `audio` accept: + +| Field | Meaning and default | +| --- | --- | +| `control` | Display a bottom control; omitted means hidden. | +| `setting` | Display a settings entry; omitted means hidden. Also enable the player's `setting: true`. | +| `title` | Menu title, default `Quality` or `Audio`. | +| `auto` | Fallback text, default `Auto`; quality also uses it for its automatic selection row. It does not create a synthetic audio track. | +| `getName(item)` | Return a string from the original SDK level or track. It receives one argument, with no player receiver or index. | + +The default quality label is `level.height + 'p'`. Default audio labels use `track.lang` or `track.id`; metadata may be missing or null. A custom formatter should return a string fallback, as the complete example does. Empty title/Auto text uses the default. + +Equal text labels collapse into one displayed choice. Include bitrate or other metadata when several variants have the same height and should remain separate choices. A selected duplicate keeps the actual selected SDK key or track object. Empty track lists remove their menus. + +## Quality and audio selection + +Manual quality selection disables video Auto switching, then selects the SDK quality. Auto enables video Auto switching without overwriting unrelated ABR settings. A synchronous menu selection does not mean buffering or decoding has completed. + +The plugin detects the SDK's available method family: + +| SDK interface | Quality list and selection | +| --- | --- | +| dash.js 4 style | `getBitrateInfoListFor('video')`, `getQualityFor('video')`, `setQualityFor('video', qualityIndex)` | +| dash.js 5 style | `getRepresentationsByType('video')`, `getCurrentRepresentationForType('video')`, `setRepresentationForTypeById('video', id)` | + +For the representation interface, selection uses the representation ID, including numeric zero. Do not substitute the index of a filtered array. You do not need to configure a version switch in the plugin. + +Audio selection calls `setCurrentTrack()` with the original SDK track object. It matches the current track by object identity or an unambiguous combination of available id/index/lang fields. There is no extra Auto audio row. + +## Refresh after external changes + +Player `ready`/`restart` and SDK quality, track and stream events refresh menus. SDK event refreshes are coalesced after the current synchronous selection. Unchanged playback-time events do not redraw menus; they can detect an external Auto-setting change. + +When changing SDK configuration while paused without a subsequent SDK event, refresh explicitly: + +```js +art.plugins.artplayerPluginDashControl.update(); +``` + +`update()` is synchronous and returns `undefined`. It requires `art.dash` to be attached to the player's video and can throw if that contract is not met. Assigning a different `art.dash` alone does not subscribe to it immediately; call `update()` or use the normal ready/restart flow after attachment. + +Automatic refresh preserves an open, plugin-owned quality or audio settings panel. Explicit `update()` keeps its existing rebuild behavior. Reserve `dash-quality` and `dash-audio` for the plugin's menu names. + +If an asynchronous SDK getter or formatter fails, the plugin warns, stops that observation and clears its menus. Fix the formatter/SDK state and call `update()` to recover. Explicit update and synchronous selection errors keep their normal throwing behavior. + +## SDK ownership and source switching + +Use the existing player `switchUrl()` or `switchQuality()` and handle its Promise. The complete example destroys the replaced SDK, assigns the new instance before initialization, and keeps one final player cleanup listener. It does not accumulate a new destroy listener on every load or destroy replaced engines again at the end. + +The plugin does not own your SDK: it never calls `dash.destroy()`, changes the manifest URL or removes listeners belonging to other consumers. Retained callbacks from old menus become inactive after replacement or player destruction. Your application remains responsible for DRM, SDK errors, autoplay decisions and any asynchronous SDK shutdown policy its integration requires. + +## TypeScript + +Default callback types include quality height/width/ID/bitrate and nullable audio id/index/lang. Use the generic factory for more specific metadata. This example declares only the fields it uses and does not require importing SDK declarations: + +```ts +import dashControl from 'artplayer-plugin-dash-control'; + +interface Level { height: number; bitrateInKbit?: number } +interface Track { id?: string | number | null; lang?: string | null } + +const plugin = dashControl({ + quality: { + control: true, + getName: level => level.height + 'p', + }, + audio: { + setting: true, + getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'), + }, +}); +``` + +`Option`, `Config`, `QualityLevel`, `AudioTrack` and `Result` are exported from the root. Root and legacy paths remain available. If using actual SDK declarations, dash.js 4.5.2 exposes `BitrateInfo` for quality; 5.2.1 uses `Representation`. Its declarations have different compiler/module-resolution requirements, so test your actual SDK and TypeScript combination. Describe the externally attached `art.dash` in your application's integration types. + +## Validation scope + +The refactor tests fixed dash.js 4.5.2 and 5.2.1 with local adaptive media and old/new core combinations. Those are tested points, not a new blanket support range. The plugin includes a targeted 4.5.2 paused-seek recovery for stale empty-buffer metrics while preserving the caller's SDK settings and media time. Windows Playwright WebKit lacks the MSE path used by these tests; it is not Safari/device playback acceptance. Test your own MPDs, DRM and target devices before adopting the unpublished refactor. diff --git a/packages/artplayer-vitepress/docs/plugin/dash-control.md b/packages/artplayer-vitepress/docs/plugin/dash-control.md new file mode 100644 index 000000000..b7fa63845 --- /dev/null +++ b/packages/artplayer-vitepress/docs/plugin/dash-control.md @@ -0,0 +1,178 @@ +# DASH 控制 + +[English](../en/plugin/dash-control.md) + +为 dash.js 播放器添加画质和音轨菜单。你负责创建 SDK、绑定 video 并赋给 `art.dash`;插件控制这个实例,只清理自己创建的菜单和监听器。 + +本页描述当前重构分支。这里的 SDK 适配、自动刷新和生命周期修复尚未发布;未固定版本的 npm/CDN 安装仍使用已发布版本。 + +## 安装 + +```sh +yarn add artplayer dashjs artplayer-plugin-dash-control +``` + +```js +import Artplayer from 'artplayer'; +import dashjs from 'dashjs'; +import artplayerPluginDashControl from 'artplayer-plugin-dash-control'; +``` + +使用 script 标签时,在初始化前加载 ArtPlayer、dash.js 和 `dist/artplayer-plugin-dash-control.js`。插件全局名称为 `artplayerPluginDashControl`。应用应固定依赖版本,并使用浏览器可访问的 MPD 和媒体片段。 + +## 完整示例 + +下面与[在线 DASH 示例](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js%0A./uncompiled/artplayer-plugin-dash-control/index.js&example=dash.control)使用相同代码。接入应用时替换站点容器和视频地址。 + +
+ +```js +// npm i dashjs +// npm i artplayer-plugin-dash-control + +// import dashjs from 'dashjs'; +// import artplayerPluginDashControl from 'artplayer-plugin-dash-control'; + +const useDash = dashjs.supportsMediaSource() +let dash + +function destroyDash() { + const previous = dash + dash = undefined + if (previous) + previous.destroy() +} + +const art = new Artplayer({ + container: '.artplayer-app', + url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd', + setting: true, + plugins: useDash + ? [ + artplayerPluginDashControl({ + quality: { + // Show quality choices in the controls + control: true, + // Show quality choices in settings + setting: true, + // Get the quality name from level + getName: level => `${level.height}P`, + // I18n + title: 'Quality', + auto: 'Auto', + }, + audio: { + // Show audios in control + control: true, + // Show audios in setting + setting: true, + // Get the audio name from track + getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'), + // I18n + title: 'Audio', + auto: 'Auto', + }, + }), + ] + : [], + customType: { + mpd: function playMpd(video, url, art) { + destroyDash() + if (useDash) { + dash = dashjs.MediaPlayer().create() + art.dash = dash + dash.initialize(video, url, art.option.autoplay) + } + else { + art.notice.show = 'Unsupported playback format: mpd' + } + }, + }, +}) + +art.on('destroy', destroyDash) +``` + +示例在创建播放器时固定 SDK 能力分支。若 dash.js 无法使用 MediaSource,则保留原来的格式不支持提示,不创建 SDK 或安装依赖它的控制插件。这个示例没有提供原生 DASH 回退。 + +## 配置 + +`artplayerPluginDashControl(option?)` 同步返回插件工厂。`quality` 和 `audio` 都支持: + +| 字段 | 含义与默认行为 | +| --- | --- | +| `control` | 显示底部控制器;省略时不显示。 | +| `setting` | 显示设置项;省略时不显示,还需播放器配置 `setting: true`。 | +| `title` | 菜单标题,默认 `Quality` 或 `Audio`。 | +| `auto` | 回退文字,默认 `Auto`;画质还用于自动选项,不会新增一个虚拟音轨。 | +| `getName(item)` | 根据原始 SDK 档位或轨道对象返回字符串。只有一个参数,不提供索引或播放器 this。 | + +默认画质标签为 `level.height + 'p'`,音轨标签取 `track.lang` 或 `track.id`。这些元数据可能缺失或为 null,自定义回调应像完整示例一样返回字符串回退。空标题或空 Auto 文字会使用默认值。 + +相同文字标签会合并成一个选项。若同高度的多个档位需要分别显示,可以在标签中加入码率或其他元数据。选中重复项时,会保留实际选中的 SDK 标识或轨道对象。轨道列表变空时移除对应菜单。 + +## 画质和音轨选择 + +手动选画质先关闭视频的自动码率选择,再调用 SDK 选择档位;Auto 只启用视频自动选择,不覆盖其他 ABR 设置。同步选择菜单不代表缓冲或解码已经完成。 + +插件根据 SDK 实际提供的方法选择适配方式: + +| SDK 接口 | 画质列表与选择 | +| --- | --- | +| dash.js 4 风格 | `getBitrateInfoListFor('video')`、`getQualityFor('video')`、`setQualityFor('video', qualityIndex)` | +| dash.js 5 风格 | `getRepresentationsByType('video')`、`getCurrentRepresentationForType('video')`、`setRepresentationForTypeById('video', id)` | + +representation 接口使用 ID 选择,数字零也是合法 ID;不能用过滤后数组的索引代替。无需给插件额外设置 SDK 版本开关。 + +选择音轨时,把原始 SDK 轨道对象交给 `setCurrentTrack()`。当前项优先通过对象身份匹配,再通过可用 id/index/lang 字段的唯一组合匹配,不会任意选中有歧义的项。音轨列表没有额外 Auto 行。 + +## 外部修改后的刷新 + +播放器 ready/restart 和 SDK 的画质、音轨、流事件会刷新菜单。SDK 事件刷新在当前同步选择结束后合并执行;未变化的播放时间事件不重绘菜单,但可以发现外部 Auto 设置变化。 + +暂停时直接修改 SDK 配置、且没有后续 SDK 事件,可以手动刷新: + +```js +art.plugins.artplayerPluginDashControl.update(); +``` + +`update()` 同步返回 `undefined`,要求 `art.dash` 已绑定到播放器的 video,否则可能抛错。仅赋值一个新的 `art.dash` 不会立即订阅它;绑定后调用 `update()`,或走正常 ready/restart 流程。 + +自动刷新会保留已打开、由插件管理的画质或音轨设置子菜单;显式 `update()` 保留原有重建行为。插件使用 `dash-quality` 和 `dash-audio` 菜单名,其他菜单请避开这些名称。 + +异步 SDK getter 或格式回调失败时,插件会输出警告、停止该观察并清除菜单;修正回调或 SDK 状态后调用 `update()` 恢复。显式更新和同步选择的错误仍按原语义抛出。 + +## SDK 所有权与换源 + +换源使用播放器已有的 `switchUrl()` 或 `switchQuality()`,并处理返回的 Promise。完整示例先销毁被替换的 SDK,在初始化前赋值新实例,每个播放器只注册一个最终清理监听器,不在每次加载时累积新的 destroy 回调,也不在最后重复销毁旧实例。 + +控制插件不会调用 `dash.destroy()`、更换清单地址或移除其他使用者的监听器;替换实例或销毁播放器后,旧菜单回调失效。应用仍负责 DRM、SDK 错误、自动播放策略,以及自身集成所需的异步 SDK 关闭策略。 + +## TypeScript + +默认回调类型包含画质高度/宽度/ID/码率,以及允许为空的音轨 id/index/lang。可以通过泛型声明更具体的元数据;下面只声明实际使用的字段,无需导入 SDK 声明: + +```ts +import dashControl from 'artplayer-plugin-dash-control'; + +interface Level { height: number; bitrateInKbit?: number } +interface Track { id?: string | number | null; lang?: string | null } + +const plugin = dashControl({ + quality: { + control: true, + getName: level => level.height + 'p', + }, + audio: { + setting: true, + getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'), + }, +}); +``` + +根入口导出 `Option`、`Config`、`QualityLevel`、`AudioTrack` 和 `Result`,原根入口与 legacy 路径继续保留。使用实际 SDK 声明时,dash.js 4.5.2 的画质类型为 `BitrateInfo`,5.2.1 使用 `Representation`;其编译器与模块解析要求不同,应验证实际 SDK/TypeScript 组合。在应用的集成类型中描述外部附加的 `art.dash`。 + +## 验证范围 + +重构使用固定 dash.js 4.5.2 / 5.2.1、本地自适应媒体和新旧核心组合验证;这两个版本是验证点,不是新定义的完整支持范围。插件对4.5.2暂停拖动后空缓冲指标陈旧的问题有定向恢复,保留调用方 SDK 设置和媒体时间。Windows Playwright WebKit 缺少相关 MSE 路径,不能代表 Safari 或真机播放已验收。采用未发布重构前,应验证自己的 MPD、DRM 和目标设备。 diff --git a/packages/artplayer-vitepress/docs/public/main.js b/packages/artplayer-vitepress/docs/public/main.js index 0580825a0..a0cdd4a06 100644 --- a/packages/artplayer-vitepress/docs/public/main.js +++ b/packages/artplayer-vitepress/docs/public/main.js @@ -50,5 +50,5 @@ } // - installNavigation(window, ["advanced/built-in.html", "advanced/built-in", "advanced/class.html", "advanced/class", "advanced/event.html", "advanced/event", "advanced/global.html", "advanced/global", "advanced/plugin.html", "advanced/plugin", "advanced/property.html", "advanced/property", "component/contextmenu.html", "component/contextmenu", "component/controls.html", "component/controls", "component/layers.html", "component/layers", "component/setting.html", "component/setting", "", "index.html", "plugin/danmuku.html", "plugin/danmuku", "plugin/hls-control.html", "plugin/hls-control", "start/i18n.html", "start/i18n", "start/option.html", "start/option"]); + installNavigation(window, ["advanced/built-in.html", "advanced/built-in", "advanced/class.html", "advanced/class", "advanced/event.html", "advanced/event", "advanced/global.html", "advanced/global", "advanced/plugin.html", "advanced/plugin", "advanced/property.html", "advanced/property", "component/contextmenu.html", "component/contextmenu", "component/controls.html", "component/controls", "component/layers.html", "component/layers", "component/setting.html", "component/setting", "", "index.html", "plugin/danmuku.html", "plugin/danmuku", "plugin/dash-control.html", "plugin/dash-control", "plugin/hls-control.html", "plugin/hls-control", "start/i18n.html", "start/i18n", "start/option.html", "start/option"]); })(); diff --git a/refactor/baselines/dash-docs-validation.json b/refactor/baselines/dash-docs-validation.json new file mode 100644 index 000000000..87190a76f --- /dev/null +++ b/refactor/baselines/dash-docs-validation.json @@ -0,0 +1,833 @@ +{ + "task": "SITE-DASH-01", + "sourceHead": "4ea0ba94ae51d14d353bc57a3222a8c19b11ac66", + "recordedAt": "2026-09-15T10:08:15.280Z", + "environment": { + "node": "24.21.0", + "yarn": "1.22.22", + "typescript": "5.9.3", + "platform": "Windows" + }, + "scope": "Bilingual DASH guide, exact shared demo source, SDK lifecycle and nullable language corrections; not full DASH package/device acceptance", + "sources": [ + { + "file": "docs/assets/example/dash.control.js", + "sha256": "1738bc47c13de1227cd4be091f881249180235904d12631f6334579fc146293a" + }, + { + "file": "test/dash-example.test.js", + "sha256": "9b762b7f037d51aa857b879b372e417dcf7c1a13932777f8b384d26258e26a71" + }, + { + "file": "test/browser/document-dash.spec.js", + "sha256": "d4021e8c35c9ab980dc1a38ba88b4905bce46fece370bf0ea088b8d238bc088f" + }, + { + "file": "test/browser/document-site.spec.js", + "sha256": "b4ea5944da181a748fc1335c5fc93477a474be58fe288b485ff8ed51f8e3efc3" + }, + { + "file": "packages/artplayer-vitepress/docs/plugin/dash-control.md", + "sha256": "a2471f6e3a7b3a91f9f8feca45228e9817862d8625bc852f77dc76fa61c48fc4" + }, + { + "file": "packages/artplayer-vitepress/docs/en/plugin/dash-control.md", + "sha256": "0ccfc925832c7e0643d1e6a0927390742f4640a3ac2f1eeeed6b40df3409007b" + }, + { + "file": "packages/artplayer-vitepress/docs/.vitepress/config.js", + "sha256": "0ff54baa7992a840a530b7dba259b7b67552642fc15ebf5b03150f9444096c25" + }, + { + "file": "packages/artplayer-vitepress/docs/public/main.js", + "sha256": "4675ef05347d3c71359b043b65975294a8d2be90ff3cce52715fead9ac6928b9" + }, + { + "file": "packages/artplayer-plugin-dash-control/README.md", + "sha256": "eec2c36c1b4dab1ce97efd745482581ba59461edb88a22e1ec063f6152223b1e" + }, + { + "file": "packages/artplayer-plugin-dash-control/ARCHITECTURE.md", + "sha256": "a13644c35087976f7f13db1e04e552f5fcd282c2651b1924f79f7f538ae3eea0" + }, + { + "file": "packages/artplayer-vitepress/README.md", + "sha256": "1aeaa7355d7f3cc3dcaa4ce0b4dcaee94d17536786befe7d40b6b3c0e67620e3" + }, + { + "file": "package.json", + "sha256": "f057b20067f3e571b43cc4739ddef4bde5387ba67878cf402db8a9c05479bd6f" + } + ], + "originalExample": { + "sourceHead": "4ea0ba94ae51d14d353bc57a3222a8c19b11ac66", + "sha256": "edc4326f03262a222e06bb780aab05c903ee162829dec60970e738c1e260eef2", + "tests": { + "passed": 0, + "failed": 3, + "log": { + "file": "refactor/.cache/dash-example-before.log", + "sha256": "52fd27fa2cb5bc57a4ad577418ab58476dae6a5cbac60ddd8a313952f9a7c1fa" + } + } + }, + "checks": { + "node": { + "passed": 20, + "failed": 0, + "log": { + "file": "refactor/.cache/dash-docs-node-tests.log", + "sha256": "f54759fec7f1dc108186423fe2b277caae9ae6ce26b4efc6c1e200d22adadec6" + } + }, + "siteBuildTests": { + "passed": 7, + "failed": 0, + "log": { + "file": "refactor/.cache/dash-docs-site-tests.log", + "sha256": "ddae3c158e6857b88c01f3fafbb71ba069ea63f72570c969d2b8bc5f50a5402a" + } + }, + "lint": { + "exitCode": 0, + "log": { + "file": "refactor/.cache/dash-docs-lint.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + "build": { + "exitCode": 0, + "log": { + "file": "refactor/.cache/dash-docs-build.log", + "sha256": "1ebae50eecb618b33b256f607fafa21fbc3fc3f74a309b5604dffb1bce6cb20f" + } + }, + "llm": { + "exitCode": 0, + "log": { + "file": "refactor/.cache/dash-docs-llm.log", + "sha256": "7ae9c408d87af8142cc9f7fa87f19427a12025e7c9bd9f15fcd899fe91d6eded" + } + }, + "static": { + "typescript": "5.9.3", + "options": { + "strict": true, + "noEmit": true, + "skipLibCheck": false, + "types": [], + "module": "NodeNext" + }, + "directory": "D:\\github\\ArtPlayer\\refactor\\.cache\\dash-docs-types-2XJ30S", + "results": [ + { + "source": "packages/artplayer-vitepress/docs/plugin/dash-control.md", + "sourceSHA256": "a2471f6e3a7b3a91f9f8feca45228e9817862d8625bc852f77dc76fa61c48fc4", + "built": "docs/document/plugin/dash-control.html", + "builtSHA256": "610593a5a6e6b67e64ee2e74f0eee4a5584f3859140c0767f17a606826dea203", + "title": "DASH 控制 ​", + "snippetSHA256": "b8efc3b50b1eaad374d8a2773e85b4e771bf62a725b958b1f83bdeb0d818f945", + "diagnostics": 0, + "localLinks": 20, + "runCode": 1 + }, + { + "source": "packages/artplayer-vitepress/docs/en/plugin/dash-control.md", + "sourceSHA256": "0ccfc925832c7e0643d1e6a0927390742f4640a3ac2f1eeeed6b40df3409007b", + "built": "docs/document/en/plugin/dash-control.html", + "builtSHA256": "3da4d74ea6748c515cfba378f363e77bf5b896fb84a71be011eff0e38b004e15", + "title": "DASH Control ​", + "snippetSHA256": "b8efc3b50b1eaad374d8a2773e85b4e771bf62a725b958b1f83bdeb0d818f945", + "diagnostics": 0, + "localLinks": 20, + "runCode": 1 + } + ] + }, + "riskTests": { + "passed": 2, + "failed": 0, + "log": { + "file": "refactor/.cache/dash-docs-risk-tests.log", + "sha256": "804d496e7a04c8820556a2fd292a2cdae565c4f758bf36292df5b20c1e172df6" + } + }, + "whitespace": { + "sourcePassed": true, + "generatedHtmlWarnings": 4, + "reason": "Two VitePress indentation-only lines per new HTML page; generated output retained" + } + }, + "browser": { + "file": "refactor/.cache/dash-docs-browser-final.json", + "sha256": "37ec2eb54211720dd66e8ae113340926d827228ddeb29a948ef483ca0c4e7049", + "stats": { + "startTime": "2026-09-15T10:03:34.544Z", + "duration": 47883.710999999996, + "expected": 18, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + }, + "tests": [ + { + "title": "documented DASH setup and source lifecycle: SDK 4.5.2, published core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "published", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/4.5.2", + "codeMember": "package/dist/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "4.5.2", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-4.5.2.tgz", + "integrity": "sha512-WXPk0lPDSaHjiSVoVRh2jQPiMmB1alKUH8hV2CVmaI0vPUeT1wIY7madVE38SthfOmwS9IJViv1RrxrxdGjElg==", + "sha256": "9a0944c48deb0fd8f92b0eea436c5b0d0aea9237c7da0078c0310f1430d0a31f", + "files": { + "package/package.json": "62b2295c4a92ec996ff066f7e5739893c46fce44d80c940c61ced9d5710226d1", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "13e6bd0a3c77e2db9378e355915929ed3dda5d8de9c48f446c9d3e9fb7154dbd", + "package/dist/dash.all.min.js": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da" + } + } + }, + "sdkSHA256": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": true, + "scope": "real SDK with original settings, local routed MPD, playback and replacement cleanup" + }, + "browser": "153.0.8010.12", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "unhandledErrors": [] + } + ] + }, + { + "title": "documented DASH setup and source lifecycle: SDK 4.5.2, candidate core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "candidate", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/4.5.2", + "codeMember": "package/dist/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "4.5.2", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-4.5.2.tgz", + "integrity": "sha512-WXPk0lPDSaHjiSVoVRh2jQPiMmB1alKUH8hV2CVmaI0vPUeT1wIY7madVE38SthfOmwS9IJViv1RrxrxdGjElg==", + "sha256": "9a0944c48deb0fd8f92b0eea436c5b0d0aea9237c7da0078c0310f1430d0a31f", + "files": { + "package/package.json": "62b2295c4a92ec996ff066f7e5739893c46fce44d80c940c61ced9d5710226d1", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "13e6bd0a3c77e2db9378e355915929ed3dda5d8de9c48f446c9d3e9fb7154dbd", + "package/dist/dash.all.min.js": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da" + } + } + }, + "sdkSHA256": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": true, + "scope": "real SDK with original settings, local routed MPD, playback and replacement cleanup" + }, + "browser": "153.0.8010.12", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "unhandledErrors": [] + } + ] + }, + { + "title": "documented DASH setup and source lifecycle: SDK 5.2.1, published core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "published", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/5.2.1", + "codeMember": "package/dist/modern/umd/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "5.2.1", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-5.2.1.tgz", + "integrity": "sha512-axcJmLeJCTJMLUfQRErUJB1KOiU5iHF+DMLBc3FKeox1HPYtGUQlC6Xm5Mm6vhBUR3CHHLIPOqw0JDIqMtP+Dw==", + "sha256": "4eacb0cc3525276666ca3f084611cdabb5a2264d128dfe0750fe106fbddd088f", + "files": { + "package/package.json": "f89fa389855d2a21b380fa69c84735da25bd93e3b9d7c39bd0d634493425fd8c", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "03b420509a480f893bf8253232cfd28428dc0be5f254fefe99a91e65847c010e", + "package/dist/modern/umd/dash.all.min.js": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49" + } + } + }, + "sdkSHA256": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": true, + "scope": "real SDK with original settings, local routed MPD, playback and replacement cleanup" + }, + "browser": "153.0.8010.12", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "unhandledErrors": [] + } + ] + }, + { + "title": "documented DASH setup and source lifecycle: SDK 5.2.1, candidate core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "candidate", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/5.2.1", + "codeMember": "package/dist/modern/umd/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "5.2.1", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-5.2.1.tgz", + "integrity": "sha512-axcJmLeJCTJMLUfQRErUJB1KOiU5iHF+DMLBc3FKeox1HPYtGUQlC6Xm5Mm6vhBUR3CHHLIPOqw0JDIqMtP+Dw==", + "sha256": "4eacb0cc3525276666ca3f084611cdabb5a2264d128dfe0750fe106fbddd088f", + "files": { + "package/package.json": "f89fa389855d2a21b380fa69c84735da25bd93e3b9d7c39bd0d634493425fd8c", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "03b420509a480f893bf8253232cfd28428dc0be5f254fefe99a91e65847c010e", + "package/dist/modern/umd/dash.all.min.js": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49" + } + } + }, + "sdkSHA256": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": true, + "scope": "real SDK with original settings, local routed MPD, playback and replacement cleanup" + }, + "browser": "153.0.8010.12", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "unhandledErrors": [] + } + ] + }, + { + "title": "documented DASH setup and source lifecycle: SDK 4.5.2, published core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "published", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/4.5.2", + "codeMember": "package/dist/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "4.5.2", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-4.5.2.tgz", + "integrity": "sha512-WXPk0lPDSaHjiSVoVRh2jQPiMmB1alKUH8hV2CVmaI0vPUeT1wIY7madVE38SthfOmwS9IJViv1RrxrxdGjElg==", + "sha256": "9a0944c48deb0fd8f92b0eea436c5b0d0aea9237c7da0078c0310f1430d0a31f", + "files": { + "package/package.json": "62b2295c4a92ec996ff066f7e5739893c46fce44d80c940c61ced9d5710226d1", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "13e6bd0a3c77e2db9378e355915929ed3dda5d8de9c48f446c9d3e9fb7154dbd", + "package/dist/dash.all.min.js": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da" + } + } + }, + "sdkSHA256": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": true, + "scope": "real SDK with original settings, local routed MPD, playback and replacement cleanup" + }, + "browser": "155.0", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "unhandledErrors": [] + } + ] + }, + { + "title": "documented DASH setup and source lifecycle: SDK 4.5.2, candidate core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "candidate", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/4.5.2", + "codeMember": "package/dist/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "4.5.2", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-4.5.2.tgz", + "integrity": "sha512-WXPk0lPDSaHjiSVoVRh2jQPiMmB1alKUH8hV2CVmaI0vPUeT1wIY7madVE38SthfOmwS9IJViv1RrxrxdGjElg==", + "sha256": "9a0944c48deb0fd8f92b0eea436c5b0d0aea9237c7da0078c0310f1430d0a31f", + "files": { + "package/package.json": "62b2295c4a92ec996ff066f7e5739893c46fce44d80c940c61ced9d5710226d1", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "13e6bd0a3c77e2db9378e355915929ed3dda5d8de9c48f446c9d3e9fb7154dbd", + "package/dist/dash.all.min.js": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da" + } + } + }, + "sdkSHA256": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": true, + "scope": "real SDK with original settings, local routed MPD, playback and replacement cleanup" + }, + "browser": "155.0", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "unhandledErrors": [] + } + ] + }, + { + "title": "documented DASH setup and source lifecycle: SDK 5.2.1, published core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "published", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/5.2.1", + "codeMember": "package/dist/modern/umd/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "5.2.1", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-5.2.1.tgz", + "integrity": "sha512-axcJmLeJCTJMLUfQRErUJB1KOiU5iHF+DMLBc3FKeox1HPYtGUQlC6Xm5Mm6vhBUR3CHHLIPOqw0JDIqMtP+Dw==", + "sha256": "4eacb0cc3525276666ca3f084611cdabb5a2264d128dfe0750fe106fbddd088f", + "files": { + "package/package.json": "f89fa389855d2a21b380fa69c84735da25bd93e3b9d7c39bd0d634493425fd8c", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "03b420509a480f893bf8253232cfd28428dc0be5f254fefe99a91e65847c010e", + "package/dist/modern/umd/dash.all.min.js": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49" + } + } + }, + "sdkSHA256": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": true, + "scope": "real SDK with original settings, local routed MPD, playback and replacement cleanup" + }, + "browser": "155.0", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "unhandledErrors": [] + } + ] + }, + { + "title": "documented DASH setup and source lifecycle: SDK 5.2.1, candidate core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "candidate", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/5.2.1", + "codeMember": "package/dist/modern/umd/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "5.2.1", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-5.2.1.tgz", + "integrity": "sha512-axcJmLeJCTJMLUfQRErUJB1KOiU5iHF+DMLBc3FKeox1HPYtGUQlC6Xm5Mm6vhBUR3CHHLIPOqw0JDIqMtP+Dw==", + "sha256": "4eacb0cc3525276666ca3f084611cdabb5a2264d128dfe0750fe106fbddd088f", + "files": { + "package/package.json": "f89fa389855d2a21b380fa69c84735da25bd93e3b9d7c39bd0d634493425fd8c", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "03b420509a480f893bf8253232cfd28428dc0be5f254fefe99a91e65847c010e", + "package/dist/modern/umd/dash.all.min.js": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49" + } + } + }, + "sdkSHA256": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": true, + "scope": "real SDK with original settings, local routed MPD, playback and replacement cleanup" + }, + "browser": "155.0", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "unhandledErrors": [] + } + ] + }, + { + "title": "documented DASH setup and source lifecycle: SDK 4.5.2, published core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "published", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/4.5.2", + "codeMember": "package/dist/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "4.5.2", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-4.5.2.tgz", + "integrity": "sha512-WXPk0lPDSaHjiSVoVRh2jQPiMmB1alKUH8hV2CVmaI0vPUeT1wIY7madVE38SthfOmwS9IJViv1RrxrxdGjElg==", + "sha256": "9a0944c48deb0fd8f92b0eea436c5b0d0aea9237c7da0078c0310f1430d0a31f", + "files": { + "package/package.json": "62b2295c4a92ec996ff066f7e5739893c46fce44d80c940c61ced9d5710226d1", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "13e6bd0a3c77e2db9378e355915929ed3dda5d8de9c48f446c9d3e9fb7154dbd", + "package/dist/dash.all.min.js": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da" + } + } + }, + "sdkSHA256": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": false, + "scope": "actual unsupported setup only" + }, + "browser": "26.6", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15", + "unhandledErrors": [] + } + ] + }, + { + "title": "documented DASH setup and source lifecycle: SDK 4.5.2, candidate core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "candidate", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/4.5.2", + "codeMember": "package/dist/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "4.5.2", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-4.5.2.tgz", + "integrity": "sha512-WXPk0lPDSaHjiSVoVRh2jQPiMmB1alKUH8hV2CVmaI0vPUeT1wIY7madVE38SthfOmwS9IJViv1RrxrxdGjElg==", + "sha256": "9a0944c48deb0fd8f92b0eea436c5b0d0aea9237c7da0078c0310f1430d0a31f", + "files": { + "package/package.json": "62b2295c4a92ec996ff066f7e5739893c46fce44d80c940c61ced9d5710226d1", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "13e6bd0a3c77e2db9378e355915929ed3dda5d8de9c48f446c9d3e9fb7154dbd", + "package/dist/dash.all.min.js": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da" + } + } + }, + "sdkSHA256": "17849c05872997095a63d74bde3fed6f79c14c6a48cdf904833d880b93a476da", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": false, + "scope": "actual unsupported setup only" + }, + "browser": "26.6", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15", + "unhandledErrors": [] + } + ] + }, + { + "title": "documented DASH setup and source lifecycle: SDK 5.2.1, published core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "published", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/5.2.1", + "codeMember": "package/dist/modern/umd/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "5.2.1", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-5.2.1.tgz", + "integrity": "sha512-axcJmLeJCTJMLUfQRErUJB1KOiU5iHF+DMLBc3FKeox1HPYtGUQlC6Xm5Mm6vhBUR3CHHLIPOqw0JDIqMtP+Dw==", + "sha256": "4eacb0cc3525276666ca3f084611cdabb5a2264d128dfe0750fe106fbddd088f", + "files": { + "package/package.json": "f89fa389855d2a21b380fa69c84735da25bd93e3b9d7c39bd0d634493425fd8c", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "03b420509a480f893bf8253232cfd28428dc0be5f254fefe99a91e65847c010e", + "package/dist/modern/umd/dash.all.min.js": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49" + } + } + }, + "sdkSHA256": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": false, + "scope": "actual unsupported setup only" + }, + "browser": "26.6", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15", + "unhandledErrors": [] + } + ] + }, + { + "title": "documented DASH setup and source lifecycle: SDK 5.2.1, candidate core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "documents": [ + "plugin/dash-control.md", + "en/plugin/dash-control.md" + ], + "core": "candidate", + "sdk": { + "metadataUrl": "https://registry.npmjs.org/dashjs/5.2.1", + "codeMember": "package/dist/modern/umd/dash.all.min.js", + "release": { + "name": "dashjs", + "version": "5.2.1", + "tarball": "https://registry.npmjs.org/dashjs/-/dashjs-5.2.1.tgz", + "integrity": "sha512-axcJmLeJCTJMLUfQRErUJB1KOiU5iHF+DMLBc3FKeox1HPYtGUQlC6Xm5Mm6vhBUR3CHHLIPOqw0JDIqMtP+Dw==", + "sha256": "4eacb0cc3525276666ca3f084611cdabb5a2264d128dfe0750fe106fbddd088f", + "files": { + "package/package.json": "f89fa389855d2a21b380fa69c84735da25bd93e3b9d7c39bd0d634493425fd8c", + "package/LICENSE.md": "f7cc4ba24850cc564766c75923d07c3d22fa27f304285f4d25ecffeaec964e28", + "package/index.d.ts": "03b420509a480f893bf8253232cfd28428dc0be5f254fefe99a91e65847c010e", + "package/dist/modern/umd/dash.all.min.js": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49" + } + } + }, + "sdkSHA256": "3a22b1f4576ab294f41e56f156cec7972a5f83edda379416778293ff22d2eb49", + "pluginSHA256": "02784a47302ab9bdefae878ffb8a2f2ed23d773defa20f0903eb53a3a78eed57", + "sourceSHA256": "a7296a516176076e34f5a7aed7388eb6c8b87bc12cfd4eb879b7e1abcf4a126e", + "supported": false, + "scope": "actual unsupported setup only" + }, + "browser": "26.6", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15", + "unhandledErrors": [] + } + ] + }, + { + "title": "built documentation loads zh deep pages and opens Run Code with encoded source", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "browser": "153.0.8010.12", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "unhandledErrors": [] + } + ] + }, + { + "title": "built documentation loads en deep pages and opens Run Code with encoded source", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "browser": "153.0.8010.12", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "unhandledErrors": [] + } + ] + }, + { + "title": "built documentation loads zh deep pages and opens Run Code with encoded source", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "browser": "155.0", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "unhandledErrors": [] + } + ] + }, + { + "title": "built documentation loads en deep pages and opens Run Code with encoded source", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "browser": "155.0", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "unhandledErrors": [] + } + ] + }, + { + "title": "built documentation loads zh deep pages and opens Run Code with encoded source", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "browser": "26.6", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15", + "unhandledErrors": [] + } + ] + }, + { + "title": "built documentation loads en deep pages and opens Run Code with encoded source", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "browser": "26.6", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15", + "unhandledErrors": [] + } + ] + } + ], + "interpretation": { + "realSdkPlaybackAndReplacement": 8, + "unsupportedWebKitSetup": 4, + "navigationAndRunCode": 6, + "realDeviceValidated": false + }, + "resultsDirectory": "refactor/.cache/dash-docs-browser-final-results", + "log": { + "file": "refactor/.cache/dash-docs-browser-first.log", + "sha256": "0dd8e8d701f0170b1f4b9d69f544b41f3f55995bbae8f9cc6b6e5ee8d5f3ca31" + }, + "note": "One run passed; first log is also the final run. Both guide snippets match the same actual source before executing one runtime case per SDK/core/engine." + }, + "connectedBrowser": { + "provider": "Codex in-app browser", + "version": null, + "tabId": "11", + "url": "http://localhost:8082/?libs=https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js%0A./uncompiled/artplayer-plugin-dash-control/index.js&example=dash.control", + "observed": [ + "editor contains updated useDash/destroyDash setup", + "video metadata duration 12:14", + "quality choices 1080P/720P/480P/360P/288P/Auto", + "audio choices EN/EN-AU/ET-ET", + "loadedmetadata/loadeddata/canplay events" + ], + "limitation": "No playback click or source/destroy interaction; version was not returned. This is readiness/menu observation only." + }, + "inventory": { + "packages": 22, + "markdown": 32, + "examples": 30, + "html": 41, + "declarationMembers": 963, + "assets": 204 + }, + "unchanged": { + "lock": true, + "pluginRuntimeAndTypes": true, + "packageVersions": true + }, + "publication": false +} diff --git a/refactor/baselines/site-inventory.json b/refactor/baselines/site-inventory.json index df1747088..eeeeb3f5d 100644 --- a/refactor/baselines/site-inventory.json +++ b/refactor/baselines/site-inventory.json @@ -4,9 +4,9 @@ "note": "Read-only source inventory. Heading matches are candidates, never semantic API coverage. Asset identity is not permission. No runtime, remote Pages or npm acceptance is implied.", "counts": { "packages": 22, - "markdown": 30, + "markdown": 32, "examples": 30, - "html": 39, + "html": 41, "declarationMembers": 963, "assets": 204 }, @@ -2013,6 +2013,53 @@ "translation": "packages/artplayer-vitepress/docs/plugin/danmuku.md", "translationOwner": null }, + { + "file": "packages/artplayer-vitepress/docs/en/plugin/dash-control.md", + "sha256Lf": "0ccfc925832c7e0643d1e6a0927390742f4640a3ac2f1eeeed6b40df3409007b", + "language": "en", + "route": "/document/en/plugin/dash-control.html", + "headings": [ + { + "text": "DASH Control", + "line": 1 + }, + { + "text": "Installation", + "line": 9 + }, + { + "text": "Complete example", + "line": 23 + }, + { + "text": "Configuration", + "line": 99 + }, + { + "text": "Quality and audio selection", + "line": 115 + }, + { + "text": "Refresh after external changes", + "line": 130 + }, + { + "text": "SDK ownership and source switching", + "line": 146 + }, + { + "text": "TypeScript", + "line": 152 + }, + { + "text": "Validation scope", + "line": 176 + } + ], + "runCodeMarkers": 1, + "translation": "packages/artplayer-vitepress/docs/plugin/dash-control.md", + "translationOwner": null + }, { "file": "packages/artplayer-vitepress/docs/en/plugin/hls-control.md", "sha256Lf": "c0271b386e44fcc47c9aad017b3b02f75bb3baec830bca9634edcb2060cd91d3", @@ -2472,6 +2519,53 @@ "translation": "packages/artplayer-vitepress/docs/en/plugin/danmuku.md", "translationOwner": null }, + { + "file": "packages/artplayer-vitepress/docs/plugin/dash-control.md", + "sha256Lf": "a2471f6e3a7b3a91f9f8feca45228e9817862d8625bc852f77dc76fa61c48fc4", + "language": "zh", + "route": "/document/plugin/dash-control.html", + "headings": [ + { + "text": "DASH 控制", + "line": 1 + }, + { + "text": "安装", + "line": 9 + }, + { + "text": "完整示例", + "line": 23 + }, + { + "text": "配置", + "line": 99 + }, + { + "text": "画质和音轨选择", + "line": 115 + }, + { + "text": "外部修改后的刷新", + "line": 130 + }, + { + "text": "SDK 所有权与换源", + "line": 146 + }, + { + "text": "TypeScript", + "line": 152 + }, + { + "text": "验证范围", + "line": 176 + } + ], + "runCodeMarkers": 1, + "translation": "packages/artplayer-vitepress/docs/en/plugin/dash-control.md", + "translationOwner": null + }, { "file": "packages/artplayer-vitepress/docs/plugin/hls-control.md", "sha256Lf": "262df6632861f93e8b313db229416a3a70399c94380dcc4ecb9c405ea4b17aba", @@ -16952,11 +17046,13 @@ "packages/artplayer-vitepress/docs/en/component/setting.md", "packages/artplayer-vitepress/docs/en/index.md", "packages/artplayer-vitepress/docs/en/plugin/danmuku.md", + "packages/artplayer-vitepress/docs/en/plugin/dash-control.md", "packages/artplayer-vitepress/docs/en/plugin/hls-control.md", "packages/artplayer-vitepress/docs/en/start/i18n.md", "packages/artplayer-vitepress/docs/en/start/option.md", "packages/artplayer-vitepress/docs/index.md", "packages/artplayer-vitepress/docs/plugin/danmuku.md", + "packages/artplayer-vitepress/docs/plugin/dash-control.md", "packages/artplayer-vitepress/docs/plugin/hls-control.md", "packages/artplayer-vitepress/docs/start/i18n.md", "packages/artplayer-vitepress/docs/start/option.md" @@ -17083,8 +17179,11 @@ "examples": [ "dash.control" ], - "sidebarMentionsPackage": true, - "dedicatedPages": [], + "sidebarMentionsPackage": false, + "dedicatedPages": [ + "packages/artplayer-vitepress/docs/en/plugin/dash-control.md", + "packages/artplayer-vitepress/docs/plugin/dash-control.md" + ], "contentReviewOwner": "SITE-04", "demoExecutionOwner": "EX-03" }, @@ -17240,11 +17339,13 @@ "packages/artplayer-vitepress/docs/en/component/setting.md", "packages/artplayer-vitepress/docs/en/index.md", "packages/artplayer-vitepress/docs/en/plugin/danmuku.md", + "packages/artplayer-vitepress/docs/en/plugin/dash-control.md", "packages/artplayer-vitepress/docs/en/plugin/hls-control.md", "packages/artplayer-vitepress/docs/en/start/i18n.md", "packages/artplayer-vitepress/docs/en/start/option.md", "packages/artplayer-vitepress/docs/index.md", "packages/artplayer-vitepress/docs/plugin/danmuku.md", + "packages/artplayer-vitepress/docs/plugin/dash-control.md", "packages/artplayer-vitepress/docs/plugin/hls-control.md", "packages/artplayer-vitepress/docs/start/i18n.md", "packages/artplayer-vitepress/docs/start/option.md" @@ -17419,7 +17520,7 @@ { "name": "dash.control", "source": "docs/assets/example/dash.control.js", - "sha256Lf": "edc4326f03262a222e06bb780aab05c903ee162829dec60970e738c1e260eef2", + "sha256Lf": "1738bc47c13de1227cd4be091f881249180235904d12631f6334579fc146293a", "menuLinks": [ "/?libs=https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js%0A./uncompiled/artplayer-plugin-dash-control/index.js&example=dash.control" ], @@ -17692,10 +17793,10 @@ { "source": "docs/document/404.html", "route": "/document/404.html", - "sha256Lf": "739031d99373696e852520d1f747f4570398ac462c1576c0a7d233b590a517cb", + "sha256Lf": "b5f027ae6538c6fc1ea1125c7136be1d67ae92ee2e2b999b565f91b2a22a7980", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17705,10 +17806,10 @@ { "source": "docs/document/advanced/built-in.html", "route": "/document/advanced/built-in.html", - "sha256Lf": "2cf8b8bc26ee8bfb34dadf740a3c8ae4b0ed5ee50314b3f6bbe5b3dfd709c538", + "sha256Lf": "785285d50a8bbea91f52618004692b13051b0cddb846d174c007b93aadbb1b8e", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17718,10 +17819,10 @@ { "source": "docs/document/advanced/class.html", "route": "/document/advanced/class.html", - "sha256Lf": "7de71fe06d19ca56fb229363f621ddb76dac4ea86582851b6597be4ab510e29b", + "sha256Lf": "dc47d08602d5d2b7ffb42d447585e16890acf76c71c54f99cbfc274bb0f7b672", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17731,10 +17832,10 @@ { "source": "docs/document/advanced/event.html", "route": "/document/advanced/event.html", - "sha256Lf": "6d1912bd53e8640e2e003156d367b15680cf9f1f8aa9c784e83f4bbc0710fb84", + "sha256Lf": "5f309844bb0cff048bfa8206e1cc6764b118cb433e4c935af5a24f62707f9070", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17744,10 +17845,10 @@ { "source": "docs/document/advanced/global.html", "route": "/document/advanced/global.html", - "sha256Lf": "d0b3e638cc56125aa28ed5c0d788dbb327162f30cf198af3a11efb58c30d640b", + "sha256Lf": "19839d3efd05cb0435296b2bf0f4b6bc59fdcc377cf6107b71317dc285eb235e", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17757,10 +17858,10 @@ { "source": "docs/document/advanced/plugin.html", "route": "/document/advanced/plugin.html", - "sha256Lf": "4d539395bcf9f92cbbf679236f73ad46e0951ad67e169cccd176c8db0e172327", + "sha256Lf": "6f06b91f79020e93290622101e77460f9fa20113144cd32d2c7e933dce8f5e50", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17770,10 +17871,10 @@ { "source": "docs/document/advanced/property.html", "route": "/document/advanced/property.html", - "sha256Lf": "585490a60cb2bb854a0b6040d10d4bb1800dd5faf5c5c95dfcf780f024a09ced", + "sha256Lf": "df590666d0a52b7b30521f2bef9e0705150eca93de02b4b6698c580ccffff1ad", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17783,10 +17884,10 @@ { "source": "docs/document/component/contextmenu.html", "route": "/document/component/contextmenu.html", - "sha256Lf": "1ea119dc7d15b9be4ada73e393a7356406f84112a3da4ac271b8657371c55313", + "sha256Lf": "71c4d1a7f68e3e8a49f0d4883bf9f6f0c62c12a954e4fa557d7fb6bcfbe3d2b4", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17796,10 +17897,10 @@ { "source": "docs/document/component/controls.html", "route": "/document/component/controls.html", - "sha256Lf": "d5a698c705f2cbddcb67f3d05016d19f7c34b4fd5177c1f79e3f3a839f73030f", + "sha256Lf": "006a087831263e50c8280a2430bf1777fc5b362e5742aa8addc44503e7a227b6", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17809,10 +17910,10 @@ { "source": "docs/document/component/layers.html", "route": "/document/component/layers.html", - "sha256Lf": "e9f5129cb516ec4f2d3ea07b84fac4ac689d979d189815d01eba194c4a257982", + "sha256Lf": "f0ff350f70dec5cc9bc396e0437ba3e855fb48e11138473aa246aa3235145978", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17822,10 +17923,10 @@ { "source": "docs/document/component/setting.html", "route": "/document/component/setting.html", - "sha256Lf": "10284ef177093ed786e0b0600e6ee5184724a46444b2e614b6447f26fb68b711", + "sha256Lf": "0b9c264bd5939d060bb72524c9af4d0c6ee1a21a538f29139c799d09f8d5a6ce", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17835,10 +17936,10 @@ { "source": "docs/document/en/advanced/built-in.html", "route": "/document/en/advanced/built-in.html", - "sha256Lf": "f47472d88db0a05eb70a91c14c270e4978afcf55a3777db6d3876dbeb7ef391a", + "sha256Lf": "30d6ccb661f69232b9c105da0ded1589c38484a27b58aae9ad791cb07ae0f775", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17848,10 +17949,10 @@ { "source": "docs/document/en/advanced/class.html", "route": "/document/en/advanced/class.html", - "sha256Lf": "eec757fc67c53ebefb0c50b40e21097d7c893a3b76b4aa0170fe7a8906afa676", + "sha256Lf": "9a1f8a6a8582f3893dfad2ebcde77c45752af187e28d289cec7d614bf52b6cd8", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17861,10 +17962,10 @@ { "source": "docs/document/en/advanced/event.html", "route": "/document/en/advanced/event.html", - "sha256Lf": "01c77788e99f4ec477db05a976200bd1ee4d769cb215d6686011a6e86eca7ac3", + "sha256Lf": "6e4d27d830a6ad7c5163d1c014af085129d1476a6d745c4fffea7c28bf1e3dd9", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17874,10 +17975,10 @@ { "source": "docs/document/en/advanced/global.html", "route": "/document/en/advanced/global.html", - "sha256Lf": "7e09ba52c4ca4dbf3261844b77f488c768d2e075b4999e4e9599cbef87ada913", + "sha256Lf": "ce8d6a08cf05f3d104f154880d4d4b4bf965d8892c6a135e9bce9e67fe8d0923", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17887,10 +17988,10 @@ { "source": "docs/document/en/advanced/plugin.html", "route": "/document/en/advanced/plugin.html", - "sha256Lf": "a40604fdb0bbed13360b9f4c1a69cc67c875d66adc1875576e2828884e71bd64", + "sha256Lf": "f1482ba777db85ed170637ec8a447b77e6a5d8cd0745e52f0ec1034c5fb9bd5c", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17900,10 +18001,10 @@ { "source": "docs/document/en/advanced/property.html", "route": "/document/en/advanced/property.html", - "sha256Lf": "47c24a65c95436fa44dd0c35879cccb48527b7d4a7e6abfd062e3b4d1923fb36", + "sha256Lf": "8676ac25a09b634b4415d84a42212b2a6015b34bf9fe3483909325a9dcbca603", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17913,10 +18014,10 @@ { "source": "docs/document/en/component/contextmenu.html", "route": "/document/en/component/contextmenu.html", - "sha256Lf": "9ab3fe20e8f246ee9e481c73c88479cdf18551451a75b644add3734ff18b431d", + "sha256Lf": "33688005fd0559181b5bc9ff4039840539ae3909900e1e166600b56c3ffdb9d7", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17926,10 +18027,10 @@ { "source": "docs/document/en/component/controls.html", "route": "/document/en/component/controls.html", - "sha256Lf": "5ca63fbc78fa0beb96ca5f46e0f2e8ccef8622d8ab4cd2b24b72df619fd5a165", + "sha256Lf": "c3555cd37aa81d27a4175c6de620a2891c805aa129668e3e82f63b681022c146", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17939,10 +18040,10 @@ { "source": "docs/document/en/component/layers.html", "route": "/document/en/component/layers.html", - "sha256Lf": "e5a27278d4264ec855d9785bb455a2be9eac3bf5b9add73fd36da3dea60508ec", + "sha256Lf": "952685ef63d98213c471a00a9117064dd024111e9396392dcb721877e2000bec", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17952,10 +18053,10 @@ { "source": "docs/document/en/component/setting.html", "route": "/document/en/component/setting.html", - "sha256Lf": "fb64ad2c748396701ef1e30c5b6051129ce6d96c7e1715f43bf97dd95a5c93cd", + "sha256Lf": "fdc34800f473cdc3476afc279e38cc33607c12a47ef3d88535c4a2619bcd5789", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17965,10 +18066,10 @@ { "source": "docs/document/en/index.html", "route": "/document/en/", - "sha256Lf": "f49b25ac62fd3867e955d3d42f45e366233d470b7f34111a4550a5c54ace200c", + "sha256Lf": "17a881f211e9d0b631d456cc694095d2f90b21e20bb8831fd47ab42141561848", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17978,10 +18079,23 @@ { "source": "docs/document/en/plugin/danmuku.html", "route": "/document/en/plugin/danmuku.html", - "sha256Lf": "7fecb59004df7b7d1589998f421258e62777875160e559777627b85c7dfa2a14", + "sha256Lf": "fbea17aecdaf51daa7c161fd79cd157caa707d5c317b784679077b17f964abaa", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", + "/document/main.js", + "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" + ], + "status": "not-run", + "owner": "EX-03" + }, + { + "source": "docs/document/en/plugin/dash-control.html", + "route": "/document/en/plugin/dash-control.html", + "sha256Lf": "3da4d74ea6748c515cfba378f363e77bf5b896fb84a71be011eff0e38b004e15", + "kind": "generated-docs", + "scriptSources": [ + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17991,10 +18105,10 @@ { "source": "docs/document/en/plugin/hls-control.html", "route": "/document/en/plugin/hls-control.html", - "sha256Lf": "a6ac6504b7a348ad20524c56521e5e563de295b87995e14226f4638972f040f0", + "sha256Lf": "239a4c77e5e5df8f61e3add871ee9c183d16bed789f757422043c1a8b5666b81", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -18004,10 +18118,10 @@ { "source": "docs/document/en/start/i18n.html", "route": "/document/en/start/i18n.html", - "sha256Lf": "95694df09bca853c0eeb8883c4b2db02c042ee29971503dad1fcd0e4a22595fe", + "sha256Lf": "a4dd63421375706c7a5612f26c0a26da77b1ae9ac7b1a922243889c116c1c065", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -18017,10 +18131,10 @@ { "source": "docs/document/en/start/option.html", "route": "/document/en/start/option.html", - "sha256Lf": "23718b0df3dd56492e62635bacd55e504082d02585ebed88ad165b82fecd2ea8", + "sha256Lf": "e265594e9ea6fd628a6f00c8925a25ee1e84478944db627213206425aa07c7f3", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -18030,10 +18144,10 @@ { "source": "docs/document/index.html", "route": "/document/", - "sha256Lf": "6fdc034c61750bf4da6de85d405a176fcea9046c81143bd4333593a080863c1e", + "sha256Lf": "34eabea907870f2764581f1fa212f99e8a9c6f5b227c8884e073f481ae9526ca", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -18043,10 +18157,23 @@ { "source": "docs/document/plugin/danmuku.html", "route": "/document/plugin/danmuku.html", - "sha256Lf": "c1bf198386743ba8a659dd56f520059a960d53791b2c5898634822d9a3330fee", + "sha256Lf": "cbbcab068f10d8af9c44819f7f224108af7abd8fb0e27796a80a6f811817025b", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", + "/document/main.js", + "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" + ], + "status": "not-run", + "owner": "EX-03" + }, + { + "source": "docs/document/plugin/dash-control.html", + "route": "/document/plugin/dash-control.html", + "sha256Lf": "610593a5a6e6b67e64ee2e74f0eee4a5584f3859140c0767f17a606826dea203", + "kind": "generated-docs", + "scriptSources": [ + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -18056,10 +18183,10 @@ { "source": "docs/document/plugin/hls-control.html", "route": "/document/plugin/hls-control.html", - "sha256Lf": "f4715b9fb6c4e7b7b5447e56dd26c546bc48b1446c1e2d3fd155dc03f97b4686", + "sha256Lf": "aa21e8079cf454e66b1a178f2cac00acb868eacf8f9b7a80755771aa3fc1d698", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -18069,10 +18196,10 @@ { "source": "docs/document/start/i18n.html", "route": "/document/start/i18n.html", - "sha256Lf": "6e6371436fbb1b48936e3a789272f55617a92aa6506fd6f0d4b23cb97deea876", + "sha256Lf": "f1c1dbcee903d009bfa051cbf7a714bdb06242dbf7a2c8951cb09e9cba98b32d", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -18082,10 +18209,10 @@ { "source": "docs/document/start/option.html", "route": "/document/start/option.html", - "sha256Lf": "5228248a85b0c6e85a4ce617c847c5b61e855181b1bce1dc93662f0c5599f997", + "sha256Lf": "9a229b8204c0e37babb4054fd016feee2a61d7cb971021c287037b2b24ba4a4f", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.C4kTwhag.js", + "/document/assets/app.dBfz83xG.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -18217,7 +18344,9 @@ "examplesRemoved": [], "htmlAdded": [ "docs/document/en/plugin/danmuku.html", + "docs/document/en/plugin/dash-control.html", "docs/document/en/plugin/hls-control.html", + "docs/document/plugin/dash-control.html", "docs/document/plugin/hls-control.html" ], "htmlRemoved": [] @@ -18385,7 +18514,7 @@ }, { "file": "packages/artplayer-vitepress/docs/public/main.js", - "sha256Lf": "387e6b4d0dd4251b18fd1d45b45656e63aeba25e2a67cdb26da5f185e7359fb1" + "sha256Lf": "4675ef05347d3c71359b043b65975294a8d2be90ff3cce52715fead9ac6928b9" }, { "file": "packages/artplayer-vitepress/docs/vite.config.ts", @@ -18393,7 +18522,7 @@ }, { "file": "packages/artplayer-vitepress/docs/.vitepress/config.js", - "sha256Lf": "2c31669093e62bac0d59d874ea0181455e9117824712807ff64c04ce7d5eb693" + "sha256Lf": "0ff54baa7992a840a530b7dba259b7b67552642fc15ebf5b03150f9444096c25" }, { "file": "scripts/build-site-assets.mjs", diff --git a/refactor/changes/2026-09-15-SITE-DASH-01-guides.md b/refactor/changes/2026-09-15-SITE-DASH-01-guides.md new file mode 100644 index 000000000..41303f6d5 --- /dev/null +++ b/refactor/changes/2026-09-15-SITE-DASH-01-guides.md @@ -0,0 +1,97 @@ +# SITE-DASH-01:DASH 双语指南与示例生命周期 + +本任务从 SITE-04 拆出,依赖已完成 SITE-03 和 PKG-DASH-04;父任务全部旧依赖保留。 +本次完成 DASH 使用指南与示例修复,不提前完成 PKG-DASH-05/06 或整站验收。 + +## 复现与改动 + +直接执行原 docs/assets/example/dash.control.js 的三个受控回归全部失败: + +- 三次加载累积三个 destroy 监听器;最终销毁会再次调用已经释放的旧 SDK。 +- MediaSource 不支持时仍调用 SDK 控制插件工厂;该分支没有 SDK,安装没有意义。 +- 实际 SDK 允许音轨 lang 为 null,原 getName 直接 toUpperCase 会抛错。 + +修正后,示例局部 dash 变量管理所有权:换源先释放旧 SDK,清空局部引用,再创建 +并赋给 art.dash 后 initialize;播放器只注册一个最终清理监听器。重复调用这个 +清理函数不会重复销毁实例。useDash 固定在该播放器实例的能力分支,不支持时保留 +原提示文字、不创建 SDK 或插件。音轨标签保留现有大写语言,缺失时依次回退到 +字符串化的 id(包括0)和 Audio。三个回归全部通过。 + +保留原容器、媒体 URL、插件名称、配置形状、SDK initialize 参数和默认设置。 +改动限于应用示例,没有改变插件公开 API、类型、SDK版本选择、同步错误语义或 +SDK归属。没有把 dash.destroy 的调用次数当作所有异步底层资源都已证明释放; +特殊应用的异步SDK关闭策略仍由集成层负责。 + +## 文档和架构 + +新增 plugin/dash-control.md、en/plugin/dash-control.md 和中英文侧栏。 +两页完整 Run Code 与实际 demo 逐字相同,由浏览器测试启动时强制检查。 +只有一份相同代码参与每组真实SDK验证,不为了两个语言副本重复同一播放过程。 + +指南覆盖配置默认值、空列表、重复标签、原对象 formatter、只有一个参数与无绑定 +this、音轨空语言;区别 SDK4 qualityIndex 和 SDK5 representation ID,保留0值。 +说明手动选择关闭视频ABR、Auto只修改相应开关,音轨传原对象且无额外Auto轨道; +同步选择结束不意味着解码完成。 + +说明 ready/restart、SDK事件合并刷新、暂停修改设置后手动 update、同步返回值、 +异步观察失败的警告/恢复、SDK所有权与旧回调失效,补齐泛型TS示例和两代SDK类型 +差异。明确当前重构尚未发布,不能把无版本CDN当作本分支代码,也不把Windows +WebKit能力检查当作Safari/设备播放。原外部编辑器URL仍从指南可达。 + +包 README/ARCHITECTURE、站点 README、浏览器维护说明一起更新。 +Node 示例回归加入既有 test:unit,自动进入现有CI;没有新增依赖或锁条目。 +通过 build:llm、build:docs(含 build:site-assets)生成全部相关输出,站点清单 +从30 Markdown/39 HTML增为32 Markdown/41 HTML,中英各16页。 +没有手改 dist、uncompiled、生成HTML或脚本产物。 + +## 验证 + +Windows / Node24.21.0 / YarnClassic1.22.22 / TypeScript5.9.3。 + +| 检查 | 结果及限制 | +| --- | --- | +| 原示例回归 | 3 fail,保留原失败日志 | +| 修复后示例、文档流程、导航工具 | 20 pass,其中示例3项 | +| 站点构建测试 | 7 pass,真实VitePress构建完成 | +| 两页原样TS片段 | strict NodeNext、types:[]、skipLibCheck:false,各0诊断 | +| 静态生成页 | 两页各1个Run Code、20个本地链接,目标均存在 | +| 浏览器首次及最终运行 | 18 pass、0 skip、0 retry、0 fail,无测试断言调整 | +| lint、站点产物/语料/清单、工具链、计划和风险 | 提交前通过,机器证据保留指纹 | + +浏览器的8项真实播放来自 Chromium153.0.8010.12 和 Firefox155.0,各两版SDK +(4.5.2/5.2.1)×新旧核心:初次时钟和解码帧推进、菜单出现、switchUrl 后继续 +解码、旧/新SDK分别销毁一次。SDK来自冻结npm归档,原示例远端媒体请求路由到 +哈希校验过的本地MPD/片段。只对 SDK 创建/销毁加透明计数,不替换方法结果、 +视频帧、网络响应内容以外的播放行为或SDK设置。 + +Windows WebKit26.6的4项仅验证无MSE时不创建SDK、不注册控制插件、显示原提示 +并清理;另6项是三引擎双语导航、生成页及Run Code两个库/代码参数。它们不是 +外部编辑器播放或真机验收。原有完整SDK/DRM/暂停seek/安装包矩阵继续由既有任务负责。 + +内置浏览器也打开实际 localhost:8082 的原DASH示例URL,编辑器显示新的 useDash +和 destroyDash;视频时长12:14,画质菜单含1080P/720P/480P/360P/288P/Auto, +音轨EN/EN-AU/ET-ET,控制台出现loadedmetadata/loadeddata/canplay。这个只计 +页面加载和菜单观察,没有执行点击播放/换源/销毁;工具未返回浏览器版本。 +未重启或修改已有8082服务。 + +最终风险回归2项通过,计划/风险与站点清单检查通过。暂存源码diff --check通过; +完整检查报告两个新HTML各两行VitePress模板生成的缩进空白,保留原生成输出。 + +## 交接与回退 + +见[机器证据](../baselines/dash-docs-validation.json)。改示例时同步两页并执行: + +```sh +node --test test/dash-example.test.js +yarn test:browser document-dash.spec.js document-site.spec.js --workers=1 +yarn test:site-build +yarn build:llm +yarn build:docs +node refactor/scripts/site-inventory.mjs --write +node refactor/scripts/site-inventory.mjs --check +``` + +DASH-EXAMPLE-01 在本任务关闭;PKG-DASH-05、其余插件双语文档、整站及发布验收 +保持原状态。包README更新会改变后续tarball,最终候选必须重新绑定验收证据。 +回退本提交恢复原示例与导航,移除两页和相关生成内容;播放器/插件生产源码及 +公开类型不变。没有推送、部署或npm发布。 diff --git a/refactor/plan.md b/refactor/plan.md index ecad8c731..bfe558863 100644 --- a/refactor/plan.md +++ b/refactor/plan.md @@ -2,9 +2,9 @@ > 由 tasks.json 生成。请修改数据后运行 `node refactor/scripts/plan.mjs --write`,不要手改本表。 -基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 272 项,范围 22 个包及工作区/示例。 +基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 273 项,范围 22 个包及工作区/示例。 -状态:todo 43 / doing 21 / blocked 0 / done 208 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。 +状态:todo 43 / doing 21 / blocked 0 / done 209 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。 前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。 @@ -24,7 +24,7 @@ | artplayer-plugin-chromecast | 1.1.0 | PKG-CAST-01, PKG-CAST-02, PKG-CAST-03, PKG-CAST-04, PKG-CAST-05, PKG-CAST-06 | | artplayer-plugin-danmuku | 5.3.0 | PKG-DANMUKU-01, PKG-DANMUKU-02, PKG-DANMUKU-03, PKG-DANMUKU-04, PKG-DANMUKU-05, PKG-DANMUKU-06, PKG-DANMUKU-07, PKG-DANMUKU-08, PKG-DANMUKU-09, SITE-DANMUKU-01, PKG-DANMUKU-10, PKG-DANMUKU-11, PKG-DANMUKU-12, PKG-DANMUKU-MASK-LOAD-01 | | artplayer-plugin-danmuku-mask | 1.1.0 | PKG-MASK-01, PKG-MASK-02, PKG-MASK-03, PKG-MASK-04, PKG-MASK-05, PKG-MASK-06, ENG-LINT-01, PKG-DANMUKU-MASK-LOAD-01 | -| artplayer-plugin-dash-control | 1.1.0 | PKG-DASH-01, PKG-DASH-02, PKG-DASH-03, PKG-DASH-04, PKG-DASH-SEEK-01, PKG-DASH-MENU-01, PKG-DASH-05, PKG-DASH-06, PKG-DASH-CLEANUP-01 | +| artplayer-plugin-dash-control | 1.1.0 | PKG-DASH-01, PKG-DASH-02, PKG-DASH-03, PKG-DASH-04, PKG-DASH-SEEK-01, PKG-DASH-MENU-01, PKG-DASH-05, PKG-DASH-06, SITE-DASH-01, PKG-DASH-CLEANUP-01 | | artplayer-plugin-document-pip | 1.1.0 | PKG-DPIP-01, PKG-DPIP-02, PKG-DPIP-03, PKG-DPIP-04, PKG-DPIP-05, PKG-DPIP-06 | | artplayer-plugin-hls-control | 1.1.0 | PKG-HLS-01, PKG-HLS-02, PKG-HLS-03, PKG-HLS-04, PKG-HLS-SDK-01, PKG-HLS-05, PKG-HLS-06, SITE-HLS-01, PKG-HLS-PACK-01 | | artplayer-plugin-jassub | 1.1.0 | PKG-JASSUB-01, PKG-JASSUB-02, PKG-JASSUB-03, PKG-JASSUB-04, PKG-JASSUB-05, PKG-JASSUB-06, PKG-JASSUB-07, PKG-JASSUB-08, PKG-JASSUB-09, PKG-JASSUB-10 | @@ -35,7 +35,7 @@ | artplayer-proxy-mediabunny | 1.2.0 | PKG-MB-01, PKG-MB-02, PKG-MB-03, PKG-MB-04, PKG-MB-05, PKG-MB-06, PKG-MB-07, PKG-MB-08, PKG-MB-09, PKG-MB-10 | | artplayer-tool-iframe | 1.1.0 | PKG-IFRAME-01, PKG-IFRAME-02, PKG-IFRAME-03, PKG-IFRAME-04, PKG-IFRAME-05, PKG-IFRAME-06 | | artplayer-tool-thumbnail | 4.4.0 | PKG-TOOL-THUMB-01, PKG-TOOL-THUMB-02, PKG-TOOL-THUMB-03, PKG-TOOL-THUMB-04, PKG-TOOL-THUMB-05, PKG-TOOL-THUMB-06, PKG-TOOL-THUMB-07 | -| artplayer-vitepress | 1.1.0 | SITE-01, SITE-SMOKE-01, SITE-02, SITE-LOAD-01, SITE-AI-DOCS-01, SITE-BUILD-01, SITE-03, SITE-DANMUKU-01, SITE-HLS-01, SITE-04, SITE-05, SITE-06, SITE-07, SITE-VCONSOLE-01, ENG-LINT-02, SITE-CONSOLE-01 | +| artplayer-vitepress | 1.1.0 | SITE-01, SITE-SMOKE-01, SITE-02, SITE-LOAD-01, SITE-AI-DOCS-01, SITE-BUILD-01, SITE-03, SITE-DANMUKU-01, SITE-HLS-01, SITE-DASH-01, SITE-04, SITE-05, SITE-06, SITE-07, SITE-VCONSOLE-01, ENG-LINT-02, SITE-CONSOLE-01 | ## 0 规划 @@ -408,7 +408,7 @@ | SITE-BUILD-01 | artplayer, artplayer-vitepress, workspace
重构 i18n 与文档构建的暂存、替换和 Yarn 编排 | SITE-AI-DOCS-01 | 严格 TS 构建模块、编译后替换产物与失败回退,固定 Yarn 子进程和旧构建入口 | 旧 i18n 删除后失败有复现;失败不改变既有产物;语言集合、UMD/ESM/历史别名兼容;文档子进程退出码准确并完成真实 VitePress 构建;不隐式翻译、不修改播放器 API | M | done | | SITE-03 | artplayer-vitepress
整理 i18n/文档/LLM 生成流程 | SITE-02, SITE-LOAD-01, SITE-AI-DOCS-01, SITE-BUILD-01 | build-i18n/build-docs/build-llm/trans-docs 的任务边界和错误处理;桌面 common.js 自有 UI 的 TS 迁移与模块拆分 | 原命令兼容、生成可复现,翻译步骤不隐式运行远程服务;覆盖移动 loader 失败恢复 define、脚本依赖顺序、localhost/127.0.0.1 Run Code 目标和语言重定向;桌面剩余 UI 完成 TS 职责拆分并回归运行、导入与持久设置 | M | done | | SITE-DANMUKU-01 | artplayer-vitepress, artplayer-plugin-danmuku
核对弹幕双语指南并补齐英文入口 | SITE-03, PKG-DANMUKU-07 | 按实现修正中文调用说明,新增英文完整选项/API/热力图/类型指南和导航;同步生成站点与LLM资料,新增双语示例浏览器验收 | 旧中文URL和标题保留;实际方法返回、加载语义、回调与points边界准确;双语页面、Run Code及示例实测,完整插件组合和设备验收不冒充完成 | L | done | -| SITE-04 | artplayer-vitepress
交叉核对逐包持续维护的文档 | CORE-21, SITE-03, PKG-CHAPTER-04, PKG-AMBILIGHT-04, PKG-AUDIO-04, PKG-AUTO-THUMB-04, PKG-VTT-THUMB-04, PKG-HLS-04, PKG-DASH-04, PKG-MULTI-SUB-04, PKG-JASSUB-04, PKG-MASK-04, PKG-ASR-04, PKG-ADS-04, PKG-VAST-04, PKG-CAST-04, PKG-DPIP-04, PKG-CANVAS-04, PKG-IFRAME-04, PKG-TOOL-THUMB-04, PKG-DANMUKU-06, PKG-MB-08, SITE-DANMUKU-01, SITE-HLS-01 | 已随实现更新的中文/英文 API、包内实现地图、旧 JS 示例及已知能力限制的全包核对 | 未把缺环境的能力写成已验证,静态核对不等待设备任务;最终 demo 仍由 EX-03 验收;按 SITE-01 声明成员/候选标题清单逐项语义核对,补齐缺失的双语插件说明和 Danmuku 英文入口 | M | todo | +| SITE-04 | artplayer-vitepress
交叉核对逐包持续维护的文档 | CORE-21, SITE-03, PKG-CHAPTER-04, PKG-AMBILIGHT-04, PKG-AUDIO-04, PKG-AUTO-THUMB-04, PKG-VTT-THUMB-04, PKG-HLS-04, PKG-DASH-04, PKG-MULTI-SUB-04, PKG-JASSUB-04, PKG-MASK-04, PKG-ASR-04, PKG-ADS-04, PKG-VAST-04, PKG-CAST-04, PKG-DPIP-04, PKG-CANVAS-04, PKG-IFRAME-04, PKG-TOOL-THUMB-04, PKG-DANMUKU-06, PKG-MB-08, SITE-DANMUKU-01, SITE-HLS-01, SITE-DASH-01 | 已随实现更新的中文/英文 API、包内实现地图、旧 JS 示例及已知能力限制的全包核对 | 未把缺环境的能力写成已验证,静态核对不等待设备任务;最终 demo 仍由 EX-03 验收;按 SITE-01 声明成员/候选标题清单逐项语义核对,补齐缺失的双语插件说明和 Danmuku 英文入口 | M | todo | | SITE-05 | artplayer-vitepress
构建文档站和验证链接/示例 | SITE-04, EX-01, EX-02, SITE-07, SITE-VCONSOLE-01, SITE-CONSOLE-01 | VitePress 构建、链接与嵌入 demo 检查 | 文档构建、链接、嵌入路径与声明注入通过;真实完整 demo 保留 EX-03 独立门槛;核对 ENG-PM-01 登记的搜索 peer 范围和真实搜索行为 | M | todo | | SITE-06 | artplayer-vitepress
文档站交付验收 | SITE-05 | 维护指南和站点变更记录 | 未手改 generated 目录,旧 URL 可用、部署与检查分离 | M | todo | | SITE-07 | artplayer-vitepress, workspace
整理站点第三方资产与来源说明 | SITE-01 | Monaco/vConsole/console bundle/字体和样本的冻结来源、可复现构建或替代与站点 notices | 接续 SITE-01 的字节与换行差异证据;完整许可随实际分发,consoleLog/global/CSS/worker 与旧 URL 兼容;缺字体/媒体使用依据明确处置;资产变更后执行编辑器/移动/字幕/示例回归,不以来源指纹替代授权或运行证据 | H | doing | @@ -423,6 +423,7 @@ | ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 | | --- | --- | --- | --- | --- | --- | --- | | SITE-HLS-01 | artplayer-plugin-hls-control, artplayer-vitepress
补齐HLS双语指南并修复示例SDK生命周期 | SITE-03, PKG-HLS-04 | 双语HLS配置/类型/刷新/所有权指南,原示例换源清理和原生回退修复,生成站点与证据 | 同源示例回归复现旧问题并通过,真实SDK播放/换源/销毁与文档导航验证,保留HLS原生异常和设备门槛 | M | done | +| SITE-DASH-01 | artplayer-plugin-dash-control, artplayer-vitepress
补齐DASH双语指南并修复示例SDK生命周期 | SITE-03, PKG-DASH-04 | 双语DASH配置/SDK适配/刷新/类型指南,原示例换源清理与空语言回退,生成站点和证据 | 旧示例回归复现并修复,新旧核心与两代真实SDK播放/换源/清理及双语导航验证,保留设备/完整矩阵门槛 | M | done | ## 7 工具链与性能 @@ -668,6 +669,7 @@ - SITE-03: [记录](changes/2026-09-14-SITE-03-desktop-editor.md) [记录](baselines/site-editor-validation.json) - SITE-DANMUKU-01: [记录](changes/2026-09-15-SITE-DANMUKU-01-guides.md) [记录](baselines/danmuku-docs-validation.json) - SITE-HLS-01: [记录](changes/2026-09-15-SITE-HLS-01-guides.md) [记录](baselines/hls-docs-validation.json) +- SITE-DASH-01: [记录](changes/2026-09-15-SITE-DASH-01-guides.md) [记录](baselines/dash-docs-validation.json) - SITE-07: [记录](site-inventory.md) [记录](baselines/site-provenance.json) [记录](changes/2026-09-14-SITE-07-vendor-notices.md) [记录](baselines/site-notices-checkpoint.json) [记录](baselines/site-codicons-provenance.json) [记录](baselines/site-codicons-validation.json) [记录](changes/2026-09-15-SITE-07-codicons.md) [记录](baselines/vconsole-notices-provenance.json) [记录](baselines/vconsole-notices-validation.json) [记录](changes/2026-09-15-SITE-07-vconsole-notices.md) [记录](console-modernization.md) [记录](baselines/site-console-inventory.json) [记录](baselines/site-console-validation.json) [记录](changes/2026-09-15-SITE-07-console-baseline.md) [记录](baselines/console-feed-provenance.json) [记录](changes/2026-09-15-SITE-07-console-feed-source.md) [记录](baselines/console-commonjs-provenance.json) [记录](changes/2026-09-15-SITE-07-console-commonjs.md) [记录](baselines/console-esm-provenance.json) [记录](changes/2026-09-15-SITE-07-console-esm.md) [记录](baselines/console-embedded-notices.json) [记录](baselines/console-notices-validation.json) [记录](changes/2026-09-15-SITE-07-console-notices.md) [记录](baselines/console-embedded-sources.json) [记录](baselines/console-embedded-validation.json) [记录](changes/2026-09-15-SITE-07-console-embedded-sources.md) [记录](baselines/console-derived-attribution.json) [记录](baselines/console-derived-validation.json) [记录](changes/2026-09-15-SITE-07-console-derived-attribution.md) [记录](baselines/console-stackoverflow-provenance.json) [记录](baselines/console-stackoverflow-validation.json) [记录](changes/2026-09-15-SITE-07-console-stackoverflow.md) [记录](baselines/console-shallowequal-validation.json) [记录](changes/2026-09-15-SITE-07-console-shallowequal.md) [记录](console-notice-review.md) [记录](baselines/console-notice-review-validation.json) [记录](changes/2026-09-15-SITE-07-console-notice-review.md) [记录](baselines/monaco-typescript-provenance.json) [记录](baselines/monaco-typescript-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-typescript.md) [记录](baselines/monaco-languages-provenance.json) [记录](baselines/monaco-languages-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-languages.md) [记录](baselines/monaco-language-notices.json) [记录](baselines/monaco-language-notices-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-language-notices.md) [记录](baselines/monaco-modes-provenance.json) [记录](baselines/monaco-modes-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-modes.md) [记录](baselines/monaco-basic-provenance.json) [记录](baselines/monaco-basic-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-basic.md) [记录](baselines/monaco-core-origins-provenance.json) [记录](baselines/monaco-core-origins-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-core-origins.md) [记录](baselines/monaco-core-build-provenance.json) [记录](baselines/monaco-core-build-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-core-build.md) [记录](baselines/monaco-contributions-provenance.json) [记录](baselines/monaco-contributions-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-contributions.md) [记录](baselines/monaco-css-build-provenance.json) [记录](baselines/monaco-css-build-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-css.md) [记录](baselines/monaco-node-path-provenance.json) [记录](baselines/monaco-node-path-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-node-path.md) [记录](changes/2026-09-15-SITE-07-monaco-dom.md) [记录](baselines/monaco-dom-origins-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-unicode.md) [记录](baselines/monaco-unicode-provenance.json) [记录](baselines/monaco-unicode-validation.json) - EX-01: [记录](changes/2026-09-14-EX-01-react-consumer.md) [记录](baselines/react-consumer-validation.json) [记录](scripts/react-consumer.mjs) - EX-02: [记录](changes/2026-09-14-EX-02-vue-consumer.md) [记录](baselines/vue-consumer-validation.json) [记录](scripts/vue-consumer.mjs) diff --git a/refactor/progress.md b/refactor/progress.md index 90bc1eb4f..3f26d2d6d 100644 --- a/refactor/progress.md +++ b/refactor/progress.md @@ -1,5 +1,21 @@ # 进度与证据 +## SITE-DASH-01 双语指南与示例修复 + +原DASH示例三项回归均失败:换源累积destroy监听器、不支持MSE仍创建控制插件、 +音轨lang为null时抛错。修正为局部SDK所有权与单个最终监听器、固定能力分支和 +字符串标签回退,三项回归通过;SDK默认设置和插件API不变。 + +新增双语指南和侧栏,解释两代SDK选择键、回调、同步update、事件刷新和所有权。 +两页完整示例与原demo逐字一致。真实SDK播放/换源清理8项、不支持路径4项、 +导航6项一次全部通过;Node/文档工具20、站点测试7、两份严格TS片段和lint通过。 +8082内置浏览器观察到新代码、视频12:14和画质/音轨菜单,只计页面加载。 +见[记录](changes/2026-09-15-SITE-DASH-01-guides.md)与[证据](baselines/dash-docs-validation.json)。 + +SITE-DASH-01完成、DASH-EXAMPLE-01关闭;原完整SDK/设备/发布任务保持未完成。 +站点32 Markdown/41 HTML,中英各16页;209 done、21 doing、43 todo,总273。 +没有插件生产源码/公开类型/版本/锁文件修改;无推送、部署或发布。 + ## SITE-HLS-01 双语指南与示例修复 原HLS示例已复现换源累积destroy监听器及原生回退误装SDK插件,回归2失败/1通过。 diff --git a/refactor/risk-table.md b/refactor/risk-table.md index dce411ac1..314932410 100644 --- a/refactor/risk-table.md +++ b/refactor/risk-table.md @@ -284,3 +284,4 @@ | THUMB-CLEANUP-01 | resolved / 已复现 | Thumbnail 清理吞掉 falsy 监听器异常或覆盖第一个异常值 | PKG-TOOL-THUMB-07, PKG-TOOL-THUMB-04 | | DASH-CLEANUP-01 | resolved / 已复现 | DASH 菜单和 SDK 清理吞掉 falsy 异常或丢失首个错误 | PKG-DASH-CLEANUP-01, PKG-DASH-05 | | HLS-EXAMPLE-01 | resolved / 已复现 | HLS示例换源累积销毁监听器且原生回退仍安装SDK控制插件 | SITE-HLS-01, EX-03 | +| DASH-EXAMPLE-01 | resolved / 已复现 | DASH示例重复销毁SDK、无MSE仍注册插件且空语言回调抛错 | SITE-DASH-01, EX-03 | diff --git a/refactor/risks.json b/refactor/risks.json index 1a8ea54ee..853bb7f02 100644 --- a/refactor/risks.json +++ b/refactor/risks.json @@ -6685,6 +6685,31 @@ "refactor/baselines/hls-docs-validation.json" ], "resolutionRationale": "Actual demo code is used by regression and both runnable guides. Each replaced/final SDK is destroyed once; when Hls.js is unsupported no incompatible control plugin is installed. Local 8082 connected-browser readiness also observed. Separate Firefox native crashes, grouped playback stall and device acceptance remain open." + }, + { + "id": "DASH-EXAMPLE-01", + "title": "DASH示例重复销毁SDK、无MSE仍注册插件且空语言回调抛错", + "confirmation": "reproduced", + "status": "resolved", + "owners": [ + "SITE-DASH-01", + "EX-03" + ], + "evidence": [ + "docs/assets/example/dash.control.js", + "test/dash-example.test.js", + "test/browser/document-dash.spec.js", + "refactor/changes/2026-09-15-SITE-DASH-01-guides.md", + "refactor/baselines/dash-docs-validation.json" + ], + "compatibleResolution": "示例使用局部SDK所有权、单个最终清理监听器和固定能力分支;音轨语言为空时保留0值并转为字符串ID/Audio回退。插件API和SDK默认初始化设置不变。", + "closureCriteria": "旧示例回归复现,修复后每实例一次销毁、不支持路径与空语言标签正确,真实SDK两代和新旧核心播放/换源/清理有证据;设备/完整矩阵不因此完成。", + "workspaceState": "Old demo 3 fail; corrected example regression 3 pass. Browser: eight actual SDK playback/replacement, four unsupported WebKit setup, six bilingual navigation cases pass. Connected local example metadata/menus observed.", + "resolutionEvidence": [ + "refactor/changes/2026-09-15-SITE-DASH-01-guides.md", + "refactor/baselines/dash-docs-validation.json" + ], + "resolutionRationale": "Tests execute the actual example and both guides enforce byte-equivalent code. Replaced and final SDKs each receive one destroy call, unsupported setup creates no SDK or plugin, nullable language formatting retains existing language labels and numeric ID zero. This closes the example defects only; complete package/device/DRM acceptance remains separate." } ] } diff --git a/refactor/tasks.json b/refactor/tasks.json index 6258add46..8f9dec963 100644 --- a/refactor/tasks.json +++ b/refactor/tasks.json @@ -4458,6 +4458,27 @@ "baselines/hls-docs-validation.json" ] }, + { + "id": "SITE-DASH-01", + "phase": "6 文档和示例", + "title": "补齐DASH双语指南并修复示例SDK生命周期", + "scope": [ + "artplayer-plugin-dash-control", + "artplayer-vitepress" + ], + "dependsOn": [ + "SITE-03", + "PKG-DASH-04" + ], + "status": "done", + "risk": "M", + "deliverable": "双语DASH配置/SDK适配/刷新/类型指南,原示例换源清理与空语言回退,生成站点和证据", + "acceptance": "旧示例回归复现并修复,新旧核心与两代真实SDK播放/换源/清理及双语导航验证,保留设备/完整矩阵门槛", + "evidence": [ + "changes/2026-09-15-SITE-DASH-01-guides.md", + "baselines/dash-docs-validation.json" + ] + }, { "id": "SITE-04", "phase": "6 文档与消费者", @@ -4489,7 +4510,8 @@ "PKG-DANMUKU-06", "PKG-MB-08", "SITE-DANMUKU-01", - "SITE-HLS-01" + "SITE-HLS-01", + "SITE-DASH-01" ], "status": "todo", "risk": "M", diff --git a/test/browser/README.md b/test/browser/README.md index 203b8b485..af3c958d4 100644 --- a/test/browser/README.md +++ b/test/browser/README.md @@ -489,3 +489,14 @@ replacement and one destroy call per SDK are asserted. Windows WebKit exercises unsupported setup/notice/cleanup. Worker configuration stays enabled, but this suite does not observe worker output or establish native-HLS playback. The separate `document-site.spec.js` checks both guide links and Run Code library/source parameters. + +## DASH documentation examples + +`document-dash.spec.js` requires both guide snippets to match the actual +`docs/assets/example/dash.control.js`. That shared source runs once per frozen +dash.js 4.5.2/5.2.1, published/candidate core and browser combination. Local MPD +media is hash-checked; initial/replacement playback and one SDK destroy per instance +are asserted with the original SDK initialization settings. WebKit without MSE +checks only unsupported setup/notice/cleanup. `document-site.spec.js` also verifies +the two guide links and Run Code libraries/source; full SDK/device acceptance stays +separate. Unit nullable-language and repeated-cleanup cases run via test:unit. diff --git a/test/browser/document-dash.spec.js b/test/browser/document-dash.spec.js new file mode 100644 index 000000000..604dc67f0 --- /dev/null +++ b/test/browser/document-dash.spec.js @@ -0,0 +1,97 @@ +import assert from 'node:assert/strict' +import fs from 'node:fs' +import { ensureArchive, hash, readMember } from '../../refactor/scripts/releases.mjs' +import { extractExamples } from '../../scripts/docs-smoke/parser.ts' +import { expect, test } from './fixtures.js' + +const matrix = JSON.parse(fs.readFileSync('refactor/baselines/dash-sdk.json')).sdks +const plugin = fs.readFileSync('packages/artplayer-plugin-dash-control/dist/artplayer-plugin-dash-control.js') +const exampleSource = fs.readFileSync('docs/assets/example/dash.control.js', 'utf8').trim() +const documents = ['plugin/dash-control.md', 'en/plugin/dash-control.md'] +for (const document of documents) { + const examples = extractExamples(fs.readFileSync(`packages/artplayer-vitepress/docs/${document}`, 'utf8'), document) + assert.equal(examples.length, 1) + assert.equal(examples[0].code, exampleSource, 'Both documented examples must match the actual demo') +} +const media = new Map() +const sdks = new Map() + +test.beforeAll(async () => { + for (const sdk of matrix) { + const bytes = readMember(await ensureArchive(sdk.release), sdk.codeMember) + assert.equal(hash(bytes), sdk.release.files[sdk.codeMember]) + sdks.set(sdk.release.version, bytes) + } + const manifest = JSON.parse(fs.readFileSync('test/browser/media/dash/manifest.json')) + for (const [name, expected] of Object.entries(manifest.files)) { + const bytes = fs.readFileSync(`test/browser/media/dash/${name}`) + assert.equal(hash(bytes), expected.sha256) + media.set(name, bytes) + } +}) + +for (const sdk of matrix) { + for (const core of ['published', 'candidate']) { + test(`documented DASH setup and source lifecycle: SDK ${sdk.release.version}, ${core} core`, async ({ page }, testInfo) => { + await page.route('https://media.axprod.net/TestVectors/v7-Clear/**', async (route) => { + const filename = new URL(route.request().url()).pathname.split('/').at(-1) + const name = filename === 'Manifest_1080p.mpd' ? 'master.mpd' : filename + const bytes = media.get(name) + await route.fulfill({ status: bytes ? 200 : 404, body: bytes || 'Missing DASH fixture', contentType: name.endsWith('.mpd') ? 'application/dash+xml' : 'video/mp4', headers: { 'Access-Control-Allow-Origin': '*' } }) + }) + await page.goto(`/test/player.html?core=${core}`) + await page.addScriptTag({ content: sdks.get(sdk.release.version).toString() }) + await page.addScriptTag({ content: plugin.toString() }) + await page.evaluate(() => { + document.querySelector('.player').classList.add('artplayer-app') + window.exampleEngines = [] + const mediaPlayer = window.dashjs.MediaPlayer + window.dashjs.MediaPlayer = Object.assign(function (...args) { + const factory = mediaPlayer.apply(this, args) + const create = factory.create + factory.create = function (...args) { + const engine = create.apply(this, args) + const entry = { engine, destroyed: 0 } + window.exampleEngines.push(entry) + const destroy = engine.destroy + engine.destroy = function (...args) { + entry.destroyed++ + return destroy.apply(this, args) + } + return engine + } + return factory + }, mediaPlayer) + }) + await page.addScriptTag({ content: `${exampleSource}\nwindow.art = art;` }) + const supported = await page.evaluate(() => window.dashjs.supportsMediaSource()) + await testInfo.attach('documented-dash-inputs', { contentType: 'application/json', body: JSON.stringify({ documents, core, sdk, sdkSHA256: hash(sdks.get(sdk.release.version)), pluginSHA256: hash(plugin), sourceSHA256: hash(exampleSource), supported, scope: supported ? 'real SDK with original settings, local routed MPD, playback and replacement cleanup' : 'actual unsupported setup only' }) }) + if (!supported) { + expect(await page.evaluate(() => window.exampleEngines.length)).toBe(0) + expect(await page.evaluate(() => Boolean(window.art.plugins.artplayerPluginDashControl))).toBe(false) + await expect(page.locator('.art-notice')).toContainText('Unsupported playback format: mpd') + await page.evaluate(() => window.art.destroy()) + return + } + await expect.poll(() => page.evaluate(() => window.art.video.readyState >= 2)).toBe(true) + expect(await page.evaluate(() => window.art.dash.getVersion())).toBe(sdk.release.version) + await page.evaluate(() => { + window.art.muted = true + }) + await page.evaluate(() => window.art.play()) + await expect.poll(() => page.evaluate(() => window.art.currentTime)).toBeGreaterThan(0.3) + expect(await page.evaluate(() => window.art.video.getVideoPlaybackQuality().totalVideoFrames)).toBeGreaterThan(2) + await expect(page.locator('.art-control-dash-quality')).toBeVisible() + await expect(page.locator('.art-control-dash-audio')).toBeVisible() + await page.evaluate(() => window.art.switchUrl(`${window.art.option.url}?reload=1`)) + await expect.poll(() => page.evaluate(() => window.art.video.readyState >= 2)).toBe(true) + await page.evaluate(() => window.art.play()) + const start = await page.evaluate(() => ({ time: window.art.currentTime, frames: window.art.video.getVideoPlaybackQuality().totalVideoFrames })) + await expect.poll(() => page.evaluate(start => window.art.currentTime > start.time + 0.3 && window.art.video.getVideoPlaybackQuality().totalVideoFrames > start.frames + 2, start)).toBe(true) + expect(await page.evaluate(() => window.exampleEngines.map(item => item.destroyed))).toEqual([1, 0]) + await page.evaluate(() => window.art.destroy()) + expect(await page.evaluate(() => window.exampleEngines.map(item => item.destroyed))).toEqual([1, 1]) + expect(await page.locator('.player').evaluate(element => element.childElementCount)).toBe(0) + }) + } +} diff --git a/test/browser/document-site.spec.js b/test/browser/document-site.spec.js index d7a6db0f5..e99632fd9 100644 --- a/test/browser/document-site.spec.js +++ b/test/browser/document-site.spec.js @@ -75,5 +75,19 @@ for (const language of ['zh', 'en']) { expect(hlsTarget.searchParams.get('code')).toContain('art.on(\'destroy\', destroyHls)') expect(failedAssets).toEqual([]) await hlsExample.close() + await page.locator(`.VPSidebar a[href="${prefix}/plugin/dash-control.html"]`).click() + await expect(page.locator('h1')).toContainText(language === 'en' ? 'DASH Control' : 'DASH 控制') + const dashPopup = context.waitForEvent('page') + await page.locator('.run-code, [classname="run-code"]').first().click() + const dashExample = await dashPopup + await dashExample.waitForLoadState('domcontentloaded') + const dashTarget = new URL(dashExample.url()) + expect(dashTarget.searchParams.get('libs').split('\n')).toEqual([ + 'https://cdnjs.cloudflare.com/ajax/libs/dashjs/5.2.1/modern/umd/dash.all.min.js', + './uncompiled/artplayer-plugin-dash-control/index.js', + ]) + expect(dashTarget.searchParams.get('code')).toContain('art.on(\'destroy\', destroyDash)') + expect(failedAssets).toEqual([]) + await dashExample.close() }) } diff --git a/test/dash-example.test.js b/test/dash-example.test.js new file mode 100644 index 000000000..c2a48db7c --- /dev/null +++ b/test/dash-example.test.js @@ -0,0 +1,79 @@ +import assert from 'node:assert/strict' +import fs from 'node:fs' +// eslint-disable-next-line test/no-import-node-test -- Execute the actual public example with a controlled SDK lifecycle. +import { test } from 'node:test' +import { runInNewContext } from 'node:vm' + +const source = fs.readFileSync(new URL('../docs/assets/example/dash.control.js', import.meta.url), 'utf8') + +function loadExample(supported) { + const engines = [] + const hooks = [] + const pluginOptions = [] + const dashjs = { + supportsMediaSource: () => supported, + MediaPlayer: () => ({ create() { + const engine = { + destroyed: 0, + initialize(video, url, autoplay) { + Object.assign(this, { video, url, autoplay }) + }, + destroy() { this.destroyed++ }, + } + engines.push(engine) + return engine + } }), + } + class Artplayer { + constructor(option) { + this.option = { autoplay: false, ...option } + this.notice = {} + } + + on(event, callback) { hooks.push({ event, callback }) } + } + const sandbox = { Artplayer, dashjs, artplayerPluginDashControl: (option) => { + pluginOptions.push(option) + return () => ({}) + } } + runInNewContext(`${source}\nglobalThis.exampleArt = art`, sandbox) + const art = sandbox.exampleArt + const video = {} + return { art, engines, hooks, pluginOptions, video, load: url => art.option.customType.mpd(video, url, art) } +} + +test('DASH example releases replaced engines once and has one final cleanup hook', () => { + const example = loadExample(true) + for (const url of ['first.mpd', 'second.mpd', 'third.mpd']) + example.load(url) + assert.equal(example.art.dash, example.engines[2]) + assert.equal(example.art.dash.video, example.video) + assert.equal(example.art.dash.autoplay, false) + assert.deepEqual(example.engines.map(engine => engine.destroyed), [1, 1, 0]) + const hooks = example.hooks.filter(hook => hook.event === 'destroy') + assert.equal(hooks.length, 1) + for (const hook of hooks) { + hook.callback() + hook.callback() + } + assert.deepEqual(example.engines.map(engine => engine.destroyed), [1, 1, 1]) +}) + +test('unsupported DASH creates no SDK or SDK-dependent control plugin', () => { + const example = loadExample(false) + example.load('unsupported.mpd') + assert.equal(example.art.notice.show, 'Unsupported playback format: mpd') + assert.equal(example.engines.length, 0) + assert.equal(example.art.option.plugins.length, 0) + assert.equal(example.pluginOptions.length, 0) + for (const hook of example.hooks.filter(hook => hook.event === 'destroy')) + hook.callback() +}) + +test('DASH audio formatter handles actual SDK nullable metadata and preserves language labels', () => { + const format = loadExample(true).pluginOptions[0].audio.getName + assert.equal(format({ lang: 'en', id: 0 }), 'EN') + assert.equal(format({ lang: null, id: 0 }), '0') + assert.equal(format({ id: 'commentary' }), 'commentary') + assert.equal(format({ lang: null, id: null }), 'Audio') +})