From 4ea0ba94ae51d14d353bc57a3222a8c19b11ac66 Mon Sep 17 00:00:00 2001 From: Harvey Zhao Date: Tue, 15 Sep 2026 17:55:11 +0800 Subject: [PATCH] docs(hls): [SITE-HLS-01] add bilingual guides and fix example SDK ownership --- docs/assets/example/hls.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.CUpGwB5x.js => app.C4kTwhag.js} | 2 +- .../{theme.DllzBSR9.js => theme.2Kq8jVhZ.js} | 2 +- .../chunks/virtual_search-data.BMtqzJwt.js | 1414 +++++++++++ .../chunks/virtual_search-data.CLDmFAmC.js | 1407 ----------- ...K5.js => en_plugin_danmuku.md.BA2ZgDal.js} | 2 +- ... => en_plugin_danmuku.md.BA2ZgDal.lean.js} | 2 +- .../en_plugin_hls-control.md.0CaKxnLg.js | 85 + .../en_plugin_hls-control.md.0CaKxnLg.lean.js | 2 + ...hMRyB.js => plugin_danmuku.md.NvAEp3Xn.js} | 2 +- ....js => plugin_danmuku.md.NvAEp3Xn.lean.js} | 2 +- .../assets/plugin_hls-control.md.G4-jWSB9.js | 85 + .../plugin_hls-control.md.G4-jWSB9.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 | 12 +- docs/document/en/plugin/hls-control.html | 114 + 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 | 12 +- docs/document/plugin/hls-control.html | 114 + docs/document/start/i18n.html | 8 +- docs/document/start/option.html | 8 +- docs/llms.manifest.json | 8 +- docs/llms.txt | 245 +- package.json | 2 +- .../ARCHITECTURE.md | 18 + .../artplayer-plugin-hls-control/README.md | 5 + packages/artplayer-vitepress/README.md | 12 +- .../docs/.vitepress/config.js | 4 +- .../docs/en/plugin/hls-control.md | 165 ++ .../docs/plugin/hls-control.md | 165 ++ .../artplayer-vitepress/docs/public/main.js | 2 +- refactor/baselines/hls-docs-validation.json | 2185 +++++++++++++++++ refactor/baselines/site-inventory.json | 253 +- .../changes/2026-09-15-SITE-HLS-01-guides.md | 93 + refactor/plan.md | 17 +- refactor/progress.md | 17 + refactor/risk-table.md | 1 + refactor/risks.json | 25 + refactor/tasks.json | 24 +- test/browser/README.md | 11 + test/browser/document-hls.spec.js | 91 + test/browser/document-site.spec.js | 14 + test/hls-example.test.js | 77 + 68 files changed, 5308 insertions(+), 1677 deletions(-) rename docs/document/assets/{app.CUpGwB5x.js => app.C4kTwhag.js} (95%) rename docs/document/assets/chunks/{theme.DllzBSR9.js => theme.2Kq8jVhZ.js} (99%) create mode 100644 docs/document/assets/chunks/virtual_search-data.BMtqzJwt.js delete mode 100644 docs/document/assets/chunks/virtual_search-data.CLDmFAmC.js rename docs/document/assets/{en_plugin_danmuku.md.DqSk_DK5.js => en_plugin_danmuku.md.BA2ZgDal.js} (99%) rename docs/document/assets/{en_plugin_danmuku.md.DqSk_DK5.lean.js => en_plugin_danmuku.md.BA2ZgDal.lean.js} (86%) create mode 100644 docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.js create mode 100644 docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.lean.js rename docs/document/assets/{plugin_danmuku.md.gN3hMRyB.js => plugin_danmuku.md.NvAEp3Xn.js} (99%) rename docs/document/assets/{plugin_danmuku.md.gN3hMRyB.lean.js => plugin_danmuku.md.NvAEp3Xn.lean.js} (93%) create mode 100644 docs/document/assets/plugin_hls-control.md.G4-jWSB9.js create mode 100644 docs/document/assets/plugin_hls-control.md.G4-jWSB9.lean.js create mode 100644 docs/document/en/plugin/hls-control.html create mode 100644 docs/document/plugin/hls-control.html create mode 100644 packages/artplayer-vitepress/docs/en/plugin/hls-control.md create mode 100644 packages/artplayer-vitepress/docs/plugin/hls-control.md create mode 100644 refactor/baselines/hls-docs-validation.json create mode 100644 refactor/changes/2026-09-15-SITE-HLS-01-guides.md create mode 100644 test/browser/document-hls.spec.js create mode 100644 test/hls-example.test.js diff --git a/docs/assets/example/hls.control.js b/docs/assets/example/hls.control.js index f20742174..fd59d48d7 100644 --- a/docs/assets/example/hls.control.js +++ b/docs/assets/example/hls.control.js @@ -4,46 +4,56 @@ // import Hls from 'hls.js'; // import artplayerPluginHlsControl from 'artplayer-plugin-hls-control'; +const useHls = Hls.isSupported() +let hls + +function destroyHls() { + const previous = hls + hls = undefined + if (previous) + previous.destroy() +} + const art = new Artplayer({ container: '.artplayer-app', url: 'https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/index.m3u8', setting: true, - plugins: [ - artplayerPluginHlsControl({ - 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.name, - // I18n - title: 'Audio', - auto: 'Auto', - }, - }), - ], + plugins: useHls + ? [ + artplayerPluginHlsControl({ + 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.name || track.lang || 'Audio', + // I18n + title: 'Audio', + auto: 'Auto', + }, + }), + ] + : [], customType: { m3u8: function playM3u8(video, url, art) { - if (Hls.isSupported()) { - if (art.hls) - art.hls.destroy() - const hls = new Hls() + destroyHls() + if (useHls) { + hls = new Hls() + art.hls = hls hls.loadSource(url) hls.attachMedia(video) - art.hls = hls - art.on('destroy', () => hls.destroy()) } else if (video.canPlayType('application/vnd.apple.mpegurl')) { video.src = url @@ -54,3 +64,5 @@ const art = new Artplayer({ }, }, }) + +art.on('destroy', destroyHls) diff --git a/docs/document/404.html b/docs/document/404.html index fd6c4c2c6..b4f66d3cc 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 e8ff17a1f..7d3c609ee 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 e91e96df3..a398bf839 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 9ac73df64..d01c35e70 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 20abede52..4657ad478 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 bc565f62f..151631b9e 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 a7488d513..9f4a30d17 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.CUpGwB5x.js b/docs/document/assets/app.C4kTwhag.js similarity index 95% rename from docs/document/assets/app.CUpGwB5x.js rename to docs/document/assets/app.C4kTwhag.js index 77681affb..6e6a318ce 100644 --- a/docs/document/assets/app.CUpGwB5x.js +++ b/docs/document/assets/app.C4kTwhag.js @@ -1 +1 @@ -import{t as p}from"./chunks/theme.DllzBSR9.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.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}; diff --git a/docs/document/assets/chunks/theme.DllzBSR9.js b/docs/document/assets/chunks/theme.2Kq8jVhZ.js similarity index 99% rename from docs/document/assets/chunks/theme.DllzBSR9.js rename to docs/document/assets/chunks/theme.2Kq8jVhZ.js index 2a58b8d61..fe7ef4b21 100644 --- a/docs/document/assets/chunks/theme.DllzBSR9.js +++ b/docs/document/assets/chunks/theme.2Kq8jVhZ.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.CLDmFAmC.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.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}; diff --git a/docs/document/assets/chunks/virtual_search-data.BMtqzJwt.js b/docs/document/assets/chunks/virtual_search-data.BMtqzJwt.js new file mode 100644 index 000000000..afa25e98f --- /dev/null +++ b/docs/document/assets/chunks/virtual_search-data.BMtqzJwt.js @@ -0,0 +1,1414 @@ +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.CLDmFAmC.js b/docs/document/assets/chunks/virtual_search-data.CLDmFAmC.js deleted file mode 100644 index c5520c6bb..000000000 --- a/docs/document/assets/chunks/virtual_search-data.CLDmFAmC.js +++ /dev/null @@ -1,1407 +0,0 @@ -const e={map:'[{"高级属性":["0.0"],"option":["0.1","1.12","10.1","11.12","20.9","24.9","25.17"],"template":["0.2","10.2"],"events":["0.3","10.3","21.12"],"storage":["0.4","10.4"],"icons":["0.5","10.5","23.39","27.39"],"i18n":["0.6","10.6","23.43","27.43"],"notice":["0.7","3.4","10.7","13.4"],"layers":["0.8","10.8","18.0","23.29","27.29"],"controls":["0.9","10.9","17.0","23.32","27.32"],"contextmenu":["0.10","2.37","3.3","10.10","12.37","13.3","23.31","27.31"],"subtitle":["0.11","2.36","10.11","12.36","23.37","27.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","23.19","27.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","23.18","27.18"],"plugins":["0.17","10.17","23.35","27.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","25.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","23.44","27.44"],"aspectratio":["2.17","5.32","12.17","15.32","23.16","27.16"],"autoheight":["2.18","5.33","12.18","15.33"],"autosize":["2.19","5.27","12.19","15.27","23.11","27.11"],"flip":["2.20","3.30","5.30","12.20","13.30","15.30","23.14","27.14"],"fullscreen":["2.21","3.31","5.20","12.21","13.31","15.20","23.23","27.23"],"fullscreenerror":["2.22","12.22"],"fullscreenweb":["2.23","5.21","12.23","15.21","23.24","27.24"],"mini":["2.24","5.24","12.24","15.24"],"pip":["2.25","5.22","12.25","15.22","23.20","27.20"],"screenshot":["2.26","5.17","12.26","15.17","23.17","27.17"],"seek":["2.27","3.27","5.6","12.27","13.27","15.6"],"subtitleoffset":["2.28","5.47","12.28","15.47","23.25","27.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","23.9","27.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","23.7","27.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","25.15"],"forward":["5.7","15.7"],"backward":["5.8","15.8"],"url":["5.10","15.10","23.2","27.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","23.5","27.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","23.15","27.15"],"attr":["5.34","15.34"],"type":["5.35","15.35","23.40","27.40"],"theme":["5.36","15.36","23.6","27.6"],"airplay":["5.37","15.37","23.49","27.49"],"loaded":["5.38","15.38"],"loadedtime":["5.39","15.39"],"played":["5.40","15.40"],"proxy":["5.41","15.41","23.51","27.51"],"query":["5.42","15.42"],"cssvar":["5.44","15.44","23.50","27.50"],"quality":["5.45","15.45","23.33","27.33"],"thumbnails":["5.46","15.46","23.36","27.36"],"右键菜单":["6.0"],"配置":["6.1","7.1","8.1"],"创建":["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"],"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","22.3"],"removal":["17.4","18.4"],"updating":["17.5"],"settings":["19.0","23.30","27.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"],"cdn":["20.2","21.3","24.2","25.3"],"usage":["20.3"],"vue":["20.4","20.7","24.4","24.7"],"react":["20.5","20.8","24.5","24.8"],"typescript":["20.6","21.13","24.6","25.21"],"javascript":["20.10","24.10"],"legacy":["20.11"],"ecmascript":["20.12","24.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"],"language":["22.0"],"default":["22.1"],"importing":["22.2"],"modifying":["22.4"],"basic":["23.0"],"container":["23.1","27.1"],"id":["23.3","27.3"],"onready":["23.4","27.4"],"islive":["23.8","27.8"],"autoplay":["23.10","27.10"],"automini":["23.12","27.12"],"loop":["23.13","27.13"],"mutex":["23.21","27.21"],"backdrop":["23.22","27.22"],"miniprogressbar":["23.26","27.26"],"usessr":["23.27","27.27"],"playsinline":["23.28","27.28"],"highlight":["23.34","27.34"],"morevideoattr":["23.38","27.38"],"customtype":["23.41","27.41"],"lang":["23.42","27.42"],"gesture":["23.45","27.45"],"fastforward":["23.46","27.46"],"autoplayback":["23.47","27.47"],"autoorientation":["23.48","27.48"],"安装使用":["24.0"],"安装":["24.1","25.2"],"使用":["24.3"],"古老的浏览器":["24.11"],"自定义":["24.13"],"弹幕库":["25.0"],"演示":["25.1"],"弹幕结构":["25.4"],"全部选项":["25.5"],"生命周期":["25.6"],"使用弹幕数组":["25.7"],"使用弹幕":["25.8"],"使用异步返回":["25.9"],"hide":["25.10"],"ishide":["25.11"],"emit":["25.12"],"load":["25.14"],"mount":["25.16"],"事件":["25.18"],"isstop":["25.19"],"热力图":["25.20"],"语言设置":["26.0"],"默认语言":["26.1"],"导入语言":["26.2"],"新增语言":["26.3"],"修改语言":["26.4"],"基础选项":["27.0"]},{"0":["3.28","5.38","5.40","21.13","23.7","25.21","27.7"],"1":["24.11","25.5"],"3":["3.29","21.13","24.9","25.21"],"4":["3.29","26.3"],"5":["3.28","8.2","18.2","21.13","25.5","25.21"],"7":["8.3","18.3","23.7"],"9":["26.3"],"10":["25.5"],"15":["4.0"],"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":["25.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","23.2","23.29","23.30","25.7","25.10","25.11","25.15","27.2","27.29","27.30","27.31","27.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","23.2","23.29","23.30","25.7","25.11","25.15","27.2","27.29","27.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","23.2","23.29","25.7","25.11","27.2","27.29","27.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","23.1","27.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","25.8","25.10","27.4"],"removeeventlistener":["0.3","10.3"],"当使用以下方法来处理事件":["0.3"],"播放器销毁时也会自动销毁该事件":["0.3"],"管理播放器的本地存储":["0.4"],"name":["0.4","4.0","10.4","17.1","21.12","25.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","23.36","23.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","25.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"],"方法用于动态添加层":["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"],"属性设置和返回当前字幕地址":["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","23.2","23.5","23.37","23.40","23.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","23.2","23.29","24.1","24.2","24.3","24.4","24.5","25.2","25.3","25.7","25.11","27.2","27.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.2","22.4","24.4","24.5","24.7","24.8","24.10","24.11","25.5","26.2","26.3","26.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","23.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","23.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"],"设置面板的设置项的默认高度":["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","23.47"],"max":["3.11","3.14","13.11","13.14"],"自动回放功能的最大记录数":["3.11"],"min":["3.12","13.12"],"自动回放功能的最小记录时长":["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","23.1","23.2","23.3","23.4","23.5","23.6","23.7","23.8","23.9","23.10","23.11","23.12","23.13","23.14","23.15","23.16","23.17","23.18","23.19","23.20","23.21","23.22","23.23","23.24","23.25","23.26","23.27","23.28","23.29","23.30","23.31","23.32","23.33","23.34","23.35","23.36","23.37","23.38","23.39","23.40","23.41","23.42","23.43","23.44","23.45","23.46","23.47","23.48","23.49","23.50","23.51","27.1","27.2","27.3","27.4","27.5","27.6","27.7","27.8","27.9","27.10","27.11","27.12","27.13","27.14","27.15","27.16","27.17","27.18","27.19","27.20","27.21","27.22","27.23","27.24","27.25","27.26","27.27","27.28","27.29","27.30","27.31","27.32","27.33","27.34","27.35","27.36","27.37","27.38","27.39","27.40","27.41","27.42","27.43","27.44","27.45","27.46","27.47","27.48","27.49","27.50","27.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"],"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","22.2","26.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"],"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","27.33","27.34","27.36","27.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","23.4","23.51","27.4","27.51"],"myplugin":["4.0"],"art":["4.0","5.12","7.2","15.12","17.2","21.8","21.12","25.18","25.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","23.1","23.2","23.3","23.4","23.5","23.6","23.7","23.8","23.9","23.10","23.11","23.12","23.13","23.14","23.15","23.16","23.17","23.18","23.19","23.20","23.21","23.22","23.23","23.24","23.25","23.26","23.27","23.28","23.29","23.30","23.31","23.32","23.33","23.34","23.35","23.36","23.37","23.38","23.39","23.41","23.42","23.43","23.44","23.45","23.46","23.47","23.48","23.49","23.50","23.51","27.1","27.2","27.3","27.4","27.5","27.6","27.7","27.8","27.9","27.10","27.11","27.12","27.13","27.14","27.15","27.16","27.17","27.18","27.19","27.20","27.21","27.22","27.23","27.24","27.25","27.26","27.27","27.28","27.29","27.30","27.31","27.32","27.33","27.34","27.35","27.36","27.37","27.38","27.39","27.41","27.42","27.43","27.44","27.45","27.46","27.47","27.48","27.49","27.50","27.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","23.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","23.8","23.9","23.10","23.11","23.12","23.13","23.14","23.15","23.16","23.17","23.18","23.19","23.20","23.21","23.22","23.23","23.24","23.25","23.26","23.27","23.28","23.44","23.45","23.46","23.47","23.48","23.49","27.8","27.9","27.10","27.11","27.12","27.13","27.14","27.15","27.16","27.17","27.18","27.19","27.20","27.21","27.22","27.23","27.24","27.25","27.26","27.27","27.28","27.44","27.45","27.46","27.47","27.48","27.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","22.0","23.7","27.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","23.1","23.2","23.3","23.5","23.6","23.40","23.42","27.1","27.2","27.3","27.5","27.6","27.40","27.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","23.1","27.1"],"快捷返回播放器的":["5.43"],"动态获取或设置":["5.44"],"css":["5.44"],"变量":["5.44","24.10"],"array":["5.45","9.3","11.1","15.45","19.3","23.29","23.30","23.31","23.32","23.33","23.34","23.35","27.29","27.30","27.31","27.32","27.33","27.34","27.35"],"动态设置画质列表":["5.45"],"object":["5.46","15.46","21.5","23.36","23.37","23.38","23.39","23.41","23.43","23.50","27.36","27.37","27.38","27.39","27.41","27.43","27.50"],"类型":["6.1","7.1","8.1","9.2","9.3","9.5","9.6","27.34","27.36","27.37"],"描述":["6.1","7.1","8.1","9.2","9.3","9.5","9.6","27.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","22.3"],"artplayer":["7.2","17.2","20.4","20.5","20.11","20.12","22.2","23.1","24.5","24.11","24.12","26.2","26.4","27.1"],"container":["7.2","15.33","17.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","24.3","27.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.0","22.1","23.1","23.2","23.3","23.4","23.5","23.6","23.7","23.11","23.22","23.33","23.34","23.36","23.40","23.41","23.47","23.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","23.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"],"options":["10.1","21.5","23.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","22.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"],"it":["10.3","10.7","21.5","21.9","23.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"],"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","23.39","23.40","23.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","22.0","23.10","23.15","23.16","23.17","23.19","23.22","23.27","23.33","23.39","23.40","23.47","23.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","23.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","23.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","22.0"],"plugin":["10.17","14.0","21.8","21.10"],"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"],"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","22.2"],"divided":["12.0"],"into":["12.0","21.10"],"two":["12.0"],"types":["12.0"],"native":["12.0"],"prefixed":["12.0"],"custom":["12.0","12.33","23.29","23.30","23.31","23.32","23.35","23.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","22.4","23.4","23.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","23.25"],"offset":["12.28"],"changes":["12.28"],"before":["12.29","21.10","22.2"],"subtitles":["12.29","12.30","12.31","23.37"],"updated":["12.29","12.30"],"after":["12.30"],"loaded":["12.31","21.7","25.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","23.10","23.14","23.15","23.16","23.17","23.18","23.19","23.20","23.22","23.23","23.24","23.27","23.33","23.44","23.45","23.46","23.47","23.48","23.49"],"enable":["13.1","13.3","23.8","23.22"],"mode":["13.1"],"display":["13.4","21.0","23.17","23.33","23.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","23.34","23.36","23.41","25.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","25.13"],"attribute":["13.34"],"call":["13.34"],"plugins":["14.0","21.8","25.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"],"load":["14.0","21.9","25.13","25.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"],"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","23.4","23.43","25.6","25.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","23.32"],"first":["19.1"],"need":["19.1"],"open":["19.1","21.1"],"button":["19.2","19.5"],"selection":["19.3","23.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","24.1","24.2","24.3","24.4","24.5","25.2","25.3"],"bash":["20.1","20.2","24.1","24.2","25.2","25.3"],"index":["20.3","24.3"],"jsx":["20.5","20.8","24.5","24.8"],"import":["20.5","22.4","24.5","24.9","26.4"],"from":["20.5","24.5","26.4"],"useeffect":["20.5","24.5"],"useref":["20.5"],"also":["20.9"],"use":["20.9","23.19","23.27","23.47"],"sometimes":["20.10"],"your":["20.10"],"files":["20.10","22.2"],"may":["20.10"],"lose":["20.10"],"typescript":["20.10","21.5","24.10","25.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","24.12"],"tip":["20.12","24.12"],"esm":["20.12","24.12"],"demo":["20.12","24.12"],"https":["20.12","24.12"],"org":["20.12","24.12"],"useragent":["20.13","24.13"],"currently":["20.13"],"detection":["20.13"],"device":["20.13"],"中文说明":["21.0"],"timed":["21.0"],"comments":["21.0","21.7"],"over":["21.0"],"full":["21.1"],"sh":["21.2"],"npm":["21.2","21.13","25.21"],"install":["21.2"],"text":["21.3","21.4","25.4"],"structure":["21.4"],"required":["21.4"],"leading":["21.4"],"trailing":["21.4"],"whitespace":["21.4"],"pass":["21.5"],"option":["21.5"],"factory":["21.5"],"at":["21.5","21.11","22.2"],"runtime":["21.5","25.21"],"valid":["21.5"],"fields":["21.5"],"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","25.5","25.13"],"existing":["21.5","21.9"],"projects":["21.5"],"keep":["21.5","21.13"],"providing":["21.5"],"see":["21.5"],"xml":["21.6","25.8"],"asynchronous":["21.6"],"input":["21.6","21.7","21.9","25.14"],"uses":["21.6"],"bilibili":["21.6"],"comment":["21.6","21.8"],"format":["21.6","23.40"],"fetching":["21.6"],"callbacks":["21.7"],"submissions":["21.7"],"beforeemit":["21.7","25.6"],"filter":["21.7","25.6"],"beforevisible":["21.7","25.6"],"artplayerplugindanmuku":["21.7","21.8","21.12","25.19"],"visible":["21.7"],"direct":["21.7"],"emit":["21.7","21.8","25.6"],"calls":["21.7"],"registered":["21.8"],"available":["21.8"],"synchronously":["21.8"],"as":["21.8","23.4"],"member":["21.8"],"behavior":["21.8"],"processes":["21.8"],"one":["21.8"],"configuration":["21.9","23.43"],"changing":["21.9"],"config":["21.9","25.17"],"does":["21.9","21.11"],"not":["21.9","21.11"],"follow":["21.9"],"replace":["21.9","23.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","23.38","27.38"],"true":["21.11","23.19","23.21","23.22","23.28","23.45","25.6","25.20","27.19","27.22"],"construction":["21.11"],"sample":["21.11"],"automatically":["21.11","23.12"],"live":["21.11"],"stream":["21.11"],"draw":["21.11"],"dense":["21.11"],"automatic":["21.11","23.47"],"curves":["21.11"],"now":["21.11"],"fit":["21.11"],"bottom":["21.11","23.32"],"quarter":["21.11"],"chart":["21.11"],"instead":["21.11"],"subscribe":["21.12"],"callback":["21.12","25.18"],"subscriptions":["21.12"],"off":["21.12","25.18"],"event":["21.12"],"payload":["21.12"],"meaning":["21.12"],"legacy":["21.13","25.21"],"entrypoints":["21.13"],"declaration":["21.13"],"shapes":["21.13"],"compatibility":["21.13"],"including":["21.13"],"danger":["22.0","26.0"],"due":["22.0"],"increasing":["22.0"],"languages":["22.1","22.2"],"language":["22.2","22.3","22.4","23.42","27.42"],"bundling":["22.2"],"located":["22.2"],"i18n":["22.2","26.2"],"zhtw":["22.4","26.4"],"where":["23.1"],"source":["23.2"],"unique":["23.3"],"undefined":["23.4","23.51","27.4","27.51"],"constructor":["23.4"],"accepts":["23.4"],"second":["23.4"],"f00":["23.6","27.6"],"false":["23.8","23.9","23.10","23.11","23.12","23.13","23.14","23.15","23.16","23.17","23.18","23.20","23.23","23.24","23.25","23.26","23.27","23.38","23.44","23.46","23.47","23.48","23.49","27.10","27.11","27.12","27.14","27.15","27.16","27.17","27.25","27.27","27.38","27.44","27.47","27.49"],"by":["23.11"],"hotkeys":["23.19"],"if":["23.21"],"blur":["23.22"],"ssr":["23.27","27.27"],"server":["23.27"],"initialize":["23.29","23.30","23.31","23.32","23.35"],"panels":["23.30"],"preview":["23.36"],"bar":["23.36"],"supported":["23.37"],"formats":["23.37"],"vtt":["23.37","27.37"],"srt":["23.37","27.37"],"ass":["23.37","27.37"],"preload":["23.38"],"metadata":["23.38"],"specify":["23.40"],"needs":["23.40"],"be":["23.40","23.43"],"matches":["23.41"],"based":["23.41"],"navigator":["23.42","27.42"],"will":["23.43"],"deeply":["23.43"],"merged":["23.43"],"导入":["24.6"],"你也可以使用选项的类型":["24.9"],"ts":["24.9"],"有时你的":["24.10"],"文件会丢失":["24.10"],"的类型提示":["24.10"],"这时候你可以手动导入类型":["24.10"],"生产构建的":["24.11"],"只兼容最新一个主版本的":["24.11"],"chrome":["24.11"],"last":["24.11"],"目前对于是否移动设备的判断并不准确":["24.13"],"有时候希望通过改变":["24.13"],"来调整播放器的ui":["24.13"],"english":["25.0"],"查看完整演示":["25.1"],"jsdelivr":["25.3"],"每一个弹幕是一个对象":["25.4"],"多个弹幕组成的数组就是弹幕库":["25.4"],"通常只需要":["25.4"],"就可以发送一个弹幕":["25.4"],"工厂需要一个配置对象":["25.5"],"运行时可传":["25.5"],"每个字段都有默认值":["25.5"],"旧版根入口类型仍要求":["25.5"],"旧项目继续传入它即可":["25.5"],"准确类型见下方":["25.5"],"说明":["25.5"],"弹幕数据":["25.5"],"speed":["25.5"],"弹幕持续时间":["25.5"],"范围在":["25.5"],"同步执行":["25.6"],"不应返回":["25.6"],"promise":["25.6","25.9","25.12","25.14"],"可异步":["25.6"],"但只有严格返回":["25.6"],"才发送":["25.6"],"可以异步":["25.6"],"普通函数形式的这三个回调":["25.6"],"其":["25.6"],"都是当前配置对象":["25.6"],"直接调用":["25.6"],"弹幕":["25.8"],"文件":["25.8"],"也可以直接传入":["25.9"],"弹幕数组":["25.9"],"或传入同步返回数组的函数":["25.9"],"输入函数没有配置对象作为":["25.9"],"通过方法":["25.10","25.12","25.13"],"进行隐藏或者显示弹幕":["25.10"],"通过属性":["25.11"],"判断当前弹幕是隐藏或者显示":["25.11"],"data":["25.11"],"向队列添加一条弹幕":["25.12"],"它返回":["25.12"],"完成表示入队处理完成":["25.12"],"不代表已经显示":["25.12"],"请用":["25.12"],"await":["25.12"],"或":["25.12"],"catch":["25.12"],"同步合并弹幕配置":["25.13"],"更改":["25.13"],"不会自动重新加载":["25.13"],"之后调用无参数的":["25.13"],"才会替换队列":["25.13"],"无效配置不会覆盖现有配置":["25.13"],"需要移动发射器时调用":["25.13"],"通过":["25.14"],"重载":["25.14"],"切换或追加弹幕库":["25.14"],"返回":["25.14"],"无参数":["25.14"],"在读取配置中的输入成功后替换队列":["25.14"],"传入":["25.14"],"则追加":["25.14"],"输入读取失败不会清空现有队列":["25.14"],"但逐条过滤时发生异常不保证整批回滚":["25.14"],"用于清空当前显示的弹幕并将队列项重置为等待状态":["25.15"],"它不删除队列":["25.15"],"后续播放仍可按时间显示弹幕":["25.15"],"在初始化弹幕插件的时候":["25.16"],"是可以指定弹幕发射器的挂载位置的":["25.16"],"默认是挂载在控制栏的中部":["25.16"],"你也可以把它挂载在播放器以外的地方":["25.16"],"当播放器全屏的时候":["25.16"],"发射器会自动回到控制栏的中部":["25.16"],"假如你挂载的地方是亮色的话":["25.16"],"建议把":["25.16"],"theme":["25.16"],"设置成":["25.16"],"用于获取当前弹幕配置":["25.17"],"返回实时配置对象":["25.17"],"更新配置请调用":["25.17"],"避免直接修改对象而绕过校验和":["25.17"],"ui":["25.17"],"使用":["25.18"],"订阅":["25.18"],"取消订阅":["25.18"],"事件不会向迟到的监听器重放":["25.18"],"初始空数组可能在构造期间就完成加载":["25.18"],"若需要观察后续加载":["25.18"],"先订阅再调用":["25.18"],"与方法返回值":["25.19"],"初始化时设置":["25.20"],"heatmap":["25.20"],"按队列自动采样":["25.20"],"直播不绘制热力图":["25.20"],"本轮修复了密集弹幕曲线过高遮挡视频的问题":["25.20"],"issue":["25.20"],"自动曲线会适配到图表底部四分之一区域":["25.20"],"显式设置有限的":["25.20"],"ymin":["25.20"],"ymax":["25.20"],"或发送自定义":["25.20"],"points":["25.20"],"时保留原坐标映射":["25.20"],"也可传配置对象":["25.20"],"xmin":["25.20"],"xmax":["25.20"],"根入口和":["25.21"],"保留":["25.21"],"的历史声明形状":["25.21"],"其中部分方法返回值与真实运行时不一致":["25.21"],"当前分支新增":["25.21"],"鉴于捆绑的多国语言越来越多":["26.0"],"从":["26.0"],"默认语言有":["26.1"],"en":["26.1"],"zh":["26.1"],"打包前的语言文件存放于":["26.2"],"欢迎来添加你的语言":["26.2"],"打包后的语言文件存放于":["26.2"],"dist":["26.2"],"播放器挂载的":["27.1"],"视频源地址":["27.2"],"播放器的唯一标识":["27.3"],"构造函数接受一个函数作为第二个参数":["27.4"],"播放器初始化成功且视频可以播放时触发":["27.4"],"ready":["27.4"],"视频的海报":["27.5"],"是否自动播放":["27.10"],"是否使用快捷键":["27.19"],"是否开启播放器":["27.22"],"字幕时间偏移":["27.25"],"是否使用":["27.27"],"初始化自定义的":["27.29","27.30","27.31","27.35"],"层":["27.29"],"设置面板":["27.30"],"右键菜单":["27.31"],"初始化自定义的底部":["27.32"],"控制栏":["27.32"],"是否在底部控制栏里显示":["27.33"],"画质选择":["27.33"],"列表":["27.33"],"在进度条上显示":["27.34"],"高亮信息":["27.34"],"插件":["27.35"],"在进度条上设置":["27.36"],"预览图":["27.36"],"设置视频的字幕":["27.37"],"支持字幕格式":["27.37"],"用于替换默认图标":["27.39"],"支持":["27.39"],"用于指明视频的格式":["27.40"],"需要配合":["27.40"],"customtype":["27.40"],"通过视频的":["27.41"],"自定义":["27.43"],"配置":["27.43"],"该配置会和自带的":["27.43"],"进行深度合并":["27.43"],"新增你的语言":["27.43"],"是否使用自动":["27.47"],"回放功能":["27.47"],"用于改变内置的css变量":["27.50"]},{"0":["3.25","3.26","5.9","13.28","15.38","15.40","22.0","25.5","25.12","25.20","26.0"],"1":["3.26","3.28","5.9","5.38","5.40","13.28","15.38","15.40","20.11","21.5","22.0","24.10","26.0"],"2":["3.28","20.8","20.12","24.8","24.12","24.13","25.20"],"3":["3.23","13.29","20.9","23.2","24.10","27.2"],"4":["6.2","13.29","16.2","22.3","23.47","24.13","27.43"],"5":["3.12","3.14","3.25","3.27","13.28","20.12","21.5","22.0","23.29","23.30","24.12","24.13","25.12","26.0","27.29","27.30"],"6":["2.0","6.3","7.3","12.0","16.3","17.3","20.12","24.12"],"7":["27.7"],"9":["3.29","9.7","19.7","22.3","27.43"],"10":["2.2","3.11","7.2","17.2","21.5","25.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"],"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":["23.29","27.29"],"24":["6.5","16.5"],"25":["3.28","21.5","25.5","25.20"],"29":["5.45","8.5","18.5"],"34":["23.30","27.30"],"35":["3.7"],"40":["7.5","17.5"],"50":["3.10"],"75":["13.28"],"128":["25.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","23.1","23.7","23.10","23.19","23.30","23.31","23.32","23.35","23.43","23.47","25.9","25.10","25.12","25.13","25.14","25.15","25.17","25.18","26.2","27.1","27.4","27.10","27.19","27.30","27.31","27.32","27.35","27.39","27.43","27.47","27.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.3","23.2","23.10","23.19","23.29","23.30","23.47","25.4","25.11","26.1","27.2","27.4","27.29","27.30","27.32","27.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","22.3","23.2","23.29","23.30","26.3","26.4","27.2","27.29","27.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","23.1","23.7","23.10","23.19","23.31","23.32","23.35","23.39","23.43","23.47","24.4","25.6","25.8","25.9","25.12","25.13","25.14","25.17","25.18","27.1","27.3","27.4","27.5","27.7","27.8","27.9","27.10","27.13","27.17","27.19","27.21","27.26","27.35","27.39","27.43","27.45","27.46","27.47","27.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","23.1","23.7","23.10","23.19","23.31","23.32","23.35","23.39","23.43","23.47","25.6","25.8","25.9","25.10","25.12","25.13","25.14","25.17","25.18","27.1","27.3","27.4","27.5","27.7","27.9","27.10","27.13","27.17","27.19","27.31","27.32","27.35","27.39","27.43","27.45","27.46","27.47","27.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","23.1","23.7","23.10","23.19","23.30","23.31","23.32","23.35","23.43","23.47","25.8","25.9","25.10","25.12","25.13","25.14","25.15","25.17","25.18","27.1","27.4","27.5","27.7","27.10","27.19","27.31","27.32","27.35","27.39","27.43","27.47","27.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","23.2","24.10","26.3","26.4","27.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.2","23.2","26.3","27.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.4","23.2","24.3","24.4","24.6","24.9","24.10","25.7","25.10","25.11","25.15","25.18","25.21","27.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","23.2","23.11","24.5","27.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","23.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","23.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","23.36","23.37","27.36","27.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","23.2","23.29","27.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","23.29","27.29"],"mp4":["2.0","4.0","7.2","14.0","17.2"],"on":["2.0","4.0","12.16","19.6","21.10","23.21","23.45"],"canplay":["2.0"],"事件":["2.41","25.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"],"已加载元数据":["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","25.13","27.21","27.28","27.45"],"false":["3.20","3.33","13.33","27.8","27.9","27.13","27.18","27.20","27.23","27.24","27.26","27.46","27.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","23.4","23.14","23.15","23.16","27.41"],"plugins":["4.0"],"ready":["4.0","12.2","12.53","23.4"],"可以在实例化之后再加载插件的函数":["4.0"],"销毁播放器":["5.4"],"接受一个参数表示是否销毁后同时移除播放器的":["5.4"],"html":["5.4","20.12","23.39","24.12","27.27","27.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","27.34"],"视频时间快进":["5.7"],"视频时间快退":["5.8"],"设置和获取视频音量":["5.9"],"范围在":["5.9","27.25"],"string":["5.10","6.1","7.1","8.1","11.11","16.1","18.1","23.36","23.37","27.33","27.34","27.36","27.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","25.18"],"设置和获取播放器窗口全屏":["5.20"],"设置和获取播放器网页全屏":["5.21"],"设置和获取播放器画中画模式":["5.22"],"只有在视频播放前才能看到海报效果":["5.23"],"boolean":["5.24","6.1","8.1","9.5","19.5","27.33"],"设置和获取播放器迷你模式":["5.24"],"获取视频是否正在播放中":["5.25"],"支持":["5.26","5.30"],"standard":["5.26","15.26"],"正常":["5.26"],"mini":["5.26","23.12","23.26"],"迷你窗":["5.26"],"pip":["5.26"],"type":["5.29","11.10","20.9","24.9","24.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","25.14"],"一起使用":["5.39","27.40"],"用于展示缓冲进度细节":["5.39"],"和":["5.41","27.6","27.14","27.15","27.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","23.34","23.36","27.34","27.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","23.37","27.37"],"组件唯一名称":["7.1"],"用于标记类名":["7.1"],"index":["7.1","7.2","17.1","17.2","25.11"],"controls":["7.2","17.2"],"your":["7.2","17.2","23.43"],"button":["7.2","17.2","23.18","23.44","23.49"],"img":["8.2","8.3","8.4","8.5","18.2","18.3","18.4","18.5","23.29","27.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","23.14","23.15","23.16","23.17","24.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","23.4","23.9","23.13","23.14","23.18","23.20","23.23","23.24","23.28","23.38","23.41","23.44","23.45","23.46","23.48","23.49"],"handle":["10.3","15.41"],"will":["10.3","23.8","23.38"],"also":["10.3"],"be":["10.3","11.1"],"automatically":["10.3","12.18","12.19","15.33","15.41","23.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","23.1","23.4","23.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","23.44","23.46","23.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","23.14","23.15","23.16","23.17","23.18","23.20","23.21","23.23","23.24","23.42","23.43","23.48","23.49","23.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","23.1","23.3","23.4","23.6","23.11","23.12","23.22","23.23","23.24","23.48","24.5"],"an":["10.6","15.17","21.0","21.6","21.7","21.9","21.11"],"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","23.33","23.34","23.36","23.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.2","23.3","23.22"],"displaying":["10.7"],"control":["10.9","23.17","23.33"],"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","23.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.4","23.39","23.41"],"such":["10.12","20.10","23.22"],"as":["10.12","23.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","23.9","23.13","23.28"],"display":["10.13","10.15","21.5","23.14","23.15","23.16","23.18","23.20","23.23","23.24","23.42","23.44","23.49"],"hotkeys":["10.14"],"only":["10.17","15.23","23.5","23.26"],"one":["10.17","21.9"],"add":["10.17","23.43","23.46"],"dynamically":["10.17","15.46","15.47"],"adding":["10.17"],"this":["11.1","23.8"],"can":["11.1","12.42","13.1","15.33","20.10","20.11","21.7","21.11","23.51"],"useful":["11.1","23.27"],"information":["11.2","15.28"],"environment":["11.3"],"variables":["11.3","15.44","23.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","24.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"],"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","23.6","23.7","23.11","23.41"],"dimensions":["12.14","15.28","23.11"],"change":["12.14"],"enters":["12.15","23.12"],"viewport":["12.15"],"changes":["12.16","12.17","12.40"],"mobile":["12.16"],"devices":["12.16"],"aspect":["12.17","15.32","23.16"],"ratio":["12.17","23.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","23.8","23.12","23.27","23.28","25.5"],"error":["12.22","25.14","25.18"],"occurs":["12.22"],"web":["12.23","15.21","21.10","23.24"],"fullscreen":["12.23","21.10","23.48"],"picture":["12.25","15.22","23.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","23.17","23.20","23.33","23.38","23.43","23.48","23.50"],"takes":["12.26"],"performs":["12.27","15.12"],"time":["12.27","15.6","15.7","15.8","15.15","21.4","23.34","25.4","27.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"],"bar":["12.38","23.17","23.26","23.32","23.33","23.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"],"from":["12.41","15.38","15.40","20.12","22.0","22.4","23.25","24.9","25.21","26.2"],"start":["12.42","23.9"],"browser":["12.43","21.6"],"estimates":["12.43"],"triggered":["12.45","19.6","23.4"],"become":["12.46"],"empty":["12.46","21.4"],"example":["12.46","21.1"],"playback":["12.47","12.51","12.52","12.62","15.15","15.31","21.7","23.13","23.15"],"occurred":["12.48"],"metadata":["12.50","27.38"],"fired":["12.54"],"user":["12.58"],"agent":["12.58"],"refer":["13.0"],"which":["13.1","23.5"],"print":["13.1","13.32"],"all":["13.1"],"built":["13.1","23.43","23.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"],"pixels":["13.5","13.10","21.5"],"view":["13.10"],"count":["13.11"],"feature":["13.12","13.13","23.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","23.4","23.5","23.12","23.22"],"connection":["13.15"],"delay":["13.16","13.21","13.24"],"bottom":["13.16","21.5","23.17","23.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","23.15"],"multiplier":["13.23","13.25"],"long":["13.23","13.24","23.46"],"press":["13.23","13.24","23.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","23.3","23.6","23.42"],"it":["13.33","19.1","23.38"],"actively":["13.34"],"release":["13.34","15.5"],"resources":["13.34","22.0"],"destroying":["13.34"],"myplugin":["14.0"],"console":["14.0"],"info":["14.0"],"return":["14.0","21.13","23.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"],"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","23.23"],"effect":["15.23","23.22"],"visible":["15.23","21.12","25.6"],"sets":["15.24"],"supported":["15.26"],"values":["15.26","21.13"],"adapts":["15.27"],"its":["15.27","21.10","21.12"],"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","23.25"],"often":["15.38","15.40","23.11"],"typically":["15.39"],"alongside":["15.39"],"using":["15.41"],"search":["15.42"],"css":["15.44","23.50"],"subtitle":["15.47"],"offset":["15.47","23.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","23.40","23.43"],"four":["19.1"],"elements":["19.3"],"onselect":["19.3"],"text":["19.3","27.34"],"item":["19.5","21.12"],"usage":["20.0"],"npm":["20.1","24.1","25.2"],"install":["20.1","24.1","25.2"],"jsdelivr":["20.2","21.3","24.2"],"net":["20.2","24.2","25.3"],"https":["20.2","21.3","24.2","25.3"],"head":["20.3","24.3"],"title":["20.3","24.3"],"demo":["20.3"],"meta":["20.3"],"charset":["20.3"],"template":["20.4","24.4"],"ref":["20.4","21.12"],"export":["20.5","24.5"],"option":["20.5","21.8","24.5"],"getinstance":["20.5","24.5"],"rest":["20.5","24.5"],"const":["20.5","24.5"],"d":["20.6"],"import":["20.8","20.10","24.8","24.10","25.21","26.2"],"ts":["20.9","25.21","27.40"],"cases":["20.10"],"you":["20.10","20.11","20.13","23.27"],"types":["20.10","21.13"],"variable":["20.10"],"version":["20.11","20.12","22.0","24.11"],"chrome":["20.11"],"last":["20.11"],"starting":["20.12","22.0"],"not":["20.13"],"always":["20.13"],"accurate":["20.13","21.5","21.13"],"sometimes":["20.13"],"may":["20.13"],"want":["20.13","23.27"],"adjust":["20.13","23.38"],"input":["21.0","21.8"],"examples":["21.1"],"plugin":["21.2","25.7","25.10","25.11","25.18"],"danmuku":["21.2","21.8","25.11","25.18"],"yarn":["21.2"],"removed":["21.4"],"comments":["21.4","21.8"],"are":["21.4","22.1"],"ignored":["21.4"],"hello":["21.4"],"xml":["21.5"],"returning":["21.5"],"clamped":["21.5"],"margin":["21.5","25.5"],"top":["21.5"],"spacing":["21.5"],"cross":["21.6"],"origin":["21.6"],"requires":["21.6","21.7"],"that":["21.6","23.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","23.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","23.28"],"theme":["21.10"],"light":["21.10","25.16"],"covering":["21.11"],"issue":["21.11"],"explicit":["21.11"],"finite":["21.11"],"ymin":["21.11"],"ymax":["21.11"],"custom":["21.11"],"points":["21.11"],"retain":["21.11"],"their":["21.11"],"mapping":["21.11"],"object":["21.11"],"xmin":["21.11"],"xmax":["21.11"],"scale":["21.11","25.20"],"opacity":["21.11","25.5","25.20"],"minheight":["21.11","25.20"],"sampling":["21.11","25.20"],"smoothing":["21.11","25.20"],"flattening":["21.11","25.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"],"bundled":["22.0","22.2"],"multilingual":["22.0"],"en":["22.1","27.42"],"zh":["22.1","22.4","26.4","27.42"],"cn":["22.1","26.1"],"contributions":["22.2"],"welcome":["22.2"],"i18n":["22.4","26.4"],"tw":["22.4","26.4"],"mounted":["23.1"],"identifier":["23.3"],"successfully":["23.4"],"initialized":["23.4"],"image":["23.5","23.36"],"appears":["23.5","23.25"],"color":["23.6","25.5"],"live":["23.8"],"streaming":["23.8"],"fill":["23.11"],"multiple":["23.21"],"players":["23.21"],"exist":["23.21"],"page":["23.21"],"ui":["23.22","27.22"],"enabled":["23.22"],"overlays":["23.22"],"5s":["23.25","27.25"],"progress":["23.26","23.34"],"side":["23.27"],"rendering":["23.27"],"mount":["23.27"],"if":["23.27"],"menus":["23.31"],"list":["23.33"],"description":["23.33","23.34","23.36","23.37"],"thumbnail":["23.36"],"safari":["23.38","27.38"],"supports":["23.39"],"strings":["23.39"],"htmlelement":["23.39","27.39"],"together":["23.40"],"customtype":["23.40"],"by":["23.40"],"determined":["23.40"],"suffix":["23.40"],"delegates":["23.41"],"decoding":["23.41"],"third":["23.41","23.51"],"party":["23.41","23.51"],"tolowercase":["23.42","27.42"],"language":["23.43"],"enable":["23.45"],"events":["23.45"],"rotate":["23.48"],"modify":["23.50"],"htmlcanvaselement":["23.51","27.51"],"useref":["24.5"],"let":["24.10"],"null":["24.10"],"参数":["24.10"],"对于古老的浏览器":["24.11"],"可以使用":["24.11"],"legacy":["24.11"],"文件":["24.11"],"从":["24.12"],"开始":["24.12"],"所以在":["24.13"],"开始新增了一个":["24.13"],"guide":["25.0"],"下方":["25.1"],"其余都是非必要参数":["25.4"],"弹幕文本":["25.4"],"弹幕上下边距":["25.5"],"支持像素数字和百分比":["25.5"],"弹幕透明度":["25.5"],"ffffff":["25.5"],"默认弹幕颜色":["25.5"],"可以被单独弹幕项覆盖":["25.5"],"默认弹幕模式":["25.5"],"不执行":["25.6"],"需要业务校验时请在调用前完成":["25.6"],"来自用户输入的弹幕":["25.6"],"artplayerplugindanmuku":["25.6"],"来自服务器或直接调用":["25.6"],"的弹幕":["25.6"],"data":["25.7","25.9","25.10","25.12","25.13","25.14","25.15","25.17","25.18"],"libs":["25.7","25.9","25.10","25.11","25.13","25.14","25.15","25.17","25.18"],"uncompiled":["25.7","25.10","25.11","25.15","25.18"],"bilibili":["25.8"],"网站的弹幕格式一致":["25.8"],"处理拒绝":["25.12"],"省略时间时安排在当前播放时间之后":["25.12"],"秒":["25.12"],"显示仍受播放状态":["25.12"],"过滤器和可用轨道影响":["25.12"],"target":["25.13","25.16"],"热力图应在初始化时启用":["25.13"],"heatmap":["25.13"],"不会创建热力图":["25.13"],"并发追加互不取消":["25.14"],"新的替换会取消尚未完成的旧替换":["25.14"],"销毁会取消未完成加载":["25.14"],"被取消的":["25.14"],"仍正常结束":["25.14"],"但不会发出迟到的":["25.14"],"否则会看不清":["25.16"],"退出全屏后会返回配置的挂载点":["25.16"],"必须传入已存在的元素或选择器":["25.16"],"省略参数不会恢复默认位置":["25.16"],"它返回":["25.16"],"undefined":["25.16"],"销毁会移除插件面板":["25.16"],"应用创建的外部容器由应用清理":["25.16"],"同步":["25.17"],"参数是当前完整队列":["25.18"],"包含已追加数据":["25.18"],"也可能来自显示调度":["25.18"],"监听错误事件并不能代替处理公开方法的":["25.18"],"拒绝":["25.18"],"是实时只读的停止状态":["25.19"],"与":["25.19"],"ishide":["25.19"],"不同":["25.19"],"也不表示媒体是否准备就绪":["25.19"],"emit":["25.19"],"默认分别为":["25.20"],"图表宽度":["25.20"],"floor":["25.20"],"图表高度":["25.20"],"提供准确类型":["25.21"],"加载的仍是同一个运行时工厂":["25.21"],"该入口尚未发布":["25.21"],"不能从旧":["25.21"],"cdn":["25.21"],"版本导入":["25.21"],"无需手动导入":["26.1"],"group":["26.2"],"id":["26.2"],"容器":["27.1"],"目前只用于记忆播放":["27.3"],"autoplayback":["27.3"],"事件一样":["27.4"],"只会出现在播放器初始化且未播放的状态下":["27.5"],"播放器主题颜色":["27.6"],"目前用于":["27.6"],"进度条":["27.6"],"播放器的默认音量":["27.7"],"使用直播模式":["27.8"],"会隐藏进度条和播放时间":["27.8"],"是否默认静音":["27.9"],"播放器的尺寸默认会填充整个":["27.11"],"容器尺寸":["27.11"],"所以经常出现黑边":["27.11"],"该值能自动调整播放器尺寸以隐藏黑边":["27.11"],"当播放器滚动到浏览器视口以外时":["27.12"],"自动进入":["27.12"],"迷你播放":["27.12"],"模式":["27.12","27.28"],"是否循环播放":["27.13"],"是否显示视频翻转功能":["27.14"],"目前只出现在":["27.14"],"设置面板":["27.14","27.15","27.16","27.18","27.22","27.25"],"右键菜单":["27.14","27.15","27.16","27.22"],"是否显示视频播放速度功能":["27.15"],"会出现在":["27.15","27.16"],"是否显示视频长宽比功能":["27.16"],"是否在底部控制栏里显示":["27.17","27.18","27.20"],"视频截图":["27.17"],"功能":["27.17"],"的开关按钮":["27.18","27.20"],"画中画":["27.20"],"假如页面里同时存在多个播放器":["27.21"],"是否只能让一个播放器播放":["27.21"],"的背景虚化效果":["27.22"],"开启后":["27.22"],"是否在底部控制栏里显示播放器":["27.23","27.24"],"窗口全屏":["27.23"],"按钮":["27.23","27.24","27.49"],"网页全屏":["27.24"],"出现在":["27.25"],"迷你进度条":["27.26"],"只在播放器失去焦点后且正在播放时出现":["27.26"],"挂载模式":["27.27"],"假如你希望在播放器挂载前":["27.27"],"就提前渲染好播放器所需的":["27.27"],"时有用":["27.27"],"你可以通过":["27.27"],"在移动端是否使用":["27.28"],"类型":["27.33"],"描述":["27.33","27.34","27.37"],"默认画质":["27.33"],"画质名字":["27.33"],"高亮时间":["27.34"],"高亮文本":["27.34"],"预览图地址":["27.36"],"预览图数量":["27.36"],"column":["27.36"],"字幕名字":["27.37"],"字幕地址":["27.37"],"字幕类型":["27.37"],"可选":["27.37"],"preload":["27.38"],"中会自动调整为":["27.38"],"字符串和":["27.39"],"默认视频的格式就是视频地址的后缀":["27.40"],"如":["27.40"],"m3u8":["27.40"],"mkv":["27.40"],"但有时候视频地地址没有正确的后缀":["27.40"],"进行匹配":["27.41"],"把视频解码权交给第三方程序进行处理":["27.41"],"处理的函数能接收三个参数":["27.41"],"视频":["27.41"],"dom":["27.41"],"默认显示语言":["27.42"],"目前支持":["27.42"],"是否在移动端显示一个":["27.44"],"锁定按钮":["27.44"],"用于隐藏底部":["27.44"],"控制栏":["27.44"],"是否在移动端启用视频元素上的手势事件":["27.45"],"是否在移动端添加长按视频快进功能":["27.46"],"是否在移动端的网页全屏时":["27.48"],"根据视频尺寸和视口尺寸":["27.48"],"旋转播放器":["27.48"],"是否显示":["27.49"],"当前只有部分浏览器支持该功能":["27.49"],"函数可以返回一个第三方的":["27.51"],"或者":["27.51"],"htmlvideoelement":["27.51"],"例如可以代理一个已经存在的":["27.51"]},{"0":["9.6","13.25","13.26","15.9","21.4","21.5","21.11","25.4"],"1":["9.6","13.26","15.9","19.6","20.10","21.11","25.20"],"2":["13.28","21.5","21.11","23.1","25.5","27.1"],"3":["13.23","20.7","20.10","24.7"],"4":["23.7","23.10","23.19","23.31","23.32","23.39","23.43","26.1","27.10","27.19","27.31","27.32","27.39","27.47","27.50"],"5":["9.6","13.12","13.27","19.6","21.4","23.47","25.4","27.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","23.4","27.4","27.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","23.43","27.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","24.11"],"12":["23.31","27.31"],"15":["23.35","27.35"],"16":["23.32","27.32"],"17":["4.0","14.0"],"25":["13.28","21.11"],"29":["15.45"],"35":["13.7"],"50":["13.10"],"100":["21.11","25.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.0","23.1","23.4","23.7","23.31","23.32","23.35","23.39","23.43","25.6","25.7","25.9","25.10","25.12","25.13","25.14","25.15","25.17","25.18","26.0","27.1","27.7","27.10","27.19","27.31","27.34","27.35","27.39","27.47","27.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","22.4","23.1","23.7","23.10","23.19","23.31","23.32","23.43","23.47","25.10","25.11","25.12","25.13","25.14","25.18","26.1","26.2","27.1","27.4","27.10","27.19","27.31","27.32","27.39","27.43","27.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.3","22.4","23.1","23.7","23.10","23.19","23.29","23.30","23.31","23.32","23.43","23.47","24.5","25.11","25.13","25.14","25.20","26.1","26.2","27.1","27.4","27.19","27.29","27.30","27.31","27.32","27.35","27.39","27.41","27.43","27.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.4","23.1","23.7","23.10","23.19","23.29","23.30","23.31","23.32","23.43","23.47","24.5","25.11","25.14","25.18","26.4","27.1","27.4","27.29","27.30","27.31","27.32","27.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.0","22.3","23.10","23.19","23.29","23.30","23.32","23.43","23.47","24.1","24.8","25.2","25.3","25.6","25.8","25.9","25.12","25.13","25.14","25.16","25.17","26.0","26.3","27.4","27.27","27.29","27.30","27.32","27.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","22.4","23.10","23.19","23.29","23.30","23.32","23.43","23.47","24.4","24.9","25.11","25.14","25.18","26.3","26.4","27.2","27.4","27.29","27.30","27.32","27.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","23.1","23.19","23.29","23.30","23.47","24.4","25.11","25.18","26.4","27.2","27.4","27.29","27.30","27.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","23.29","23.30","23.33","23.40","23.47","25.18","27.29","27.30","27.33","27.41","27.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","23.4","23.9","23.13","23.17","23.25","23.34","23.42","23.50","25.16","27.6","27.8","27.12","27.14","27.15","27.16","27.18","27.20","27.21","27.23","27.24","27.25","27.26","27.27","27.28","27.33","27.34","27.38","27.40","27.42","27.44","27.48","27.49","27.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","23.4","23.9","23.13","23.17","23.34","23.39","23.50","25.1","25.6","25.16","27.3","27.6","27.8","27.9","27.12","27.13","27.14","27.15","27.16","27.17","27.18","27.20","27.21","27.23","27.24","27.25","27.26","27.28","27.33","27.34","27.40","27.42","27.44","27.45","27.46","27.48","27.49","27.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","22.0","22.2","23.4","23.13","23.17","23.39","23.50","25.6","25.8","25.16","27.3","27.5","27.7","27.8","27.9","27.12","27.13","27.17","27.18","27.20","27.21","27.23","27.24","27.25","27.26","27.28","27.33","27.34","27.40","27.42","27.44","27.45","27.46","27.48","27.49"],"document":["0.3","23.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","23.30","23.47","25.18","27.2","27.30","27.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","23.2","23.30","25.18","27.2","27.30","27.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","23.38","23.45","23.46","25.18","27.2","27.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","23.2","25.18","27.2"],"test":["0.4"],"foo":["0.4"],"bar":["0.4","13.16","23.6","23.8","23.22"],"const":["0.4","9.6","19.6","24.9"],"获取整体的字幕列表":["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","23.4","23.9","23.13","23.17","23.25","23.28","23.34","23.42","23.50","25.16","27.6","27.12","27.14","27.15","27.16","27.18","27.20","27.23","27.24","27.25","27.27","27.28","27.33","27.34","27.38","27.40","27.41","27.42","27.44","27.48","27.49","27.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","24.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","23.26"],"destroy":["5.5","21.9"],"也会在调用":["5.5"],"时自动执行类似逻辑":["5.5"],"画中画":["5.26"],"fullscreen":["5.26","15.21","23.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","25.6","25.7","25.9","25.10","25.12","25.13","25.14","25.15","25.16","25.17","25.18"],"number":["6.1","7.1","8.1","10.12","16.1","18.1","19.2"],"contextmenu":["6.4","6.5","16.4","16.5"],"name":["6.5","7.5","9.9","16.5","17.5","19.9","23.33"],"组件索引":["7.1"],"用于显示的优先级":["7.1"],"html":["7.1","7.2","9.4","9.9","15.4","17.1","17.2","19.4","19.9","23.27","23.33"],"element":["7.1","17.1","23.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","23.37","27.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","23.35","23.41","24.10","25.6","27.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","23.29","27.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","25.5"],"settings":["9.3","9.4","9.9","19.3","19.4","19.9","21.0","23.14","23.15","23.16","23.18","23.22","23.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"],"selector":["9.4","19.4"],"value":["9.6","25.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","23.3","23.6"],"hover":["10.3"],"delete":["10.4"],"clear":["10.4"],"all":["10.4","20.12"],"caches":["10.4"],"object":["10.6","21.6","27.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"],"visibility":["10.12"],"toggle":["10.13","10.15","23.20"],"set":["10.16"],"the":["11.0","12.45","12.48","15.0","15.6","15.29","21.6","23.8","23.12","23.25","23.26","23.27","23.44","23.45"],"you":["11.1"],"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","23.5","23.21","23.26","23.27"],"for":["11.5","11.9","13.33","16.1","18.1","23.6","23.18","23.38","23.41","23.51"],"videos":["11.5"],"options":["11.7","11.9","23.37"],"event":["11.8","12.0","12.46","15.38","15.40","19.2","19.5","21.9","23.4"],"utility":["11.10"],"by":["11.11","20.13","23.9"],"on":["12.0","13.0","13.3","14.0","23.28","23.44","23.46","23.48"],"canplay":["12.0"],"an":["12.0","20.12"],"only":["12.0","21.7","23.3","23.14","23.21","23.49"],"once":["12.0"],"time":["12.1","12.60","21.7"],"a":["12.11","13.14","21.5","21.7","23.22"],"mode":["12.25","13.31","15.24","21.5","21.7","23.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","23.15","23.16","23.51"],"can":["12.43","13.34","23.41"],"play":["12.43","23.4"],"offlineaudiocontext":["12.44"],"this":["12.46","13.34","23.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.1","23.2","23.5","23.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","23.3"],"trying":["12.58"],"data":["12.59","25.6","25.8","25.16"],"indicated":["12.60"],"volume":["12.61","23.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","23.2","23.11","23.14","23.15","23.16","23.18","23.23","23.24","23.25","23.34"],"events":["13.1"],"text":["13.2","19.2","19.5","19.6","21.9","23.34"],"pixels":["13.6","13.7"],"feature":["13.11","23.46"],"seconds":["13.12","13.27","15.6","15.7","21.4","23.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","25.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","23.6","23.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","23.51"],"scenarios":["13.34"],"where":["13.34"],"ready":["14.0"],"also":["14.0","15.4","20.12"],"remove":["15.4"],"s":["15.4","15.24","20.13","23.27"],"resources":["15.5"],"reinitialize":["15.5"],"tag":["15.5"],"performs":["15.11"],"some":["15.11","23.49"],"optimization":["15.11"],"operations":["15.11"],"retains":["15.13"],"previous":["15.13"],"similar":["15.15","23.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","25.19"],"state":["15.21"],"before":["15.23","23.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","23.11"],"correspond":["15.29"],"fields":["15.29"],"of":["15.29","23.12","23.36"],"same":["15.29"],"supported":["15.30","23.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","24.5"],"preventing":["15.42"],"css":["16.1","18.1","27.11"],"class":["16.1","18.1","20.3"],"determines":["17.1"],"priority":["17.1"],"dom":["17.1"],"items":["19.1"],"playbackrate":["19.1"],"aspectratio":["19.1"],"width":["19.2","23.36","27.36"],"list":["19.2"],"onswitch":["19.5"],"completion":["19.6"],"onchange":["19.6"],"change":["19.6"],"yarn":["20.1","24.1"],"utf":["20.3","27.37"],"body":["20.3"],"if":["20.5","24.5"],"typeof":["20.5","24.5"],"ts":["20.6","21.13","23.40"],"file":["20.6","20.11"],"from":["20.8","20.9","20.13","21.8","21.12","21.13","22.2","24.8","24.11"],"import":["20.9","21.13","22.1","22.2","24.11"],"let":["20.10"],"null":["20.10"],"use":["20.11","21.1"],"which":["20.11"],"compatible":["20.11"],"down":["20.11"],"ie":["20.11","24.11"],"plugins":["20.12"],"provide":["20.12"],"ui":["20.13"],"changing":["20.13"],"therefore":["20.13"],"starting":["20.13"],"and":["21.0","23.5","23.6","23.8","23.22"],"heatmap":["21.0"],"below":["21.1"],"site":["21.1"],"pnpm":["21.2"],"net":["21.3"],"npm":["21.3","25.3"],"plugin":["21.3","21.13","25.2","25.3","25.6","25.8","25.9","25.12","25.13","25.14","25.15","25.16","25.17","25.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","25.5"],"visible":["21.5"],"fontsize":["21.5","25.5"],"percentage":["21.5"],"height":["21.5","27.36"],"antioverlap":["21.5","25.5"],"synchronousplayback":["21.5","25.5"],"runs":["21.6"],"without":["21.6","21.9"],"option":["21.6","23.11"],"its":["21.6"],"receiver":["21.6"],"may":["21.6","23.40"],"return":["21.6"],"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","23.8","23.44"],"hides":["21.8"],"shows":["21.8"],"layer":["21.8","23.29","27.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","25.20"],"artplayerplugindanmuku":["21.9","25.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"],"are":["21.11"],"chartwidth":["21.11"],"floor":["21.11"],"chartheight":["21.11"],"05":["21.11","25.20"],"max":["21.11","25.20"],"including":["21.12"],"appends":["21.12"],"original":["21.12"],"loading":["21.12","23.38"],"scheduling":["21.12"],"handle":["21.12"],"public":["21.12"],"rejections":["21.12"],"separately":["21.12"],"factory":["21.13"],"danmuku":["21.13","25.2","25.6","25.7","25.9","25.10","25.12","25.14","25.15","25.16","25.17","25.19","25.21"],"type":["21.13","25.21"],"runtimeoption":["21.13","25.21"],"point":["21.13","25.21"],"eventmap":["21.13","25.21"],"core":["22.0"],"will":["22.0","23.15","23.16","23.22"],"no":["22.0","22.1"],"longer":["22.0"],"bundle":["22.0"],"manual":["22.1"],"dist":["22.2","24.12"],"group":["22.2"],"id":["22.2"],"sometimes":["23.2","23.40"],"not":["23.2","23.5","23.40"],"known":["23.2"],"immediately":["23.2"],"such":["23.2"],"cases":["23.2"],"memory":["23.3"],"autoplayback":["23.3"],"initialized":["23.5"],"resulting":["23.11"],"black":["23.11"],"bars":["23.11"],"adjusts":["23.11"],"scrolls":["23.12"],"out":["23.12"],"currently":["23.14","23.49"],"appears":["23.14","23.26"],"appear":["23.15","23.16"],"panel":["23.18","23.22","23.25"],"button":["23.20","23.23","23.24"],"bottom":["23.20","23.23","23.24"],"simultaneously":["23.21"],"whether":["23.21"],"one":["23.21"],"context":["23.22"],"menu":["23.22"],"apply":["23.22"],"loses":["23.26"],"focus":["23.26"],"pre":["23.27"],"render":["23.27"],"required":["23.27"],"mobile":["23.28","23.44","23.45","23.48"],"devices":["23.28","23.44"],"boolean":["23.33"],"string":["23.33","23.34"],"myplugin":["23.35","27.35"],"column":["23.36"],"columns":["23.36"],"encoding":["23.37","27.37"],"auto":["23.38","27.38"],"better":["23.38"],"experience":["23.38"],"more":["23.38"],"attributes":["23.38"],"e":["23.40"],"g":["23.40"],"m3u8":["23.40"],"mkv":["23.40"],"however":["23.40"],"have":["23.40"],"programs":["23.41"],"processing":["23.41"],"receive":["23.41"],"three":["23.41"],"en":["23.42"],"zh":["23.42","26.2"],"cn":["23.42","27.42"],"fast":["23.46"],"forward":["23.46"],"web":["23.48"],"based":["23.48"],"browsers":["23.49"],"support":["23.49"],"htmlvideoelement":["23.51"],"example":["23.51"],"demo":["24.3"],"meta":["24.3"],"charset":["24.3"],"ref":["24.4"],"时会自动导入的":["24.6"],"param":["24.10"],"getinstance":["24.10"],"可以兼容到":["24.11"],"和所有插件还会提供一个":["24.12"],"版本的":["24.12"],"mjs":["24.12"],"如":["24.12"],"globalthis":["24.13"],"custom":["24.13"],"agent":["24.13"],"全局变量":["24.13"],"本文描述当前重构分支":["25.0"],"弹幕时间":["25.4"],"单位秒":["25.4"],"省略时为当前播放器时间加":["25.4"],"秒":["25.4"],"滚动":["25.5"],"顶部":["25.5"],"底部":["25.5"],"弹幕可见的模式":["25.5"],"弹幕字体大小":["25.5"],"弹幕是否防重叠":["25.5"],"libs":["25.6","25.8","25.12","25.16"],"uncompiled":["25.6","25.8","25.9","25.12","25.13","25.14","25.16","25.17"],"保存到数据库":["25.6"],"savedanmu":["25.6"],"danmu":["25.6"],"load":["25.19"],"返回的":["25.19"],"完成后得到内部":["25.19"],"对象":["25.19"],"绘制自定义数据使用":["25.20"],"每项为":["25.20"],"x":["25.20"],"默认":["25.20","27.37"],"版本开始":["26.0"],"核心代码除了包含":["26.0"],"zhtw":["26.2"],"tw":["26.2"],"高亮元素":["27.6"],"上":["27.6"],"类似":["27.11"],"的":["27.11"],"fit":["27.11"],"里":["27.14","27.15","27.16","27.25"],"音量条等浮层会应用":["27.22"],"filter":["27.22"],"毛玻璃效果":["27.22"],"看起来更通透":["27.22"],"访问到播放器所需的":["27.27"],"画质地址":["27.33"],"预览图列数":["27.36"],"预览图宽度":["27.36"],"预览图高度":["27.36"],"scale":["27.36"],"字幕样式":["27.37"],"字幕编码":["27.37"],"以提升加载体验":["27.38"],"更多视频属性":["27.38"],"这些属性将直接写入视频元素里":["27.38"],"所以需要特别指明":["27.40"],"元素":["27.41"],"视频地址":["27.41"],"当前实例":["27.41"],"dom元素":["27.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","27.3"],"3":["9.6"],"4":["9.1","20.13","22.1","23.17","23.34","23.50","24.10","27.5","27.7","27.8","27.9","27.13","27.17","27.21","27.25","27.26","27.33","27.34","27.40","27.42","27.45","27.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","24.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","23.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","23.37","24.3","27.37"],"9":["5.11","5.13","15.11","15.13","15.23","23.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":["27.33"],"22":["9.9","19.9"],"25":["23.34","27.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","25.5"],"1000":["13.15","25.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","23.4","23.7","23.17","23.31","23.39","24.2","24.13","26.1","27.10","27.19","27.31","27.34","27.39","27.40","27.47","27.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","22.3","23.4","23.7","23.17","23.31","23.39","25.6","25.10","25.12","25.13","26.1","26.2","27.10","27.19","27.31","27.34","27.39","27.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","22.3","22.4","23.4","23.7","23.10","23.31","23.32","23.39","23.43","24.9","25.6","25.10","25.12","25.13","25.14","26.2","26.3","27.1","27.19","27.31","27.32","27.39","27.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","22.4","23.1","23.4","23.7","23.10","23.19","23.31","23.32","23.43","24.9","25.6","25.10","25.11","25.12","25.13","25.14","26.2","26.3","26.4","27.1","27.4","27.31","27.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","22.4","23.1","23.4","23.7","23.10","23.19","23.31","23.32","23.43","23.47","24.9","25.6","25.11","25.12","25.13","25.14","26.2","26.4","27.4","27.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.1","23.10","23.19","23.29","23.30","23.32","23.43","23.47","23.48","23.51","25.11","25.12","25.13","25.14","26.2","26.4","27.4","27.29","27.30","27.32","27.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","23.1","23.4","23.10","23.19","23.29","23.30","23.32","23.43","23.47","25.11","25.12","25.13","25.14","26.2","26.4","27.4","27.29","27.30","27.43"],"console":["0.2","0.4","1.6","7.2","10.2","11.6","15.16","17.2","23.35","25.18","27.35"],"info":["0.2","0.4","1.1","7.2","10.2","11.6","17.2","23.35","25.18","27.35"],"queryselector":["0.3","5.41","10.3","15.41","23.1","27.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.2","23.4","23.17","23.35","23.39","23.50","25.6","25.7","25.9","25.10","25.12","25.15","25.17","27.5","27.7","27.10","27.17","27.33","27.34","27.40","27.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.4","23.17","23.39","25.6","25.9","25.10","25.12","25.13","25.15","25.17","26.1","26.2","27.7","27.10","27.19","27.34","27.39","27.40","27.47","27.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","22.3","22.4","23.1","23.4","23.7","23.10","23.19","23.31","23.32","23.41","23.43","24.9","25.6","25.10","25.11","25.12","25.13","25.14","26.2","26.3","26.4","27.1","27.4","27.31","27.32","27.39","27.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.1","23.13","23.17","23.25","23.34","23.42","23.50","25.8","25.16","27.3","27.5","27.8","27.9","27.12","27.13","27.14","27.15","27.16","27.17","27.18","27.20","27.21","27.23","27.24","27.25","27.26","27.27","27.28","27.33","27.40","27.42","27.44","27.45","27.46","27.48","27.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","22.1","22.2","23.4","23.17","23.34","23.39","23.50","25.6","25.7","25.9","25.15","25.16","25.17","27.3","27.5","27.7","27.17","27.25","27.33","27.34","27.40","27.50"],"function":["0.14","6.5","16.5","17.1","20.10","27.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","23.3","23.5","23.9","23.25","23.28","23.33","23.34","23.40","23.42","23.45","24.11","25.1","25.20","27.6","27.11","27.14","27.15","27.16","27.22","27.27","27.36","27.38","27.41","27.51"],"once":["2.0"],"不必停下来进一步缓冲内容":["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","24.5","25.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","23.3","23.5","23.6","23.8","23.12","23.14","23.15","23.16","23.18","23.20","23.23","23.24","23.26","23.33","23.40","23.44","23.45","23.46","23.49","23.51","24.3","24.5","25.20","27.11","27.22","27.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","23.3","23.5","23.6","23.8","23.12","23.14","23.15","23.16","23.18","23.20","23.23","23.24","23.26","23.28","23.33","23.40","23.44","23.45","23.46","23.49","25.20","27.11","27.22","27.36","27.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","23.3","23.5","23.6","23.8","23.12","23.20","23.23","23.24","23.25","23.28","23.33","23.40","23.42","23.45","23.46","23.49","25.20","27.11","27.22","27.27","27.36","27.38","27.41"],"add":["4.0","6.3","8.3","14.0","16.3","18.3","20.1","24.1","25.2"],"例如我想写一个在视频暂停后":["4.0"],"显示一个图片广告的插件":["4.0"],"on":["5.12","15.12","15.16","15.33"],"播放器当前可见宽高":["5.29"],"document":["5.41","10.3","15.41","25.16","27.1"],"default":["5.45","7.5","15.45","17.5","19.3","21.10","21.11","24.10"],"true":["5.45","7.5","9.7","13.31","15.4","15.45","17.5","19.7","21.13","23.4","23.10","23.30","23.47","25.21","27.4","27.30","27.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","23.29","23.30","23.37","24.13","27.29","27.30","27.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.29","23.35","27.29","27.35"],"your":["6.2","6.3","6.4","6.5","7.3","16.2","16.3","16.4","16.5","17.3","23.47","27.43"],"menu":["6.2","6.3","6.4","6.5","16.2","16.3","16.4","16.5","23.14","23.15","23.16"],"click":["6.4","6.5","16.4","16.5","17.1"],"args":["6.5","16.5"],"组件的":["7.1"],"dom":["7.1","23.41","23.51"],"元素":["7.1"],"style":["7.1","8.2","8.3","8.5","18.2","18.3","18.5","19.3","20.4","23.29"],"object":["7.1","17.1"],"mounted":["7.2","17.2","23.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","25.8"],"position":["7.3","17.3"],"left":["7.3","17.3"],"controls":["7.4","17.4","21.5"],"right":["7.5","17.5"],"selector":["7.5","17.5","23.30","27.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","23.29","27.29"],"width":["8.2","8.3","8.5","9.4","9.9","18.2","18.3","18.5","19.4","19.9","21.5","23.29","25.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","23.47"],"yellow":["9.3"],"02":["9.3"],"setting":["9.5","9.7","19.7","23.30","27.30"],"max":["9.6","19.6"],"step":["9.6"],"settings":["9.8","19.8"],"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.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","23.18","23.20","23.23","23.24","23.44"],"const":["10.4","20.8","20.9","21.13","24.8","25.21"],"set":["10.8","10.9","10.10","23.2"],"whether":["10.8","10.9","10.10","10.16","23.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"],"activecues":["10.11"],"list":["10.11"],"via":["10.12"],"show":["10.12","25.19"],"triggered":["10.12"],"event":["10.12","17.1"],"is":["10.12","12.42","13.15","20.6","23.26","23.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"],"players":["11.1","13.34"],"simultaneously":["11.1"],"there":["12.42"],"not":["12.42","15.15","21.8","21.10"],"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","23.38"],"data":["12.48","21.6","24.10","25.20"],"or":["12.48","21.6"],"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","23.11","23.21","23.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"],"if":["13.34","21.11"],"you":["13.34","23.1","23.2"],"wish":["13.34"],"preserve":["13.34"],"for":["14.0"],"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","24.5"],"will":["15.5"],"also":["15.5"],"ready":["15.12","15.16"],"seek":["15.12"],"settimeout":["15.12","25.6"],"does":["15.15","21.8"],"trigger":["15.15"],"additional":["15.15"],"events":["15.15"],"fullscreen":["15.26"],"fullscreenweb":["15.26"],"webpage":["15.26"],"in":["15.29"],"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","23.41","23.51"],"handler":["17.1"],"subtitleoffset":["19.1"],"span":["19.3"],"min":["19.6"],"npm":["20.2","24.2"],"dist":["20.2","20.12","21.3","24.2","25.3"],"warning":["20.3","21.9","23.47"],"option":["20.4","21.9","21.13","24.4","25.21"],"get":["20.4"],"return":["20.5","23.35","24.5","24.10","25.6","27.35"],"ref":["20.5","24.5"],"param":["20.10"],"getinstance":["20.10"],"import":["20.11"],"from":["20.11"],"group":["20.11","24.11"],"bash":["20.11","24.11"],"jsdelivr":["20.11","24.11"],"net":["20.11","24.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","23.49"],"guide":["21.0"],"describes":["21.0"],"refactor":["21.0"],"local":["21.1"],"plugin":["21.1","21.6","24.12"],"danmuku":["21.3","24.12","25.3","25.8"],"mode":["21.4","25.4"],"scrolling":["21.4"],"top":["21.4"],"bottom":["21.4","23.18","23.44"],"follow":["21.5"],"playbackrate":["21.5"],"enabled":["21.5"],"mount":["21.5","21.8","25.5"],"undefined":["21.5","25.5"],"center":["21.5"],"heatmap":["21.5","21.13","25.5","25.21"],"enable":["21.5"],"construction":["21.5"],"below":["21.5"],"input":["21.5"],"directly":["21.6","23.38"],"asynchronously":["21.6","23.2"],"libs":["21.6","25.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","23.14","23.15","23.16"],"an":["21.8","23.51"],"existing":["21.8","23.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","22.0"],"it":["21.10"],"send":["21.11"],"emit":["21.11"],"artplayerplugindanmuku":["21.11","25.11","25.13","25.14","25.18"],"x":["21.11"],"pairs":["21.11"],"axis":["21.11"],"uses":["21.11"],"pixels":["21.11"],"seconds":["21.11"],"explicitly":["21.11","23.40"],"supplying":["21.11"],"another":["21.11"],"range":["21.11"],"start":["21.12"],"no":["21.12"],"starts":["21.12"],"stop":["21.12"],"stops":["21.12"],"hide":["21.12","23.11","25.19"],"layer":["21.12"],"points":["21.13","25.5"],"languages":["22.0"],"other":["22.0"],"than":["22.0"],"simplified":["22.0"],"chinese":["22.0"],"and":["22.0","23.14","23.15","23.16","23.26","23.48"],"english":["22.0"],"required":["22.1"],"zhtw":["22.2"],"zh":["22.2"],"tw":["22.2"],"may":["23.1"],"can":["23.2","23.27"],"muted":["23.4","27.4"],"yet":["23.5"],"playing":["23.5","23.26"],"highlighted":["23.6"],"elements":["23.6"],"playback":["23.8"],"time":["23.8","23.21"],"size":["23.11"],"browser":["23.12"],"viewport":["23.12","23.48"],"context":["23.14","23.15","23.16"],"control":["23.18","23.20","23.23","23.24","23.44"],"allowed":["23.21"],"play":["23.21","27.43"],"at":["23.21"],"a":["23.21"],"filter":["23.22","25.5"],"frosted":["23.22"],"glass":["23.22"],"more":["23.22"],"transparent":["23.22"],"look":["23.22"],"however":["23.22"],"access":["23.27"],"setting01":["23.30","27.30"],"scale":["23.36"],"utf":["23.37","24.3"],"escape":["23.37","27.37"],"boolean":["23.37","27.37"],"tags":["23.37"],"these":["23.38"],"be":["23.38"],"written":["23.38"],"into":["23.38"],"correct":["23.40"],"so":["23.40"],"specified":["23.40"],"parameters":["23.41"],"lang":["23.43","27.43"],"devices":["23.45","23.46"],"mobile":["23.46"],"dimensions":["23.48"],"feature":["23.49"],"body":["24.3"],"属性":["24.10"],"export":["24.10"],"https":["24.11"],"head":["24.13"],"title":["24.13"],"runtime":["25.0"],"yarn":["25.2"],"显式":["25.4"],"保留":["25.4"],"是否同步播放速度":["25.5"],"弹幕发射器挂载点":["25.5"],"默认为播放器控制栏中部":["25.5"],"是否开启热力图":["25.5"],"当播放器宽度小于此值时":["25.5"],"弹幕发射器置于播放器底部":["25.5"],"保留的配置字段":["25.5"],"绘制自定义数据请发送":["25.5"],"事件":["25.5"],"resolve":["25.6"],"plugins":["25.11","25.13","25.14","25.18"],"xml":["25.14","25.18"],"emitter":["25.14"],"danmu":["25.16","25.18"],"createelement":["25.16"],"visible":["25.18"],"显示弹幕":["25.18"],"config":["25.19"],"reset":["25.19"],"同步返回同一个内部对象":["25.19"],"它与注册在":["25.19"],"是图表像素坐标":["25.20"],"不是秒":["25.20"],"渲染会修改内层数组的第二项":["25.20"],"保留原数据时请复制每一对坐标":["25.20"],"配置中的":["25.20"],"字段仅存储":["25.20"],"不会自动绘图":["25.20"],"resize":["25.20"],"或成功":["25.20"],"load":["25.20"],"会恢复自动曲线":["25.20"],"需要自定义曲线时可在这些事件后重新发送":["25.20"],"简体中文":["26.0"],"和":["26.0"],"英文":["26.0"],"有时候":["27.2"],"地址没那么快知道":["27.2"],"这时候你可以异步设置":["27.2"],"cover":["27.11"],"但在部分低性能设备或老旧浏览器上可能会有性能或兼容性问题":["27.22"],"预览图缩放":["27.36"],"是否转义":["27.37"],"标签":["27.37"],"默认为":["27.37"],"onvttload":["27.37"],"用于修改":["27.37"]},{"0":["15.12","24.9"],"1":["3.25","9.9","19.9","25.4"],"2":["3.26","9.3","13.29","19.3","23.3"],"3":["3.28","13.28","19.6","27.1"],"4":["3.28","13.28","19.1","20.10","23.5","23.8","23.9","23.13","23.23","23.24","23.25","23.28","23.33","23.36","23.40","23.42","23.45","23.46","23.49","27.6","27.11","27.12","27.14","27.15","27.16","27.18","27.20","27.22","27.23","27.24","27.28","27.36","27.37","27.38","27.41","27.44","27.48","27.49","27.51"],"5":["3.23","3.29","9.9","13.29","19.9","23.7"],"6":["3.29","13.29","15.43","20.10","23.2","27.2"],"7":["5.29","15.6","15.7","15.17","15.18","15.19","15.24","15.38","15.39","15.40","27.27","27.38"],"8":["5.26","15.15","15.26","15.27","23.36","24.13","27.36","27.41"],"9":["5.5"],"10":["3.12","3.14","3.27","5.12","9.9","19.9","21.13","25.21"],"14":["23.33"],"20":["3.11"],"22":["9.5"],"40":["13.7"],"100":["13.10","25.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","22.2","23.17","23.34","23.39","23.50","25.9","25.15","25.17","25.20","26.1","27.7","27.10","27.19","27.34","27.40","27.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","22.2","22.3","23.17","23.34","23.39","23.40","25.9","25.15","25.17","25.20","26.1","27.10","27.19","27.33","27.34","27.39","27.40","27.47","27.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","22.2","22.3","23.17","23.34","23.39","23.40","25.9","25.10","25.15","25.17","25.20","26.3","27.1","27.10","27.19","27.31","27.33","27.34","27.39","27.40","27.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","22.2","22.3","23.7","23.17","23.31","23.39","24.9","25.6","25.10","26.3","27.1","27.10","27.19","27.31","27.34","27.39","27.40","27.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","22.2","22.3","22.4","23.7","23.17","23.31","23.39","24.9","25.6","25.10","26.3","27.1","27.10","27.19","27.31","27.32","27.34","27.39","27.47"],"warning":["0.4","10.2","10.4","11.6","15.12","15.16","15.33","20.4","23.7","23.10","26.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","23.30","25.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","23.30"],"play":["0.6","10.6","12.42","23.43","27.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.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","22.1","23.25","23.27","23.33","23.34","23.40","23.42","23.50","25.20","27.3","27.5","27.7","27.8","27.9","27.13","27.14","27.15","27.16","27.17","27.21","27.25","27.26","27.33","27.36","27.42","27.45","27.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","22.1","22.2","23.25","23.33","23.34","23.40","23.42","23.50","25.7","25.9","25.15","25.16","25.17","25.20","27.5","27.7","27.17","27.25","27.27","27.33","27.40","27.42","27.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","22.2","23.17","23.34","23.40","23.50","24.3","24.5","25.7","25.9","25.15","25.16","25.17","25.20","26.1","27.7","27.10","27.17","27.25","27.27","27.33","27.34","27.40","27.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","22.1","23.13","23.25","23.33","23.34","23.40","23.42","23.50","25.7","25.8","25.16","25.20","27.3","27.5","27.8","27.9","27.12","27.13","27.14","27.15","27.16","27.17","27.18","27.20","27.21","27.23","27.24","27.25","27.26","27.28","27.33","27.36","27.38","27.42","27.44","27.45","27.46","27.48","27.49","27.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","23.31","25.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.17","23.37"],"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","23.30","23.37","25.14","27.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","22.1","23.9","23.13","23.25","23.28","23.33","23.34","23.40","23.41","23.42","24.8","25.8","25.16","27.3","27.6","27.8","27.9","27.12","27.13","27.14","27.15","27.16","27.18","27.20","27.21","27.23","27.24","27.25","27.26","27.28","27.36","27.38","27.42","27.44","27.45","27.46","27.48","27.49","27.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.3","23.5","23.6","23.8","23.9","23.12","23.14","23.15","23.16","23.18","23.20","23.23","23.24","23.26","23.28","23.33","23.36","23.40","23.44","23.45","23.46","23.49","24.2","25.3","25.20","27.6","27.11","27.22","27.36","27.37","27.38","27.41","27.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","23.3","23.5","23.9","23.13","23.25","23.28","23.33","23.40","23.42","25.8","25.20","27.6","27.8","27.9","27.12","27.13","27.14","27.15","27.16","27.18","27.20","27.21","27.22","27.23","27.24","27.26","27.27","27.28","27.36","27.38","27.41","27.42","27.44","27.45","27.46","27.48","27.49","27.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","23.31","23.32","25.11","25.12","25.13","25.14","27.31","27.32"],"img":["4.0","9.5","9.8","19.8","23.39","27.39"],"style":["4.0","6.1","7.3","8.1","8.4","16.1","17.3","18.1","18.4","24.4","27.29"],"width":["4.0","8.4","9.5","9.8","18.4","19.8","27.29"],"100px":["4.0","8.4","18.4","23.29","27.29"],"src":["4.0","8.3","8.4","9.8","18.3","18.4","19.8","23.29","27.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","23.29","23.32","25.11","25.12","25.13","25.14","27.29","27.32"],"absolute":["4.0","8.2","8.3","8.5","18.2","18.3","18.5","23.29","27.29"],"top":["4.0","8.2","8.3","8.5","18.2","18.3","18.5","23.29","27.29"],"20px":["4.0","23.29","27.29"],"right":["4.0","7.2","7.4","8.2","8.5","15.20","15.22","17.2","17.4","18.2","18.5","23.29","25.11","25.12","25.13","25.14"],"seek":["5.12","23.19"],"settimeout":["5.12","7.5","17.5","23.2"],"controls":["5.20","5.22","15.20","15.22","25.11","25.12","25.13","25.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","23.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","23.30","27.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","22.4","26.4"],"span":["7.2","17.2"],"01":["7.2","17.2","23.30","27.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","23.32"],"color":["7.3","17.3","21.4"],"red":["7.3","17.3"],"your":["7.4","17.4","23.31","23.32","27.31","27.32","27.47"],"02":["7.5","9.4","17.5","19.3","19.4","23.30","27.30"],"update":["7.5","17.5"],"the":["7.5","17.5","21.2","22.4","23.10","26.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"],"item":["9.3","9.4","19.3","19.4"],"onselect":["9.4","19.4","23.30","27.30"],"pip":["9.5","19.5"],"mode":["9.5","19.5"],"close":["9.5","19.5"],"height":["9.5","9.8","19.8"],"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","23.7","23.10","23.47"],"to":["10.2","12.42","12.43","14.0","23.1"],"easily":["10.2"],"distinguish":["10.2"],"between":["10.2"],"and":["10.2","15.29","21.1"],"by":["10.4"],"zh":["10.6"],"cn":["10.6"],"of":["10.8","10.9","10.10","10.16","12.45","16.1","23.1"],"div":["10.8","10.9","10.10","10.11","10.12","10.16","15.5","15.29","19.6","23.11","23.21","23.27","23.36","23.37","23.38","23.41","23.48","27.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","23.21","23.27","23.36","23.37","23.38","23.41","23.48","23.51","27.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","23.14","23.15","23.16","23.18","23.21","23.26","23.27","23.36","23.37","23.38","23.41","23.44","23.48","23.51","27.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","23.6","23.8","23.12","23.14","23.15","23.16","23.18","23.20","23.21","23.23","23.24","23.26","23.27","23.36","23.37","23.38","23.44","23.46","23.48","23.49","23.51","27.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","23.1","23.37"],"details":["10.12"],"all":["11.6","21.7"],"manually":["12.0","22.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"],"already":["12.46"],"been":["12.46","20.13"],"loaded":["12.46","12.50"],"or":["12.46","12.53","23.22"],"media":["12.47","12.49","12.58","21.1"],"resource":["12.48"],"type":["12.48","25.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","23.1"],"say":["14.0"],"i":["14.0"],"want":["14.0","23.10"],"write":["14.0"],"that":["14.0"],"displays":["14.0"],"an":["14.0","23.43"],"image":["14.0"],"ad":["14.0"],"when":["14.0","21.8","21.9"],"automatically":["15.5","20.6"],"execute":["15.5"],"similar":["15.5","23.11"],"logic":["15.5"],"called":["15.5"],"t":["15.12"],"some":["15.16","23.22"],"videos":["15.16"],"may":["15.16","21.5","23.22"],"not":["15.16","21.5","21.7"],"switch":["15.20"],"visible":["15.29","25.5"],"resize":["15.33","21.11"],"object":["16.1","18.1","21.7","23.11"],"triggered":["17.1"],"after":["17.1","25.16"],"yellow":["19.3"],"step":["19.6"],"pnpm":["20.1","24.1"],"unpkg":["20.2","20.11","21.3","24.2","25.3"],"player":["20.3","21.13","23.47"],"s":["20.3"],"dimensions":["20.3"],"depend":["20.3"],"instance":["20.4","23.41"],"getinstance":["20.4"],"path":["20.5"],"imported":["20.6"],"useref":["20.8","24.8"],"export":["20.10"],"return":["20.10","21.5"],"https":["20.11"],"cdn":["20.11","24.11"],"npm":["20.11","24.11","25.0"],"dist":["20.11","24.11"],"plugin":["20.12","21.9","25.20"],"danmuku":["20.12","21.6","21.10","25.20"],"doctype":["20.12","24.12"],"agent":["20.13"],"added":["20.13"],"head":["20.13"],"title":["20.13"],"demo":["20.13","24.13"],"branch":["21.0"],"runtime":["21.0"],"entrypoint":["21.0"],"build":["21.1"],"script":["21.2"],"javascript":["21.2"],"projects":["21.2"],"can":["21.2"],"import":["21.2","22.0"],"ffffff":["21.4"],"border":["21.4"],"panel":["21.5","21.9"],"moves":["21.5"],"points":["21.5","25.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","25.5","25.19"],"submissions":["21.5"],"beforevisible":["21.5","25.5"],"index":["21.6","21.10","25.20"],"current":["21.7","21.8","23.41"],"as":["21.7","23.47"],"three":["21.7"],"arrow":["21.7"],"retain":["21.7"],"their":["21.7"],"lexical":["21.7"],"does":["21.7"],"call":["21.7"],"perform":["21.7","21.9"],"application":["21.7"],"undefined":["21.8"],"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","25.20"],"danmu":["21.10"],"mutates":["21.11"],"inner":["21.11"],"point":["21.11"],"arrays":["21.11"],"historical":["21.11"],"compatibility":["21.11","23.22"],"copy":["21.11"],"each":["21.11"],"pair":["21.11"],"reusing":["21.11"],"original":["21.11"],"successful":["21.11"],"load":["21.11"],"redraws":["21.11"],"hidden":["21.12"],"shown":["21.12"],"reset":["21.12"],"items":["21.12"],"destroy":["21.12"],"onerror":["21.13","25.21"],"error":["21.13","25.21"],"artplayerplugindanmuku":["21.13","25.10","25.12","25.21"],"you":["22.0","23.10"],"need":["22.0","23.1"],"change":["22.4","26.4"],"size":["23.1"],"example":["23.1"],"equivalent":["23.4"],"muted":["23.10"],"if":["23.10"],"css":["23.11","27.1"],"fit":["23.11"],"cover":["23.11"],"description":["23.19"],"increase":["23.19"],"volume":["23.19","24.9"],"decrease":["23.19"],"forward":["23.19"],"backward":["23.19"],"this":["23.22","27.4"],"cause":["23.22"],"performance":["23.22"],"issues":["23.22"],"low":["23.22"],"via":["23.27"],"menu":["23.31","27.31"],"left":["23.32","27.32"],"something":["23.35","27.35"],"dosomething":["23.35","27.35"],"onvttload":["23.37"],"modifying":["23.37"],"text":["23.37"],"loading":["23.39","27.39"],"modify":["23.43"],"existing":["23.43"],"because":["23.47"],"uses":["23.47"],"key":["23.47"],"class":["24.3"],"get":["24.4"],"d":["24.6"],"选项":["24.10"],"lang":["24.12","26.2","26.3"],"meta":["24.13"],"charset":["24.13"],"utf":["24.13"],"类型入口与本轮修复尚未发布到":["25.0"],"使用本站构建的插件与样本":["25.1"],"接入自己的应用时":["25.1"],"com":["25.3"],"弹幕模式":["25.4"],"滚动":["25.4"],"默认":["25.4"],"顶部":["25.4"],"弹幕载入前的过滤器":["25.5"],"只支持返回布尔值":["25.5"],"输入框发送前的过滤器":["25.5"],"支持返回":["25.5"],"promise":["25.5"],"弹幕显示前的过滤器":["25.5"],"弹幕层是否可见":["25.5"],"emitter":["25.5"],"是否开启弹幕发射器":["25.5"],"maxlength":["25.5"],"plugins":["25.6","25.10","25.12"],"xml":["25.6","25.11","25.12","25.13"],"这是用户在输入框输入弹幕文本":["25.6"],"然后点击发送按钮后触发的函数":["25.6"],"你可以对弹幕做合法校验":["25.6"],"或者做存库处理":["25.6"],"当返回true后才表示把弹幕加入到弹幕队列":["25.6"],"async":["25.6"],"const":["25.6"],"隐藏弹幕":["25.11"],"发送弹幕":["25.12"],"弹幕大小":["25.13"],"input":["25.13"],"重新加载当前弹幕库":["25.14"],"catch":["25.14"],"queryselector":["25.16","27.27"],"danmus":["25.18"],"加载弹幕":["25.18"],"length":["25.18"],"弹幕错误":["25.18"],"上的插件对象不是同一个对象":["25.19"],"后续命令继续通过注册的插件调用即可":["25.19"],"抛出或拒绝时会在控制台报告错误":["25.19"],"外":["26.0"],"不再捆绑其它多国语言":["26.0"],"需要自行导入需要的语言":["26.0"],"language":["26.4"],"您可能需要初始化容器元素的大小":["27.1"],"如":["27.1"],"等同于":["27.4"],"document":["27.27"],"control":["27.32"],"文本的函数":["27.37"],"修改现有的语言":["27.43"],"id":["27.47"]},{"0":["5.12","20.5","20.9"],"1":["9.8","13.25","19.8","25.13"],"2":["13.26","25.4"],"3":["23.1"],"4":["23.6","23.11","23.12","23.14","23.15","23.16","23.18","23.20","23.21","23.26","23.37","23.38","23.41","23.44","23.48","23.51"],"5":["9.8","13.23","19.8","20.9","24.9","25.20"],"6":["15.42"],"7":["15.4","15.29","23.27","23.38"],"8":["20.13","23.41","24.12"],"9":["15.5","23.29","27.29"],"10":["9.8","13.12","13.14","13.27","19.8"],"11":["23.43","27.43"],"12":["23.37","25.13","25.20","27.37"],"20":["13.11"],"22":["9.2","9.6","9.7","19.2","19.5","19.7"],"25":["25.13"],"32":["0.14","10.14"],"50":["25.13"],"60":["23.34","25.5","27.34"],"120":["27.34"],"150":["9.3","19.3"],"200":["21.5","25.5"],"404":["2.11","12.11"],"500":["13.21"],"1000":["21.5","23.2","25.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","23.33","23.34","23.50","24.5","25.9","25.15","25.16","25.17","25.20","25.21","26.1","27.7","27.25","27.33","27.36","27.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","23.29","23.31","23.32","25.21","27.29","27.30","27.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","23.29","23.31","23.32","27.29","27.30","27.31"],"warning":["0.2","1.6","5.12","10.1","10.5","10.6","15.20","15.22","15.41","22.0","23.2","23.4","23.17","23.19","23.40","24.3","24.4","27.10","27.40","27.47"],"提示":["0.2","5.12","24.3","27.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","23.29","23.32","25.10","25.11","25.12","27.29","27.31","27.32"],"event":["0.3","10.3","16.1","25.11"],"你可以修改":["0.4"],"即可":["0.4"],"zh":["0.6"],"cn":["0.6","22.4","26.4"],"your":["0.6","10.6","15.33","20.3","21.1","22.3","22.4","23.3","26.3","26.4","27.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","25.10"],"some":["0.8","0.9","0.10"],"text":["0.8","0.9","0.10","17.1","21.6","25.6","25.12","25.20"],"position":["0.9","5.22","5.37","7.1","8.4","14.0","17.1","18.4","25.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","23.25","23.33","23.34","23.42","23.50","24.5","25.7","25.9","25.15","25.16","25.17","25.20","25.21","26.1","27.7","27.17","27.25","27.33","27.36","27.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","23.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","22.1","23.25","23.33","23.36","23.42","23.50","25.7","25.8","25.16","27.5","27.7","27.17","27.25","27.36","27.37","27.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","22.1","23.25","23.33","23.36","23.42","23.50","25.7","25.16","26.1","27.5","27.7","27.17","27.25","27.36","27.37","27.42","27.50"],"subtitleoffset":["0.16"],"return":["0.17","9.3","9.4","10.17","19.3","19.4","25.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","22.1","23.5","23.9","23.13","23.25","23.27","23.33","23.36","23.37","23.42","25.8","27.5","27.6","27.8","27.9","27.12","27.13","27.14","27.15","27.16","27.18","27.20","27.21","27.23","27.24","27.26","27.28","27.36","27.37","27.38","27.41","27.42","27.44","27.45","27.46","27.48","27.49","27.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.1","23.3","23.25","23.42","24.5","25.7","25.8","25.16","25.21","27.3","27.5","27.8","27.9","27.13","27.14","27.15","27.16","27.17","27.21","27.25","27.26","27.38","27.42","27.45","27.46","27.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","23.11","23.21","23.27","23.37","23.38","23.41","23.48","23.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","25.16","27.10","27.33","27.47"],"setting":["2.17","2.20","2.28","3.30","9.1","9.6","12.17","12.20","13.30","19.2","19.6","23.7"],"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","23.3","23.5","23.6","23.8","23.9","23.12","23.14","23.15","23.16","23.18","23.20","23.21","23.23","23.24","23.26","23.28","23.35","23.36","23.37","23.38","23.44","23.45","23.46","23.48","23.49","23.51","24.9","25.21","27.6","27.11","27.22","27.35","27.37","27.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","23.5","23.6","23.8","23.9","23.12","23.13","23.14","23.15","23.16","23.20","23.23","23.24","23.27","23.28","23.36","23.37","23.45","23.46","23.49","23.51","24.10","25.8","25.21","27.3","27.6","27.8","27.9","27.12","27.13","27.14","27.15","27.16","27.18","27.20","27.21","27.22","27.23","27.24","27.26","27.28","27.36","27.37","27.38","27.41","27.44","27.45","27.46","27.48","27.49","27.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","23.3","23.5","23.6","23.8","23.12","23.14","23.15","23.16","23.18","23.20","23.21","23.23","23.24","23.26","23.36","23.37","23.38","23.44","23.45","23.46","23.48","23.49","23.51","24.9","25.21","27.11","27.22","27.27","27.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","23.6","23.8","23.12","23.14","23.15","23.16","23.18","23.20","23.21","23.23","23.24","23.26","23.27","23.35","23.36","23.37","23.38","23.41","23.44","23.45","23.46","23.48","23.49","23.51","27.11","27.35","27.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","25.10"],"tooltip":["4.0","7.1","9.7","19.7","27.32"],"muted":["5.2","5.3","5.25","15.2","15.3","27.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","25.10","27.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","23.29","23.31","23.32","25.9","25.11","25.12","27.29","27.31"],"theme":["5.44","15.44","25.5"],"settimeout":["5.45","6.5","8.5","9.9","10.14","15.45","16.5","18.5","19.9","27.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","25.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","23.29","23.31","23.32","27.29","27.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","23.32","24.5","25.13","27.32"],"color":["7.4","17.4","23.32","25.4","27.32"],"red":["7.4","17.4"],"control":["7.5","17.5"],"by":["7.5","8.5","9.9","17.5","18.5","19.9","23.2","23.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","23.1","24.5","27.1"],"src":["9.2","9.5","14.0","19.5","23.39","27.39"],"quality":["9.3","19.3"],"1080p":["9.3","19.3"],"state":["9.5","23.39","25.6","27.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","23.1","24.5","27.1"],"icon":["9.7","19.7"],"range":["9.8","19.8","25.13"],"instance":["10.0","24.4"],"which":["10.0","17.1"],"note":["10.1","15.20","15.22","15.41","23.2","23.17","23.19"],"if":["10.1","10.4","15.41","20.11","23.47","25.6","25.11","25.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"],"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.40"],"is":["10.5","12.48","15.33","20.4"],"using":["10.6"],"can":["10.6","23.40"],"only":["10.6","23.40"],"to":["10.7","11.6","15.20","15.22","20.5","21.12","24.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","23.3","23.5","23.6","23.8","23.9","23.12","23.13","23.14","23.15","23.16","23.18","23.20","23.23","23.24","23.26","23.28","23.35","23.36","23.37","23.38","23.44","23.45","23.46","23.49","23.51","27.6","27.11","27.12","27.18","27.20","27.22","27.23","27.24","27.28","27.35","27.37","27.38","27.41","27.44","27.48","27.49","27.51"],"classname":["10.11","13.34","21.9","21.11","23.11","23.22"],"run":["10.11","13.34","21.9","21.11","23.11","23.22"],"code":["10.11","13.34","15.5","21.9","21.11","23.11","23.22","23.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"],"duration":["12.45"],"partially":["12.46"],"reached":["12.47"],"not":["12.48","20.4","21.0","21.12","21.13"],"has":["12.49"],"delayed":["12.53"],"due":["12.53","15.20","15.22","23.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","23.19"],"subject":["13.0"],"change":["13.0"],"div":["13.34","20.13","21.9","21.11","23.22","24.13"],"ads":["14.0"],"100px":["14.0"],"display":["14.0","25.13"],"none":["14.0"],"20px":["14.0"],"have":["15.12","15.16","21.0"],"functionality":["15.12"],"a":["15.16","22.0"],"such":["15.16"],"as":["15.16"],"live":["15.16"],"streams":["15.16"],"or":["15.16","17.1","23.1"],"browser":["15.20","15.22","23.17"],"security":["15.20","15.22","23.17"],"mechanisms":["15.22","23.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","24.1"],"com":["20.2","20.11","21.3","24.2","24.11"],"of":["20.3"],"its":["20.3"],"therefore":["20.3"],"must":["20.3"],"reactive":["20.4"],"modifying":["20.4"],"600px":["20.5","24.5"],"400px":["20.5","23.1","27.1"],"margin":["20.5"],"60px":["20.5"],"auto":["20.5"],"when":["20.6","21.7","21.11","22.0"],"null":["20.8","24.8"],"volume":["20.9"],"option":["20.10","24.10","25.18"],"tip":["20.11"],"lang":["20.12","22.2","22.3"],"en":["20.12","24.12"],"head":["20.12","24.12"],"meta":["20.12","20.13","24.12"],"charset":["20.12","20.13","24.12"],"utf":["20.12","20.13","24.12"],"body":["20.13","24.13"],"class":["20.13","24.13"],"fixes":["21.0"],"yet":["21.0"],"published":["21.0"],"in":["21.1"],"application":["21.1","21.12"],"default":["21.2"],"factory":["21.2"],"from":["21.2","21.6"],"css":["21.4","23.1"],"properties":["21.4"],"for":["21.4","21.12","23.47"],"explicit":["21.4","21.13"],"called":["21.5"],"before":["21.5","21.7"],"emitter":["21.5"],"s":["21.5"],"sending":["21.5"],"ui":["21.5"],"maxlength":["21.5"],"length":["21.5"],"locktime":["21.5","25.5"],"between":["21.5"],"plugins":["21.6","21.13","25.9","25.15","25.16","25.17","25.20"],"artplayerplugindanmuku":["21.6","25.9","25.15","25.16","25.17"],"hello":["21.6"],"validation":["21.7"],"calling":["21.7"],"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","23.27"],"createelement":["21.10"],"queryselector":["21.10","23.27"],"after":["21.10","21.11"],"curve":["21.11"],"so":["21.11"],"resend":["21.11"],"those":["21.11"],"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"],"does":["21.13"],"require":["22.0"],"cannot":["22.0"],"be":["22.0"],"matched":["22.0"],"script":["22.2","26.2"],"play":["22.4","23.19","26.4"],"300px":["23.1","27.1"],"three":["23.2"],"file":["23.2"],"formats":["23.2"],"caches":["23.7"],"last":["23.7"],"upon":["23.7","23.10"],"immediately":["23.10"],"page":["23.10"],"load":["23.10"],"space":["23.19"],"toggle":["23.19"],"pause":["23.19"],"devices":["23.22"],"older":["23.22"],"browsers":["23.22"],"opacity":["23.29","27.29"],"setting02":["23.30","27.30"],"green":["23.32","27.32"],"one":["23.34","27.34"],"more":["23.34","27.34"],"chance":["23.34","27.34"],"ploading":["23.39","27.39"],"gif":["23.39","27.39"],"recognition":["23.40"],"player":["23.40","25.21"],"parse":["23.40"],"suffixes":["23.40"],"like":["23.40"],"cache":["23.47"],"progress":["23.47"],"however":["23.47"],"播放器的尺寸依赖于容器":["24.3"],"getinstance":["24.4"],"path":["24.5"],"ts":["24.6"],"types":["24.10"],"const":["24.10"],"unpkg":["24.11"],"title":["24.12"],"cdn":["25.0"],"请替换容器和媒体":["25.1"],"pnpm":["25.2"],"底部":["25.4"],"ffffff":["25.4"],"弹幕颜色":["25.4"],"默认使用配置":["25.4"],"弹幕输入框最大长度":["25.5"],"输入框锁定时间":["25.5"],"dark":["25.5"],"弹幕主题":["25.5"],"支持":["25.5"],"和":["25.5"],"light":["25.5"],"只在自定义挂载时生效":["25.5"],"isdirty":["25.6"],"fuck":["25.6"],"i":["25.6"],"test":["25.6"],"await":["25.6"],"这里是所有弹幕的过滤器":["25.6"],"xml":["25.10"],"隐藏弹幕":["25.10"],"prompt":["25.12"],"请输入弹幕文本":["25.12"],"弹幕测试文本":["25.12"],"trim":["25.12"],"min":["25.13"],"max":["25.13"],"step":["25.13"],"value":["25.13"],"flex":["25.13"],"切换":["25.14"],"切换到新的弹幕库":["25.14"],"config":["25.14","25.18"],"v2":["25.14"],"fullscreenweb":["25.16"],"配置变化":["25.18"],"stop":["25.18"],"弹幕停止":["25.18"],"输入框可再次尝试发送":["25.19"],"beforevisible":["25.19"],"拒绝时":["25.19"],"对该项在当前调度轮报告一次":["25.19"],"error":["25.19"],"热力图示例":["25.20"],"time":["25.20"],"当无法匹配到语言时":["26.0"],"会默认显示英文":["26.0"],"i18n":["26.0","26.3"],"或者使用":["27.1"],"aspect":["27.1"],"热键":["27.19"],"描述":["27.19"],"增加音量":["27.19"],"降低音量":["27.19"],"innerhtml":["27.27"],"sd":["27.33"],"后缀的识别":["27.40"],"播放器只能解析这种后缀":["27.40"],"因为播放器默认使用":["27.47"]},{"0":["24.5"],"1":["21.6","21.9","21.10"],"2":["5.31"],"4":["23.22"],"5":["5.8","5.9","5.15","15.8","21.11","27.7"],"8":["2.0","12.0","20.12"],"9":["5.32","23.1"],"10":["5.11","5.13","15.11","15.13","21.11","25.20"],"12":["21.11"],"16":["5.32","15.32","23.1","25.12","27.1"],"22":["19.6"],"30":["21.11","25.20"],"60":["21.5","23.36","27.36"],"75":["21.11","25.20"],"120":["23.34"],"180":["23.34","27.34"],"200":["25.6"],"240":["27.34"],"360":["9.3"],"720":["9.3","19.3"],"1000":["0.8","0.9","0.10","0.16","27.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","23.29","23.30","23.31","23.32","23.39","23.42","23.50","24.13","27.2","27.4","27.7","27.17","27.19","27.31","27.32","27.39","27.42","27.50"],"提示":["0.1","5.16","5.20","5.22","5.33","27.2","27.7","27.10","27.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","26.0","27.50"],"使用":["0.6"],"只能更新实例化之后的":["0.6"],"to":["0.7","21.0","21.2","23.2"],"play":["0.7","4.0","5.2","10.7","15.2","22.3","23.2","26.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","23.29","23.31","25.4","27.29","27.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","23.25","23.33","27.17","27.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","25.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","25.15","25.16","25.17","25.21","27.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","23.5","23.6","23.8","23.9","23.12","23.13","23.14","23.15","23.16","23.18","23.20","23.23","23.24","23.26","23.28","23.35","23.37","23.38","23.41","23.44","23.45","23.46","23.49","23.51","24.10","25.8","27.6","27.8","27.9","27.11","27.12","27.13","27.14","27.15","27.16","27.18","27.20","27.21","27.22","27.23","27.24","27.26","27.28","27.35","27.38","27.41","27.44","27.45","27.46","27.48","27.49","27.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","22.1","23.9","23.13","23.28","23.36","24.10","25.8","27.5","27.6","27.8","27.9","27.12","27.13","27.14","27.15","27.16","27.18","27.20","27.21","27.22","27.23","27.24","27.26","27.28","27.37","27.38","27.42","27.44","27.45","27.46","27.48","27.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","22.1","23.5","23.25","23.36","23.37","23.38","23.42","24.10","25.7","25.8","27.5","27.8","27.9","27.13","27.14","27.15","27.16","27.17","27.21","27.26","27.37","27.38","27.42","27.45","27.46","27.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","23.11","23.21","23.22","23.41","23.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","27.32"],"const":["2.0","5.18","5.19","9.5","12.0","15.18","15.19","19.5","20.10","25.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","24.5","25.17","27.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"],"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","23.3","23.6","23.8","23.11","23.12","23.14","23.15","23.16","23.18","23.20","23.21","23.22","23.23","23.24","23.26","23.28","23.35","23.38","23.41","23.44","23.45","23.46","23.48","23.49","23.51","24.10","24.13","27.3","27.11","27.22","27.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","23.5","23.6","23.8","23.9","23.11","23.12","23.13","23.14","23.15","23.16","23.18","23.20","23.21","23.22","23.23","23.24","23.26","23.28","23.35","23.38","23.44","23.45","23.46","23.48","23.49","23.51","24.10","25.1","27.6","27.11","27.12","27.18","27.20","27.22","27.23","27.24","27.27","27.28","27.35","27.44","27.48","27.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","23.5","23.6","23.8","23.9","23.12","23.13","23.14","23.15","23.16","23.18","23.20","23.21","23.22","23.23","23.24","23.26","23.28","23.35","23.37","23.38","23.41","23.44","23.45","23.46","23.48","23.49","23.51","24.10","27.3","27.6","27.8","27.9","27.11","27.12","27.13","27.14","27.15","27.16","27.18","27.20","27.21","27.22","27.23","27.24","27.26","27.27","27.28","27.35","27.38","27.41","27.44","27.45","27.46","27.48","27.49","27.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","25.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","23.29","23.31","25.11","25.18","27.29","27.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"],"的功能是一样的":["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","25.15"],"当你的容器只有宽度":["5.33"],"playsinline":["5.34","15.34"],"m3u8":["5.35","23.2","27.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","23.36","23.39","27.36","27.39"],"组件点击事件":["6.1","8.1"],"mounted":["6.1","8.1","16.1","18.1","23.29","25.13","27.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","23.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.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","25.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"],"pip":["9.9","19.9"],"mode":["9.9","19.9"],"close":["9.9","19.9"],"are":["10.0","11.0","15.0","23.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","24.12"],"a":["10.2","12.48","15.12","15.20","15.22"],"prefix":["10.2"],"is":["10.2","15.12","20.5","23.47"],"definition":["10.2","10.5"],"note":["10.3","10.14","15.28","20.13","23.4"],"if":["10.3","10.6","10.7","21.12","23.4","23.17"],"you":["10.3","10.6","10.7","23.47"],"need":["10.3","20.11","20.13","23.47"],"that":["10.3","15.16","21.7","21.8"],"should":["10.3"],"only":["10.3","10.14","15.5","15.41","23.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","23.19"],"instantiation":["10.6"],"want":["10.6","10.7"],"before":["10.6","20.13","21.12"],"hide":["10.7","25.18"],"some":["10.8","10.9","10.10"],"text":["10.8","10.9","10.10","21.10","21.11","25.7","25.9"],"position":["10.9","15.37"],"these":["10.14"],"take":["10.14","23.19"],"effect":["10.14","23.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.0","23.10","23.30","23.31","23.32","23.50"],"property":["12.45"],"changes":["12.45"],"method":["12.46","15.12"],"called":["12.46"],"its":["12.47","21.2"],"supported":["12.48","23.2"],"finished":["12.49"],"lack":["12.53"],"resource":["12.54"],"unexpectedly":["12.58"],"not":["12.58","20.5"],"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","23.3","23.18","23.21","23.22","23.26","23.35","23.38","23.41","23.44","23.48","24.3","27.35"],"log":["13.2","20.5","24.5"],"new":["13.14","13.15","13.16","13.25","13.34","20.8","20.9","23.11","23.22","23.27","23.41","24.8","27.27"],"var":["13.34","23.11","23.22"],"art":["13.34","23.11","23.22","23.27"],"controls":["14.0","25.20"],"tooltip":["14.0","16.1"],"returns":["15.12"],"promise":["15.12","21.6"],"it":["15.12","15.33","15.41","20.13"],"resolve":["15.12","21.6","25.9"],"s":["15.12","15.41","21.13"],"been":["15.16"],"fully":["15.16"],"decoded":["15.16"],"in":["15.16","20.4","21.12"],"mechanisms":["15.20"],"user":["15.20","15.22"],"interaction":["15.20","15.22"],"e":["15.20","15.22","23.7"],"g":["15.20","15.22","23.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","25.20"],"have":["20.3"],"defined":["20.3"],"tip":["20.3","20.9","24.9","24.11"],"see":["20.3"],"more":["20.3","23.10","23.42"],"will":["20.4"],"reactive":["20.5"],"import":["20.6","20.12","24.12"],"current":["20.8","24.8"],"full":["20.9"],"typescript":["20.9","24.9"],"support":["20.11"],"even":["20.11"],"older":["20.11"],"configuration":["20.11","23.31","23.32"],"title":["20.12"],"map":["20.12","24.12","25.20"],"npm":["21.0"],"unversioned":["21.0"],"cdn":["21.0"],"links":["21.0"],"still":["21.0"],"own":["21.1"],"builds":["21.2"],"expose":["21.2"],"artplayerplugindanmuku":["21.2","21.10","25.7","25.8"],"pass":["21.2"],"result":["21.2"],"preserved":["21.4"],"negative":["21.4"],"times":["21.4"],"clamped":["21.4"],"zero":["21.4"],"other":["21.4","21.7","23.2"],"than":["21.4"],"theme":["21.5"],"dark":["21.5","25.16"],"light":["21.5"],"external":["21.5"],"font":["21.5","25.5"],"size":["21.5","25.5"],"override":["21.5"],"slider":["21.5"],"definitions":["21.5"],"min":["21.5","25.5"],"max":["21.5","25.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","23.47"],"different":["21.8","23.47"],"facade":["21.8"],"keep":["21.8"],"plugins":["21.9","21.10","21.11","25.7","25.8","25.21"],"emitter":["21.9"],"function":["21.9","21.11","25.10","25.13","25.20","27.32"],"updatecomments":["21.9"],"fullscreenweb":["21.10"],"input":["21.10"],"example":["21.11"],"particular":["21.12"],"an":["21.12","23.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"],"displayed":["22.0"],"default":["22.0"],"i18n":["22.0","22.3"],"syntax":["22.0","23.50"],"lang":["22.1","26.1"],"window":["22.2","26.2"],"imported":["22.4","26.4"],"use":["23.1"],"aspect":["23.1"],"ratio":["23.1","27.1"],"ogg":["23.2","27.2"],"webm":["23.2","27.2"],"like":["23.2"],"or":["23.2"],"flv":["23.2"],"inside":["23.4"],"callback":["23.4"],"refers":["23.4"],"instance":["23.4"],"however":["23.4"],"arrow":["23.4"],"next":["23.7"],"initialization":["23.7"],"page":["23.7"],"refresh":["23.7"],"must":["23.10"],"be":["23.10"],"set":["23.10"],"screenshotting":["23.17"],"may":["23.17"],"fail":["23.17"],"source":["23.17"],"player":["23.19"],"gains":["23.19"],"focus":["23.19"],"js":["23.22"],"innerhtml":["23.27"],"component":["23.31","23.32"],"please":["23.32"],"refer":["23.32"],"sd":["23.33"],"480p":["23.33","27.33"],"谁でもいいはずなのに":["23.34","27.34"],"夏の想い出がまわる":["23.34","27.34"],"all":["23.39"],"icon":["23.39"],"but":["23.40"],"cannot":["23.40"],"zh":["23.43","27.43"],"cn":["23.43","27.43"],"then":["23.47"],"reference":["23.50"],"的尺寸":["24.3"],"所以你的容器":["24.3"],"必须是有尺寸的":["24.3"],"非响应式":["24.4"],"在":["24.4"],"400px":["24.5"],"margin":["24.5"],"60px":["24.5"],"auto":["24.5"],"全部":["24.9"],"定义":["24.9"],"volume":["24.10"],"假如你要兼容更古老的浏览器时":["24.11"],"请修改以下配置然后自行构建":["24.11"],"body":["24.12"],"默认仍加载已发布版本":["25.0"],"初始为白色":["25.4"],"border":["25.4"],"弹幕是否有描边":["25.4"],"默认为":["25.4"],"不透明度配置项":["25.5"],"弹幕字号配置项":["25.5"],"显示区域配置项":["25.5"],"弹幕速度配置项":["25.5"],"颜色列表配置项":["25.5"],"可覆盖滑块的":["25.5"],"包含来自服务端的和来自用户输入的":["25.6"],"length":["25.6"],"这是弹幕即将显示的时触发的函数":["25.6"],"当返回true后才表示可以马上发送到播放器里":["25.6"],"target":["25.11"],"innertext":["25.11"],"else":["25.11"],"color":["25.12"],"math":["25.12"],"floor":["25.12"],"random":["25.12"],"0xffffff":["25.12"],"tostring":["25.12"],"alignitems":["25.13"],"center":["25.13"],"queryselector":["25.13"],"追加":["25.14"],"追加新的弹幕库":["25.14"],"参数类型和option":["25.14"],"danmuku相同":["25.14"],"xml":["25.15","25.16","25.17"],"start":["25.18"],"弹幕开始":["25.18"],"弹幕隐藏":["25.18"],"其他项继续处理":["25.19"],"暂停后恢复":["25.19"],"或更换回调后":["25.19"],"仍符合时间条件的项可重试":["25.19"],"暂停":["25.19","27.19"],"drawpoints":["25.20"],"offsetwidth":["25.20"],"显式描述事件参数":["25.21"],"不会自动扩展核心历史事件声明":["25.21"],"工厂仍暴露":["25.21"],"写法参考":["26.0","27.50"],"默认支持三种视频文件格式":["27.2"],"播放器会缓存最后一次音量的大小":["27.7"],"假如希望默认进入页面就能自动播放视频":["27.10"],"必需为":["27.10"],"视频快进":["27.19"],"视频快退":["27.19"],"space":["27.19"],"切换播放":["27.19"],"subtitle":["27.25"],"args":["27.32"],"hd":["27.33"],"webkit":["27.38"],"全部图标的定义":["27.39"],"但无法解析这种后缀":["27.40"],"作为":["27.47"],"key":["27.47"],"来缓存播放进度的":["27.47"],"但假如你的同一个视频的":["27.47"]},{"0":["5.10","5.11","5.13","5.16","5.23","15.10","15.11","15.13","15.16","15.23","20.10","24.10"],"1":["5.47","9.7","15.47","19.7","25.7","25.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","24.10"],"9":["15.32","27.1"],"10":["5.46","9.7","15.46","19.7","23.36","27.36"],"50":["21.5"],"60":["5.46","15.46"],"240":["23.34"],"300":["23.34","27.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","22.0","23.39","23.50","24.9","27.39"],"d":["0.2","0.5","2.0","10.2","10.5","11.6","12.0","22.0","23.39","23.50","26.0","27.39","27.50"],"ts":["0.2","0.5","1.6","2.0","10.2","10.5","11.6","12.0","22.0","23.39","23.50","26.0","27.39","27.50"],"warning":["0.3","0.9","0.10","0.14","0.16","2.0","10.8","10.9","10.10","10.16","12.0","23.1","23.36","23.43","24.5","27.1","27.29","27.30","27.36","27.43"],"提示":["0.3","0.14","5.28","5.41","24.13","27.1","27.4","27.19"],"假如你需要一些":["0.3","5.41"],"事件只存在于播放器的生命周期上时":["0.3","5.41"],"强烈建议使用这些函数":["0.3"],"以避免造成内存泄漏":["0.3","5.41"],"your":["0.4","5.17","10.4","15.17"],"假如想在实例化之前更新":["0.6"],"请使用基础选项的":["0.6"],"来更新":["0.6"],"的显示":["0.7"],"组件配置":["0.8","0.9","0.10","27.29","27.31","27.32"],"请参考以下地址":["0.8","0.9","0.10","0.16","27.29","27.30","27.31","27.32"],"component":["0.8","0.9","0.10","0.16","10.8","10.9","10.10","10.16","23.29","23.30","27.29","27.30","27.31","27.32"],"color":["0.11","10.11","23.37","27.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","23.22","23.45","27.22","27.45"],"只在播放器获得焦点后":["0.14","27.19"],"如点击了播放器后":["0.14","27.19"],"这些快捷键才会生效":["0.14","27.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","23.8","23.9","23.11","23.12","23.13","23.14","23.15","23.16","23.18","23.20","23.23","23.24","23.26","23.27","23.38","23.44","23.46","23.48","23.49","25.12","27.8","27.9","27.11","27.12","27.13","27.14","27.15","27.16","27.18","27.20","27.23","27.24","27.26","27.27","27.38","27.44","27.46","27.48","27.49"],"设置面板":["0.16"],"html":["0.16","10.16","20.1","23.42","23.43","24.1","25.2","27.42","27.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","25.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","25.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","25.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","23.3","23.6","23.8","23.11","23.12","23.18","23.20","23.21","23.22","23.23","23.24","23.26","23.27","23.35","23.44","23.49","27.3","27.11","27.27","27.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","23.3","23.6","23.8","23.9","23.11","23.12","23.13","23.14","23.15","23.16","23.18","23.20","23.21","23.22","23.23","23.24","23.26","23.27","23.28","23.35","23.44","23.45","23.46","23.48","23.49","23.51","27.3","27.6","27.11","27.12","27.18","27.20","27.22","27.23","27.24","27.27","27.28","27.35","27.44","27.48","27.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","23.3","23.11","23.21","23.22","23.27","23.48","27.3","27.27"],"autoorientation":["3.21","13.21"],"show":["3.22","3.28","13.22","13.28","13.29","21.9","25.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","25.5"],"由于浏览器安全机制":["5.20","5.22","27.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","25.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","25.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"],"left":["8.5","18.5","23.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","23.4"],"will":["10.1","15.16","20.5","23.4","23.7"],"not":["10.1","13.34","15.5","23.4"],"respond":["10.1"],"immediately":["10.1","10.7"],"s":["10.3","21.2","23.40"],"lifecycle":["10.3"],"strongly":["10.3","15.41"],"recommended":["10.3","15.41"],"use":["10.3","10.6","15.41","21.12","23.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","23.2","23.10","23.29","23.30","23.31"],"option":["10.6"],"in":["10.6","20.5"],"basic":["10.6"],"settings":["10.6","23.42","23.43"],"for":["10.8","10.9","10.10","10.16","12.0","15.33","20.13","23.4","23.29"],"configuration":["10.8","10.9","10.10","23.29"],"refer":["10.8","10.9","10.10","10.16","12.0","23.2","23.29","23.30","23.31"],"srt":["10.11","23.25","27.25"],"settimeout":["10.12","10.13","10.15","15.3","15.21"],"gains":["10.14"],"focus":["10.14"],"e":["10.14","23.19"],"g":["10.14","23.19"],"clicking":["10.14","23.19"],"on":["10.17","15.4","21.11","23.2","23.19","25.6","25.20"],"a":["12.0","17.1"],"complete":["12.0"],"list":["12.0"],"state":["12.39"],"further":["12.42"],"buffering":["12.42","12.43"],"to":["12.46","15.33","23.29","23.30","23.31","23.32"],"reload":["12.46"],"it":["12.46","20.11"],"format":["12.48"],"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","23.3","23.11","23.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"],"triggering":["15.20","15.22"],"default":["15.26"],"is":["15.26","15.28","21.7","23.17"],"via":["15.28"],"you":["15.33","21.12","23.40"],"need":["15.33","21.12"],"determine":["15.33"],"timing":["15.33"],"setting":["15.33","23.14","23.15","23.16","23.25","27.14","27.15","27.16","27.25"],"m3u8":["15.35","23.41","27.2"],"000":["15.36"],"timeupdate":["15.39"],"this":["15.41","23.7"],"text":["16.1","18.1","21.12"],"when":["17.1","21.12"],"item":["17.1"],"clicked":["17.1"],"script":["20.1","24.1","25.2"],"examples":["20.3"],"at":["20.3"],"following":["20.3","23.32"],"link":["20.3"],"example":["20.3","24.3"],"update":["20.4","20.5"],"player":["20.4","20.12","21.2","24.12"],"directly":["20.5"],"modifying":["20.5"],"the":["20.5","23.32"],"definitions":["20.9","23.39"],"packages":["20.9","24.9"],"volume":["20.10"],"art8":["20.10","24.10"],"new":["20.10","24.10"],"yourself":["20.11"],"scripts":["20.11","24.11"],"reference":["20.11","22.0"],"documentation":["20.11"],"browserslist":["20.11","24.11"],"body":["20.12"],"div":["20.12","24.12"],"id":["20.12","24.12"],"importing":["20.13"],"dependency":["20.13"],"take":["20.13"],"effect":["20.13"],"release":["21.0"],"urls":["21.1"],"plugins":["21.2"],"array":["21.2"],"modes":["21.4"],"contain":["21.5"],"value":["21.5","23.7","25.5"],"hide":["21.5","21.9","25.5","25.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","25.5"],"strings":["21.5"],"empty":["21.5"],"uses":["21.5"],"built":["21.5"],"async":["21.6"],"retry":["21.7"],"if":["21.7","23.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"],"finished":["21.8"],"appeared":["21.8"],"appended":["21.9"],"scheduled":["21.9"],"from":["21.9"],"hidden":["21.9"],"ishide":["21.9"],"reset":["21.9","25.18"],"dark":["21.10"],"move":["21.10"],"later":["21.10"],"with":["21.10","23.17"],"otherelement":["21.10"],"drawpoints":["21.11"],"width":["21.11"],"controls":["21.11"],"offsetwidth":["21.11"],"map":["21.11"],"ratio":["21.11","25.20"],"loaded":["21.11","25.20"],"observe":["21.12"],"completion":["21.12"],"textcontent":["21.12","25.6"],"adding":["21.12"],"handler":["21.12"],"package":["21.13"],"readme":["21.13","25.21"],"md":["21.13","25.21"],"architecture":["21.13","25.21"],"describe":["21.13"],"module":["21.13"],"ownership":["21.13"],"maintenance":["21.13"],"remaining":["21.13"],"device":["21.13"],"combination":["21.13"],"validation":["21.13"],"see":["22.0"],"or":["22.1","26.1"],"note":["23.1"],"among":["23.1"],"all":["23.1"],"options":["23.1"],"only":["23.1"],"required":["23.1"],"third":["23.2"],"party":["23.2"],"libraries":["23.2"],"section":["23.2"],"point":["23.4"],"jpg":["23.5","27.5"],"ffad00":["23.6","27.6"],"read":["23.7","23.10"],"cached":["23.7"],"information":["23.10"],"policy":["23.10","27.10"],"changes":["23.10","27.10"],"cross":["23.17"],"origin":["23.17"],"website":["23.17"],"disable":["23.22"],"url":["23.27"],"panel":["23.30"],"address":["23.32"],"hd":["23.33"],"720p":["23.33","27.33"],"こんなとこにあるはずもないのに":["23.34","27.34"],"终わり":["23.34","27.34"],"generate":["23.36"],"online":["23.36"],"tool":["23.36","27.36"],"03a9f4":["23.37","27.37"],"font":["23.37","27.37"],"size":["23.37","27.37"],"30px":["23.37","27.37"],"webkit":["23.38"],"playsinline":["23.38","27.38"],"therefore":["23.40"],"best":["23.40"],"also":["23.40"],"start":["23.42","23.43","27.42","27.43"],"i18n":["23.42","27.42"],"tw":["23.43","27.43"],"more":["23.43"],"identify":["23.47"],"unique":["23.47"],"document":["23.51","27.51"],"createelement":["23.51","27.51"],"tip":["24.3"],"以下链接可以看到更多的使用例子":["24.3"],"里直接修改":["24.4","24.5"],"是不会改变播放器的":["24.4","24.5"],"非响应式":["24.5"],"在":["24.5"],"构建配置":["24.11"],"build":["24.11"],"参考文档":["24.11"],"你需要在引入":["24.13"],"依赖前来修改它才会生效":["24.13"],"style":["25.4"],"弹幕自定义样式":["25.4"],"默认为空对象":["25.4"],"steps":["25.5"],"每个":["25.5"],"step":["25.5"],"可包含":["25.5"],"的":["25.5"],"是上下边距数组":["25.5"],"用":["25.5"],"颜色字符串数组替换调色板":["25.5"],"空数组使用内置调色板":["25.5"],"弹幕已经出现在播放器里":["25.6"],"你可以访问到弹幕的dom元素里":["25.6"],"ref":["25.6"],"ଘ":["25.6"],"੭ˊᵕˋ":["25.6"],"੭":["25.6"],"使用数组":["25.7"],"time":["25.7","25.9"],"使用":["25.9"],"异步返回":["25.9"],"显示弹幕":["25.10","25.11"],"border":["25.12"],"error":["25.12"],"addeventlistener":["25.13"],"change":["25.13"],"fontsize":["25.13"],"const":["25.14"],"target":["25.14"],"destroy":["25.16","25.18"],"也可以手动挂载":["25.16"],"弹幕显示":["25.18"],"弹幕重置":["25.18"],"弹幕销毁":["25.18"],"seek":["25.19"],"隐藏":["25.19"],"和销毁会取消尚未完成的显示准备":["25.19"],"icons":["25.21"],"对象供自定义图标":["25.21"],"包内":["25.21"],"和":["25.21"],"维护模块职责":["25.21"],"验证命令及尚未完成的设备和组合验收":["25.21"],"全部选项里":["27.1"],"只有":["27.1"],"是必填的":["27.1"],"如需要播放":["27.2"],"或者":["27.2"],"flv":["27.2"],"等其它格式":["27.2"],"请参考左侧的":["27.2"],"第三方库":["27.2"],"回调函数里的":["27.4"],"就是播放器实例":["27.4"],"但回调函数假如使用了箭头函数":["27.4"],"则不会指向播放器实例":["27.4"],"下次初始化时":["27.7"],"如刷新页面":["27.7"],"播放器会读取该缓存值":["27.7"],"更多信息请阅读":["27.10"],"假如视频源地址和网站是跨域的":["27.17"],"可能会出现截图失败":["27.17"],"关闭毛玻璃效果":["27.22"],"在线生成预览图":["27.36"],"thumbnail":["27.36"],"所以假如你使用了":["27.40"],"最好同时要指明":["27.40"],"function":["27.41"],"更多的语言设置":["27.42","27.43"],"是不同的话":["27.47"],"那么你需要使用":["27.47"],"来标识视频的唯一":["27.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:"# Language Settings\r",p:`::: danger -Due to the increasing number of bundled multilingua ...`,l:"en/start/i18n.html",a:"language-settings"},"22.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"},"22.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"},"22.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"},"22.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"},"23.0":{t:"# Basic Options\r",p:"\r",l:"en/start/option.html",a:"basic-options"},"23.1":{t:"`container`\r",p:` -Type: String, Element -Default: #artplayer - -The DOM container ...`,l:"en/start/option.html#container",a:"container"},"23.2":{t:"`url`\r",p:` -Type: String -Default: '' - -The video source URL. -<div class ...`,l:"en/start/option.html#url",a:"url"},"23.3":{t:"`id`\r",p:` -Type: String -Default: '' - -The unique identifier for the playe ...`,l:"en/start/option.html#id",a:"id"},"23.4":{t:"`onReady`\r",p:` -Type: Function -Default: undefined - -The constructor accepts a ...`,l:"en/start/option.html#onready",a:"onready"},"23.5":{t:"`poster`\r",p:` -Type: String -Default: '' - -The video poster image, which only ...`,l:"en/start/option.html#poster",a:"poster"},"23.6":{t:"`theme`\r",p:` -Type: String -Default: #f00 - -The player's theme color, current ...`,l:"en/start/option.html#theme",a:"theme"},"23.7":{t:"`volume`\r",p:` -Type: Number -Default: 0.7 - -The player's default volume. -<d ...`,l:"en/start/option.html#volume",a:"volume"},"23.8":{t:"`isLive`\r",p:` -Type: Boolean -Default: false - -Enable live streaming mode. Thi ...`,l:"en/start/option.html#islive",a:"islive"},"23.9":{t:"`muted`\r",p:` -Type: Boolean -Default: false - -Whether to start muted by defau ...`,l:"en/start/option.html#muted",a:"muted"},"23.10":{t:"`autoplay`\r",p:` -Type: Boolean -Default: false - -Whether to autoplay. -<div cl ...`,l:"en/start/option.html#autoplay",a:"autoplay"},"23.11":{t:"`autoSize`\r",p:` -Type: Boolean -Default: false - -By default, the player's dimens ...`,l:"en/start/option.html#autosize",a:"autosize"},"23.12":{t:"`autoMini`\r",p:` -Type: Boolean -Default: false - -Automatically enters Mini Playe ...`,l:"en/start/option.html#automini",a:"automini"},"23.13":{t:"`loop`\r",p:` -Type: Boolean -Default: false - -Whether to loop playback. -<d ...`,l:"en/start/option.html#loop",a:"loop"},"23.14":{t:"`flip`\r",p:` -Type: Boolean -Default: false - -Whether to display the video fl ...`,l:"en/start/option.html#flip",a:"flip"},"23.15":{t:"`playbackRate`\r",p:` -Type: Boolean -Default: false - -Whether to display the video pl ...`,l:"en/start/option.html#playbackrate",a:"playbackrate"},"23.16":{t:"`aspectRatio`\r",p:` -Type: Boolean -Default: false - -Whether to display the video as ...`,l:"en/start/option.html#aspectratio",a:"aspectratio"},"23.17":{t:"`screenshot`\r",p:` -Type: Boolean -Default: false - -Whether to display the Screensh ...`,l:"en/start/option.html#screenshot",a:"screenshot"},"23.18":{t:"`setting`\r",p:` -Type: Boolean -Default: false - -Whether to display the toggle b ...`,l:"en/start/option.html#setting",a:"setting"},"23.19":{t:"`hotkey`\r",p:` -Type: Boolean -Default: true - -Whether to use hotkeys. -<div ...`,l:"en/start/option.html#hotkey",a:"hotkey"},"23.20":{t:"`pip`\r",p:` -Type: Boolean -Default: false - -Whether to display the Picture- ...`,l:"en/start/option.html#pip",a:"pip"},"23.21":{t:"`mutex`\r",p:` -Type: Boolean -Default: true - -If multiple players exist on the ...`,l:"en/start/option.html#mutex",a:"mutex"},"23.22":{t:"`backdrop`\r",p:` -Type: Boolean -Default: true - -Whether to enable the backdrop b ...`,l:"en/start/option.html#backdrop",a:"backdrop"},"23.23":{t:"`fullscreen`\r",p:` -Type: Boolean -Default: false - -Whether to display the player W ...`,l:"en/start/option.html#fullscreen",a:"fullscreen"},"23.24":{t:"`fullscreenWeb`\r",p:` -Type: Boolean -Default: false - -Whether to display the player W ...`,l:"en/start/option.html#fullscreenweb",a:"fullscreenweb"},"23.25":{t:"`subtitleOffset`\r",p:` -Type: Boolean -Default: false - -Subtitle time offset, ranging f ...`,l:"en/start/option.html#subtitleoffset",a:"subtitleoffset"},"23.26":{t:"`miniProgressBar`\r",p:` -Type: Boolean -Default: false - -A mini progress bar that only a ...`,l:"en/start/option.html#miniprogressbar",a:"miniprogressbar"},"23.27":{t:"`useSSR`\r",p:` -Type: Boolean -Default: false - -Whether to use SSR (Server-Side ...`,l:"en/start/option.html#usessr",a:"usessr"},"23.28":{t:"`playsInline`\r",p:` -Type: Boolean -Default: true - -Whether to use playsInline mode ...`,l:"en/start/option.html#playsinline",a:"playsinline"},"23.29":{t:"`layers`\r",p:` -Type: Array -Default: [] - -Initialize custom layers. -<div cl ...`,l:"en/start/option.html#layers",a:"layers"},"23.30":{t:"`settings`\r",p:` -Type: Array -Default: [] - -Initialize custom settings panels. -& ...`,l:"en/start/option.html#settings",a:"settings"},"23.31":{t:"`contextmenu`\r",p:` -Type: Array -Default: [] - -Initialize custom context menus. -< ...`,l:"en/start/option.html#contextmenu",a:"contextmenu"},"23.32":{t:"`controls`\r",p:` -Type: Array -Default: [] - -Initialize custom bottom control bar ...`,l:"en/start/option.html#controls",a:"controls"},"23.33":{t:"`quality`\r",p:` -Type: Array -Default: [] - -Whether to display the Quality Selec ...`,l:"en/start/option.html#quality",a:"quality"},"23.34":{t:"`highlight`\r",p:` -Type: Array -Default: [] - -Display Highlight Information on the ...`,l:"en/start/option.html#highlight",a:"highlight"},"23.35":{t:"`plugins`\r",p:` -Type: Array -Default: [] - -Initialize custom plugins. -<div c ...`,l:"en/start/option.html#plugins",a:"plugins"},"23.36":{t:"`thumbnails`\r",p:` -Type: Object -Default: {} - -Set Preview Thumbnails on the progr ...`,l:"en/start/option.html#thumbnails",a:"thumbnails"},"23.37":{t:"`subtitle`\r",p:` -Type: Object -Default: {} - -Set video subtitles. Supported subt ...`,l:"en/start/option.html#subtitle",a:"subtitle"},"23.38":{t:"`moreVideoAttr`\r",p:` -Type: Object -Default: {'controls': false, 'preload': 'metadat ...`,l:"en/start/option.html#morevideoattr",a:"morevideoattr"},"23.39":{t:"`icons`\r",p:` -Type: Object -Default: {} - -Used to replace default icons. Supp ...`,l:"en/start/option.html#icons",a:"icons"},"23.40":{t:"`type`\r",p:` -Type: String -Default: '' - -Used to specify the video format. I ...`,l:"en/start/option.html#type",a:"type"},"23.41":{t:"`customType`\r",p:` -Type: Object -Default: {} - -Matches based on the video's type a ...`,l:"en/start/option.html#customtype",a:"customtype"},"23.42":{t:"`lang`\r",p:` -Type: String -Default: navigator.language.toLowerCase() - -The d ...`,l:"en/start/option.html#lang",a:"lang"},"23.43":{t:"`i18n`\r",p:` -Type: Object -Default: {} - -Custom i18n configuration. This con ...`,l:"en/start/option.html#i18n",a:"i18n"},"23.44":{t:"`lock`\r",p:` -Type: Boolean -Default: false - -Whether to display a lock butto ...`,l:"en/start/option.html#lock",a:"lock"},"23.45":{t:"`gesture`\r",p:` -Type: Boolean -Default: true - -Whether to enable gesture events ...`,l:"en/start/option.html#gesture",a:"gesture"},"23.46":{t:"`fastForward`\r",p:` -Type: Boolean -Default: false - -Whether to add a long-press vid ...`,l:"en/start/option.html#fastforward",a:"fastforward"},"23.47":{t:"`autoPlayback`\r",p:` -Type: Boolean -Default: false - -Whether to use the automatic pl ...`,l:"en/start/option.html#autoplayback",a:"autoplayback"},"23.48":{t:"`autoOrientation`\r",p:` -Type: Boolean -Default: false - -Whether to rotate the player in ...`,l:"en/start/option.html#autoorientation",a:"autoorientation"},"23.49":{t:"`airplay`\r",p:` -Type: Boolean -Default: false - -Whether to display the airplay ...`,l:"en/start/option.html#airplay",a:"airplay"},"23.50":{t:"`cssVar`\r",p:` -Type: Object -Default: {} - -Used to modify the built-in CSS var ...`,l:"en/start/option.html#cssvar",a:"cssvar"},"23.51":{t:"`proxy`\r",p:` -Type: function -Default: undefined - -The function can return a ...`,l:"en/start/option.html#proxy",a:"proxy"},"24.0":{t:"# 安装使用\r",p:"\r",l:"index.html",a:"安装使用"},"24.1":{t:"安装\r",p:`::: code-group -npm install artplayer - -yarn add artplayer - -pnpm ...`,l:"index.html#安装",a:"安装"},"24.2":{t:"`CDN`\r",p:`::: code-group -https://cdn.jsdelivr.net/npm/artplayer/dist/art ...`,l:"index.html#cdn",a:"cdn"},"24.3":{t:"使用\r",p:`::: code-group -<html> - <head> - <title ...`,l:"index.html#使用",a:"使用"},"24.4":{t:"`Vue.js`\r",p:`::: code-group -<template> - <div ref="$container ...`,l:"index.html#vue-js",a:"vue-js"},"24.5":{t:"`React.js`\r",p:`::: code-group -import Artplayer from 'artplayer' -import { useE ...`,l:"index.html#react-js",a:"react-js"},"24.6":{t:"TypeScript\r",p:`导入 Artplayer 时会自动导入的 artplayer.d.ts -`,l:"index.html#typescript",a:"typescript"},"24.7":{t:"Vue.js\r",p:` - -`,l:"index.html#vue-js",a:"vue-js"},"24.8":{t:"React.js\r",p:`import Artplayer from 'artplayer'; -const art = useRef<Artpl ...`,l:"index.html#react-js",a:"react-js"},"24.9":{t:"Option\r",p:`你也可以使用选项的类型 -import Artplayer, { type Option } from 'artplayer' ...`,l:"index.html#option",a:"option"},"24.10":{t:"JavaScript\r",p:`有时你的 js 文件会丢失 TypeScript 的类型提示,这时候你可以手动导入类型 -变量: -/** - * @type { ...`,l:"index.html#javascript",a:"javascript"},"24.11":{t:"古老的浏览器\r",p:`生产构建的 artplayer.js 只兼容最新一个主版本的 Chrome:last 1 Chrome version -对于 ...`,l:"index.html#古老的浏览器",a:"古老的浏览器"},"24.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"},"24.13":{t:"自定义 userAgent\r",p:"目前对于是否移动设备的判断并不准确,有时候希望通过改变 userAgent 来调整播放器的UI, 所以在 5.2.4 开始新 ...",l:"index.html#自定义-useragent",a:"自定义-useragent"},"25.0":{t:"# 弹幕库",p:`English guide -本文描述当前重构分支。/runtime 类型入口与本轮修复尚未发布到 npm;CDN 默认仍加载 ...`,l:"plugin/danmuku.html",a:"弹幕库"},"25.1":{t:"演示",p:`👉 查看完整演示 -下方 Run Code 使用本站构建的插件与样本。接入自己的应用时,请替换容器和媒体 URL。 -`,l:"plugin/danmuku.html#演示",a:"演示"},"25.2":{t:"安装",p:`::: code-group -npm install artplayer-plugin-danmuku - -yarn add ...`,l:"plugin/danmuku.html#安装",a:"安装"},"25.3":{t:"CDN",p:`::: code-group -https://cdn.jsdelivr.net/npm/artplayer-plugin-d ...`,l:"plugin/danmuku.html#cdn",a:"cdn"},"25.4":{t:"弹幕结构",p:`每一个弹幕是一个对象,多个弹幕组成的数组就是弹幕库,通常只需要text就可以发送一个弹幕,其余都是非必要参数 -{ - t ...`,l:"plugin/danmuku.html#弹幕结构",a:"弹幕结构"},"25.5":{t:"全部选项",p:"工厂需要一个配置对象。运行时可传 {},每个字段都有默认值;旧版根入口类型仍要求 danmuku,旧项目继续传入它即可。准确 ...",l:"plugin/danmuku.html#全部选项",a:"全部选项"},"25.6":{t:"生命周期",p:"filter 同步执行,不应返回 Promise;beforeEmit 可异步,但只有严格返回 true 才发送。befor ...",l:"plugin/danmuku.html#生命周期",a:"生命周期"},"25.7":{t:"使用弹幕数组",p:"<div className="run-code" data-libs="./uncom ...",l:"plugin/danmuku.html#使用弹幕数组",a:"使用弹幕数组"},"25.8":{t:"使用弹幕 XML",p:`弹幕 XML 文件,和 Bilibili 网站的弹幕格式一致 -<div className="run-cod ...`,l:"plugin/danmuku.html#使用弹幕-xml",a:"使用弹幕-xml"},"25.9":{t:"使用异步返回",p:`也可以直接传入 Promise<弹幕数组>,或传入同步返回数组的函数。输入函数没有配置对象作为 this。 -&l ...`,l:"plugin/danmuku.html#使用异步返回",a:"使用异步返回"},"25.10":{t:"`hide/show`",p:`通过方法 hide 和 show 进行隐藏或者显示弹幕 -<div className="run-code&q ...`,l:"plugin/danmuku.html#hide-show",a:"hide-show"},"25.11":{t:"`isHide`",p:`通过属性 isHide 判断当前弹幕是隐藏或者显示 -<div className="run-code&quo ...`,l:"plugin/danmuku.html#ishide",a:"ishide"},"25.12":{t:"`emit`",p:"通过方法 emit 向队列添加一条弹幕。它返回 Promise;完成表示入队处理完成,不代表已经显示。请用 await 或 ...",l:"plugin/danmuku.html#emit",a:"emit"},"25.13":{t:"`config`",p:"通过方法 config 同步合并弹幕配置。更改 danmuku 不会自动重新加载,之后调用无参数的 load() 才会替换队 ...",l:"plugin/danmuku.html#config",a:"config"},"25.14":{t:"`load`",p:"通过 load 重载、切换或追加弹幕库,返回 Promise。无参数 load() 在读取配置中的输入成功后替换队列;传入 ...",l:"plugin/danmuku.html#load",a:"load"},"25.15":{t:"`reset`",p:`用于清空当前显示的弹幕并将队列项重置为等待状态。它不删除队列;后续播放仍可按时间显示弹幕。 -<div classNam ...`,l:"plugin/danmuku.html#reset",a:"reset"},"25.16":{t:"`mount`",p:`在初始化弹幕插件的时候,是可以指定弹幕发射器的挂载位置的,默认是挂载在控制栏的中部,你也可以把它挂载在播放器以外的地方。 -当 ...`,l:"plugin/danmuku.html#mount",a:"mount"},"25.17":{t:"`option`",p:`用于获取当前弹幕配置,返回实时配置对象。更新配置请调用 config,避免直接修改对象而绕过校验和 UI 同步。 -<d ...`,l:"plugin/danmuku.html#option",a:"option"},"25.18":{t:"事件",p:"使用 art.on(name, callback) 订阅,art.off(name, callback) 取消订阅。事件不会 ...",l:"plugin/danmuku.html#事件",a:"事件"},"25.19":{t:"`isStop` 与方法返回值",p:"art.plugins.artplayerPluginDanmuku.isStop 是实时只读的停止状态,与 isHide ...",l:"plugin/danmuku.html#isstop-与方法返回值",a:"isstop-与方法返回值"},"25.20":{t:"热力图",p:`初始化时设置 heatmap: true,按队列自动采样;直播不绘制热力图。 -本轮修复了密集弹幕曲线过高遮挡视频的问题(is ...`,l:"plugin/danmuku.html#热力图",a:"热力图"},"25.21":{t:"TypeScript",p:`根入口和 /legacy 保留 npm 5.3.0 的历史声明形状,其中部分方法返回值与真实运行时不一致。 -当前分支新增 / ...`,l:"plugin/danmuku.html#typescript",a:"typescript"},"26.0":{t:"# 语言设置\r",p:`::: danger -鉴于捆绑的多国语言越来越多, 从 5.1.0 版本开始, artplayer.js 核心代码除了包含 ...`,l:"start/i18n.html",a:"语言设置"},"26.1":{t:"默认语言\r",p:`默认语言有: en, zh-cn, 无需手动导入 -var art = new Artplayer({ - contain ...`,l:"start/i18n.html#默认语言",a:"默认语言"},"26.2":{t:"导入语言\r",p:`打包前的语言文件存放于: artplayer/src/i18n/*.js, 欢迎来添加你的语言 -打包后的语言文件存放于: a ...`,l:"start/i18n.html#导入语言",a:"导入语言"},"26.3":{t:"新增语言\r",p:`var art = new Artplayer({ - container: '.artplayer-app', - ...`,l:"start/i18n.html#新增语言",a:"新增语言"},"26.4":{t:"修改语言\r",p:`import zhTw from 'artplayer/i18n/zh-tw'; - -var art = new Artpla ...`,l:"start/i18n.html#修改语言",a:"修改语言"},"27.0":{t:"# 基础选项\r",p:"\r",l:"start/option.html",a:"基础选项"},"27.1":{t:"`container`\r",p:` -Type: String, Element -Default: #artplayer - -播放器挂载的 DOM 容器 -< ...`,l:"start/option.html#container",a:"container"},"27.2":{t:"`url`\r",p:` -Type: String -Default: '' - -视频源地址 -<div className="run-c ...`,l:"start/option.html#url",a:"url"},"27.3":{t:"`id`\r",p:` -Type: String -Default: '' - -播放器的唯一标识,目前只用于记忆播放 autoplayback -< ...`,l:"start/option.html#id",a:"id"},"27.4":{t:"`onReady`\r",p:` -Type: Function -Default: undefined - -构造函数接受一个函数作为第二个参数,播放器初始化成功 ...`,l:"start/option.html#onready",a:"onready"},"27.5":{t:"`poster`\r",p:` -Type: String -Default: '' - -视频的海报,只会出现在播放器初始化且未播放的状态下 -<div c ...`,l:"start/option.html#poster",a:"poster"},"27.6":{t:"`theme`\r",p:` -Type: String -Default: #f00 - -播放器主题颜色,目前用于 进度条 和 高亮元素 上 -<div ...`,l:"start/option.html#theme",a:"theme"},"27.7":{t:"`volume`\r",p:` -Type: Number -Default: 0.7 - -播放器的默认音量 -<div className="r ...`,l:"start/option.html#volume",a:"volume"},"27.8":{t:"`isLive`\r",p:` -Type: Boolean -Default: false - -使用直播模式,会隐藏进度条和播放时间 -<div clas ...`,l:"start/option.html#islive",a:"islive"},"27.9":{t:"`muted`\r",p:` -Type: Boolean -Default: false - -是否默认静音 -<div className=" ...`,l:"start/option.html#muted",a:"muted"},"27.10":{t:"`autoplay`\r",p:` -Type: Boolean -Default: false - -是否自动播放 -<div className=" ...`,l:"start/option.html#autoplay",a:"autoplay"},"27.11":{t:"`autoSize`\r",p:` -Type: Boolean -Default: false - -播放器的尺寸默认会填充整个 container 容器尺寸,所以 ...`,l:"start/option.html#autosize",a:"autosize"},"27.12":{t:"`autoMini`\r",p:` -Type: Boolean -Default: false - -当播放器滚动到浏览器视口以外时,自动进入 迷你播放 模式 -&l ...`,l:"start/option.html#automini",a:"automini"},"27.13":{t:"`loop`\r",p:` -Type: Boolean -Default: false - -是否循环播放 -<div className=" ...`,l:"start/option.html#loop",a:"loop"},"27.14":{t:"`flip`\r",p:` -Type: Boolean -Default: false - -是否显示视频翻转功能,目前只出现在 设置面板 和 右键菜单 里 ...`,l:"start/option.html#flip",a:"flip"},"27.15":{t:"`playbackRate`\r",p:` -Type: Boolean -Default: false - -是否显示视频播放速度功能,会出现在 设置面板 和 右键菜单 里 ...`,l:"start/option.html#playbackrate",a:"playbackrate"},"27.16":{t:"`aspectRatio`\r",p:` -Type: Boolean -Default: false - -是否显示视频长宽比功能,会出现在 设置面板 和 右键菜单 里 - ...`,l:"start/option.html#aspectratio",a:"aspectratio"},"27.17":{t:"`screenshot`\r",p:` -Type: Boolean -Default: false - -是否在底部控制栏里显示 视频截图 功能 -<div cla ...`,l:"start/option.html#screenshot",a:"screenshot"},"27.18":{t:"`setting`\r",p:` -Type: Boolean -Default: false - -是否在底部控制栏里显示 设置面板 的开关按钮 -<div ...`,l:"start/option.html#setting",a:"setting"},"27.19":{t:"`hotkey`\r",p:` -Type: Boolean -Default: true - -是否使用快捷键 -<div className=" ...`,l:"start/option.html#hotkey",a:"hotkey"},"27.20":{t:"`pip`\r",p:` -Type: Boolean -Default: false - -是否在底部控制栏里显示 画中画 的开关按钮 -<div c ...`,l:"start/option.html#pip",a:"pip"},"27.21":{t:"`mutex`\r",p:` -Type: Boolean -Default: true - -假如页面里同时存在多个播放器,是否只能让一个播放器播放 -< ...`,l:"start/option.html#mutex",a:"mutex"},"27.22":{t:"`backdrop`\r",p:` -Type: Boolean -Default: true - -是否开启播放器 UI 的背景虚化效果。开启后,设置面板、右键菜单 ...`,l:"start/option.html#backdrop",a:"backdrop"},"27.23":{t:"`fullscreen`\r",p:` -Type: Boolean -Default: false - -是否在底部控制栏里显示播放器 窗口全屏 按钮 -<div ...`,l:"start/option.html#fullscreen",a:"fullscreen"},"27.24":{t:"`fullscreenWeb`\r",p:` -Type: Boolean -Default: false - -是否在底部控制栏里显示播放器 网页全屏 按钮 -<div ...`,l:"start/option.html#fullscreenweb",a:"fullscreenweb"},"27.25":{t:"`subtitleOffset`\r",p:` -Type: Boolean -Default: false - -字幕时间偏移,范围在 [-5s, 5s],出现在 设置面板 里 ...`,l:"start/option.html#subtitleoffset",a:"subtitleoffset"},"27.26":{t:"`miniProgressBar`\r",p:` -Type: Boolean -Default: false - -迷你进度条,只在播放器失去焦点后且正在播放时出现 -<di ...`,l:"start/option.html#miniprogressbar",a:"miniprogressbar"},"27.27":{t:"`useSSR`\r",p:` -Type: Boolean -Default: false - -是否使用 SSR 挂载模式,假如你希望在播放器挂载前,就提前渲 ...`,l:"start/option.html#usessr",a:"usessr"},"27.28":{t:"`playsInline`\r",p:` -Type: Boolean -Default: true - -在移动端是否使用 playsInline 模式 -<div ...`,l:"start/option.html#playsinline",a:"playsinline"},"27.29":{t:"`layers`\r",p:` -Type: Array -Default: [] - -初始化自定义的 层 -<div className="ru ...`,l:"start/option.html#layers",a:"layers"},"27.30":{t:"`settings`\r",p:` -Type: Array -Default: [] - -初始化自定义的 设置面板 -<div className=" ...`,l:"start/option.html#settings",a:"settings"},"27.31":{t:"`contextmenu`\r",p:` -Type: Array -Default: [] - -初始化自定义的 右键菜单 -<div className=" ...`,l:"start/option.html#contextmenu",a:"contextmenu"},"27.32":{t:"`controls`\r",p:` -Type: Array -Default: [] - -初始化自定义的底部 控制栏 -<div className=&quo ...`,l:"start/option.html#controls",a:"controls"},"27.33":{t:"`quality`\r",p:` -Type: Array -Default: [] - -是否在底部控制栏里显示 画质选择 列表 - - - -属性 -类型 -描述 - - - - - ...`,l:"start/option.html#quality",a:"quality"},"27.34":{t:"`highlight`\r",p:` -Type: Array -Default: [] - -在进度条上显示 高亮信息 - - - -属性 -类型 -描述 - - - - -time -Nu ...`,l:"start/option.html#highlight",a:"highlight"},"27.35":{t:"`plugins`\r",p:` -Type: Array -Default: [] - -初始化自定义的 插件 -<div className="r ...`,l:"start/option.html#plugins",a:"plugins"},"27.36":{t:"`thumbnails`\r",p:` -Type: Object -Default: {} - -在进度条上设置 预览图 - - - -属性 -类型 -描述 - - - - -url -Str ...`,l:"start/option.html#thumbnails",a:"thumbnails"},"27.37":{t:"`subtitle`\r",p:` -Type: Object -Default: {} - -设置视频的字幕,支持字幕格式:vtt, srt, ass - - - -属性 - ...`,l:"start/option.html#subtitle",a:"subtitle"},"27.38":{t:"`moreVideoAttr`\r",p:` -Type: Object -Default: {'controls': false, 'preload': 'metadat ...`,l:"start/option.html#morevideoattr",a:"morevideoattr"},"27.39":{t:"`icons`\r",p:` -Type: Object -Default: {} - -用于替换默认图标,支持 Html 字符串和 HTMLElement -& ...`,l:"start/option.html#icons",a:"icons"},"27.40":{t:"`type`\r",p:` -Type: String -Default: '' - -用于指明视频的格式,需要配合 customType 一起使用,默认视频 ...`,l:"start/option.html#type",a:"type"},"27.41":{t:"`customType`\r",p:` -Type: Object -Default: {} - -通过视频的 type 进行匹配,把视频解码权交给第三方程序进行处理,处 ...`,l:"start/option.html#customtype",a:"customtype"},"27.42":{t:"`lang`\r",p:` -Type: String -Default: navigator.language.toLowerCase() - -默认显示语 ...`,l:"start/option.html#lang",a:"lang"},"27.43":{t:"`i18n`\r",p:` -Type: Object -Default: {} - -自定义 i18n 配置,该配置会和自带的 i18n 进行深度合并 -新增 ...`,l:"start/option.html#i18n",a:"i18n"},"27.44":{t:"`lock`\r",p:` -Type: Boolean -Default: false - -是否在移动端显示一个 锁定按钮 ,用于隐藏底部 控制栏 -< ...`,l:"start/option.html#lock",a:"lock"},"27.45":{t:"`gesture`\r",p:` -Type: Boolean -Default: true - -是否在移动端启用视频元素上的手势事件 -<div class ...`,l:"start/option.html#gesture",a:"gesture"},"27.46":{t:"`fastForward`\r",p:` -Type: Boolean -Default: false - -是否在移动端添加长按视频快进功能 -<div classN ...`,l:"start/option.html#fastforward",a:"fastforward"},"27.47":{t:"`autoPlayback`\r",p:` -Type: Boolean -Default: false - -是否使用自动 回放功能 -<div className=& ...`,l:"start/option.html#autoplayback",a:"autoplayback"},"27.48":{t:"`autoOrientation`\r",p:` -Type: Boolean -Default: false - -是否在移动端的网页全屏时,根据视频尺寸和视口尺寸,旋转播放器 - ...`,l:"start/option.html#autoorientation",a:"autoorientation"},"27.49":{t:"`airplay`\r",p:` -Type: Boolean -Default: false - -是否显示 airplay 按钮,当前只有部分浏览器支持该功能 - ...`,l:"start/option.html#airplay",a:"airplay"},"27.50":{t:"`cssVar`\r",p:` -Type: Object -Default: {} - -用于改变内置的css变量 -<div className=&quo ...`,l:"start/option.html#cssvar",a:"cssvar"},"27.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_danmuku.md.DqSk_DK5.js b/docs/document/assets/en_plugin_danmuku.md.BA2ZgDal.js similarity index 99% rename from docs/document/assets/en_plugin_danmuku.md.DqSk_DK5.js rename to docs/document/assets/en_plugin_danmuku.md.BA2ZgDal.js index ba7c18273..0db212977 100644 --- a/docs/document/assets/en_plugin_danmuku.md.DqSk_DK5.js +++ b/docs/document/assets/en_plugin_danmuku.md.BA2ZgDal.js @@ -1,4 +1,4 @@ -import{_ as n,o as e,c as t,ak as s,j as i}from"./chunks/framework.xxfEszSJ.js";const E=JSON.parse('{"title":"Danmuku","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/danmuku.md","filePath":"en/plugin/danmuku.md","lastUpdated":1764426402000}'),l={name:"en/plugin/danmuku.md"};function p(h,a,r,k,d,o){return e(),t("div",null,a[0]||(a[0]=[s(`

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>
+import{_ as n,o as e,c as t,ak as s,j as i}from"./chunks/framework.xxfEszSJ.js";const E=JSON.parse('{"title":"Danmuku","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/danmuku.md","filePath":"en/plugin/danmuku.md","lastUpdated":1789461935000}'),l={name:"en/plugin/danmuku.md"};function p(h,a,r,k,d,o){return e(),t("div",null,a[0]||(a[0]=[s(`

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
diff --git a/docs/document/assets/en_plugin_danmuku.md.DqSk_DK5.lean.js b/docs/document/assets/en_plugin_danmuku.md.BA2ZgDal.lean.js
similarity index 86%
rename from docs/document/assets/en_plugin_danmuku.md.DqSk_DK5.lean.js
rename to docs/document/assets/en_plugin_danmuku.md.BA2ZgDal.lean.js
index 4a5508d20..eba481aa7 100644
--- a/docs/document/assets/en_plugin_danmuku.md.DqSk_DK5.lean.js
+++ b/docs/document/assets/en_plugin_danmuku.md.BA2ZgDal.lean.js
@@ -1 +1 @@
-import{_ as n,o as e,c as t,ak as s,j as i}from"./chunks/framework.xxfEszSJ.js";const E=JSON.parse('{"title":"Danmuku","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/danmuku.md","filePath":"en/plugin/danmuku.md","lastUpdated":1764426402000}'),l={name:"en/plugin/danmuku.md"};function p(h,a,r,k,d,o){return e(),t("div",null,a[0]||(a[0]=[s("",20),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",13),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",5),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",9)]))}const u=n(l,[["render",p]]);export{E as __pageData,u as default};
+import{_ as n,o as e,c as t,ak as s,j as i}from"./chunks/framework.xxfEszSJ.js";const E=JSON.parse('{"title":"Danmuku","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/danmuku.md","filePath":"en/plugin/danmuku.md","lastUpdated":1789461935000}'),l={name:"en/plugin/danmuku.md"};function p(h,a,r,k,d,o){return e(),t("div",null,a[0]||(a[0]=[s("",20),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",13),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",5),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",9)]))}const u=n(l,[["render",p]]);export{E as __pageData,u as default};
diff --git a/docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.js b/docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.js
new file mode 100644
index 000000000..a8d9bece7
--- /dev/null
+++ b/docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.js
@@ -0,0 +1,85 @@
+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 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
+// npm i artplayer-plugin-hls-control
+
+// import Hls from 'hls.js';
+// import artplayerPluginHlsControl from 'artplayer-plugin-hls-control';
+
+const useHls = Hls.isSupported()
+let hls
+
+function destroyHls() {
+  const previous = hls
+  hls = undefined
+  if (previous)
+    previous.destroy()
+}
+
+const art = new Artplayer({
+  container: '.artplayer-app',
+  url: 'https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/index.m3u8',
+  setting: true,
+  plugins: useHls
+    ? [
+        artplayerPluginHlsControl({
+          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.name || track.lang || 'Audio',
+            // I18n
+            title: 'Audio',
+            auto: 'Auto',
+          },
+        }),
+      ]
+    : [],
+  customType: {
+    m3u8: function playM3u8(video, url, art) {
+      destroyHls()
+      if (useHls) {
+        hls = new Hls()
+        art.hls = hls
+        hls.loadSource(url)
+        hls.attachMedia(video)
+      }
+      else if (video.canPlayType('application/vnd.apple.mpegurl')) {
+        video.src = url
+      }
+      else {
+        art.notice.show = 'Unsupported playback format: m3u8'
+      }
+    },
+  },
+})
+
+art.on('destroy', destroyHls)

Only install the control plugin when Hls.js is supported. If the browser instead plays HLS natively, the example assigns video.src without installing a plugin that requires art.hls. Native quality/audio selection is not supplied by this plugin. Keep useHls fixed for that player instance; recreate the player if the playback integration changes.

Configuration ​

artplayerPluginHlsControl(option?) returns a synchronous plugin factory. Both quality and audio accept these fields:

FieldMeaning and default
controlShow the bottom control; omitted means hidden.
settingShow the settings entry; omitted means hidden. Enable the player's setting: true as well.
titleMenu title; quality defaults to Quality, audio to Audio.
autoFallback text, default Auto. Quality also uses it for its Auto option. Audio does not gain a synthetic Auto track.
getName(item, index?)Return a string from the original SDK level or track. The current-label call omits index; list calls include it.

Without a quality formatter, labels use level.name or level.height + 'P'. Audio labels use track.name, track.lang, then track.language. Empty titles/Auto text fall back to their defaults. Give formatters a string fallback when your source lacks metadata.

The formatter is a plain callback; it does not receive the player as this. Avoid using its optional index as a required field. Equal labels collapse into one displayed choice, so include bitrate or other distinguishing metadata when separate variants have the same height. Empty track lists remove their menus.

Choosing a quality writes hls.currentLevel; Auto writes -1. The selected label reflects automatic mode when autoLevelEnabled is true. Choosing audio writes hls.audioTrack with the SDK track ID. A menu selection is synchronous and does not mean the new stream has finished buffering or decoding.

Refresh after external changes ​

The plugin updates on player ready and restart. When the SDK provides its event API, manifest, level, audio and destruction events also refresh or clear the menus. Current SDK state determines the selected choice.

After attaching a replacement instance to the same video and assigning art.hls, use the existing synchronous method when an immediate refresh is needed:

js
art.plugins.artplayerPluginHlsControl.update();

update() returns undefined; it is not a Promise. Calling it without an attached Hls.js instance can throw. SDK-like integrations without supported event hooks must call it when their state changes. Reserve menu names hls-quality and hls-audio for this plugin.

SDK ownership and source switching ​

Use the player's existing switchUrl() or switchQuality() for source changes and handle the returned Promise. The example's custom loader destroys the previous SDK before creating the next one, updates art.hls, and keeps one final cleanup listener per player. Each instance is destroyed once. Do not add a new player destroy listener on every load while also destroying replaced instances yourself.

The control plugin releases its own SDK subscriptions and makes retained menu callbacks inert after replacement or player destruction. It does not destroy the SDK, remove other consumers' SDK listeners, or implement Hls.js error recovery. Your application remains responsible for SDK fatal errors and playback policy.

TypeScript ​

The default callback types include level height/name and audio id/name/language fields. Applications can specify their actual SDK metadata types through the existing generic factory. The example below uses only fields it needs and works without importing Hls.js declarations:

ts
import hlsControl from 'artplayer-plugin-hls-control';
+
+interface Level { height: number; bitrate: number }
+interface Track { id: number; name: string; lang?: string }
+
+const plugin = hlsControl<Level, Track>({
+    quality: {
+        control: true,
+        getName: level => level.height + 'p / ' + level.bitrate,
+    },
+    audio: {
+        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.

`,22)]))}const g=a(t,[["render",p]]);export{E as __pageData,g as default}; diff --git a/docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.lean.js b/docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.lean.js new file mode 100644 index 000000000..0f0c4a9fd --- /dev/null +++ b/docs/document/assets/en_plugin_hls-control.md.0CaKxnLg.lean.js @@ -0,0 +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 +./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_danmuku.md.gN3hMRyB.js b/docs/document/assets/plugin_danmuku.md.NvAEp3Xn.js similarity index 99% rename from docs/document/assets/plugin_danmuku.md.gN3hMRyB.js rename to docs/document/assets/plugin_danmuku.md.NvAEp3Xn.js index e47ed9d03..d6a0ff42d 100644 --- a/docs/document/assets/plugin_danmuku.md.gN3hMRyB.js +++ b/docs/document/assets/plugin_danmuku.md.NvAEp3Xn.js @@ -1,4 +1,4 @@ -import{_ as n,o as l,c as p,ak as s,j as i}from"./chunks/framework.xxfEszSJ.js";const c=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","filePath":"plugin/danmuku.md","lastUpdated":1734270991000}'),h={name:"plugin/danmuku.md"};function e(k,a,t,r,E,d){return l(),p("div",null,a[0]||(a[0]=[s(`

