Files
ArtPlayer/packages/artplayer/src/player/loopMix.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

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];
}
}
});
}