update artplayer-tool-thumbnail

This commit is contained in:
Harvey committed 2022-10-27 17:12:59 +08:00
1 parent 309fb7bf95
commit bb21e129b8
5 files changed
+173 -151

No files matched your search

@@ -19,8 +19,5 @@
"html5",
"video",
"player"
],
"dependencies": {
"tiny-emitter": "^2.1.0"
}
}
]
}
@@ -0,0 +1,42 @@
export default class Emitter {
on(name, fn, ctx) {
const e = this.e || (this.e = {});
(e[name] || (e[name] = [])).push({ fn, ctx });
return this;
}
once(name, fn, ctx) {
const self = this;
function listener(...args) {
self.off(name, listener);
fn.apply(ctx, args);
}
listener._ = fn;
return this.on(name, listener, ctx);
}
emit(name, ...data) {
const evtArr = ((this.e || (this.e = {}))[name] || []).slice();
for (let i = 0; i < evtArr.length; i += 1) {
evtArr[i].fn.apply(evtArr[i].ctx, data);
}
return this;
}
off(name, callback) {
const e = this.e || (this.e = {});
const evts = e[name];
const liveEvents = [];
if (evts && callback) {
for (let i = 0, len = evts.length; i < len; i += 1) {
if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]);
}
}
if (liveEvents.length) {
e[name] = liveEvents;
} else {
delete e[name];
}
return this;
}
}
@@ -1,4 +1,4 @@
import Emitter from 'tiny-emitter';
import Emitter from './emitter';
import { runPromisesInSeries, sleep, getFileName, clamp } from './utils';
export default class ArtplayerToolThumbnail extends Emitter {