From 5e05f9e4c2fa3033b8cfd0c648daa5afdaccc113 Mon Sep 17 00:00:00 2001 From: Harvey Zack Date: Mon, 2 May 2022 00:23:06 +0800 Subject: [PATCH] artplayer-plugin-danmuku@4.3.17 --- docs/compiled/artplayer-plugin-danmuku.js | 4 ++-- docs/uncompiled/artplayer-plugin-danmuku/index.js | 6 +++--- docs/uncompiled/artplayer-plugin-danmuku/index.js.map | 2 +- .../dist/artplayer-plugin-danmuku.js | 4 ++-- packages/artplayer-plugin-danmuku/package.json | 2 +- packages/artplayer-plugin-danmuku/src/danmuku.js | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/compiled/artplayer-plugin-danmuku.js b/docs/compiled/artplayer-plugin-danmuku.js index f6ae0c1fb..4642a7869 100644 --- a/docs/compiled/artplayer-plugin-danmuku.js +++ b/docs/compiled/artplayer-plugin-danmuku.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-danmuku.js v4.3.16 + * artplayer-plugin-danmuku.js v4.3.17 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2022 Harvey Zack * Released under the MIT License. */ -!function(t,e,i,r,n){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof s.parcelRequire93cf&&s.parcelRequire93cf,a=o.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(e,i){if(!a[e]){if(!t[e]){var r="function"==typeof s.parcelRequire93cf&&s.parcelRequire93cf;if(!i&&r)return r(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}p.resolve=function(i){var r=t[e][1][i];return null!=r?r:i},p.cache={};var h=a[e]=new u.Module(e);t[e][0].call(h.exports,p,h,h.exports,this)}return a[e].exports;function p(t){var e=p.resolve(t);return!1===e?{}:u(e)}}u.isParcelRequire=!0,u.Module=function(t){this.id=t,this.bundle=u,this.exports={}},u.modules=t,u.cache=a,u.parent=o,u.register=function(e,i){t[e]=[function(t,e){e.exports=i},{}]},Object.defineProperty(u,"root",{get:function(){return s.parcelRequire93cf}}),s.parcelRequire93cf=u;for(var h=0;h{const i=new s.default(e,t);return{name:"artplayerPluginDanmuku",emit:i.emit.bind(i),config:i.config.bind(i),hide:i.hide.bind(i),show:i.show.bind(i),get isHide(){return i.isHide}}}}i.default=o,window.artplayerPluginDanmuku=o},{"./danmuku":"8Gtnh","@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}],"8Gtnh":[function(t,e,i){var r=t("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(i);var n=t("./bilibili"),s=t("./getDanmuTop"),o=r.interopDefault(s);class a{constructor(t,e){this.art=t,this.utils=t.constructor.utils,this.validator=t.constructor.validator,this.queue=[],this.option={},this.$refs=[],this.config(e),this.isStop=!1,this.isHide=!1,this.animationFrameTimer=null,this.$danmuku=t.template.$danmuku,this.$player=t.template.$player,t.on("video:play",this.start.bind(this)),t.on("video:playing",this.start.bind(this)),t.on("video:pause",this.stop.bind(this)),t.on("video:waiting",this.stop.bind(this)),t.on("resize",this.resize.bind(this)),t.on("destroy",this.stop.bind(this)),t.on("fullscreen",this.reset.bind(this)),t.on("fullscreenWeb",this.reset.bind(this)),this.load()}static get option(){return{danmuku:[],speed:5,margin:[10,100],opacity:1,fontSize:25,filter:()=>!0,antiOverlap:!0,synchronousPlayback:!1}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",fontSize:"number",filter:"function",antiOverlap:"boolean",synchronousPlayback:"boolean"}}get isRotate(){return this.art.plugins.autoOrientation&&this.art.plugins.autoOrientation.state}get marginTop(){const{clamp:t}=this.utils,{$player:e}=this.art.template,i=this.option.margin[0];if("number"==typeof i)return t(i,0,e.clientHeight);if("string"==typeof i&&i.endsWith("%")){const r=parseFloat(i)/100;return t(e.clientHeight*r,0,e.clientHeight)}return a.option.margin[0]}get marginBottom(){const{clamp:t}=this.utils,{$player:e}=this.art.template,i=this.option.margin[1];if("number"==typeof i)return t(i,0,e.clientHeight);if("string"==typeof i&&i.endsWith("%")){const r=parseFloat(i)/100;return t(e.clientHeight*r,0,e.clientHeight)}return a.option.margin[1]}filter(t,e){return this.queue.filter((e=>e.$state===t)).map(e)}getLeft(t){const e=t.getBoundingClientRect();return this.isRotate?e.top:e.left}getRef(){const t=this.$refs.pop();if(t)return t;const e=document.createElement("div");return e.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.1>=e.time&&e.time>=t-.1))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await n.bilibiliDanmuParseFromUrl(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},a.option,this.option,t),this.validator(this.option,a.scheme),t.fontSize&&this.reset(),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.fontSize=e(this.option.fontSize,12,100),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const i=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-i}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const i=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-i}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}resize(){return this}reset(){this.queue.forEach((t=>this.makeWait(t)))}update(){const{clientWidth:t}=this.$player;return this.animationFrameTimer=window.requestAnimationFrame((()=>{this.art.playing&&!this.isHide&&(this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)})),this.getReady().forEach((e=>{e.$ref=this.getRef(),e.$ref.innerText=e.text,this.$danmuku.appendChild(e.$ref),e.$ref.style.left=`${t}px`,e.$ref.style.opacity=this.option.opacity,e.$ref.style.fontSize=`${this.option.fontSize}px`,e.$ref.style.color=e.color||"#fff",e.$ref.style.border=e.border?`1px solid ${e.color||"#fff"}`:"none",e.$ref.style.marginLeft="0px",e.$lastStartTime=Date.now(),e.$restTime=this.option.synchronousPlayback&&this.art.playbackRate?this.option.speed/Number(this.art.playbackRate):this.option.speed;const i=o.default(this,e);if(void 0!==i)switch(e.$state="emit",e.$ref.style.visibility="visible",e.mode){case 0:{e.$ref.style.top=`${i}px`;const r=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-r}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}case 1:e.$ref.style.left="50%",e.$ref.style.top=`${i}px`,e.$ref.style.marginLeft=`-${e.$ref.clientWidth/2}px`}else e.$state="ready",this.$refs.push(e.$ref),e.$ref=null}))),this.isStop||this.update()})),this}stop(){return this.isStop=!0,this.suspend(),window.cancelAnimationFrame(this.animationFrameTimer),this.art.emit("artplayerPluginDanmuku:stop"),this}start(){return this.isStop=!1,this.continue(),this.update(),this.art.emit("artplayerPluginDanmuku:start"),this}show(){return this.isHide=!1,this.$danmuku.style.display="block",this.art.emit("artplayerPluginDanmuku:show"),this}hide(){return this.isHide=!0,this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}emit(t){return this.validator(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()&&this.option.filter(t)?(t.time?t.time=this.utils.clamp(t.time,0,1/0):t.time=this.art.currentTime+.5,this.queue.push({mode:0,...t,$state:"wait",$ref:null,$restTime:0,$lastStartTime:0}),this):this}}i.default=a},{"./bilibili":"KnwDr","./getDanmuTop":"2Abxf","@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}],KnwDr:[function(t,e,i){var r=t("@parcel/transformer-js/src/esmodule-helpers.js");function n(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function s(t){if("string"!=typeof t)return[];const e=t.match(/[\S ]*?)<\/d>/gi);return e&&e.length?e.map((t=>{const[,e,i]=t.match(/(.+)<\/d>/),r=e.split(",");return 8===r.length&&i.trim()?{text:i,time:Number(r[0]),mode:n(Number(r[1])),fontSize:Number(r[2]),color:`#${Number(r[3]).toString(16)}`,timestamp:Number(r[4]),pool:Number(r[5]),userID:r[6],rowID:Number(r[7])}:null})):[]}function o(t){return fetch(t).then((t=>t.text())).then((t=>s(t)))}r.defineInteropFlag(i),r.export(i,"getMode",(()=>n)),r.export(i,"bilibiliDanmuParseFromXml",(()=>s)),r.export(i,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}],b7MJY:[function(t,e,i){i.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},i.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},i.exportAll=function(t,e){return Object.keys(t).forEach((function(i){"default"===i||"__esModule"===i||e.hasOwnProperty(i)||Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[i]}})})),e},i.export=function(t,e,i){Object.defineProperty(t,e,{enumerable:!0,get:i})}},{}],"2Abxf":[function(t,e,i){function r(t,e,i,r){const n=r.$ref.offsetTop,s=t.getLeft(r.$ref)-e,o=r.$ref.clientHeight,a=r.$ref.clientWidth,l=s+a,u=i-l,h=l/r.$restTime,p=r.mode,f=r.$restTime;return{$ref:r.$ref,mode:p,time:f,top:n,left:s,height:o,width:a,right:u,speed:h,distance:l}}t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(i),i.default=function(t,e){const i=t.getLeft(t.$player),{clientWidth:n,clientHeight:s}=t.$player,{antiOverlap:o}=t.option,{marginBottom:a,marginTop:l}=t,u=r(t,i,n,e),h=t.queue.filter((t=>t.$ref&&"emit"===t.$state&&t.mode===u.mode&&t.$ref.offsetTop<=s-a)).map((e=>r(t,i,n,e))).sort(((t,e)=>t.top-e.top));if(0===h.length)return l;h.unshift({top:0,left:0,right:0,height:l,width:n,speed:0,distance:n}),h.push({top:s-a,left:0,right:0,height:a,width:n,speed:0,distance:n});for(let t=1;t=u.height)return r}const p=[];for(let t=1;t{const i=Math.min(...e.map((t=>t.right))),r=Math.min(...t.map((t=>t.right)));return i*e.length-r*t.length}));break;case 1:p.sort(((t,e)=>{const i=Math.max(...e.map((t=>t.width)));return Math.max(...t.map((t=>t.width)))*t.length-i*e.length}))}return p[0][0].top}switch(u.mode){case 0:{const t=p.find((t=>t.every((t=>{if(nt.time}))));return t&&t[0]?t[0].top:void 0}case 1:return}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}]},["E13ST"],"E13ST"); \ No newline at end of file +!function(t,e,i,n,r){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof s.parcelRequire93cf&&s.parcelRequire93cf,a=o.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(e,i){if(!a[e]){if(!t[e]){var n="function"==typeof s.parcelRequire93cf&&s.parcelRequire93cf;if(!i&&n)return n(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}p.resolve=function(i){var n=t[e][1][i];return null!=n?n:i},p.cache={};var h=a[e]=new u.Module(e);t[e][0].call(h.exports,p,h,h.exports,this)}return a[e].exports;function p(t){var e=p.resolve(t);return!1===e?{}:u(e)}}u.isParcelRequire=!0,u.Module=function(t){this.id=t,this.bundle=u,this.exports={}},u.modules=t,u.cache=a,u.parent=o,u.register=function(e,i){t[e]=[function(t,e){e.exports=i},{}]},Object.defineProperty(u,"root",{get:function(){return s.parcelRequire93cf}}),s.parcelRequire93cf=u;for(var h=0;h{const i=new s.default(e,t);return{name:"artplayerPluginDanmuku",emit:i.emit.bind(i),config:i.config.bind(i),hide:i.hide.bind(i),show:i.show.bind(i),get isHide(){return i.isHide}}}}i.default=o,window.artplayerPluginDanmuku=o},{"./danmuku":"8Gtnh","@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}],"8Gtnh":[function(t,e,i){t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(i);var n=t("./bilibili");class r{constructor(e,i){const{constructor:n,template:r}=e;this.utils=n.utils,this.validator=n.validator,this.$danmuku=r.$danmuku,this.$player=r.$player,this.art=e,this.queue=[],this.option={},this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.config(i),this.worker=new Worker(t("85d40535eae5f839")),e.on("video:play",this.start.bind(this)),e.on("video:playing",this.start.bind(this)),e.on("video:pause",this.stop.bind(this)),e.on("video:waiting",this.stop.bind(this)),e.on("fullscreen",this.reset.bind(this)),e.on("fullscreenWeb",this.reset.bind(this)),e.on("destroy",this.stop.bind(this)),this.load()}static get option(){return{danmuku:[],speed:5,margin:[10,100],opacity:1,fontSize:25,filter:()=>!0,antiOverlap:!0,synchronousPlayback:!1}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",fontSize:"number",filter:"function",antiOverlap:"boolean",synchronousPlayback:"boolean"}}get isRotate(){return this.art.plugins.autoOrientation&&this.art.plugins.autoOrientation.state}get marginTop(){const{clamp:t}=this.utils,{$player:e}=this.art.template,i=this.option.margin[0];if("number"==typeof i)return t(i,0,e.clientHeight);if("string"==typeof i&&i.endsWith("%")){const n=parseFloat(i)/100;return t(e.clientHeight*n,0,e.clientHeight)}return r.option.margin[0]}get marginBottom(){const{clamp:t}=this.utils,{$player:e}=this.art.template,i=this.option.margin[1];if("number"==typeof i)return t(i,0,e.clientHeight);if("string"==typeof i&&i.endsWith("%")){const n=parseFloat(i)/100;return t(e.clientHeight*n,0,e.clientHeight)}return r.option.margin[1]}filter(t,e){return this.queue.filter((e=>e.$state===t)).map(e)}getLeft(t){const e=t.getBoundingClientRect();return this.isRotate?e.top:e.left}getRef(){const t=this.$refs.pop();if(t)return t;const e=document.createElement("div");return e.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.2>=e.time&&e.time>=t-.2))}getEmits(){const t=[],{clientWidth:e}=this.$player,i=this.getLeft(this.$player);return this.filter("emit",(n=>{const r=n.$ref.offsetTop,s=this.getLeft(n.$ref)-i,o=n.$ref.clientHeight,a=n.$ref.clientWidth,l=s+a,u=e-l,h=l/n.$restTime,p={};p.top=r,p.left=s,p.height=o,p.width=a,p.right=u,p.speed=h,p.distance=l,p.time=n.$restTime,p.mode=n.mode,t.push(p)})),t}postMessage(t={}){return new Promise((e=>{t.id=Date.now(),this.worker.postMessage(t),this.worker.onmessage=i=>{const{data:n}=i;n.id===t.id&&e(n)}}))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await n.bilibiliDanmuParseFromUrl(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},r.option,this.option,t),this.validator(this.option,r.scheme),t.fontSize&&this.reset(),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.fontSize=e(this.option.fontSize,12,100),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const i=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-i}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const i=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-i}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}reset(){this.queue.forEach((t=>this.makeWait(t)))}update(){const{clientWidth:t}=this.$player;return this.timer=window.requestAnimationFrame((async()=>{if(this.art.playing&&!this.isHide){this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)}));const e=this.getReady();for(let i=0;i[\S ]*?)<\/d>/gi);return e&&e.length?e.map((t=>{const[,e,i]=t.match(/(.+)<\/d>/),n=e.split(",");return 8===n.length&&i.trim()?{text:i,time:Number(n[0]),mode:r(Number(n[1])),fontSize:Number(n[2]),color:`#${Number(n[3]).toString(16)}`,timestamp:Number(n[4]),pool:Number(n[5]),userID:n[6],rowID:Number(n[7])}:null})):[]}function o(t){return fetch(t).then((t=>t.text())).then((t=>s(t)))}n.defineInteropFlag(i),n.export(i,"getMode",(()=>r)),n.export(i,"bilibiliDanmuParseFromXml",(()=>s)),n.export(i,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}],b7MJY:[function(t,e,i){i.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},i.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},i.exportAll=function(t,e){return Object.keys(t).forEach((function(i){"default"===i||"__esModule"===i||e.hasOwnProperty(i)||Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[i]}})})),e},i.export=function(t,e,i){Object.defineProperty(t,e,{enumerable:!0,get:i})}},{}],"5sXKb":[function(t,e,i){e.exports="data:application/javascript,function%20getDanmuTop%28%7Btarget%3At%2Cemits%3Ae%2CclientWidth%3An%2CclientHeight%3Ai%2CmarginBottom%3As%2CmarginTop%3Ah%2CantiOverlap%3Ao%7D%29%7Bconst%20r%3De.filter%28%28e%3D%3Ee.mode%3D%3D%3Dt.mode%26%26e.top%3C%3Di-s%29%29.sort%28%28%28t%2Ce%29%3D%3Et.top-e.top%29%29%3Bif%280%3D%3D%3Dr.length%29return%20h%3Br.unshift%28%7Btop%3A0%2Cleft%3A0%2Cright%3A0%2Cheight%3Ah%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%2Cr.push%28%7Btop%3Ai-s%2Cleft%3A0%2Cright%3A0%2Cheight%3As%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%3Bfor%28let%20e%3D1%3Be%3Cr.length%3Be%2B%3D1%29%7Bconst%20n%3Dr%5Be%5D%2Ci%3Dr%5Be-1%5D%2Cs%3Di.top%2Bi.height%3Bif%28n.top-s%3E%3Dt.height%29return%20s%7Dconst%20p%3D%5B%5D%3Bfor%28let%20t%3D1%3Bt%3Cr.length-1%3Bt%2B%3D1%29%7Bconst%20e%3Dr%5Bt%5D%3Bif%28p.length%29%7Bconst%20t%3Dp%5Bp.length-1%5D%3Bt%5B0%5D.top%3D%3D%3De.top%3Ft.push%28e%29%3Ap.push%28%5Be%5D%29%7Delse%20p.push%28%5Be%5D%29%7Dif%28%21o%29%7Bswitch%28t.mode%29%7Bcase%200%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.min%28...e.map%28%28t%3D%3Et.right%29%29%29%2Ci%3DMath.min%28...t.map%28%28t%3D%3Et.right%29%29%29%3Breturn%20n%2ae.length-i%2at.length%7D%29%29%3Bbreak%3Bcase%201%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.max%28...e.map%28%28t%3D%3Et.width%29%29%29%3Breturn%20Math.max%28...t.map%28%28t%3D%3Et.width%29%29%29%2at.length-n%2ae.length%7D%29%29%7Dreturn%20p%5B0%5D%5B0%5D.top%7Dswitch%28t.mode%29%7Bcase%200%3A%7Bconst%20e%3Dp.find%28%28e%3D%3Ee.every%28%28e%3D%3E%7Bif%28n%3Ce.distance%29return%211%3Bif%28t.speed%3Ce.speed%29return%210%3Breturn%20e.right%2F%28t.speed-e.speed%29%3Ee.time%7D%29%29%29%29%3Breturn%20e%26%26e%5B0%5D%3Fe%5B0%5D.top%3Avoid%200%7Dcase%201%3Areturn%7D%7Donmessage%3Dt%3D%3E%7Bconst%7Bdata%3Ae%7D%3Dt%2Cn%3DgetDanmuTop%28e%29%3Bself.postMessage%28%7Btop%3An%2Cid%3Ae.id%7D%29%7D%3B"},{}]},["E13ST"],"E13ST"); \ No newline at end of file diff --git a/docs/uncompiled/artplayer-plugin-danmuku/index.js b/docs/uncompiled/artplayer-plugin-danmuku/index.js index d618568ee..7506dec80 100644 --- a/docs/uncompiled/artplayer-plugin-danmuku/index.js +++ b/docs/uncompiled/artplayer-plugin-danmuku/index.js @@ -278,7 +278,7 @@ class Danmuku { getReady() { const { currentTime } = this.art; return this.queue.filter((danmu)=>{ - return danmu.$state === 'ready' || danmu.$state === 'wait' && currentTime + 0.1 >= danmu.time && danmu.time >= currentTime - 0.1; + return danmu.$state === 'ready' || danmu.$state === 'wait' && currentTime + 0.2 >= danmu.time && danmu.time >= currentTime - 0.2; }); } getEmits() { @@ -505,7 +505,7 @@ class Danmuku { if (!danmu.text.trim()) return this; if (!this.option.filter(danmu)) return this; if (danmu.time) danmu.time = this.utils.clamp(danmu.time, 0, Infinity); - else danmu.time = this.art.currentTime + 0.5; + else danmu.time = this.art.currentTime + 1; this.queue.push({ mode: 0, ...danmu, @@ -519,7 +519,7 @@ class Danmuku { } exports.default = Danmuku; -},{"./bilibili":"6a8GK","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN","85d40535eae5f839":"cDlY2"}],"6a8GK":[function(require,module,exports) { +},{"./bilibili":"6a8GK","85d40535eae5f839":"cDlY2","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"6a8GK":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "getMode", ()=>getMode diff --git a/docs/uncompiled/artplayer-plugin-danmuku/index.js.map b/docs/uncompiled/artplayer-plugin-danmuku/index.js.map index e1648819c..99275dd88 100644 --- a/docs/uncompiled/artplayer-plugin-danmuku/index.js.map +++ b/docs/uncompiled/artplayer-plugin-danmuku/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["src/index.js","src/danmuku.js","src/bilibili.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5395621aae5f7f00.js"],"sourcesContent":["import Danmuku from './danmuku';\n\nexport default function artplayerPluginDanmuku(option) {\n return (art) => {\n const danmuku = new Danmuku(art, option);\n return {\n name: 'artplayerPluginDanmuku',\n emit: danmuku.emit.bind(danmuku),\n config: danmuku.config.bind(danmuku),\n hide: danmuku.hide.bind(danmuku),\n show: danmuku.show.bind(danmuku),\n get isHide() {\n return danmuku.isHide;\n },\n };\n };\n}\n\nwindow['artplayerPluginDanmuku'] = artplayerPluginDanmuku;\n","import { bilibiliDanmuParseFromUrl } from './bilibili';\n\nexport default class Danmuku {\n constructor(art, option) {\n const { constructor, template } = art;\n\n this.utils = constructor.utils;\n this.validator = constructor.validator;\n this.$danmuku = template.$danmuku;\n this.$player = template.$player;\n\n this.art = art;\n this.queue = [];\n this.option = {};\n this.$refs = [];\n this.isStop = false;\n this.isHide = false;\n this.timer = null;\n this.config(option);\n\n this.worker = new Worker(new URL('data-url:./worker.js', import.meta.url));\n\n art.on('video:play', this.start.bind(this));\n art.on('video:playing', this.start.bind(this));\n art.on('video:pause', this.stop.bind(this));\n art.on('video:waiting', this.stop.bind(this));\n art.on('fullscreen', this.reset.bind(this));\n art.on('fullscreenWeb', this.reset.bind(this));\n art.on('destroy', this.stop.bind(this));\n\n this.load();\n }\n\n static get option() {\n return {\n danmuku: [],\n speed: 5,\n margin: [10, 100],\n opacity: 1,\n fontSize: 25,\n filter: () => true,\n antiOverlap: true,\n synchronousPlayback: false,\n };\n }\n\n static get scheme() {\n return {\n danmuku: 'array|function|string',\n speed: 'number',\n margin: 'array',\n opacity: 'number',\n fontSize: 'number',\n filter: 'function',\n antiOverlap: 'boolean',\n synchronousPlayback: 'boolean',\n };\n }\n\n get isRotate() {\n return this.art.plugins.autoOrientation && this.art.plugins.autoOrientation.state;\n }\n\n get marginTop() {\n const { clamp } = this.utils;\n const { $player } = this.art.template;\n const value = this.option.margin[0];\n\n if (typeof value === 'number') {\n return clamp(value, 0, $player.clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp($player.clientHeight * ratio, 0, $player.clientHeight);\n }\n\n return Danmuku.option.margin[0];\n }\n\n get marginBottom() {\n const { clamp } = this.utils;\n const { $player } = this.art.template;\n const value = this.option.margin[1];\n\n if (typeof value === 'number') {\n return clamp(value, 0, $player.clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp($player.clientHeight * ratio, 0, $player.clientHeight);\n }\n\n return Danmuku.option.margin[1];\n }\n\n filter(state, callback) {\n return this.queue.filter((danmu) => danmu.$state === state).map(callback);\n }\n\n getLeft($ref) {\n const rect = $ref.getBoundingClientRect();\n return this.isRotate ? rect.top : rect.left;\n }\n\n getRef() {\n const $refCache = this.$refs.pop();\n if ($refCache) return $refCache;\n\n const $ref = document.createElement('div');\n\n $ref.style.cssText = `\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, \"Microsoft JhengHei\", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n `;\n\n return $ref;\n }\n\n getReady() {\n const { currentTime } = this.art;\n return this.queue.filter((danmu) => {\n return (\n danmu.$state === 'ready' ||\n (danmu.$state === 'wait' && currentTime + 0.1 >= danmu.time && danmu.time >= currentTime - 0.1)\n );\n });\n }\n\n getEmits() {\n const result = [];\n const { clientWidth } = this.$player;\n const clientLeft = this.getLeft(this.$player);\n\n this.filter('emit', (danmu) => {\n const top = danmu.$ref.offsetTop;\n const left = this.getLeft(danmu.$ref) - clientLeft;\n const height = danmu.$ref.clientHeight;\n const width = danmu.$ref.clientWidth;\n const distance = left + width;\n const right = clientWidth - distance;\n const speed = distance / danmu.$restTime;\n\n const emit = {};\n emit.top = top;\n emit.left = left;\n emit.height = height;\n emit.width = width;\n emit.right = right;\n emit.speed = speed;\n emit.distance = distance;\n emit.time = danmu.$restTime;\n emit.mode = danmu.mode;\n\n result.push(emit);\n });\n\n return result;\n }\n\n postMessage(message = {}) {\n return new Promise((resolve) => {\n message.id = Date.now();\n this.worker.postMessage(message);\n this.worker.onmessage = (event) => {\n const { data } = event;\n if (data.id === message.id) {\n resolve(data);\n }\n };\n });\n }\n\n async load() {\n try {\n let danmus = [];\n if (typeof this.option.danmuku === 'function') {\n danmus = await this.option.danmuku();\n } else if (typeof this.option.danmuku.then === 'function') {\n danmus = await this.option.danmuku;\n } else if (typeof this.option.danmuku === 'string') {\n danmus = await bilibiliDanmuParseFromUrl(this.option.danmuku);\n } else {\n danmus = this.option.danmuku;\n }\n\n this.utils.errorHandle(Array.isArray(danmus), 'Danmuku need return an array as result');\n this.art.emit('artplayerPluginDanmuku:loaded', danmus);\n\n this.queue = [];\n this.$danmuku.innerText = '';\n danmus.forEach((danmu) => this.emit(danmu));\n } catch (error) {\n this.art.emit('artplayerPluginDanmuku:error', error);\n throw error;\n }\n\n return this;\n }\n\n config(option) {\n const { clamp } = this.utils;\n\n this.option = Object.assign({}, Danmuku.option, this.option, option);\n this.validator(this.option, Danmuku.scheme);\n if (option.fontSize) this.reset();\n\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n this.option.fontSize = clamp(this.option.fontSize, 12, 100);\n\n this.art.emit('artplayerPluginDanmuku:config', this.option);\n\n return this;\n }\n\n makeWait(danmu) {\n danmu.$state = 'wait';\n if (danmu.$ref) {\n danmu.$ref.style.visibility = 'hidden';\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n\n continue() {\n const { clientWidth } = this.$player;\n this.filter('stop', (danmu) => {\n danmu.$state = 'emit';\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n case 0: {\n const translateX = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n suspend() {\n const { clientWidth } = this.$player;\n this.filter('emit', (danmu) => {\n danmu.$state = 'stop';\n switch (danmu.mode) {\n case 0: {\n const translateX = clientWidth - (this.getLeft(danmu.$ref) - this.getLeft(this.$player));\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n reset() {\n this.queue.forEach((danmu) => this.makeWait(danmu));\n }\n\n update() {\n const { clientWidth } = this.$player;\n\n this.timer = window.requestAnimationFrame(async () => {\n if (this.art.playing && !this.isHide) {\n this.filter('emit', (danmu) => {\n const emitTime = (Date.now() - danmu.$lastStartTime) / 1000;\n danmu.$restTime -= emitTime;\n danmu.$lastStartTime = Date.now();\n if (danmu.$restTime <= 0) {\n this.makeWait(danmu);\n }\n });\n\n const readys = this.getReady();\n for (let index = 0; index < readys.length; index++) {\n const danmu = readys[index];\n danmu.$ref = this.getRef();\n danmu.$ref.innerText = danmu.text;\n this.$danmuku.appendChild(danmu.$ref);\n\n danmu.$ref.style.left = `${clientWidth}px`;\n danmu.$ref.style.opacity = this.option.opacity;\n danmu.$ref.style.fontSize = `${this.option.fontSize}px`;\n danmu.$ref.style.color = danmu.color || '#fff';\n danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color || '#fff'}` : 'none';\n danmu.$ref.style.marginLeft = '0px';\n\n danmu.$lastStartTime = Date.now();\n danmu.$restTime =\n this.option.synchronousPlayback && this.art.playbackRate\n ? this.option.speed / Number(this.art.playbackRate)\n : this.option.speed;\n\n const target = {\n mode: danmu.mode,\n height: danmu.$ref.clientHeight,\n speed: (clientWidth + danmu.$ref.clientWidth) / danmu.$restTime,\n };\n\n const { top } = await this.postMessage({\n target,\n emits: this.getEmits(),\n antiOverlap: this.option.antiOverlap,\n clientWidth: this.$player.clientWidth,\n clientHeight: this.$player.clientHeight,\n marginBottom: this.marginBottom,\n marginTop: this.marginTop,\n });\n\n if (!this.isStop && top !== undefined) {\n danmu.$state = 'emit';\n danmu.$ref.style.visibility = 'visible';\n\n switch (danmu.mode) {\n case 0: {\n danmu.$ref.style.top = `${top}px`;\n const translateX = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n case 1:\n danmu.$ref.style.left = '50%';\n danmu.$ref.style.top = `${top}px`;\n danmu.$ref.style.marginLeft = `-${danmu.$ref.clientWidth / 2}px`;\n break;\n default:\n break;\n }\n } else {\n danmu.$state = 'ready';\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n }\n\n if (!this.isStop) {\n this.update();\n }\n });\n return this;\n }\n\n stop() {\n this.isStop = true;\n this.suspend();\n window.cancelAnimationFrame(this.timer);\n this.art.emit('artplayerPluginDanmuku:stop');\n return this;\n }\n\n start() {\n this.isStop = false;\n this.continue();\n this.update();\n this.art.emit('artplayerPluginDanmuku:start');\n return this;\n }\n\n show() {\n this.isHide = false;\n this.$danmuku.style.display = 'block';\n this.art.emit('artplayerPluginDanmuku:show');\n return this;\n }\n\n hide() {\n this.isHide = true;\n this.$danmuku.style.display = 'none';\n this.art.emit('artplayerPluginDanmuku:hide');\n return this;\n }\n\n emit(danmu) {\n this.validator(danmu, {\n text: 'string',\n mode: 'number|undefined',\n color: 'string|undefined',\n time: 'number|undefined',\n border: 'boolean|undefined',\n });\n\n if (!danmu.text.trim()) return this;\n if (!this.option.filter(danmu)) return this;\n\n if (danmu.time) {\n danmu.time = this.utils.clamp(danmu.time, 0, Infinity);\n } else {\n danmu.time = this.art.currentTime + 0.5;\n }\n\n this.queue.push({\n mode: 0,\n ...danmu,\n $state: 'wait',\n $ref: null,\n $restTime: 0,\n $lastStartTime: 0,\n });\n\n return this;\n }\n}\n","export function getMode(key) {\n switch (key) {\n case 1:\n case 2:\n case 3:\n return 0;\n case 4:\n case 5:\n return 1;\n default:\n return 0;\n }\n}\n\nexport function bilibiliDanmuParseFromXml(xmlString) {\n if (typeof xmlString !== 'string') return [];\n const srtList = xmlString.match(/[\\S ]*?)<\\/d>/gi);\n return srtList && srtList.length\n ? srtList.map((item) => {\n const [, attrStr, text] = item.match(/(.+)<\\/d>/);\n const attr = attrStr.split(',');\n return attr.length === 8 && text.trim()\n ? {\n text,\n time: Number(attr[0]),\n mode: getMode(Number(attr[1])),\n fontSize: Number(attr[2]),\n color: `#${Number(attr[3]).toString(16)}`,\n timestamp: Number(attr[4]),\n pool: Number(attr[5]),\n userID: attr[6],\n rowID: Number(attr[7]),\n }\n : null;\n })\n : [];\n}\n\nexport function bilibiliDanmuParseFromUrl(url) {\n return fetch(url)\n .then((res) => res.text())\n .then((xmlString) => bilibiliDanmuParseFromXml(xmlString));\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","module.exports = \"4eed92ff70f9a7c8\";"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../packages/artplayer-plugin-danmuku/"} \ No newline at end of file +{"mappings":"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","sources":["src/index.js","src/danmuku.js","src/bilibili.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5395621aae5f7f00.js"],"sourcesContent":["import Danmuku from './danmuku';\n\nexport default function artplayerPluginDanmuku(option) {\n return (art) => {\n const danmuku = new Danmuku(art, option);\n return {\n name: 'artplayerPluginDanmuku',\n emit: danmuku.emit.bind(danmuku),\n config: danmuku.config.bind(danmuku),\n hide: danmuku.hide.bind(danmuku),\n show: danmuku.show.bind(danmuku),\n get isHide() {\n return danmuku.isHide;\n },\n };\n };\n}\n\nwindow['artplayerPluginDanmuku'] = artplayerPluginDanmuku;\n","import { bilibiliDanmuParseFromUrl } from './bilibili';\n\nexport default class Danmuku {\n constructor(art, option) {\n const { constructor, template } = art;\n\n this.utils = constructor.utils;\n this.validator = constructor.validator;\n this.$danmuku = template.$danmuku;\n this.$player = template.$player;\n\n this.art = art;\n this.queue = [];\n this.option = {};\n this.$refs = [];\n this.isStop = false;\n this.isHide = false;\n this.timer = null;\n this.config(option);\n\n this.worker = new Worker(new URL('data-url:./worker.js', import.meta.url));\n\n art.on('video:play', this.start.bind(this));\n art.on('video:playing', this.start.bind(this));\n art.on('video:pause', this.stop.bind(this));\n art.on('video:waiting', this.stop.bind(this));\n art.on('fullscreen', this.reset.bind(this));\n art.on('fullscreenWeb', this.reset.bind(this));\n art.on('destroy', this.stop.bind(this));\n\n this.load();\n }\n\n static get option() {\n return {\n danmuku: [],\n speed: 5,\n margin: [10, 100],\n opacity: 1,\n fontSize: 25,\n filter: () => true,\n antiOverlap: true,\n synchronousPlayback: false,\n };\n }\n\n static get scheme() {\n return {\n danmuku: 'array|function|string',\n speed: 'number',\n margin: 'array',\n opacity: 'number',\n fontSize: 'number',\n filter: 'function',\n antiOverlap: 'boolean',\n synchronousPlayback: 'boolean',\n };\n }\n\n get isRotate() {\n return this.art.plugins.autoOrientation && this.art.plugins.autoOrientation.state;\n }\n\n get marginTop() {\n const { clamp } = this.utils;\n const { $player } = this.art.template;\n const value = this.option.margin[0];\n\n if (typeof value === 'number') {\n return clamp(value, 0, $player.clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp($player.clientHeight * ratio, 0, $player.clientHeight);\n }\n\n return Danmuku.option.margin[0];\n }\n\n get marginBottom() {\n const { clamp } = this.utils;\n const { $player } = this.art.template;\n const value = this.option.margin[1];\n\n if (typeof value === 'number') {\n return clamp(value, 0, $player.clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp($player.clientHeight * ratio, 0, $player.clientHeight);\n }\n\n return Danmuku.option.margin[1];\n }\n\n filter(state, callback) {\n return this.queue.filter((danmu) => danmu.$state === state).map(callback);\n }\n\n getLeft($ref) {\n const rect = $ref.getBoundingClientRect();\n return this.isRotate ? rect.top : rect.left;\n }\n\n getRef() {\n const $refCache = this.$refs.pop();\n if ($refCache) return $refCache;\n\n const $ref = document.createElement('div');\n\n $ref.style.cssText = `\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, \"Microsoft JhengHei\", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n `;\n\n return $ref;\n }\n\n getReady() {\n const { currentTime } = this.art;\n return this.queue.filter((danmu) => {\n return (\n danmu.$state === 'ready' ||\n (danmu.$state === 'wait' && currentTime + 0.2 >= danmu.time && danmu.time >= currentTime - 0.2)\n );\n });\n }\n\n getEmits() {\n const result = [];\n const { clientWidth } = this.$player;\n const clientLeft = this.getLeft(this.$player);\n\n this.filter('emit', (danmu) => {\n const top = danmu.$ref.offsetTop;\n const left = this.getLeft(danmu.$ref) - clientLeft;\n const height = danmu.$ref.clientHeight;\n const width = danmu.$ref.clientWidth;\n const distance = left + width;\n const right = clientWidth - distance;\n const speed = distance / danmu.$restTime;\n\n const emit = {};\n emit.top = top;\n emit.left = left;\n emit.height = height;\n emit.width = width;\n emit.right = right;\n emit.speed = speed;\n emit.distance = distance;\n emit.time = danmu.$restTime;\n emit.mode = danmu.mode;\n\n result.push(emit);\n });\n\n return result;\n }\n\n postMessage(message = {}) {\n return new Promise((resolve) => {\n message.id = Date.now();\n this.worker.postMessage(message);\n this.worker.onmessage = (event) => {\n const { data } = event;\n if (data.id === message.id) {\n resolve(data);\n }\n };\n });\n }\n\n async load() {\n try {\n let danmus = [];\n if (typeof this.option.danmuku === 'function') {\n danmus = await this.option.danmuku();\n } else if (typeof this.option.danmuku.then === 'function') {\n danmus = await this.option.danmuku;\n } else if (typeof this.option.danmuku === 'string') {\n danmus = await bilibiliDanmuParseFromUrl(this.option.danmuku);\n } else {\n danmus = this.option.danmuku;\n }\n\n this.utils.errorHandle(Array.isArray(danmus), 'Danmuku need return an array as result');\n this.art.emit('artplayerPluginDanmuku:loaded', danmus);\n\n this.queue = [];\n this.$danmuku.innerText = '';\n danmus.forEach((danmu) => this.emit(danmu));\n } catch (error) {\n this.art.emit('artplayerPluginDanmuku:error', error);\n throw error;\n }\n\n return this;\n }\n\n config(option) {\n const { clamp } = this.utils;\n\n this.option = Object.assign({}, Danmuku.option, this.option, option);\n this.validator(this.option, Danmuku.scheme);\n if (option.fontSize) this.reset();\n\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n this.option.fontSize = clamp(this.option.fontSize, 12, 100);\n\n this.art.emit('artplayerPluginDanmuku:config', this.option);\n\n return this;\n }\n\n makeWait(danmu) {\n danmu.$state = 'wait';\n if (danmu.$ref) {\n danmu.$ref.style.visibility = 'hidden';\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n\n continue() {\n const { clientWidth } = this.$player;\n this.filter('stop', (danmu) => {\n danmu.$state = 'emit';\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n case 0: {\n const translateX = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n suspend() {\n const { clientWidth } = this.$player;\n this.filter('emit', (danmu) => {\n danmu.$state = 'stop';\n switch (danmu.mode) {\n case 0: {\n const translateX = clientWidth - (this.getLeft(danmu.$ref) - this.getLeft(this.$player));\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n reset() {\n this.queue.forEach((danmu) => this.makeWait(danmu));\n }\n\n update() {\n const { clientWidth } = this.$player;\n\n this.timer = window.requestAnimationFrame(async () => {\n if (this.art.playing && !this.isHide) {\n this.filter('emit', (danmu) => {\n const emitTime = (Date.now() - danmu.$lastStartTime) / 1000;\n danmu.$restTime -= emitTime;\n danmu.$lastStartTime = Date.now();\n if (danmu.$restTime <= 0) {\n this.makeWait(danmu);\n }\n });\n\n const readys = this.getReady();\n for (let index = 0; index < readys.length; index++) {\n const danmu = readys[index];\n danmu.$ref = this.getRef();\n danmu.$ref.innerText = danmu.text;\n this.$danmuku.appendChild(danmu.$ref);\n\n danmu.$ref.style.left = `${clientWidth}px`;\n danmu.$ref.style.opacity = this.option.opacity;\n danmu.$ref.style.fontSize = `${this.option.fontSize}px`;\n danmu.$ref.style.color = danmu.color || '#fff';\n danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color || '#fff'}` : 'none';\n danmu.$ref.style.marginLeft = '0px';\n\n danmu.$lastStartTime = Date.now();\n danmu.$restTime =\n this.option.synchronousPlayback && this.art.playbackRate\n ? this.option.speed / Number(this.art.playbackRate)\n : this.option.speed;\n\n const target = {\n mode: danmu.mode,\n height: danmu.$ref.clientHeight,\n speed: (clientWidth + danmu.$ref.clientWidth) / danmu.$restTime,\n };\n\n const { top } = await this.postMessage({\n target,\n emits: this.getEmits(),\n antiOverlap: this.option.antiOverlap,\n clientWidth: this.$player.clientWidth,\n clientHeight: this.$player.clientHeight,\n marginBottom: this.marginBottom,\n marginTop: this.marginTop,\n });\n\n if (!this.isStop && top !== undefined) {\n danmu.$state = 'emit';\n danmu.$ref.style.visibility = 'visible';\n\n switch (danmu.mode) {\n case 0: {\n danmu.$ref.style.top = `${top}px`;\n const translateX = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n case 1:\n danmu.$ref.style.left = '50%';\n danmu.$ref.style.top = `${top}px`;\n danmu.$ref.style.marginLeft = `-${danmu.$ref.clientWidth / 2}px`;\n break;\n default:\n break;\n }\n } else {\n danmu.$state = 'ready';\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n }\n\n if (!this.isStop) {\n this.update();\n }\n });\n return this;\n }\n\n stop() {\n this.isStop = true;\n this.suspend();\n window.cancelAnimationFrame(this.timer);\n this.art.emit('artplayerPluginDanmuku:stop');\n return this;\n }\n\n start() {\n this.isStop = false;\n this.continue();\n this.update();\n this.art.emit('artplayerPluginDanmuku:start');\n return this;\n }\n\n show() {\n this.isHide = false;\n this.$danmuku.style.display = 'block';\n this.art.emit('artplayerPluginDanmuku:show');\n return this;\n }\n\n hide() {\n this.isHide = true;\n this.$danmuku.style.display = 'none';\n this.art.emit('artplayerPluginDanmuku:hide');\n return this;\n }\n\n emit(danmu) {\n this.validator(danmu, {\n text: 'string',\n mode: 'number|undefined',\n color: 'string|undefined',\n time: 'number|undefined',\n border: 'boolean|undefined',\n });\n\n if (!danmu.text.trim()) return this;\n if (!this.option.filter(danmu)) return this;\n\n if (danmu.time) {\n danmu.time = this.utils.clamp(danmu.time, 0, Infinity);\n } else {\n danmu.time = this.art.currentTime + 1;\n }\n\n this.queue.push({\n mode: 0,\n ...danmu,\n $state: 'wait',\n $ref: null,\n $restTime: 0,\n $lastStartTime: 0,\n });\n\n return this;\n }\n}\n","export function getMode(key) {\n switch (key) {\n case 1:\n case 2:\n case 3:\n return 0;\n case 4:\n case 5:\n return 1;\n default:\n return 0;\n }\n}\n\nexport function bilibiliDanmuParseFromXml(xmlString) {\n if (typeof xmlString !== 'string') return [];\n const srtList = xmlString.match(/[\\S ]*?)<\\/d>/gi);\n return srtList && srtList.length\n ? srtList.map((item) => {\n const [, attrStr, text] = item.match(/(.+)<\\/d>/);\n const attr = attrStr.split(',');\n return attr.length === 8 && text.trim()\n ? {\n text,\n time: Number(attr[0]),\n mode: getMode(Number(attr[1])),\n fontSize: Number(attr[2]),\n color: `#${Number(attr[3]).toString(16)}`,\n timestamp: Number(attr[4]),\n pool: Number(attr[5]),\n userID: attr[6],\n rowID: Number(attr[7]),\n }\n : null;\n })\n : [];\n}\n\nexport function bilibiliDanmuParseFromUrl(url) {\n return fetch(url)\n .then((res) => res.text())\n .then((xmlString) => bilibiliDanmuParseFromXml(xmlString));\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","module.exports = \"4eed92ff70f9a7c8\";"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../packages/artplayer-plugin-danmuku/"} \ No newline at end of file diff --git a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js index f6ae0c1fb..4642a7869 100644 --- a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js +++ b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js @@ -1,7 +1,7 @@ /*! - * artplayer-plugin-danmuku.js v4.3.16 + * artplayer-plugin-danmuku.js v4.3.17 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2022 Harvey Zack * Released under the MIT License. */ -!function(t,e,i,r,n){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof s.parcelRequire93cf&&s.parcelRequire93cf,a=o.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(e,i){if(!a[e]){if(!t[e]){var r="function"==typeof s.parcelRequire93cf&&s.parcelRequire93cf;if(!i&&r)return r(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}p.resolve=function(i){var r=t[e][1][i];return null!=r?r:i},p.cache={};var h=a[e]=new u.Module(e);t[e][0].call(h.exports,p,h,h.exports,this)}return a[e].exports;function p(t){var e=p.resolve(t);return!1===e?{}:u(e)}}u.isParcelRequire=!0,u.Module=function(t){this.id=t,this.bundle=u,this.exports={}},u.modules=t,u.cache=a,u.parent=o,u.register=function(e,i){t[e]=[function(t,e){e.exports=i},{}]},Object.defineProperty(u,"root",{get:function(){return s.parcelRequire93cf}}),s.parcelRequire93cf=u;for(var h=0;h{const i=new s.default(e,t);return{name:"artplayerPluginDanmuku",emit:i.emit.bind(i),config:i.config.bind(i),hide:i.hide.bind(i),show:i.show.bind(i),get isHide(){return i.isHide}}}}i.default=o,window.artplayerPluginDanmuku=o},{"./danmuku":"8Gtnh","@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}],"8Gtnh":[function(t,e,i){var r=t("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(i);var n=t("./bilibili"),s=t("./getDanmuTop"),o=r.interopDefault(s);class a{constructor(t,e){this.art=t,this.utils=t.constructor.utils,this.validator=t.constructor.validator,this.queue=[],this.option={},this.$refs=[],this.config(e),this.isStop=!1,this.isHide=!1,this.animationFrameTimer=null,this.$danmuku=t.template.$danmuku,this.$player=t.template.$player,t.on("video:play",this.start.bind(this)),t.on("video:playing",this.start.bind(this)),t.on("video:pause",this.stop.bind(this)),t.on("video:waiting",this.stop.bind(this)),t.on("resize",this.resize.bind(this)),t.on("destroy",this.stop.bind(this)),t.on("fullscreen",this.reset.bind(this)),t.on("fullscreenWeb",this.reset.bind(this)),this.load()}static get option(){return{danmuku:[],speed:5,margin:[10,100],opacity:1,fontSize:25,filter:()=>!0,antiOverlap:!0,synchronousPlayback:!1}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",fontSize:"number",filter:"function",antiOverlap:"boolean",synchronousPlayback:"boolean"}}get isRotate(){return this.art.plugins.autoOrientation&&this.art.plugins.autoOrientation.state}get marginTop(){const{clamp:t}=this.utils,{$player:e}=this.art.template,i=this.option.margin[0];if("number"==typeof i)return t(i,0,e.clientHeight);if("string"==typeof i&&i.endsWith("%")){const r=parseFloat(i)/100;return t(e.clientHeight*r,0,e.clientHeight)}return a.option.margin[0]}get marginBottom(){const{clamp:t}=this.utils,{$player:e}=this.art.template,i=this.option.margin[1];if("number"==typeof i)return t(i,0,e.clientHeight);if("string"==typeof i&&i.endsWith("%")){const r=parseFloat(i)/100;return t(e.clientHeight*r,0,e.clientHeight)}return a.option.margin[1]}filter(t,e){return this.queue.filter((e=>e.$state===t)).map(e)}getLeft(t){const e=t.getBoundingClientRect();return this.isRotate?e.top:e.left}getRef(){const t=this.$refs.pop();if(t)return t;const e=document.createElement("div");return e.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.1>=e.time&&e.time>=t-.1))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await n.bilibiliDanmuParseFromUrl(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},a.option,this.option,t),this.validator(this.option,a.scheme),t.fontSize&&this.reset(),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.fontSize=e(this.option.fontSize,12,100),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const i=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-i}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const i=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-i}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}resize(){return this}reset(){this.queue.forEach((t=>this.makeWait(t)))}update(){const{clientWidth:t}=this.$player;return this.animationFrameTimer=window.requestAnimationFrame((()=>{this.art.playing&&!this.isHide&&(this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)})),this.getReady().forEach((e=>{e.$ref=this.getRef(),e.$ref.innerText=e.text,this.$danmuku.appendChild(e.$ref),e.$ref.style.left=`${t}px`,e.$ref.style.opacity=this.option.opacity,e.$ref.style.fontSize=`${this.option.fontSize}px`,e.$ref.style.color=e.color||"#fff",e.$ref.style.border=e.border?`1px solid ${e.color||"#fff"}`:"none",e.$ref.style.marginLeft="0px",e.$lastStartTime=Date.now(),e.$restTime=this.option.synchronousPlayback&&this.art.playbackRate?this.option.speed/Number(this.art.playbackRate):this.option.speed;const i=o.default(this,e);if(void 0!==i)switch(e.$state="emit",e.$ref.style.visibility="visible",e.mode){case 0:{e.$ref.style.top=`${i}px`;const r=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-r}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}case 1:e.$ref.style.left="50%",e.$ref.style.top=`${i}px`,e.$ref.style.marginLeft=`-${e.$ref.clientWidth/2}px`}else e.$state="ready",this.$refs.push(e.$ref),e.$ref=null}))),this.isStop||this.update()})),this}stop(){return this.isStop=!0,this.suspend(),window.cancelAnimationFrame(this.animationFrameTimer),this.art.emit("artplayerPluginDanmuku:stop"),this}start(){return this.isStop=!1,this.continue(),this.update(),this.art.emit("artplayerPluginDanmuku:start"),this}show(){return this.isHide=!1,this.$danmuku.style.display="block",this.art.emit("artplayerPluginDanmuku:show"),this}hide(){return this.isHide=!0,this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}emit(t){return this.validator(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()&&this.option.filter(t)?(t.time?t.time=this.utils.clamp(t.time,0,1/0):t.time=this.art.currentTime+.5,this.queue.push({mode:0,...t,$state:"wait",$ref:null,$restTime:0,$lastStartTime:0}),this):this}}i.default=a},{"./bilibili":"KnwDr","./getDanmuTop":"2Abxf","@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}],KnwDr:[function(t,e,i){var r=t("@parcel/transformer-js/src/esmodule-helpers.js");function n(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function s(t){if("string"!=typeof t)return[];const e=t.match(/[\S ]*?)<\/d>/gi);return e&&e.length?e.map((t=>{const[,e,i]=t.match(/(.+)<\/d>/),r=e.split(",");return 8===r.length&&i.trim()?{text:i,time:Number(r[0]),mode:n(Number(r[1])),fontSize:Number(r[2]),color:`#${Number(r[3]).toString(16)}`,timestamp:Number(r[4]),pool:Number(r[5]),userID:r[6],rowID:Number(r[7])}:null})):[]}function o(t){return fetch(t).then((t=>t.text())).then((t=>s(t)))}r.defineInteropFlag(i),r.export(i,"getMode",(()=>n)),r.export(i,"bilibiliDanmuParseFromXml",(()=>s)),r.export(i,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}],b7MJY:[function(t,e,i){i.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},i.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},i.exportAll=function(t,e){return Object.keys(t).forEach((function(i){"default"===i||"__esModule"===i||e.hasOwnProperty(i)||Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[i]}})})),e},i.export=function(t,e,i){Object.defineProperty(t,e,{enumerable:!0,get:i})}},{}],"2Abxf":[function(t,e,i){function r(t,e,i,r){const n=r.$ref.offsetTop,s=t.getLeft(r.$ref)-e,o=r.$ref.clientHeight,a=r.$ref.clientWidth,l=s+a,u=i-l,h=l/r.$restTime,p=r.mode,f=r.$restTime;return{$ref:r.$ref,mode:p,time:f,top:n,left:s,height:o,width:a,right:u,speed:h,distance:l}}t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(i),i.default=function(t,e){const i=t.getLeft(t.$player),{clientWidth:n,clientHeight:s}=t.$player,{antiOverlap:o}=t.option,{marginBottom:a,marginTop:l}=t,u=r(t,i,n,e),h=t.queue.filter((t=>t.$ref&&"emit"===t.$state&&t.mode===u.mode&&t.$ref.offsetTop<=s-a)).map((e=>r(t,i,n,e))).sort(((t,e)=>t.top-e.top));if(0===h.length)return l;h.unshift({top:0,left:0,right:0,height:l,width:n,speed:0,distance:n}),h.push({top:s-a,left:0,right:0,height:a,width:n,speed:0,distance:n});for(let t=1;t=u.height)return r}const p=[];for(let t=1;t{const i=Math.min(...e.map((t=>t.right))),r=Math.min(...t.map((t=>t.right)));return i*e.length-r*t.length}));break;case 1:p.sort(((t,e)=>{const i=Math.max(...e.map((t=>t.width)));return Math.max(...t.map((t=>t.width)))*t.length-i*e.length}))}return p[0][0].top}switch(u.mode){case 0:{const t=p.find((t=>t.every((t=>{if(nt.time}))));return t&&t[0]?t[0].top:void 0}case 1:return}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}]},["E13ST"],"E13ST"); \ No newline at end of file +!function(t,e,i,n,r){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof s.parcelRequire93cf&&s.parcelRequire93cf,a=o.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(e,i){if(!a[e]){if(!t[e]){var n="function"==typeof s.parcelRequire93cf&&s.parcelRequire93cf;if(!i&&n)return n(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}p.resolve=function(i){var n=t[e][1][i];return null!=n?n:i},p.cache={};var h=a[e]=new u.Module(e);t[e][0].call(h.exports,p,h,h.exports,this)}return a[e].exports;function p(t){var e=p.resolve(t);return!1===e?{}:u(e)}}u.isParcelRequire=!0,u.Module=function(t){this.id=t,this.bundle=u,this.exports={}},u.modules=t,u.cache=a,u.parent=o,u.register=function(e,i){t[e]=[function(t,e){e.exports=i},{}]},Object.defineProperty(u,"root",{get:function(){return s.parcelRequire93cf}}),s.parcelRequire93cf=u;for(var h=0;h{const i=new s.default(e,t);return{name:"artplayerPluginDanmuku",emit:i.emit.bind(i),config:i.config.bind(i),hide:i.hide.bind(i),show:i.show.bind(i),get isHide(){return i.isHide}}}}i.default=o,window.artplayerPluginDanmuku=o},{"./danmuku":"8Gtnh","@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}],"8Gtnh":[function(t,e,i){t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(i);var n=t("./bilibili");class r{constructor(e,i){const{constructor:n,template:r}=e;this.utils=n.utils,this.validator=n.validator,this.$danmuku=r.$danmuku,this.$player=r.$player,this.art=e,this.queue=[],this.option={},this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.config(i),this.worker=new Worker(t("85d40535eae5f839")),e.on("video:play",this.start.bind(this)),e.on("video:playing",this.start.bind(this)),e.on("video:pause",this.stop.bind(this)),e.on("video:waiting",this.stop.bind(this)),e.on("fullscreen",this.reset.bind(this)),e.on("fullscreenWeb",this.reset.bind(this)),e.on("destroy",this.stop.bind(this)),this.load()}static get option(){return{danmuku:[],speed:5,margin:[10,100],opacity:1,fontSize:25,filter:()=>!0,antiOverlap:!0,synchronousPlayback:!1}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",fontSize:"number",filter:"function",antiOverlap:"boolean",synchronousPlayback:"boolean"}}get isRotate(){return this.art.plugins.autoOrientation&&this.art.plugins.autoOrientation.state}get marginTop(){const{clamp:t}=this.utils,{$player:e}=this.art.template,i=this.option.margin[0];if("number"==typeof i)return t(i,0,e.clientHeight);if("string"==typeof i&&i.endsWith("%")){const n=parseFloat(i)/100;return t(e.clientHeight*n,0,e.clientHeight)}return r.option.margin[0]}get marginBottom(){const{clamp:t}=this.utils,{$player:e}=this.art.template,i=this.option.margin[1];if("number"==typeof i)return t(i,0,e.clientHeight);if("string"==typeof i&&i.endsWith("%")){const n=parseFloat(i)/100;return t(e.clientHeight*n,0,e.clientHeight)}return r.option.margin[1]}filter(t,e){return this.queue.filter((e=>e.$state===t)).map(e)}getLeft(t){const e=t.getBoundingClientRect();return this.isRotate?e.top:e.left}getRef(){const t=this.$refs.pop();if(t)return t;const e=document.createElement("div");return e.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}getReady(){const{currentTime:t}=this.art;return this.queue.filter((e=>"ready"===e.$state||"wait"===e.$state&&t+.2>=e.time&&e.time>=t-.2))}getEmits(){const t=[],{clientWidth:e}=this.$player,i=this.getLeft(this.$player);return this.filter("emit",(n=>{const r=n.$ref.offsetTop,s=this.getLeft(n.$ref)-i,o=n.$ref.clientHeight,a=n.$ref.clientWidth,l=s+a,u=e-l,h=l/n.$restTime,p={};p.top=r,p.left=s,p.height=o,p.width=a,p.right=u,p.speed=h,p.distance=l,p.time=n.$restTime,p.mode=n.mode,t.push(p)})),t}postMessage(t={}){return new Promise((e=>{t.id=Date.now(),this.worker.postMessage(t),this.worker.onmessage=i=>{const{data:n}=i;n.id===t.id&&e(n)}}))}async load(){try{let t=[];t="function"==typeof this.option.danmuku?await this.option.danmuku():"function"==typeof this.option.danmuku.then?await this.option.danmuku:"string"==typeof this.option.danmuku?await n.bilibiliDanmuParseFromUrl(this.option.danmuku):this.option.danmuku,this.utils.errorHandle(Array.isArray(t),"Danmuku need return an array as result"),this.art.emit("artplayerPluginDanmuku:loaded",t),this.queue=[],this.$danmuku.innerText="",t.forEach((t=>this.emit(t)))}catch(t){throw this.art.emit("artplayerPluginDanmuku:error",t),t}return this}config(t){const{clamp:e}=this.utils;return this.option=Object.assign({},r.option,this.option,t),this.validator(this.option,r.scheme),t.fontSize&&this.reset(),this.option.speed=e(this.option.speed,1,10),this.option.opacity=e(this.option.opacity,0,1),this.option.fontSize=e(this.option.fontSize,12,100),this.art.emit("artplayerPluginDanmuku:config",this.option),this}makeWait(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}continue(){const{clientWidth:t}=this.$player;return this.filter("stop",(e=>{switch(e.$state="emit",e.$lastStartTime=Date.now(),e.mode){case 0:{const i=t+e.$ref.clientWidth;e.$ref.style.transform=`translateX(${-i}px)`,e.$ref.style.transition=`transform ${e.$restTime}s linear 0s`;break}}})),this}suspend(){const{clientWidth:t}=this.$player;return this.filter("emit",(e=>{switch(e.$state="stop",e.mode){case 0:{const i=t-(this.getLeft(e.$ref)-this.getLeft(this.$player));e.$ref.style.transform=`translateX(${-i}px)`,e.$ref.style.transition="transform 0s linear 0s";break}}})),this}reset(){this.queue.forEach((t=>this.makeWait(t)))}update(){const{clientWidth:t}=this.$player;return this.timer=window.requestAnimationFrame((async()=>{if(this.art.playing&&!this.isHide){this.filter("emit",(t=>{const e=(Date.now()-t.$lastStartTime)/1e3;t.$restTime-=e,t.$lastStartTime=Date.now(),t.$restTime<=0&&this.makeWait(t)}));const e=this.getReady();for(let i=0;i[\S ]*?)<\/d>/gi);return e&&e.length?e.map((t=>{const[,e,i]=t.match(/(.+)<\/d>/),n=e.split(",");return 8===n.length&&i.trim()?{text:i,time:Number(n[0]),mode:r(Number(n[1])),fontSize:Number(n[2]),color:`#${Number(n[3]).toString(16)}`,timestamp:Number(n[4]),pool:Number(n[5]),userID:n[6],rowID:Number(n[7])}:null})):[]}function o(t){return fetch(t).then((t=>t.text())).then((t=>s(t)))}n.defineInteropFlag(i),n.export(i,"getMode",(()=>r)),n.export(i,"bilibiliDanmuParseFromXml",(()=>s)),n.export(i,"bilibiliDanmuParseFromUrl",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"b7MJY"}],b7MJY:[function(t,e,i){i.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},i.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},i.exportAll=function(t,e){return Object.keys(t).forEach((function(i){"default"===i||"__esModule"===i||e.hasOwnProperty(i)||Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[i]}})})),e},i.export=function(t,e,i){Object.defineProperty(t,e,{enumerable:!0,get:i})}},{}],"5sXKb":[function(t,e,i){e.exports="data:application/javascript,function%20getDanmuTop%28%7Btarget%3At%2Cemits%3Ae%2CclientWidth%3An%2CclientHeight%3Ai%2CmarginBottom%3As%2CmarginTop%3Ah%2CantiOverlap%3Ao%7D%29%7Bconst%20r%3De.filter%28%28e%3D%3Ee.mode%3D%3D%3Dt.mode%26%26e.top%3C%3Di-s%29%29.sort%28%28%28t%2Ce%29%3D%3Et.top-e.top%29%29%3Bif%280%3D%3D%3Dr.length%29return%20h%3Br.unshift%28%7Btop%3A0%2Cleft%3A0%2Cright%3A0%2Cheight%3Ah%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%2Cr.push%28%7Btop%3Ai-s%2Cleft%3A0%2Cright%3A0%2Cheight%3As%2Cwidth%3An%2Cspeed%3A0%2Cdistance%3An%7D%29%3Bfor%28let%20e%3D1%3Be%3Cr.length%3Be%2B%3D1%29%7Bconst%20n%3Dr%5Be%5D%2Ci%3Dr%5Be-1%5D%2Cs%3Di.top%2Bi.height%3Bif%28n.top-s%3E%3Dt.height%29return%20s%7Dconst%20p%3D%5B%5D%3Bfor%28let%20t%3D1%3Bt%3Cr.length-1%3Bt%2B%3D1%29%7Bconst%20e%3Dr%5Bt%5D%3Bif%28p.length%29%7Bconst%20t%3Dp%5Bp.length-1%5D%3Bt%5B0%5D.top%3D%3D%3De.top%3Ft.push%28e%29%3Ap.push%28%5Be%5D%29%7Delse%20p.push%28%5Be%5D%29%7Dif%28%21o%29%7Bswitch%28t.mode%29%7Bcase%200%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.min%28...e.map%28%28t%3D%3Et.right%29%29%29%2Ci%3DMath.min%28...t.map%28%28t%3D%3Et.right%29%29%29%3Breturn%20n%2ae.length-i%2at.length%7D%29%29%3Bbreak%3Bcase%201%3Ap.sort%28%28%28t%2Ce%29%3D%3E%7Bconst%20n%3DMath.max%28...e.map%28%28t%3D%3Et.width%29%29%29%3Breturn%20Math.max%28...t.map%28%28t%3D%3Et.width%29%29%29%2at.length-n%2ae.length%7D%29%29%7Dreturn%20p%5B0%5D%5B0%5D.top%7Dswitch%28t.mode%29%7Bcase%200%3A%7Bconst%20e%3Dp.find%28%28e%3D%3Ee.every%28%28e%3D%3E%7Bif%28n%3Ce.distance%29return%211%3Bif%28t.speed%3Ce.speed%29return%210%3Breturn%20e.right%2F%28t.speed-e.speed%29%3Ee.time%7D%29%29%29%29%3Breturn%20e%26%26e%5B0%5D%3Fe%5B0%5D.top%3Avoid%200%7Dcase%201%3Areturn%7D%7Donmessage%3Dt%3D%3E%7Bconst%7Bdata%3Ae%7D%3Dt%2Cn%3DgetDanmuTop%28e%29%3Bself.postMessage%28%7Btop%3An%2Cid%3Ae.id%7D%29%7D%3B"},{}]},["E13ST"],"E13ST"); \ No newline at end of file diff --git a/packages/artplayer-plugin-danmuku/package.json b/packages/artplayer-plugin-danmuku/package.json index f01629959..20cedb39b 100644 --- a/packages/artplayer-plugin-danmuku/package.json +++ b/packages/artplayer-plugin-danmuku/package.json @@ -1,6 +1,6 @@ { "license": "MIT", - "version": "4.3.16", + "version": "4.3.17", "name": "artplayer-plugin-danmuku", "description": "Danmuku plugin for ArtPlayer", "main": "dist/artplayer-plugin-danmuku.js", diff --git a/packages/artplayer-plugin-danmuku/src/danmuku.js b/packages/artplayer-plugin-danmuku/src/danmuku.js index ec4e6d8fd..37aa5ca5a 100644 --- a/packages/artplayer-plugin-danmuku/src/danmuku.js +++ b/packages/artplayer-plugin-danmuku/src/danmuku.js @@ -133,7 +133,7 @@ export default class Danmuku { return this.queue.filter((danmu) => { return ( danmu.$state === 'ready' || - (danmu.$state === 'wait' && currentTime + 0.1 >= danmu.time && danmu.time >= currentTime - 0.1) + (danmu.$state === 'wait' && currentTime + 0.2 >= danmu.time && danmu.time >= currentTime - 0.2) ); }); } @@ -410,7 +410,7 @@ export default class Danmuku { if (danmu.time) { danmu.time = this.utils.clamp(danmu.time, 0, Infinity); } else { - danmu.time = this.art.currentTime + 0.5; + danmu.time = this.art.currentTime + 1; } this.queue.push({