Files
ArtPlayer/packages/artplayer/src/contextmenu/playbackRate.js
T
Harvey Zack 7b53de941d V5 (#500)
* update dep

* Update package.json

* update contextmenu

* update d.ts

* update onVttLoad

* build artplayer

* update style

* --art-theme

* update style

* update style

* update user-select

* add getIcon

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* add progress-hover

* update mini

* update style

* update style

* update style

* update style

* update style

* update volume

* update style

* add art-backdrop

* update style

* update style

* update style

* update currentLevel

* update artplayerPluginControl

* update artplayerPluginDanmuku

* Update package.json
2023-04-16 23:01:26 +08:00

39 lines
1.3 KiB
JavaScript

import { inverseClass, query, queryAll } from '../utils';
export default function playbackRate(option) {
return (art) => {
const {
i18n,
constructor: { PLAYBACK_RATE },
} = art;
const html = PLAYBACK_RATE.map(
(item) => `<span data-value="${item}">${item === 1 ? i18n.get('Normal') : item.toFixed(1)}</span>`,
).join('');
return {
...option,
html: `${i18n.get('Play Speed')}: ${html}`,
click: (contextmenu, event) => {
const { value } = event.target.dataset;
if (value) {
art.playbackRate = Number(value);
contextmenu.show = false;
}
},
mounted: ($panel) => {
const $default = query('[data-value="1"]', $panel);
if ($default) inverseClass($default, 'art-current');
art.on('video:ratechange', () => {
const $current = queryAll('span', $panel).find(
(item) => Number(item.dataset.value) === art.playbackRate,
);
if ($current) {
inverseClass($current, 'art-current');
}
});
},
};
};
}