弹幕库 ​

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
{
+import{_ as n,o as l,c as p,ak as s,j as i}from"./chunks/framework.xxfEszSJ.js";const c=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","filePath":"plugin/danmuku.md","lastUpdated":1789461935000}'),h={name:"plugin/danmuku.md"};function e(k,a,t,r,E,d){return l(),p("div",null,a[0]||(a[0]=[s(`

弹幕库 ​

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: 底部
diff --git a/docs/document/assets/plugin_danmuku.md.gN3hMRyB.lean.js b/docs/document/assets/plugin_danmuku.md.NvAEp3Xn.lean.js
similarity index 93%
rename from docs/document/assets/plugin_danmuku.md.gN3hMRyB.lean.js
rename to docs/document/assets/plugin_danmuku.md.NvAEp3Xn.lean.js
index ef3f6bf51..5e52ece94 100644
--- a/docs/document/assets/plugin_danmuku.md.gN3hMRyB.lean.js
+++ b/docs/document/assets/plugin_danmuku.md.NvAEp3Xn.lean.js
@@ -1 +1 @@
-import{_ as n,o as l,c as p,ak as s,j as i}from"./chunks/framework.xxfEszSJ.js";const c=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","filePath":"plugin/danmuku.md","lastUpdated":1734270991000}'),h={name:"plugin/danmuku.md"};function e(k,a,t,r,E,d){return l(),p("div",null,a[0]||(a[0]=[s("",23),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",2),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",4),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",4),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",8),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",5)]))}const y=n(h,[["render",e]]);export{c as __pageData,y as default};
+import{_ as n,o as l,c as p,ak as s,j as i}from"./chunks/framework.xxfEszSJ.js";const c=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","filePath":"plugin/danmuku.md","lastUpdated":1789461935000}'),h={name:"plugin/danmuku.md"};function e(k,a,t,r,E,d){return l(),p("div",null,a[0]||(a[0]=[s("",23),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",2),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",4),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",3),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",4),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",8),i("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),s("",5)]))}const y=n(h,[["render",e]]);export{c as __pageData,y as default};
diff --git a/docs/document/assets/plugin_hls-control.md.G4-jWSB9.js b/docs/document/assets/plugin_hls-control.md.G4-jWSB9.js
new file mode 100644
index 000000000..01535ed70
--- /dev/null
+++ b/docs/document/assets/plugin_hls-control.md.G4-jWSB9.js
@@ -0,0 +1,85 @@
+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 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
+// npm i artplayer-plugin-hls-control
+
+// import Hls from 'hls.js';
+// import artplayerPluginHlsControl from 'artplayer-plugin-hls-control';
+
+const useHls = Hls.isSupported()
+let hls
+
+function destroyHls() {
+  const previous = hls
+  hls = undefined
+  if (previous)
+    previous.destroy()
+}
+
+const art = new Artplayer({
+  container: '.artplayer-app',
+  url: 'https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/index.m3u8',
+  setting: true,
+  plugins: useHls
+    ? [
+        artplayerPluginHlsControl({
+          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.name || track.lang || 'Audio',
+            // I18n
+            title: 'Audio',
+            auto: 'Auto',
+          },
+        }),
+      ]
+    : [],
+  customType: {
+    m3u8: function playM3u8(video, url, art) {
+      destroyHls()
+      if (useHls) {
+        hls = new Hls()
+        art.hls = hls
+        hls.loadSource(url)
+        hls.attachMedia(video)
+      }
+      else if (video.canPlayType('application/vnd.apple.mpegurl')) {
+        video.src = url
+      }
+      else {
+        art.notice.show = 'Unsupported playback format: m3u8'
+      }
+    },
+  },
+})
+
+art.on('destroy', destroyHls)

