diff --git a/docs/assets/example/control.js b/docs/assets/example/control.js
deleted file mode 100644
index 51c66700f..000000000
--- a/docs/assets/example/control.js
+++ /dev/null
@@ -1,61 +0,0 @@
-var art = new Artplayer({
- container: '.artplayer-app',
- url: '/assets/sample/video.mp4',
- pip: true,
- screenshot: true,
- setting: true,
- loop: true,
- flip: true,
- playbackRate: true,
- aspectRatio: true,
- fullscreen: true,
- fullscreenWeb: true,
- subtitleOffset: true,
- miniProgressBar: true,
- airplay: true,
- theme: '#23ade5',
- thumbnails: {
- url: '/assets/sample/thumbnails.png',
- number: 60,
- column: 10,
- },
- subtitle: {
- url: '/assets/sample/subtitle.srt',
- type: 'srt',
- style: {
- color: '#fe9200',
- fontSize: '20px',
- },
- encoding: 'utf-8',
- },
- highlight: [
- {
- time: 15,
- text: 'One more chance',
- },
- {
- time: 30,
- text: '谁でもいいはずなのに',
- },
- {
- time: 45,
- text: '夏の想い出がまわる',
- },
- {
- time: 60,
- text: 'こんなとこにあるはずもないのに',
- },
- {
- time: 75,
- text: '终わり',
- },
- ],
- icons: {
- loading: '
',
- state: '
',
- indicator: '
',
- },
- plugins: [
- artplayerPluginControl()
- ],
-});
diff --git a/docs/index.html b/docs/index.html
index 806b50263..c0ffdb6a8 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -39,10 +39,6 @@
artplayer-plugin-iframe
-
- artplayer-plugin-control
-
artplayer-plugin-hls-quality
diff --git a/packages/artplayer-plugin-control/.npmignore b/packages/artplayer-plugin-control/.npmignore
deleted file mode 100644
index ec696c3f1..000000000
--- a/packages/artplayer-plugin-control/.npmignore
+++ /dev/null
@@ -1,10 +0,0 @@
-node_modules
-.DS_Store
-yarn.lock
-package-lock.json
-test
-coverage
-.nyc_output
-.parcel-cache
-.cache
-docs
\ No newline at end of file
diff --git a/packages/artplayer-plugin-control/.npmrc b/packages/artplayer-plugin-control/.npmrc
deleted file mode 100644
index 9cf949503..000000000
--- a/packages/artplayer-plugin-control/.npmrc
+++ /dev/null
@@ -1 +0,0 @@
-package-lock=false
\ No newline at end of file
diff --git a/packages/artplayer-plugin-control/README.md b/packages/artplayer-plugin-control/README.md
deleted file mode 100644
index 2ad09dd2f..000000000
--- a/packages/artplayer-plugin-control/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# artplayer-plugin-control
-
-Control plugin for ArtPlayer
-
-## Demo
-
-[https://artplayer.org](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-control/index.js&example=control)
-
-## Usage
-
-[https://artplayer.org/document/en/Plugins/control](https://artplayer.org/document/en/Plugins/control)
-
-## License
-
-MIT © Harvey Zack
diff --git a/packages/artplayer-plugin-control/dist/artplayer-plugin-control.js b/packages/artplayer-plugin-control/dist/artplayer-plugin-control.js
deleted file mode 100644
index 2d7636bd9..000000000
--- a/packages/artplayer-plugin-control/dist/artplayer-plugin-control.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*!
- * artplayer-plugin-control.js v2.0.0
- * Github: https://github.com/zhw2590582/ArtPlayer
- * (c) 2017-2023 Harvey Zack
- * Released under the MIT License.
- */
-!// modules are defined as an array
-// [ module function, map of requires ]
-//
-// map of requires is short require name -> numeric require
-//
-// anything defined in a previous bundle is accessed via the
-// orig method which is the require for previous bundles
-function(e,t,r,o,n){/* eslint-disable no-undef */var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof l[o]&&l[o],i=a.cache||{},u="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!i[t]){if(!e[t]){// if we cannot find the module within our internal map or
-// cache jump to the current global require ie. the last bundle
-// that was added to the page.
-var n="function"==typeof l[o]&&l[o];if(!r&&n)return n(t,!0);// If there are other bundles on this page the require from the
-// previous one is saved to 'previousRequire'. Repeat this as
-// many times as there are bundles until the module is found or
-// we exhaust the require chain.
-if(a)return a(t,!0);// Try the node require function if it exists.
-if(u&&"string"==typeof t)return u(t);var c=Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}s.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},s.cache={};var d=i[t]=new p.Module(t);e[t][0].call(d.exports,s,d,d.exports,this)}return i[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=i,p.parent=a,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return l[o]}}),l[o]=p;for(var c=0;ca);var n=e("bundle-text:./style.less"),l=o.interopDefault(n);function a(){return e=>{!function(e){let{version:t,utils:{errorHandle:r}}=e.constructor,o=t.split(".").map(Number),n=o[0],l=o[1]/100;r(n+l>=5,`Artplayer.js@${t} is not compatible the artplayerPluginControl@${a.version}. Please update it to version Artplayer.js@5.x.x`)}(e);let{template:{$bottom:t,$player:r},constructor:{utils:{append:o,secondToTime:n,addClass:l,removeClass:i,hasClass:u,isMobile:p}}}=e;if(p)return;let c="artplayer-plugin-control";l(r,c);let d=o(t,''),s=o(t,''),f=["video:loadedmetadata","video:timeupdate","video:progress"];for(let t=0;t{d.innerText=n(e.currentTime),s.innerText=n(e.duration)});return{name:"artplayerPluginControl",get enable(){return u(r,c)},set enable(state){state?l(r,c):i(r,c)}}}}if(a.env="production",a.version="2.0.0",a.build="2023-11-23 23:22:00","undefined"!=typeof document&&!document.getElementById("artplayer-plugin-control")){let e=document.createElement("style");e.id="artplayer-plugin-control",e.textContent=l.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginControl=a)},{"bundle-text:./style.less":"klrMD","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],klrMD:[function(e,t,r){t.exports=".artplayer-plugin-control{--art-control-height:46px;--art-control-icon-scale:1.1}.artplayer-plugin-control .apa-control-current,.artplayer-plugin-control .apa-control-duration{display:flex}.artplayer-plugin-control .art-control-time,.artplayer-plugin-control .art-controls-center{display:none}.artplayer-plugin-control .art-settings{bottom:85px}.artplayer-plugin-control .art-bottom{backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3;background-image:none;border-radius:10px;align-items:center;width:400px;height:70px;margin-left:-200px;inset:auto auto 10px 50%;overflow:visible;box-shadow:0 10px 15px -3px #0003,0 4px 6px -4px #0003}.artplayer-plugin-control .art-bottom .art-progress{width:70%}.artplayer-plugin-control .art-bottom .art-controls{width:100%}.artplayer-plugin-control .art-bottom .apa-control-current,.artplayer-plugin-control .art-bottom .apa-control-duration{justify-content:center;width:15%;font-size:12px;line-height:1;display:flex;position:absolute;top:10px}.artplayer-plugin-control .art-bottom .apa-control-current{left:0}.artplayer-plugin-control .art-bottom .apa-control-duration{right:0}.apa-control-current,.apa-control-duration{display:none}"},{}],"9pCYc":[function(e,t,r){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||t.hasOwnProperty(r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["16V0T"],"16V0T","parcelRequire4dc0");
\ No newline at end of file
diff --git a/packages/artplayer-plugin-control/dist/artplayer-plugin-control.legacy.js b/packages/artplayer-plugin-control/dist/artplayer-plugin-control.legacy.js
deleted file mode 100644
index b4a95f019..000000000
--- a/packages/artplayer-plugin-control/dist/artplayer-plugin-control.legacy.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*!
- * artplayer-plugin-control.js v2.0.0
- * Github: https://github.com/zhw2590582/ArtPlayer
- * (c) 2017-2023 Harvey Zack
- * Released under the MIT License.
- */
-!// modules are defined as an array
-// [ module function, map of requires ]
-//
-// map of requires is short require name -> numeric require
-//
-// anything defined in a previous bundle is accessed via the
-// orig method which is the require for previous bundles
-function(e,t,r,o,n){/* eslint-disable no-undef */var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof a[o]&&a[o],i=l.cache||{},u="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!i[t]){if(!e[t]){// if we cannot find the module within our internal map or
-// cache jump to the current global require ie. the last bundle
-// that was added to the page.
-var n="function"==typeof a[o]&&a[o];if(!r&&n)return n(t,!0);// If there are other bundles on this page the require from the
-// previous one is saved to 'previousRequire'. Repeat this as
-// many times as there are bundles until the module is found or
-// we exhaust the require chain.
-if(l)return l(t,!0);// Try the node require function if it exists.
-if(u&&"string"==typeof t)return u(t);var c=Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}s.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},s.cache={};var d=i[t]=new p.Module(t);e[t][0].call(d.exports,s,d,d.exports,this)}return i[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=i,p.parent=l,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return a[o]}}),a[o]=p;for(var c=0;c=5,"Artplayer.js@".concat(r," is not compatible the artplayerPluginControl@").concat(l.version,". Please update it to version Artplayer.js@5.x.x"));var t,r,o,n=e.template,a=n.$bottom,i=n.$player,u=e.constructor.utils,p=u.append,c=u.secondToTime,d=u.addClass,s=u.removeClass,f=u.hasClass;if(!u.isMobile){var y="artplayer-plugin-control";d(i,y);for(var g=p(a,''),m=p(a,''),b=["video:loadedmetadata","video:timeupdate","video:progress"],x=0;x",
- "browserslist": "last 1 Chrome version",
- "homepage": "https://artplayer.org",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
- },
- "bugs": {
- "url": "https://github.com/zhw2590582/ArtPlayer/issues"
- },
- "keywords": [
- "html5",
- "video",
- "player"
- ]
-}
diff --git a/packages/artplayer-plugin-control/src/index.js b/packages/artplayer-plugin-control/src/index.js
deleted file mode 100644
index eac9e660f..000000000
--- a/packages/artplayer-plugin-control/src/index.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import style from 'bundle-text:./style.less';
-
-function checkVersion(art) {
- const {
- version,
- utils: { errorHandle },
- } = art.constructor;
- const arr = version.split('.').map(Number);
- const major = arr[0];
- const minor = arr[1] / 100;
- errorHandle(
- major + minor >= 5,
- `Artplayer.js@${version} is not compatible the artplayerPluginControl@${artplayerPluginControl.version}. Please update it to version Artplayer.js@5.x.x`,
- );
-}
-
-export default function artplayerPluginControl() {
- return (art) => {
- checkVersion(art);
-
- const {
- template: { $bottom, $player },
- constructor: {
- utils: { append, secondToTime, addClass, removeClass, hasClass, isMobile },
- },
- } = art;
-
- if (isMobile) return;
-
- const className = 'artplayer-plugin-control';
- addClass($player, className);
-
- const $current = append($bottom, ``);
- const $duration = append($bottom, ``);
-
- const events = ['video:loadedmetadata', 'video:timeupdate', 'video:progress'];
-
- for (let index = 0; index < events.length; index++) {
- art.on(events[index], () => {
- $current.innerText = secondToTime(art.currentTime);
- $duration.innerText = secondToTime(art.duration);
- });
- }
-
- return {
- name: 'artplayerPluginControl',
- get enable() {
- return hasClass($player, className);
- },
- set enable(state) {
- if (state) {
- addClass($player, className);
- } else {
- removeClass($player, className);
- }
- },
- };
- };
-}
-
-artplayerPluginControl.env = process.env.NODE_ENV;
-artplayerPluginControl.version = process.env.APP_VER;
-artplayerPluginControl.build = process.env.BUILD_DATE;
-
-if (typeof document !== 'undefined') {
- if (!document.getElementById('artplayer-plugin-control')) {
- const $style = document.createElement('style');
- $style.id = 'artplayer-plugin-control';
- $style.textContent = style;
- document.head.appendChild($style);
- }
-}
-
-if (typeof window !== 'undefined') {
- window['artplayerPluginControl'] = artplayerPluginControl;
-}
diff --git a/packages/artplayer-plugin-control/src/style.less b/packages/artplayer-plugin-control/src/style.less
deleted file mode 100644
index 263357bbd..000000000
--- a/packages/artplayer-plugin-control/src/style.less
+++ /dev/null
@@ -1,67 +0,0 @@
-.artplayer-plugin-control {
- --art-control-height: 46px;
- --art-control-icon-scale: 1.1;
-
- .apa-control-current,
- .apa-control-duration {
- display: flex;
- }
-
- .art-control-time,
- .art-controls-center {
- display: none;
- }
-
- .art-settings {
- bottom: 85px;
- }
-
- .art-bottom {
- height: 70px;
- width: 400px;
- margin-left: -200px;
- inset: auto;
- overflow: visible;
- align-items: center;
- border-radius: 10px;
- left: 50%;
- bottom: 10px;
- -webkit-backdrop-filter: saturate(180%) blur(20px);
- backdrop-filter: saturate(180%) blur(20px);
- background-color: rgba(0, 0, 0, 0.7);
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.2), 0 4px 6px -4px rgb(0 0 0 / 0.2);
- background-image: none;
-
- .art-progress {
- width: 70%;
- }
-
- .art-controls {
- width: 100%;
- }
-
- .apa-control-current,
- .apa-control-duration {
- display: flex;
- justify-content: center;
- line-height: 1;
- width: 15%;
- font-size: 12px;
- position: absolute;
- top: 10px;
- }
-
- .apa-control-current {
- left: 0;
- }
-
- .apa-control-duration {
- right: 0;
- }
- }
-}
-
-.apa-control-current,
-.apa-control-duration {
- display: none;
-}
diff --git a/packages/artplayer-plugin-control/types/artplayer-plugin-control.d.ts b/packages/artplayer-plugin-control/types/artplayer-plugin-control.d.ts
deleted file mode 100644
index 46176c215..000000000
--- a/packages/artplayer-plugin-control/types/artplayer-plugin-control.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import type Artplayer from 'artplayer';
-
-export = artplayerPluginControl;
-export as namespace artplayerPluginControl;
-
-type Option = {};
-
-type Control = {
- name: 'artplayerPluginControl';
- enable: Boolean;
-};
-
-declare const artplayerPluginControl: (option?: Option) => (art: Artplayer) => Control;
diff --git a/packages/artplayer-plugin-multiple-subtitles/types/artplayer-plugin-multiple-subtitles.d.ts b/packages/artplayer-plugin-multiple-subtitles/types/artplayer-plugin-multiple-subtitles.d.ts
index a4ba37c7f..79ea2b8b6 100644
--- a/packages/artplayer-plugin-multiple-subtitles/types/artplayer-plugin-multiple-subtitles.d.ts
+++ b/packages/artplayer-plugin-multiple-subtitles/types/artplayer-plugin-multiple-subtitles.d.ts
@@ -12,5 +12,5 @@ declare const artplayerPluginMultipleSubtitles: (option: {
onParser?(...args: object[]): object;
}[];
}) => (art: Artplayer) => {
- name: 'artplayerPluginMultipleSubtitles';
+ name: 'multipleSubtitles';
};
diff --git a/packages/artplayer-vitepress/docs/.vitepress/config.js b/packages/artplayer-vitepress/docs/.vitepress/config.js
index 1fd523944..882072304 100644
--- a/packages/artplayer-vitepress/docs/.vitepress/config.js
+++ b/packages/artplayer-vitepress/docs/.vitepress/config.js
@@ -69,7 +69,6 @@ const config = {
{ text: 'Iframe 控制', link: '/plugin/iframe' },
{ text: 'Hls 画质', link: '/plugin/hls-quality' },
{ text: 'Dash 画质', link: '/plugin/dash-quality' },
- { text: '控制器皮肤', link: '/plugin/control-ui' },
]
},
{
@@ -122,7 +121,6 @@ const config = {
{ text: 'Iframe Control', link: '/en/plugin/iframe' },
{ text: 'Hls Quality', link: '/en/plugin/hls-quality' },
{ text: 'Dash Quality', link: '/en/plugin/dash-quality' },
- { text: 'Control UI', link: '/en/plugin/control-ui' },
]
},
{
diff --git a/packages/artplayer-vitepress/docs/en/plugin/control-ui.md b/packages/artplayer-vitepress/docs/en/plugin/control-ui.md
deleted file mode 100644
index d205f6d9b..000000000
--- a/packages/artplayer-vitepress/docs/en/plugin/control-ui.md
+++ /dev/null
@@ -1,92 +0,0 @@
-# 控制器皮肤
-
-## 演示
-
-👉 [查看完整演示](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-control/index.js&example=control)
-
-## 安装
-
-::: code-group
-
-```bash [npm]
-npm install artplayer-plugin-control
-```
-
-```bash [yarn]
-yarn add artplayer-plugin-control
-```
-
-```bash [pnpm]
-pnpm add artplayer-plugin-control
-```
-
-```html [script]
-
-```
-
-:::
-
-## CDN
-
-::: code-group
-
-```bash [jsdelivr.net]
-https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
-```
-
-```bash [unpkg.com]
-https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js
-```
-
-:::
-
-## 使用
-
-
- ▶ Run Code
-
-
-```js{7}
-var art = new Artplayer({
- container: '.artplayer-app',
- url: '/assets/sample/video.mp4',
- fullscreen: true,
- fullscreenWeb: true,
- plugins: [
- artplayerPluginControl(),
- ],
-});
-```
-
-## `enable`
-
-- Type: `Getter/Setter`
-- Parameter: `Boolean`
-
-是否启用新的控制器皮肤
-
-
- ▶ Run Code
-
-
-```js
-var art = new Artplayer({
- container: '.artplayer-app',
- url: '/assets/sample/video.mp4',
- fullscreen: true,
- fullscreenWeb: true,
- controls: [
- {
- position: 'right',
- html: '',
- click: function () {
- const { enable } = art.plugins.artplayerPluginControl;
- art.plugins.artplayerPluginControl.enable = !enable;
- },
- },
- ],
- plugins: [
- artplayerPluginControl(),
- ],
-});
-```
\ No newline at end of file
diff --git a/packages/artplayer-vitepress/docs/plugin/control-ui.md b/packages/artplayer-vitepress/docs/plugin/control-ui.md
deleted file mode 100644
index d205f6d9b..000000000
--- a/packages/artplayer-vitepress/docs/plugin/control-ui.md
+++ /dev/null
@@ -1,92 +0,0 @@
-# 控制器皮肤
-
-## 演示
-
-👉 [查看完整演示](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-control/index.js&example=control)
-
-## 安装
-
-::: code-group
-
-```bash [npm]
-npm install artplayer-plugin-control
-```
-
-```bash [yarn]
-yarn add artplayer-plugin-control
-```
-
-```bash [pnpm]
-pnpm add artplayer-plugin-control
-```
-
-```html [script]
-
-```
-
-:::
-
-## CDN
-
-::: code-group
-
-```bash [jsdelivr.net]
-https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
-```
-
-```bash [unpkg.com]
-https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js
-```
-
-:::
-
-## 使用
-
-
- ▶ Run Code
-
-
-```js{7}
-var art = new Artplayer({
- container: '.artplayer-app',
- url: '/assets/sample/video.mp4',
- fullscreen: true,
- fullscreenWeb: true,
- plugins: [
- artplayerPluginControl(),
- ],
-});
-```
-
-## `enable`
-
-- Type: `Getter/Setter`
-- Parameter: `Boolean`
-
-是否启用新的控制器皮肤
-
-
- ▶ Run Code
-
-
-```js
-var art = new Artplayer({
- container: '.artplayer-app',
- url: '/assets/sample/video.mp4',
- fullscreen: true,
- fullscreenWeb: true,
- controls: [
- {
- position: 'right',
- html: '',
- click: function () {
- const { enable } = art.plugins.artplayerPluginControl;
- art.plugins.artplayerPluginControl.enable = !enable;
- },
- },
- ],
- plugins: [
- artplayerPluginControl(),
- ],
-});
-```
\ No newline at end of file