diff --git a/CHANGELOG_CN.md b/CHANGELOG_CN.md
index c6379e55d..c6bb77a01 100644
--- a/CHANGELOG_CN.md
+++ b/CHANGELOG_CN.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- 当播放地址发生错误到达上限后,不会再主动销毁播放器
- 更新组件时,支持填写只更新的字段 [pull/549](https://github.com/zhw2590582/ArtPlayer/pull/549)
- 当 `autoPlayback` 和 `autoplay` 同时为 `true` 时,会自动跳转播放
+- 添加 `muted` 事件,当静音的状态变化时触发
## [5.0.9] - 2023-5-14
diff --git a/packages/artplayer-vitepress/docs/advanced/event.md b/packages/artplayer-vitepress/docs/advanced/event.md
index 0c0582659..b58e8e0e1 100644
--- a/packages/artplayer-vitepress/docs/advanced/event.md
+++ b/packages/artplayer-vitepress/docs/advanced/event.md
@@ -777,6 +777,23 @@ art.on('setting', (state) => {
});
```
+## `muted`
+
+当静音的状态变化时触发
+
+
▶ Run Code
+
+```js{6}
+var art = new Artplayer({
+ container: '.artplayer-app',
+ url: '/assets/sample/video.mp4',
+});
+
+art.on('muted', (state) => {
+ console.log(state);
+});
+```
+
## `video:canplay`
浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容
diff --git a/packages/artplayer-vitepress/docs/en/advanced/event.md b/packages/artplayer-vitepress/docs/en/advanced/event.md
index a0f1ed821..b58e8e0e1 100644
--- a/packages/artplayer-vitepress/docs/en/advanced/event.md
+++ b/packages/artplayer-vitepress/docs/en/advanced/event.md
@@ -102,8 +102,25 @@ art.on('ready', () => {
art.url = '/assets/sample/video.mp4'
});
-art.on('restart', () => {
- console.info('restart');
+art.on('restart', (url) => {
+ console.info('restart', url);
+});
+```
+
+## `loop`
+
+当出现区间循环时触发
+
+▶ Run Code
+
+```js{6}
+var art = new Artplayer({
+ container: '.artplayer-app',
+ url: '/assets/sample/video.mp4',
+});
+
+art.on('loop', (start, end) => {
+ console.info('loop', start, end);
});
```
@@ -179,27 +196,6 @@ art.on('destroy', () => {
});
```
-## `url`
-
-当视频地址变化时触发
-
-▶ Run Code
-
-```js{10}
-var art = new Artplayer({
- container: '.artplayer-app',
- url: '/assets/sample/video.mp4',
-});
-
-art.on('ready', () => {
- art.url = '/assets/sample/video.mp4?t=0'
-});
-
-art.on('url', (url) => {
- console.info('url', url);
-});
-```
-
## `focus`
当播放器获得焦点时触发
@@ -212,8 +208,8 @@ var art = new Artplayer({
url: '/assets/sample/video.mp4',
});
-art.on('focus', () => {
- console.info('focus');
+art.on('focus', (event) => {
+ console.info('focus', event);
});
```
@@ -229,8 +225,8 @@ var art = new Artplayer({
url: '/assets/sample/video.mp4',
});
-art.on('blur', () => {
- console.info('blur');
+art.on('blur', (event) => {
+ console.info('blur', event);
});
```
@@ -246,8 +242,8 @@ var art = new Artplayer({
url: '/assets/sample/video.mp4',
});
-art.on('dblclick', () => {
- console.info('dblclick');
+art.on('dblclick', (event) => {
+ console.info('dblclick', event);
});
```
@@ -263,8 +259,8 @@ var art = new Artplayer({
url: '/assets/sample/video.mp4',
});
-art.on('click', () => {
- console.info('click');
+art.on('click', (event) => {
+ console.info('click', event);
});
```
@@ -297,8 +293,8 @@ var art = new Artplayer({
url: '/assets/sample/video.mp4',
});
-art.on('hover', (state) => {
- console.info('hover', state);
+art.on('hover', (state, event) => {
+ console.info('hover', state, event);
});
```
@@ -353,6 +349,24 @@ art.on('view', (state) => {
});
```
+## `lock`
+
+在移动端,当锁定的状态发生变化时触发
+
+▶ Run Code
+
+```js{6}
+var art = new Artplayer({
+ container: '.artplayer-app',
+ url: '/assets/sample/video.mp4',
+ lock: true,
+});
+
+art.on('lock', (state) => {
+ console.info('lock', state);
+});
+```
+
## `aspectRatio`
当播放器长宽比变化时触发
@@ -763,6 +777,23 @@ art.on('setting', (state) => {
});
```
+## `muted`
+
+当静音的状态变化时触发
+
+▶ Run Code
+
+```js{6}
+var art = new Artplayer({
+ container: '.artplayer-app',
+ url: '/assets/sample/video.mp4',
+});
+
+art.on('muted', (state) => {
+ console.log(state);
+});
+```
+
## `video:canplay`
浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容
diff --git a/packages/artplayer/src/player/volumeMix.js b/packages/artplayer/src/player/volumeMix.js
index 852ba42c0..506b7c1cf 100644
--- a/packages/artplayer/src/player/volumeMix.js
+++ b/packages/artplayer/src/player/volumeMix.js
@@ -23,6 +23,7 @@ export default function volumeMix(art) {
get: () => $video.muted,
set: (muted) => {
$video.muted = muted;
+ art.emit('muted', muted);
},
});
}
diff --git a/packages/artplayer/types/events.d.ts b/packages/artplayer/types/events.d.ts
index 28e53e282..f8cc7ff9b 100644
--- a/packages/artplayer/types/events.d.ts
+++ b/packages/artplayer/types/events.d.ts
@@ -63,4 +63,5 @@ export type Events = {
subtitleOffset: [offset: number];
restart: [url: string];
loop: [start?: number, end?: number];
+ muted: [state: boolean];
};