仅在支持 Hls.js 时安装控制插件。若改用浏览器原生 HLS,示例直接设置 video.src,不安装必须依赖 art.hls 的插件;该插件不会为原生播放提供画质或音轨选择。单个播放器实例保持固定的 useHls,更换播放集成方式时重新创建播放器。

配置 ​

artplayerPluginHlsControl(option?) 同步返回插件工厂。quality 与 audio 都可以使用以下字段:

字段含义与默认行为
control显示底部控制器;省略时不显示。
setting显示设置项;省略时不显示,同时需要播放器的 setting: true。
title菜单标题,画质默认 Quality,音轨默认 Audio。
auto当前项未知时的文字,默认 Auto;画质还用于自动选项。音轨不会因此新增一个虚拟 Auto 轨道。
getName(item, index?)根据原始 SDK 档位或轨道对象返回字符串。当前标签调用没有 index,列表调用带有索引。

省略画质回调时,标签取 level.name 或 level.height + 'P';音轨依次取 track.name、track.lang、track.language。空标题和空 Auto 文字会使用默认值。媒体没有相关字段时,自定义回调应提供字符串回退。

回调按普通函数调用,this 不会绑定到播放器,不能把可选索引视为必传字段。相同标签会合并成一个选项;如果想区分同高度的多个档位,可在标签中加入码率。轨道列表变空时会移除对应菜单。

