From 8bcc020627540a0a9e5daf75a792acbeb3035d4f Mon Sep 17 00:00:00 2001 From: Harvey Date: Sat, 14 May 2022 11:37:56 +0800 Subject: [PATCH] add danmuku colors --- docs/assets/example/danmuku.js | 46 ++++++++++++- .../artplayer-plugin-danmuku/index.js | 68 ++++++++++++++----- .../artplayer-plugin-danmuku/index.js.map | 2 +- .../docs/en/Plugins/danmuku.mdx | 18 ++--- .../docs/zh-cn/Plugins/danmuku.mdx | 8 ++- .../artplayer-plugin-danmuku/src/danmuku.js | 11 ++- .../artplayer-plugin-danmuku/src/setting.js | 37 +++++++++- .../artplayer-plugin-danmuku/src/style.less | 40 +++++++++-- 8 files changed, 191 insertions(+), 39 deletions(-) diff --git a/docs/assets/example/danmuku.js b/docs/assets/example/danmuku.js index 28920bdd6..bb58d3041 100644 --- a/docs/assets/example/danmuku.js +++ b/docs/assets/example/danmuku.js @@ -1,4 +1,4 @@ -// 使用文档 +// 使用说明 // https://artplayer.org/document/zh-cn/Plugins/danmuku var art = new Artplayer({ @@ -17,6 +17,8 @@ var art = new Artplayer({ speed: 5, // 弹幕持续时间,单位秒,范围在[1 ~ 10] opacity: 1, // 弹幕透明度,范围在[0 ~ 1] fontSize: 25, // 字体大小,支持数字和百分比 + color: '#FFFFFF', // 默认字体颜色 + mode: 0, // 默认模式,0-滚动,1-静止 margin: ['2%', 60], // 弹幕上下边距,支持数字和百分比 antiOverlap: true, // 是否防重叠 useWorker: true, // 是否使用 web worker @@ -28,5 +30,45 @@ var art = new Artplayer({ // 监听手动输入的弹幕,保存到数据库 art.on('artplayerPluginDanmuku:emit', (danmu) => { - console.info(danmu); + console.info('新增弹幕', danmu); +}); + +// 监听加载到的弹幕数组 +art.on('artplayerPluginDanmuku:loaded', (danmus) => { + console.info('加载弹幕', danmus.length); +}); + +// 监听加载到弹幕的错误 +art.on('artplayerPluginDanmuku:error', (error) => { + console.info('加载错误', error); +}); + +// 监听弹幕配置变化 +art.on('artplayerPluginDanmuku:config', (option) => { + console.info('配置变化', option); +}); + +// 监听弹幕停止 +art.on('artplayerPluginDanmuku:stop', () => { + console.info('弹幕停止'); +}); + +// 监听弹幕开始 +art.on('artplayerPluginDanmuku:start', () => { + console.info('弹幕开始'); +}); + +// 监听弹幕隐藏 +art.on('artplayerPluginDanmuku:hide', () => { + console.info('弹幕隐藏'); +}); + +// 监听弹幕显示 +art.on('artplayerPluginDanmuku:show', () => { + console.info('弹幕显示'); +}); + +// 监听弹幕销毁 +art.on('artplayerPluginDanmuku:destroy', () => { + console.info('弹幕销毁'); }); diff --git a/docs/uncompiled/artplayer-plugin-danmuku/index.js b/docs/uncompiled/artplayer-plugin-danmuku/index.js index 55a0bb40c..4a4d63069 100644 --- a/docs/uncompiled/artplayer-plugin-danmuku/index.js +++ b/docs/uncompiled/artplayer-plugin-danmuku/index.js @@ -171,7 +171,7 @@ function artplayerPluginDanmuku(option) { exports.default = artplayerPluginDanmuku; window['artplayerPluginDanmuku'] = artplayerPluginDanmuku; -},{"./danmuku":"igPca","./setting":"8npWO","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"igPca":[function(require,module,exports) { +},{"./danmuku":"igPca","./setting":"8npWO","@parcel/transformer-js/src/esmodule-helpers.js":"8MjWm"}],"igPca":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _bilibili = require("./bilibili"); @@ -193,7 +193,7 @@ class Danmuku { this.timer = null; this.config(option); if (this.option.useWorker) try { - this.worker = new Worker(require("85d40535eae5f839")); + this.worker = new Worker(require("27c3930ee158179a")); } catch (error) { // } @@ -219,6 +219,8 @@ class Danmuku { '25%' ], opacity: 1, + color: '#FFFFFF', + mode: 0, fontSize: 25, filter: ()=>true , @@ -233,6 +235,8 @@ class Danmuku { speed: 'number', margin: 'array', opacity: 'number', + color: 'string', + mode: 'number', fontSize: 'number|string', filter: 'function', antiOverlap: 'boolean', @@ -456,8 +460,8 @@ class Danmuku { danmu.$ref.style.left = `${clientWidth}px`; danmu.$ref.style.opacity = this.option.opacity; danmu.$ref.style.fontSize = `${this.option.fontSize}px`; - danmu.$ref.style.color = danmu.color || '#fff'; - danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color || '#fff'}` : null; + danmu.$ref.style.color = danmu.color; + danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color}` : null; danmu.$ref.style.backgroundColor = danmu.border ? 'rgb(0 0 0 / 50%)' : null; danmu.$ref.style.marginLeft = '0px'; danmu.$lastStartTime = Date.now(); @@ -552,7 +556,8 @@ class Danmuku { if (danmu.time) danmu.time = this.utils.clamp(danmu.time, 0, Infinity); else danmu.time = this.art.currentTime + 0.5; this.queue.push({ - mode: 0, + mode: this.option.mode, + color: this.option.color, ...danmu, $state: 'wait', $ref: null, @@ -576,7 +581,7 @@ class Danmuku { } exports.default = Danmuku; -},{"./bilibili":"6a8GK","./getDanmuTop":"eLxSm","85d40535eae5f839":"cDlY2","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"6a8GK":[function(require,module,exports) { +},{"./bilibili":"6a8GK","./getDanmuTop":"eLxSm","27c3930ee158179a":"7RMxU","@parcel/transformer-js/src/esmodule-helpers.js":"8MjWm"}],"6a8GK":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "getMode", ()=>getMode @@ -623,7 +628,7 @@ function bilibiliDanmuParseFromUrl(url) { ); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"6SDkN":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8MjWm"}],"8MjWm":[function(require,module,exports) { exports.interopDefault = function(a) { return a && a.__esModule ? a : { default: a @@ -746,7 +751,7 @@ function getDanmuTop({ target , emits , clientWidth , clientHeight , marginBotto } exports.default = getDanmuTop; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"cDlY2":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"8MjWm"}],"7RMxU":[function(require,module,exports) { module.exports = "data:application/javascript,function%20getDanmuTop%28%7B%20target%20%2C%20emits%20%2C%20clientWidth%20%2C%20clientHeight%20%2C%20marginBottom%20%2C%20marginTop%20%2C%20antiOverlap%20%20%7D%29%20%7B%0A%20%20%20%20const%20danmus%20%3D%20emits.filter%28%28item%29%3D%3Eitem.mode%20%3D%3D%3D%20target.mode%20%26%26%20item.top%20%3C%3D%20clientHeight%20-%20marginBottom%0A%20%20%20%20%29.sort%28%28prev%2C%20next%29%3D%3Eprev.top%20-%20next.top%0A%20%20%20%20%29%3B%0A%20%20%20%20if%20%28danmus.length%20%3D%3D%3D%200%29%20return%20marginTop%3B%0A%20%20%20%20danmus.unshift%28%7B%0A%20%20%20%20%20%20%20%20top%3A%200%2C%0A%20%20%20%20%20%20%20%20left%3A%200%2C%0A%20%20%20%20%20%20%20%20right%3A%200%2C%0A%20%20%20%20%20%20%20%20height%3A%20marginTop%2C%0A%20%20%20%20%20%20%20%20width%3A%20clientWidth%2C%0A%20%20%20%20%20%20%20%20speed%3A%200%2C%0A%20%20%20%20%20%20%20%20distance%3A%20clientWidth%0A%20%20%20%20%7D%29%3B%0A%20%20%20%20danmus.push%28%7B%0A%20%20%20%20%20%20%20%20top%3A%20clientHeight%20-%20marginBottom%2C%0A%20%20%20%20%20%20%20%20left%3A%200%2C%0A%20%20%20%20%20%20%20%20right%3A%200%2C%0A%20%20%20%20%20%20%20%20height%3A%20marginBottom%2C%0A%20%20%20%20%20%20%20%20width%3A%20clientWidth%2C%0A%20%20%20%20%20%20%20%20speed%3A%200%2C%0A%20%20%20%20%20%20%20%20distance%3A%20clientWidth%0A%20%20%20%20%7D%29%3B%0A%20%20%20%20for%28let%20index%20%3D%201%3B%20index%20%3C%20danmus.length%3B%20index%20%2B%3D%201%29%7B%0A%20%20%20%20%20%20%20%20const%20item%20%3D%20danmus%5Bindex%5D%3B%0A%20%20%20%20%20%20%20%20const%20prev%20%3D%20danmus%5Bindex%20-%201%5D%3B%0A%20%20%20%20%20%20%20%20const%20prevBottom%20%3D%20prev.top%20%2B%20prev.height%3B%0A%20%20%20%20%20%20%20%20const%20diff%20%3D%20item.top%20-%20prevBottom%3B%0A%20%20%20%20%20%20%20%20if%20%28diff%20%3E%3D%20target.height%29%20return%20prevBottom%3B%0A%20%20%20%20%7D%0A%20%20%20%20const%20topMap%20%3D%20%5B%5D%3B%0A%20%20%20%20for%28let%20index1%20%3D%201%3B%20index1%20%3C%20danmus.length%20-%201%3B%20index1%20%2B%3D%201%29%7B%0A%20%20%20%20%20%20%20%20const%20item%20%3D%20danmus%5Bindex1%5D%3B%0A%20%20%20%20%20%20%20%20if%20%28topMap.length%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20last%20%3D%20topMap%5BtopMap.length%20-%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28last%5B0%5D.top%20%3D%3D%3D%20item.top%29%20last.push%28item%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20topMap.push%28%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20item%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20topMap.push%28%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20item%0A%20%20%20%20%20%20%20%20%5D%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28antiOverlap%29%20switch%28target.mode%29%7B%0A%20%20%20%20%20%20%20%20case%200%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20result%20%3D%20topMap.find%28%28list%29%3D%3E%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20list.every%28%28danmu%29%3D%3E%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28clientWidth%20%3C%20danmu.distance%29%20return%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28target.speed%20%3C%20danmu.speed%29%20return%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20overlapTime%20%3D%20danmu.right%20%2F%20%28target.speed%20-%20danmu.speed%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28overlapTime%20%3E%20danmu.time%29%20return%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20result%20%26%26%20result%5B0%5D%20%3F%20result%5B0%5D.top%20%3A%20undefined%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20case%201%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20undefined%3B%0A%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20%7B%0A%20%20%20%20%20%20%20%20switch%28target.mode%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%200%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20topMap.sort%28%28prev%2C%20next%29%3D%3E%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20nextMinRight%20%3D%20Math.min%28...next.map%28%28item%29%3D%3Eitem.right%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20prevMinRight%20%3D%20Math.min%28...prev.map%28%28item%29%3D%3Eitem.right%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20nextMinRight%20%2a%20next.length%20-%20prevMinRight%20%2a%20prev.length%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%201%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20topMap.sort%28%28prev%2C%20next%29%3D%3E%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20nextMaxWidth%20%3D%20Math.max%28...next.map%28%28item%29%3D%3Eitem.width%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20prevMaxWidth%20%3D%20Math.max%28...prev.map%28%28item%29%3D%3Eitem.width%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20prevMaxWidth%20%2a%20prev.length%20-%20nextMaxWidth%20%2a%20next.length%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20topMap%5B0%5D%5B0%5D.top%3B%0A%20%20%20%20%7D%0A%7D%0Aonmessage%20%3D%20%28event%29%3D%3E%7B%0A%20%20%20%20const%20%7B%20data%20%20%7D%20%3D%20event%3B%0A%20%20%20%20const%20top%20%3D%20getDanmuTop%28data%29%3B%0A%20%20%20%20self.postMessage%28%7B%0A%20%20%20%20%20%20%20%20top%2C%0A%20%20%20%20%20%20%20%20id%3A%20data.id%0A%20%20%20%20%7D%29%3B%0A%7D%3B%0A%0A"; },{}],"8npWO":[function(require,module,exports) { @@ -778,6 +783,25 @@ function setting(art, danmuku) { const $danmuConfig = getIcon(_danmuConfigSvgDefault.default, 'danmu-config'); const $danmuStyle = getIcon(_danmuStyleSvgDefault.default, 'danmu-config'); function addEmitter() { + const colors = [ + '#FE0302', + '#FF7204', + '#FFAA02', + '#FFD302', + '#FFFF00', + '#A0EE00', + '#00CD00', + '#019899', + '#4266BE', + '#89D5FF', + '#CC0273', + '#222222', + '#9B9B9B', + '#FFFFFF', + ].map((item)=>{ + const isCurrent = danmuku.option.color === item ? ' art-current' : ''; + return `
`; + }); const $emitter = append($controlsCenter, `
@@ -788,6 +812,9 @@ function setting(art, danmuku) {
静止
颜色
+
+ ${colors.join('')} +
@@ -799,9 +826,11 @@ function setting(art, danmuku) { const $send = query('.art-danmuku-send', $emitter); const $panel = query('.art-danmuku-style-panel', $emitter); const $modes = query('.art-danmuku-style-panel-modes', $emitter); + const $colors = query('.art-danmuku-style-panel-colors', $emitter); if (art.option.backdrop) addClass($panel, 'art-backdrop-filter'); - let mode = 0; let timer = null; + let mode = danmuku.option.mode; + let color = danmuku.option.color; append($style, $danmuStyle); function countdown(time) { if (time === 0) { @@ -820,7 +849,7 @@ function setting(art, danmuku) { const danmu = { text, mode, - color: '#ffffff', + color, border: true }; countdown(5); @@ -843,6 +872,13 @@ function setting(art, danmuku) { inverseClass(event.target, 'art-current'); } }); + art.proxy($colors, 'click', (event)=>{ + const { dataset } = event.target; + if (dataset.color) { + color = dataset.color; + inverseClass(event.target, 'art-current'); + } + }); } function addControl() { art.controls.add({ @@ -1069,19 +1105,19 @@ if (typeof document !== 'undefined') { } } -},{"bundle-text:./style.less":"g3Xz5","bundle-text:./img/danmu-on.svg":"kES2T","bundle-text:./img/danmu-off.svg":"2XSu0","bundle-text:./img/danmu-config.svg":"2XKVb","bundle-text:./img/danmu-style.svg":"lYyZn","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"g3Xz5":[function(require,module,exports) { -module.exports = ".art-danmuku-emitter {\n height: 30px;\n width: 100%;\n max-width: 400px;\n color: #fff;\n background-color: #ffffff4d;\n border-radius: 3px;\n font-size: 12px;\n line-height: 1;\n display: flex;\n position: relative;\n}\n\n.art-danmuku-emitter .art-danmuku-style {\n width: 30px;\n justify-content: center;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel {\n width: 150px;\n background-color: #000000e6;\n border-radius: 3px;\n flex-direction: column;\n padding: 10px 10px 5px;\n display: none;\n position: absolute;\n bottom: 29px;\n left: -65px;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-title {\n margin-bottom: 10px;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-modes {\n justify-content: space-between;\n margin-bottom: 20px;\n display: flex;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode {\n width: 47%;\n cursor: pointer;\n color: #fff;\n border: 1px solid #fff;\n justify-content: center;\n padding: 4px 0;\n display: flex;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode.art-current {\n background-color: #00a1d6;\n border: 1px solid #00a1d6;\n}\n\n.art-danmuku-emitter .art-danmuku-style:hover .art-danmuku-style-panel {\n display: flex;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-icon {\n opacity: .75;\n cursor: pointer;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-icon:hover {\n opacity: 1;\n}\n\n.art-danmuku-emitter .art-danmuku-input {\n color: #fff;\n background-color: #0000;\n border: none;\n outline: none;\n flex: 1;\n padding: 0 10px 0 0;\n display: flex;\n}\n\n.art-danmuku-emitter .art-danmuku-input::placeholder, .art-danmuku-emitter .art-danmuku-input::-webkit-input-placeholder {\n color: #ffffff80;\n}\n\n.art-danmuku-emitter .art-danmuku-send {\n width: 50px;\n cursor: pointer;\n background-color: #00a1d6;\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-danmuku-emitter .art-danmuku-send:hover {\n background-color: #00b5e5;\n}\n\n.art-danmuku-emitter .art-danmuku-send.art-disabled {\n opacity: .5;\n pointer-events: none;\n}\n\n"; +},{"bundle-text:./style.less":"9fJCl","bundle-text:./img/danmu-on.svg":"94Qzj","bundle-text:./img/danmu-off.svg":"jZVzM","bundle-text:./img/danmu-config.svg":"bjl4o","bundle-text:./img/danmu-style.svg":"jDY9t","@parcel/transformer-js/src/esmodule-helpers.js":"8MjWm"}],"9fJCl":[function(require,module,exports) { +module.exports = ".art-danmuku-emitter {\n height: 30px;\n width: 100%;\n max-width: 400px;\n color: #fff;\n background-color: #ffffff4d;\n border-radius: 3px;\n font-size: 12px;\n line-height: 1;\n display: flex;\n position: relative;\n}\n\n.art-danmuku-emitter .art-danmuku-style {\n width: 30px;\n justify-content: center;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel {\n width: 160px;\n background-color: #000000e6;\n border-radius: 3px;\n flex-direction: column;\n padding: 10px 10px 0;\n display: none;\n position: absolute;\n bottom: 29px;\n left: -70px;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-title {\n margin-bottom: 10px;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-modes {\n justify-content: space-between;\n margin-bottom: 15px;\n display: flex;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode {\n width: 47%;\n cursor: pointer;\n color: #fff;\n border: 1px solid #fff;\n justify-content: center;\n padding: 4px 0;\n display: flex;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-modes .art-danmuku-style-panel-mode.art-current {\n background-color: #00a1d6;\n border: 1px solid #00a1d6;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-colors {\n flex-wrap: wrap;\n justify-content: space-between;\n gap: 5px;\n margin-bottom: 10px;\n display: flex;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-colors .art-danmuku-style-panel-color {\n cursor: pointer;\n width: 15px;\n height: 15px;\n border: 1px solid #fff;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current {\n position: relative;\n box-shadow: 0 0 2px #fff;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-danmuku-style-panel .art-danmuku-style-panel-colors .art-danmuku-style-panel-color.art-current:before {\n content: \"\";\n width: 100%;\n height: 100%;\n border: 1px solid #000;\n position: absolute;\n inset: 0;\n}\n\n.art-danmuku-emitter .art-danmuku-style:hover .art-danmuku-style-panel {\n display: flex;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-icon {\n opacity: .75;\n cursor: pointer;\n}\n\n.art-danmuku-emitter .art-danmuku-style .art-icon:hover {\n opacity: 1;\n}\n\n.art-danmuku-emitter .art-danmuku-input {\n color: #fff;\n background-color: #0000;\n border: none;\n outline: none;\n flex: 1;\n padding: 0 10px 0 0;\n display: flex;\n}\n\n.art-danmuku-emitter .art-danmuku-input::placeholder, .art-danmuku-emitter .art-danmuku-input::-webkit-input-placeholder {\n color: #ffffff80;\n}\n\n.art-danmuku-emitter .art-danmuku-send {\n width: 50px;\n cursor: pointer;\n background-color: #00a1d6;\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-danmuku-emitter .art-danmuku-send:hover {\n background-color: #00b5e5;\n}\n\n.art-danmuku-emitter .art-danmuku-send.art-disabled {\n opacity: .5;\n pointer-events: none;\n}\n\n"; -},{}],"kES2T":[function(require,module,exports) { +},{}],"94Qzj":[function(require,module,exports) { module.exports = "\n\n\n\n\n"; -},{}],"2XSu0":[function(require,module,exports) { +},{}],"jZVzM":[function(require,module,exports) { module.exports = "\n\n\n\n\n"; -},{}],"2XKVb":[function(require,module,exports) { +},{}],"bjl4o":[function(require,module,exports) { module.exports = "\n \n \n"; -},{}],"lYyZn":[function(require,module,exports) { +},{}],"jDY9t":[function(require,module,exports) { module.exports = "\n \n"; },{}]},["gEVO5"], "gEVO5", "parcelRequire93cf") diff --git a/docs/uncompiled/artplayer-plugin-danmuku/index.js.map b/docs/uncompiled/artplayer-plugin-danmuku/index.js.map index f6c8a3d9f..86bd690a8 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","src/getDanmuTop.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5395621aae5f7f00.js","src/setting.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-bf4be4852fcb46f8.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-c224f681de0b4761.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-917e8af13f4c79a5.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-dd25a9ac31f95fdb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-8824da956e33cba6.js"],"sourcesContent":["import Danmuku from './danmuku';\nimport setting from './setting';\n\nexport default function artplayerPluginDanmuku(option) {\n return (art) => {\n const danmuku = new Danmuku(art, option);\n setting(art, danmuku);\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 get isStop() {\n return danmuku.isStop;\n },\n };\n };\n}\n\nwindow['artplayerPluginDanmuku'] = artplayerPluginDanmuku;\n","import { bilibiliDanmuParseFromUrl } from './bilibili';\nimport getDanmuTop from './getDanmuTop';\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 if (this.option.useWorker) {\n try {\n this.worker = new Worker(new URL('data-url:./worker.js', import.meta.url));\n } catch (error) {\n //\n }\n }\n\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n this.reset = this.reset.bind(this);\n this.destroy = this.destroy.bind(this);\n\n art.on('video:play', this.start);\n art.on('video:playing', this.start);\n art.on('video:pause', this.stop);\n art.on('video:waiting', this.stop);\n art.on('fullscreen', this.reset);\n art.on('fullscreenWeb', this.reset);\n art.on('destroy', this.destroy);\n\n this.load();\n }\n\n static get option() {\n return {\n danmuku: [],\n speed: 5,\n margin: ['2%', '25%'],\n opacity: 1,\n fontSize: 25,\n filter: () => true,\n antiOverlap: true,\n useWorker: 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|string',\n filter: 'function',\n antiOverlap: 'boolean',\n useWorker: '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 value = this.option.margin[0];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, clientHeight);\n }\n\n return Danmuku.option.margin[0];\n }\n\n get marginBottom() {\n const { clamp } = this.utils;\n const value = this.option.margin[1];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, 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 getFontSize(fontSize) {\n const { clamp } = this.utils;\n const { clientHeight } = this.$player;\n\n if (typeof fontSize === 'number') {\n return clamp(fontSize, 12, clientHeight);\n }\n\n if (typeof fontSize === 'string' && fontSize.endsWith('%')) {\n const ratio = parseFloat(fontSize) / 100;\n return clamp(clientHeight * ratio, 12, clientHeight);\n }\n\n return Danmuku.option.fontSize;\n }\n\n postMessage(message = {}) {\n return new Promise((resolve) => {\n if (this.option.useWorker && this.worker && this.worker.postMessage) {\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 } else {\n const top = getDanmuTop(message);\n resolve({ top });\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\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n\n if (option.fontSize) {\n this.option.fontSize = this.getFontSize(this.option.fontSize);\n this.reset();\n }\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 return this;\n }\n\n update() {\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 const { clientWidth, clientHeight } = this.$player;\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'}` : null;\n danmu.$ref.style.backgroundColor = danmu.border ? 'rgb(0 0 0 / 50%)' : null;\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: clientWidth,\n clientHeight: clientHeight,\n marginBottom: this.marginBottom,\n marginTop: this.marginTop,\n });\n\n if (danmu.$ref) {\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\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.start();\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.stop();\n this.queue.forEach((item) => this.makeWait(item));\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 destroy() {\n this.stop();\n if (this.worker && this.worker.terminate) this.worker.terminate();\n this.art.off('video:play', this.start);\n this.art.off('video:playing', this.start);\n this.art.off('video:pause', this.stop);\n this.art.off('video:waiting', this.stop);\n this.art.off('fullscreen', this.reset);\n this.art.off('fullscreenWeb', this.reset);\n this.art.off('destroy', this.destroy);\n this.art.emit('artplayerPluginDanmuku:destroy');\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","export default function getDanmuTop({\n target,\n emits,\n clientWidth,\n clientHeight,\n marginBottom,\n marginTop,\n antiOverlap,\n}) {\n const danmus = emits\n .filter((item) => item.mode === target.mode && item.top <= clientHeight - marginBottom)\n .sort((prev, next) => prev.top - next.top);\n\n if (danmus.length === 0) {\n return marginTop;\n }\n\n danmus.unshift({\n top: 0,\n left: 0,\n right: 0,\n height: marginTop,\n width: clientWidth,\n speed: 0,\n distance: clientWidth,\n });\n\n danmus.push({\n top: clientHeight - marginBottom,\n left: 0,\n right: 0,\n height: marginBottom,\n width: clientWidth,\n speed: 0,\n distance: clientWidth,\n });\n\n for (let index = 1; index < danmus.length; index += 1) {\n const item = danmus[index];\n const prev = danmus[index - 1];\n const prevBottom = prev.top + prev.height;\n const diff = item.top - prevBottom;\n if (diff >= target.height) {\n return prevBottom;\n }\n }\n\n const topMap = [];\n for (let index = 1; index < danmus.length - 1; index += 1) {\n const item = danmus[index];\n if (topMap.length) {\n const last = topMap[topMap.length - 1];\n if (last[0].top === item.top) {\n last.push(item);\n } else {\n topMap.push([item]);\n }\n } else {\n topMap.push([item]);\n }\n }\n\n if (antiOverlap) {\n switch (target.mode) {\n case 0: {\n const result = topMap.find((list) => {\n return list.every((danmu) => {\n if (clientWidth < danmu.distance) return false;\n if (target.speed < danmu.speed) return true;\n const overlapTime = danmu.right / (target.speed - danmu.speed);\n if (overlapTime > danmu.time) return true;\n return false;\n });\n });\n\n return result && result[0] ? result[0].top : undefined;\n }\n case 1:\n return undefined;\n default:\n break;\n }\n } else {\n switch (target.mode) {\n case 0:\n topMap.sort((prev, next) => {\n const nextMinRight = Math.min(...next.map((item) => item.right));\n const prevMinRight = Math.min(...prev.map((item) => item.right));\n return nextMinRight * next.length - prevMinRight * prev.length;\n });\n break;\n case 1:\n topMap.sort((prev, next) => {\n const nextMaxWidth = Math.max(...next.map((item) => item.width));\n const prevMaxWidth = Math.max(...prev.map((item) => item.width));\n return prevMaxWidth * prev.length - nextMaxWidth * next.length;\n });\n break;\n default:\n break;\n }\n\n return topMap[0][0].top;\n }\n}\n","module.exports = \"4eed92ff70f9a7c8\";","import style from 'bundle-text:./style.less';\nimport danmuOn from 'bundle-text:./img/danmu-on.svg';\nimport danmuOff from 'bundle-text:./img/danmu-off.svg';\nimport danmuConfig from 'bundle-text:./img/danmu-config.svg';\nimport danmuStyle from 'bundle-text:./img/danmu-style.svg';\n\nexport default function setting(art, danmuku) {\n const {\n template: { $controlsCenter },\n constructor: {\n utils: { removeClass, addClass, append, setStyle, tooltip, query, inverseClass },\n },\n } = art;\n\n function getIcon(svg, key) {\n const icon = document.createElement('i');\n append(icon, svg);\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n setStyle(icon, 'width', '22px');\n setStyle(icon, 'height', '22px');\n return icon;\n }\n\n const $danmuOn = getIcon(danmuOn, 'danmu-on');\n const $danmuOff = getIcon(danmuOff, 'danmu-off');\n const $danmuConfig = getIcon(danmuConfig, 'danmu-config');\n const $danmuStyle = getIcon(danmuStyle, 'danmu-config');\n\n function addEmitter() {\n const $emitter = append(\n $controlsCenter,\n `\n
\n
\n
\n
模式
\n
\n
滚动
\n
静止
\n
\n
颜色
\n
\n
\n \n
发送
\n
\n `,\n );\n\n const $style = query('.art-danmuku-style', $emitter);\n const $input = query('.art-danmuku-input', $emitter);\n const $send = query('.art-danmuku-send', $emitter);\n const $panel = query('.art-danmuku-style-panel', $emitter);\n const $modes = query('.art-danmuku-style-panel-modes', $emitter);\n\n if (art.option.backdrop) {\n addClass($panel, 'art-backdrop-filter');\n }\n\n let mode = 0;\n let timer = null;\n append($style, $danmuStyle);\n\n function countdown(time) {\n if (time === 0) {\n timer = null;\n $send.innerText = '发送';\n removeClass($send, 'art-disabled');\n } else {\n $send.innerText = time;\n timer = setTimeout(() => countdown(time - 1), 1000);\n }\n }\n\n function onSend() {\n const text = $input.value.trim();\n if (!text || timer) return;\n\n const danmu = {\n text,\n mode,\n color: '#ffffff',\n border: true,\n };\n\n countdown(5);\n $input.value = '';\n danmuku.emit(danmu);\n addClass($send, 'art-disabled');\n art.emit('artplayerPluginDanmuku:emit', danmu);\n }\n\n art.proxy($send, 'click', onSend);\n\n art.proxy($input, 'keypress', (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n onSend();\n }\n });\n\n art.proxy($modes, 'click', (event) => {\n const { dataset } = event.target;\n if (dataset.mode) {\n mode = Number(dataset.mode);\n inverseClass(event.target, 'art-current');\n }\n });\n }\n\n function addControl() {\n art.controls.add({\n position: 'right',\n name: 'danmuku',\n click: function () {\n if (danmuku.isHide) {\n danmuku.show();\n art.notice.show = '弹幕显示';\n setStyle($danmuOn, 'display', null);\n setStyle($danmuOff, 'display', 'none');\n } else {\n danmuku.hide();\n art.notice.show = '弹幕隐藏';\n setStyle($danmuOn, 'display', 'none');\n setStyle($danmuOff, 'display', null);\n }\n },\n mounted($ref) {\n append($ref, $danmuOn);\n append($ref, $danmuOff);\n tooltip($ref, '弹幕开关');\n setStyle($danmuOff, 'display', 'none');\n },\n });\n }\n\n function addSetting() {\n art.setting.add({\n name: 'danmuku',\n html: '弹幕设置',\n tooltip: '更多',\n icon: $danmuConfig,\n selector: [\n {\n width: 200,\n html: '播放速度',\n icon: '',\n tooltip: '适中',\n selector: [\n {\n html: '极慢',\n time: 10,\n },\n {\n html: '较慢',\n time: 7.5,\n },\n {\n default: true,\n html: '适中',\n time: 5,\n },\n {\n html: '较快',\n time: 2.5,\n },\n {\n html: '极快',\n time: 1,\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n speed: item.time,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '字体大小',\n icon: '',\n tooltip: '适中',\n selector: [\n {\n html: '极小',\n fontSize: '2%',\n },\n {\n html: '较小',\n fontSize: '4%',\n },\n {\n default: true,\n html: '适中',\n fontSize: '6%',\n },\n {\n html: '较大',\n fontSize: '8%',\n },\n {\n html: '极大',\n fontSize: '10%',\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n fontSize: item.fontSize,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '不透明度',\n icon: '',\n tooltip: '100%',\n selector: [\n {\n default: true,\n opacity: 1,\n html: '100%',\n },\n {\n opacity: 0.75,\n html: '75%',\n },\n {\n opacity: 0.5,\n html: '50%',\n },\n {\n opacity: 0.25,\n html: '25%',\n },\n {\n opacity: 0,\n html: '0%',\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n opacity: item.opacity,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '显示范围',\n icon: '',\n tooltip: '3/4',\n selector: [\n {\n html: '1/4',\n margin: ['2%', '75%'],\n },\n {\n html: '半屏',\n margin: ['2%', '50%'],\n },\n {\n default: true,\n html: '3/4',\n margin: ['2%', '25%'],\n },\n {\n html: '满屏',\n margin: ['2%', '2%'],\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n margin: item.margin,\n });\n return item.html;\n },\n },\n {\n html: '弹幕防重叠',\n icon: '',\n tooltip: danmuku.option.antiOverlap ? '开启' : '关闭',\n switch: danmuku.option.antiOverlap,\n onSwitch(item) {\n danmuku.config({\n antiOverlap: !item.switch,\n });\n item.tooltip = item.switch ? '关闭' : '开启';\n return !item.switch;\n },\n },\n {\n html: '同步视频速度',\n icon: '',\n tooltip: danmuku.option.synchronousPlayback ? '开启' : '关闭',\n switch: danmuku.option.synchronousPlayback,\n onSwitch(item) {\n danmuku.config({\n synchronousPlayback: !item.switch,\n });\n item.tooltip = item.switch ? '关闭' : '开启';\n return !item.switch;\n },\n },\n ],\n });\n }\n\n art.on('ready', () => {\n addEmitter();\n addControl();\n addSetting();\n });\n}\n\nif (typeof document !== 'undefined') {\n if (!document.getElementById('artplayer-plugin-danmuku')) {\n const $style = document.createElement('style');\n $style.id = 'artplayer-plugin-danmuku';\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n","module.exports = \"1af484fe1253ce64\";","module.exports = \"a41e824adf503c0d\";","module.exports = \"e0afa382f43c0112\";","module.exports = \"8a330c19349ee459\";","module.exports = \"760835473cfc5438\";"],"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","src/getDanmuTop.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5395621aae5f7f00.js","src/setting.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-bf4be4852fcb46f8.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-c224f681de0b4761.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-917e8af13f4c79a5.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-dd25a9ac31f95fdb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-8824da956e33cba6.js"],"sourcesContent":["import Danmuku from './danmuku';\nimport setting from './setting';\n\nexport default function artplayerPluginDanmuku(option) {\n return (art) => {\n const danmuku = new Danmuku(art, option);\n setting(art, danmuku);\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 get isStop() {\n return danmuku.isStop;\n },\n };\n };\n}\n\nwindow['artplayerPluginDanmuku'] = artplayerPluginDanmuku;\n","import { bilibiliDanmuParseFromUrl } from './bilibili';\nimport getDanmuTop from './getDanmuTop';\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 if (this.option.useWorker) {\n try {\n this.worker = new Worker(new URL('data-url:./worker.js', import.meta.url));\n } catch (error) {\n //\n }\n }\n\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n this.reset = this.reset.bind(this);\n this.destroy = this.destroy.bind(this);\n\n art.on('video:play', this.start);\n art.on('video:playing', this.start);\n art.on('video:pause', this.stop);\n art.on('video:waiting', this.stop);\n art.on('fullscreen', this.reset);\n art.on('fullscreenWeb', this.reset);\n art.on('destroy', this.destroy);\n\n this.load();\n }\n\n static get option() {\n return {\n danmuku: [],\n speed: 5,\n margin: ['2%', '25%'],\n opacity: 1,\n color: '#FFFFFF',\n mode: 0,\n fontSize: 25,\n filter: () => true,\n antiOverlap: true,\n useWorker: 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 color: 'string',\n mode: 'number',\n fontSize: 'number|string',\n filter: 'function',\n antiOverlap: 'boolean',\n useWorker: '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 value = this.option.margin[0];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, clientHeight);\n }\n\n return Danmuku.option.margin[0];\n }\n\n get marginBottom() {\n const { clamp } = this.utils;\n const value = this.option.margin[1];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, 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 getFontSize(fontSize) {\n const { clamp } = this.utils;\n const { clientHeight } = this.$player;\n\n if (typeof fontSize === 'number') {\n return clamp(fontSize, 12, clientHeight);\n }\n\n if (typeof fontSize === 'string' && fontSize.endsWith('%')) {\n const ratio = parseFloat(fontSize) / 100;\n return clamp(clientHeight * ratio, 12, clientHeight);\n }\n\n return Danmuku.option.fontSize;\n }\n\n postMessage(message = {}) {\n return new Promise((resolve) => {\n if (this.option.useWorker && this.worker && this.worker.postMessage) {\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 } else {\n const top = getDanmuTop(message);\n resolve({ top });\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\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n\n if (option.fontSize) {\n this.option.fontSize = this.getFontSize(this.option.fontSize);\n this.reset();\n }\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 return this;\n }\n\n update() {\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 const { clientWidth, clientHeight } = this.$player;\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;\n danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color}` : null;\n danmu.$ref.style.backgroundColor = danmu.border ? 'rgb(0 0 0 / 50%)' : null;\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: clientWidth,\n clientHeight: clientHeight,\n marginBottom: this.marginBottom,\n marginTop: this.marginTop,\n });\n\n if (danmu.$ref) {\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\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.start();\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.stop();\n this.queue.forEach((item) => this.makeWait(item));\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: this.option.mode,\n color: this.option.color,\n ...danmu,\n $state: 'wait',\n $ref: null,\n $restTime: 0,\n $lastStartTime: 0,\n });\n\n return this;\n }\n\n destroy() {\n this.stop();\n if (this.worker && this.worker.terminate) this.worker.terminate();\n this.art.off('video:play', this.start);\n this.art.off('video:playing', this.start);\n this.art.off('video:pause', this.stop);\n this.art.off('video:waiting', this.stop);\n this.art.off('fullscreen', this.reset);\n this.art.off('fullscreenWeb', this.reset);\n this.art.off('destroy', this.destroy);\n this.art.emit('artplayerPluginDanmuku:destroy');\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","export default function getDanmuTop({\n target,\n emits,\n clientWidth,\n clientHeight,\n marginBottom,\n marginTop,\n antiOverlap,\n}) {\n const danmus = emits\n .filter((item) => item.mode === target.mode && item.top <= clientHeight - marginBottom)\n .sort((prev, next) => prev.top - next.top);\n\n if (danmus.length === 0) {\n return marginTop;\n }\n\n danmus.unshift({\n top: 0,\n left: 0,\n right: 0,\n height: marginTop,\n width: clientWidth,\n speed: 0,\n distance: clientWidth,\n });\n\n danmus.push({\n top: clientHeight - marginBottom,\n left: 0,\n right: 0,\n height: marginBottom,\n width: clientWidth,\n speed: 0,\n distance: clientWidth,\n });\n\n for (let index = 1; index < danmus.length; index += 1) {\n const item = danmus[index];\n const prev = danmus[index - 1];\n const prevBottom = prev.top + prev.height;\n const diff = item.top - prevBottom;\n if (diff >= target.height) {\n return prevBottom;\n }\n }\n\n const topMap = [];\n for (let index = 1; index < danmus.length - 1; index += 1) {\n const item = danmus[index];\n if (topMap.length) {\n const last = topMap[topMap.length - 1];\n if (last[0].top === item.top) {\n last.push(item);\n } else {\n topMap.push([item]);\n }\n } else {\n topMap.push([item]);\n }\n }\n\n if (antiOverlap) {\n switch (target.mode) {\n case 0: {\n const result = topMap.find((list) => {\n return list.every((danmu) => {\n if (clientWidth < danmu.distance) return false;\n if (target.speed < danmu.speed) return true;\n const overlapTime = danmu.right / (target.speed - danmu.speed);\n if (overlapTime > danmu.time) return true;\n return false;\n });\n });\n\n return result && result[0] ? result[0].top : undefined;\n }\n case 1:\n return undefined;\n default:\n break;\n }\n } else {\n switch (target.mode) {\n case 0:\n topMap.sort((prev, next) => {\n const nextMinRight = Math.min(...next.map((item) => item.right));\n const prevMinRight = Math.min(...prev.map((item) => item.right));\n return nextMinRight * next.length - prevMinRight * prev.length;\n });\n break;\n case 1:\n topMap.sort((prev, next) => {\n const nextMaxWidth = Math.max(...next.map((item) => item.width));\n const prevMaxWidth = Math.max(...prev.map((item) => item.width));\n return prevMaxWidth * prev.length - nextMaxWidth * next.length;\n });\n break;\n default:\n break;\n }\n\n return topMap[0][0].top;\n }\n}\n","module.exports = \"4eed92ff70f9a7c8\";","import style from 'bundle-text:./style.less';\nimport danmuOn from 'bundle-text:./img/danmu-on.svg';\nimport danmuOff from 'bundle-text:./img/danmu-off.svg';\nimport danmuConfig from 'bundle-text:./img/danmu-config.svg';\nimport danmuStyle from 'bundle-text:./img/danmu-style.svg';\n\nexport default function setting(art, danmuku) {\n const {\n template: { $controlsCenter },\n constructor: {\n utils: { removeClass, addClass, append, setStyle, tooltip, query, inverseClass },\n },\n } = art;\n\n function getIcon(svg, key) {\n const icon = document.createElement('i');\n append(icon, svg);\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n setStyle(icon, 'width', '22px');\n setStyle(icon, 'height', '22px');\n return icon;\n }\n\n const $danmuOn = getIcon(danmuOn, 'danmu-on');\n const $danmuOff = getIcon(danmuOff, 'danmu-off');\n const $danmuConfig = getIcon(danmuConfig, 'danmu-config');\n const $danmuStyle = getIcon(danmuStyle, 'danmu-config');\n\n function addEmitter() {\n const colors = [\n '#FE0302',\n '#FF7204',\n '#FFAA02',\n '#FFD302',\n '#FFFF00',\n '#A0EE00',\n '#00CD00',\n '#019899',\n '#4266BE',\n '#89D5FF',\n '#CC0273',\n '#222222',\n '#9B9B9B',\n '#FFFFFF',\n ].map((item) => {\n const isCurrent = danmuku.option.color === item ? ' art-current' : '';\n return `
`;\n });\n\n const $emitter = append(\n $controlsCenter,\n `\n
\n
\n
\n
模式
\n
\n
滚动
\n
静止
\n
\n
颜色
\n
\n ${colors.join('')}\n
\n
\n
\n \n
发送
\n
\n `,\n );\n\n const $style = query('.art-danmuku-style', $emitter);\n const $input = query('.art-danmuku-input', $emitter);\n const $send = query('.art-danmuku-send', $emitter);\n const $panel = query('.art-danmuku-style-panel', $emitter);\n const $modes = query('.art-danmuku-style-panel-modes', $emitter);\n const $colors = query('.art-danmuku-style-panel-colors', $emitter);\n\n if (art.option.backdrop) {\n addClass($panel, 'art-backdrop-filter');\n }\n\n let timer = null;\n let mode = danmuku.option.mode;\n let color = danmuku.option.color;\n append($style, $danmuStyle);\n\n function countdown(time) {\n if (time === 0) {\n timer = null;\n $send.innerText = '发送';\n removeClass($send, 'art-disabled');\n } else {\n $send.innerText = time;\n timer = setTimeout(() => countdown(time - 1), 1000);\n }\n }\n\n function onSend() {\n const text = $input.value.trim();\n if (!text || timer) return;\n\n const danmu = {\n text,\n mode,\n color,\n border: true,\n };\n\n countdown(5);\n $input.value = '';\n danmuku.emit(danmu);\n addClass($send, 'art-disabled');\n art.emit('artplayerPluginDanmuku:emit', danmu);\n }\n\n art.proxy($send, 'click', onSend);\n\n art.proxy($input, 'keypress', (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n onSend();\n }\n });\n\n art.proxy($modes, 'click', (event) => {\n const { dataset } = event.target;\n if (dataset.mode) {\n mode = Number(dataset.mode);\n inverseClass(event.target, 'art-current');\n }\n });\n\n art.proxy($colors, 'click', (event) => {\n const { dataset } = event.target;\n if (dataset.color) {\n color = dataset.color;\n inverseClass(event.target, 'art-current');\n }\n });\n }\n\n function addControl() {\n art.controls.add({\n position: 'right',\n name: 'danmuku',\n click: function () {\n if (danmuku.isHide) {\n danmuku.show();\n art.notice.show = '弹幕显示';\n setStyle($danmuOn, 'display', null);\n setStyle($danmuOff, 'display', 'none');\n } else {\n danmuku.hide();\n art.notice.show = '弹幕隐藏';\n setStyle($danmuOn, 'display', 'none');\n setStyle($danmuOff, 'display', null);\n }\n },\n mounted($ref) {\n append($ref, $danmuOn);\n append($ref, $danmuOff);\n tooltip($ref, '弹幕开关');\n setStyle($danmuOff, 'display', 'none');\n },\n });\n }\n\n function addSetting() {\n art.setting.add({\n name: 'danmuku',\n html: '弹幕设置',\n tooltip: '更多',\n icon: $danmuConfig,\n selector: [\n {\n width: 200,\n html: '播放速度',\n icon: '',\n tooltip: '适中',\n selector: [\n {\n html: '极慢',\n time: 10,\n },\n {\n html: '较慢',\n time: 7.5,\n },\n {\n default: true,\n html: '适中',\n time: 5,\n },\n {\n html: '较快',\n time: 2.5,\n },\n {\n html: '极快',\n time: 1,\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n speed: item.time,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '字体大小',\n icon: '',\n tooltip: '适中',\n selector: [\n {\n html: '极小',\n fontSize: '2%',\n },\n {\n html: '较小',\n fontSize: '4%',\n },\n {\n default: true,\n html: '适中',\n fontSize: '6%',\n },\n {\n html: '较大',\n fontSize: '8%',\n },\n {\n html: '极大',\n fontSize: '10%',\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n fontSize: item.fontSize,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '不透明度',\n icon: '',\n tooltip: '100%',\n selector: [\n {\n default: true,\n opacity: 1,\n html: '100%',\n },\n {\n opacity: 0.75,\n html: '75%',\n },\n {\n opacity: 0.5,\n html: '50%',\n },\n {\n opacity: 0.25,\n html: '25%',\n },\n {\n opacity: 0,\n html: '0%',\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n opacity: item.opacity,\n });\n return item.html;\n },\n },\n {\n width: 200,\n html: '显示范围',\n icon: '',\n tooltip: '3/4',\n selector: [\n {\n html: '1/4',\n margin: ['2%', '75%'],\n },\n {\n html: '半屏',\n margin: ['2%', '50%'],\n },\n {\n default: true,\n html: '3/4',\n margin: ['2%', '25%'],\n },\n {\n html: '满屏',\n margin: ['2%', '2%'],\n },\n ],\n onSelect: function (item) {\n danmuku.config({\n margin: item.margin,\n });\n return item.html;\n },\n },\n {\n html: '弹幕防重叠',\n icon: '',\n tooltip: danmuku.option.antiOverlap ? '开启' : '关闭',\n switch: danmuku.option.antiOverlap,\n onSwitch(item) {\n danmuku.config({\n antiOverlap: !item.switch,\n });\n item.tooltip = item.switch ? '关闭' : '开启';\n return !item.switch;\n },\n },\n {\n html: '同步视频速度',\n icon: '',\n tooltip: danmuku.option.synchronousPlayback ? '开启' : '关闭',\n switch: danmuku.option.synchronousPlayback,\n onSwitch(item) {\n danmuku.config({\n synchronousPlayback: !item.switch,\n });\n item.tooltip = item.switch ? '关闭' : '开启';\n return !item.switch;\n },\n },\n ],\n });\n }\n\n art.on('ready', () => {\n addEmitter();\n addControl();\n addSetting();\n });\n}\n\nif (typeof document !== 'undefined') {\n if (!document.getElementById('artplayer-plugin-danmuku')) {\n const $style = document.createElement('style');\n $style.id = 'artplayer-plugin-danmuku';\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n","module.exports = \"1af484fe1253ce64\";","module.exports = \"a41e824adf503c0d\";","module.exports = \"e0afa382f43c0112\";","module.exports = \"8a330c19349ee459\";","module.exports = \"760835473cfc5438\";"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../packages/artplayer-plugin-danmuku/"} \ No newline at end of file diff --git a/packages/artplayer-document/docs/en/Plugins/danmuku.mdx b/packages/artplayer-document/docs/en/Plugins/danmuku.mdx index 8317b0322..de0afad5b 100644 --- a/packages/artplayer-document/docs/en/Plugins/danmuku.mdx +++ b/packages/artplayer-document/docs/en/Plugins/danmuku.mdx @@ -73,14 +73,16 @@ var art = new Artplayer({ mode: 1, }, ], - speed: 5, // Animation time - opacity: 1, // Opacity - size: 25, // Font size - margin: ['10%', 20], // Margin top and margin bottom - antiOverlap: true, // Anti overlap - useWorker: true, // Use web worker or not - synchronousPlayback: false, // Synchronous playback speed - filter: (danmu) => danmu.text.length <= 50, // filter function + speed: 5, // The duration of the barrage, in seconds, in the range [1 ~ 10] + opacity: 1, // Barrage transparency, the range is [0 ~ 1] + fontSize: 25, // Font size, supports numbers and percentages + color: '#FFFFFF', // Default font color + mode: 0, // Default mode, 0-scroll, 1-still + margin: ['2%', 60], // Barrage top and bottom margins, supports numbers and percentages + antiOverlap: true, // Whether to prevent overlapping + useWorker: true, // whether to use web workers + synchronousPlayback: false, // Whether to sync to playback speed + filter: (danmu) => danmu.text.length < 50, // Barrage filter function }), ], }); diff --git a/packages/artplayer-document/docs/zh-cn/Plugins/danmuku.mdx b/packages/artplayer-document/docs/zh-cn/Plugins/danmuku.mdx index 168418b1b..04b82f3be 100644 --- a/packages/artplayer-document/docs/zh-cn/Plugins/danmuku.mdx +++ b/packages/artplayer-document/docs/zh-cn/Plugins/danmuku.mdx @@ -75,12 +75,14 @@ var art = new Artplayer({ ], speed: 5, // 弹幕持续时间,单位秒,范围在[1 ~ 10] opacity: 1, // 弹幕透明度,范围在[0 ~ 1] - size: 25, // 字体大小,支持数字和百分比 - margin: ['10%', 20], // 弹幕上下边距,支持数字和百分比 + fontSize: 25, // 字体大小,支持数字和百分比 + color: '#FFFFFF', // 默认字体颜色 + mode: 0, // 默认模式,0-滚动,1-静止 + margin: ['2%', 60], // 弹幕上下边距,支持数字和百分比 antiOverlap: true, // 是否防重叠 useWorker: true, // 是否使用 web worker synchronousPlayback: false, // 是否同步到播放速度 - filter: (danmu) => danmu.text.length <= 50, // 弹幕过滤函数 + filter: (danmu) => danmu.text.length < 50, // 弹幕过滤函数 }), ], }); diff --git a/packages/artplayer-plugin-danmuku/src/danmuku.js b/packages/artplayer-plugin-danmuku/src/danmuku.js index f8979e220..3e80f87a5 100644 --- a/packages/artplayer-plugin-danmuku/src/danmuku.js +++ b/packages/artplayer-plugin-danmuku/src/danmuku.js @@ -49,6 +49,8 @@ export default class Danmuku { speed: 5, margin: ['2%', '25%'], opacity: 1, + color: '#FFFFFF', + mode: 0, fontSize: 25, filter: () => true, antiOverlap: true, @@ -63,6 +65,8 @@ export default class Danmuku { speed: 'number', margin: 'array', opacity: 'number', + color: 'string', + mode: 'number', fontSize: 'number|string', filter: 'function', antiOverlap: 'boolean', @@ -342,8 +346,8 @@ export default class Danmuku { danmu.$ref.style.left = `${clientWidth}px`; danmu.$ref.style.opacity = this.option.opacity; danmu.$ref.style.fontSize = `${this.option.fontSize}px`; - danmu.$ref.style.color = danmu.color || '#fff'; - danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color || '#fff'}` : null; + danmu.$ref.style.color = danmu.color; + danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color}` : null; danmu.$ref.style.backgroundColor = danmu.border ? 'rgb(0 0 0 / 50%)' : null; danmu.$ref.style.marginLeft = '0px'; @@ -458,7 +462,8 @@ export default class Danmuku { } this.queue.push({ - mode: 0, + mode: this.option.mode, + color: this.option.color, ...danmu, $state: 'wait', $ref: null, diff --git a/packages/artplayer-plugin-danmuku/src/setting.js b/packages/artplayer-plugin-danmuku/src/setting.js index bdffce9b4..0b4c94411 100644 --- a/packages/artplayer-plugin-danmuku/src/setting.js +++ b/packages/artplayer-plugin-danmuku/src/setting.js @@ -28,6 +28,26 @@ export default function setting(art, danmuku) { const $danmuStyle = getIcon(danmuStyle, 'danmu-config'); function addEmitter() { + const colors = [ + '#FE0302', + '#FF7204', + '#FFAA02', + '#FFD302', + '#FFFF00', + '#A0EE00', + '#00CD00', + '#019899', + '#4266BE', + '#89D5FF', + '#CC0273', + '#222222', + '#9B9B9B', + '#FFFFFF', + ].map((item) => { + const isCurrent = danmuku.option.color === item ? ' art-current' : ''; + return `
`; + }); + const $emitter = append( $controlsCenter, ` @@ -40,6 +60,9 @@ export default function setting(art, danmuku) {
静止
颜色
+
+ ${colors.join('')} +
@@ -53,13 +76,15 @@ export default function setting(art, danmuku) { const $send = query('.art-danmuku-send', $emitter); const $panel = query('.art-danmuku-style-panel', $emitter); const $modes = query('.art-danmuku-style-panel-modes', $emitter); + const $colors = query('.art-danmuku-style-panel-colors', $emitter); if (art.option.backdrop) { addClass($panel, 'art-backdrop-filter'); } - let mode = 0; let timer = null; + let mode = danmuku.option.mode; + let color = danmuku.option.color; append($style, $danmuStyle); function countdown(time) { @@ -80,7 +105,7 @@ export default function setting(art, danmuku) { const danmu = { text, mode, - color: '#ffffff', + color, border: true, }; @@ -107,6 +132,14 @@ export default function setting(art, danmuku) { inverseClass(event.target, 'art-current'); } }); + + art.proxy($colors, 'click', (event) => { + const { dataset } = event.target; + if (dataset.color) { + color = dataset.color; + inverseClass(event.target, 'art-current'); + } + }); } function addControl() { diff --git a/packages/artplayer-plugin-danmuku/src/style.less b/packages/artplayer-plugin-danmuku/src/style.less index d023ebd37..30d3d0b84 100644 --- a/packages/artplayer-plugin-danmuku/src/style.less +++ b/packages/artplayer-plugin-danmuku/src/style.less @@ -21,10 +21,10 @@ display: none; flex-direction: column; position: absolute; - left: -65px; + left: -70px; bottom: 29px; - width: 150px; - padding: 10px 10px 5px; + width: 160px; + padding: 10px 10px 0; border-radius: 3px; background-color: rgba(0, 0, 0, 0.9); @@ -35,7 +35,7 @@ .art-danmuku-style-panel-modes { display: flex; justify-content: space-between; - margin-bottom: 20px; + margin-bottom: 15px; .art-danmuku-style-panel-mode { display: flex; @@ -52,6 +52,38 @@ } } } + + .art-danmuku-style-panel-colors { + display: flex; + gap: 5px; + flex-wrap: wrap; + margin-bottom: 10px; + justify-content: space-between; + + .art-danmuku-style-panel-color { + cursor: pointer; + width: 15px; + height: 15px; + border: 1px solid #fff; + + &.art-current{ + position: relative; + box-shadow: 0 0 2px #fff; + &::before { + content: ''; + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + right: 0; + bottom: 0; + border: 1px solid #000; + } + } + } + + } } &:hover .art-danmuku-style-panel{