Files
ArtPlayer/src/player/playbackRateMix.js
T
2018-11-06 10:23:11 +08:00

37 lines
1.1 KiB
JavaScript

import { clamp, sublings } from '../utils';
export default function playbackRateMix(art, player) {
const { refs: { $video, $player }, i18n, notice } = art;
Object.defineProperty(player, 'playbackRate', {
value: rate => {
const newRate = clamp(rate, 0.1, 10);
$video.playbackRate = newRate;
$player.dataset.playbackRate = newRate;
notice.show(`${i18n.get('Rate')}: ${newRate === 1 ? i18n.get('Normal') : `${newRate}x`}`);
art.emit('playbackRate', newRate);
}
});
Object.defineProperty(player, 'playbackRateRemove', {
value: () => {
player.playbackRate(1);
delete $player.dataset.playbackRate;
if (art.contextmenu.$playbackRate) {
const $normal = art.contextmenu.$playbackRate.querySelector('.normal');
sublings($normal).forEach(item => item.classList.remove('current'));
$normal.classList.add('current');
}
}
});
Object.defineProperty(player, 'playbackRateReset', {
value: () => {
const { playbackRate } = $player.dataset;
if (playbackRate) {
player.playbackRate(Number(playbackRate));
}
}
});
}