选择画质会写入 hls.currentLevel,Auto 对应 -1;当 autoLevelEnabled 为 true 时,当前标签反映自动模式。选择音轨会把 SDK 轨道 ID 写入 hls.audioTrack。菜单选择是同步操作,不代表新流已经完成缓冲或解码。

外部修改后的刷新 ​

播放器 ready、restart 会刷新菜单;SDK 提供事件接口时,清单、档位、音轨与销毁事件也会刷新或清除菜单。选中项来自当前 SDK 状态。

把替换后的实例绑定到同一个 video 并赋给 art.hls 后,如需立即刷新,可以调用已有同步方法:

js
art.plugins.artplayerPluginHlsControl.update();

update() 返回 undefined,不是 Promise;在没有已绑定 Hls.js 实例时调用可能抛错。没有对应事件接口的自定义适配器需要在状态变化后手动刷新。菜单名 hls-quality 和 hls-audio 由插件使用,其他菜单请使用不同名称。

SDK 所有权与换源 ​

换源继续使用播放器已有的 switchUrl() 或 switchQuality(),并处理返回的 Promise。示例在创建新 SDK 前销毁旧实例,再更新 art.hls,每个播放器只保留一个最终清理监听器,每个 SDK 实例只销毁一次。不要在每次加载时累积新的播放器 destroy 监听器,同时又自行销毁被替换的实例。

