mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-12 14:38:44 -08:00
* 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
31 lines
949 B
JavaScript
31 lines
949 B
JavaScript
import { def, clamp } from '../utils';
|
|
|
|
export default function loopMix(art) {
|
|
let interval = [];
|
|
def(art, 'loop', {
|
|
get: () => interval,
|
|
set: (value) => {
|
|
if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {
|
|
const start = clamp(value[0], 0, Math.min(value[1], art.duration));
|
|
const end = clamp(value[1], start, art.duration);
|
|
if (end - start >= 1) {
|
|
interval = [start, end];
|
|
} else {
|
|
interval = [];
|
|
}
|
|
} else {
|
|
interval = [];
|
|
}
|
|
art.emit('loop', interval);
|
|
},
|
|
});
|
|
|
|
art.on('video:timeupdate', () => {
|
|
if (interval.length) {
|
|
if (art.currentTime < interval[0] || art.currentTime > interval[1]) {
|
|
art.seek = interval[0];
|
|
}
|
|
}
|
|
});
|
|
}
|