mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-28 10:31:20 -08:00
add settings
This commit is contained in:
1 parent
ddb3ff18bd
commit
550b3342a5
8 files changed
+124
-5
No files matched your search
@@ -618,6 +618,62 @@ var art = new Artplayer({
|
|||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## settings
|
||||||
|
|
||||||
|
- Type: `Array`
|
||||||
|
- Default: `[]`
|
||||||
|
|
||||||
|
Initialize custom setting panel
|
||||||
|
|
||||||
|
| Property | Type | Description |
|
||||||
|
| --------- | ------------------- | ------------------------------------------------------------- |
|
||||||
|
| `disable` | `Boolean` | Whether to disable the component |
|
||||||
|
| `name` | `String` | The unique name of the component, used to mark the class name |
|
||||||
|
| `index` | `Number` | Component index, priority for display |
|
||||||
|
| `html` | `String`、`Element` | DOM element of the component |
|
||||||
|
| `style` | `Object` | Component style object |
|
||||||
|
| `click` | `Function` | Component click event |
|
||||||
|
| `mounted` | `Function` | Triggered after the component is mounted |
|
||||||
|
| `tooltip` | `String` | Prompt text of the component |
|
||||||
|
|
||||||
|
<div className="run-code">▶ Run Code</div>
|
||||||
|
|
||||||
|
```js
|
||||||
|
var art = new Artplayer({
|
||||||
|
container: '.artplayer-app',
|
||||||
|
url: '/assets/sample/video.mp4',
|
||||||
|
setting: true,
|
||||||
|
settings: [
|
||||||
|
{
|
||||||
|
disable: false,
|
||||||
|
name: 'button',
|
||||||
|
index: 10,
|
||||||
|
html: 'Custom button1',
|
||||||
|
tooltip: 'Custom button1',
|
||||||
|
style: {
|
||||||
|
color: 'red',
|
||||||
|
},
|
||||||
|
click: function () {
|
||||||
|
console.log('You clicked custom button 1');
|
||||||
|
},
|
||||||
|
mounted: function () {
|
||||||
|
console.log('Custom button mounting is complete 1');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
html: 'Custom button2',
|
||||||
|
tooltip: 'Custom button2',
|
||||||
|
style: {
|
||||||
|
color: 'green',
|
||||||
|
},
|
||||||
|
click: function () {
|
||||||
|
console.log('You clicked custom button 2');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
## contextmenu
|
## contextmenu
|
||||||
|
|
||||||
- Type: `Array`
|
- Type: `Array`
|
||||||
|
|||||||
@@ -618,6 +618,62 @@ var art = new Artplayer({
|
|||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## settings
|
||||||
|
|
||||||
|
- 类型: `Array`
|
||||||
|
- 默认: `[]`
|
||||||
|
|
||||||
|
初始化自定义的设置面板
|
||||||
|
|
||||||
|
| 属性 | 类型 | 描述 |
|
||||||
|
| --------- | ------------------- | -------------------------- |
|
||||||
|
| `disable` | `Boolean` | 是否禁用组件 |
|
||||||
|
| `name` | `String` | 组件唯一名称,用于标记类名 |
|
||||||
|
| `index` | `Number` | 组件索引,用于显示的优先级 |
|
||||||
|
| `html` | `String`、`Element` | 组件的 DOM 元素 |
|
||||||
|
| `style` | `Object` | 组件样式对象 |
|
||||||
|
| `click` | `Function` | 组件点击事件 |
|
||||||
|
| `mounted` | `Function` | 组件挂载后触发 |
|
||||||
|
| `tooltip` | `String` | 组件的提示文本 |
|
||||||
|
|
||||||
|
<div className="run-code">▶ Run Code</div>
|
||||||
|
|
||||||
|
```js
|
||||||
|
var art = new Artplayer({
|
||||||
|
container: '.artplayer-app',
|
||||||
|
url: '/assets/sample/video.mp4',
|
||||||
|
setting: true,
|
||||||
|
settings: [
|
||||||
|
{
|
||||||
|
disable: false,
|
||||||
|
name: 'button',
|
||||||
|
index: 10,
|
||||||
|
html: '自定义按钮',
|
||||||
|
tooltip: '自定义按钮的提示1',
|
||||||
|
style: {
|
||||||
|
color: 'red',
|
||||||
|
},
|
||||||
|
click: function () {
|
||||||
|
console.log('你点击了自定义按钮1');
|
||||||
|
},
|
||||||
|
mounted: function () {
|
||||||
|
console.log('自定义按钮挂载完成1');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
html: '自定义按钮2',
|
||||||
|
tooltip: '自定义按钮的提示2',
|
||||||
|
style: {
|
||||||
|
color: 'green',
|
||||||
|
},
|
||||||
|
click: function () {
|
||||||
|
console.log('你点击了自定义按钮2');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
## contextmenu
|
## contextmenu
|
||||||
|
|
||||||
- 类型: `Array`
|
- 类型: `Array`
|
||||||
|
|||||||
@@ -50,13 +50,13 @@ art.on('ready', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Use the query method to get the DOM element of the component
|
// 使用查询 query 获取组件的DOM元素
|
||||||
var $layer1 = art.query('.art-layer-layer1');
|
var $layer1 = art.query('.art-layer-layer1');
|
||||||
var $contextmenu1 = art.query('.art-contextmenu-contextmenu1');
|
var $contextmenu1 = art.query('.art-contextmenu-contextmenu1');
|
||||||
var $control1 = art.query('.art-control-control1');
|
var $control1 = art.query('.art-control-control1');
|
||||||
var $setting1 = art.query('.art-setting-setting1');
|
var $setting1 = art.query('.art-setting-setting1');
|
||||||
|
|
||||||
// Recommended use the name to get the DOM element of the component
|
// 推荐使用 name 获取组件的DOM元素
|
||||||
var $layer1 = art.layers['layer1'];
|
var $layer1 = art.layers['layer1'];
|
||||||
var $contextmenu1 = art.contextmenu['contextmenu1'];
|
var $contextmenu1 = art.contextmenu['contextmenu1'];
|
||||||
var $control1 = art.controls['control1'];
|
var $control1 = art.controls['control1'];
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "artplayer",
|
"name": "artplayer",
|
||||||
"version": "4.0.0",
|
"version": "4.0.1",
|
||||||
"expose": "Artplayer",
|
"expose": "Artplayer",
|
||||||
"description": "ArtPlayer.js is a modern and full featured HTML5 video player",
|
"description": "ArtPlayer.js is a modern and full featured HTML5 video player",
|
||||||
"main": "dist/artplayer.js",
|
"main": "dist/artplayer.js",
|
||||||
|
|||||||
@@ -138,6 +138,7 @@ export default class Artplayer extends Emitter {
|
|||||||
layers: [],
|
layers: [],
|
||||||
contextmenu: [],
|
contextmenu: [],
|
||||||
controls: [],
|
controls: [],
|
||||||
|
settings: [],
|
||||||
quality: [],
|
quality: [],
|
||||||
highlight: [],
|
highlight: [],
|
||||||
plugins: [],
|
plugins: [],
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ export default {
|
|||||||
whitelist: [`${s}|${f}|${r}`],
|
whitelist: [`${s}|${f}|${r}`],
|
||||||
layers: [component],
|
layers: [component],
|
||||||
contextmenu: [component],
|
contextmenu: [component],
|
||||||
|
settings: [component],
|
||||||
controls: [
|
controls: [
|
||||||
{
|
{
|
||||||
...component,
|
...component,
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ export default class Setting extends Component {
|
|||||||
|
|
||||||
if (option.setting) {
|
if (option.setting) {
|
||||||
art.once('ready', () => {
|
art.once('ready', () => {
|
||||||
proxy($setting, 'click', e => {
|
proxy($setting, 'click', (event) => {
|
||||||
if (e.target === $setting) {
|
if (event.target === $setting) {
|
||||||
this.show = false;
|
this.show = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -53,6 +53,10 @@ export default class Setting extends Component {
|
|||||||
name: 'playbackRate',
|
name: 'playbackRate',
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
option.settings.forEach((item) => {
|
||||||
|
this.add(item);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
art.on('blur', () => {
|
art.on('blur', () => {
|
||||||
|
|||||||
+1
@@ -53,6 +53,7 @@ export default class Artplayer {
|
|||||||
layers?: Component[];
|
layers?: Component[];
|
||||||
contextmenu?: Component[];
|
contextmenu?: Component[];
|
||||||
controls?: Component[];
|
controls?: Component[];
|
||||||
|
settings?: Component[];
|
||||||
quality?: {
|
quality?: {
|
||||||
default?: boolean;
|
default?: boolean;
|
||||||
html: string;
|
html: string;
|
||||||
|
|||||||
Reference in new issue
Block a user