控制插件只释放自己的 SDK 订阅;替换或销毁播放器后,旧菜单回调不再修改 SDK。插件不会销毁 SDK、移除其他使用者的监听器或实现 Hls.js 错误恢复;应用仍负责处理 SDK 致命错误和播放策略。

TypeScript ​

默认回调类型包含画质高度/名称和音轨 ID/名称/语言字段。可以通过泛型使用应用所需的 SDK 元数据类型;下面的示例只声明实际使用的字段,无需导入 Hls.js 声明:

ts
import hlsControl from 'artplayer-plugin-hls-control';
+
+interface Level { height: number; bitrate: number }
+interface Track { id: number; name: string; lang?: string }
+
+const plugin = hlsControl<Level, Track>({
+    quality: {
+        control: true,
+        getName: level => level.height + 'p / ' + level.bitrate,
+    },
+    audio: {
+        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 已验收。采用尚未发布的重构前,应验证实际媒体与目标设备。

`,22)]))}const o=a(e,[["render",h]]);export{g as __pageData,o as default}; diff --git a/docs/document/assets/plugin_hls-control.md.G4-jWSB9.lean.js b/docs/document/assets/plugin_hls-control.md.G4-jWSB9.lean.js new file mode 100644 index 000000000..9e16ab11a --- /dev/null +++ b/docs/document/assets/plugin_hls-control.md.G4-jWSB9.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 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 +./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 b9035776b..0ad73b6c8 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 0d387f0c6..45d2a1390 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 364df8b1f..f9e1c49ae 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 b35069378..bc04fd6b2 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 4bad66cbb..27aefb8b4 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 f31cb5425..db8a60a78 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 78f13d8e4..0018c8621 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 b854da122..7cec73517 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 8639c71d9..7e434f2ce 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 26f8d7c4b..82ed1d5df 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 f3c2f1536..a3618eb13 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 17b6b3bc8..0f4f39420 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 745f1bcaf..7f74d0920 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 45680f632..c9a6daa1f 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 cd3b8278e..b6ba04678 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 216a0b33a..b1b5fab26 100644 --- a/docs/document/en/plugin/danmuku.html +++ b/docs/document/en/plugin/danmuku.html @@ -9,11 +9,11 @@ - + - + - + @@ -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
@@ -124,8 +124,8 @@
 const points: Point[] = [[0, 5], [100, 10]];
 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.

- +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/hls-control.html b/docs/document/en/plugin/hls-control.html new file mode 100644 index 000000000..1661d3612 --- /dev/null +++ b/docs/document/en/plugin/hls-control.html @@ -0,0 +1,114 @@ + + + + + + HLS Control | Artplayer.js + + + + + + + + + + + + + + + + + + + +
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
+// npm i artplayer-plugin-hls-control
+
+// import Hls from 'hls.js';
+// import artplayerPluginHlsControl from 'artplayer-plugin-hls-control';
+
+const useHls = Hls.isSupported()
+let hls
+
+function destroyHls() {
+  const previous = hls
+  hls = undefined
+  if (previous)
+    previous.destroy()
+}
+
+const art = new Artplayer({
+  container: '.artplayer-app',
+  url: 'https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/index.m3u8',
+  setting: true,
+  plugins: useHls
+    ? [
+        artplayerPluginHlsControl({
+          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.name || track.lang || 'Audio',
+            // I18n
+            title: 'Audio',
+            auto: 'Auto',
+          },
+        }),
+      ]
+    : [],
+  customType: {
+    m3u8: function playM3u8(video, url, art) {
+      destroyHls()
+      if (useHls) {
+        hls = new Hls()
+        art.hls = hls
+        hls.loadSource(url)
+        hls.attachMedia(video)
+      }
+      else if (video.canPlayType('application/vnd.apple.mpegurl')) {
+        video.src = url
+      }
+      else {
+        art.notice.show = 'Unsupported playback format: m3u8'
+      }
+    },
+  },
+})
+
+art.on('destroy', destroyHls)

Only install the control plugin when Hls.js is supported. If the browser instead plays HLS natively, the example assigns video.src without installing a plugin that requires art.hls. Native quality/audio selection is not supplied by this plugin. Keep useHls fixed for that player instance; recreate the player if the playback integration changes.

Configuration ​

artplayerPluginHlsControl(option?) returns a synchronous plugin factory. Both quality and audio accept these fields:

FieldMeaning and default
controlShow the bottom control; omitted means hidden.
settingShow the settings entry; omitted means hidden. Enable the player's setting: true as well.
titleMenu title; quality defaults to Quality, audio to Audio.
autoFallback text, default Auto. Quality also uses it for its Auto option. Audio does not gain a synthetic Auto track.
getName(item, index?)Return a string from the original SDK level or track. The current-label call omits index; list calls include it.

Without a quality formatter, labels use level.name or level.height + 'P'. Audio labels use track.name, track.lang, then track.language. Empty titles/Auto text fall back to their defaults. Give formatters a string fallback when your source lacks metadata.

The formatter is a plain callback; it does not receive the player as this. Avoid using its optional index as a required field. Equal labels collapse into one displayed choice, so include bitrate or other distinguishing metadata when separate variants have the same height. Empty track lists remove their menus.

Choosing a quality writes hls.currentLevel; Auto writes -1. The selected label reflects automatic mode when autoLevelEnabled is true. Choosing audio writes hls.audioTrack with the SDK track ID. A menu selection is synchronous and does not mean the new stream has finished buffering or decoding.

Refresh after external changes ​

The plugin updates on player ready and restart. When the SDK provides its event API, manifest, level, audio and destruction events also refresh or clear the menus. Current SDK state determines the selected choice.

After attaching a replacement instance to the same video and assigning art.hls, use the existing synchronous method when an immediate refresh is needed:

js
art.plugins.artplayerPluginHlsControl.update();

update() returns undefined; it is not a Promise. Calling it without an attached Hls.js instance can throw. SDK-like integrations without supported event hooks must call it when their state changes. Reserve menu names hls-quality and hls-audio for this plugin.

SDK ownership and source switching ​

Use the player's existing switchUrl() or switchQuality() for source changes and handle the returned Promise. The example's custom loader destroys the previous SDK before creating the next one, updates art.hls, and keeps one final cleanup listener per player. Each instance is destroyed once. Do not add a new player destroy listener on every load while also destroying replaced instances yourself.

The control plugin releases its own SDK subscriptions and makes retained menu callbacks inert after replacement or player destruction. It does not destroy the SDK, remove other consumers' SDK listeners, or implement Hls.js error recovery. Your application remains responsible for SDK fatal errors and playback policy.

TypeScript ​

The default callback types include level height/name and audio id/name/language fields. Applications can specify their actual SDK metadata types through the existing generic factory. The example below uses only fields it needs and works without importing Hls.js declarations:

ts
import hlsControl from 'artplayer-plugin-hls-control';
+
+interface Level { height: number; bitrate: number }
+interface Track { id: number; name: string; lang?: string }
+
+const plugin = hlsControl<Level, Track>({
+    quality: {
+        control: true,
+        getName: level => level.height + 'p / ' + level.bitrate,
+    },
+    audio: {
+        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.

+ + + + \ No newline at end of file diff --git a/docs/document/en/start/i18n.html b/docs/document/en/start/i18n.html index ae2aea7e4..a25b2bac6 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 9f5196da2..e41808d58 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 71fb96632..86700a4b5 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":"DqSk_DK5","en_start_i18n.md":"DxgNQ6qb","en_start_option.md":"CTPFIwzU","index.md":"CvYUO2aO","plugin_danmuku.md":"gN3hMRyB","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_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"} diff --git a/docs/document/index.html b/docs/document/index.html index 841206089..f79c1abd6 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 6fbd6a5e9..0580825a0 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", "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/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 015d86fcf..12d677aaf 100644 --- a/docs/document/plugin/danmuku.html +++ b/docs/document/plugin/danmuku.html @@ -9,11 +9,11 @@ - + - + - + @@ -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: 底部
@@ -392,8 +392,8 @@
 const points: Point[] = [[0, 5], [100, 10]];
 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 维护模块职责、验证命令及尚未完成的设备和组合验收。

- +art.on('artplayerPluginDanmuku:error', onError);

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

+ \ No newline at end of file diff --git a/docs/document/plugin/hls-control.html b/docs/document/plugin/hls-control.html new file mode 100644 index 000000000..adee73cb3 --- /dev/null +++ b/docs/document/plugin/hls-control.html @@ -0,0 +1,114 @@ + + + + + + HLS 控制 | Artplayer.js + + + + + + + + + + + + + + + + + + + +
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
+// npm i artplayer-plugin-hls-control
+
+// import Hls from 'hls.js';
+// import artplayerPluginHlsControl from 'artplayer-plugin-hls-control';
+
+const useHls = Hls.isSupported()
+let hls
+
+function destroyHls() {
+  const previous = hls
+  hls = undefined
+  if (previous)
+    previous.destroy()
+}
+
+const art = new Artplayer({
+  container: '.artplayer-app',
+  url: 'https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/index.m3u8',
+  setting: true,
+  plugins: useHls
+    ? [
+        artplayerPluginHlsControl({
+          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.name || track.lang || 'Audio',
+            // I18n
+            title: 'Audio',
+            auto: 'Auto',
+          },
+        }),
+      ]
+    : [],
+  customType: {
+    m3u8: function playM3u8(video, url, art) {
+      destroyHls()
+      if (useHls) {
+        hls = new Hls()
+        art.hls = hls
+        hls.loadSource(url)
+        hls.attachMedia(video)
+      }
+      else if (video.canPlayType('application/vnd.apple.mpegurl')) {
+        video.src = url
+      }
+      else {
+        art.notice.show = 'Unsupported playback format: m3u8'
+      }
+    },
+  },
+})
+
+art.on('destroy', destroyHls)

仅在支持 Hls.js 时安装控制插件。若改用浏览器原生 HLS,示例直接设置 video.src,不安装必须依赖 art.hls 的插件;该插件不会为原生播放提供画质或音轨选择。单个播放器实例保持固定的 useHls,更换播放集成方式时重新创建播放器。

配置 ​

artplayerPluginHlsControl(option?) 同步返回插件工厂。quality 与 audio 都可以使用以下字段:

字段含义与默认行为
control显示底部控制器;省略时不显示。
setting显示设置项;省略时不显示,同时需要播放器的 setting: true。
title菜单标题,画质默认 Quality,音轨默认 Audio。
auto当前项未知时的文字,默认 Auto;画质还用于自动选项。音轨不会因此新增一个虚拟 Auto 轨道。
getName(item, index?)根据原始 SDK 档位或轨道对象返回字符串。当前标签调用没有 index,列表调用带有索引。

省略画质回调时,标签取 level.name 或 level.height + 'P';音轨依次取 track.name、track.lang、track.language。空标题和空 Auto 文字会使用默认值。媒体没有相关字段时,自定义回调应提供字符串回退。

回调按普通函数调用,this 不会绑定到播放器,不能把可选索引视为必传字段。相同标签会合并成一个选项;如果想区分同高度的多个档位,可在标签中加入码率。轨道列表变空时会移除对应菜单。

选择画质会写入 hls.currentLevel,Auto 对应 -1;当 autoLevelEnabled 为 true 时,当前标签反映自动模式。选择音轨会把 SDK 轨道 ID 写入 hls.audioTrack。菜单选择是同步操作,不代表新流已经完成缓冲或解码。

外部修改后的刷新 ​

播放器 ready、restart 会刷新菜单;SDK 提供事件接口时,清单、档位、音轨与销毁事件也会刷新或清除菜单。选中项来自当前 SDK 状态。

把替换后的实例绑定到同一个 video 并赋给 art.hls 后,如需立即刷新,可以调用已有同步方法:

js
art.plugins.artplayerPluginHlsControl.update();

update() 返回 undefined,不是 Promise;在没有已绑定 Hls.js 实例时调用可能抛错。没有对应事件接口的自定义适配器需要在状态变化后手动刷新。菜单名 hls-quality 和 hls-audio 由插件使用,其他菜单请使用不同名称。

SDK 所有权与换源 ​

换源继续使用播放器已有的 switchUrl() 或 switchQuality(),并处理返回的 Promise。示例在创建新 SDK 前销毁旧实例,再更新 art.hls,每个播放器只保留一个最终清理监听器,每个 SDK 实例只销毁一次。不要在每次加载时累积新的播放器 destroy 监听器,同时又自行销毁被替换的实例。

控制插件只释放自己的 SDK 订阅;替换或销毁播放器后,旧菜单回调不再修改 SDK。插件不会销毁 SDK、移除其他使用者的监听器或实现 Hls.js 错误恢复;应用仍负责处理 SDK 致命错误和播放策略。

TypeScript ​

默认回调类型包含画质高度/名称和音轨 ID/名称/语言字段。可以通过泛型使用应用所需的 SDK 元数据类型;下面的示例只声明实际使用的字段,无需导入 Hls.js 声明:

ts
import hlsControl from 'artplayer-plugin-hls-control';
+
+interface Level { height: number; bitrate: number }
+interface Track { id: number; name: string; lang?: string }
+
+const plugin = hlsControl<Level, Track>({
+    quality: {
+        control: true,
+        getName: level => level.height + 'p / ' + level.bitrate,
+    },
+    audio: {
+        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 已验收。采用尚未发布的重构前,应验证实际媒体与目标设备。

+ + + + \ No newline at end of file diff --git a/docs/document/start/i18n.html b/docs/document/start/i18n.html index 0e9017eff..b75eb15eb 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 7cb80bfc0..c2d4b8a4b 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 ca075d41a..e26adc6cb 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/hls-control.md", + "sha256Lf": "c0271b386e44fcc47c9aad017b3b02f75bb3baec830bca9634edcb2060cd91d3" + }, { "file": "packages/artplayer-vitepress/docs/en/start/i18n.md", "sha256Lf": "1551bf939aab1ee942d8480df891640109d18aa9adc016adf1d075bee5ef1de9" @@ -208,7 +212,7 @@ }, { "file": "docs/assets/example/hls.control.js", - "sha256Lf": "b02fd290d79999790501447fad95736642344b9b30af3ccdbe353f80c7d53a6e" + "sha256Lf": "a80c48da4ddecccfddd7962ed2b3f9315b47204768bd3f709de14501cff3851e" }, { "file": "docs/assets/example/hls.js", @@ -271,5 +275,5 @@ "sha256Lf": "967db6e5026a2fd3cc24d8a04e5c78859f543d0c0f6d4f9599c103e4e93c9b29" } ], - "outputSha256Lf": "161412fcd934ce386cf43d347b4e323fca0c9a4f838ad1715f6f164ad1eb6c75" + "outputSha256Lf": "3d907bba5a29e7e856ecdd3c387ced645dc60328999b686104c01884eb6aad4c" } diff --git a/docs/llms.txt b/docs/llms.txt index e5c88aa3a..f184faa23 100644 --- a/docs/llms.txt +++ b/docs/llms.txt @@ -4894,6 +4894,175 @@ 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/hls-control.md ===== + +# HLS Control + +[中文说明](../../plugin/hls-control.md) + +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](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js%0A./uncompiled/artplayer-plugin-hls-control/index.js&example=hls.control). Replace the container and stream URL in your application. + +
+ +```js +// npm i hls.js +// npm i artplayer-plugin-hls-control + +// import Hls from 'hls.js'; +// import artplayerPluginHlsControl from 'artplayer-plugin-hls-control'; + +const useHls = Hls.isSupported() +let hls + +function destroyHls() { + const previous = hls + hls = undefined + if (previous) + previous.destroy() +} + +const art = new Artplayer({ + container: '.artplayer-app', + url: 'https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/index.m3u8', + setting: true, + plugins: useHls + ? [ + artplayerPluginHlsControl({ + 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.name || track.lang || 'Audio', + // I18n + title: 'Audio', + auto: 'Auto', + }, + }), + ] + : [], + customType: { + m3u8: function playM3u8(video, url, art) { + destroyHls() + if (useHls) { + hls = new Hls() + art.hls = hls + hls.loadSource(url) + hls.attachMedia(video) + } + else if (video.canPlayType('application/vnd.apple.mpegurl')) { + video.src = url + } + else { + art.notice.show = 'Unsupported playback format: m3u8' + } + }, + }, +}) + +art.on('destroy', destroyHls) +``` + +Only install the control plugin when Hls.js is supported. If the browser instead plays HLS natively, the example assigns `video.src` without installing a plugin that requires `art.hls`. Native quality/audio selection is not supplied by this plugin. Keep `useHls` fixed for that player instance; recreate the player if the playback integration changes. + +## Configuration + +`artplayerPluginHlsControl(option?)` returns a synchronous plugin factory. Both `quality` and `audio` accept these fields: + +| Field | Meaning and default | +| --- | --- | +| `control` | Show the bottom control; omitted means hidden. | +| `setting` | Show the settings entry; omitted means hidden. Enable the player's `setting: true` as well. | +| `title` | Menu title; quality defaults to `Quality`, audio to `Audio`. | +| `auto` | Fallback text, default `Auto`. Quality also uses it for its Auto option. Audio does not gain a synthetic Auto track. | +| `getName(item, index?)` | Return a string from the original SDK level or track. The current-label call omits `index`; list calls include it. | + +Without a quality formatter, labels use `level.name` or `level.height + 'P'`. Audio labels use `track.name`, `track.lang`, then `track.language`. Empty titles/Auto text fall back to their defaults. Give formatters a string fallback when your source lacks metadata. + +The formatter is a plain callback; it does not receive the player as `this`. Avoid using its optional index as a required field. Equal labels collapse into one displayed choice, so include bitrate or other distinguishing metadata when separate variants have the same height. Empty track lists remove their menus. + +Choosing a quality writes `hls.currentLevel`; Auto writes `-1`. The selected label reflects automatic mode when `autoLevelEnabled` is true. Choosing audio writes `hls.audioTrack` with the SDK track ID. A menu selection is synchronous and does not mean the new stream has finished buffering or decoding. + +## Refresh after external changes + +The plugin updates on player `ready` and `restart`. When the SDK provides its event API, manifest, level, audio and destruction events also refresh or clear the menus. Current SDK state determines the selected choice. + +After attaching a replacement instance to the same video and assigning `art.hls`, use the existing synchronous method when an immediate refresh is needed: + +```js +art.plugins.artplayerPluginHlsControl.update(); +``` + +`update()` returns `undefined`; it is not a Promise. Calling it without an attached Hls.js instance can throw. SDK-like integrations without supported event hooks must call it when their state changes. Reserve menu names `hls-quality` and `hls-audio` for this plugin. + +## SDK ownership and source switching + +Use the player's existing `switchUrl()` or `switchQuality()` for source changes and handle the returned Promise. The example's custom loader destroys the previous SDK before creating the next one, updates `art.hls`, and keeps one final cleanup listener per player. Each instance is destroyed once. Do not add a new player `destroy` listener on every load while also destroying replaced instances yourself. + +The control plugin releases its own SDK subscriptions and makes retained menu callbacks inert after replacement or player destruction. It does not destroy the SDK, remove other consumers' SDK listeners, or implement Hls.js error recovery. Your application remains responsible for SDK fatal errors and playback policy. + +## TypeScript + +The default callback types include level height/name and audio id/name/language fields. Applications can specify their actual SDK metadata types through the existing generic factory. The example below uses only fields it needs and works without importing Hls.js declarations: + +```ts +import hlsControl from 'artplayer-plugin-hls-control'; + +interface Level { height: number; bitrate: number } +interface Track { id: number; name: string; lang?: string } + +const plugin = hlsControl({ + quality: { + control: true, + getName: level => level.height + 'p / ' + level.bitrate, + }, + audio: { + 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. + + ===== packages/artplayer-vitepress/docs/en/start/i18n.md ===== # Language Settings @@ -9587,46 +9756,56 @@ art.on('ready', () => { // import Hls from 'hls.js'; // import artplayerPluginHlsControl from 'artplayer-plugin-hls-control'; +const useHls = Hls.isSupported() +let hls + +function destroyHls() { + const previous = hls + hls = undefined + if (previous) + previous.destroy() +} + const art = new Artplayer({ container: '.artplayer-app', url: 'https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/index.m3u8', setting: true, - plugins: [ - artplayerPluginHlsControl({ - 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.name, - // I18n - title: 'Audio', - auto: 'Auto', - }, - }), - ], + plugins: useHls + ? [ + artplayerPluginHlsControl({ + 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.name || track.lang || 'Audio', + // I18n + title: 'Audio', + auto: 'Auto', + }, + }), + ] + : [], customType: { m3u8: function playM3u8(video, url, art) { - if (Hls.isSupported()) { - if (art.hls) - art.hls.destroy() - const hls = new Hls() + destroyHls() + if (useHls) { + hls = new Hls() + art.hls = hls hls.loadSource(url) hls.attachMedia(video) - art.hls = hls - art.on('destroy', () => hls.destroy()) } else if (video.canPlayType('application/vnd.apple.mpegurl')) { video.src = url @@ -9638,6 +9817,8 @@ const art = new Artplayer({ }, }) +art.on('destroy', destroyHls) + ===== docs/assets/example/hls.js ===== diff --git a/package.json b/package.json index 351cee3d6..528acbd42 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: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: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-hls-control/ARCHITECTURE.md b/packages/artplayer-plugin-hls-control/ARCHITECTURE.md index 10d74e0a6..4d445dad0 100644 --- a/packages/artplayer-plugin-hls-control/ARCHITECTURE.md +++ b/packages/artplayer-plugin-hls-control/ARCHITECTURE.md @@ -86,6 +86,24 @@ The plugin owns its two reserved menu names. Applications should use distinct na entries. Hls instances and third-party SDK listeners remain owned by their callers. No minimum core/SDK version has been newly imposed; the tested historical core is 5.4.0 and SDK is 1.5.17. +## Documentation and example ownership + +The bilingual `artplayer-vitepress/docs/{en/,}plugin/hls-control.md` guides contain +the exact `docs/assets/example/hls.control.js` setup. The example selects Hls.js +versus native HLS once per player, installs controls only for the Hls.js path, +releases each replaced SDK and registers one final player cleanup listener. +`test/hls-example.test.js` guards the previously duplicated destroy calls and the +invalid native-fallback plugin registration. `document-hls.spec.js` checks exact +example parity and real SDK playback/replacement against published/candidate core; +its WebKit no-MSE branch is capability evidence, not native HLS playback. + +Update both guides whenever changing the example. Run the Node regression, +`yarn test:browser document-hls.spec.js document-site.spec.js --workers=1`, +`yarn build:llm`, `yarn build:docs`, and refresh/check the site inventory. +Full source-topology, native-device and intermittent Firefox acceptance remain +separate tasks. The native crash checkpoint now has xul.dll exception metadata; +it still does not have a resolved stack or proven cause. + ## Validation and next changes Use the repository's pinned Node and Yarn: diff --git a/packages/artplayer-plugin-hls-control/README.md b/packages/artplayer-plugin-hls-control/README.md index 8fd364060..ba2cc4c5e 100644 --- a/packages/artplayer-plugin-hls-control/README.md +++ b/packages/artplayer-plugin-hls-control/README.md @@ -4,6 +4,11 @@ Implementation boundaries and regression commands are documented in [ARCHITECTUR Hls control plugin for ArtPlayer +Usage, SDK ownership, configuration and TypeScript examples: +[English guide](../artplayer-vitepress/docs/en/plugin/hls-control.md) / +[中文指南](../artplayer-vitepress/docs/plugin/hls-control.md). +The guides describe this refactor branch; its fixes have not yet been published. + ## Demo [https://artplayer.org](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js%0A./uncompiled/artplayer-plugin-hls-control/index.js&example=hls.control) diff --git a/packages/artplayer-vitepress/README.md b/packages/artplayer-vitepress/README.md index dc744b362..c0283888a 100644 --- a/packages/artplayer-vitepress/README.md +++ b/packages/artplayer-vitepress/README.md @@ -11,14 +11,15 @@ not a VitePress page. Keep both URL surfaces compatible. | `docs/index.md`, `docs/start`, `docs/component`, `docs/advanced` | Chinese API documentation | `/document/` | | `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/.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 28 Markdown pages: 14 Chinese -and 14 English. Danmuku has a dedicated guide and navigation in both languages. Other plugins currently +`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 use their package README, architecture notes and linked editor examples; navigation links alone are not complete API documentation. @@ -123,3 +124,10 @@ SITE-02/03 own generators and browser source organization; SITE-04 owns bilingua API completeness; SITE-05 owns build, links and real search; SITE-07 owns vendor provenance and distribution notices; EX-03 owns complete demo execution. Three release review rounds and remote CI/Pages evidence remain separate requirements. + +The HLS guides at `docs/plugin/hls-control.md` and `docs/en/plugin/hls-control.md` +share the exact runnable `docs/assets/example/hls.control.js` source at repository +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. diff --git a/packages/artplayer-vitepress/docs/.vitepress/config.js b/packages/artplayer-vitepress/docs/.vitepress/config.js index ed0f8bab1..440153309 100644 --- a/packages/artplayer-vitepress/docs/.vitepress/config.js +++ b/packages/artplayer-vitepress/docs/.vitepress/config.js @@ -70,7 +70,7 @@ const config = { { text: '弹幕遮罩', link: 'https://artplayer.org/?libs=./uncompiled/artplayer-plugin-danmuku/index.js%0A./uncompiled/artplayer-plugin-danmuku-mask/index.js&example=danmuku.mask' }, { 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: 'https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js%0A./uncompiled/artplayer-plugin-hls-control/index.js&example=hls.control' }, + { 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: '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' }, @@ -142,7 +142,7 @@ const config = { { text: 'Danmuku', link: '/en/plugin/danmuku' }, { 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: 'https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js%0A./uncompiled/artplayer-plugin-hls-control/index.js&example=hls.control' }, + { 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: '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' }, diff --git a/packages/artplayer-vitepress/docs/en/plugin/hls-control.md b/packages/artplayer-vitepress/docs/en/plugin/hls-control.md new file mode 100644 index 000000000..36fec45a1 --- /dev/null +++ b/packages/artplayer-vitepress/docs/en/plugin/hls-control.md @@ -0,0 +1,165 @@ +# HLS Control + +[中文说明](../../plugin/hls-control.md) + +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](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js%0A./uncompiled/artplayer-plugin-hls-control/index.js&example=hls.control). Replace the container and stream URL in your application. + +
+ +```js +// npm i hls.js +// npm i artplayer-plugin-hls-control + +// import Hls from 'hls.js'; +// import artplayerPluginHlsControl from 'artplayer-plugin-hls-control'; + +const useHls = Hls.isSupported() +let hls + +function destroyHls() { + const previous = hls + hls = undefined + if (previous) + previous.destroy() +} + +const art = new Artplayer({ + container: '.artplayer-app', + url: 'https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/index.m3u8', + setting: true, + plugins: useHls + ? [ + artplayerPluginHlsControl({ + 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.name || track.lang || 'Audio', + // I18n + title: 'Audio', + auto: 'Auto', + }, + }), + ] + : [], + customType: { + m3u8: function playM3u8(video, url, art) { + destroyHls() + if (useHls) { + hls = new Hls() + art.hls = hls + hls.loadSource(url) + hls.attachMedia(video) + } + else if (video.canPlayType('application/vnd.apple.mpegurl')) { + video.src = url + } + else { + art.notice.show = 'Unsupported playback format: m3u8' + } + }, + }, +}) + +art.on('destroy', destroyHls) +``` + +Only install the control plugin when Hls.js is supported. If the browser instead plays HLS natively, the example assigns `video.src` without installing a plugin that requires `art.hls`. Native quality/audio selection is not supplied by this plugin. Keep `useHls` fixed for that player instance; recreate the player if the playback integration changes. + +## Configuration + +`artplayerPluginHlsControl(option?)` returns a synchronous plugin factory. Both `quality` and `audio` accept these fields: + +| Field | Meaning and default | +| --- | --- | +| `control` | Show the bottom control; omitted means hidden. | +| `setting` | Show the settings entry; omitted means hidden. Enable the player's `setting: true` as well. | +| `title` | Menu title; quality defaults to `Quality`, audio to `Audio`. | +| `auto` | Fallback text, default `Auto`. Quality also uses it for its Auto option. Audio does not gain a synthetic Auto track. | +| `getName(item, index?)` | Return a string from the original SDK level or track. The current-label call omits `index`; list calls include it. | + +Without a quality formatter, labels use `level.name` or `level.height + 'P'`. Audio labels use `track.name`, `track.lang`, then `track.language`. Empty titles/Auto text fall back to their defaults. Give formatters a string fallback when your source lacks metadata. + +The formatter is a plain callback; it does not receive the player as `this`. Avoid using its optional index as a required field. Equal labels collapse into one displayed choice, so include bitrate or other distinguishing metadata when separate variants have the same height. Empty track lists remove their menus. + +Choosing a quality writes `hls.currentLevel`; Auto writes `-1`. The selected label reflects automatic mode when `autoLevelEnabled` is true. Choosing audio writes `hls.audioTrack` with the SDK track ID. A menu selection is synchronous and does not mean the new stream has finished buffering or decoding. + +## Refresh after external changes + +The plugin updates on player `ready` and `restart`. When the SDK provides its event API, manifest, level, audio and destruction events also refresh or clear the menus. Current SDK state determines the selected choice. + +After attaching a replacement instance to the same video and assigning `art.hls`, use the existing synchronous method when an immediate refresh is needed: + +```js +art.plugins.artplayerPluginHlsControl.update(); +``` + +`update()` returns `undefined`; it is not a Promise. Calling it without an attached Hls.js instance can throw. SDK-like integrations without supported event hooks must call it when their state changes. Reserve menu names `hls-quality` and `hls-audio` for this plugin. + +## SDK ownership and source switching + +Use the player's existing `switchUrl()` or `switchQuality()` for source changes and handle the returned Promise. The example's custom loader destroys the previous SDK before creating the next one, updates `art.hls`, and keeps one final cleanup listener per player. Each instance is destroyed once. Do not add a new player `destroy` listener on every load while also destroying replaced instances yourself. + +The control plugin releases its own SDK subscriptions and makes retained menu callbacks inert after replacement or player destruction. It does not destroy the SDK, remove other consumers' SDK listeners, or implement Hls.js error recovery. Your application remains responsible for SDK fatal errors and playback policy. + +## TypeScript + +The default callback types include level height/name and audio id/name/language fields. Applications can specify their actual SDK metadata types through the existing generic factory. The example below uses only fields it needs and works without importing Hls.js declarations: + +```ts +import hlsControl from 'artplayer-plugin-hls-control'; + +interface Level { height: number; bitrate: number } +interface Track { id: number; name: string; lang?: string } + +const plugin = hlsControl({ + quality: { + control: true, + getName: level => level.height + 'p / ' + level.bitrate, + }, + audio: { + 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. diff --git a/packages/artplayer-vitepress/docs/plugin/hls-control.md b/packages/artplayer-vitepress/docs/plugin/hls-control.md new file mode 100644 index 000000000..69485d9ce --- /dev/null +++ b/packages/artplayer-vitepress/docs/plugin/hls-control.md @@ -0,0 +1,165 @@ +# HLS 控制 + +[English](../en/plugin/hls-control.md) + +为 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 示例](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js%0A./uncompiled/artplayer-plugin-hls-control/index.js&example=hls.control)使用同一份代码和站点容器。接入自己的应用时替换容器与视频地址。 + +
+ +```js +// npm i hls.js +// npm i artplayer-plugin-hls-control + +// import Hls from 'hls.js'; +// import artplayerPluginHlsControl from 'artplayer-plugin-hls-control'; + +const useHls = Hls.isSupported() +let hls + +function destroyHls() { + const previous = hls + hls = undefined + if (previous) + previous.destroy() +} + +const art = new Artplayer({ + container: '.artplayer-app', + url: 'https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/index.m3u8', + setting: true, + plugins: useHls + ? [ + artplayerPluginHlsControl({ + 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.name || track.lang || 'Audio', + // I18n + title: 'Audio', + auto: 'Auto', + }, + }), + ] + : [], + customType: { + m3u8: function playM3u8(video, url, art) { + destroyHls() + if (useHls) { + hls = new Hls() + art.hls = hls + hls.loadSource(url) + hls.attachMedia(video) + } + else if (video.canPlayType('application/vnd.apple.mpegurl')) { + video.src = url + } + else { + art.notice.show = 'Unsupported playback format: m3u8' + } + }, + }, +}) + +art.on('destroy', destroyHls) +``` + +仅在支持 Hls.js 时安装控制插件。若改用浏览器原生 HLS,示例直接设置 `video.src`,不安装必须依赖 `art.hls` 的插件;该插件不会为原生播放提供画质或音轨选择。单个播放器实例保持固定的 `useHls`,更换播放集成方式时重新创建播放器。 + +## 配置 + +`artplayerPluginHlsControl(option?)` 同步返回插件工厂。`quality` 与 `audio` 都可以使用以下字段: + +| 字段 | 含义与默认行为 | +| --- | --- | +| `control` | 显示底部控制器;省略时不显示。 | +| `setting` | 显示设置项;省略时不显示,同时需要播放器的 `setting: true`。 | +| `title` | 菜单标题,画质默认 `Quality`,音轨默认 `Audio`。 | +| `auto` | 当前项未知时的文字,默认 `Auto`;画质还用于自动选项。音轨不会因此新增一个虚拟 Auto 轨道。 | +| `getName(item, index?)` | 根据原始 SDK 档位或轨道对象返回字符串。当前标签调用没有 `index`,列表调用带有索引。 | + +省略画质回调时,标签取 `level.name` 或 `level.height + 'P'`;音轨依次取 `track.name`、`track.lang`、`track.language`。空标题和空 Auto 文字会使用默认值。媒体没有相关字段时,自定义回调应提供字符串回退。 + +回调按普通函数调用,`this` 不会绑定到播放器,不能把可选索引视为必传字段。相同标签会合并成一个选项;如果想区分同高度的多个档位,可在标签中加入码率。轨道列表变空时会移除对应菜单。 + +选择画质会写入 `hls.currentLevel`,Auto 对应 `-1`;当 `autoLevelEnabled` 为 true 时,当前标签反映自动模式。选择音轨会把 SDK 轨道 ID 写入 `hls.audioTrack`。菜单选择是同步操作,不代表新流已经完成缓冲或解码。 + +## 外部修改后的刷新 + +播放器 `ready`、`restart` 会刷新菜单;SDK 提供事件接口时,清单、档位、音轨与销毁事件也会刷新或清除菜单。选中项来自当前 SDK 状态。 + +把替换后的实例绑定到同一个 video 并赋给 `art.hls` 后,如需立即刷新,可以调用已有同步方法: + +```js +art.plugins.artplayerPluginHlsControl.update(); +``` + +`update()` 返回 `undefined`,不是 Promise;在没有已绑定 Hls.js 实例时调用可能抛错。没有对应事件接口的自定义适配器需要在状态变化后手动刷新。菜单名 `hls-quality` 和 `hls-audio` 由插件使用,其他菜单请使用不同名称。 + +## SDK 所有权与换源 + +换源继续使用播放器已有的 `switchUrl()` 或 `switchQuality()`,并处理返回的 Promise。示例在创建新 SDK 前销毁旧实例,再更新 `art.hls`,每个播放器只保留一个最终清理监听器,每个 SDK 实例只销毁一次。不要在每次加载时累积新的播放器 `destroy` 监听器,同时又自行销毁被替换的实例。 + +控制插件只释放自己的 SDK 订阅;替换或销毁播放器后,旧菜单回调不再修改 SDK。插件不会销毁 SDK、移除其他使用者的监听器或实现 Hls.js 错误恢复;应用仍负责处理 SDK 致命错误和播放策略。 + +## TypeScript + +默认回调类型包含画质高度/名称和音轨 ID/名称/语言字段。可以通过泛型使用应用所需的 SDK 元数据类型;下面的示例只声明实际使用的字段,无需导入 Hls.js 声明: + +```ts +import hlsControl from 'artplayer-plugin-hls-control'; + +interface Level { height: number; bitrate: number } +interface Track { id: number; name: string; lang?: string } + +const plugin = hlsControl({ + quality: { + control: true, + getName: level => level.height + 'p / ' + level.bitrate, + }, + audio: { + 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 已验收。采用尚未发布的重构前,应验证实际媒体与目标设备。 diff --git a/packages/artplayer-vitepress/docs/public/main.js b/packages/artplayer-vitepress/docs/public/main.js index 6fbd6a5e9..0580825a0 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", "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/hls-control.html", "plugin/hls-control", "start/i18n.html", "start/i18n", "start/option.html", "start/option"]); })(); diff --git a/refactor/baselines/hls-docs-validation.json b/refactor/baselines/hls-docs-validation.json new file mode 100644 index 000000000..330204052 --- /dev/null +++ b/refactor/baselines/hls-docs-validation.json @@ -0,0 +1,2185 @@ +{ + "task": "SITE-HLS-01", + "sourceHead": "2802cbacc5af0fade1f6172eeeed754f4086e1ac", + "recordedAt": "2026-09-15T09:53:52.721Z", + "environment": { + "node": "24.21.0", + "yarn": "1.22.22", + "typescript": "5.9.3", + "platform": "Windows" + }, + "scope": "Bilingual HLS guide, exact shared demo source, SDK lifecycle correction and native fallback registration; not full HLS package/device acceptance", + "sources": [ + { + "file": "docs/assets/example/hls.control.js", + "sha256": "a80c48da4ddecccfddd7962ed2b3f9315b47204768bd3f709de14501cff3851e" + }, + { + "file": "test/hls-example.test.js", + "sha256": "08234b30500227236dae1c48367aef87bb73ee28deb06556607fff1bb47de177" + }, + { + "file": "test/browser/document-hls.spec.js", + "sha256": "3e81bcd200926d19db73ce3d7a6d1860397c8ec84a72a0976e42d765d0730c3e" + }, + { + "file": "test/browser/document-site.spec.js", + "sha256": "cf99fe8984f7fc52a5a5642990b19d707a209452d7bcf318e5364a22ee9f8aee" + }, + { + "file": "packages/artplayer-vitepress/docs/plugin/hls-control.md", + "sha256": "262df6632861f93e8b313db229416a3a70399c94380dcc4ecb9c405ea4b17aba" + }, + { + "file": "packages/artplayer-vitepress/docs/en/plugin/hls-control.md", + "sha256": "c0271b386e44fcc47c9aad017b3b02f75bb3baec830bca9634edcb2060cd91d3" + }, + { + "file": "packages/artplayer-vitepress/docs/.vitepress/config.js", + "sha256": "2c31669093e62bac0d59d874ea0181455e9117824712807ff64c04ce7d5eb693" + }, + { + "file": "packages/artplayer-vitepress/docs/public/main.js", + "sha256": "387e6b4d0dd4251b18fd1d45b45656e63aeba25e2a67cdb26da5f185e7359fb1" + }, + { + "file": "packages/artplayer-plugin-hls-control/README.md", + "sha256": "d5b3c8838b37b1114c7477c4978f67d2ee55a378ea4902081cc0be1896ed3ed0" + }, + { + "file": "packages/artplayer-plugin-hls-control/ARCHITECTURE.md", + "sha256": "57ffe5b86cc81d1cd2c0974d1009f237b23c9b67a93c11efd73176382dbd38e6" + }, + { + "file": "packages/artplayer-vitepress/README.md", + "sha256": "9d758fbce425d4a42864121b7a45623917457d83b94c0e2e1c7de96a8089de6a" + }, + { + "file": "package.json", + "sha256": "b1659aac5f444e469c760da8d3b6bcde94010521c58a143471d2f1a35183874f" + } + ], + "originalExample": { + "sourceHead": "2802cbacc5af0fade1f6172eeeed754f4086e1ac", + "sha256": "b02fd290d79999790501447fad95736642344b9b30af3ccdbe353f80c7d53a6e", + "tests": { + "passed": 1, + "failed": 2, + "log": { + "file": "refactor/.cache/hls-example-before.log", + "sha256": "98a9c409b672ac20995e1216271d8e576b9328be348b4fc9652d954703644275" + } + } + }, + "checks": { + "node": { + "passed": 20, + "failed": 0, + "log": { + "file": "refactor/.cache/hls-docs-node-tests.log", + "sha256": "571bdbdf24fa3ceb0269e37b013d89449e7ea227d7c9b3b99162d48ef15de7f4" + } + }, + "siteBuildTests": { + "passed": 7, + "failed": 0, + "log": { + "file": "refactor/.cache/hls-docs-site-tests.log", + "sha256": "9bc2b65b72aaf4e5e14ac536b8a531b35fa517a6f3d558f2cbea8ebfbfca08e0" + } + }, + "lint": { + "exitCode": 0, + "log": { + "file": "refactor/.cache/hls-docs-lint.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + "build": { + "exitCode": 0, + "log": { + "file": "refactor/.cache/hls-docs-build.log", + "sha256": "8fb32b432b40dfbd68d293af489c9eeac2f50d1765eaa81f9460e6149d56f9df" + } + }, + "llm": { + "exitCode": 0, + "log": { + "file": "refactor/.cache/hls-docs-llm.log", + "sha256": "65b9270de911860917ff44f95347ba9ee1c2078755e9dcab63cf86b7a58428d9" + } + }, + "static": { + "typescript": "5.9.3", + "options": { + "strict": true, + "noEmit": true, + "skipLibCheck": false, + "types": [], + "module": "NodeNext" + }, + "directory": "D:\\github\\ArtPlayer\\refactor\\.cache\\hls-docs-types-9usqW9", + "results": [ + { + "source": "packages/artplayer-vitepress/docs/plugin/hls-control.md", + "sourceSHA256": "262df6632861f93e8b313db229416a3a70399c94380dcc4ecb9c405ea4b17aba", + "built": "docs/document/plugin/hls-control.html", + "builtSHA256": "f4715b9fb6c4e7b7b5447e56dd26c546bc48b1446c1e2d3fd155dc03f97b4686", + "title": "HLS 控制 ​", + "snippetSHA256": "4afc8ca561558c47aa4b3354ebbfdabaae3971d551cffb9eb305429dab7722a2", + "diagnostics": 0, + "localLinks": 18, + "runCode": 1 + }, + { + "source": "packages/artplayer-vitepress/docs/en/plugin/hls-control.md", + "sourceSHA256": "c0271b386e44fcc47c9aad017b3b02f75bb3baec830bca9634edcb2060cd91d3", + "built": "docs/document/en/plugin/hls-control.html", + "builtSHA256": "a6ac6504b7a348ad20524c56521e5e563de295b87995e14226f4638972f040f0", + "title": "HLS Control ​", + "snippetSHA256": "4afc8ca561558c47aa4b3354ebbfdabaae3971d551cffb9eb305429dab7722a2", + "diagnostics": 0, + "localLinks": 18, + "runCode": 1 + } + ] + }, + "riskTests": { + "passed": 2, + "failed": 0, + "log": { + "file": "refactor/.cache/hls-docs-risk-tests.log", + "sha256": "0cad842ddd17d184526d5412d931523535fe7f18134e2b70a4d414f786b69cf9" + } + }, + "whitespace": { + "sourcePassed": true, + "generatedHtmlWarnings": 4, + "reason": "Two VitePress-produced indentation-only lines per new HTML page; generated output retained" + } + }, + "browser": { + "before": { + "file": "refactor/.cache/hls-docs-browser-first.json", + "sha256": "42a4732e9f513510b21322da7799cb229e571e49a09a1b078368df12323bc1ef", + "stats": { + "startTime": "2026-09-15T09:42:59.482Z", + "duration": 91008.603, + "expected": 16, + "skipped": 0, + "unexpected": 8, + "flaky": 0 + }, + "tests": [ + { + "title": "documented HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, published core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, published core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, published core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, published core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, published core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, published core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, published core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, published core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, published core", + "project": "webkit", + "status": "unexpected", + "results": [ + { + "status": "failed", + "retry": 0, + "errors": [ + "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Unsupported playback format: m3u8\"\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 63 | // Windows WebKit has neither the tested MSE path nor native HLS support.\n 64 | expect(await page.evaluate(() => window.art.video.canPlayType('application/vnd.apple.mpegurl'))).toBe('')\n> 65 | await expect.poll(() => page.evaluate(() => window.art.notice.show)).toBe('Unsupported playback format: m3u8')\n | ^\n 66 | await page.evaluate(() => window.art.destroy())\n 67 | return\n 68 | }\n at D:\\github\\ArtPlayer\\test\\browser\\document-hls.spec.js:65:80" + ], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "webkit", + "status": "unexpected", + "results": [ + { + "status": "failed", + "retry": 0, + "errors": [ + "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Unsupported playback format: m3u8\"\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 63 | // Windows WebKit has neither the tested MSE path nor native HLS support.\n 64 | expect(await page.evaluate(() => window.art.video.canPlayType('application/vnd.apple.mpegurl'))).toBe('')\n> 65 | await expect.poll(() => page.evaluate(() => window.art.notice.show)).toBe('Unsupported playback format: m3u8')\n | ^\n 66 | await page.evaluate(() => window.art.destroy())\n 67 | return\n 68 | }\n at D:\\github\\ArtPlayer\\test\\browser\\document-hls.spec.js:65:80" + ], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, published core", + "project": "webkit", + "status": "unexpected", + "results": [ + { + "status": "failed", + "retry": 0, + "errors": [ + "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Unsupported playback format: m3u8\"\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 63 | // Windows WebKit has neither the tested MSE path nor native HLS support.\n 64 | expect(await page.evaluate(() => window.art.video.canPlayType('application/vnd.apple.mpegurl'))).toBe('')\n> 65 | await expect.poll(() => page.evaluate(() => window.art.notice.show)).toBe('Unsupported playback format: m3u8')\n | ^\n 66 | await page.evaluate(() => window.art.destroy())\n 67 | return\n 68 | }\n at D:\\github\\ArtPlayer\\test\\browser\\document-hls.spec.js:65:80" + ], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "webkit", + "status": "unexpected", + "results": [ + { + "status": "failed", + "retry": 0, + "errors": [ + "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Unsupported playback format: m3u8\"\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 63 | // Windows WebKit has neither the tested MSE path nor native HLS support.\n 64 | expect(await page.evaluate(() => window.art.video.canPlayType('application/vnd.apple.mpegurl'))).toBe('')\n> 65 | await expect.poll(() => page.evaluate(() => window.art.notice.show)).toBe('Unsupported playback format: m3u8')\n | ^\n 66 | await page.evaluate(() => window.art.destroy())\n 67 | return\n 68 | }\n at D:\\github\\ArtPlayer\\test\\browser\\document-hls.spec.js:65:80" + ], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, published core", + "project": "webkit", + "status": "unexpected", + "results": [ + { + "status": "failed", + "retry": 0, + "errors": [ + "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Unsupported playback format: m3u8\"\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 63 | // Windows WebKit has neither the tested MSE path nor native HLS support.\n 64 | expect(await page.evaluate(() => window.art.video.canPlayType('application/vnd.apple.mpegurl'))).toBe('')\n> 65 | await expect.poll(() => page.evaluate(() => window.art.notice.show)).toBe('Unsupported playback format: m3u8')\n | ^\n 66 | await page.evaluate(() => window.art.destroy())\n 67 | return\n 68 | }\n at D:\\github\\ArtPlayer\\test\\browser\\document-hls.spec.js:65:80" + ], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "webkit", + "status": "unexpected", + "results": [ + { + "status": "failed", + "retry": 0, + "errors": [ + "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Unsupported playback format: m3u8\"\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 63 | // Windows WebKit has neither the tested MSE path nor native HLS support.\n 64 | expect(await page.evaluate(() => window.art.video.canPlayType('application/vnd.apple.mpegurl'))).toBe('')\n> 65 | await expect.poll(() => page.evaluate(() => window.art.notice.show)).toBe('Unsupported playback format: m3u8')\n | ^\n 66 | await page.evaluate(() => window.art.destroy())\n 67 | return\n 68 | }\n at D:\\github\\ArtPlayer\\test\\browser\\document-hls.spec.js:65:80" + ], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, published core", + "project": "webkit", + "status": "unexpected", + "results": [ + { + "status": "failed", + "retry": 0, + "errors": [ + "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Unsupported playback format: m3u8\"\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 63 | // Windows WebKit has neither the tested MSE path nor native HLS support.\n 64 | expect(await page.evaluate(() => window.art.video.canPlayType('application/vnd.apple.mpegurl'))).toBe('')\n> 65 | await expect.poll(() => page.evaluate(() => window.art.notice.show)).toBe('Unsupported playback format: m3u8')\n | ^\n 66 | await page.evaluate(() => window.art.destroy())\n 67 | return\n 68 | }\n at D:\\github\\ArtPlayer\\test\\browser\\document-hls.spec.js:65:80" + ], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "webkit", + "status": "unexpected", + "results": [ + { + "status": "failed", + "retry": 0, + "errors": [ + "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Unsupported playback format: m3u8\"\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 63 | // Windows WebKit has neither the tested MSE path nor native HLS support.\n 64 | expect(await page.evaluate(() => window.art.video.canPlayType('application/vnd.apple.mpegurl'))).toBe('')\n> 65 | await expect.poll(() => page.evaluate(() => window.art.notice.show)).toBe('Unsupported playback format: m3u8')\n | ^\n 66 | await page.evaluate(() => window.art.destroy())\n 67 | return\n 68 | }\n at D:\\github\\ArtPlayer\\test\\browser\\document-hls.spec.js:65:80" + ], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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": [] + } + ] + } + ] + }, + "final": { + "file": "refactor/.cache/hls-docs-browser-final.json", + "sha256": "089abbba8f0364a4edae617e526fc21d6eba31ddb5562643977c0cfe0c924311", + "stats": { + "startTime": "2026-09-15T09:45:37.453Z", + "duration": 61482.596999999994, + "expected": 30, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + }, + "tests": [ + { + "title": "documented HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, published core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, published core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, published core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, published core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "chromium", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, published core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, published core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, published core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, published core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "firefox", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": true, + "scope": "real SDK default worker, local routed stream, 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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, published core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, published core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, published core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.5.17, candidate core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "sdkSHA256": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, published core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "published", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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 HLS setup and source lifecycle: en/plugin/hls-control.md, SDK 1.7.2, candidate core", + "project": "webkit", + "status": "expected", + "results": [ + { + "status": "passed", + "retry": 0, + "errors": [], + "inputs": { + "document": "en/plugin/hls-control.md", + "core": "candidate", + "sdk": { + "name": "hls.js", + "version": "1.7.2", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.2.tgz", + "integrity": "sha512-CW/pPvSOFIRsosbwxrYaE9ERmpTo5fbTqL7wCvuCFlqW1Bmb1K5fXsY7yiH95rmlr4rVuA7UXHbM/cIXQ6AXwg==", + "sha256": "14311c46a7aea04a7ffc373653b11d019bb41df8a693a2459eb3115a262aef53", + "files": { + "package/package.json": "49918bb59328a44f4533dcfb5ecde80893db85072bd52b52721901b4ce239d81", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "package/dist/hls.d.ts": "9571b0113a7103feb8e36e9fbc04c3baba07b5ab3e5c51166b50552ebbbf17f2", + "package/src/hls.ts": "e86f0bb70e845814aa2e3a4ff6a9f1f658d1c98fbdc738b02f623c9ddcf6c72c", + "package/src/controller/audio-track-controller.ts": "f7ec55e90cc2194e64432db1336d75d0309f6cddf8b55d7eac45b0ebba0517b1" + } + }, + "sdkSHA256": "afcde07437ec84b072fe8782e772ceb5046eac751b2719f73ae0d83d763bc3f5", + "pluginSHA256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6", + "sourceSHA256": "0e681a2fa8de82a62fa580f942be8e4da0ea11b3a08a3e3d332e5fde74771960", + "supported": false, + "scope": "actual unsupported setup; native fallback is only unit-tested" + }, + "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": 16, + "unsupportedWebKitSetup": 8, + "navigationAndRunCode": 6, + "workerOutputObserved": false, + "nativeHlsPlaybackValidated": false + }, + "resultsDirectories": [ + "refactor/.cache/hls-docs-browser-first-results", + "refactor/.cache/hls-docs-browser-final-results" + ], + "testSourceChangeAfterFinal": "Only the equivalent string quote style in document-site.spec.js changed after successful execution; no assertion semantics changed" + }, + "connectedBrowser": { + "provider": "Codex in-app browser", + "version": null, + "tabId": "10", + "url": "http://localhost:8082/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js%0A./uncompiled/artplayer-plugin-hls-control/index.js&example=hls.control", + "observed": [ + "editor contains updated useHls/destroyHls setup", + "video metadata duration 10:48", + "quality choices 720P/432P/252P/160P/Auto", + "audio choices English/Spanish/Commentary", + "loadedmetadata/loadeddata/canplay events" + ], + "limitation": "One getState failed; selecting the same tab recovered. No playback click or source/destroy interaction; version was not returned. This is readiness/menu observation only." + }, + "inventory": { + "packages": 22, + "markdown": 30, + "examples": 30, + "html": 39, + "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 e1e9c1515..df1747088 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": 28, + "markdown": 30, "examples": 30, - "html": 37, + "html": 39, "declarationMembers": 963, "assets": 204 }, @@ -2013,6 +2013,49 @@ "translation": "packages/artplayer-vitepress/docs/plugin/danmuku.md", "translationOwner": null }, + { + "file": "packages/artplayer-vitepress/docs/en/plugin/hls-control.md", + "sha256Lf": "c0271b386e44fcc47c9aad017b3b02f75bb3baec830bca9634edcb2060cd91d3", + "language": "en", + "route": "/document/en/plugin/hls-control.html", + "headings": [ + { + "text": "HLS Control", + "line": 1 + }, + { + "text": "Installation", + "line": 9 + }, + { + "text": "Complete example", + "line": 23 + }, + { + "text": "Configuration", + "line": 103 + }, + { + "text": "Refresh after external changes", + "line": 121 + }, + { + "text": "SDK ownership and source switching", + "line": 133 + }, + { + "text": "TypeScript", + "line": 139 + }, + { + "text": "Validation scope", + "line": 163 + } + ], + "runCodeMarkers": 1, + "translation": "packages/artplayer-vitepress/docs/plugin/hls-control.md", + "translationOwner": null + }, { "file": "packages/artplayer-vitepress/docs/en/start/i18n.md", "sha256Lf": "1551bf939aab1ee942d8480df891640109d18aa9adc016adf1d075bee5ef1de9", @@ -2429,6 +2472,49 @@ "translation": "packages/artplayer-vitepress/docs/en/plugin/danmuku.md", "translationOwner": null }, + { + "file": "packages/artplayer-vitepress/docs/plugin/hls-control.md", + "sha256Lf": "262df6632861f93e8b313db229416a3a70399c94380dcc4ecb9c405ea4b17aba", + "language": "zh", + "route": "/document/plugin/hls-control.html", + "headings": [ + { + "text": "HLS 控制", + "line": 1 + }, + { + "text": "安装", + "line": 9 + }, + { + "text": "完整示例", + "line": 23 + }, + { + "text": "配置", + "line": 103 + }, + { + "text": "外部修改后的刷新", + "line": 121 + }, + { + "text": "SDK 所有权与换源", + "line": 133 + }, + { + "text": "TypeScript", + "line": 139 + }, + { + "text": "验证范围", + "line": 163 + } + ], + "runCodeMarkers": 1, + "translation": "packages/artplayer-vitepress/docs/en/plugin/hls-control.md", + "translationOwner": null + }, { "file": "packages/artplayer-vitepress/docs/start/i18n.md", "sha256Lf": "0a77b16620ffec30c27938b6b561139f7a9137f325c1673bd77c1fe964c6e651", @@ -16866,10 +16952,12 @@ "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/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/hls-control.md", "packages/artplayer-vitepress/docs/start/i18n.md", "packages/artplayer-vitepress/docs/start/option.md" ], @@ -17019,8 +17107,11 @@ "examples": [ "hls.control" ], - "sidebarMentionsPackage": true, - "dedicatedPages": [], + "sidebarMentionsPackage": false, + "dedicatedPages": [ + "packages/artplayer-vitepress/docs/en/plugin/hls-control.md", + "packages/artplayer-vitepress/docs/plugin/hls-control.md" + ], "contentReviewOwner": "SITE-04", "demoExecutionOwner": "EX-03" }, @@ -17149,10 +17240,12 @@ "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/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/hls-control.md", "packages/artplayer-vitepress/docs/start/i18n.md", "packages/artplayer-vitepress/docs/start/option.md" ], @@ -17387,7 +17480,7 @@ { "name": "hls.control", "source": "docs/assets/example/hls.control.js", - "sha256Lf": "b02fd290d79999790501447fad95736642344b9b30af3ccdbe353f80c7d53a6e", + "sha256Lf": "a80c48da4ddecccfddd7962ed2b3f9315b47204768bd3f709de14501cff3851e", "menuLinks": [ "/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js%0A./uncompiled/artplayer-plugin-hls-control/index.js&example=hls.control" ], @@ -17599,10 +17692,10 @@ { "source": "docs/document/404.html", "route": "/document/404.html", - "sha256Lf": "3717d17f8ed125c4781ef3663b7b7d2bb72f579d6043a406ea5459010caa08e3", + "sha256Lf": "739031d99373696e852520d1f747f4570398ac462c1576c0a7d233b590a517cb", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17612,10 +17705,10 @@ { "source": "docs/document/advanced/built-in.html", "route": "/document/advanced/built-in.html", - "sha256Lf": "70c42ca5bb8c524b56c7ebbb8eaf72f5be14fc41ebc5bf4ec790d0bfa7263097", + "sha256Lf": "2cf8b8bc26ee8bfb34dadf740a3c8ae4b0ed5ee50314b3f6bbe5b3dfd709c538", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17625,10 +17718,10 @@ { "source": "docs/document/advanced/class.html", "route": "/document/advanced/class.html", - "sha256Lf": "9d5cd62993d6baf1300181830b2a780e2167bdcee0eeee683736c3d5b43baf24", + "sha256Lf": "7de71fe06d19ca56fb229363f621ddb76dac4ea86582851b6597be4ab510e29b", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17638,10 +17731,10 @@ { "source": "docs/document/advanced/event.html", "route": "/document/advanced/event.html", - "sha256Lf": "a4624a2b6a7b68186ab03a4780fa795b97682ca5415c4022e56e8a36db1b49b2", + "sha256Lf": "6d1912bd53e8640e2e003156d367b15680cf9f1f8aa9c784e83f4bbc0710fb84", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17651,10 +17744,10 @@ { "source": "docs/document/advanced/global.html", "route": "/document/advanced/global.html", - "sha256Lf": "1003ceb4ee253f71e0da816a4bded4fef25b4cab690c77273b2dd5b4ec459943", + "sha256Lf": "d0b3e638cc56125aa28ed5c0d788dbb327162f30cf198af3a11efb58c30d640b", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17664,10 +17757,10 @@ { "source": "docs/document/advanced/plugin.html", "route": "/document/advanced/plugin.html", - "sha256Lf": "68792c9def7906427a8e47f682d1f2f55ee96e420531428622a4339a7ca18e0f", + "sha256Lf": "4d539395bcf9f92cbbf679236f73ad46e0951ad67e169cccd176c8db0e172327", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17677,10 +17770,10 @@ { "source": "docs/document/advanced/property.html", "route": "/document/advanced/property.html", - "sha256Lf": "0b15099f0a6c754cb05e2b5173b491960cb9e8b0b61e5c2de47589dc27d871b3", + "sha256Lf": "585490a60cb2bb854a0b6040d10d4bb1800dd5faf5c5c95dfcf780f024a09ced", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17690,10 +17783,10 @@ { "source": "docs/document/component/contextmenu.html", "route": "/document/component/contextmenu.html", - "sha256Lf": "e6fe13021fe8e092e0c6588322c2f647bc16fff9b3f890b01398104f519cc8ce", + "sha256Lf": "1ea119dc7d15b9be4ada73e393a7356406f84112a3da4ac271b8657371c55313", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17703,10 +17796,10 @@ { "source": "docs/document/component/controls.html", "route": "/document/component/controls.html", - "sha256Lf": "00134da8fcd9f14c21d0f3bc6dd1fe4a0e44f146c57d63a6db4255d0365007c6", + "sha256Lf": "d5a698c705f2cbddcb67f3d05016d19f7c34b4fd5177c1f79e3f3a839f73030f", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17716,10 +17809,10 @@ { "source": "docs/document/component/layers.html", "route": "/document/component/layers.html", - "sha256Lf": "9b5c25d8d9faa9a3a35815a1606ffea4a1ab127f12214ba2b5f3caac9eac2428", + "sha256Lf": "e9f5129cb516ec4f2d3ea07b84fac4ac689d979d189815d01eba194c4a257982", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17729,10 +17822,10 @@ { "source": "docs/document/component/setting.html", "route": "/document/component/setting.html", - "sha256Lf": "eaa3c6e752df873f6839888c5c6a163a91142697939954af61ee6526f9aab50f", + "sha256Lf": "10284ef177093ed786e0b0600e6ee5184724a46444b2e614b6447f26fb68b711", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17742,10 +17835,10 @@ { "source": "docs/document/en/advanced/built-in.html", "route": "/document/en/advanced/built-in.html", - "sha256Lf": "5fc6b3db2706c3214f2e540cc5ebc46f87abbbbf9cd7770b5fe7f8ec0cdfd67b", + "sha256Lf": "f47472d88db0a05eb70a91c14c270e4978afcf55a3777db6d3876dbeb7ef391a", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17755,10 +17848,10 @@ { "source": "docs/document/en/advanced/class.html", "route": "/document/en/advanced/class.html", - "sha256Lf": "ae3117b42d654f5c14d62923c7fe7198eae616895dd19885391265d5f11349fb", + "sha256Lf": "eec757fc67c53ebefb0c50b40e21097d7c893a3b76b4aa0170fe7a8906afa676", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17768,10 +17861,10 @@ { "source": "docs/document/en/advanced/event.html", "route": "/document/en/advanced/event.html", - "sha256Lf": "4514bf9c007728a1b9b0ec70a7c2a558754fcfafdb879901b1410fd5bc2d5b5b", + "sha256Lf": "01c77788e99f4ec477db05a976200bd1ee4d769cb215d6686011a6e86eca7ac3", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17781,10 +17874,10 @@ { "source": "docs/document/en/advanced/global.html", "route": "/document/en/advanced/global.html", - "sha256Lf": "edeb817d22b3726d8acfb3c23dd08b9aeeb64db0d8433a691f0087e05cf7b885", + "sha256Lf": "7e09ba52c4ca4dbf3261844b77f488c768d2e075b4999e4e9599cbef87ada913", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17794,10 +17887,10 @@ { "source": "docs/document/en/advanced/plugin.html", "route": "/document/en/advanced/plugin.html", - "sha256Lf": "056784cf908fd500cf3404178916a9f104ccfa398ca2252513a6b630d813fdd0", + "sha256Lf": "a40604fdb0bbed13360b9f4c1a69cc67c875d66adc1875576e2828884e71bd64", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17807,10 +17900,10 @@ { "source": "docs/document/en/advanced/property.html", "route": "/document/en/advanced/property.html", - "sha256Lf": "5fb1b32907c402c28d41d137e94867bc78e21fc386004be0c91b76b4ed7a78d0", + "sha256Lf": "47c24a65c95436fa44dd0c35879cccb48527b7d4a7e6abfd062e3b4d1923fb36", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17820,10 +17913,10 @@ { "source": "docs/document/en/component/contextmenu.html", "route": "/document/en/component/contextmenu.html", - "sha256Lf": "5d627e52eaa6eb5e23a4e457413075da44891d86ceeca5bfc7abf82323cc565f", + "sha256Lf": "9ab3fe20e8f246ee9e481c73c88479cdf18551451a75b644add3734ff18b431d", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17833,10 +17926,10 @@ { "source": "docs/document/en/component/controls.html", "route": "/document/en/component/controls.html", - "sha256Lf": "51d1d91c55ab2037dc5369f01671268147bc378f234f28d37431dd3ea10619c4", + "sha256Lf": "5ca63fbc78fa0beb96ca5f46e0f2e8ccef8622d8ab4cd2b24b72df619fd5a165", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17846,10 +17939,10 @@ { "source": "docs/document/en/component/layers.html", "route": "/document/en/component/layers.html", - "sha256Lf": "db32aa21944b2fede614cb334e10e851be477db41e15d2f278984aaf78d811bb", + "sha256Lf": "e5a27278d4264ec855d9785bb455a2be9eac3bf5b9add73fd36da3dea60508ec", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17859,10 +17952,10 @@ { "source": "docs/document/en/component/setting.html", "route": "/document/en/component/setting.html", - "sha256Lf": "f93d37f4e55b63b9104db19d23036fd85834ed4912f096d37424c29cf46307ad", + "sha256Lf": "fb64ad2c748396701ef1e30c5b6051129ce6d96c7e1715f43bf97dd95a5c93cd", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17872,10 +17965,10 @@ { "source": "docs/document/en/index.html", "route": "/document/en/", - "sha256Lf": "87c123295fda463867a49c51100efe6f7cceba3c782f5b382ac74ab84d6e1f30", + "sha256Lf": "f49b25ac62fd3867e955d3d42f45e366233d470b7f34111a4550a5c54ace200c", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17885,10 +17978,23 @@ { "source": "docs/document/en/plugin/danmuku.html", "route": "/document/en/plugin/danmuku.html", - "sha256Lf": "86621ce3fb3405c95218723fd6cbbc2cf5a6d891fb3ddb6b84c59b6b3c89e87b", + "sha256Lf": "7fecb59004df7b7d1589998f421258e62777875160e559777627b85c7dfa2a14", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.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/hls-control.html", + "route": "/document/en/plugin/hls-control.html", + "sha256Lf": "a6ac6504b7a348ad20524c56521e5e563de295b87995e14226f4638972f040f0", + "kind": "generated-docs", + "scriptSources": [ + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17898,10 +18004,10 @@ { "source": "docs/document/en/start/i18n.html", "route": "/document/en/start/i18n.html", - "sha256Lf": "992222ce0409b150179d6a0550af3c9246d788b8f12f77f2bdb2037492657fcc", + "sha256Lf": "95694df09bca853c0eeb8883c4b2db02c042ee29971503dad1fcd0e4a22595fe", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17911,10 +18017,10 @@ { "source": "docs/document/en/start/option.html", "route": "/document/en/start/option.html", - "sha256Lf": "0ffd030e774f314402529cf4c091b13d73d0530e0a8fb9772285cb39622ef9ec", + "sha256Lf": "23718b0df3dd56492e62635bacd55e504082d02585ebed88ad165b82fecd2ea8", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17924,10 +18030,10 @@ { "source": "docs/document/index.html", "route": "/document/", - "sha256Lf": "d538b202da9fa5543c5e54e5fb76907e133a0d33edf273f3eb360cb0a2623160", + "sha256Lf": "6fdc034c61750bf4da6de85d405a176fcea9046c81143bd4333593a080863c1e", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17937,10 +18043,23 @@ { "source": "docs/document/plugin/danmuku.html", "route": "/document/plugin/danmuku.html", - "sha256Lf": "bbcdebc4df8b3feb86b46d565f731a72c02bf367ec00c8e893b9745693bf5db1", + "sha256Lf": "c1bf198386743ba8a659dd56f520059a960d53791b2c5898634822d9a3330fee", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.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/hls-control.html", + "route": "/document/plugin/hls-control.html", + "sha256Lf": "f4715b9fb6c4e7b7b5447e56dd26c546bc48b1446c1e2d3fd155dc03f97b4686", + "kind": "generated-docs", + "scriptSources": [ + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17950,10 +18069,10 @@ { "source": "docs/document/start/i18n.html", "route": "/document/start/i18n.html", - "sha256Lf": "f40445700bc315b34b0d51a876d906954a302691259f66efcf3aa237f3791297", + "sha256Lf": "6e6371436fbb1b48936e3a789272f55617a92aa6506fd6f0d4b23cb97deea876", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -17963,10 +18082,10 @@ { "source": "docs/document/start/option.html", "route": "/document/start/option.html", - "sha256Lf": "9b8d61e7546ee088785c29dbf85b2f37f62e90d7b97d58ac9c934fccba46dd0f", + "sha256Lf": "5228248a85b0c6e85a4ce617c847c5b61e855181b1bce1dc93662f0c5599f997", "kind": "generated-docs", "scriptSources": [ - "/document/assets/app.CUpGwB5x.js", + "/document/assets/app.C4kTwhag.js", "/document/main.js", "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662" ], @@ -18097,7 +18216,9 @@ ], "examplesRemoved": [], "htmlAdded": [ - "docs/document/en/plugin/danmuku.html" + "docs/document/en/plugin/danmuku.html", + "docs/document/en/plugin/hls-control.html", + "docs/document/plugin/hls-control.html" ], "htmlRemoved": [] }, @@ -18264,7 +18385,7 @@ }, { "file": "packages/artplayer-vitepress/docs/public/main.js", - "sha256Lf": "44b388d74b23e241b534498f53b615dbf2e91be077336ed31971aa09e65a8fd4" + "sha256Lf": "387e6b4d0dd4251b18fd1d45b45656e63aeba25e2a67cdb26da5f185e7359fb1" }, { "file": "packages/artplayer-vitepress/docs/vite.config.ts", @@ -18272,7 +18393,7 @@ }, { "file": "packages/artplayer-vitepress/docs/.vitepress/config.js", - "sha256Lf": "2363e83274e7f1cb0af335fb10a2933a65fd9eadd30a15facc844f83ef9a46a5" + "sha256Lf": "2c31669093e62bac0d59d874ea0181455e9117824712807ff64c04ce7d5eb693" }, { "file": "scripts/build-site-assets.mjs", diff --git a/refactor/changes/2026-09-15-SITE-HLS-01-guides.md b/refactor/changes/2026-09-15-SITE-HLS-01-guides.md new file mode 100644 index 000000000..97cdb7586 --- /dev/null +++ b/refactor/changes/2026-09-15-SITE-HLS-01-guides.md @@ -0,0 +1,93 @@ +# SITE-HLS-01:HLS 双语指南与示例生命周期 + +新增独立 SITE-HLS-01,依赖已完成 SITE-03、PKG-HLS-04;SITE-04 保留全部旧依赖并 +增加本任务。这里完成 HLS 使用文档和示例修复,不提前完成 SDK/设备/分发验收。 + +## 已复现的问题与改动 + +此前只有弹幕插件有独立双语页面,HLS 侧栏直接跳转编辑器,没有配置、类型、SDK +所有权和原生播放的完整指南。本轮新增两页并把两个侧栏指向本地指南;原示例 URL +仍在指南保留。公开 factory、配置名、同步 update、菜单名与分发入口没有改动。 + +直接执行原 `docs/assets/example/hls.control.js` 的受控回归得到 2 失败/1 通过: + +1. 连续加载三个源后有三个 destroy 监听器;已被替换并销毁的实例会在最终销毁时 + 再次被调用。改为示例局部 SDK 变量和一个最终清理监听器,每次替换先释放旧实例。 +2. Hls.isSupported() 为 false、video 支持原生 HLS 时仍注册控制插件,但没有 + art.hls;插件后续 ready/update 的实例检查不适用。示例按固定 useHls 能力结果 + 安装插件,原生分支保留 video.src,完全不支持时保留原提示文字。 + +原有 .artplayer-app 容器、外部流地址、SDK 默认配置及全局命名保持不变。音轨标签 +在 name 缺失时补充 lang/Audio 字符串回退;示例不引入共享全局 SDK 或新依赖。 +这里只修复应用示例,不改变插件对调用方 SDK 所有权或缺少 art.hls 时的错误语义。 + +## 文档与维护 + +- 中英文逐项说明 quality/audio 的 control、setting、title、auto、getName, + 省略显示选项意味着隐藏、设置面板还需播放器配置 setting:true。 +- 原对象 formatter、可选索引和普通回调 this,重复标签合并、空列表清理、Auto + 对应 currentLevel=-1;音轨没有虚拟 Auto 轨道。 +- 解释同步 update 返回 undefined、SDK 自动刷新与没有事件能力时的手动刷新, + 以及菜单选择完成不等于解码完成。 +- 完整示例与原 demo 逐字一致,浏览器测试强制核对两页源代码;两页各有一个 + Run Code,均传递固定 SDK URL 和原插件路径。用容器/媒体替换说明指导实际集成。 +- 两个 TS 片段使用现有泛型 root 类型,不新增 /runtime 或要求升级调用方接口。 + 明确本分支修复未发布,保持 Firefox 已知问题与 Safari/native HLS 验证缺口。 +- 包 README/ARCHITECTURE、站点 README 和浏览器测试维护入口同步;新增 Node + 回归加入既有 test:unit,自动进入 CI。没有依赖或 Yarn 锁变化。 + +通过既有 build:llm、build:docs(含 build:site-assets)生成语料、语言路由与站点。 +清单从 28 Markdown/37 HTML 增为 30 Markdown/39 HTML,中英各15页。生成产物 +由构建器写入,没有手改 dist、uncompiled 或 VitePress HTML。package.json 只 +追加一个已有测试脚本的文件参数;没有改包版本或 packageManager。 + +## 实际验证与限制 + +Windows、Node 24.21.0、Yarn Classic 1.22.22;SDK 1.5.17/1.7.2 来自已冻结 npm +归档,插件读取本地 dist 并记录哈希;源媒体从校验过的本地片段提供。源代码不 +替换,测试只路由其外部媒体请求、静音播放,并观察实际 SDK destroy 次数。 + +| 检查 | 结果和含义 | +| --- | --- | +| 原示例 Node 回归 | 2 fail/1 pass,保留原失败日志 | +| 修复后 Node 示例及文档/导航工具 | 20 pass,其中示例3项;不把受控原生分支计成 Safari 播放 | +| 站点构建测试 | 7 pass;真实 VitePress 构建完成 | +| 两份原样 TS 片段 | TS 5.9.3 strict NodeNext、types:[]、skipLibCheck:false,各0诊断 | +| 两页生成内容与链接 | 每页一个 Run Code、18个本地链接,目标均存在 | +| 最终浏览器 | 30 pass、0 skip、0 retry;分项见下文 | +| 只读 lint/生成物检查/计划/风险 | 提交前通过,具体指纹见机器证据 | + +浏览器分项:Chromium 153.0.8010.12 / Firefox 155.0 各8项,覆盖两种语言、两版 +SDK、新旧核心的初次解码与时钟推进、换源后继续解码以及两个实例各销毁一次。 +Hls 默认 enableWorker=true;本测试不采集 worker 输出,不单独证明未发生 SDK +worker fallback。Windows WebKit 26.6 的8项只核对不支持路径不安装插件、未创建SDK、 +原提示和清理,不是 HLS 播放通过。另6项是三引擎的双语侧栏导航、文档加载与 +Run Code 两个库/源代码参数;它们不打开远端编辑器执行播放。 + +首轮16 pass/8 fail,失败均为 WebKit 测试误把 notice.show 的布尔 getter 当作 +文字;随后改查实际 .art-notice 文本,重新执行30项全部通过。未改产品 notice +语义、未放宽等待或播放断言。首轮/最终报告与 trace 目录分别保留。新增 lint +首次发现 import/格式问题,修正后通过;最终导航测试仅由 lint 改正字符串引号, +断言内容与通过浏览器时相同。 + +最终计划/风险校验、风险回归2项、站点清单和工具链严格检查通过。暂存源码 +diff --check 通过;完整检查报告两个新HTML各两行由VitePress模板产生的缩进空白。 +保留构建器原始输出,不手改生成HTML。包README更新会改变下一次打包内容, +最终候选仍须重新绑定完整验收证据,不能复用旧tarball的发布结论。 + +实际 localhost:8082 页面也通过内置浏览器打开,编辑器出现新 useHls/destroyHls +代码,视频元数据为10:48,画质和英语/西班牙语/解说菜单可见,控制台出现 +loadedmetadata/loadeddata/canplay。一次整体浏览器状态查询失败,重新选择同一 +tab恢复。该观察没有验证播放按钮、换源或最终销毁,浏览器版本未由此次工具返回, +只计页面加载/菜单证据。没有改写或重启原8082服务。 + +## 交接与回退 + +详情见[机器证据](../baselines/hls-docs-validation.json)。保持两个指南完整示例与 +docs/assets/example/hls.control.js 一致;修改后运行 test/hls-example.test.js、 +document-hls.spec.js、document-site.spec.js,并重建语料与站点、刷新站点清单。 + +HLS-EXAMPLE-01 在本任务关闭。PKG-HLS-SDK-01 的原生崩溃和1.7.2停滞保持 open; +原生HLS/完整组合/SDK错误恢复/外部媒体与安装包验收仍归既有任务,不因本页完成关闭。 +回退本提交会恢复原示例、删除双语指南与导航并恢复相应生成内容;播放器包运行时 +及公开类型未变化。本轮不推送、部署或发布。 diff --git a/refactor/plan.md b/refactor/plan.md index 6586b3ba2..ecad8c731 100644 --- a/refactor/plan.md +++ b/refactor/plan.md @@ -2,9 +2,9 @@ > 由 tasks.json 生成。请修改数据后运行 `node refactor/scripts/plan.mjs --write`,不要手改本表。 -基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 271 项,范围 22 个包及工作区/示例。 +基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 272 项,范围 22 个包及工作区/示例。 -状态:todo 43 / doing 21 / blocked 0 / done 207 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。 +状态:todo 43 / doing 21 / blocked 0 / done 208 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。 前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。 @@ -26,7 +26,7 @@ | 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-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, PKG-HLS-PACK-01 | +| 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 | | artplayer-plugin-multiple-subtitles | 1.2.0 | PKG-MULTI-SUB-01, PKG-MULTI-SUB-02, PKG-MULTI-SUB-03, PKG-MULTI-SUB-04, PKG-MULTI-SUB-07, PKG-MULTI-SUB-08, PKG-MULTI-SUB-05, PKG-MULTI-SUB-06, PKG-MULTI-SUB-09, PKG-MULTI-SUB-10, PKG-MULTI-SUB-11 | | artplayer-plugin-vast | 1.2.0 | PKG-VAST-01, PKG-VAST-02, PKG-VAST-03, PKG-VAST-04, PKG-VAST-05, PKG-VAST-06, PKG-VAST-07, ENG-LINT-02 | @@ -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-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-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 | 已随实现更新的中文/英文 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 | 已随实现更新的中文/英文 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 | @@ -418,6 +418,12 @@ | SITE-VCONSOLE-01 | artplayer-vitepress, workspace
修复 vConsole 日志帧与延迟面板销毁竞态 | SITE-01 | 冻结上游 bundle 的可复现 TS 生命周期补丁、旧红新绿回归、来源及生成检查;销毁后虚拟列表布局续段停止 | 最后日志插件移除后取消 RAF 并隔离旧队列;延迟面板不得写入已销毁或替换插件;三引擎移动页与 UMD 入口通过,维护声明与原有许可缺口分别记录;原生 ResizeObserver 布局与挂起 timer 旧红新绿 | M | done | | SITE-CONSOLE-01 | artplayer-vitepress, workspace
迁移控制台自有 TS 源码并修复日志生命周期 | SITE-03 | 从冻结 console.js 恢复自有入口/视图的 TS 模块、受控第三方边界与可验证构建;修复滚动回调、多容器 hook 所有权和原生 Error 消息丢失 | 保留 consoleLog 返回组件、React/ReactDOM/Parcel 全局及 DOM/CSS/日志对象语义;旧版复现与候选正确行为分开验证;多容器、卸载/重挂、外部 hook、错误/滚动及真实编辑器组合通过;架构与生成文档同批更新,不以冻结 vendor 代替 SITE-07 许可闭环 | H | done | +## 6 文档和示例 + +| ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 | +| --- | --- | --- | --- | --- | --- | --- | +| SITE-HLS-01 | artplayer-plugin-hls-control, artplayer-vitepress
补齐HLS双语指南并修复示例SDK生命周期 | SITE-03, PKG-HLS-04 | 双语HLS配置/类型/刷新/所有权指南,原示例换源清理和原生回退修复,生成站点与证据 | 同源示例回归复现旧问题并通过,真实SDK播放/换源/销毁与文档导航验证,保留HLS原生异常和设备门槛 | M | done | + ## 7 工具链与性能 | ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 | @@ -661,6 +667,7 @@ - SITE-BUILD-01: [记录](changes/2026-09-14-SITE-BUILD-01-staged-builds.md) [记录](baselines/site-build-validation.json) - 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-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 cca3e5ade..90bc1eb4f 100644 --- a/refactor/progress.md +++ b/refactor/progress.md @@ -1,5 +1,22 @@ # 进度与证据 +## SITE-HLS-01 双语指南与示例修复 + +原HLS示例已复现换源累积destroy监听器及原生回退误装SDK插件,回归2失败/1通过。 +现在每个实例销毁一次、每个播放器只有一个清理监听器,原生分支不安装HLS控制插件。 +新增中英文指南与侧栏,配置、同步刷新、SDK所有权、类型和未发布边界明确; +两个完整示例与原demo逐字一致。站点增为30 Markdown/39 HTML,中英各15页。 + +最终浏览器30通过:16真实SDK播放/换源清理、8 WebKit不支持路径、6双语导航。 +首轮8个WebKit失败来自测试误读notice.show getter,修正后重跑;保留原报告。 +Node/文档工具20通过、站点构建测试7通过、两个原样TS片段strict NodeNext零诊断, +lint与生成检查通过。内置浏览器8082观察到新代码、视频元数据和画质/音轨菜单, +该观察只算页面加载。详情见[记录](changes/2026-09-15-SITE-HLS-01-guides.md)和[证据](baselines/hls-docs-validation.json)。 + +SITE-HLS-01完成,HLS-EXAMPLE-01关闭;SDK原生崩溃/停滞和设备任务保持未完成。 +208 done、21 doing、43 todo,总272。无插件生产源码/公开类型/版本/锁文件变更, +新增测试已进入既有CI测试脚本;没有推送、部署或发布。 + ## PKG-HLS-SDK-01 原生异常取证检查点 直接 Hls 1.5.17/worker/HTTP 场景六次中两次在 destroy 前页面崩溃; diff --git a/refactor/risk-table.md b/refactor/risk-table.md index a2032e66c..dce411ac1 100644 --- a/refactor/risk-table.md +++ b/refactor/risk-table.md @@ -283,3 +283,4 @@ | ASR-MEDIA-01 | resolved / 已复现 | ASR accepts obsolete recognition after native media error without pause | PKG-ASR-10, PKG-ASR-05 | | 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 | diff --git a/refactor/risks.json b/refactor/risks.json index a68368202..1a8ea54ee 100644 --- a/refactor/risks.json +++ b/refactor/risks.json @@ -6660,6 +6660,31 @@ "refactor/baselines/dash-cleanup-errors-validation.json" ], "resolutionRationale": "Corrected public beforeUnmount input reproduces swallowed values against the prepatch artifact. Separate threw and Object.is assertions cover all seven values. Rebuilt and independently installed artifacts pass lifecycle/DOM/SDK regressions; public declarations are unchanged. This resolves the cleanup defect only, not full package device/release acceptance." + }, + { + "id": "HLS-EXAMPLE-01", + "title": "HLS示例换源累积销毁监听器且原生回退仍安装SDK控制插件", + "confirmation": "reproduced", + "status": "resolved", + "owners": [ + "SITE-HLS-01", + "EX-03" + ], + "evidence": [ + "docs/assets/example/hls.control.js", + "test/hls-example.test.js", + "test/browser/document-hls.spec.js", + "refactor/changes/2026-09-15-SITE-HLS-01-guides.md", + "refactor/baselines/hls-docs-validation.json" + ], + "compatibleResolution": "仅修正示例:固定能力分支决定是否注册插件,局部SDK变量负责替换释放,一个播放器销毁监听器释放当前SDK;旧插件API/错误语义和SDK默认配置不变。", + "closureCriteria": "原示例可复现重复清理与错误插件注册;修复后受控回归和真实SDK新旧核心播放/换源/销毁通过;原生播放设备范围单独保留。", + "workspaceState": "Old demo 2 fail/1 pass; corrected regression 3 pass. Real SDK/browser replacement checks 16 pass, Windows WebKit unsupported setup 8 pass, docs navigation 6 pass. Native HLS branch uses a controlled unit host, not a Safari device.", + "resolutionEvidence": [ + "refactor/changes/2026-09-15-SITE-HLS-01-guides.md", + "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." } ] } diff --git a/refactor/tasks.json b/refactor/tasks.json index 5834a7768..6258add46 100644 --- a/refactor/tasks.json +++ b/refactor/tasks.json @@ -4437,6 +4437,27 @@ "baselines/danmuku-docs-validation.json" ] }, + { + "id": "SITE-HLS-01", + "phase": "6 文档和示例", + "title": "补齐HLS双语指南并修复示例SDK生命周期", + "scope": [ + "artplayer-plugin-hls-control", + "artplayer-vitepress" + ], + "dependsOn": [ + "SITE-03", + "PKG-HLS-04" + ], + "status": "done", + "risk": "M", + "deliverable": "双语HLS配置/类型/刷新/所有权指南,原示例换源清理和原生回退修复,生成站点与证据", + "acceptance": "同源示例回归复现旧问题并通过,真实SDK播放/换源/销毁与文档导航验证,保留HLS原生异常和设备门槛", + "evidence": [ + "changes/2026-09-15-SITE-HLS-01-guides.md", + "baselines/hls-docs-validation.json" + ] + }, { "id": "SITE-04", "phase": "6 文档与消费者", @@ -4467,7 +4488,8 @@ "PKG-TOOL-THUMB-04", "PKG-DANMUKU-06", "PKG-MB-08", - "SITE-DANMUKU-01" + "SITE-DANMUKU-01", + "SITE-HLS-01" ], "status": "todo", "risk": "M", diff --git a/test/browser/README.md b/test/browser/README.md index 449309896..203b8b485 100644 --- a/test/browser/README.md +++ b/test/browser/README.md @@ -478,3 +478,14 @@ playback passes; native attachment can affect timing and permission failures lea All dumps stay in ignored local cache. `firefox-minidump.mjs` reads exception/module/thread metadata but does not resolve a native stack. See [the native evidence and commands](../../refactor/changes/2026-09-15-PKG-HLS-SDK-01-native-exception.md). + +## HLS documentation examples + +`document-hls.spec.js` extracts the single Run Code from each bilingual HLS guide +and requires exact parity with `docs/assets/example/hls.control.js`. It loads frozen +Hls.js 1.5.17/1.7.2 and the actual plugin distribution with published/candidate core. +The external example URL is routed to hash-checked local HLS media; playback, source +replacement and one destroy call per SDK are asserted. Windows WebKit exercises only +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. diff --git a/test/browser/document-hls.spec.js b/test/browser/document-hls.spec.js new file mode 100644 index 000000000..6f8bca690 --- /dev/null +++ b/test/browser/document-hls.spec.js @@ -0,0 +1,91 @@ +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/hls-sdk-matrix.json')) +const plugin = fs.readFileSync('packages/artplayer-plugin-hls-control/dist/artplayer-plugin-hls-control.js') +const exampleSource = fs.readFileSync('docs/assets/example/hls.control.js', 'utf8').trim() +const media = new Map() +const sdks = new Map() + +test.beforeAll(async () => { + for (const release of matrix.releases) { + const bytes = readMember(await ensureArchive(release), 'package/dist/hls.min.js') + assert.equal(hash(bytes), release.files['package/dist/hls.min.js']) + sdks.set(release.version, bytes) + } + const manifest = JSON.parse(fs.readFileSync('test/browser/media/hls/manifest.json')) + for (const [name, expected] of Object.entries(manifest.files)) { + const bytes = fs.readFileSync(`test/browser/media/hls/${name}`) + assert.equal(hash(bytes), expected.sha256) + media.set(name, bytes) + } +}) + +for (const document of ['plugin/hls-control.md', 'en/plugin/hls-control.md']) { + const examples = extractExamples(fs.readFileSync(`packages/artplayer-vitepress/docs/${document}`, 'utf8'), document) + assert.equal(examples.length, 1) + assert.equal(examples[0].code, exampleSource, 'Documented setup must remain identical to the actual demo') + for (const release of matrix.releases) { + for (const core of ['published', 'candidate']) { + test(`documented HLS setup and source lifecycle: ${document}, SDK ${release.version}, ${core} core`, async ({ page }, testInfo) => { + await page.route('https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/**', async (route) => { + const filename = new URL(route.request().url()).pathname.split('/').at(-1) + const name = filename === 'index.m3u8' ? 'master.m3u8' : filename + const bytes = media.get(name) + await route.fulfill({ status: bytes ? 200 : 404, body: bytes || 'Missing HLS fixture', contentType: name.endsWith('.m3u8') ? 'application/vnd.apple.mpegurl' : 'video/mp2t', headers: { 'Access-Control-Allow-Origin': '*' } }) + }) + await page.goto(`/test/player.html?core=${core}`) + await page.addScriptTag({ content: sdks.get(release.version).toString() }) + await page.addScriptTag({ content: plugin.toString() }) + await page.evaluate(() => { + document.querySelector('.player').classList.add('artplayer-app') + window.exampleEngines = [] + const destroy = window.Hls.prototype.destroy + const attach = window.Hls.prototype.attachMedia + window.Hls.prototype.attachMedia = function (...args) { + window.exampleEngines.push({ engine: this, destroyed: 0 }) + return attach.apply(this, args) + } + window.Hls.prototype.destroy = function (...args) { + window.exampleEngines.find(item => item.engine === this).destroyed++ + return destroy.apply(this, args) + } + }) + await page.addScriptTag({ content: `${examples[0].code}\nwindow.art = art;` }) + const supported = await page.evaluate(() => window.Hls.isSupported()) + await testInfo.attach('documented-hls-inputs', { contentType: 'application/json', body: JSON.stringify({ document, core, sdk: release, sdkSHA256: hash(sdks.get(release.version)), pluginSHA256: hash(plugin), sourceSHA256: hash(exampleSource), supported, scope: supported ? 'real SDK default worker, local routed stream, playback and replacement cleanup' : 'actual unsupported setup; native fallback is only unit-tested' }) }) + if (!supported) { + expect(await page.evaluate(() => window.exampleEngines.length)).toBe(0) + expect(await page.evaluate(() => Boolean(window.art.plugins.artplayerPluginHlsControl))).toBe(false) + // Windows WebKit has neither the tested MSE path nor native HLS support. + expect(await page.evaluate(() => window.art.video.canPlayType('application/vnd.apple.mpegurl'))).toBe('') + await expect(page.locator('.art-notice')).toContainText('Unsupported playback format: m3u8') + await page.evaluate(() => window.art.destroy()) + return + } + await expect.poll(() => page.evaluate(() => window.art.video.readyState >= 2)).toBe(true) + 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) + expect(await page.evaluate(() => window.art.hls.config.enableWorker)).toBe(true) + await expect(page.locator('.art-control-hls-quality')).toBeVisible() + await expect(page.locator('.art-control-hls-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 cd223663b..d7a6db0f5 100644 --- a/test/browser/document-site.spec.js +++ b/test/browser/document-site.spec.js @@ -61,5 +61,19 @@ for (const language of ['zh', 'en']) { expect(exampleUrl.searchParams.get('code')).toContain('artplayerPluginDanmuku({') expect(failedAssets).toEqual([]) await example.close() + await page.locator(`.VPSidebar a[href="${prefix}/plugin/hls-control.html"]`).click() + await expect(page.locator('h1')).toContainText(language === 'en' ? 'HLS Control' : 'HLS 控制') + const hlsPopup = context.waitForEvent('page') + await page.locator('.run-code, [classname="run-code"]').first().click() + const hlsExample = await hlsPopup + await hlsExample.waitForLoadState('domcontentloaded') + const hlsTarget = new URL(hlsExample.url()) + expect(hlsTarget.searchParams.get('libs').split('\n')).toEqual([ + 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js', + './uncompiled/artplayer-plugin-hls-control/index.js', + ]) + expect(hlsTarget.searchParams.get('code')).toContain('art.on(\'destroy\', destroyHls)') + expect(failedAssets).toEqual([]) + await hlsExample.close() }) } diff --git a/test/hls-example.test.js b/test/hls-example.test.js new file mode 100644 index 000000000..03ddcb86f --- /dev/null +++ b/test/hls-example.test.js @@ -0,0 +1,77 @@ +import assert from 'node:assert/strict' +import fs from 'node:fs' +// eslint-disable-next-line test/no-import-node-test -- Verify the actual demo source against a controlled SDK lifecycle. +import { test } from 'node:test' +import { runInNewContext } from 'node:vm' + +const source = fs.readFileSync(new URL('../docs/assets/example/hls.control.js', import.meta.url), 'utf8') + +function loadExample(supported) { + const engines = [] + const hooks = [] + let pluginCalls = 0 + class Hls { + static isSupported() { return supported } + constructor() { + this.destroyCount = 0 + engines.push(this) + } + + loadSource(url) { this.url = url } + attachMedia(video) { this.media = video } + destroy() { this.destroyCount++ } + } + class Artplayer { + constructor(option) { + this.option = option + this.notice = {} + } + + on(event, callback) { hooks.push({ event, callback }) } + } + const sandbox = { Artplayer, Hls, artplayerPluginHlsControl: () => { + pluginCalls++ + return () => ({}) + } } + runInNewContext(`${source}\nglobalThis.exampleArt = art`, sandbox) + const art = sandbox.exampleArt + const video = { canPlayType: () => 'maybe', src: '' } + return { art, video, engines, hooks, get pluginCalls() { + return pluginCalls + }, load: url => art.option.customType.m3u8(video, url, art) } +} + +test('HLS example destroys every replaced engine once and keeps one final cleanup hook', () => { + const example = loadExample(true) + example.load('one.m3u8') + example.load('two.m3u8') + example.load('three.m3u8') + assert.equal(example.engines.length, 3) + assert.equal(example.art.hls, example.engines[2]) + assert.equal(example.art.hls.media, example.video) + assert.deepEqual(example.engines.map(engine => engine.destroyCount), [1, 1, 0]) + assert.equal(example.hooks.filter(hook => hook.event === 'destroy').length, 1) + for (const hook of example.hooks.filter(hook => hook.event === 'destroy')) + hook.callback() + assert.deepEqual(example.engines.map(engine => engine.destroyCount), [1, 1, 1]) +}) + +test('native HLS fallback does not install controls requiring an Hls.js instance', () => { + const example = loadExample(false) + example.load('native.m3u8') + assert.equal(example.video.src, 'native.m3u8') + assert.equal(example.art.option.plugins.length, 0) + assert.equal(example.pluginCalls, 0) + assert.equal(example.engines.length, 0) + for (const hook of example.hooks.filter(hook => hook.event === 'destroy')) + hook.callback() +}) + +test('unsupported HLS reports the existing notice without creating an SDK', () => { + const example = loadExample(false) + example.video.canPlayType = () => '' + example.load('unsupported.m3u8') + assert.equal(example.art.notice.show, 'Unsupported playback format: m3u8') + assert.equal(example.video.src, '') + assert.equal(example.engines.length, 0) +})