feat: Add parameter to append danmuku library in artplayer-plugin-danmuku

This commit is contained in:
Harvey Zack committed 2024-06-04 21:59:55 +08:00
1 parent 390be821d6
commit 2d44d602e4
8 files changed
+86 -50

No files matched your search

@@ -195,7 +195,6 @@ class Danmuku {
this.$danmuku = template.$danmuku; // 弹幕层容器
this.$player = template.$player; // 播放器容器
this.art = art;
this.danmus = []; // 原始弹幕数据
this.queue = []; // 实际弹幕队列
this.$refs = []; // 弹幕DOM节点池
this.isStop = false; // 是否停止
@@ -411,17 +410,36 @@ class Danmuku {
return this.option.synchronousPlayback && this.art.playbackRate ? this.option.speed / Number(this.art.playbackRate) : this.option.speed;
}
// 加载弹幕
async load() {
async load(danmuku) {
const { errorHandle } = this.utils;
let danmus = [];
const target = danmuku || this.option.danmuku;
try {
if (typeof this.option.danmuku === "function") this.danmus = await this.option.danmuku();
else if (typeof this.option.danmuku.then === "function") this.danmus = await this.option.danmuku;
else if (typeof this.option.danmuku === "string") this.danmus = await (0, _bilibili.bilibiliDanmuParseFromUrl)(this.option.danmuku);
else this.danmus = this.option.danmuku;
errorHandle(Array.isArray(this.danmus), "Danmuku need return an array as result");
this.queue = []; // 清空实际弹幕队列
this.$danmuku.innerText = ""; // 清空弹幕层
this.danmus.forEach((danmu)=>this.emit(danmu)); // 逐个验证原始弹幕并转换为实际弹幕
if (typeof target === "function") danmus = await target(); // 异步函数获取
else if (target instanceof Promise) danmus = await target; // 从 Promise 对象获取
else if (typeof target === "string") danmus = await (0, _bilibili.bilibiliDanmuParseFromUrl)(target); // 从B站xml链接解析
else if (Array.isArray(target)) danmus = [
...target
]; // 直接传入数组
errorHandle(Array.isArray(danmus), "Danmuku need return an array as result");
// 假如没有传入弹幕参数,则清空弹幕,否则追加弹幕
if (danmuku === undefined) {
this.reset(); // 重置弹幕
this.queue = []; // 清空弹幕队列
this.states = {
wait: [],
ready: [],
emit: [],
stop: []
}; // 清空弹幕状态池
this.$refs = []; // 清空弹幕DOM节点池
this.$danmuku.innerText = ""; // 清空弹幕层
}
// 逐个验证原始弹幕并转换到弹幕队列
for(let index = 0; index < danmus.length; index++){
const danmu = danmus[index];
await this.emit(danmu);
}
this.art.emit("artplayerPluginDanmuku:loaded", this.queue);
} catch (error) {
this.art.emit("artplayerPluginDanmuku:error", error);
@@ -430,7 +448,7 @@ class Danmuku {
return this;
}
// 把原始弹幕转换为实际弹幕
emit(danmu) {
async emit(danmu) {
const { clamp } = this.utils;
this.validator(danmu, {
text: "string",
@@ -1597,7 +1615,7 @@ function heatmap(art, danmuku, option) {
else {
const gap = art.duration / svg.w;
for(let x = 0; x <= svg.w; x += options.sampling){
const y = danmuku.danmus.filter(({ time })=>time > x * gap && time <= (x + options.sampling) * gap).length;
const y = danmuku.queue.filter(({ time })=>time > x * gap && time <= (x + options.sampling) * gap).length;
points.push([
x,
y
@@ -1 +1 @@
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAIwB;AAJxB;;AACA;;AACA;;AAEe,SAAS,uBAAuB,MAAM;IACjD,OAAO,CAAC;QACJ,MAAM,UAAU,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,KAAK;QACjC,MAAM,UAAU,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,KAAK;QAEjC,IAAI,QAAQ,MAAM,CAAC,OAAO,EACtB,CAAA,GAAA,uBAAO,AAAD,EAAE,KAAK,SAAS,QAAQ,MAAM,CAAC,OAAO;QAGhD,OAAO;YACH,MAAM;YACN,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC;YACxB,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC;YACxB,QAAQ,QAAQ,MAAM,CAAC,IAAI,CAAC;YAC5B,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC;YACxB,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC;YACxB,OAAO,QAAQ,KAAK,CAAC,IAAI,CAAC;YAC1B,OAAO,QAAQ,KAAK,CAAC,IAAI,CAAC;YAC1B,IAAI,UAAS;gBACT,OAAO,QAAQ,MAAM;YACzB;YACA,IAAI,UAAS;gBACT,OAAO,QAAQ,MAAM;YACzB;YACA,IAAI,UAAS;gBACT,OAAO,QAAQ,MAAM;YACzB;QACJ;IACJ;AACJ;AAEA,uBAAuB,KAAK,GAAG,CAAA,GAAA,uBAAO,AAAD,EAAE,KAAK;AAE5C,IAAI,OAAO,WAAW,aAClB,MAAM,CAAC,yBAAyB,GAAG;;;;;ACtCvC;AACA;;AAEe,MAAM;IACjB,YAAY,GAAG,EAAE,MAAM,CAAE;QACrB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG;QAElC,IAAI,CAAC,KAAK,GAAG,YAAY,KAAK,EAAE,MAAM;QACtC,IAAI,CAAC,SAAS,GAAG,YAAY,SAAS,EAAE,QAAQ;QAChD,IAAI,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,QAAQ;QAC3C,IAAI,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,QAAQ;QAEzC,IAAI,CAAC,GAAG,GAAG;QACX,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,SAAS;QAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,SAAS;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,WAAW;QAC5B,IAAI,CAAC,MAAM,GAAG,OAAO,OAAO;QAC5B,IAAI,CAAC,MAAM,GAAG,OAAO,OAAO;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,MAAM;QACzB,IAAI,CAAC,KAAK,GAAG,GAAG,OAAO;QAEvB,WAAW;QACX,IAAI,CAAC,MAAM,GAAG,QAAQ,MAAM;QAE5B,QAAQ;QACR,IAAI,CAAC,MAAM,GAAG;YACV,MAAM,EAAE;YACR,OAAO,EAAE;YACT,MAAM,EAAE;YACR,MAAM,EAAE;QACZ;QAEA,QAAQ;QACR,IAAI,CAAC,MAAM,CAAC;QAEZ,+BAA+B;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,IAAI,eAAe,CAAC,IAAI,KAAK;YAAC,CAAA,GAAA,sBAAU,AAAD;SAAE;QAElE,SAAS;QACT,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;QAErC,OAAO;QACP,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,KAAK;QAC/B,IAAI,EAAE,CAAC,iBAAiB,IAAI,CAAC,KAAK;QAClC,IAAI,EAAE,CAAC,eAAe,IAAI,CAAC,IAAI;QAC/B,IAAI,EAAE,CAAC,iBAAiB,IAAI,CAAC,IAAI;QACjC,IAAI,EAAE,CAAC,WAAW,IAAI,CAAC,OAAO;QAC9B,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,MAAM;QAE5B,SAAS;QACT,IAAI,CAAC,IAAI;IACb;IAEA,OAAO;IACP,WAAW,SAAS;QAChB,OAAO;YACH,SAAS,EAAE;YACX,OAAO;YACP,QAAQ;gBAAC;gBAAI;aAAM;YACnB,SAAS;YACT,OAAO;YACP,MAAM;YACN,OAAO;gBAAC;gBAAG;gBAAG;aAAE;YAChB,UAAU;YACV,aAAa;YACb,qBAAqB;YACrB,OAAO;YACP,SAAS;YACT,QAAQ,EAAE;YACV,QAAQ,IAAM;YACd,YAAY,IAAM;YAClB,eAAe,IAAM;YACrB,SAAS;YACT,SAAS;YACT,WAAW;YACX,UAAU;YACV,OAAO;YACP,SAAS,CAAC;YACV,WAAW,CAAC;YACZ,QAAQ,CAAC;YACT,OAAO,CAAC;YACR,OAAO,EAAE;QACb;IACJ;IAEA,OAAO;IACP,WAAW,SAAS;QAChB,OAAO;YACH,SAAS;YACT,OAAO;YACP,QAAQ;YACR,SAAS;YACT,OAAO;YACP,MAAM;YACN,OAAO;YACP,UAAU;YACV,aAAa;YACb,qBAAqB;YACrB,OAAO;YACP,SAAS;YACT,QAAQ;YACR,QAAQ;YACR,YAAY;YACZ,eAAe;YACf,SAAS;YACT,SAAS;YACT,WAAW;YACX,UAAU;YACV,OAAO;YACP,SAAS;YACT,WAAW;YACX,QAAQ;YACR,OAAO;YACP,OAAO;QACX;IACJ;IAEA,SAAS;IACT,WAAW,UAAU;QACjB,OAAO,CAAC;;;;;;;;;;;;;QAaR,CAAC;IACL;IAEA,gCAAgC;IAChC,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB;IAC9C;IAEA,UAAU;IACV,IAAI,YAAY;QACZ,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK;QAC5B,MAAM,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACnC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO;QAErC,IAAI,OAAO,UAAU,UACjB,OAAO,MAAM,OAAO,GAAG;QAG3B,IAAI,OAAO,UAAU,YAAY,MAAM,QAAQ,CAAC,MAAM;YAClD,MAAM,QAAQ,WAAW,SAAS;YAClC,OAAO,MAAM,eAAe,OAAO,GAAG;QAC1C;QAEA,OAAO,QAAQ,MAAM,CAAC,MAAM,CAAC,EAAE;IACnC;IAEA,UAAU;IACV,IAAI,eAAe;QACf,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK;QAC5B,MAAM,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACnC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO;QAErC,IAAI,OAAO,UAAU,UACjB,OAAO,MAAM,OAAO,GAAG;QAG3B,IAAI,OAAO,UAAU,YAAY,MAAM,QAAQ,CAAC,MAAM;YAClD,MAAM,QAAQ,WAAW,SAAS;YAClC,OAAO,MAAM,eAAe,OAAO,GAAG;QAC1C;QAEA,OAAO,QAAQ,MAAM,CAAC,MAAM,CAAC,EAAE;IACnC;IAEA,WAAW;IACX,IAAI,WAAW;QACX,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK;QAC5B,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO;QAErC,MAAM,WAAW,IAAI,CAAC,MAAM,CAAC,QAAQ;QAErC,IAAI,OAAO,aAAa,UACpB,OAAO,MAAM,UAAU,IAAI;QAG/B,IAAI,OAAO,aAAa,YAAY,SAAS,QAAQ,CAAC,MAAM;YACxD,MAAM,QAAQ,WAAW,YAAY;YACrC,OAAO,MAAM,eAAe,OAAO,IAAI;QAC3C;QAEA,OAAO,QAAQ,MAAM,CAAC,QAAQ;IAClC;IAEA,YAAY;IACZ,IAAI,OAAO;QACP,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,SAAS,aAAa,CAAC;QACxD,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,OAAO;QACpC,KAAK,OAAO,CAAC,IAAI,GAAG;QACpB,KAAK,SAAS,GAAG;QACjB,OAAO;IACX;IAEA,aAAa;IACb,IAAI,SAAS;QACT,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG;QAEhC,MAAM,SAAS,EAAE;QAEjB,8BAA8B;QAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAU,OAAO,IAAI,CAAC;QAE5C,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACjB,IAAI,cAAc,OAAO,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,cAAc,KAC/D,OAAO,IAAI,CAAC;QAEpB;QAEA,OAAO;IACX;IAEA,0BAA0B;IAC1B,IAAI,WAAW;QACX,MAAM,SAAS,EAAE;QACjB,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO;QACpC,MAAM,aAAa,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OALine truncated
{"mappings":"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 truncated