build all

Refactor utility functions for improved readability and consistency

- Updated compatibility.js to use consistent line endings and formatting.
- Refactored component.js for better readability and structure, including consistent use of arrow functions and binding.
- Simplified dom.js functions with consistent formatting and improved readability.
- Enhanced emitter.js with consistent formatting and arrow function usage.
- Streamlined error.js for improved readability and consistency.
- Refactored file.js to use consistent formatting and improved readability.
- Improved format.js functions for better readability and consistency.
- Updated index.js to maintain consistent export formatting.
- Refactored property.js for improved readability and consistency.
- Enhanced subtitle.js with consistent formatting and improved readability.
- Refactored time.js for better readability and consistent formatting.

fix: update lint script to target only source files for consistency

Revert "fix: restore export statements for various plugins and update type definitions for better clarity"

This reverts commit b5e969d81ec765cd8a34b06e6ef4f232ef25087f.

fix: restore export statements for various plugins and update type definitions for better clarity

Refactor type definitions to use interfaces instead of type aliases for better extensibility and clarity across i18n, icons, option, player, quality, setting, subtitle, template, and utils modules.
This commit is contained in:
Harvey Zack committed 2025-08-03 13:17:33 +08:00
1 parent 532dd67cfd
commit 35ad9883af
447 files changed
+18248 -17946

No files matched your search

@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,n,l,t,i,a,r,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var a="function"==typeof d[t]&&d[t];if(!l&&a)return a(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var r=Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;f<n.length;f++)y(n[f]);if(l){var g=y(l);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"4omrA":[function(e,n,l,t){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(l),i.export(l,"default",()=>o);var a=e("bundle-text:./style.less"),r=i.interopDefault(a);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:a},icons:{volume:r,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,D=0,j=null,A=!1,P=!1,$=!1;function k(e,n){return n.replace("%s",e)}function O(){A=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function M(){A||(j=setTimeout(()=>{D+=1;let n=e.playDuration-D;n>=1?x.innerHTML=k(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,$||($=!0)),h.innerHTML=k(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?O():M()},1e3))}function _(){A||clearTimeout(j)}function T(){P||(P=!0,function(){n.template.$ads=f(a,'<div class="artplayer-plugin-ads"></div>'),m=f(n.template.$ads,e.video?`<video class="artplayer-plugin-ads-video" src="${e.video}" loop playsInline></video>`:`<div class="artplayer-plugin-ads-html">${e.html}</div>`),w=f(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`<div class="artplayer-plugin-ads-timer"><div class="artplayer-plugin-ads-close">${e.playDuration<=0?e.i18n.close:k(e.playDuration,e.i18n.canBeClosed)}</div><div class="artplayer-plugin-ads-countdown">${k(e.totalDuration,e.i18n.countdown)}</div></div>`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{$&&O()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`<div class="artplayer-plugin-ads-control"><div class="artplayer-plugin-ads-detail">${e.i18n.detail}</div><div class="artplayer-plugin-ads-muted"></div><div class="artplayer-plugin-ads-fullscreen"></div></div>`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,r),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",O),n.proxy(m,"loadedmetadata",()=>{M(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(M(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?_():M()}))}return n.on("ready",()=>{n.once("play",T),n.once("video:playing",T)}),{name:"arLine truncated
!function(e,n,l,t,i,a,r,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var a="function"==typeof d[t]&&d[t];if(!l&&a)return a(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var r=Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;f<n.length;f++)y(n[f]);if(l){var g=y(l);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"2Uydo":[function(e,n,l,t){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(l),i.export(l,"default",()=>o);var a=e("bundle-text:./style.less"),r=i.interopDefault(a);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:a},icons:{volume:r,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,D=0,j=null,P=!1,$=!1,k=!1;function M(e,n){return n.replace("%s",e)}function O(){P=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function A(){P||(j=setTimeout(()=>{D+=1;let n=e.playDuration-D;n>=1?x.innerHTML=M(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,k||(k=!0)),h.innerHTML=M(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?O():A()},1e3))}function _(){P||clearTimeout(j)}function T(){$||($=!0,function(){n.template.$ads=f(a,'<div class="artplayer-plugin-ads"></div>'),m=f(n.template.$ads,e.video?`<video class="artplayer-plugin-ads-video" src="${e.video}" loop playsInline></video>`:`<div class="artplayer-plugin-ads-html">${e.html}</div>`),w=f(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`<div class="artplayer-plugin-ads-timer"><div class="artplayer-plugin-ads-close">${e.playDuration<=0?e.i18n.close:M(e.playDuration,e.i18n.canBeClosed)}</div><div class="artplayer-plugin-ads-countdown">${M(e.totalDuration,e.i18n.countdown)}</div></div>`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{k&&O()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`<div class="artplayer-plugin-ads-control"><div class="artplayer-plugin-ads-detail">${e.i18n.detail}</div><div class="artplayer-plugin-ads-muted"></div><div class="artplayer-plugin-ads-fullscreen"></div></div>`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,r),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",O),n.proxy(m,"loadedmetadata",()=>{A(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(A(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?_():A()}))}return n.on("ready",()=>{n.once("play",T),n.once("video:playing",T)}),{name:"arLine truncated
//# sourceMappingURL=artplayer-plugin-ads.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCgBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAhBxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAgBe,SAAS,EAAmB,CAAM,EAC7C,OAAO,AAAC,IAdR,GAAM,CACF,QAAA,CAAO,CACP,MAAO,CAAE,YAAA,CAAW,CAAE,CACzB,CAAG,AAYa,EAZT,WAAW,CACb,EAAM,EAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,QAGnC,EACI,AAHU,CAAG,CAAC,EAAE,CACN,CAAG,CAAC,EAAE,CAAG,KAEF,EACjB,CAAC,aAAa,EAAE,EAAQ,0CAA0C,EAAE,EAAmB,OAAO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 truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCgBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAhBxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAgBe,SAAS,EAAmB,CAAM,EAC/C,OAAO,AAAC,IAdR,GAAM,CACJ,QAAA,CAAO,CACP,MAAO,CAAE,YAAA,CAAW,CAAE,CACvB,CAAG,AAYW,EAZP,WAAW,CACb,EAAM,EAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,QAGnC,EACE,AAHY,CAAG,CAAC,EAAE,CACN,CAAG,CAAC,EAAE,CAAG,KAEJ,EACjB,CAAC,aAAa,EAAE,EAAQ,0CAA0C,EAAE,EAAmB,OAAO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 truncated
+1 -1
View File
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,n,l,t,i,a,r,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var a="function"==typeof d[t]&&d[t];if(!l&&a)return a(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var r=Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;f<n.length;f++)y(n[f]);if(l){var g=y(l);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({jz4E5:[function(e,n,l,t){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(l),i.export(l,"default",()=>o);var a=e("bundle-text:./style.less"),r=i.interopDefault(a);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:a},icons:{volume:r,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,j=0,D=null,P=!1,$=!1,k=!1;function O(e,n){return n.replace("%s",e)}function A(){P=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function M(){P||(D=setTimeout(()=>{j+=1;let n=e.playDuration-j;n>=1?x.innerHTML=O(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,k||(k=!0)),h.innerHTML=O(e.totalDuration-j,e.i18n.countdown),j>=e.totalDuration?A():M()},1e3))}function E(){P||clearTimeout(D)}function T(){$||($=!0,function(){n.template.$ads=f(a,'<div class="artplayer-plugin-ads"></div>'),m=f(n.template.$ads,e.video?`<video class="artplayer-plugin-ads-video" src="${e.video}" loop playsInline></video>`:`<div class="artplayer-plugin-ads-html">${e.html}</div>`),w=f(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`<div class="artplayer-plugin-ads-timer"><div class="artplayer-plugin-ads-close">${e.playDuration<=0?e.i18n.close:O(e.playDuration,e.i18n.canBeClosed)}</div><div class="artplayer-plugin-ads-countdown">${O(e.totalDuration,e.i18n.countdown)}</div></div>`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{k&&A()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`<div class="artplayer-plugin-ads-control"><div class="artplayer-plugin-ads-detail">${e.i18n.detail}</div><div class="artplayer-plugin-ads-muted"></div><div class="artplayer-plugin-ads-fullscreen"></div></div>`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,r),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",A),n.proxy(m,"loadedmetadata",()=>{M(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(M(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?E():M()}))}return n.on("ready",()=>{n.once("play",T),n.once("video:playing",T)}),{name:"artpLine truncated
!function(e,n,l,t,i,a,r,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var a="function"==typeof d[t]&&d[t];if(!l&&a)return a(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var r=Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;f<n.length;f++)y(n[f]);if(l){var g=y(l);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({ezZng:[function(e,n,l,t){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(l),i.export(l,"default",()=>o);var a=e("bundle-text:./style.less"),r=i.interopDefault(a);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:a},icons:{volume:r,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,D=0,j=null,k=!1,P=!1,$=!1;function O(e,n){return n.replace("%s",e)}function A(){k=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function M(){k||(j=setTimeout(()=>{D+=1;let n=e.playDuration-D;n>=1?x.innerHTML=O(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,$||($=!0)),h.innerHTML=O(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?A():M()},1e3))}function T(){k||clearTimeout(j)}function _(){P||(P=!0,function(){n.template.$ads=f(a,'<div class="artplayer-plugin-ads"></div>'),m=f(n.template.$ads,e.video?`<video class="artplayer-plugin-ads-video" src="${e.video}" loop playsInline></video>`:`<div class="artplayer-plugin-ads-html">${e.html}</div>`),w=f(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`<div class="artplayer-plugin-ads-timer"><div class="artplayer-plugin-ads-close">${e.playDuration<=0?e.i18n.close:O(e.playDuration,e.i18n.canBeClosed)}</div><div class="artplayer-plugin-ads-countdown">${O(e.totalDuration,e.i18n.countdown)}</div></div>`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{$&&A()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`<div class="artplayer-plugin-ads-control"><div class="artplayer-plugin-ads-detail">${e.i18n.detail}</div><div class="artplayer-plugin-ads-muted"></div><div class="artplayer-plugin-ads-fullscreen"></div></div>`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,r),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",A),n.proxy(m,"loadedmetadata",()=>{M(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(M(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?T():M()}))}return n.on("ready",()=>{n.once("play",_),n.once("video:playing",_)}),{name:"artpLine truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,n,t,i,l,r,a,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof d[i]&&d[i],s=u.i||{},p=u.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(n,t){if(!p[n]){if(!e[n]){if(l[n])return l[n];var r="function"==typeof d[i]&&d[i];if(!t&&r)return r(n,!0);if(u)return u(n,!0);if(c&&"string"==typeof n)return c(n);var a=Error("Cannot find module '"+n+"'");throw a.code="MODULE_NOT_FOUND",a}s.resolve=function(t){var i=e[n][1][t];return null!=i?i:t},s.cache={};var o=p[n]=new f.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return p[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:f(n)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=p,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(n,t){e[n]=[function(e,n){n.exports=t},{}]},Object.defineProperty(f,"root",{get:function(){return d[i]}}),d[i]=f;for(var y=0;y<n.length;y++)f(n[y]);if(t){var g=f(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({bzF6W:[function(e,n,t,i){var l=e("@parcel/transformer-js/src/esmodule-helpers.js");l.defineInteropFlag(t),l.export(t,"default",function(){return d});var r=e("@swc/helpers/cjs/_object_spread.cjs"),a=e("bundle-text:./style.less"),o=l.interopDefault(a);function d(e){return function(n){i=(t=n.constructor).version,(0,t.utils.errorHandle)((l=i.split(".").map(Number))[0]+l[1]/100>=5,"Artplayer.js@".concat(i," is not compatible the artplayerPluginAds@").concat(d.version,". Please update it to version Artplayer.js@5.x.x"));var t,i,l,a=n.template.$player,o=n.icons,u=o.volume,s=o.volumeClose,p=o.fullscreenOn,c=o.fullscreenOff,f=o.loading,y=n.constructor,g=y.validator,m=y.utils,v=m.query,b=m.append,h=m.setStyle;e=g((0,r._)({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"}},e),{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});var x=null,w=null,j=null,O=null,D=null,P=null,_=0,k=null,A=!1,M=!1,q=!1;function C(e,n){return n.replace("%s",e)}function T(){A=!0,n.play(),e.video&&x.pause(),h(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function B(){A||(k=setTimeout(function(){_+=1;var n=e.playDuration-_;n>=1?j.innerHTML=C(n,e.i18n.canBeClosed):(j.innerHTML=e.i18n.close,q||(q=!0)),O.innerHTML=C(e.totalDuration-_,e.i18n.countdown),_>=e.totalDuration?T():B()},1e3))}function $(){A||clearTimeout(k)}function E(){M||(M=!0,function(){n.template.$ads=b(a,'<div class="artplayer-plugin-ads"></div>'),x=b(n.template.$ads,e.video?'<video class="artplayer-plugin-ads-video" src="'.concat(e.video,'" loop playsInline></video>'):'<div class="artplayer-plugin-ads-html">'.concat(e.html,"</div>")),P=b(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),b(P,f),j=v(".artplayer-plugin-ads-close",w=b(n.template.$ads,'<div class="artplayer-plugin-ads-timer">\n<div class="artplayer-plugin-ads-close">'.concat(e.playDuration<=0?e.i18n.close:C(e.playDuration,e.i18n.canBeClosed),'</div>\n<div class="artplayer-plugin-ads-countdown">').concat(C(e.totalDuration,e.i18n.countdown),"</div>\n</div>"))),O=v(".artplayer-plugin-ads-countdown",w),e.playDuration>=e.totalDuration&&h(j,"display","none"),n.proxy(j,"click",function(){q&&T()});var t=v(".artplayer-plugin-ads-detail",D=b(n.template.$ads,'<div class="artplayer-plugin-ads-control">\n<div class="artplayer-plugin-ads-detail">'.concat(e.i18n.detail,'</div>\n<div class="artplayer-plugin-ads-muted"></div>\n<div class="artplayer-plugin-ads-fullscreen"></div>\n</div>'))),i=v(".artplayer-plugin-ads-muted",D),l=v(".artplayer-plugin-ads-fullscreen",D);if(e.url?n.proxy(t,"click",function(){window.open(e.url),n.emit("artplayerPluginAds:click",e)}):h(t,"display","none"),e.video){var r=b(i,u),o=b(i,s);h(o,"display","none"),e.muted&&(x.muted=!0,h(r,"display","none"),h(o,"display","inline-flex")),n.proxy(i,"click",function(){x.muted=!x.muted,x.muted?(h(r,"display","none"),h(o,"display","inline-flex")):(h(r,"display","inline-flex"),h(o,"display","none"))})}else h(i,"display","none");var d=b(l,p),y=b(l,c);h(y,"display","none"),n.proxy(l,"click",function(){n.fullscreen=!n.fullscreen,n.fullscreen?(h(d,"display","inline-flex"),h(y,"display","none")):(h(d,"display","none"),h(y,"display","inline-flex"))}),n.proxy(x,"click",function(){e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(x,"error",T),n.proxy(x,"loadedmetadata",function(){B(),x.play(),h(w,"display","flex"),h(D,"display","flex"),h(P,"display","none")})):(B()Line truncated
!function(e,n,t,l,i,r,a,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof d[l]&&d[l],s=u.i||{},p=u.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(n,t){if(!p[n]){if(!e[n]){if(i[n])return i[n];var r="function"==typeof d[l]&&d[l];if(!t&&r)return r(n,!0);if(u)return u(n,!0);if(c&&"string"==typeof n)return c(n);var a=Error("Cannot find module '"+n+"'");throw a.code="MODULE_NOT_FOUND",a}s.resolve=function(t){var l=e[n][1][t];return null!=l?l:t},s.cache={};var o=p[n]=new f.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return p[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:f(n)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=p,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(n,t){e[n]=[function(e,n){n.exports=t},{}]},Object.defineProperty(f,"root",{get:function(){return d[l]}}),d[l]=f;for(var y=0;y<n.length;y++)f(n[y]);if(t){var g=f(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"1qHWP":[function(e,n,t,l){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(t),i.export(t,"default",function(){return d});var r=e("@swc/helpers/cjs/_object_spread.cjs"),a=e("bundle-text:./style.less"),o=i.interopDefault(a);function d(e){return function(n){l=(t=n.constructor).version,(0,t.utils.errorHandle)((i=l.split(".").map(Number))[0]+i[1]/100>=5,"Artplayer.js@".concat(l," is not compatible the artplayerPluginAds@").concat(d.version,". Please update it to version Artplayer.js@5.x.x"));var t,l,i,a=n.template.$player,o=n.icons,u=o.volume,s=o.volumeClose,p=o.fullscreenOn,c=o.fullscreenOff,f=o.loading,y=n.constructor,g=y.validator,m=y.utils,v=m.query,b=m.append,x=m.setStyle;e=g((0,r._)({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"}},e),{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});var h=null,w=null,j=null,O=null,P=null,k=null,D=0,_=null,M=!1,q=!1,A=!1;function C(e,n){return n.replace("%s",e)}function E(){M=!0,n.play(),e.video&&h.pause(),x(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function T(){M||(_=setTimeout(function(){D+=1;var n=e.playDuration-D;n>=1?j.innerHTML=C(n,e.i18n.canBeClosed):(j.innerHTML=e.i18n.close,A||(A=!0)),O.innerHTML=C(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?E():T()},1e3))}function H(){M||clearTimeout(_)}function $(){q||(q=!0,function(){n.template.$ads=b(a,'<div class="artplayer-plugin-ads"></div>'),h=b(n.template.$ads,e.video?'<video class="artplayer-plugin-ads-video" src="'.concat(e.video,'" loop playsInline></video>'):'<div class="artplayer-plugin-ads-html">'.concat(e.html,"</div>")),k=b(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),b(k,f),j=v(".artplayer-plugin-ads-close",w=b(n.template.$ads,'<div class="artplayer-plugin-ads-timer">\n<div class="artplayer-plugin-ads-close">'.concat(e.playDuration<=0?e.i18n.close:C(e.playDuration,e.i18n.canBeClosed),'</div>\n<div class="artplayer-plugin-ads-countdown">').concat(C(e.totalDuration,e.i18n.countdown),"</div>\n</div>"))),O=v(".artplayer-plugin-ads-countdown",w),e.playDuration>=e.totalDuration&&x(j,"display","none"),n.proxy(j,"click",function(){A&&E()});var t=v(".artplayer-plugin-ads-detail",P=b(n.template.$ads,'<div class="artplayer-plugin-ads-control">\n<div class="artplayer-plugin-ads-detail">'.concat(e.i18n.detail,'</div>\n<div class="artplayer-plugin-ads-muted"></div>\n<div class="artplayer-plugin-ads-fullscreen"></div>\n</div>'))),l=v(".artplayer-plugin-ads-muted",P),i=v(".artplayer-plugin-ads-fullscreen",P);if(e.url?n.proxy(t,"click",function(){window.open(e.url),n.emit("artplayerPluginAds:click",e)}):x(t,"display","none"),e.video){var r=b(l,u),o=b(l,s);x(o,"display","none"),e.muted&&(h.muted=!0,x(r,"display","none"),x(o,"display","inline-flex")),n.proxy(l,"click",function(){h.muted=!h.muted,h.muted?(x(r,"display","none"),x(o,"display","inline-flex")):(x(r,"display","inline-flex"),x(o,"display","none"))})}else x(l,"display","none");var d=b(i,p),y=b(i,c);x(y,"display","none"),n.proxy(i,"click",function(){n.fullscreen=!n.fullscreen,n.fullscreen?(x(d,"display","inline-flex"),x(y,"display","none")):(x(d,"display","none"),x(y,"display","inline-flex"))}),n.proxy(h,"click",function(){e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(h,"error",E),n.proxy(h,"loadedmetadata",function(){T(),h.play(),x(w,"display","flex"),x(P,"display","flex"),x(k,"display","none")})):(TLine truncated
+28 -28
View File
@@ -1,30 +1,30 @@
{
"license": "MIT",
"version": "2.0.0",
"name": "artplayer-plugin-ads",
"description": "Ads plugin for ArtPlayer",
"main": "dist/artplayer-plugin-ads.js",
"legacy": "dist/artplayer-plugin-ads.legacy.js",
"module": "dist/artplayer-plugin-ads.esm.js",
"types": "types/artplayer-plugin-ads.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-ads.esm.js",
"require": "./dist/artplayer-plugin-ads.js",
"default": "./dist/artplayer-plugin-ads.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
"name": "artplayer-plugin-ads",
"version": "2.0.0",
"description": "Ads plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-ads.esm.js",
"require": "./dist/artplayer-plugin-ads.js",
"default": "./dist/artplayer-plugin-ads.js"
},
"main": "dist/artplayer-plugin-ads.js",
"legacy": "dist/artplayer-plugin-ads.legacy.js",
"module": "dist/artplayer-plugin-ads.esm.js",
"types": "types/artplayer-plugin-ads.d.ts",
"browserslist": "last 1 Chrome version"
}
+248 -235
View File
@@ -1,285 +1,298 @@
import style from 'bundle-text:./style.less';
import style from 'bundle-text:./style.less'
function checkVersion(art) {
const {
version,
utils: { errorHandle },
} = art.constructor;
const arr = version.split('.').map(Number);
const major = arr[0];
const minor = arr[1] / 100;
errorHandle(
major + minor >= 5,
`Artplayer.js@${version} is not compatible the artplayerPluginAds@${artplayerPluginAds.version}. Please update it to version Artplayer.js@5.x.x`,
);
const {
version,
utils: { errorHandle },
} = art.constructor
const arr = version.split('.').map(Number)
const major = arr[0]
const minor = arr[1] / 100
errorHandle(
major + minor >= 5,
`Artplayer.js@${version} is not compatible the artplayerPluginAds@${artplayerPluginAds.version}. Please update it to version Artplayer.js@5.x.x`,
)
}
export default function artplayerPluginAds(option) {
return (art) => {
checkVersion(art);
return (art) => {
checkVersion(art)
const {
template: { $player },
icons: { volume, volumeClose, fullscreenOn, fullscreenOff, loading },
constructor: {
validator,
utils: { query, append, setStyle },
},
} = art;
const {
template: { $player },
icons: { volume, volumeClose, fullscreenOn, fullscreenOff, loading },
constructor: {
validator,
utils: { query, append, setStyle },
},
} = art
option = validator(
{
html: '',
video: '',
url: '',
playDuration: 5,
totalDuration: 10,
muted: false,
i18n: {
close: '关闭广告',
countdown: '%s秒',
detail: '查看详情',
canBeClosed: '%s秒后可关闭广告',
},
...option,
},
{
html: '?string',
video: '?string',
url: '?string',
playDuration: 'number',
totalDuration: 'number',
muted: '?boolean',
i18n: {
close: 'string',
countdown: 'string',
detail: 'string',
canBeClosed: 'string',
},
},
);
option = validator(
{
html: '',
video: '',
url: '',
playDuration: 5,
totalDuration: 10,
muted: false,
i18n: {
close: '关闭广告',
countdown: '%s秒',
detail: '查看详情',
canBeClosed: '%s秒后可关闭广告',
},
...option,
},
{
html: '?string',
video: '?string',
url: '?string',
playDuration: 'number',
totalDuration: 'number',
muted: '?boolean',
i18n: {
close: 'string',
countdown: 'string',
detail: 'string',
canBeClosed: 'string',
},
},
)
let $ads = null;
let $timer = null;
let $close = null;
let $countdown = null;
let $control = null;
let $loading = null;
let $ads = null
let $timer = null
let $close = null
let $countdown = null
let $control = null
let $loading = null
let time = 0;
let timer = null;
let isEnd = false;
let isInit = false;
let isCanClose = false;
let time = 0
let timer = null
let isEnd = false
let isInit = false
let isCanClose = false
function getI18n(val, str) {
return str.replace('%s', val);
function getI18n(val, str) {
return str.replace('%s', val)
}
function skip() {
isEnd = true
art.play()
if (option.video)
$ads.pause()
setStyle(art.template.$ads, 'display', 'none')
art.emit('artplayerPluginAds:skip', option)
}
function play() {
if (isEnd)
return
timer = setTimeout(() => {
time += 1
const playDuration = option.playDuration - time
if (playDuration >= 1) {
$close.innerHTML = getI18n(playDuration, option.i18n.canBeClosed)
}
else {
$close.innerHTML = option.i18n.close
if (!isCanClose) {
isCanClose = true
}
}
function skip() {
isEnd = true;
art.play();
if (option.video) $ads.pause();
setStyle(art.template.$ads, 'display', 'none');
art.emit('artplayerPluginAds:skip', option);
$countdown.innerHTML = getI18n(option.totalDuration - time, option.i18n.countdown)
if (time >= option.totalDuration) {
skip()
}
function play() {
if (isEnd) return;
timer = setTimeout(() => {
time += 1;
const playDuration = option.playDuration - time;
if (playDuration >= 1) {
$close.innerHTML = getI18n(playDuration, option.i18n.canBeClosed);
} else {
$close.innerHTML = option.i18n.close;
if (!isCanClose) {
isCanClose = true;
}
}
$countdown.innerHTML = getI18n(option.totalDuration - time, option.i18n.countdown);
if (time >= option.totalDuration) {
skip();
} else {
play();
}
}, 1000);
else {
play()
}
}, 1000)
}
function pause() {
if (isEnd) return;
clearTimeout(timer);
}
function pause() {
if (isEnd)
return
clearTimeout(timer)
}
function show() {
art.template.$ads = append($player, '<div class="artplayer-plugin-ads"></div>');
function show() {
art.template.$ads = append($player, '<div class="artplayer-plugin-ads"></div>')
$ads = append(
art.template.$ads,
option.video
? `<video class="artplayer-plugin-ads-video" src="${option.video}" loop playsInline></video>`
: `<div class="artplayer-plugin-ads-html">${option.html}</div>`,
);
$ads = append(
art.template.$ads,
option.video
? `<video class="artplayer-plugin-ads-video" src="${option.video}" loop playsInline></video>`
: `<div class="artplayer-plugin-ads-html">${option.html}</div>`,
)
$loading = append(art.template.$ads, '<div class="artplayer-plugin-ads-loading"></div>');
append($loading, loading);
$loading = append(art.template.$ads, '<div class="artplayer-plugin-ads-loading"></div>')
append($loading, loading)
$timer = append(
art.template.$ads,
`<div class="artplayer-plugin-ads-timer">
$timer = append(
art.template.$ads,
`<div class="artplayer-plugin-ads-timer">
<div class="artplayer-plugin-ads-close">${
option.playDuration <= 0
? option.i18n.close
: getI18n(option.playDuration, option.i18n.canBeClosed)
option.playDuration <= 0
? option.i18n.close
: getI18n(option.playDuration, option.i18n.canBeClosed)
}</div>
<div class="artplayer-plugin-ads-countdown">${getI18n(
option.totalDuration,
option.i18n.countdown,
option.totalDuration,
option.i18n.countdown,
)}</div>
</div>`,
);
)
$close = query('.artplayer-plugin-ads-close', $timer);
$countdown = query('.artplayer-plugin-ads-countdown', $timer);
$close = query('.artplayer-plugin-ads-close', $timer)
$countdown = query('.artplayer-plugin-ads-countdown', $timer)
if (option.playDuration >= option.totalDuration) {
setStyle($close, 'display', 'none');
}
if (option.playDuration >= option.totalDuration) {
setStyle($close, 'display', 'none')
}
art.proxy($close, 'click', () => {
if (isCanClose) {
skip();
}
});
art.proxy($close, 'click', () => {
if (isCanClose) {
skip()
}
})
$control = append(
art.template.$ads,
`<div class="artplayer-plugin-ads-control">
$control = append(
art.template.$ads,
`<div class="artplayer-plugin-ads-control">
<div class="artplayer-plugin-ads-detail">${option.i18n.detail}</div>
<div class="artplayer-plugin-ads-muted"></div>
<div class="artplayer-plugin-ads-fullscreen"></div>
</div>`,
);
)
const $detail = query('.artplayer-plugin-ads-detail', $control);
const $muted = query('.artplayer-plugin-ads-muted', $control);
const $fullscreen = query('.artplayer-plugin-ads-fullscreen', $control);
const $detail = query('.artplayer-plugin-ads-detail', $control)
const $muted = query('.artplayer-plugin-ads-muted', $control)
const $fullscreen = query('.artplayer-plugin-ads-fullscreen', $control)
if (option.url) {
art.proxy($detail, 'click', () => {
window.open(option.url);
art.emit('artplayerPluginAds:click', option);
});
} else {
setStyle($detail, 'display', 'none');
}
if (option.url) {
art.proxy($detail, 'click', () => {
window.open(option.url)
art.emit('artplayerPluginAds:click', option)
})
}
else {
setStyle($detail, 'display', 'none')
}
if (option.video) {
const $volume = append($muted, volume);
const $volumeClose = append($muted, volumeClose);
setStyle($volumeClose, 'display', 'none');
if (option.video) {
const $volume = append($muted, volume)
const $volumeClose = append($muted, volumeClose)
setStyle($volumeClose, 'display', 'none')
// If the ad was set to muted initially, match the icon
if (option.muted) {
$ads.muted = true;
setStyle($volume, 'display', 'none');
setStyle($volumeClose, 'display', 'inline-flex');
}
art.proxy($muted, 'click', () => {
$ads.muted = !$ads.muted;
if ($ads.muted) {
setStyle($volume, 'display', 'none');
setStyle($volumeClose, 'display', 'inline-flex');
} else {
setStyle($volume, 'display', 'inline-flex');
setStyle($volumeClose, 'display', 'none');
}
});
} else {
setStyle($muted, 'display', 'none');
}
const $fullscreenOn = append($fullscreen, fullscreenOn);
const $fullscreenOff = append($fullscreen, fullscreenOff);
setStyle($fullscreenOff, 'display', 'none');
art.proxy($fullscreen, 'click', () => {
art.fullscreen = !art.fullscreen;
if (art.fullscreen) {
setStyle($fullscreenOn, 'display', 'inline-flex');
setStyle($fullscreenOff, 'display', 'none');
} else {
setStyle($fullscreenOn, 'display', 'none');
setStyle($fullscreenOff, 'display', 'inline-flex');
}
});
art.proxy($ads, 'click', () => {
if (option.url) window.open(option.url);
art.emit('artplayerPluginAds:click', option);
});
// If the ad was set to muted initially, match the icon
if (option.muted) {
$ads.muted = true
setStyle($volume, 'display', 'none')
setStyle($volumeClose, 'display', 'inline-flex')
}
function init() {
if (isInit) return;
isInit = true;
art.proxy($muted, 'click', () => {
$ads.muted = !$ads.muted
if ($ads.muted) {
setStyle($volume, 'display', 'none')
setStyle($volumeClose, 'display', 'inline-flex')
}
else {
setStyle($volume, 'display', 'inline-flex')
setStyle($volumeClose, 'display', 'none')
}
})
}
else {
setStyle($muted, 'display', 'none')
}
show();
art.pause();
const $fullscreenOn = append($fullscreen, fullscreenOn)
const $fullscreenOff = append($fullscreen, fullscreenOff)
setStyle($fullscreenOff, 'display', 'none')
if (option.video) {
art.proxy($ads, 'error', skip);
art.proxy($ads, 'loadedmetadata', () => {
play();
$ads.play();
setStyle($timer, 'display', 'flex');
setStyle($control, 'display', 'flex');
setStyle($loading, 'display', 'none');
});
} else {
play();
setStyle($timer, 'display', 'flex');
setStyle($control, 'display', 'flex');
setStyle($loading, 'display', 'none');
}
art.proxy(document, 'visibilitychange', () => {
if (document.hidden) {
pause();
} else {
play();
}
});
art.proxy($fullscreen, 'click', () => {
art.fullscreen = !art.fullscreen
if (art.fullscreen) {
setStyle($fullscreenOn, 'display', 'inline-flex')
setStyle($fullscreenOff, 'display', 'none')
}
else {
setStyle($fullscreenOn, 'display', 'none')
setStyle($fullscreenOff, 'display', 'inline-flex')
}
})
art.on('ready', () => {
art.once('play', init);
art.once('video:playing', init);
});
art.proxy($ads, 'click', () => {
if (option.url)
window.open(option.url)
art.emit('artplayerPluginAds:click', option)
})
}
return {
name: 'artplayerPluginAds',
skip,
pause,
play,
};
};
function init() {
if (isInit)
return
isInit = true
show()
art.pause()
if (option.video) {
art.proxy($ads, 'error', skip)
art.proxy($ads, 'loadedmetadata', () => {
play()
$ads.play()
setStyle($timer, 'display', 'flex')
setStyle($control, 'display', 'flex')
setStyle($loading, 'display', 'none')
})
}
else {
play()
setStyle($timer, 'display', 'flex')
setStyle($control, 'display', 'flex')
setStyle($loading, 'display', 'none')
}
art.proxy(document, 'visibilitychange', () => {
if (document.hidden) {
pause()
}
else {
play()
}
})
}
art.on('ready', () => {
art.once('play', init)
art.once('video:playing', init)
})
return {
name: 'artplayerPluginAds',
skip,
pause,
play,
}
}
}
if (typeof document !== 'undefined') {
if (!document.getElementById('artplayer-plugin-ads')) {
const $style = document.createElement('style');
$style.id = 'artplayer-plugin-ads';
$style.textContent = style;
document.head.appendChild($style);
}
if (!document.getElementById('artplayer-plugin-ads')) {
const $style = document.createElement('style')
$style.id = 'artplayer-plugin-ads'
$style.textContent = style
document.head.appendChild($style)
}
}
if (typeof window !== 'undefined') {
window['artplayerPluginAds'] = artplayerPluginAds;
window.artplayerPluginAds = artplayerPluginAds
}
+40 -40
View File
@@ -1,52 +1,52 @@
import type Artplayer from 'artplayer';
import type Artplayer from 'artplayer'
export = artplayerPluginAds;
export = artplayerPluginAds
export as namespace artplayerPluginAds;
type Option = {
/**
* 广告源文本,支持视频链接、图片链接、HTML文本
*/
source: string;
interface Option {
/**
* 广告源文本,支持视频链接、图片链接、HTML文本
*/
source: string
/**
* 知名广告的类型:'video' | 'image' | 'html'
*/
type: 'video' | 'image' | 'html';
/**
* 知名广告的类型:'video' | 'image' | 'html'
*/
type: 'video' | 'image' | 'html'
/**
* 广告必看的时长,单位为秒
*/
playDuration?: number;
/**
* 广告必看的时长,单位为秒
*/
playDuration?: number
/**
* 广告总的时长,单位为秒
*/
totalDuration?: number;
/**
* 广告总的时长,单位为秒
*/
totalDuration?: number
/**
* 视频广告是否默认静音
*/
muted?: boolean;
};
/**
* 视频广告是否默认静音
*/
muted?: boolean
}
type Ads = {
name: 'artplayerPluginAds';
interface Ads {
name: 'artplayerPluginAds'
/**
* 跳过广告
*/
skip: () => void;
/**
* 跳过广告
*/
skip: () => void
/**
* 暂停广告
*/
pause: () => void;
/**
* 暂停广告
*/
pause: () => void
/**
* 播放广告
*/
play: () => void;
};
/**
* 播放广告
*/
play: () => void
}
declare const artplayerPluginAds: (option: Option) => (art: Artplayer) => Ads;
declare const artplayerPluginAds: (option: Option) => (art: Artplayer) => Ads
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,r,t,n,o,i,u,l){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(p&&"string"==typeof r)return p(r);var u=Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var l=c[r]=new s.Module(r);e[r][0].call(l.exports,d,l,l.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:s(r)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.require=p,this.exports={}},s.modules=e,s.cache=c,s.parent=a,s.distDir=void 0,s.publicUrl=void 0,s.devServer=void 0,s.i=d,s.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(s,"root",{get:function(){return f[n]}}),f[n]=s;for(var m=0;m<r.length;m++)s(r[m]);if(t){var y=s(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=y:"function"==typeof define&&define.amd&&define(function(){return y})}}({"4omrA":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e={}){return r=>{var t,n,o,i,u,l,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:p}=r.constructor.utils,{blur:s="50px",opacity:m=.5,frequency:y=10,duration:g=.3}=e,b=d("div"),h=((t=b).innerHTML=Array(9).fill("<div></div>").join(""),Array.from(t.children));n=b,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),p(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=h,u=s,l=m,f=g,i.forEach(e=>{p(e,{opacity:l,filter:`blur(${u})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let u=0;return function o(){let l=performance.now();if(l-u<1e3/n||!r.playing){w=requestAnimationFrame(o);return}u=l;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[u,l,f]=i.getImageData(0,0,1,1).data;return`rgb(${u}, ${l}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),w=requestAnimationFrame(o)}}(a,h,y),w=null;function x(){w||v()}function j(){w&&(cancelAnimationFrame(w),w=null)}return r.on("ready",x),r.on("destroy",j),{name:"artplayerPluginAmbilight",start:x,stop:j}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],w4pLy:[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["4omrA"],"4omrA","parcelRequireb9c8",{});let{default:e}=parcelRequireb9c8("4omrA");export{e as default};
!function(e,r,t,n,o,i,l,u){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(s&&"string"==typeof r)return s(r);var l=Error("Cannot find module '"+r+"'");throw l.code="MODULE_NOT_FOUND",l}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var u=c[r]=new p.Module(r);e[r][0].call(u.exports,d,u,u.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=a,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return f[n]}}),f[n]=p;for(var m=0;m<r.length;m++)p(r[m]);if(t){var g=p(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"9P7rs":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e={}){return r=>{var t,n,o,i,l,u,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:s}=r.constructor.utils,{blur:p="50px",opacity:m=.5,frequency:g=10,duration:y=.3}=e,h=d("div"),b=((t=h).innerHTML=Array.from({length:9}).fill("<div></div>").join(""),Array.from(t.children));n=h,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),s(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=b,l=p,u=m,f=y,i.forEach(e=>{s(e,{opacity:u,filter:`blur(${l})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let l=0;return function o(){let u=performance.now();if(u-l<1e3/n||!r.playing){w=requestAnimationFrame(o);return}l=u;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[l,u,f]=i.getImageData(0,0,1,1).data;return`rgb(${l}, ${u}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),w=requestAnimationFrame(o)}}(a,b,g),w=null;function x(){w||v()}function j(){w&&(cancelAnimationFrame(w),w=null)}return r.on("ready",x),r.on("destroy",j),{name:"artplayerPluginAmbilight",start:x,stop:j}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["9P7rs"],"9P7rs","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("9P7rs");export{e as default};
//# sourceMappingURL=artplayer-plugin-ambilight.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCAe,SAAS,EAAyB,EAAS,CAAC,CAAC,EACxD,OAAO,AAAC,QAqCqB,EAKD,EAAY,EAeZ,EAAW,EAAM,EAAS,EAxDlD,GAAM,CAAE,OAAA,CAAM,CAAE,CAAG,EAAI,QAAQ,CACzB,CAAE,cAAA,CAAa,CAAE,SAAA,CAAQ,CAAE,UAAA,CAAS,CAAE,CAAG,EAAI,WAAW,CAAC,KAAK,CAC9D,CAAE,KAAA,EAAO,MAAM,CAAE,QAAA,EAAU,EAAG,CAAE,UAAA,EAAY,EAAE,CAAE,SAAA,EAAW,EAAG,CAAE,CAAG,EAEnE,EAAa,EAAc,OAC3B,GAgCF,CADqB,EA/BS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","sources":["<anon>","src/index.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bLine truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCAe,SAAS,EAAyB,EAAS,CAAC,CAAC,EAC1D,OAAO,AAAC,QAqCmB,EAKD,EAAY,EAeZ,EAAW,EAAM,EAAS,EAxDlD,GAAM,CAAE,OAAA,CAAM,CAAE,CAAG,EAAI,QAAQ,CACzB,CAAE,cAAA,CAAa,CAAE,SAAA,CAAQ,CAAE,UAAA,CAAS,CAAE,CAAG,EAAI,WAAW,CAAC,KAAK,CAC9D,CAAE,KAAA,EAAO,MAAM,CAAE,QAAA,EAAU,EAAG,CAAE,UAAA,EAAY,EAAE,CAAE,SAAA,EAAW,EAAG,CAAE,CAAG,EAEnE,EAAa,EAAc,OAC3B,GAgCJ,CADuB,EA/BS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","sources":["<anon>","packages/artplayer-plugin-ambilight/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof Line truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,r,t,n,o,i,u,l){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(s&&"string"==typeof r)return s(r);var u=Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var l=c[r]=new p.Module(r);e[r][0].call(l.exports,d,l,l.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=a,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return f[n]}}),f[n]=p;for(var m=0;m<r.length;m++)p(r[m]);if(t){var g=p(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({jz4E5:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e={}){return r=>{var t,n,o,i,u,l,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:s}=r.constructor.utils,{blur:p="50px",opacity:m=.5,frequency:g=10,duration:y=.3}=e,h=d("div"),b=((t=h).innerHTML=Array(9).fill("<div></div>").join(""),Array.from(t.children));n=h,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),s(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=b,u=p,l=m,f=y,i.forEach(e=>{s(e,{opacity:l,filter:`blur(${u})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let u=0;return function o(){let l=performance.now();if(l-u<1e3/n||!r.playing){j=requestAnimationFrame(o);return}u=l;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[u,l,f]=i.getImageData(0,0,1,1).data;return`rgb(${u}, ${l}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),j=requestAnimationFrame(o)}}(a,b,g),j=null;function w(){j||v()}function x(){j&&(cancelAnimationFrame(j),j=null)}return r.on("ready",w),r.on("destroy",x),{name:"artplayerPluginAmbilight",start:w,stop:x}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7o2zS":[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["jz4E5"],"jz4E5","parcelRequireb9c8",{});
!function(e,r,t,n,o,i,u,l){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(s&&"string"==typeof r)return s(r);var u=Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var l=c[r]=new p.Module(r);e[r][0].call(l.exports,d,l,l.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=a,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return f[n]}}),f[n]=p;for(var m=0;m<r.length;m++)p(r[m]);if(t){var g=p(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"2PWBI":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e={}){return r=>{var t,n,o,i,u,l,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:s}=r.constructor.utils,{blur:p="50px",opacity:m=.5,frequency:g=10,duration:y=.3}=e,h=d("div"),b=((t=h).innerHTML=Array.from({length:9}).fill("<div></div>").join(""),Array.from(t.children));n=h,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),s(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=b,u=p,l=m,f=y,i.forEach(e=>{s(e,{opacity:l,filter:`blur(${u})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let u=0;return function o(){let l=performance.now();if(l-u<1e3/n||!r.playing){w=requestAnimationFrame(o);return}u=l;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[u,l,f]=i.getImageData(0,0,1,1).data;return`rgb(${u}, ${l}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),w=requestAnimationFrame(o)}}(a,b,g),w=null;function x(){w||v()}function j(){w&&(cancelAnimationFrame(w),w=null)}return r.on("ready",x),r.on("destroy",j),{name:"artplayerPluginAmbilight",start:x,stop:j}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["2PWBI"],"2PWBI","parcelRequire4dc0",{});
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,r,t,n,o,i,a,u){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof c[n]&&c[n],l=f.i||{},d=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!d[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof c[n]&&c[n];if(!t&&i)return i(r,!0);if(f)return f(r,!0);if(s&&"string"==typeof r)return s(r);var a=Error("Cannot find module '"+r+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},l.cache={};var u=d[r]=new p.Module(r);e[r][0].call(u.exports,l,u,u.exports,c)}return d[r].exports;function l(e){var r=l.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=d,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return c[n]}}),c[n]=p;for(var y=0;y<r.length;y++)p(r[y]);if(t){var v=p(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=v:"function"==typeof define&&define.amd&&define(function(){return v})}}({bzF6W:[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(t),o.export(t,"default",function(){return a});var i=e("@swc/helpers/cjs/_sliced_to_array.cjs");function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(r){var t,n,o,a,u,c,f,l,d,s,p,y,v,m=r.template.$video,b=r.constructor.utils,g=b.createElement,h=b.addClass,_=b.setStyles,w=e.blur,j=e.opacity,x=e.frequency,A=e.duration,O=g("div"),I=((t=O).innerHTML=Array(9).fill("<div></div>").join(""),Array.from(t.children));n=O,o=m,h(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),_(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),a=I,u=void 0===w?"50px":w,c=void 0===j?.5:j,f=void 0===A?.3:A,a.forEach(function(e){_(e,{opacity:c,filter:"blur(".concat(u,")"),transition:"background-color ".concat(f,"s ease")})});var M=(l=m,d=I,s=void 0===x?10:x,y=(p=g("canvas")).getContext("2d"),p.width=3,p.height=3,v=0,function e(){var t=performance.now();if(t-v<1e3/s||!r.playing){E=requestAnimationFrame(e);return}v=t;var n=l.videoWidth/3,o=l.videoHeight/3,a=[[0,0],[n,0],[2*n,0],[0,o],[n,o],[2*n,o],[0,2*o],[n,2*o],[2*n,2*o]].map(function(e){var r,t,a,u,c=(0,i._)(e,2),f=c[0],d=c[1];return y.drawImage(l,f,d,n,o,0,0,1,1),t=(r=(0,i._)(y.getImageData(0,0,1,1).data,3))[0],a=r[1],u=r[2],"rgb(".concat(t,", ").concat(a,", ").concat(u,")")});d.forEach(function(e,r){e.style.backgroundColor=a[r]}),E=requestAnimationFrame(e)}),E=null;function F(){E||M()}function S(){E&&(cancelAnimationFrame(E),E=null)}return r.on("ready",F),r.on("destroy",S),{name:"artplayerPluginAmbilight",start:F,stop:S}}}"undefined"!=typeof window&&(window.artplayerPluginAmbilight=a)},{"@swc/helpers/cjs/_sliced_to_array.cjs":"69dwW","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"69dwW":[function(e,r,t,n){"use strict";var o=e("1c05c980d01d7095"),i=e("d604d0840046159b"),a=e("9ac1542249932d1a"),u=e("d04f777c592843b");t._=function(e,r){return o._(e)||i._(e,r)||u._(e,r)||a._()}},{"1c05c980d01d7095":"dgv90",d604d0840046159b:"8f1n5","9ac1542249932d1a":"edvMI",d04f777c592843b:"ikxEb"}],dgv90:[function(e,r,t,n){"use strict";t._=function(e){if(Array.isArray(e))return e}},{}],"8f1n5":[function(e,r,t,n){"use strict";t._=function(e,r){var t,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(t=o.next()).done)&&(i.push(t.value),!r||i.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(u)throw n}}return i}}},{}],edvMI:[function(e,r,t,n){"use strict";t._=function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},{}],ikxEb:[function(e,r,t,n){"use strict";var o=e("3202629de7a6dd0f");t._=function(e,r){if(e){if("string"==typeof e)return o._(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o._(e,r)}}},{"3202629de7a6dd0f":"8HLaN"}],"8HLaN":[function(e,r,t,n){"use strict";t._=function(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}},{}],ihnSZ:[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwLine truncated
!function(e,r,t,n,o,i,a,u){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof f[n]&&f[n],l=c.i||{},d=c.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!d[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(c)return c(r,!0);if(s&&"string"==typeof r)return s(r);var a=Error("Cannot find module '"+r+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},l.cache={};var u=d[r]=new p.Module(r);e[r][0].call(u.exports,l,u,u.exports,f)}return d[r].exports;function l(e){var r=l.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=d,p.parent=c,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return f[n]}}),f[n]=p;for(var y=0;y<r.length;y++)p(r[y]);if(t){var m=p(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"8Uro8":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(t),o.export(t,"default",function(){return a});var i=e("@swc/helpers/cjs/_sliced_to_array.cjs");function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(r){var t,n,o,a,u,f,c,l,d,s,p,y,m,v=r.template.$video,h=r.constructor.utils,g=h.createElement,b=h.addClass,_=h.setStyles,j=e.blur,w=e.opacity,x=e.frequency,A=e.duration,S=g("div"),O=((t=S).innerHTML=Array.from({length:9}).fill("<div></div>").join(""),Array.from(t.children));n=S,o=v,b(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),_(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),a=O,u=void 0===j?"50px":j,f=void 0===w?.5:w,c=void 0===A?.3:A,a.forEach(function(e){_(e,{opacity:f,filter:"blur(".concat(u,")"),transition:"background-color ".concat(c,"s ease")})});var M=(l=v,d=O,s=void 0===x?10:x,y=(p=g("canvas")).getContext("2d"),p.width=3,p.height=3,m=0,function e(){var t=performance.now();if(t-m<1e3/s||!r.playing){q=requestAnimationFrame(e);return}m=t;var n=l.videoWidth/3,o=l.videoHeight/3,a=[[0,0],[n,0],[2*n,0],[0,o],[n,o],[2*n,o],[0,2*o],[n,2*o],[2*n,2*o]].map(function(e){var r,t,a,u,f=(0,i._)(e,2),c=f[0],d=f[1];return y.drawImage(l,c,d,n,o,0,0,1,1),t=(r=(0,i._)(y.getImageData(0,0,1,1).data,3))[0],a=r[1],u=r[2],"rgb(".concat(t,", ").concat(a,", ").concat(u,")")});d.forEach(function(e,r){e.style.backgroundColor=a[r]}),q=requestAnimationFrame(e)}),q=null;function I(){q||M()}function P(){q&&(cancelAnimationFrame(q),q=null)}return r.on("ready",I),r.on("destroy",P),{name:"artplayerPluginAmbilight",start:I,stop:P}}}"undefined"!=typeof window&&(window.artplayerPluginAmbilight=a)},{"@swc/helpers/cjs/_sliced_to_array.cjs":"gIQTH","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],gIQTH:[function(e,r,t,n){"use strict";var o=e("d7c30a5ae0c1ab2"),i=e("3aacfce52f67defd"),a=e("f0dae09a1a08b16a"),u=e("83f3648e614d0830");t._=function(e,r){return o._(e)||i._(e,r)||u._(e,r)||a._()}},{d7c30a5ae0c1ab2:"3QSPl","3aacfce52f67defd":"5SSeo",f0dae09a1a08b16a:"heYSj","83f3648e614d0830":"fh7mx"}],"3QSPl":[function(e,r,t,n){"use strict";t._=function(e){if(Array.isArray(e))return e}},{}],"5SSeo":[function(e,r,t,n){"use strict";t._=function(e,r){var t,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(t=o.next()).done)&&(i.push(t.value),!r||i.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(u)throw n}}return i}}},{}],heYSj:[function(e,r,t,n){"use strict";t._=function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},{}],fh7mx:[function(e,r,t,n){"use strict";var o=e("3ee51b7dc02d0c44");t._=function(e,r){if(e){if("string"==typeof e)return o._(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o._(e,r)}}},{"3ee51b7dc02d0c44":"1WOAB"}],"1WOAB":[function(e,r,t,n){"use strict";t._=function(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}},{}],qpMMf:[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||ObjectLine truncated
@@ -1,30 +1,30 @@
{
"license": "MIT",
"version": "1.0.0",
"name": "artplayer-plugin-ambilight",
"description": "ambilight plugin for ArtPlayer",
"main": "dist/artplayer-plugin-ambilight.js",
"legacy": "dist/artplayer-plugin-ambilight.legacy.js",
"module": "dist/artplayer-plugin-ambilight.esm.js",
"types": "types/artplayer-plugin-ambilight.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-ambilight.esm.js",
"require": "./dist/artplayer-plugin-ambilight.js",
"default": "./dist/artplayer-plugin-ambilight.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
"name": "artplayer-plugin-ambilight",
"version": "1.0.0",
"description": "ambilight plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-ambilight.esm.js",
"require": "./dist/artplayer-plugin-ambilight.js",
"default": "./dist/artplayer-plugin-ambilight.js"
},
"main": "dist/artplayer-plugin-ambilight.js",
"legacy": "dist/artplayer-plugin-ambilight.legacy.js",
"module": "dist/artplayer-plugin-ambilight.esm.js",
"types": "types/artplayer-plugin-ambilight.d.ts",
"browserslist": "last 1 Chrome version"
}
+103 -103
View File
@@ -1,119 +1,119 @@
export default function artplayerPluginAmbilight(option = {}) {
return (art) => {
const { $video } = art.template;
const { createElement, addClass, setStyles } = art.constructor.utils;
const { blur = '50px', opacity = 0.5, frequency = 10, duration = 0.3 } = option;
return (art) => {
const { $video } = art.template
const { createElement, addClass, setStyles } = art.constructor.utils
const { blur = '50px', opacity = 0.5, frequency = 10, duration = 0.3 } = option
const $ambilight = createElement('div');
const gridItems = createGridItems($ambilight);
const $ambilight = createElement('div')
const gridItems = createGridItems($ambilight)
setupAmbilight($ambilight, $video);
setupGridItems(gridItems, blur, opacity, duration);
setupAmbilight($ambilight, $video)
setupGridItems(gridItems, blur, opacity, duration)
const updateColors = createColorUpdater($video, gridItems, frequency);
const updateColors = createColorUpdater($video, gridItems, frequency)
let animationFrameId = null;
let animationFrameId = null
function start() {
if (!animationFrameId) {
updateColors();
}
function start() {
if (!animationFrameId) {
updateColors()
}
}
function stop() {
if (animationFrameId) {
cancelAnimationFrame(animationFrameId)
animationFrameId = null
}
}
art.on('ready', start)
art.on('destroy', stop)
return {
name: 'artplayerPluginAmbilight',
start,
stop,
}
function createGridItems($ambilight) {
$ambilight.innerHTML = Array.from({ length: 9 }).fill('<div></div>').join('')
return Array.from($ambilight.children)
}
function setupAmbilight($ambilight, $video) {
addClass($ambilight, 'artplayer-plugin-ambilight')
$video.parentNode.insertBefore($ambilight, $video)
setStyles($ambilight, {
position: 'absolute',
top: 0,
left: 0,
zIndex: 9,
inset: 0,
display: 'grid',
gridTemplateColumns: '1fr 1fr 1fr',
gridTemplateRows: '1fr 1fr 1fr',
})
}
function setupGridItems(gridItems, blur, opacity, duration) {
gridItems.forEach(($item) => {
setStyles($item, {
opacity,
filter: `blur(${blur})`,
transition: `background-color ${duration}s ease`,
})
})
}
function createColorUpdater($video, gridItems, frequency) {
const canvas = createElement('canvas')
const ctx = canvas.getContext('2d')
canvas.width = 3
canvas.height = 3
function getAverageColor(x, y, w, h) {
ctx.drawImage($video, x, y, w, h, 0, 0, 1, 1)
const [r, g, b] = ctx.getImageData(0, 0, 1, 1).data
return `rgb(${r}, ${g}, ${b})`
}
let lastUpdateTime = 0
return function updateColors() {
const now = performance.now()
if (now - lastUpdateTime < 1000 / frequency || !art.playing) {
animationFrameId = requestAnimationFrame(updateColors)
return
}
function stop() {
if (animationFrameId) {
cancelAnimationFrame(animationFrameId);
animationFrameId = null;
}
}
lastUpdateTime = now
art.on('ready', start);
art.on('destroy', stop);
const w = $video.videoWidth / 3
const h = $video.videoHeight / 3
return {
name: 'artplayerPluginAmbilight',
start,
stop,
};
const colors = [
[0, 0],
[w, 0],
[2 * w, 0],
[0, h],
[w, h],
[2 * w, h],
[0, 2 * h],
[w, 2 * h],
[2 * w, 2 * h],
].map(([x, y]) => getAverageColor(x, y, w, h))
function createGridItems($ambilight) {
$ambilight.innerHTML = Array(9).fill('<div></div>').join('');
return Array.from($ambilight.children);
}
gridItems.forEach(($item, index) => {
$item.style.backgroundColor = colors[index]
})
function setupAmbilight($ambilight, $video) {
addClass($ambilight, 'artplayer-plugin-ambilight');
$video.parentNode.insertBefore($ambilight, $video);
setStyles($ambilight, {
position: 'absolute',
top: 0,
left: 0,
zIndex: 9,
inset: 0,
display: 'grid',
gridTemplateColumns: '1fr 1fr 1fr',
gridTemplateRows: '1fr 1fr 1fr',
});
}
function setupGridItems(gridItems, blur, opacity, duration) {
gridItems.forEach(($item) => {
setStyles($item, {
opacity,
filter: `blur(${blur})`,
transition: `background-color ${duration}s ease`,
});
});
}
function createColorUpdater($video, gridItems, frequency) {
const canvas = createElement('canvas');
const ctx = canvas.getContext('2d');
canvas.width = 3;
canvas.height = 3;
function getAverageColor(x, y, w, h) {
ctx.drawImage($video, x, y, w, h, 0, 0, 1, 1);
const [r, g, b] = ctx.getImageData(0, 0, 1, 1).data;
return `rgb(${r}, ${g}, ${b})`;
}
let lastUpdateTime = 0;
return function updateColors() {
const now = performance.now();
if (now - lastUpdateTime < 1000 / frequency || !art.playing) {
animationFrameId = requestAnimationFrame(updateColors);
return;
}
lastUpdateTime = now;
const w = $video.videoWidth / 3;
const h = $video.videoHeight / 3;
const colors = [
[0, 0],
[w, 0],
[2 * w, 0],
[0, h],
[w, h],
[2 * w, h],
[0, 2 * h],
[w, 2 * h],
[2 * w, 2 * h],
].map(([x, y]) => getAverageColor(x, y, w, h));
gridItems.forEach(($item, index) => {
$item.style.backgroundColor = colors[index];
});
animationFrameId = requestAnimationFrame(updateColors);
};
}
};
animationFrameId = requestAnimationFrame(updateColors)
}
}
}
}
if (typeof window !== 'undefined') {
window['artplayerPluginAmbilight'] = artplayerPluginAmbilight;
window.artplayerPluginAmbilight = artplayerPluginAmbilight
}
@@ -1,20 +1,20 @@
import type Artplayer from 'artplayer';
import type Artplayer from 'artplayer'
export = artplayerPluginAmbilight;
export = artplayerPluginAmbilight
export as namespace artplayerPluginAmbilight;
type Option = {
blur?: string;
opacity?: number;
frequency?: number;
zIndex?: number;
duration?: number;
};
interface Option {
blur?: string
opacity?: number
frequency?: number
zIndex?: number
duration?: number
}
type Result = {
name: 'artplayerPluginAmbilight';
start: () => void;
stop: () => void;
};
interface Result {
name: 'artplayerPluginAmbilight'
start: () => void
stop: () => void
}
declare const artplayerPluginAmbilight: (option: Option) => (art: Artplayer) => Result;
declare const artplayerPluginAmbilight: (option: Option) => (art: Artplayer) => Result
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,a,i,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var l=d[t]=new f.Module(t);e[t][0].call(l.exports,c,l,l.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"4omrA":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var a=e("bundle-text:./style.less"),i=o.interopDefault(a);function l(e={}){let{length:t=3,interval:r=100,sampleRate:n=16e3,autoHideTimeout:o=1e4,onAudioChunk:a=()=>null}=e;return e=>{let i=!1,l=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,m=null,g=null,b=e.layers.add({name:"asr",html:""});function v(){b.style.display="none"}function w(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,o),b.style.display="",b.innerHTML=e.split(/(?<=[、。!?!?\.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-t).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let h=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `,x=()=>{let e=new Blob([h],{type:"application/javascript"});return URL.createObjectURL(e)};async function A(){return l||"suspended"===(l=new(window.AudioContext||window.webkitAudioContext)({sampleRate:n})).state&&await l.resume(),l}async function U(){if(!u&&e.video)try{return u=l.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed:",e)}try{if(m||(m=await P(e.video)),m)return g=l.createMediaStreamSource(m)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function P(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function j(){if(!i)try{await A();let e=await U();if(!e)throw Error("Could not establish audio source");if(!f){let e=x();await l.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=l.createGain()).gain.value=1,(s=new AudioWorkletNode(l,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(l.destination);let t=r/1e3*n;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),o=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),i=function(e,t){let r=e.byteLength,n=new ArrayBuffer(44+r),o=new DataView(n),a=(e,t)=>{for(let r=0;r<t.length;r++)o.setUint8(e+r,t.charCodeAt(r))};return a(0,"RIFF"),o.setUint32(4,36+r,!0),a(8,"WAVE"),a(12,"fmt "),o.setUint32(16,16,!0),o.setUint16(20,1,!0),o.setUint16(22,1,!0),o.setUint32(24,t,!0),o.setUint32(28,2*t,!0),o.setUint16(32,2,!0),o.setUint16(34,16,!0),a(36,"data"),o.setUint32(40,r,!0),new Uint8Array(n).set(new Uint8Array(e),44),n}(o,n),l=await a({pcm:o,wav:i});w(l)},r),i=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await M()}}async function M(){i&&(i=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function O(){await M(),g&&(g.disconnect(),g=null),u&&(u.disconnect(),u=null),m&&(m.getTracks().forEach(e=>e.stop()),m=null),l&&(await l.close(),l=null),f=!1}return e.on("video:volumechange",()=>{c&&(c.gain.value=e.volume)}),e.on("play",j),e.on("pause",M),e.on("destroy",O),{name:"artplayerPluginAsr",stop:O,hide:v,append:w}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){lLine truncated
!function(e,t,r,n,o,a,i,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var l=d[t]=new f.Module(t);e[t][0].call(l.exports,c,l,l.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"40eeC":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var a=e("bundle-text:./style.less"),i=o.interopDefault(a);function l(e={}){let{length:t=3,interval:r=100,sampleRate:n=16e3,autoHideTimeout:o=1e4,onAudioChunk:a=()=>null}=e;return e=>{let i=!1,l=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,m=null,b=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function h(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,o),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-t).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let w=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `;async function x(){return l||"suspended"===(l=new(window.AudioContext||window.webkitAudioContext)({sampleRate:n})).state&&await l.resume(),l}async function A(){if(!u&&e.video)try{return u=l.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed:",e)}try{if(m||(m=await U(e.video)),m)return b=l.createMediaStreamSource(m)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function U(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function P(){if(!i)try{await x();let e=await A();if(!e)throw Error("Could not establish audio source");if(!f){let e=(()=>{let e=new Blob([w],{type:"application/javascript"});return URL.createObjectURL(e)})();await l.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=l.createGain()).gain.value=1,(s=new AudioWorkletNode(l,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(l.destination);let t=r/1e3*n;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),o=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),i=function(e,t){let r=e.byteLength,n=new ArrayBuffer(44+r),o=new DataView(n),a=(e,t)=>{for(let r=0;r<t.length;r++)o.setUint8(e+r,t.charCodeAt(r))};return a(0,"RIFF"),o.setUint32(4,36+r,!0),a(8,"WAVE"),a(12,"fmt "),o.setUint32(16,16,!0),o.setUint16(20,1,!0),o.setUint16(22,1,!0),o.setUint32(24,t,!0),o.setUint32(28,2*t,!0),o.setUint16(32,2,!0),o.setUint16(34,16,!0),a(36,"data"),o.setUint32(40,r,!0),new Uint8Array(n).set(new Uint8Array(e),44),n}(o,n),l=await a({pcm:o,wav:i});h(l)},r),i=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await j()}}async function j(){i&&(i=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function M(){await j(),b&&(b.disconnect(),b=null),u&&(u.disconnect(),u=null),m&&(m.getTracks().forEach(e=>e.stop()),m=null),l&&(await l.close(),l=null),f=!1}return e.on("video:volumechange",()=>{c&&(c.gain.value=e.volume)}),e.on("play",P),e.on("pause",j),e.on("destroy",M),{name:"artplayerPluginAsr",stop:M,hide:v,append:h}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let Line truncated
//# sourceMappingURL=artplayer-plugin-asr.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAEe,SAAS,EAAmB,EAAS,CAAC,CAAC,EAClD,GAAM,CACF,OAAA,EAAS,CAAC,CACV,SAAA,EAAW,GAAG,CACd,WAAA,EAAa,IAAK,CAClB,gBAAA,EAAkB,GAAK,CACvB,aAAA,EAAe,IAAM,IAAI,CAC5B,CAAG,EAEJ,OAAO,AAAC,IACJ,IAAI,EAAU,CAAA,EACV,EAAW,KACX,EAAa,KACb,EAAe,KACf,EAAW,KACX,EAAe,EAAE,CACjB,EAAQ,KACR,EA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 truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAEe,SAAS,EAAmB,EAAS,CAAC,CAAC,EACpD,GAAM,CACJ,OAAA,EAAS,CAAC,CACV,SAAA,EAAW,GAAG,CACd,WAAA,EAAa,IAAK,CAClB,gBAAA,EAAkB,GAAK,CACvB,aAAA,EAAe,IAAM,IAAI,CAC1B,CAAG,EAEJ,OAAO,AAAC,IACN,IAAI,EAAU,CAAA,EACV,EAAW,KACX,EAAa,KACb,EAAe,KACf,EAAW,KACX,EAAe,EAAE,CACjB,EAAQ,KACR,EA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 truncated
+1 -1
View File
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,a,i,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var l=d[t]=new f.Module(t);e[t][0].call(l.exports,c,l,l.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({jz4E5:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var a=e("bundle-text:./style.less"),i=o.interopDefault(a);function l(e={}){let{length:t=3,interval:r=100,sampleRate:n=16e3,autoHideTimeout:o=1e4,onAudioChunk:a=()=>null}=e;return e=>{let i=!1,l=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,m=null,b=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function w(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,o),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?\.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-t).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let h=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `,x=()=>{let e=new Blob([h],{type:"application/javascript"});return URL.createObjectURL(e)};async function A(){return l||"suspended"===(l=new(window.AudioContext||window.webkitAudioContext)({sampleRate:n})).state&&await l.resume(),l}async function j(){if(!u&&e.video)try{return u=l.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed:",e)}try{if(m||(m=await U(e.video)),m)return b=l.createMediaStreamSource(m)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function U(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function P(){if(!i)try{await A();let e=await j();if(!e)throw Error("Could not establish audio source");if(!f){let e=x();await l.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=l.createGain()).gain.value=1,(s=new AudioWorkletNode(l,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(l.destination);let t=r/1e3*n;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),o=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),i=function(e,t){let r=e.byteLength,n=new ArrayBuffer(44+r),o=new DataView(n),a=(e,t)=>{for(let r=0;r<t.length;r++)o.setUint8(e+r,t.charCodeAt(r))};return a(0,"RIFF"),o.setUint32(4,36+r,!0),a(8,"WAVE"),a(12,"fmt "),o.setUint32(16,16,!0),o.setUint16(20,1,!0),o.setUint16(22,1,!0),o.setUint32(24,t,!0),o.setUint32(28,2*t,!0),o.setUint16(32,2,!0),o.setUint16(34,16,!0),a(36,"data"),o.setUint32(40,r,!0),new Uint8Array(n).set(new Uint8Array(e),44),n}(o,n),l=await a({pcm:o,wav:i});w(l)},r),i=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await M()}}async function M(){i&&(i=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function O(){await M(),b&&(b.disconnect(),b=null),u&&(u.disconnect(),u=null),m&&(m.getTracks().forEach(e=>e.stop()),m=null),l&&(await l.close(),l=null),f=!1}return e.on("video:volumechange",()=>{c&&(c.gain.value=e.volume)}),e.on("play",P),e.on("pause",M),e.on("destroy",O),{name:"artplayerPluginAsr",stop:O,hide:v,append:w}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){letLine truncated
!function(e,t,r,n,o,a,i,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var l=d[t]=new f.Module(t);e[t][0].call(l.exports,c,l,l.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"1gnQM":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var a=e("bundle-text:./style.less"),i=o.interopDefault(a);function l(e={}){let{length:t=3,interval:r=100,sampleRate:n=16e3,autoHideTimeout:o=1e4,onAudioChunk:a=()=>null}=e;return e=>{let i=!1,l=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,m=null,b=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function h(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,o),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-t).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let w=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `;async function x(){return l||"suspended"===(l=new(window.AudioContext||window.webkitAudioContext)({sampleRate:n})).state&&await l.resume(),l}async function A(){if(!u&&e.video)try{return u=l.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed:",e)}try{if(m||(m=await U(e.video)),m)return b=l.createMediaStreamSource(m)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function U(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function M(){if(!i)try{await x();let e=await A();if(!e)throw Error("Could not establish audio source");if(!f){let e=(()=>{let e=new Blob([w],{type:"application/javascript"});return URL.createObjectURL(e)})();await l.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=l.createGain()).gain.value=1,(s=new AudioWorkletNode(l,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(l.destination);let t=r/1e3*n;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),o=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),i=function(e,t){let r=e.byteLength,n=new ArrayBuffer(44+r),o=new DataView(n),a=(e,t)=>{for(let r=0;r<t.length;r++)o.setUint8(e+r,t.charCodeAt(r))};return a(0,"RIFF"),o.setUint32(4,36+r,!0),a(8,"WAVE"),a(12,"fmt "),o.setUint32(16,16,!0),o.setUint16(20,1,!0),o.setUint16(22,1,!0),o.setUint32(24,t,!0),o.setUint32(28,2*t,!0),o.setUint16(32,2,!0),o.setUint16(34,16,!0),a(36,"data"),o.setUint32(40,r,!0),new Uint8Array(n).set(new Uint8Array(e),44),n}(o,n),l=await a({pcm:o,wav:i});h(l)},r),i=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await P()}}async function P(){i&&(i=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function j(){await P(),b&&(b.disconnect(),b=null),u&&(u.disconnect(),u=null),m&&(m.getTracks().forEach(e=>e.stop()),m=null),l&&(await l.close(),l=null),f=!1}return e.on("video:volumechange",()=>{c&&(c.gain.value=e.volume)}),e.on("play",M),e.on("pause",P),e.on("destroy",j),{name:"artplayerPluginAsr",stop:j,hide:v,append:h}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let Line truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,i,a,u){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof c[n]&&c[n],l=s.i||{},f=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof c[n]&&c[n];if(!r&&i)return i(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var u=f[t]=new d.Module(t);e[t][0].call(u.exports,l,u,u.exports,c)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var h=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({bzF6W:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_ts_generator.cjs"),u=e("bundle-text:./style.less"),c=o.interopDefault(u);function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.length,r=void 0===t?3:t,n=e.interval,o=void 0===n?100:n,u=e.sampleRate,c=void 0===u?16e3:u,s=e.autoHideTimeout,l=void 0===s?1e4:s,f=e.onAudioChunk,p=void 0===f?function(){return null}:f;return function(e){var t=!1,n=null,u=null,s=null,f=null,d=[],y=null,h=!1,_=null,v=null,b=null,m=e.layers.add({name:"asr",html:""});function w(){m.style.display="none"}function g(e){"string"==typeof e&&(clearTimeout(_),_=setTimeout(w,l),m.style.display="",m.innerHTML=e.split(RegExp("(?<=[、。!?!?\\.])\\s*","u")).map(function(e){return e.trim()}).filter(Boolean).slice(-r).map(function(e){return'<div class="art-asr-line">'.concat(e,"</div>")}).join(""))}var x=function(){var e=new Blob(["\n class RecorderProcessor extends AudioWorkletProcessor {\n process(inputs) {\n const input = inputs[0];\n if (input && input[0]) {\n this.port.postMessage(input[0]);\n }\n return true;\n }\n }\n registerProcessor('recorder-processor', RecorderProcessor);\n "],{type:"application/javascript"});return URL.createObjectURL(e)};function j(){return(j=(0,i._)(function(){return(0,a._)(this,function(e){switch(e.label){case 0:if(n)return[2,n];if("suspended"!==(n=new(window.AudioContext||window.webkitAudioContext)({sampleRate:c})).state)return[3,2];return[4,n.resume()];case 1:e.sent(),e.label=2;case 2:return[2,n]}})})).apply(this,arguments)}function O(){return(O=(0,i._)(function(){return(0,a._)(this,function(t){switch(t.label){case 0:if(!u&&e.video)try{return u=n.createMediaElementSource(e.video),[2,u]}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed:",e)}t.label=1;case 1:if(t.trys.push([1,4,,5]),v)return[3,3];return[4,function(e){return P.apply(this,arguments)}(e.video)];case 2:v=t.sent(),t.label=3;case 3:if(v)return[2,b=n.createMediaStreamSource(v)];return[3,5];case 4:return console.warn("[artplayerPluginAsr] MediaStream fallback failed:",t.sent()),[3,5];case 5:return[2,null]}})})).apply(this,arguments)}function P(){return(P=(0,i._)(function(e){return(0,a._)(this,function(t){try{if(e.captureStream)return[2,e.captureStream()];if(e.mozCaptureStream)return[2,e.mozCaptureStream()];return console.warn("[artplayerPluginAsr] captureStream not supported"),[2,null]}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),[2,null]}})})).apply(this,arguments)}function S(){return(S=(0,i._)(function(){var e,r,u;return(0,a._)(this,function(l){switch(l.label){case 0:if(t)return[2];l.label=1;case 1:return l.trys.push([1,6,,8]),[4,function(){return j.apply(this,arguments)}()];case 2:return l.sent(),[4,function(){return O.apply(this,arguments)}()];case 3:if(!(e=l.sent()))throw Error("Could not establish audio source");if(h)return[3,5];return r=x(),[4,n.audioWorklet.addModule(r)];case 4:l.sent(),URL.revokeObjectURL(r),h=!0,l.label=5;case 5:return(f=n.createGain()).gain.value=1,(s=new AudioWorkletNode(n,"recorder-processor")).port.onmessage=function(e){d.push(new Float32Array(e.data))},e.connect(s),e.connect(f),f.connect(n.destination),u=o/1e3*c,y=setInterval((0,i._)(function(){var e,t,r,n;return(0,a._)(this,function(o){switch(o.label){case 0:var i,a,s,l,f;if(0===d.length)return[2];for(e=new Float32Array(0);e.length<u&&d.length;)t=d.shift(),(r=new Float32Array(e.length+t.length)).set(e,0),r.set(t,e.length),e=r;if(e.length<u)return[2];return i=n=function(e){for(var t=e.length,rLine truncated
!function(e,t,r,n,o,i,a,u){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof c[n]&&c[n],l=s.i||{},f=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof c[n]&&c[n];if(!r&&i)return i(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var u=f[t]=new d.Module(t);e[t][0].call(u.exports,l,u,u.exports,c)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var _=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=_:"function"==typeof define&&define.amd&&define(function(){return _})}}({"98QZN":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_ts_generator.cjs"),u=e("bundle-text:./style.less"),c=o.interopDefault(u);function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.length,r=void 0===t?3:t,n=e.interval,o=void 0===n?100:n,u=e.sampleRate,c=void 0===u?16e3:u,s=e.autoHideTimeout,l=void 0===s?1e4:s,f=e.onAudioChunk,p=void 0===f?function(){return null}:f;return function(e){var t=!1,n=null,u=null,s=null,f=null,d=[],y=null,_=!1,h=null,v=null,b=null,m=e.layers.add({name:"asr",html:""});function w(){m.style.display="none"}function g(e){"string"==typeof e&&(clearTimeout(h),h=setTimeout(w,l),m.style.display="",m.innerHTML=e.split(RegExp("(?<=[、。!?!?.])\\s*","u")).map(function(e){return e.trim()}).filter(Boolean).slice(-r).map(function(e){return'<div class="art-asr-line">'.concat(e,"</div>")}).join(""))}var x=function(){var e=new Blob(["\n class RecorderProcessor extends AudioWorkletProcessor {\n process(inputs) {\n const input = inputs[0];\n if (input && input[0]) {\n this.port.postMessage(input[0]);\n }\n return true;\n }\n }\n registerProcessor('recorder-processor', RecorderProcessor);\n "],{type:"application/javascript"});return URL.createObjectURL(e)};function j(){return(0,i._)(function(){return(0,a._)(this,function(e){return t&&(t=!1,clearInterval(y),y=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),f&&(f.disconnect(),f=null),d=[]),[2]})})()}function O(){return(0,i._)(function(){return(0,a._)(this,function(e){switch(e.label){case 0:return[4,j()];case 1:if(e.sent(),b&&(b.disconnect(),b=null),u&&(u.disconnect(),u=null),v&&(v.getTracks().forEach(function(e){return e.stop()}),v=null),!n)return[3,3];return[4,n.close()];case 2:e.sent(),n=null,e.label=3;case 3:return _=!1,[2]}})})()}return e.on("video:volumechange",function(){f&&(f.gain.value=e.volume)}),e.on("play",function(){return(0,i._)(function(){var r,l,h;return(0,a._)(this,function(m){switch(m.label){case 0:if(t)return[2];m.label=1;case 1:return m.trys.push([1,6,,8]),[4,(0,i._)(function(){return(0,a._)(this,function(e){switch(e.label){case 0:if(n)return[2,n];if("suspended"!==(n=new(window.AudioContext||window.webkitAudioContext)({sampleRate:c})).state)return[3,2];return[4,n.resume()];case 1:e.sent(),e.label=2;case 2:return[2,n]}})})()];case 2:return m.sent(),[4,(0,i._)(function(){return(0,a._)(this,function(t){switch(t.label){case 0:if(!u&&e.video)try{return u=n.createMediaElementSource(e.video),[2,u]}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed:",e)}t.label=1;case 1:var r;if(t.trys.push([1,4,,5]),v)return[3,3];return[4,(r=e.video,(0,i._)(function(){return(0,a._)(this,function(e){try{if(r.captureStream)return[2,r.captureStream()];if(r.mozCaptureStream)return[2,r.mozCaptureStream()];return console.warn("[artplayerPluginAsr] captureStream not supported"),[2,null]}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),[2,null]}})})())];case 2:v=t.sent(),t.label=3;case 3:if(v)return[2,b=n.createMediaStreamSource(v)];return[3,5];case 4:return console.warn("[artplayerPluginAsr] MediaStream fallback failed:",t.sent()),[3,5];case 5:return[2,null]}})})()];case 3:if(!(r=m.sent()))throw Error("Could not establish audio source");if(_)return[3,5];return l=x(),[4,n.audioWorklet.addModule(l)];case 4:m.sent(),URL.revokeObjectURL(l),_=!0,m.label=5;case 5:return(f=n.createGain()).gain.value=1,(s=new AudioWorkletNode(n,"recorder-processor")).port.onmessage=function(e){d.push(new Float32Array(e.data))},r.connect(s),r.connect(f),f.conLine truncated
+28 -28
View File
@@ -1,30 +1,30 @@
{
"license": "MIT",
"version": "2.0.0",
"name": "artplayer-plugin-asr",
"description": "Asr plugin for ArtPlayer",
"main": "dist/artplayer-plugin-asr.js",
"legacy": "dist/artplayer-plugin-asr.legacy.js",
"module": "dist/artplayer-plugin-asr.esm.js",
"types": "types/artplayer-plugin-asr.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-asr.esm.js",
"require": "./dist/artplayer-plugin-asr.js",
"default": "./dist/artplayer-plugin-asr.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
"name": "artplayer-plugin-asr",
"version": "2.0.0",
"description": "Asr plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-asr.esm.js",
"require": "./dist/artplayer-plugin-asr.js",
"default": "./dist/artplayer-plugin-asr.js"
},
"main": "dist/artplayer-plugin-asr.js",
"legacy": "dist/artplayer-plugin-asr.legacy.js",
"module": "dist/artplayer-plugin-asr.esm.js",
"types": "types/artplayer-plugin-asr.d.ts",
"browserslist": "last 1 Chrome version"
}
+254 -240
View File
@@ -1,58 +1,59 @@
import style from 'bundle-text:./style.less';
import style from 'bundle-text:./style.less'
export default function artplayerPluginAsr(option = {}) {
const {
length = 3,
interval = 100,
sampleRate = 16000,
autoHideTimeout = 10000,
onAudioChunk = () => null,
} = option;
const {
length = 3,
interval = 100,
sampleRate = 16000,
autoHideTimeout = 10000,
onAudioChunk = () => null,
} = option
return (art) => {
let started = false;
let audioCtx = null;
let sourceNode = null;
let recorderNode = null;
let gainNode = null;
let bufferChunks = [];
let timer = null;
let workletLoaded = false;
let hideTimer = null;
let mediaStream = null;
let mediaStreamSource = null;
return (art) => {
let started = false
let audioCtx = null
let sourceNode = null
let recorderNode = null
let gainNode = null
let bufferChunks = []
let timer = null
let workletLoaded = false
let hideTimer = null
let mediaStream = null
let mediaStreamSource = null
const $asr = art.layers.add({
name: 'asr',
html: '',
});
const $asr = art.layers.add({
name: 'asr',
html: '',
})
function splitByPunctuation(text) {
return (
text
// eslint-disable-next-line no-useless-escape
.split(/(?<=[、。!?!?\.])\s*/u)
.map((s) => s.trim())
.filter(Boolean)
.slice(-length)
);
}
function splitByPunctuation(text) {
return (
text
function hide() {
$asr.style.display = 'none';
}
.split(/(?<=[、。!?!?.])\s*/u)
.map(s => s.trim())
.filter(Boolean)
.slice(-length)
)
}
function append(subtitle) {
if (typeof subtitle !== 'string') return;
clearTimeout(hideTimer);
hideTimer = setTimeout(hide, autoHideTimeout);
$asr.style.display = '';
$asr.innerHTML = splitByPunctuation(subtitle)
.map((line) => `<div class="art-asr-line">${line}</div>`)
.join('');
}
function hide() {
$asr.style.display = 'none'
}
const recorderProcessorCode = `
function append(subtitle) {
if (typeof subtitle !== 'string')
return
clearTimeout(hideTimer)
hideTimer = setTimeout(hide, autoHideTimeout)
$asr.style.display = ''
$asr.innerHTML = splitByPunctuation(subtitle)
.map(line => `<div class="art-asr-line">${line}</div>`)
.join('')
}
const recorderProcessorCode = `
class RecorderProcessor extends AudioWorkletProcessor {
process(inputs) {
const input = inputs[0];
@@ -63,227 +64,240 @@ export default function artplayerPluginAsr(option = {}) {
}
}
registerProcessor('recorder-processor', RecorderProcessor);
`;
`
const createWorkletBlobUrl = () => {
const blob = new Blob([recorderProcessorCode], { type: 'application/javascript' });
return URL.createObjectURL(blob);
};
const createWorkletBlobUrl = () => {
const blob = new Blob([recorderProcessorCode], { type: 'application/javascript' })
return URL.createObjectURL(blob)
}
function floatTo16BitPCM(float32Array) {
const len = float32Array.length;
const buffer = new ArrayBuffer(len * 2);
const view = new DataView(buffer);
for (let i = 0; i < len; i++) {
let s = Math.max(-1, Math.min(1, float32Array[i]));
view.setInt16(i * 2, s < 0 ? s * 0x8000 : s * 0x7fff, true);
}
return buffer;
function floatTo16BitPCM(float32Array) {
const len = float32Array.length
const buffer = new ArrayBuffer(len * 2)
const view = new DataView(buffer)
for (let i = 0; i < len; i++) {
const s = Math.max(-1, Math.min(1, float32Array[i]))
view.setInt16(i * 2, s < 0 ? s * 0x8000 : s * 0x7FFF, true)
}
return buffer
}
function pcmToWav(pcmBuffer, sampleRate) {
const pcmLength = pcmBuffer.byteLength
const wavBuffer = new ArrayBuffer(44 + pcmLength)
const view = new DataView(wavBuffer)
const writeString = (offset, str) => {
for (let i = 0; i < str.length; i++) {
view.setUint8(offset + i, str.charCodeAt(i))
}
}
writeString(0, 'RIFF')
view.setUint32(4, 36 + pcmLength, true)
writeString(8, 'WAVE')
writeString(12, 'fmt ')
view.setUint32(16, 16, true)
view.setUint16(20, 1, true)
view.setUint16(22, 1, true)
view.setUint32(24, sampleRate, true)
view.setUint32(28, sampleRate * 2, true)
view.setUint16(32, 2, true)
view.setUint16(34, 16, true)
writeString(36, 'data')
view.setUint32(40, pcmLength, true)
new Uint8Array(wavBuffer).set(new Uint8Array(pcmBuffer), 44)
return wavBuffer
}
async function setupAudioContext() {
if (audioCtx)
return audioCtx
audioCtx = new (window.AudioContext || window.webkitAudioContext)({ sampleRate })
if (audioCtx.state === 'suspended')
await audioCtx.resume()
return audioCtx
}
async function setupAudioSource() {
if (!sourceNode && art.video) {
try {
sourceNode = audioCtx.createMediaElementSource(art.video)
return sourceNode
}
catch (err) {
console.warn('[artplayerPluginAsr] Direct connection failed:', err)
}
}
try {
if (!mediaStream) {
mediaStream = await captureAudioFromVideo(art.video)
}
if (mediaStream) {
mediaStreamSource = audioCtx.createMediaStreamSource(mediaStream)
return mediaStreamSource
}
}
catch (err) {
console.warn('[artplayerPluginAsr] MediaStream fallback failed:', err)
}
return null
}
async function captureAudioFromVideo(videoElement) {
try {
if (videoElement.captureStream)
return videoElement.captureStream()
if (videoElement.mozCaptureStream)
return videoElement.mozCaptureStream()
console.warn('[artplayerPluginAsr] captureStream not supported')
return null
}
catch (err) {
console.warn('[artplayerPluginAsr] Error capturing stream:', err)
return null
}
}
async function startCapture() {
if (started)
return
try {
await setupAudioContext()
const audioSource = await setupAudioSource()
if (!audioSource)
throw new Error('Could not establish audio source')
if (!workletLoaded) {
const blobUrl = createWorkletBlobUrl()
await audioCtx.audioWorklet.addModule(blobUrl)
URL.revokeObjectURL(blobUrl)
workletLoaded = true
}
function pcmToWav(pcmBuffer, sampleRate) {
const pcmLength = pcmBuffer.byteLength;
const wavBuffer = new ArrayBuffer(44 + pcmLength);
const view = new DataView(wavBuffer);
const writeString = (offset, str) => {
for (let i = 0; i < str.length; i++) {
view.setUint8(offset + i, str.charCodeAt(i));
}
};
writeString(0, 'RIFF');
view.setUint32(4, 36 + pcmLength, true);
writeString(8, 'WAVE');
writeString(12, 'fmt ');
view.setUint32(16, 16, true);
view.setUint16(20, 1, true);
view.setUint16(22, 1, true);
view.setUint32(24, sampleRate, true);
view.setUint32(28, sampleRate * 2, true);
view.setUint16(32, 2, true);
view.setUint16(34, 16, true);
writeString(36, 'data');
view.setUint32(40, pcmLength, true);
new Uint8Array(wavBuffer).set(new Uint8Array(pcmBuffer), 44);
return wavBuffer;
gainNode = audioCtx.createGain()
gainNode.gain.value = 1
recorderNode = new AudioWorkletNode(audioCtx, 'recorder-processor')
recorderNode.port.onmessage = (event) => {
bufferChunks.push(new Float32Array(event.data))
}
audioSource.connect(recorderNode)
audioSource.connect(gainNode)
gainNode.connect(audioCtx.destination)
async function setupAudioContext() {
if (audioCtx) return audioCtx;
audioCtx = new (window.AudioContext || window.webkitAudioContext)({ sampleRate });
if (audioCtx.state === 'suspended') await audioCtx.resume();
return audioCtx;
}
const CHUNK_SAMPLES = sampleRate * (interval / 1000)
timer = setInterval(async () => {
if (bufferChunks.length === 0)
return
async function setupAudioSource() {
if (!sourceNode && art.video) {
try {
sourceNode = audioCtx.createMediaElementSource(art.video);
return sourceNode;
} catch (err) {
console.warn('[artplayerPluginAsr] Direct connection failed:', err);
}
}
let accumulated = new Float32Array(0)
while (accumulated.length < CHUNK_SAMPLES && bufferChunks.length) {
const next = bufferChunks.shift()
const tmp = new Float32Array(accumulated.length + next.length)
tmp.set(accumulated, 0)
tmp.set(next, accumulated.length)
accumulated = tmp
}
try {
if (!mediaStream) {
mediaStream = await captureAudioFromVideo(art.video);
}
if (mediaStream) {
mediaStreamSource = audioCtx.createMediaStreamSource(mediaStream);
return mediaStreamSource;
}
} catch (err) {
console.warn('[artplayerPluginAsr] MediaStream fallback failed:', err);
}
if (accumulated.length < CHUNK_SAMPLES)
return
return null;
}
const chunkToSend = accumulated.slice(0, CHUNK_SAMPLES)
const pcm = floatTo16BitPCM(chunkToSend)
const wav = pcmToWav(pcm, sampleRate)
const subtitle = await onAudioChunk({ pcm, wav })
append(subtitle)
}, interval)
async function captureAudioFromVideo(videoElement) {
try {
if (videoElement.captureStream) return videoElement.captureStream();
if (videoElement.mozCaptureStream) return videoElement.mozCaptureStream();
console.warn('[artplayerPluginAsr] captureStream not supported');
return null;
} catch (err) {
console.warn('[artplayerPluginAsr] Error capturing stream:', err);
return null;
}
}
started = true
}
catch (err) {
console.error('[artplayerPluginAsr] Initialization failed:', err)
await stopCapture()
}
}
async function startCapture() {
if (started) return;
async function stopCapture() {
if (!started)
return
started = false
try {
await setupAudioContext();
const audioSource = await setupAudioSource();
if (!audioSource) throw new Error('Could not establish audio source');
clearInterval(timer)
timer = null
if (!workletLoaded) {
const blobUrl = createWorkletBlobUrl();
await audioCtx.audioWorklet.addModule(blobUrl);
URL.revokeObjectURL(blobUrl);
workletLoaded = true;
}
if (recorderNode) {
recorderNode.disconnect()
recorderNode.port.onmessage = null
recorderNode = null
}
gainNode = audioCtx.createGain();
gainNode.gain.value = 1;
recorderNode = new AudioWorkletNode(audioCtx, 'recorder-processor');
recorderNode.port.onmessage = (event) => {
bufferChunks.push(new Float32Array(event.data));
};
audioSource.connect(recorderNode);
audioSource.connect(gainNode);
gainNode.connect(audioCtx.destination);
if (gainNode) {
gainNode.disconnect()
gainNode = null
}
const CHUNK_SAMPLES = sampleRate * (interval / 1000);
timer = setInterval(async () => {
if (bufferChunks.length === 0) return;
bufferChunks = []
}
let accumulated = new Float32Array(0);
while (accumulated.length < CHUNK_SAMPLES && bufferChunks.length) {
const next = bufferChunks.shift();
const tmp = new Float32Array(accumulated.length + next.length);
tmp.set(accumulated, 0);
tmp.set(next, accumulated.length);
accumulated = tmp;
}
async function destroy() {
await stopCapture()
if (accumulated.length < CHUNK_SAMPLES) return;
if (mediaStreamSource) {
mediaStreamSource.disconnect()
mediaStreamSource = null
}
const chunkToSend = accumulated.slice(0, CHUNK_SAMPLES);
const pcm = floatTo16BitPCM(chunkToSend);
const wav = pcmToWav(pcm, sampleRate);
const subtitle = await onAudioChunk({ pcm, wav });
append(subtitle);
}, interval);
if (sourceNode) {
sourceNode.disconnect()
sourceNode = null
}
started = true;
} catch (err) {
console.error('[artplayerPluginAsr] Initialization failed:', err);
await stopCapture();
}
}
if (mediaStream) {
mediaStream.getTracks().forEach(track => track.stop())
mediaStream = null
}
async function stopCapture() {
if (!started) return;
started = false;
if (audioCtx) {
await audioCtx.close()
audioCtx = null
}
clearInterval(timer);
timer = null;
workletLoaded = false
}
if (recorderNode) {
recorderNode.disconnect();
recorderNode.port.onmessage = null;
recorderNode = null;
}
art.on('video:volumechange', () => {
if (gainNode) {
gainNode.gain.value = art.volume
}
})
if (gainNode) {
gainNode.disconnect();
gainNode = null;
}
art.on('play', startCapture)
art.on('pause', stopCapture)
art.on('destroy', destroy)
bufferChunks = [];
}
async function destroy() {
await stopCapture();
if (mediaStreamSource) {
mediaStreamSource.disconnect();
mediaStreamSource = null;
}
if (sourceNode) {
sourceNode.disconnect();
sourceNode = null;
}
if (mediaStream) {
mediaStream.getTracks().forEach((track) => track.stop());
mediaStream = null;
}
if (audioCtx) {
await audioCtx.close();
audioCtx = null;
}
workletLoaded = false;
}
art.on('video:volumechange', () => {
if (gainNode) {
gainNode.gain.value = art.volume;
}
});
art.on('play', startCapture);
art.on('pause', stopCapture);
art.on('destroy', destroy);
return {
name: 'artplayerPluginAsr',
stop: destroy,
hide,
append,
};
};
return {
name: 'artplayerPluginAsr',
stop: destroy,
hide,
append,
}
}
}
if (typeof document !== 'undefined') {
if (!document.getElementById('artplayer-plugin-asr')) {
const $style = document.createElement('style');
$style.id = 'artplayer-plugin-asr';
$style.textContent = style;
document.head.appendChild($style);
}
if (!document.getElementById('artplayer-plugin-asr')) {
const $style = document.createElement('style')
$style.id = 'artplayer-plugin-asr'
$style.textContent = style
document.head.appendChild($style)
}
}
if (typeof window !== 'undefined') {
window['artplayerPluginAsr'] = artplayerPluginAsr;
window.artplayerPluginAsr = artplayerPluginAsr
}
+14 -14
View File
@@ -1,26 +1,26 @@
import type Artplayer from 'artplayer';
import type Artplayer from 'artplayer'
export = artplayerPluginAsr;
export = artplayerPluginAsr
export as namespace artplayerPluginAsr;
interface AudioChunk {
pcm: ArrayBuffer;
wav: ArrayBuffer;
pcm: ArrayBuffer
wav: ArrayBuffer
}
interface AsrPluginOption {
length?: number;
interval?: number;
sampleRate?: number;
autoHideTimeout?: number;
onAudioChunk?: (chunk: AudioChunk) => void | Promise<void>;
length?: number
interval?: number
sampleRate?: number
autoHideTimeout?: number
onAudioChunk?: (chunk: AudioChunk) => void | Promise<void>
}
interface AsrPluginInstance {
name: 'artplayerPluginAsr';
stop: () => void;
hide: () => void;
append: (subtitle: string) => void;
name: 'artplayerPluginAsr'
stop: () => void
hide: () => void
append: (subtitle: string) => void
}
declare function artplayerPluginAsr(option?: AsrPluginOption): (art: Artplayer) => AsrPluginInstance;
declare function artplayerPluginAsr(option?: AsrPluginOption): (art: Artplayer) => AsrPluginInstance
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,o,r,i,u,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof d[o]&&d[o],a=f.i||{},c=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof d[o]&&d[o];if(!n&&i)return i(t,!0);if(f)return f(t,!0);if(s&&"string"==typeof t)return s(t);var u=Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}a.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},a.cache={};var l=c[t]=new p.Module(t);e[t][0].call(l.exports,a,l,l.exports,d)}return c[t].exports;function a(e){var t=a.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=a,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return d[o]}}),d[o]=p;for(var m=0;m<t.length;m++)p(t[m]);if(n){var h=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({"4omrA":[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return async t=>(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,i=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,i=document.createElement("canvas"),u=i.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);i.width=10*t,i.height=l*Math.ceil(n/10);let d=0,f=null;!function a(c){i.toBlob(e=>{URL.revokeObjectURL(f),o({url:f=URL.createObjectURL(e),height:l})},"image/jpeg"),c>=n||(r.currentTime=e*c/n,r.onseeked=()=>{u.drawImage(r,c%10*t,Math.floor(c/10)*l,t,l),d++,a(c+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:i}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],w4pLy:[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["4omrA"],"4omrA","parcelRequireb705",{});let{default:e}=parcelRequireb705("4omrA");export{e as default};
!function(e,t,n,o,r,u,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof d[o]&&d[o],a=f.i||{},c=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var u="function"==typeof d[o]&&d[o];if(!n&&u)return u(t,!0);if(f)return f(t,!0);if(s&&"string"==typeof t)return s(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}a.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},a.cache={};var l=c[t]=new p.Module(t);e[t][0].call(l.exports,a,l,l.exports,d)}return c[t].exports;function a(e){var t=a.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=a,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return d[o]}}),d[o]=p;for(var m=0;m<t.length;m++)p(t[m]);if(n){var h=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({guSFC:[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");function u(e){return async t=>(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,u=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,u=document.createElement("canvas"),i=u.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);u.width=10*t,u.height=l*Math.ceil(n/10);let d=null;!function f(a){u.toBlob(e=>{URL.revokeObjectURL(d),o({url:d=URL.createObjectURL(e),height:l})},"image/jpeg"),a>=n||(r.currentTime=e*a/n,r.onseeked=()=>{i.drawImage(r,a%10*t,Math.floor(a/10)*l,t,l),f(a+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:u}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>u),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=u)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["guSFC"],"guSFC","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("guSFC");export{e as default};
//# sourceMappingURL=artplayer-plugin-auto-thumbnail.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kDC0Ce,SAAS,EAA6B,CAAM,EACvD,OAAO,MAAO,IACV,EAAI,EAAE,CAAC,uBAAwB,KAC3B,IAAM,EAAM,EAAO,GAAG,EAAI,EAAI,MAAM,CAAC,GAAG,CAClC,EAAQ,EAAO,KAAK,EAAI,IACxB,EAAS,EAAO,MAAM,EAAI,IAC1B,EAAQ,EAAO,KAAK,EAAI,GAC9B,AAjDZ,SAAgB,CAAE,IAAA,CAAG,CAAE,MAAA,CAAK,CAAE,OAAA,CAAM,CAAE,CAAE,CAAQ,EAC5C,IAAM,EAAQ,SAAS,aAAa,CAAC,QACrC,CAAA,EAAM,WAAW,CAAG,YACpB,EAAM,GAAG,CAAG,EAEZ,EAAM,gBAAgB,CAAG,KACrB,IAAM,EAAW,EAAM,QAAQ,CACzB,EAAS,SAAS,aAAa,CAAC,UAChC,EAAM,EAAO,UAAU,CAAC,MACxB,EAAS,KAAK,KAAK,CAAE,EAAQ,EAAM,WAAW,CAAI,EAAM,UAAU,CAExE,CAAA,EAAO,KAAK,CAAG,AAAQ,GAAR,EACf,EAAO,MAAM,CAAG,EAAS,KAAK,IAAI,CAAC,EAAS,IAE5C,IAAI,EAAc,EACd,EAAU,MAuBd,AArBA,SAAS,EAAY,CAAK,EACtB,EAAO,MAAM,CAAC,AAAC,IACX,IAAI,eAAe,CAAC,GAGpB,EAAS,CACL,IAHJ,EAAU,IAAI,eAAe,CAAC,GAI1B,OAAQ,CACZ,EACJ,EAAG,cAEC,GAAS,IACb,EAAM,WAAW,CAAG,EAAY,EAAS,EAEzC,EAAM,QAAQ,CAAG,KACb,EAAI,SAAS,CAAC,EAAO,EAAS,GAAM,EAAO,KAAK,KAAK,CAAC,EAAQ,IAAM,EAAQ,EAAO,GACnF,IACA,EAAY,EAAQ,EACxB,EACJ,EAEY,EAChB,CACJ,EASmB,CAAE,IAAA,EAAK,MAAA,EAAO,OAAA,CAAO,EAAG,AAAC,IAC5B,EAAI,UAAU,CAAG,CACb,GAAG,CAAM,CACT,OAAQ,GACR,OAAA,EACA,MAAA,EACA,MAAA,CACJ,CACJ,EACJ,GAEO,CACH,KAAM,8BACV,EAER,C,E,iB,C,GAtBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAwBpB,AAAkB,aAAlB,OAAO,QACP,CAAA,OAAO,4BAA+B,CAAG,CAD7C,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,EClEA,EAAQ,cAAc,CAAG,SAAU,CAAC,EAClC,OAAO,GAAK,EAAE,UAAU,CAAG,EAAI,CAAC,QAAS,CAAC,CAC5C,EAEA,EAAQ,iBAAiB,CAAG,SAAU,CAAC,EACrC,OAAO,cAAc,CAAC,EAAG,aAAc,CAAC,MAAO,CAAA,CAAI,EACrD,EAEA,EAAQ,SAAS,CAAG,SAAU,CAAM,CAAE,CAAI,EAkBxC,OAjBA,OAAO,IAAI,CAAC,GAAQ,OAAO,CAAC,SAAU,CAAG,EAE7B,YAAR,GACA,AAAQ,eAAR,GACA,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAM,IAK7C,OAAO,cAAc,CAAC,EAAM,EAAK,CAC/B,WAAY,CAAA,EACZ,IAAK,WACH,OAAO,CAAM,CAAC,EAAI,AACpB,CACF,EACF,GAEO,CACT,EAEA,EAAQ,MAAM,CAAG,SAAU,CAAI,CAAE,CAAQ,CAAE,CAAG,EAC5C,OAAO,cAAc,CAAC,EAAM,EAAU,CACpC,WAAY,CAAA,EACZ,IAAK,CACP,EACF,C,E,C,E,E,C,Q,C,Q,oB,C,G,G,C,Q,C,C,C,kB,gB,K,O","sources":["<anon>","src/index.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n Line truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCyCe,SAAS,EAA6B,CAAM,EACzD,OAAO,MAAO,IACZ,EAAI,EAAE,CAAC,uBAAwB,KAC7B,IAAM,EAAM,EAAO,GAAG,EAAI,EAAI,MAAM,CAAC,GAAG,CAClC,EAAQ,EAAO,KAAK,EAAI,IACxB,EAAS,EAAO,MAAM,EAAI,IAC1B,EAAQ,EAAO,KAAK,EAAI,GAC9B,AAhDN,SAAgB,CAAE,IAAA,CAAG,CAAE,MAAA,CAAK,CAAE,OAAA,CAAM,CAAE,CAAE,CAAQ,EAC9C,IAAM,EAAQ,SAAS,aAAa,CAAC,QACrC,CAAA,EAAM,WAAW,CAAG,YACpB,EAAM,GAAG,CAAG,EAEZ,EAAM,gBAAgB,CAAG,KACvB,IAAM,EAAW,EAAM,QAAQ,CACzB,EAAS,SAAS,aAAa,CAAC,UAChC,EAAM,EAAO,UAAU,CAAC,MACxB,EAAS,KAAK,KAAK,CAAE,EAAQ,EAAM,WAAW,CAAI,EAAM,UAAU,CAExE,CAAA,EAAO,KAAK,CAAG,AAAQ,GAAR,EACf,EAAO,MAAM,CAAG,EAAS,KAAK,IAAI,CAAC,EAAS,IAE5C,IAAI,EAAU,MAuBd,AArBA,SAAS,EAAY,CAAK,EACxB,EAAO,MAAM,CAAC,AAAC,IACb,IAAI,eAAe,CAAC,GAGpB,EAAS,CACP,IAHF,EAAU,IAAI,eAAe,CAAC,GAI5B,OAAA,CACF,EACF,EAAG,cAEC,GAAS,IAEb,EAAM,WAAW,CAAG,EAAY,EAAS,EAEzC,EAAM,QAAQ,CAAG,KACf,EAAI,SAAS,CAAC,EAAO,EAAS,GAAM,EAAO,KAAK,KAAK,CAAC,EAAQ,IAAM,EAAQ,EAAO,GACnF,EAAY,EAAQ,EACtB,EACF,EAEY,EACd,CACF,EASa,CAAE,IAAA,EAAK,MAAA,EAAO,OAAA,CAAO,EAAG,AAAC,IAC9B,EAAI,UAAU,CAAG,CACf,GAAG,CAAM,CACT,OAAQ,GACR,OAAA,EACA,MAAA,EACA,MAAA,CACF,CACF,EACF,GAEO,CACL,KAAM,8BACR,EAEJ,C,E,iB,C,GAtBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAwBpB,AAAkB,aAAlB,OAAO,QACT,CAAA,OAAO,4BAA4B,CAAG,CADxC,C,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,ECjEA,EAAQ,cAAc,CAAG,SAAU,CAAC,EAClC,OAAO,GAAK,EAAE,UAAU,CAAG,EAAI,CAAC,QAAS,CAAC,CAC5C,EAEA,EAAQ,iBAAiB,CAAG,SAAU,CAAC,EACrC,OAAO,cAAc,CAAC,EAAG,aAAc,CAAC,MAAO,CAAA,CAAI,EACrD,EAEA,EAAQ,SAAS,CAAG,SAAU,CAAM,CAAE,CAAI,EAkBxC,OAjBA,OAAO,IAAI,CAAC,GAAQ,OAAO,CAAC,SAAU,CAAG,EAE7B,YAAR,GACA,AAAQ,eAAR,GACA,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAM,IAK7C,OAAO,cAAc,CAAC,EAAM,EAAK,CAC/B,WAAY,CAAA,EACZ,IAAK,WACH,OAAO,CAAM,CAAC,EAAI,AACpB,CACF,EACF,GAEO,CACT,EAEA,EAAQ,MAAM,CAAG,SAAU,CAAI,CAAE,CAAQ,CAAE,CAAG,EAC5C,OAAO,cAAc,CAAC,EAAM,EAAU,CACpC,WAAY,CAAA,EACZ,IAAK,CACP,EACF,C,E,C,E,E,C,Q,C,Q,oB,C,G,G,C,Q,C,C,C,kB,gB,K,O","sources":["<anon>","packages/artplayer-plugin-auto-thumbnail/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequiLine truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,o,r,i,u,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof d[o]&&d[o],a=f.i||{},c=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof d[o]&&d[o];if(!n&&i)return i(t,!0);if(f)return f(t,!0);if(s&&"string"==typeof t)return s(t);var u=Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}a.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},a.cache={};var l=c[t]=new p.Module(t);e[t][0].call(l.exports,a,l,l.exports,d)}return c[t].exports;function a(e){var t=a.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=a,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return d[o]}}),d[o]=p;for(var m=0;m<t.length;m++)p(t[m]);if(n){var h=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({jz4E5:[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return async t=>(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,i=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,i=document.createElement("canvas"),u=i.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);i.width=10*t,i.height=l*Math.ceil(n/10);let d=0,f=null;!function a(c){i.toBlob(e=>{URL.revokeObjectURL(f),o({url:f=URL.createObjectURL(e),height:l})},"image/jpeg"),c>=n||(r.currentTime=e*c/n,r.onseeked=()=>{u.drawImage(r,c%10*t,Math.floor(c/10)*l,t,l),d++,a(c+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:i}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7o2zS":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["jz4E5"],"jz4E5","parcelRequireb705",{});
!function(e,t,n,o,r,i,u,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof d[o]&&d[o],a=f.i||{},c=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof d[o]&&d[o];if(!n&&i)return i(t,!0);if(f)return f(t,!0);if(s&&"string"==typeof t)return s(t);var u=Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}a.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},a.cache={};var l=c[t]=new p.Module(t);e[t][0].call(l.exports,a,l,l.exports,d)}return c[t].exports;function a(e){var t=a.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=a,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return d[o]}}),d[o]=p;for(var m=0;m<t.length;m++)p(t[m]);if(n){var h=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({"6MsoC":[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return async t=>(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,i=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,i=document.createElement("canvas"),u=i.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);i.width=10*t,i.height=l*Math.ceil(n/10);let d=null;!function f(a){i.toBlob(e=>{URL.revokeObjectURL(d),o({url:d=URL.createObjectURL(e),height:l})},"image/jpeg"),a>=n||(r.currentTime=e*a/n,r.onseeked=()=>{u.drawImage(r,a%10*t,Math.floor(a/10)*l,t,l),f(a+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:i}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["6MsoC"],"6MsoC","parcelRequire4dc0",{});
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,i,c,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof a[n]&&a[n],f=s.i||{},l=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!l[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof a[n]&&a[n];if(!r&&i)return i(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var c=Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}f.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},f.cache={};var u=l[t]=new d.Module(t);e[t][0].call(u.exports,f,u,u.exports,a)}return l[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=l,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=f,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return a[n]}}),a[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var _=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=_:"function"==typeof define&&define.amd&&define(function(){return _})}}({bzF6W:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),c=e("@swc/helpers/cjs/_object_spread.cjs"),u=e("@swc/helpers/cjs/_object_spread_props.cjs"),a=e("@swc/helpers/cjs/_ts_generator.cjs");function s(e){var t;return t=(0,i._)(function(t){return(0,a._)(this,function(r){return t.on("video:loadedmetadata",function(){var r,n,o,i,a,s,f=e.url||t.option.url,l=e.width||160,p=e.number||100,d=e.scale||1;r={url:f,width:l,number:p},n=function(e){t.thumbnails=(0,u._)((0,c._)({},e),{column:10,number:p,width:l,scale:d})},o=r.url,i=r.width,a=r.number,(s=document.createElement("video")).crossOrigin="anonymous",s.src=o,s.onloadedmetadata=function(){var e=s.duration,t=document.createElement("canvas"),r=t.getContext("2d"),o=Math.floor(i*s.videoHeight/s.videoWidth);t.width=10*i,t.height=o*Math.ceil(a/10);var c=0,u=null;!function f(l){t.toBlob(function(e){URL.revokeObjectURL(u),n({url:u=URL.createObjectURL(e),height:o})},"image/jpeg"),l>=a||(s.currentTime=e*l/a,s.onseeked=function(){r.drawImage(s,l%10*i,Math.floor(l/10)*o,i,o),c++,f(l+1)})}(0)}}),[2,{name:"artplayerPluginAutoThumbnail"}]})}),function(e){return t.apply(this,arguments)}}"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=s)},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"4ElRo":[function(e,t,r,n){"use strict";function o(e,t,r,n,o,i,c){try{var u=e[i](c),a=u.value}catch(e){r(e);return}u.done?t(a):Promise.resolve(a).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var c=e.apply(t,r);function u(e){o(c,n,i,u,a,"next",e)}function a(e){o(c,n,i,u,a,"throw",e)}u(void 0)})}}},{}],"7vaqr":[function(e,t,r,n){"use strict";var o=e("b3d0f206b721b857");r._=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){o._(e,t,r[t])})}return e}},{b3d0f206b721b857:"dgB2K"}],dgB2K:[function(e,t,r,n){"use strict";r._=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},{}],iJXke:[function(e,t,r,n){"use strict";r._=function(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}},{}],a4h1C:[function(e,t,r,n){"use strict";r._=e("3d8e14b4b7163380").__generator},{"3d8e14b4b7163380":"36MWs"}],"36MWs":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"__extends",function(){return u}),o.export(r,"__assign",function(){return a}),o.export(r,"__rest",function(){return s}),o.export(r,"__decorate",function(){return f}),o.export(r,"__param",function(){return l}),o.export(r,"__esDecorate",function(){return p}),o.export(r,"__runInitializers",function(){return d}),o.export(r,"__propKey",function(){return y}),o.export(r,"__setFunctionName",function(){return _}),o.export(r,"__metadata",function(){return b}),o.export(r,"__awaiter",function(){return h}),o.exporLine truncated
!function(e,t,r,n,o,i,c,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof a[n]&&a[n],f=s.i||{},l=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!l[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof a[n]&&a[n];if(!r&&i)return i(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var c=Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}f.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},f.cache={};var u=l[t]=new d.Module(t);e[t][0].call(u.exports,f,u,u.exports,a)}return l[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=l,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=f,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return a[n]}}),a[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var _=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=_:"function"==typeof define&&define.amd&&define(function(){return _})}}({"9JZgh":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),c=e("@swc/helpers/cjs/_object_spread.cjs"),u=e("@swc/helpers/cjs/_object_spread_props.cjs"),a=e("@swc/helpers/cjs/_ts_generator.cjs");function s(e){return function(t){return(0,i._)(function(){return(0,a._)(this,function(r){return t.on("video:loadedmetadata",function(){var r,n,o,i,a,s,f=e.url||t.option.url,l=e.width||160,p=e.number||100,d=e.scale||1;r={url:f,width:l,number:p},n=function(e){t.thumbnails=(0,u._)((0,c._)({},e),{column:10,number:p,width:l,scale:d})},o=r.url,i=r.width,a=r.number,(s=document.createElement("video")).crossOrigin="anonymous",s.src=o,s.onloadedmetadata=function(){var e=s.duration,t=document.createElement("canvas"),r=t.getContext("2d"),o=Math.floor(i*s.videoHeight/s.videoWidth);t.width=10*i,t.height=o*Math.ceil(a/10);var c=null;!function u(f){t.toBlob(function(e){URL.revokeObjectURL(c),n({url:c=URL.createObjectURL(e),height:o})},"image/jpeg"),f>=a||(s.currentTime=e*f/a,s.onseeked=function(){r.drawImage(s,f%10*i,Math.floor(f/10)*o,i,o),u(f+1)})}(0)}}),[2,{name:"artplayerPluginAutoThumbnail"}]})})()}}"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=s)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_object_spread.cjs":"kyoEj","@swc/helpers/cjs/_object_spread_props.cjs":"3G1wX","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],cZn0e:[function(e,t,r,n){"use strict";function o(e,t,r,n,o,i,c){try{var u=e[i](c),a=u.value}catch(e){r(e);return}u.done?t(a):Promise.resolve(a).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var c=e.apply(t,r);function u(e){o(c,n,i,u,a,"next",e)}function a(e){o(c,n,i,u,a,"throw",e)}u(void 0)})}}},{}],kyoEj:[function(e,t,r,n){"use strict";var o=e("9f9b8a24218ee51e");r._=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){o._(e,t,r[t])})}return e}},{"9f9b8a24218ee51e":"ltU3W"}],ltU3W:[function(e,t,r,n){"use strict";r._=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},{}],"3G1wX":[function(e,t,r,n){"use strict";r._=function(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}},{}],eltGh:[function(e,t,r,n){"use strict";r._=e("eb260df52bffddd").__generator},{eb260df52bffddd:"6yrAu"}],"6yrAu":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"__extends",function(){return u}),o.export(r,"__assign",function(){return a}),o.export(r,"__rest",function(){return s}),o.export(r,"__decorate",function(){return f}),o.export(r,"__param",function(){return l}),o.export(r,"__esDecorate",function(){return p}),o.export(r,"__runInitializers",function(){return d}),o.export(r,"__propKey",function(){return y}),o.export(r,"__setFunctionName",function(){return _}),o.export(r,"__metadata",function(){return h}),o.export(r,"__awaiter",function(){return b}),o.export(r,"__generator",function(){return v}),o.Line truncated
@@ -1,30 +1,30 @@
{
"license": "MIT",
"version": "1.0.1",
"name": "artplayer-plugin-auto-thumbnail",
"description": "auto-thumbnail plugin for ArtPlayer",
"main": "dist/artplayer-plugin-auto-thumbnail.js",
"legacy": "dist/artplayer-plugin-auto-thumbnail.legacy.js",
"module": "dist/artplayer-plugin-auto-thumbnail.esm.js",
"types": "types/artplayer-plugin-auto-thumbnail.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-auto-thumbnail.esm.js",
"require": "./dist/artplayer-plugin-auto-thumbnail.js",
"default": "./dist/artplayer-plugin-auto-thumbnail.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
"name": "artplayer-plugin-auto-thumbnail",
"version": "1.0.1",
"description": "auto-thumbnail plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-auto-thumbnail.esm.js",
"require": "./dist/artplayer-plugin-auto-thumbnail.js",
"default": "./dist/artplayer-plugin-auto-thumbnail.js"
},
"main": "dist/artplayer-plugin-auto-thumbnail.js",
"legacy": "dist/artplayer-plugin-auto-thumbnail.legacy.js",
"module": "dist/artplayer-plugin-auto-thumbnail.esm.js",
"types": "types/artplayer-plugin-auto-thumbnail.d.ts",
"browserslist": "last 1 Chrome version"
}
@@ -1,67 +1,68 @@
function create({ url, width, number }, callback) {
const video = document.createElement('video');
video.crossOrigin = 'anonymous';
video.src = url;
const video = document.createElement('video')
video.crossOrigin = 'anonymous'
video.src = url
video.onloadedmetadata = () => {
const duration = video.duration;
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
const height = Math.floor((width * video.videoHeight) / video.videoWidth);
video.onloadedmetadata = () => {
const duration = video.duration
const canvas = document.createElement('canvas')
const ctx = canvas.getContext('2d')
const height = Math.floor((width * video.videoHeight) / video.videoWidth)
canvas.width = width * 10;
canvas.height = height * Math.ceil(number / 10);
canvas.width = width * 10
canvas.height = height * Math.ceil(number / 10)
let blobUrl = null;
let blobUrl = null
function seekAndDraw(index) {
canvas.toBlob((blob) => {
URL.revokeObjectURL(blobUrl);
blobUrl = URL.createObjectURL(blob);
function seekAndDraw(index) {
canvas.toBlob((blob) => {
URL.revokeObjectURL(blobUrl)
blobUrl = URL.createObjectURL(blob)
callback({
url: blobUrl,
height: height,
});
}, 'image/jpeg');
callback({
url: blobUrl,
height,
})
}, 'image/jpeg')
if (index >= number) return;
video.currentTime = (duration * index) / number;
if (index >= number)
return
video.currentTime = (duration * index) / number
video.onseeked = () => {
ctx.drawImage(video, (index % 10) * width, Math.floor(index / 10) * height, width, height);
seekAndDraw(index + 1);
};
}
video.onseeked = () => {
ctx.drawImage(video, (index % 10) * width, Math.floor(index / 10) * height, width, height)
seekAndDraw(index + 1)
}
}
seekAndDraw(0);
};
seekAndDraw(0)
}
}
export default function artplayerPluginAutoThumbnail(option) {
return async (art) => {
art.on('video:loadedmetadata', () => {
const url = option.url || art.option.url;
const width = option.width || 160;
const number = option.number || 100;
const scale = option.scale || 1;
create({ url, width, number }, (config) => {
art.thumbnails = {
...config,
column: 10,
number,
width,
scale,
};
});
});
return async (art) => {
art.on('video:loadedmetadata', () => {
const url = option.url || art.option.url
const width = option.width || 160
const number = option.number || 100
const scale = option.scale || 1
create({ url, width, number }, (config) => {
art.thumbnails = {
...config,
column: 10,
number,
width,
scale,
}
})
})
return {
name: 'artplayerPluginAutoThumbnail',
};
};
return {
name: 'artplayerPluginAutoThumbnail',
}
}
}
if (typeof window !== 'undefined') {
window['artplayerPluginAutoThumbnail'] = artplayerPluginAutoThumbnail;
window.artplayerPluginAutoThumbnail = artplayerPluginAutoThumbnail
}
@@ -1,17 +1,17 @@
import type Artplayer from 'artplayer';
import type Artplayer from 'artplayer'
export = artplayerPluginAutoThumbnail;
export = artplayerPluginAutoThumbnail
export as namespace artplayerPluginAutoThumbnail;
type Option = {
url?: string;
width?: number;
number?: number;
scale?: number;
};
interface Option {
url?: string
width?: number
number?: number
scale?: number
}
type Result = {
name: 'artplayerPluginAutoThumbnail';
};
interface Result {
name: 'artplayerPluginAutoThumbnail'
}
declare const artplayerPluginAutoThumbnail: (option: Option) => (art: Artplayer) => Result;
declare const artplayerPluginAutoThumbnail: (option: Option) => (art: Artplayer) => Result
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var g=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"4omrA":[function(e,t,r,a){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",()=>l);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=`<div class="art-chapter"><div class="art-chapter-inner"><div class="art-progress-hover"></div><div class="art-progress-loaded"></div><div class="art-progress-played"></div></div></div>`,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'<div class="art-chapters"></div>'),y=n(h,'<div class="art-chapter-title"></div>');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.innerText=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.innerText="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;r<e.length;r++){let a=e[r],n=e[r+1];if(a.end===1/0&&(a.end=t.duration),"number"!=typeof a.start||"number"!=typeof a.end||"string"!=typeof a.title)throw Error("Illegal chapter data type");if(a.start<0||a.end>t.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end<t.duration&&e.push({start:e[e.length-1].end,end:t.duration,title:""});for(let t=0;t<e.length-1;t++)e[t].end!==e[t+1].start&&e.splice(t+1,0,{start:e[t].end,end:e[t+1].start,title:""});c=e.map(e=>{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;o<c.length;o++){let{$chapter:i,$loaded:d,$played:p,$hover:s}=c[o],f={hover:s,loaded:d,played:p}[e];if(!f)return;let h=g.clientWidth*r,v=t.duration*r,b=parseFloat(i.dataset.duration),x=parseFloat(i.dataset.start),w=parseFloat(i.dataset.end);if(v<x&&a(f,"width",0),v>w&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"gsGKU","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],gsGKU:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-pluLine truncated
!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var g=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"1LLzi":[function(e,t,r,a){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",()=>l);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=`<div class="art-chapter"><div class="art-chapter-inner"><div class="art-progress-hover"></div><div class="art-progress-loaded"></div><div class="art-progress-played"></div></div></div>`,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'<div class="art-chapters"></div>'),y=n(h,'<div class="art-chapter-title"></div>');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.textContent=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.textContent="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;r<e.length;r++){let a=e[r],n=e[r+1];if(a.end===1/0&&(a.end=t.duration),"number"!=typeof a.start||"number"!=typeof a.end||"string"!=typeof a.title)throw TypeError("Illegal chapter data type");if(a.start<0||a.end>t.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end<t.duration&&e.push({start:e[e.length-1].end,end:t.duration,title:""});for(let t=0;t<e.length-1;t++)e[t].end!==e[t+1].start&&e.splice(t+1,0,{start:e[t].end,end:e[t+1].start,title:""});c=e.map(e=>{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;o<c.length;o++){let{$chapter:i,$loaded:d,$played:p,$hover:s}=c[o],f={hover:s,loaded:d,played:p}[e];if(!f)return;let h=g.clientWidth*r,v=t.duration*r,b=Number.parseFloat(i.dataset.duration),x=Number.parseFloat(i.dataset.start),w=Number.parseFloat(i.dataset.end);if(v<x&&a(f,"width",0),v>w&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"e5E4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e5E4m:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:Line truncated
//# sourceMappingURL=artplayer-plugin-chapter.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAEe,SAAS,EAAuB,EAAS,CAAC,CAAC,EACtD,OAAO,AAAC,IACJ,GAAM,CAAE,QAAA,CAAO,CAAE,CAAG,EAAI,QAAQ,CAC1B,CAAE,SAAA,CAAQ,CAAE,OAAA,CAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,SAAA,CAAQ,CAAE,SAAA,CAAQ,CAAE,YAAA,CAAW,CAAE,CAAG,EAAI,WAAW,CAAC,KAAK,CAE3F,EAAO;A;A;A;A;A;A;A;AAQb,QAAA,CA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 truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAEe,SAAS,EAAuB,EAAS,CAAC,CAAC,EACxD,OAAO,AAAC,IACN,GAAM,CAAE,QAAA,CAAO,CAAE,CAAG,EAAI,QAAQ,CAC1B,CAAE,SAAA,CAAQ,CAAE,OAAA,CAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,SAAA,CAAQ,CAAE,SAAA,CAAQ,CAAE,YAAA,CAAW,CAAE,CAAG,EAAI,WAAW,CAAC,KAAK,CAE3F,EAAO;A;A;A;A;A;A;A;AAQT,QAAA,CA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 truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var g=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({jz4E5:[function(e,t,r,a){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",()=>l);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=`<div class="art-chapter"><div class="art-chapter-inner"><div class="art-progress-hover"></div><div class="art-progress-loaded"></div><div class="art-progress-played"></div></div></div>`,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'<div class="art-chapters"></div>'),y=n(h,'<div class="art-chapter-title"></div>');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.innerText=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.innerText="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;r<e.length;r++){let a=e[r],n=e[r+1];if(a.end===1/0&&(a.end=t.duration),"number"!=typeof a.start||"number"!=typeof a.end||"string"!=typeof a.title)throw Error("Illegal chapter data type");if(a.start<0||a.end>t.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end<t.duration&&e.push({start:e[e.length-1].end,end:t.duration,title:""});for(let t=0;t<e.length-1;t++)e[t].end!==e[t+1].start&&e.splice(t+1,0,{start:e[t].end,end:e[t+1].start,title:""});c=e.map(e=>{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;o<c.length;o++){let{$chapter:i,$loaded:d,$played:p,$hover:s}=c[o],f={hover:s,loaded:d,played:p}[e];if(!f)return;let h=g.clientWidth*r,v=t.duration*r,b=parseFloat(i.dataset.duration),x=parseFloat(i.dataset.start),w=parseFloat(i.dataset.end);if(v<x&&a(f,"width",0),v>w&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"cYOwY","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cYOwY:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:none!important}.artplayer-plugiLine truncated
!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var g=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"3VfEb":[function(e,t,r,a){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",()=>l);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=`<div class="art-chapter"><div class="art-chapter-inner"><div class="art-progress-hover"></div><div class="art-progress-loaded"></div><div class="art-progress-played"></div></div></div>`,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'<div class="art-chapters"></div>'),y=n(h,'<div class="art-chapter-title"></div>');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.textContent=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.textContent="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;r<e.length;r++){let a=e[r],n=e[r+1];if(a.end===1/0&&(a.end=t.duration),"number"!=typeof a.start||"number"!=typeof a.end||"string"!=typeof a.title)throw TypeError("Illegal chapter data type");if(a.start<0||a.end>t.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end<t.duration&&e.push({start:e[e.length-1].end,end:t.duration,title:""});for(let t=0;t<e.length-1;t++)e[t].end!==e[t+1].start&&e.splice(t+1,0,{start:e[t].end,end:e[t+1].start,title:""});c=e.map(e=>{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;o<c.length;o++){let{$chapter:i,$loaded:d,$played:p,$hover:s}=c[o],f={hover:s,loaded:d,played:p}[e];if(!f)return;let h=g.clientWidth*r,v=t.duration*r,b=Number.parseFloat(i.dataset.duration),x=Number.parseFloat(i.dataset.start),w=Number.parseFloat(i.dataset.end);if(v<x&&a(f,"width",0),v>w&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"emPWt","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],emPWt:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:Line truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var g=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({bzF6W:[function(e,t,r,a){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",function(){return l});var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var r=t.template.$player,a=t.constructor.utils,n=a.setStyle,o=a.append,i=a.clamp,l=a.query,d=a.isMobile,p=a.addClass,s=a.removeClass,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=o(h,'<div class="art-chapters"></div>'),y=o(h,'<div class="art-chapter-title"></div>');function v(e){var t=e.$chapter,r=e.width,a=t.dataset.title.trim();if(a){n(y,"display","flex"),y.innerText=a;var o=y.clientWidth;r<=o/2?n(y,"left",0):r>h.clientWidth-o/2?n(y,"left","".concat(h.clientWidth-o,"px")):n(y,"left","".concat(r-o/2,"px"))}else n(y,"display","none")}function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if((c=[],g.innerText="",s(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort(function(e,t){return e.start-t.start});for(var a=0;a<e.length;a++){var n=e[a],d=e[a+1];if(n.end===1/0&&(n.end=t.duration),"number"!=typeof n.start||"number"!=typeof n.end||"string"!=typeof n.title)throw Error("Illegal chapter data type");if(n.start<0||n.end>t.duration||n.start>=n.end||d&&n.end>d.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end<t.duration&&e.push({start:e[e.length-1].end,end:t.duration,title:""});for(var u=0;u<e.length-1;u++)e[u].end!==e[u+1].start&&e.splice(u+1,0,{start:e[u].end,end:e[u+1].start,title:""});c=e.map(function(e){var r=o(g,'\n <div class="art-chapter">\n<div class="art-chapter-inner">\n<div class="art-progress-hover"></div>\n<div class="art-progress-loaded"></div>\n<div class="art-progress-played"></div>\n</div>\n</div>\n '),a=i(e.start,0,t.duration),n=i(e.end,0,t.duration),d=n-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=n,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width="".concat(100*p,"%"),{$chapter:r,$hover:l(".art-progress-hover",r),$loaded:l(".art-progress-loaded",r),$played:l(".art-progress-played",r)}}),p(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",function(e,r,a){if(c.length)for(var o=0;o<c.length;o++){var i=c[o],l=i.$chapter,p=i.$loaded,s=i.$played,f={hover:i.$hover,loaded:p,played:s}[e];if(!f)return;var h=g.clientWidth*r,m=t.duration*r,b=parseFloat(l.dataset.duration),x=parseFloat(l.dataset.start),w=parseFloat(l.dataset.end);if(m<x&&n(f,"width",0),m>w&&n(f,"width","100%"),m>=x&&m<=w){var O=(m-x)/b;n(f,"width","".concat(100*O,"%")),d?"played"===e&&a&&(v({$chapter:l,width:h}),clearTimeout(u),u=setTimeout(function(){n(y,"display","none")},500)):"hover"===e&&v({$chapter:l,width:h})}}}),d||t.proxy(f,"mouseleave",function(){c.length&&n(y,"display","none")}),t.once("video:loadedmetadata",function(){return m(e.chapters)}),{name:"artplayerPluginChapter",update:function(e){return m(e.chapters)}}}}if("undefined"!=typeof document){var d="artplayer-plugin-chapter",p=document.getElementById(d);p||((p=document.createElement("style")).id=d,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){document.head.appendChild(p)}):(document.head||document.documentElement).appendChild(p)),p.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"9Oi7e","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"9Oi7e":[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:transpareLine truncated
!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var g=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"7hySu":[function(e,t,r,a){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",function(){return l});var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var r=t.template.$player,a=t.constructor.utils,n=a.setStyle,o=a.append,i=a.clamp,l=a.query,d=a.isMobile,p=a.addClass,s=a.removeClass,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=o(h,'<div class="art-chapters"></div>'),y=o(h,'<div class="art-chapter-title"></div>');function v(e){var t=e.$chapter,r=e.width,a=t.dataset.title.trim();if(a){n(y,"display","flex"),y.textContent=a;var o=y.clientWidth;r<=o/2?n(y,"left",0):r>h.clientWidth-o/2?n(y,"left","".concat(h.clientWidth-o,"px")):n(y,"left","".concat(r-o/2,"px"))}else n(y,"display","none")}function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if((c=[],g.textContent="",s(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort(function(e,t){return e.start-t.start});for(var a=0;a<e.length;a++){var n=e[a],d=e[a+1];if(n.end===1/0&&(n.end=t.duration),"number"!=typeof n.start||"number"!=typeof n.end||"string"!=typeof n.title)throw TypeError("Illegal chapter data type");if(n.start<0||n.end>t.duration||n.start>=n.end||d&&n.end>d.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end<t.duration&&e.push({start:e[e.length-1].end,end:t.duration,title:""});for(var u=0;u<e.length-1;u++)e[u].end!==e[u+1].start&&e.splice(u+1,0,{start:e[u].end,end:e[u+1].start,title:""});c=e.map(function(e){var r=o(g,'\n <div class="art-chapter">\n<div class="art-chapter-inner">\n<div class="art-progress-hover"></div>\n<div class="art-progress-loaded"></div>\n<div class="art-progress-played"></div>\n</div>\n</div>\n '),a=i(e.start,0,t.duration),n=i(e.end,0,t.duration),d=n-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=n,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width="".concat(100*p,"%"),{$chapter:r,$hover:l(".art-progress-hover",r),$loaded:l(".art-progress-loaded",r),$played:l(".art-progress-played",r)}}),p(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",function(e,r,a){if(c.length)for(var o=0;o<c.length;o++){var i=c[o],l=i.$chapter,p=i.$loaded,s=i.$played,f={hover:i.$hover,loaded:p,played:s}[e];if(!f)return;var h=g.clientWidth*r,m=t.duration*r,b=Number.parseFloat(l.dataset.duration),x=Number.parseFloat(l.dataset.start),w=Number.parseFloat(l.dataset.end);if(m<x&&n(f,"width",0),m>w&&n(f,"width","100%"),m>=x&&m<=w){var M=(m-x)/b;n(f,"width","".concat(100*M,"%")),d?"played"===e&&a&&(v({$chapter:l,width:h}),clearTimeout(u),u=setTimeout(function(){n(y,"display","none")},500)):"hover"===e&&v({$chapter:l,width:h})}}}),d||t.proxy(f,"mouseleave",function(){c.length&&n(y,"display","none")}),t.once("video:loadedmetadata",function(){return m(e.chapters)}),{name:"artplayerPluginChapter",update:function(e){return m(e.chapters)}}}}if("undefined"!=typeof document){var d="artplayer-plugin-chapter",p=document.getElementById(d);p||((p=document.createElement("style")).id=d,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){document.head.appendChild(p)}):(document.head||document.documentElement).appendChild(p)),p.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"fcXWB","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],fcXWB:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-innLine truncated
+28 -28
View File
@@ -1,30 +1,30 @@
{
"license": "MIT",
"version": "1.0.1",
"name": "artplayer-plugin-chapter",
"description": "chapter plugin for ArtPlayer",
"main": "dist/artplayer-plugin-chapter.js",
"legacy": "dist/artplayer-plugin-chapter.legacy.js",
"module": "dist/artplayer-plugin-chapter.esm.js",
"types": "types/artplayer-plugin-chapter.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-chapter.esm.js",
"require": "./dist/artplayer-plugin-chapter.js",
"default": "./dist/artplayer-plugin-chapter.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
"name": "artplayer-plugin-chapter",
"version": "1.0.1",
"description": "chapter plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-chapter.esm.js",
"require": "./dist/artplayer-plugin-chapter.js",
"default": "./dist/artplayer-plugin-chapter.js"
},
"main": "dist/artplayer-plugin-chapter.js",
"legacy": "dist/artplayer-plugin-chapter.legacy.js",
"module": "dist/artplayer-plugin-chapter.esm.js",
"types": "types/artplayer-plugin-chapter.d.ts",
"browserslist": "last 1 Chrome version"
}
+188 -177
View File
@@ -1,11 +1,11 @@
import style from 'bundle-text:./style.less';
import style from 'bundle-text:./style.less'
export default function artplayerPluginChapter(option = {}) {
return (art) => {
const { $player } = art.template;
const { setStyle, append, clamp, query, isMobile, addClass, removeClass } = art.constructor.utils;
return (art) => {
const { $player } = art.template
const { setStyle, append, clamp, query, isMobile, addClass, removeClass } = art.constructor.utils
const html = `
const html = `
<div class="art-chapter">
<div class="art-chapter-inner">
<div class="art-progress-hover"></div>
@@ -13,194 +13,205 @@ export default function artplayerPluginChapter(option = {}) {
<div class="art-progress-played"></div>
</div>
</div>
`;
`
let titleTimer = null;
let $chapters = [];
let titleTimer = null
let $chapters = []
const $progress = art.query('.art-control-progress');
const $inner = art.query('.art-control-progress-inner');
const $control = append($inner, '<div class="art-chapters"></div>');
const $title = append($inner, '<div class="art-chapter-title"></div>');
const $progress = art.query('.art-control-progress')
const $inner = art.query('.art-control-progress-inner')
const $control = append($inner, '<div class="art-chapters"></div>')
const $title = append($inner, '<div class="art-chapter-title"></div>')
function showTitle({ $chapter, width }) {
const title = $chapter.dataset.title.trim();
if (title) {
setStyle($title, 'display', 'flex');
$title.innerText = title;
const titleWidth = $title.clientWidth;
if (width <= titleWidth / 2) {
setStyle($title, 'left', 0);
} else if (width > $inner.clientWidth - titleWidth / 2) {
setStyle($title, 'left', `${$inner.clientWidth - titleWidth}px`);
} else {
setStyle($title, 'left', `${width - titleWidth / 2}px`);
}
} else {
setStyle($title, 'display', 'none');
}
function showTitle({ $chapter, width }) {
const title = $chapter.dataset.title.trim()
if (title) {
setStyle($title, 'display', 'flex')
$title.textContent = title
const titleWidth = $title.clientWidth
if (width <= titleWidth / 2) {
setStyle($title, 'left', 0)
}
else if (width > $inner.clientWidth - titleWidth / 2) {
setStyle($title, 'left', `${$inner.clientWidth - titleWidth}px`)
}
else {
setStyle($title, 'left', `${width - titleWidth / 2}px`)
}
}
else {
setStyle($title, 'display', 'none')
}
}
function update(chapters = []) {
$chapters = []
$control.textContent = ''
removeClass($player, 'artplayer-plugin-chapter')
if (!Array.isArray(chapters))
return
if (!chapters.length)
return
if (!art.duration)
return
chapters = chapters.sort((a, b) => a.start - b.start)
for (let i = 0; i < chapters.length; i++) {
const chapter = chapters[i]
const nextChapter = chapters[i + 1]
if (chapter.end === Infinity) {
chapter.end = art.duration
}
function update(chapters = []) {
$chapters = [];
$control.innerText = '';
removeClass($player, 'artplayer-plugin-chapter');
if (!Array.isArray(chapters)) return;
if (!chapters.length) return;
if (!art.duration) return;
chapters = chapters.sort((a, b) => a.start - b.start);
for (let i = 0; i < chapters.length; i++) {
const chapter = chapters[i];
const nextChapter = chapters[i + 1];
if (chapter.end === Infinity) {
chapter.end = art.duration;
}
if (
typeof chapter.start !== 'number' ||
typeof chapter.end !== 'number' ||
typeof chapter.title !== 'string'
) {
throw new Error('Illegal chapter data type');
}
if (chapter.start < 0 || chapter.end > art.duration || chapter.start >= chapter.end) {
throw new Error('Illegal chapter time point');
}
if (nextChapter && chapter.end > nextChapter.start) {
throw new Error('Illegal chapter time point');
}
}
if (chapters[0].start > 0) {
chapters.unshift({ start: 0, end: chapters[0].start, title: '' });
}
if (chapters[chapters.length - 1].end < art.duration) {
chapters.push({ start: chapters[chapters.length - 1].end, end: art.duration, title: '' });
}
for (let i = 0; i < chapters.length - 1; i++) {
if (chapters[i].end !== chapters[i + 1].start) {
chapters.splice(i + 1, 0, {
start: chapters[i].end,
end: chapters[i + 1].start,
title: '',
});
}
}
$chapters = chapters.map((chapter) => {
const $chapter = append($control, html);
const start = clamp(chapter.start, 0, art.duration);
const end = clamp(chapter.end, 0, art.duration);
const duration = end - start;
const percentage = duration / art.duration;
$chapter.dataset.start = start;
$chapter.dataset.end = end;
$chapter.dataset.duration = duration;
$chapter.dataset.title = chapter.title.trim();
$chapter.style.width = `${percentage * 100}%`;
return {
$chapter,
$hover: query('.art-progress-hover', $chapter),
$loaded: query('.art-progress-loaded', $chapter),
$played: query('.art-progress-played', $chapter),
};
});
addClass($player, 'artplayer-plugin-chapter');
art.emit('setBar', 'loaded', art.loaded || 0);
if (
typeof chapter.start !== 'number'
|| typeof chapter.end !== 'number'
|| typeof chapter.title !== 'string'
) {
throw new TypeError('Illegal chapter data type')
}
art.on('setBar', (type, percentage, event) => {
if (!$chapters.length) return;
for (let i = 0; i < $chapters.length; i++) {
const { $chapter, $loaded, $played, $hover } = $chapters[i];
const $target = {
hover: $hover,
loaded: $loaded,
played: $played,
}[type];
if (!$target) return;
const width = $control.clientWidth * percentage;
const currentTime = art.duration * percentage;
const duration = parseFloat($chapter.dataset.duration);
const start = parseFloat($chapter.dataset.start);
const end = parseFloat($chapter.dataset.end);
if (currentTime < start) {
setStyle($target, 'width', 0);
}
if (currentTime > end) {
setStyle($target, 'width', '100%');
}
if (currentTime >= start && currentTime <= end) {
const percentage = (currentTime - start) / duration;
setStyle($target, 'width', `${percentage * 100}%`);
if (isMobile) {
if (type === 'played' && event) {
showTitle({ $chapter, width });
clearTimeout(titleTimer);
titleTimer = setTimeout(() => {
setStyle($title, 'display', 'none');
}, 500);
}
} else {
if (type === 'hover') {
showTitle({ $chapter, width });
}
}
}
}
});
if (!isMobile) {
art.proxy($progress, 'mouseleave', () => {
if (!$chapters.length) return;
setStyle($title, 'display', 'none');
});
if (chapter.start < 0 || chapter.end > art.duration || chapter.start >= chapter.end) {
throw new Error('Illegal chapter time point')
}
art.once('video:loadedmetadata', () => update(option.chapters));
if (nextChapter && chapter.end > nextChapter.start) {
throw new Error('Illegal chapter time point')
}
}
if (chapters[0].start > 0) {
chapters.unshift({ start: 0, end: chapters[0].start, title: '' })
}
if (chapters[chapters.length - 1].end < art.duration) {
chapters.push({ start: chapters[chapters.length - 1].end, end: art.duration, title: '' })
}
for (let i = 0; i < chapters.length - 1; i++) {
if (chapters[i].end !== chapters[i + 1].start) {
chapters.splice(i + 1, 0, {
start: chapters[i].end,
end: chapters[i + 1].start,
title: '',
})
}
}
$chapters = chapters.map((chapter) => {
const $chapter = append($control, html)
const start = clamp(chapter.start, 0, art.duration)
const end = clamp(chapter.end, 0, art.duration)
const duration = end - start
const percentage = duration / art.duration
$chapter.dataset.start = start
$chapter.dataset.end = end
$chapter.dataset.duration = duration
$chapter.dataset.title = chapter.title.trim()
$chapter.style.width = `${percentage * 100}%`
return {
name: 'artplayerPluginChapter',
update: ({ chapters }) => update(chapters),
};
};
$chapter,
$hover: query('.art-progress-hover', $chapter),
$loaded: query('.art-progress-loaded', $chapter),
$played: query('.art-progress-played', $chapter),
}
})
addClass($player, 'artplayer-plugin-chapter')
art.emit('setBar', 'loaded', art.loaded || 0)
}
art.on('setBar', (type, percentage, event) => {
if (!$chapters.length)
return
for (let i = 0; i < $chapters.length; i++) {
const { $chapter, $loaded, $played, $hover } = $chapters[i]
const $target = {
hover: $hover,
loaded: $loaded,
played: $played,
}[type]
if (!$target)
return
const width = $control.clientWidth * percentage
const currentTime = art.duration * percentage
const duration = Number.parseFloat($chapter.dataset.duration)
const start = Number.parseFloat($chapter.dataset.start)
const end = Number.parseFloat($chapter.dataset.end)
if (currentTime < start) {
setStyle($target, 'width', 0)
}
if (currentTime > end) {
setStyle($target, 'width', '100%')
}
if (currentTime >= start && currentTime <= end) {
const percentage = (currentTime - start) / duration
setStyle($target, 'width', `${percentage * 100}%`)
if (isMobile) {
if (type === 'played' && event) {
showTitle({ $chapter, width })
clearTimeout(titleTimer)
titleTimer = setTimeout(() => {
setStyle($title, 'display', 'none')
}, 500)
}
}
else {
if (type === 'hover') {
showTitle({ $chapter, width })
}
}
}
}
})
if (!isMobile) {
art.proxy($progress, 'mouseleave', () => {
if (!$chapters.length)
return
setStyle($title, 'display', 'none')
})
}
art.once('video:loadedmetadata', () => update(option.chapters))
return {
name: 'artplayerPluginChapter',
update: ({ chapters }) => update(chapters),
}
}
}
if (typeof document !== 'undefined') {
const id = 'artplayer-plugin-chapter';
let $style = document.getElementById(id);
if (!$style) {
$style = document.createElement('style');
$style.id = id;
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', () => {
document.head.appendChild($style);
});
} else {
(document.head || document.documentElement).appendChild($style);
}
const id = 'artplayer-plugin-chapter'
let $style = document.getElementById(id)
if (!$style) {
$style = document.createElement('style')
$style.id = id
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', () => {
document.head.appendChild($style)
})
}
$style.textContent = style;
else {
(document.head || document.documentElement).appendChild($style)
}
}
$style.textContent = style
}
if (typeof window !== 'undefined') {
window['artplayerPluginChapter'] = artplayerPluginChapter;
window.artplayerPluginChapter = artplayerPluginChapter
}
@@ -1,21 +1,21 @@
import type Artplayer from 'artplayer';
import type Artplayer from 'artplayer'
export = artplayerPluginChapter;
export = artplayerPluginChapter
export as namespace artplayerPluginChapter;
type Chapters = {
start: number;
end: number;
title: string;
}[];
start: number
end: number
title: string
}[]
type Option = {
chapters?: Chapters;
};
interface Option {
chapters?: Chapters
}
type Result = {
name: 'artplayerPluginChapter';
update: (option: Option) => void;
};
interface Result {
name: 'artplayerPluginChapter'
update: (option: Option) => void
}
declare const artplayerPluginChapter: (option: Option) => (art: Artplayer) => Result;
declare const artplayerPluginChapter: (option: Option) => (art: Artplayer) => Result
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,o,n,r,i,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,o){if(!u[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof s[n]&&s[n];if(!o&&i)return i(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new p.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=f,this.exports={}},p.modules=e,p.cache=u,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(p,"root",{get:function(){return s[n]}}),s[n]=p;for(var w=0;w<t.length;w++)p(t[w]);if(o){var m=p(o);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"4omrA":[function(e,t,o,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(o),r.export(o,"default",()=>c);let i=e=>new Promise((t,o)=>{let n=document.createElement("script");n.src=e,n.onload=t,n.onerror=o,document.body.appendChild(n)}),a=e=>({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[e.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream";function c(e){let t=!1,o=null,n=null,r=()=>new Promise((r,a)=>{window.__onGCastApiAvailable=i=>{if(i){let i=window.cast.framework.CastContext.getInstance();i.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),i.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let r=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case r.NO_SESSION:e.onStateChange?.("disconnected"),s("disconnected");break;case r.SESSION_STARTING:e.onStateChange?.("connecting"),s("connecting");break;case r.SESSION_STARTED:e.onStateChange?.("connected"),s("connected");break;case r.SESSION_ENDING:e.onStateChange?.("disconnecting"),s("disconnecting");break;case r.SESSION_RESUMED:e.onStateChange?.("connected"),s("connected")}}),i.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,r()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||i(e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(a)}),c=(t,o)=>{let n=e.url||t.option.url,r=new window.chrome.cast.media.MediaInfo(n,e.mimeType||a(n)),i=new window.chrome.cast.media.LoadRequest(r);o.loadMedia(i).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})},s=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}};return async i=>(i.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`<i class="art-icon art-icon-cast">${e.icon||'<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>'}</i>`,click:async()=>{if(!t)try{await r()}catch(t){throw i.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let n=window.cast.framework.CastContext.getInstance();if(o)c(i,o);else try{let e=await n.requestSession();c(i,e)}catch(t){throw i.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}"undefined"!=typeof window&&(window.artplayerPluginChromecast=c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],w4pLy:[function(e,t,o,n){o.interopDefaLine truncated
!function(e,t,o,n,r,i,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,o){if(!u[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof s[n]&&s[n];if(!o&&i)return i(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new p.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=f,this.exports={}},p.modules=e,p.cache=u,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(p,"root",{get:function(){return s[n]}}),s[n]=p;for(var w=0;w<t.length;w++)p(t[w]);if(o){var m=p(o);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({cv67D:[function(e,t,o,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let t=!1,o=null,n=null,r=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}},i=(t,o)=>{let n=e.url||t.option.url,r=new window.chrome.cast.media.MediaInfo(n,e.mimeType||({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[n.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream"),i=new window.chrome.cast.media.LoadRequest(r);o.loadMedia(i).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})};return async a=>(a.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`<i class="art-icon art-icon-cast">${e.icon||'<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>'}</i>`,click:async()=>{if(!t)try{await new Promise((i,a)=>{var c;window.__onGCastApiAvailable=c=>{if(c){let a=window.cast.framework.CastContext.getInstance();a.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),a.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let i=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case i.NO_SESSION:e.onStateChange?.("disconnected"),r("disconnected");break;case i.SESSION_STARTING:e.onStateChange?.("connecting"),r("connecting");break;case i.SESSION_STARTED:e.onStateChange?.("connected"),r("connected");break;case i.SESSION_ENDING:e.onStateChange?.("disconnecting"),r("disconnecting");break;case i.SESSION_RESUMED:e.onStateChange?.("connected"),r("connected")}}),a.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,i()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||(c=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise((e,t)=>{let o=document.createElement("script");o.src=c,o.onload=e,o.onerror=t,document.body.appendChild(o)})).catch(a)})}catch(t){throw a.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let c=window.cast.framework.CastContext.getInstance();if(o)i(a,o);else try{let e=await c.requestSession();i(a,e)}catch(t){throw a.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}r.defineInteropFlag(o),r.export(o,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginChromecast=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,t,o,n){o.interopDefault=function(e){returnLine truncated
//# sourceMappingURL=artplayer-plugin-chromecast.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC4BwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GA5BxB,IAAM,EAAa,AAAC,GAChB,IAAI,QAAQ,CAAC,EAAS,KAClB,IAAM,EAAS,SAAS,aAAa,CAAC,SACtC,CAAA,EAAO,GAAG,CAAG,EACb,EAAO,MAAM,CAAG,EAChB,EAAO,OAAO,CAAG,EACjB,SAAS,IAAI,CAAC,WAAW,CAAC,EAC9B,GAEE,EAAc,AAAC,GAgBV,AAdW,CAAA,CACd,IAAK,YACL,KAAM,aACN,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,kBACL,I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","sources":["<anon>","src/index.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelReLine truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kDC6Be,SAAS,EAA0B,CAAM,EAItD,IAAI,EAAoB,CAAA,EACpB,EAAc,KACd,EAAY,KAEV,EAAmB,AAAC,IACxB,IAAM,EAAS,SAAS,aAAa,CAAC,kBACtC,GAAI,EACF,OAAQ,GACN,IAAK,YACH,EAAO,KAAK,CAAC,KAAK,CAAG,MACrB,KACF,KAAK,aACL,IAAK,gBACH,EAAO,KAAK,CAAC,KAAK,CAAG,SACrB,KACF,SAEE,EAAO,KAAK,CAAC,KAAK,CAAG,OAEzB,CAEJ,EA2EM,EAAY,CAAC,EAAK,KACtB,IAAM,EAAM,EAAO,GAAG,EAAI,EAAI,MAAM,CA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","sources":["<anon>","packages/artplayer-plugin-chromecast/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcLine truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,o,n,i,r,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function w(t,o){if(!u[t]){if(!e[t]){if(i[t])return i[t];var r="function"==typeof s[n]&&s[n];if(!o&&r)return r(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new w.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:w(t)}}w.isParcelRequire=!0,w.Module=function(e){this.id=e,this.bundle=w,this.require=f,this.exports={}},w.modules=e,w.cache=u,w.parent=d,w.distDir=void 0,w.publicUrl=void 0,w.devServer=void 0,w.i=l,w.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(w,"root",{get:function(){return s[n]}}),s[n]=w;for(var p=0;p<t.length;p++)w(t[p]);if(o){var m=w(o);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({jz4E5:[function(e,t,o,n){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(o),i.export(o,"default",()=>c);let r=e=>new Promise((t,o)=>{let n=document.createElement("script");n.src=e,n.onload=t,n.onerror=o,document.body.appendChild(n)}),a=e=>({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[e.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream";function c(e){let t=!1,o=null,n=null,i=()=>new Promise((i,a)=>{window.__onGCastApiAvailable=r=>{if(r){let r=window.cast.framework.CastContext.getInstance();r.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),r.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let i=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case i.NO_SESSION:e.onStateChange?.("disconnected"),s("disconnected");break;case i.SESSION_STARTING:e.onStateChange?.("connecting"),s("connecting");break;case i.SESSION_STARTED:e.onStateChange?.("connected"),s("connected");break;case i.SESSION_ENDING:e.onStateChange?.("disconnecting"),s("disconnecting");break;case i.SESSION_RESUMED:e.onStateChange?.("connected"),s("connected")}}),r.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,i()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||r(e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(a)}),c=(t,o)=>{let n=e.url||t.option.url,i=new window.chrome.cast.media.MediaInfo(n,e.mimeType||a(n)),r=new window.chrome.cast.media.LoadRequest(i);o.loadMedia(r).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})},s=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}};return async r=>(r.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`<i class="art-icon art-icon-cast">${e.icon||'<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>'}</i>`,click:async()=>{if(!t)try{await i()}catch(t){throw r.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let n=window.cast.framework.CastContext.getInstance();if(o)c(r,o);else try{let e=await n.requestSession();c(r,e)}catch(t){throw r.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}"undefined"!=typeof window&&(window.artplayerPluginChromecast=c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7o2zS":[function(e,t,o,n){o.interopDefaLine truncated
!function(e,t,o,n,r,i,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function w(t,o){if(!u[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof s[n]&&s[n];if(!o&&i)return i(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new w.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:w(t)}}w.isParcelRequire=!0,w.Module=function(e){this.id=e,this.bundle=w,this.require=f,this.exports={}},w.modules=e,w.cache=u,w.parent=d,w.distDir=void 0,w.publicUrl=void 0,w.devServer=void 0,w.i=l,w.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(w,"root",{get:function(){return s[n]}}),s[n]=w;for(var p=0;p<t.length;p++)w(t[p]);if(o){var m=w(o);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"18Aaf":[function(e,t,o,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let t=!1,o=null,n=null,r=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}},i=(t,o)=>{let n=e.url||t.option.url,r=new window.chrome.cast.media.MediaInfo(n,e.mimeType||({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[n.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream"),i=new window.chrome.cast.media.LoadRequest(r);o.loadMedia(i).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})};return async a=>(a.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`<i class="art-icon art-icon-cast">${e.icon||'<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>'}</i>`,click:async()=>{if(!t)try{await new Promise((i,a)=>{var c;window.__onGCastApiAvailable=c=>{if(c){let a=window.cast.framework.CastContext.getInstance();a.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),a.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let i=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case i.NO_SESSION:e.onStateChange?.("disconnected"),r("disconnected");break;case i.SESSION_STARTING:e.onStateChange?.("connecting"),r("connecting");break;case i.SESSION_STARTED:e.onStateChange?.("connected"),r("connected");break;case i.SESSION_ENDING:e.onStateChange?.("disconnecting"),r("disconnecting");break;case i.SESSION_RESUMED:e.onStateChange?.("connected"),r("connected")}}),a.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,i()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||(c=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise((e,t)=>{let o=document.createElement("script");o.src=c,o.onload=e,o.onerror=t,document.body.appendChild(o)})).catch(a)})}catch(t){throw a.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let c=window.cast.framework.CastContext.getInstance();if(o)i(a,o);else try{let e=await c.requestSession();i(a,e)}catch(t){throw a.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}r.defineInteropFlag(o),r.export(o,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginChromecast=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,t,o,n){o.interopDefault=function(e){retuLine truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,i,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof s[n]&&s[n],l=u.i||{},f=u.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof s[n]&&s[n];if(!r&&i)return i(t,!0);if(u)return u(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var c=f[t]=new d.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return s[n]}}),s[n]=d;for(var _=0;_<t.length;_++)d(t[_]);if(r){var y=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=y:"function"==typeof define&&define.amd&&define(function(){return y})}}({bzF6W:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_ts_generator.cjs");function c(e){var t,r=!1,n=null,o=null,c=function(t,r){var n=e.url||t.option.url,o=new window.chrome.cast.media.MediaInfo(n,e.mimeType||({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[n.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream"),i=new window.chrome.cast.media.LoadRequest(o);r.loadMedia(i).then(function(){var r;t.notice.show="Casting started",null==(r=e.onCastStart)||r.call(e)}).catch(function(r){var n;throw t.notice.show="Error casting media",null==(n=e.onError)||n.call(e,r),r})},s=function(e){var t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}};return t=(0,i._)(function(t){return(0,a._)(this,function(u){return t.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:'<i class="art-icon art-icon-cast">'.concat(e.icon||'<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>',"</i>"),click:(0,i._)(function(){var i,u,l,f,p;return(0,a._)(this,function(a){switch(a.label){case 0:if(r)return[3,4];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,new Promise(function(t,i){var a;window.__onGCastApiAvailable=function(a){if(a){var c=window.cast.framework.CastContext.getInstance();c.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),c.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,function(t){var r,i,a,c,u,l=window.cast.framework.SessionState;switch(o=t.sessionState,n=t.session,t.sessionState){case l.NO_SESSION:null==(r=e.onStateChange)||r.call(e,"disconnected"),s("disconnected");break;case l.SESSION_STARTING:null==(i=e.onStateChange)||i.call(e,"connecting"),s("connecting");break;case l.SESSION_STARTED:null==(a=e.onStateChange)||a.call(e,"connected"),s("connected");break;case l.SESSION_ENDING:null==(c=e.onStateChange)||c.call(e,"disconnecting"),s("disconnecting");break;case l.SESSION_RESUMED:null==(u=e.onStateChange)||u.call(e,"connected"),s("connected")}}),c.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,function(t){var r,n,o,i=window.cast.framework.CastState;switch(t.castState){case i.NO_DEVICES_AVAILABLE:null==(r=e.onCastAvailable)||r.call(e,!1);break;case i.NOT_CONNECTED:null==(n=e.onCastAvailable)||n.call(e,!0);break;case i.CONNECTING:case i.CONNECTED:null==(o=e.onCastAvailable)||o.call(e,!0)}}),r=!0,t()}else i(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||(a=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise(function(e,t){var r=document.createElement("script");r.src=a,r.onload=eLine truncated
!function(e,t,r,n,o,i,c,a){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof s[n]&&s[n],l=u.i||{},f=u.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof s[n]&&s[n];if(!r&&i)return i(t,!0);if(u)return u(t,!0);if(p&&"string"==typeof t)return p(t);var c=Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var a=f[t]=new d.Module(t);e[t][0].call(a.exports,l,a,a.exports,s)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return s[n]}}),s[n]=d;for(var _=0;_<t.length;_++)d(t[_]);if(r){var y=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=y:"function"==typeof define&&define.amd&&define(function(){return y})}}({"1xnGs":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return a});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),c=e("@swc/helpers/cjs/_ts_generator.cjs");function a(e){var t=!1,r=null,n=null,o=function(e){var t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}},a=function(t,r){var n=e.url||t.option.url,o=new window.chrome.cast.media.MediaInfo(n,e.mimeType||({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[n.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream"),i=new window.chrome.cast.media.LoadRequest(o);r.loadMedia(i).then(function(){var r;t.notice.show="Casting started",null==(r=e.onCastStart)||r.call(e)}).catch(function(r){var n;throw t.notice.show="Error casting media",null==(n=e.onError)||n.call(e,r),r})};return function(s){return(0,i._)(function(){return(0,c._)(this,function(u){return s.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:'<i class="art-icon art-icon-cast">'.concat(e.icon||'<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>',"</i>"),click:function(){return(0,i._)(function(){var i,u,l,f,p;return(0,c._)(this,function(c){switch(c.label){case 0:if(t)return[3,4];c.label=1;case 1:return c.trys.push([1,3,,4]),[4,new Promise(function(i,c){var a;window.__onGCastApiAvailable=function(a){if(a){var s=window.cast.framework.CastContext.getInstance();s.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),s.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,function(t){var i,c,a,s,u,l=window.cast.framework.SessionState;switch(n=t.sessionState,r=t.session,t.sessionState){case l.NO_SESSION:null==(i=e.onStateChange)||i.call(e,"disconnected"),o("disconnected");break;case l.SESSION_STARTING:null==(c=e.onStateChange)||c.call(e,"connecting"),o("connecting");break;case l.SESSION_STARTED:null==(a=e.onStateChange)||a.call(e,"connected"),o("connected");break;case l.SESSION_ENDING:null==(s=e.onStateChange)||s.call(e,"disconnecting"),o("disconnecting");break;case l.SESSION_RESUMED:null==(u=e.onStateChange)||u.call(e,"connected"),o("connected")}}),s.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,function(t){var r,n,o,i=window.cast.framework.CastState;switch(t.castState){case i.NO_DEVICES_AVAILABLE:null==(r=e.onCastAvailable)||r.call(e,!1);break;case i.NOT_CONNECTED:null==(n=e.onCastAvailable)||n.call(e,!0);break;case i.CONNECTING:case i.CONNECTED:null==(o=e.onCastAvailable)||o.call(e,!0)}}),t=!0,i()}else c(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||(a=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise(function(e,t){var r=document.createElemLine truncated
@@ -1,30 +1,30 @@
{
"license": "MIT",
"version": "1.0.1",
"name": "artplayer-plugin-chromecast",
"description": "Chromecast plugin for ArtPlayer",
"main": "dist/artplayer-plugin-chromecast.js",
"legacy": "dist/artplayer-plugin-chromecast.legacy.js",
"module": "dist/artplayer-plugin-chromecast.esm.js",
"types": "types/artplayer-plugin-chromecast.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-chromecast.esm.js",
"require": "./dist/artplayer-plugin-chromecast.js",
"default": "./dist/artplayer-plugin-chromecast.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
"name": "artplayer-plugin-chromecast",
"version": "1.0.1",
"description": "Chromecast plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-chromecast.esm.js",
"require": "./dist/artplayer-plugin-chromecast.js",
"default": "./dist/artplayer-plugin-chromecast.js"
},
"main": "dist/artplayer-plugin-chromecast.js",
"legacy": "dist/artplayer-plugin-chromecast.legacy.js",
"module": "dist/artplayer-plugin-chromecast.esm.js",
"types": "types/artplayer-plugin-chromecast.d.ts",
"browserslist": "last 1 Chrome version"
}
+179 -174
View File
@@ -1,188 +1,193 @@
const loadScript = (src) =>
new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = src;
script.onload = resolve;
script.onerror = reject;
document.body.appendChild(script);
});
function loadScript(src) {
return new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = src
script.onload = resolve
script.onerror = reject
document.body.appendChild(script)
})
}
const getMimeType = (url) => {
const extension = url.split('?')[0].split('#')[0].split('.').pop().toLowerCase();
const mimeTypes = {
mp4: 'video/mp4',
webm: 'video/webm',
ogg: 'video/ogg',
ogv: 'video/ogg',
mp3: 'audio/mp3',
wav: 'audio/wav',
flv: 'video/x-flv',
mov: 'video/quicktime',
avi: 'video/x-msvideo',
wmv: 'video/x-ms-wmv',
mpd: 'application/dash+xml',
m3u8: 'application/x-mpegURL',
};
return mimeTypes[extension] || 'application/octet-stream';
};
function getMimeType(url) {
const extension = url.split('?')[0].split('#')[0].split('.').pop().toLowerCase()
const mimeTypes = {
mp4: 'video/mp4',
webm: 'video/webm',
ogg: 'video/ogg',
ogv: 'video/ogg',
mp3: 'audio/mp3',
wav: 'audio/wav',
flv: 'video/x-flv',
mov: 'video/quicktime',
avi: 'video/x-msvideo',
wmv: 'video/x-ms-wmv',
mpd: 'application/dash+xml',
m3u8: 'application/x-mpegURL',
}
return mimeTypes[extension] || 'application/octet-stream'
}
export default function artplayerPluginChromecast(option) {
const DEFAULT_ICON = `<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>`;
const DEFAULT_SDK = 'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1';
const DEFAULT_ICON = `<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>`
const DEFAULT_SDK = 'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1'
let isCastInitialized = false;
let castSession = null;
let castState = null;
let isCastInitialized = false
let castSession = null
let castState = null
const initializeCastApi = () => {
return new Promise((resolve, reject) => {
window['__onGCastApiAvailable'] = (isAvailable) => {
if (isAvailable) {
const context = window.cast.framework.CastContext.getInstance();
context.setOptions({
receiverApplicationId: window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,
autoJoinPolicy: window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED,
});
const updateCastButton = (state) => {
const button = document.querySelector('.art-icon-cast')
if (button) {
switch (state) {
case 'connected':
button.style.color = 'red'
break
case 'connecting':
case 'disconnecting':
button.style.color = 'orange'
break
case 'disconnected':
default:
button.style.color = 'white'
break
}
}
}
// Listen for session state changes
context.addEventListener(
window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,
(event) => {
const SessionState = window.cast.framework.SessionState;
castState = event.sessionState;
castSession = event.session;
const initializeCastApi = () => {
return new Promise((resolve, reject) => {
window.__onGCastApiAvailable = (isAvailable) => {
if (isAvailable) {
const context = window.cast.framework.CastContext.getInstance()
context.setOptions({
receiverApplicationId: window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,
autoJoinPolicy: window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED,
})
switch (event.sessionState) {
case SessionState.NO_SESSION:
option.onStateChange?.('disconnected');
updateCastButton('disconnected');
break;
case SessionState.SESSION_STARTING:
option.onStateChange?.('connecting');
updateCastButton('connecting');
break;
case SessionState.SESSION_STARTED:
option.onStateChange?.('connected');
updateCastButton('connected');
break;
case SessionState.SESSION_ENDING:
option.onStateChange?.('disconnecting');
updateCastButton('disconnecting');
break;
case SessionState.SESSION_RESUMED:
option.onStateChange?.('connected');
updateCastButton('connected');
break;
}
},
);
// Listen for session state changes
context.addEventListener(
window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,
(event) => {
const SessionState = window.cast.framework.SessionState
castState = event.sessionState
castSession = event.session
// Listen for cast state changes
context.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED, (event) => {
const CastState = window.cast.framework.CastState;
switch (event.castState) {
case CastState.NO_DEVICES_AVAILABLE:
option.onCastAvailable?.(false);
break;
case CastState.NOT_CONNECTED:
option.onCastAvailable?.(true);
break;
case CastState.CONNECTING:
case CastState.CONNECTED:
option.onCastAvailable?.(true);
break;
}
});
isCastInitialized = true;
resolve();
} else {
reject(new Error('Cast API is not available'));
}
};
if (!window.chrome || !window.chrome.cast) {
loadScript(option.sdk || DEFAULT_SDK).catch(reject);
}
});
};
const castVideo = (art, session) => {
const url = option.url || art.option.url;
const mediaInfo = new window.chrome.cast.media.MediaInfo(url, option.mimeType || getMimeType(url));
const request = new window.chrome.cast.media.LoadRequest(mediaInfo);
session
.loadMedia(request)
.then(() => {
art.notice.show = 'Casting started';
option.onCastStart?.();
})
.catch((error) => {
art.notice.show = 'Error casting media';
option.onError?.(error);
throw error;
});
};
const updateCastButton = (state) => {
const button = document.querySelector('.art-icon-cast');
if (button) {
switch (state) {
case 'connected':
button.style.color = 'red';
break;
case 'connecting':
case 'disconnecting':
button.style.color = 'orange';
break;
case 'disconnected':
default:
button.style.color = 'white';
break;
}
}
};
return async (art) => {
art.controls.add({
name: 'chromecast',
position: 'right',
tooltip: 'Chromecast',
html: `<i class="art-icon art-icon-cast">${option.icon || DEFAULT_ICON}</i>`,
click: async () => {
if (!isCastInitialized) {
try {
await initializeCastApi();
} catch (error) {
art.notice.show = 'Failed to initialize Cast API';
option.onError?.(error);
throw error;
}
}
const context = window.cast.framework.CastContext.getInstance();
if (castSession) {
castVideo(art, castSession);
} else {
try {
const session = await context.requestSession();
castVideo(art, session);
} catch (error) {
art.notice.show = 'Error connecting to cast session';
option.onError?.(error);
throw error;
}
}
switch (event.sessionState) {
case SessionState.NO_SESSION:
option.onStateChange?.('disconnected')
updateCastButton('disconnected')
break
case SessionState.SESSION_STARTING:
option.onStateChange?.('connecting')
updateCastButton('connecting')
break
case SessionState.SESSION_STARTED:
option.onStateChange?.('connected')
updateCastButton('connected')
break
case SessionState.SESSION_ENDING:
option.onStateChange?.('disconnecting')
updateCastButton('disconnecting')
break
case SessionState.SESSION_RESUMED:
option.onStateChange?.('connected')
updateCastButton('connected')
break
}
},
});
)
return {
name: 'artplayerPluginChromecast',
getCastState: () => castState,
isCasting: () => castSession !== null,
};
};
// Listen for cast state changes
context.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED, (event) => {
const CastState = window.cast.framework.CastState
switch (event.castState) {
case CastState.NO_DEVICES_AVAILABLE:
option.onCastAvailable?.(false)
break
case CastState.NOT_CONNECTED:
option.onCastAvailable?.(true)
break
case CastState.CONNECTING:
case CastState.CONNECTED:
option.onCastAvailable?.(true)
break
}
})
isCastInitialized = true
resolve()
}
else {
reject(new Error('Cast API is not available'))
}
}
if (!window.chrome || !window.chrome.cast) {
loadScript(option.sdk || DEFAULT_SDK).catch(reject)
}
})
}
const castVideo = (art, session) => {
const url = option.url || art.option.url
const mediaInfo = new window.chrome.cast.media.MediaInfo(url, option.mimeType || getMimeType(url))
const request = new window.chrome.cast.media.LoadRequest(mediaInfo)
session
.loadMedia(request)
.then(() => {
art.notice.show = 'Casting started'
option.onCastStart?.()
})
.catch((error) => {
art.notice.show = 'Error casting media'
option.onError?.(error)
throw error
})
}
return async (art) => {
art.controls.add({
name: 'chromecast',
position: 'right',
tooltip: 'Chromecast',
html: `<i class="art-icon art-icon-cast">${option.icon || DEFAULT_ICON}</i>`,
click: async () => {
if (!isCastInitialized) {
try {
await initializeCastApi()
}
catch (error) {
art.notice.show = 'Failed to initialize Cast API'
option.onError?.(error)
throw error
}
}
const context = window.cast.framework.CastContext.getInstance()
if (castSession) {
castVideo(art, castSession)
}
else {
try {
const session = await context.requestSession()
castVideo(art, session)
}
catch (error) {
art.notice.show = 'Error connecting to cast session'
option.onError?.(error)
throw error
}
}
},
})
return {
name: 'artplayerPluginChromecast',
getCastState: () => castState,
isCasting: () => castSession !== null,
}
}
}
if (typeof window !== 'undefined') {
window['artplayerPluginChromecast'] = artplayerPluginChromecast;
window.artplayerPluginChromecast = artplayerPluginChromecast
}
@@ -1,17 +1,17 @@
import type Artplayer from 'artplayer';
import type Artplayer from 'artplayer'
export = artplayerPluginChromecast;
export = artplayerPluginChromecast
export as namespace artplayerPluginChromecast;
type Option = {
url?: string;
sdk?: string;
icon?: string;
mimeType?: string;
};
interface Option {
url?: string
sdk?: string
icon?: string
mimeType?: string
}
type Chromecast = {
name: 'artplayerPluginChromecast';
};
interface Chromecast {
name: 'artplayerPluginChromecast'
}
declare const artplayerPluginChromecast: (option: Option) => (art: Artplayer) => Chromecast;
declare const artplayerPluginChromecast: (option: Option) => (art: Artplayer) => Chromecast
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,s,a,o,l){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof i[n]&&i[n],u=p.i||{},c=p.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!c[t]){if(!e[t]){if(s[t])return s[t];var a="function"==typeof i[n]&&i[n];if(!r&&a)return a(t,!0);if(p)return p(t,!0);if(d&&"string"==typeof t)return d(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}u.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},u.cache={};var l=c[t]=new f.Module(t);e[t][0].call(l.exports,u,l,l.exports,i)}return c[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=c,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=u,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return i[n]}}),i[n]=f;for(var m=0;m<t.length;m++)f(t[m]);if(r){var h=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({"4omrA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"default",()=>l);var a=e("@tensorflow/tfjs-core");e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu");var o=e("@tensorflow-models/body-segmentation");function l(e={}){return t=>{let{template:{$video:r,$danmuku:n}}=t,s=null,l=null,i=null,p=null,u=!1,c={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};async function d(){try{await a.setBackend("webgl")}catch(e){console.warn("WebGL backend not available, falling back to CPU"),await a.setBackend("cpu")}}async function f(){await d();let e=o.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:c.solutionPath,modelSelection:c.modelSelection,smoothSegmentation:c.smoothSegmentation,minDetectionConfidence:c.minDetectionConfidence,minTrackingConfidence:c.minTrackingConfidence,selfieMode:c.selfieMode};try{s=await o.createSegmenter(e,t),console.log("Segmenter initialized:",s),u=!0}catch(e){console.error("Error initializing segmenter:",e),u=!1}}async function m(){if(!u||r.paused||r.ended){p=requestAnimationFrame(m);return}try{l.width=r.videoWidth,l.height=r.videoHeight;let e=await s.segmentPeople(r);if(!e||0===e.length){p=requestAnimationFrame(m);return}let t=await o.toBinaryMask(e,{r:255,g:255,b:255,a:255},{r:0,g:0,b:0,a:255},c.drawContour,c.foregroundThreshold);await o.drawMask(l,r,t,c.opacity,c.maskBlurAmount);let a=i.getImageData(0,0,l.width,l.height);i.putImageData(function(e){let t=e.data;for(let e=0;e<t.length;e+=4)t[e]>250&&t[e+1]>250&&t[e+2]>250&&(t[e+3]=0);return e}(a),0,0),n.style.maskImage=`url(${l.toDataURL()})`}catch(e){console.error("Error in segmentBody:",e)}p=requestAnimationFrame(m)}async function h(){u||await f(),l||(i=(l=document.createElement("canvas")).getContext("2d")),Object.assign(n.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),m()}function g(){n.style.maskImage="none",p&&(cancelAnimationFrame(p),p=null)}return t.on("ready",h),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:h,stop:g}}}"undefined"!=typeof window&&(window.artplayerPluginDanmukuMask=l)},{"@tensorflow/tfjs-core":"1yKDM","@tensorflow/tfjs-backend-webgl":"5VdQ3","@tensorflow/tfjs-backend-cpu":"7Tpr3","@tensorflow-models/body-segmentation":"ehGbm","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1yKDM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),e("./base_side_effects");var a=e("./optimizers/register_optimizers"),o=e("./base");s.exportAll(o,r),(0,a.registerOptimizers)()},{"./base_side_effects":"kHuGE","./optimizers/register_optimizers":"5pGXp","./base":"1T9Pk","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kHuGE:[function(e,t,r,n){var s=e("./engine");e("./flags"),e("./platforms/platform_browser"),e("./platforms/platform_node");var a=e("./ops/buffer"),o=e("./ops/cast"),l=e("./ops/clone"),i=e("./ops/print"),p=e("./tensor");(0,s.getOrMakeEngine)();let u={buffer:a.buffer,cast:o.cast,clone:l.clone,print:i.print};(0,p.setOpHandler)(u)},{"./engine":"3Kkwy","./flags":"alKWv","./platforms/platform_browser":"7iwjp","./platforms/platform_node":"lAuBP","./ops/buffer":"5Qstz"Line truncated
!function(e,t,r,n,s,a,o,l){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof i[n]&&i[n],p=u.i||{},c=u.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!c[t]){if(!e[t]){if(s[t])return s[t];var a="function"==typeof i[n]&&i[n];if(!r&&a)return a(t,!0);if(u)return u(t,!0);if(d&&"string"==typeof t)return d(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}p.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},p.cache={};var l=c[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,i)}return c[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=c,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return i[n]}}),i[n]=f;for(var m=0;m<t.length;m++)f(t[m]);if(r){var h=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({"9DY5l":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"default",()=>l);var a=e("@tensorflow-models/body-segmentation"),o=e("@tensorflow/tfjs-core");function l(e={}){return t=>{let{template:{$video:r,$danmuku:n}}=t,s=null,l=null,i=null,u=null,p=!1,c={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};async function d(){try{await o.setBackend("webgl")}catch(e){console.warn("WebGL backend not available, falling back to CPU",e.message),await o.setBackend("cpu")}}async function f(){await d();let e=a.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:c.solutionPath,modelSelection:c.modelSelection,smoothSegmentation:c.smoothSegmentation,minDetectionConfidence:c.minDetectionConfidence,minTrackingConfidence:c.minTrackingConfidence,selfieMode:c.selfieMode};try{s=await a.createSegmenter(e,t),p=!0}catch(e){console.error("Error initializing segmenter:",e),p=!1}}async function m(){if(!p||r.paused||r.ended){u=requestAnimationFrame(m);return}try{l.width=r.videoWidth,l.height=r.videoHeight;let e=await s.segmentPeople(r);if(!e||0===e.length){u=requestAnimationFrame(m);return}let t=await a.toBinaryMask(e,{r:255,g:255,b:255,a:255},{r:0,g:0,b:0,a:255},c.drawContour,c.foregroundThreshold);await a.drawMask(l,r,t,c.opacity,c.maskBlurAmount);let o=i.getImageData(0,0,l.width,l.height);i.putImageData(function(e){let t=e.data;for(let e=0;e<t.length;e+=4)t[e]>250&&t[e+1]>250&&t[e+2]>250&&(t[e+3]=0);return e}(o),0,0),n.style.maskImage=`url(${l.toDataURL()})`}catch(e){console.error("Error in segmentBody:",e)}u=requestAnimationFrame(m)}async function h(){p||await f(),l||(i=(l=document.createElement("canvas")).getContext("2d")),Object.assign(n.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),m()}function g(){n.style.maskImage="none",u&&(cancelAnimationFrame(u),u=null)}return t.on("ready",h),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:h,stop:g}}}e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu"),"undefined"!=typeof window&&(window.artplayerPluginDanmukuMask=l)},{"@tensorflow-models/body-segmentation":"lcmzA","@tensorflow/tfjs-core":"biUij","@tensorflow/tfjs-backend-webgl":"c8bRp","@tensorflow/tfjs-backend-cpu":"hOvdB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lcmzA:[function(e,t,r,n){var s,a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"SupportedModels",()=>eR),a.export(r,"blurBodyPart",()=>eZ),a.export(r,"bodyPixMaskValueToRainbowColor",()=>b),a.export(r,"createSegmenter",()=>eD),a.export(r,"drawBokehEffect",()=>eJ),a.export(r,"drawMask",()=>eX),a.export(r,"drawPixelatedMask",()=>eY),a.export(r,"toBinaryMask",()=>eH),a.export(r,"toColoredMask",()=>eK);var o=e("@tensorflow/tfjs-core"),l=e("@tensorflow/tfjs-converter"),i=e("@mediapipe/selfie_segmentation"),u=function(e,t){return(u=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function p(e,t){function r(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=ObjecLine truncated
//# sourceMappingURL=artplayer-plugin-danmuku-mask.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCKwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GALxB,IAAA,EAAA,EAAA,yBACA,EAAA,kCACA,EAAA,gCACA,IAAA,EAAA,EAAA,wCAEe,SAAS,EAA2B,EAAS,CAAC,CAAC,EAC1D,OAAO,AAAC,IACJ,GAAM,CACF,SAAU,CAAE,OAAA,CAAM,CAAE,SAAA,CAAQ,CAAE,CACjC,CAAG,EAEA,EAAY,KACZ,EAAS,KACT,EAAM,KACN,EAAmB,KACnB,EAAgB,CAAA,EAEd,EAAS,CACX,aAAc,EAAO,YAAY,EAAI,8DACrC,eAAgB,EAAO,cAAc,EAAI,EAC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 truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCKwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GALxB,IAAA,EAAA,EAAA,wCACA,EAAA,EAAA,yBAIe,SAAS,EAA2B,EAAS,CAAC,CAAC,EAC5D,OAAO,AAAC,IACN,GAAM,CACJ,SAAU,CAAE,OAAA,CAAM,CAAE,SAAA,CAAQ,CAAE,CAC/B,CAAG,EAEA,EAAY,KACZ,EAAS,KACT,EAAM,KACN,EAAmB,KACnB,EAAgB,CAAA,EAEd,EAAS,CACb,aAAc,EAAO,YAAY,EAAI,8DACrC,eAAgB,EAAO,cAAc,EAAI,EACzC,mBAAoB,AAA8B,KAAA,IAA9B,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 truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,s,a,o,l){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof i[n]&&i[n],p=u.i||{},c=u.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!c[t]){if(!e[t]){if(s[t])return s[t];var a="function"==typeof i[n]&&i[n];if(!r&&a)return a(t,!0);if(u)return u(t,!0);if(d&&"string"==typeof t)return d(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}p.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},p.cache={};var l=c[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,i)}return c[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=c,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return i[n]}}),i[n]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({jz4E5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"default",()=>l);var a=e("@tensorflow/tfjs-core");e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu");var o=e("@tensorflow-models/body-segmentation");function l(e={}){return t=>{let{template:{$video:r,$danmuku:n}}=t,s=null,l=null,i=null,u=null,p=!1,c={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};async function d(){try{await a.setBackend("webgl")}catch(e){console.warn("WebGL backend not available, falling back to CPU"),await a.setBackend("cpu")}}async function f(){await d();let e=o.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:c.solutionPath,modelSelection:c.modelSelection,smoothSegmentation:c.smoothSegmentation,minDetectionConfidence:c.minDetectionConfidence,minTrackingConfidence:c.minTrackingConfidence,selfieMode:c.selfieMode};try{s=await o.createSegmenter(e,t),console.log("Segmenter initialized:",s),p=!0}catch(e){console.error("Error initializing segmenter:",e),p=!1}}async function h(){if(!p||r.paused||r.ended){u=requestAnimationFrame(h);return}try{l.width=r.videoWidth,l.height=r.videoHeight;let e=await s.segmentPeople(r);if(!e||0===e.length){u=requestAnimationFrame(h);return}let t=await o.toBinaryMask(e,{r:255,g:255,b:255,a:255},{r:0,g:0,b:0,a:255},c.drawContour,c.foregroundThreshold);await o.drawMask(l,r,t,c.opacity,c.maskBlurAmount);let a=i.getImageData(0,0,l.width,l.height);i.putImageData(function(e){let t=e.data;for(let e=0;e<t.length;e+=4)t[e]>250&&t[e+1]>250&&t[e+2]>250&&(t[e+3]=0);return e}(a),0,0),n.style.maskImage=`url(${l.toDataURL()})`}catch(e){console.error("Error in segmentBody:",e)}u=requestAnimationFrame(h)}async function m(){p||await f(),l||(i=(l=document.createElement("canvas")).getContext("2d")),Object.assign(n.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),h()}function g(){n.style.maskImage="none",u&&(cancelAnimationFrame(u),u=null)}return t.on("ready",m),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:m,stop:g}}}"undefined"!=typeof window&&(window.artplayerPluginDanmukuMask=l)},{"@tensorflow/tfjs-core":"jhEX1","@tensorflow/tfjs-backend-webgl":"2Izis","@tensorflow/tfjs-backend-cpu":"45fLq","@tensorflow-models/body-segmentation":"ikA4O","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],jhEX1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),e("./base_side_effects");var a=e("./optimizers/register_optimizers"),o=e("./base");s.exportAll(o,r),(0,a.registerOptimizers)()},{"./base_side_effects":"iSAWM","./optimizers/register_optimizers":"8DxTt","./base":"gLLDj","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],iSAWM:[function(e,t,r,n){var s=e("./engine");e("./flags"),e("./platforms/platform_browser"),e("./platforms/platform_node");var a=e("./ops/buffer"),o=e("./ops/cast"),l=e("./ops/clone"),i=e("./ops/print"),u=e("./tensor");(0,s.getOrMakeEngine)();let p={buffer:a.buffer,cast:o.cast,clone:l.clone,print:i.print};(0,u.setOpHandler)(p)},{"./engine":"1cdCr","./flags":"4KDHE","./platforms/platform_browser":"lkHTQ","./platforms/platform_node":"9b1si","./ops/buffer":"lKgEf","./Line truncated
!function(e,t,r,n,s,a,o,l){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof i[n]&&i[n],u=p.i||{},c=p.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!c[t]){if(!e[t]){if(s[t])return s[t];var a="function"==typeof i[n]&&i[n];if(!r&&a)return a(t,!0);if(p)return p(t,!0);if(d&&"string"==typeof t)return d(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}u.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},u.cache={};var l=c[t]=new f.Module(t);e[t][0].call(l.exports,u,l,l.exports,i)}return c[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=c,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=u,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return i[n]}}),i[n]=f;for(var m=0;m<t.length;m++)f(t[m]);if(r){var h=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({ecCzQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"default",()=>l);var a=e("@tensorflow-models/body-segmentation"),o=e("@tensorflow/tfjs-core");function l(e={}){return t=>{let{template:{$video:r,$danmuku:n}}=t,s=null,l=null,i=null,p=null,u=!1,c={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};async function d(){try{await o.setBackend("webgl")}catch(e){console.warn("WebGL backend not available, falling back to CPU",e.message),await o.setBackend("cpu")}}async function f(){await d();let e=a.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:c.solutionPath,modelSelection:c.modelSelection,smoothSegmentation:c.smoothSegmentation,minDetectionConfidence:c.minDetectionConfidence,minTrackingConfidence:c.minTrackingConfidence,selfieMode:c.selfieMode};try{s=await a.createSegmenter(e,t),u=!0}catch(e){console.error("Error initializing segmenter:",e),u=!1}}async function m(){if(!u||r.paused||r.ended){p=requestAnimationFrame(m);return}try{l.width=r.videoWidth,l.height=r.videoHeight;let e=await s.segmentPeople(r);if(!e||0===e.length){p=requestAnimationFrame(m);return}let t=await a.toBinaryMask(e,{r:255,g:255,b:255,a:255},{r:0,g:0,b:0,a:255},c.drawContour,c.foregroundThreshold);await a.drawMask(l,r,t,c.opacity,c.maskBlurAmount);let o=i.getImageData(0,0,l.width,l.height);i.putImageData(function(e){let t=e.data;for(let e=0;e<t.length;e+=4)t[e]>250&&t[e+1]>250&&t[e+2]>250&&(t[e+3]=0);return e}(o),0,0),n.style.maskImage=`url(${l.toDataURL()})`}catch(e){console.error("Error in segmentBody:",e)}p=requestAnimationFrame(m)}async function h(){u||await f(),l||(i=(l=document.createElement("canvas")).getContext("2d")),Object.assign(n.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),m()}function g(){n.style.maskImage="none",p&&(cancelAnimationFrame(p),p=null)}return t.on("ready",h),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:h,stop:g}}}e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu"),"undefined"!=typeof window&&(window.artplayerPluginDanmukuMask=l)},{"@tensorflow-models/body-segmentation":"5Otso","@tensorflow/tfjs-core":"2Gtps","@tensorflow/tfjs-backend-webgl":"2ZcDF","@tensorflow/tfjs-backend-cpu":"b4yJT","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5Otso":[function(e,t,r,n){var s,a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"SupportedModels",()=>eR),a.export(r,"blurBodyPart",()=>eJ),a.export(r,"bodyPixMaskValueToRainbowColor",()=>b),a.export(r,"createSegmenter",()=>e$),a.export(r,"drawBokehEffect",()=>eQ),a.export(r,"drawMask",()=>eZ),a.export(r,"drawPixelatedMask",()=>eY),a.export(r,"toBinaryMask",()=>eK),a.export(r,"toColoredMask",()=>eX);var o=e("@tensorflow/tfjs-core"),l=e("@tensorflow/tfjs-converter"),i=e("@mediapipe/selfie_segmentation"),p=function(e,t){return(p=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function u(e,t){function r(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=ObjecLine truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,a,o,s,i){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof c[n]&&c[n],l=u.i||{},p=u.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!p[t]){if(!e[t]){if(a[t])return a[t];var o="function"==typeof c[n]&&c[n];if(!r&&o)return o(t,!0);if(u)return u(t,!0);if(f&&"string"==typeof t)return f(t);var s=Error("Cannot find module '"+t+"'");throw s.code="MODULE_NOT_FOUND",s}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var i=p[t]=new d.Module(t);e[t][0].call(i.exports,l,i,i.exports,c)}return p[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=f,this.exports={}},d.modules=e,d.cache=p,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var h=0;h<t.length;h++)d(t[h]);if(r){var m=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({bzF6W:[function(e,t,r,n){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"default",function(){return u});var o=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("@tensorflow/tfjs-core");e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu");var c=e("@tensorflow-models/body-segmentation");function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var r=t.template,n=r.$video,a=r.$danmuku,u=null,l=null,p=null,f=null,d=!1,h={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};function m(){return(m=(0,o._)(function(){return(0,s._)(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,4]),[4,i.setBackend("webgl")];case 1:case 3:return e.sent(),[3,4];case 2:return e.sent(),console.warn("WebGL backend not available, falling back to CPU"),[4,i.setBackend("cpu")];case 4:return[2]}})})).apply(this,arguments)}function g(){return(g=(0,o._)(function(){var e,t;return(0,s._)(this,function(r){switch(r.label){case 0:return[4,function(){return m.apply(this,arguments)}()];case 1:r.sent(),e=c.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:h.solutionPath,modelSelection:h.modelSelection,smoothSegmentation:h.smoothSegmentation,minDetectionConfidence:h.minDetectionConfidence,minTrackingConfidence:h.minTrackingConfidence,selfieMode:h.selfieMode},r.label=2;case 2:return r.trys.push([2,4,,5]),[4,c.createSegmenter(e,t)];case 3:return console.log("Segmenter initialized:",u=r.sent()),d=!0,[3,5];case 4:return console.error("Error initializing segmenter:",r.sent()),d=!1,[3,5];case 5:return[2]}})})).apply(this,arguments)}function v(){return _.apply(this,arguments)}function _(){return(_=(0,o._)(function(){var e,t,r,o,i;return(0,s._)(this,function(s){switch(s.label){case 0:if(!d||n.paused||n.ended)return f=requestAnimationFrame(v),[2];s.label=1;case 1:return s.trys.push([1,5,,6]),l.width=n.videoWidth,l.height=n.videoHeight,[4,u.segmentPeople(n)];case 2:if(!(e=s.sent())||0===e.length)return f=requestAnimationFrame(v),[2];return t={r:255,g:255,b:255,a:255},r={r:0,g:0,b:0,a:255},[4,c.toBinaryMask(e,t,r,h.drawContour,h.foregroundThreshold)];case 3:return o=s.sent(),[4,c.drawMask(l,n,o,h.opacity,h.maskBlurAmount)];case 4:return s.sent(),i=p.getImageData(0,0,l.width,l.height),p.putImageData(function(e){for(var t=e.data,r=0;r<t.length;r+=4)t[r]>250&&t[r+1]>250&&t[r+2]>250&&(t[r+3]=0);return e}(i),0,0),a.style.maskImage="url(".concat(l.toDataURL(),")"),[3,6];case 5:return console.error("Error in segmentBody:",s.sent()),[3,6];case 6:return f=requestAnimationFrame(v),[2]}})})).apply(this,arguments)}function x(){return y.apply(this,arguments)}function y(){return(y=(0,o._)(function(){return(0,s._)(this,function(e){switch(e.label){case 0:if(d)return[3,2];return[4,function(){return g.apply(this,arguments)}()];case 1:e.sent(),e.label=2;case 2:return l||(p=(l=document.createElement("canvas")).getContext("2d")),Object.assign(a.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),v(),[2]}})})).apply(this,arguments)}function b(){a.style.maskImage="none",f&&(cancelAnimationFrame(f),f=null)}return t.on("ready",x),t.on(Line truncated
!function(e,t,r,n,a,s,o,i){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof c[n]&&c[n],l=u.i||{},p=u.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!p[t]){if(!e[t]){if(a[t])return a[t];var s="function"==typeof c[n]&&c[n];if(!r&&s)return s(t,!0);if(u)return u(t,!0);if(f&&"string"==typeof t)return f(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var i=p[t]=new d.Module(t);e[t][0].call(i.exports,l,i,i.exports,c)}return p[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=f,this.exports={}},d.modules=e,d.cache=p,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var h=0;h<t.length;h++)d(t[h]);if(r){var m=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"1FGEJ":[function(e,t,r,n){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"default",function(){return u});var s=e("@swc/helpers/cjs/_async_to_generator.cjs"),o=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("@tensorflow-models/body-segmentation"),c=e("@tensorflow/tfjs-core");function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var r=t.template,n=r.$video,a=r.$danmuku,u=null,l=null,p=null,f=null,d=!1,h={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};function m(){return(0,s._)(function(){return(0,o._)(this,function(e){switch(e.label){case 0:if(d)return[3,2];return[4,(0,s._)(function(){var e,t;return(0,o._)(this,function(r){switch(r.label){case 0:return[4,(0,s._)(function(){return(0,o._)(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,4]),[4,c.setBackend("webgl")];case 1:case 3:return e.sent(),[3,4];case 2:return console.warn("WebGL backend not available, falling back to CPU",e.sent().message),[4,c.setBackend("cpu")];case 4:return[2]}})})()];case 1:r.sent(),e=i.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:h.solutionPath,modelSelection:h.modelSelection,smoothSegmentation:h.smoothSegmentation,minDetectionConfidence:h.minDetectionConfidence,minTrackingConfidence:h.minTrackingConfidence,selfieMode:h.selfieMode},r.label=2;case 2:return r.trys.push([2,4,,5]),[4,i.createSegmenter(e,t)];case 3:return u=r.sent(),d=!0,[3,5];case 4:return console.error("Error initializing segmenter:",r.sent()),d=!1,[3,5];case 5:return[2]}})})()];case 1:e.sent(),e.label=2;case 2:return l||(p=(l=document.createElement("canvas")).getContext("2d")),Object.assign(a.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),!function e(){return(0,s._)(function(){var t,r,s,c,m;return(0,o._)(this,function(o){switch(o.label){case 0:if(!d||n.paused||n.ended)return f=requestAnimationFrame(e),[2];o.label=1;case 1:return o.trys.push([1,5,,6]),l.width=n.videoWidth,l.height=n.videoHeight,[4,u.segmentPeople(n)];case 2:if(!(t=o.sent())||0===t.length)return f=requestAnimationFrame(e),[2];return r={r:255,g:255,b:255,a:255},s={r:0,g:0,b:0,a:255},[4,i.toBinaryMask(t,r,s,h.drawContour,h.foregroundThreshold)];case 3:return c=o.sent(),[4,i.drawMask(l,n,c,h.opacity,h.maskBlurAmount)];case 4:return o.sent(),m=p.getImageData(0,0,l.width,l.height),p.putImageData(function(e){for(var t=e.data,r=0;r<t.length;r+=4)t[r]>250&&t[r+1]>250&&t[r+2]>250&&(t[r+3]=0);return e}(m),0,0),a.style.maskImage="url(".concat(l.toDataURL(),")"),[3,6];case 5:return console.error("Error in segmentBody:",o.sent()),[3,6];case 6:return f=requestAnimationFrame(e),[2]}})})()}(),[2]}})})()}function g(){a.style.maskImage="none",f&&(cancelAnimationFrame(f),f=null)}return t.on("ready",m),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:m,stop:g}}}e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu"),"undefined"!=typeof window&&(window.artplayerPluginDanmukuMask=u)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","@tensorflow-models/body-segmentation":"8yK79","@tensorflow/tfjs-core":"aOH7b","@tensorflow/tfjs-backend-webgl":"8uLine truncated
@@ -1,38 +1,38 @@
{
"license": "MIT",
"version": "1.0.0",
"name": "artplayer-plugin-danmuku-mask",
"description": "Danmuku mask plugin for ArtPlayer",
"main": "dist/artplayer-plugin-danmuku-mask.js",
"legacy": "dist/artplayer-plugin-danmuku-mask.legacy.js",
"module": "dist/artplayer-plugin-danmuku-mask.esm.js",
"types": "types/artplayer-plugin-danmuku-mask.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-danmuku-mask.esm.js",
"require": "./dist/artplayer-plugin-danmuku-mask.js",
"default": "./dist/artplayer-plugin-danmuku-mask.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"dependencies": {
"@mediapipe/selfie_segmentation": "^0.1.1675465747",
"@tensorflow-models/body-segmentation": "^1.0.2",
"@tensorflow/tfjs-backend-cpu": "^4.21.0",
"@tensorflow/tfjs-backend-webgl": "^4.21.0",
"@tensorflow/tfjs-converter": "^4.21.0",
"@tensorflow/tfjs-core": "^4.21.0"
}
"name": "artplayer-plugin-danmuku-mask",
"version": "1.0.0",
"description": "Danmuku mask plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-danmuku-mask.esm.js",
"require": "./dist/artplayer-plugin-danmuku-mask.js",
"default": "./dist/artplayer-plugin-danmuku-mask.js"
},
"main": "dist/artplayer-plugin-danmuku-mask.js",
"legacy": "dist/artplayer-plugin-danmuku-mask.legacy.js",
"module": "dist/artplayer-plugin-danmuku-mask.esm.js",
"types": "types/artplayer-plugin-danmuku-mask.d.ts",
"browserslist": "last 1 Chrome version",
"dependencies": {
"@mediapipe/selfie_segmentation": "^0.1.1675465747",
"@tensorflow-models/body-segmentation": "^1.0.2",
"@tensorflow/tfjs-backend-cpu": "^4.21.0",
"@tensorflow/tfjs-backend-webgl": "^4.21.0",
"@tensorflow/tfjs-converter": "^4.21.0",
"@tensorflow/tfjs-core": "^4.21.0"
}
}
@@ -1,161 +1,163 @@
import * as tf from '@tensorflow/tfjs-core';
import '@tensorflow/tfjs-backend-webgl';
import '@tensorflow/tfjs-backend-cpu';
import * as bodySegmentation from '@tensorflow-models/body-segmentation';
import * as bodySegmentation from '@tensorflow-models/body-segmentation'
import * as tf from '@tensorflow/tfjs-core'
import '@tensorflow/tfjs-backend-webgl'
import '@tensorflow/tfjs-backend-cpu'
export default function artplayerPluginDanmukuMask(option = {}) {
return (art) => {
const {
template: { $video, $danmuku },
} = art;
return (art) => {
const {
template: { $video, $danmuku },
} = art
let segmenter = null;
let canvas = null;
let ctx = null;
let animationFrameId = null;
let isInitialized = false;
let segmenter = null
let canvas = null
let ctx = null
let animationFrameId = null
let isInitialized = false
const config = {
solutionPath: option.solutionPath || 'https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation',
modelSelection: option.modelSelection || 1,
smoothSegmentation: option.smoothSegmentation !== undefined ? option.smoothSegmentation : true,
minDetectionConfidence: option.minDetectionConfidence || 0.5,
minTrackingConfidence: option.minTrackingConfidence || 0.5,
selfieMode: option.selfieMode || false,
drawContour: option.drawContour || false,
foregroundThreshold: option.foregroundThreshold || 0.5,
opacity: option.opacity || 1,
maskBlurAmount: option.maskBlurAmount || 3,
};
const config = {
solutionPath: option.solutionPath || 'https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation',
modelSelection: option.modelSelection || 1,
smoothSegmentation: option.smoothSegmentation !== undefined ? option.smoothSegmentation : true,
minDetectionConfidence: option.minDetectionConfidence || 0.5,
minTrackingConfidence: option.minTrackingConfidence || 0.5,
selfieMode: option.selfieMode || false,
drawContour: option.drawContour || false,
foregroundThreshold: option.foregroundThreshold || 0.5,
opacity: option.opacity || 1,
maskBlurAmount: option.maskBlurAmount || 3,
}
async function initTensorFlow() {
try {
await tf.setBackend('webgl');
} catch (error) {
console.warn('WebGL backend not available, falling back to CPU', error.message);
await tf.setBackend('cpu');
}
async function initTensorFlow() {
try {
await tf.setBackend('webgl')
}
catch (error) {
console.warn('WebGL backend not available, falling back to CPU', error.message)
await tf.setBackend('cpu')
}
}
async function initSegmenter() {
await initTensorFlow()
const model = bodySegmentation.SupportedModels.MediaPipeSelfieSegmentation
const segmenterConfig = {
runtime: 'mediapipe',
modelType: 'general',
solutionPath: config.solutionPath,
modelSelection: config.modelSelection,
smoothSegmentation: config.smoothSegmentation,
minDetectionConfidence: config.minDetectionConfidence,
minTrackingConfidence: config.minTrackingConfidence,
selfieMode: config.selfieMode,
}
try {
segmenter = await bodySegmentation.createSegmenter(model, segmenterConfig)
isInitialized = true
}
catch (error) {
console.error('Error initializing segmenter:', error)
isInitialized = false
}
}
function setupDanmukuStyle() {
Object.assign($danmuku.style, {
maskMode: 'alpha',
maskSize: 'contain',
maskRepeat: 'no-repeat',
backgroundSize: 'contain',
backgroundRepeat: 'no-repeat',
})
}
function createCanvas() {
canvas = document.createElement('canvas')
ctx = canvas.getContext('2d')
}
function makeWhiteTransparent(imageData) {
const data = imageData.data
for (let i = 0; i < data.length; i += 4) {
if (data[i] > 250 && data[i + 1] > 250 && data[i + 2] > 250) {
data[i + 3] = 0
}
}
return imageData
}
async function segmentBody() {
if (!isInitialized || $video.paused || $video.ended) {
animationFrameId = requestAnimationFrame(segmentBody)
return
}
try {
canvas.width = $video.videoWidth
canvas.height = $video.videoHeight
const segmentation = await segmenter.segmentPeople($video)
if (!segmentation || segmentation.length === 0) {
animationFrameId = requestAnimationFrame(segmentBody)
return
}
async function initSegmenter() {
await initTensorFlow();
const model = bodySegmentation.SupportedModels.MediaPipeSelfieSegmentation;
const foregroundColor = { r: 255, g: 255, b: 255, a: 255 }
const backgroundColor = { r: 0, g: 0, b: 0, a: 255 }
const mask = await bodySegmentation.toBinaryMask(
segmentation,
foregroundColor,
backgroundColor,
config.drawContour,
config.foregroundThreshold,
)
const segmenterConfig = {
runtime: 'mediapipe',
modelType: 'general',
solutionPath: config.solutionPath,
modelSelection: config.modelSelection,
smoothSegmentation: config.smoothSegmentation,
minDetectionConfidence: config.minDetectionConfidence,
minTrackingConfidence: config.minTrackingConfidence,
selfieMode: config.selfieMode,
};
await bodySegmentation.drawMask(canvas, $video, mask, config.opacity, config.maskBlurAmount)
try {
segmenter = await bodySegmentation.createSegmenter(model, segmenterConfig);
console.log('Segmenter initialized:', segmenter);
isInitialized = true;
} catch (error) {
console.error('Error initializing segmenter:', error);
isInitialized = false;
}
}
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height)
ctx.putImageData(makeWhiteTransparent(imageData), 0, 0)
$danmuku.style.maskImage = `url(${canvas.toDataURL()})`
}
catch (error) {
console.error('Error in segmentBody:', error)
}
function setupDanmukuStyle() {
Object.assign($danmuku.style, {
maskMode: 'alpha',
maskSize: 'contain',
maskRepeat: 'no-repeat',
backgroundSize: 'contain',
backgroundRepeat: 'no-repeat',
});
}
animationFrameId = requestAnimationFrame(segmentBody)
}
function createCanvas() {
canvas = document.createElement('canvas');
ctx = canvas.getContext('2d');
}
async function startSegmentation() {
if (!isInitialized) {
await initSegmenter()
}
if (!canvas) {
createCanvas()
}
setupDanmukuStyle()
segmentBody()
}
function makeWhiteTransparent(imageData) {
const data = imageData.data;
for (let i = 0; i < data.length; i += 4) {
if (data[i] > 250 && data[i + 1] > 250 && data[i + 2] > 250) {
data[i + 3] = 0;
}
}
return imageData;
}
function stopSegmentation() {
$danmuku.style.maskImage = 'none'
if (animationFrameId) {
cancelAnimationFrame(animationFrameId)
animationFrameId = null
}
}
async function segmentBody() {
if (!isInitialized || $video.paused || $video.ended) {
animationFrameId = requestAnimationFrame(segmentBody);
return;
}
art.on('ready', startSegmentation)
art.on('destroy', stopSegmentation)
try {
canvas.width = $video.videoWidth;
canvas.height = $video.videoHeight;
const segmentation = await segmenter.segmentPeople($video);
if (!segmentation || segmentation.length === 0) {
animationFrameId = requestAnimationFrame(segmentBody);
return;
}
const foregroundColor = { r: 255, g: 255, b: 255, a: 255 };
const backgroundColor = { r: 0, g: 0, b: 0, a: 255 };
const mask = await bodySegmentation.toBinaryMask(
segmentation,
foregroundColor,
backgroundColor,
config.drawContour,
config.foregroundThreshold,
);
await bodySegmentation.drawMask(canvas, $video, mask, config.opacity, config.maskBlurAmount);
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
ctx.putImageData(makeWhiteTransparent(imageData), 0, 0);
$danmuku.style.maskImage = `url(${canvas.toDataURL()})`;
} catch (error) {
console.error('Error in segmentBody:', error);
}
animationFrameId = requestAnimationFrame(segmentBody);
}
async function startSegmentation() {
if (!isInitialized) {
await initSegmenter();
}
if (!canvas) {
createCanvas();
}
setupDanmukuStyle();
segmentBody();
}
function stopSegmentation() {
$danmuku.style.maskImage = 'none';
if (animationFrameId) {
cancelAnimationFrame(animationFrameId);
animationFrameId = null;
}
}
art.on('ready', startSegmentation);
art.on('destroy', stopSegmentation);
return {
name: 'artplayerPluginDanmukuMask',
start: startSegmentation,
stop: stopSegmentation,
};
};
return {
name: 'artplayerPluginDanmukuMask',
start: startSegmentation,
stop: stopSegmentation,
}
}
}
if (typeof window !== 'undefined') {
window['artplayerPluginDanmukuMask'] = artplayerPluginDanmukuMask;
window.artplayerPluginDanmukuMask = artplayerPluginDanmukuMask
}
@@ -1,25 +1,25 @@
import type Artplayer from 'artplayer';
import type Artplayer from 'artplayer'
export = artplayerPluginDanmukuMask;
export = artplayerPluginDanmukuMask
export as namespace artplayerPluginDanmukuMask;
type Option = {
solutionPath?: string;
modelSelection?: number;
smoothSegmentation?: boolean;
minDetectionConfidence?: number;
minTrackingConfidence?: number;
selfieMode?: boolean;
drawContour?: boolean;
foregroundThreshold?: number;
opacity?: number;
maskBlurAmount?: number;
};
interface Option {
solutionPath?: string
modelSelection?: number
smoothSegmentation?: boolean
minDetectionConfidence?: number
minTrackingConfidence?: number
selfieMode?: boolean
drawContour?: boolean
foregroundThreshold?: number
opacity?: number
maskBlurAmount?: number
}
type Result = {
name: 'artplayerPluginDanmukuMask';
start: () => Promise<void>;
stop: () => void;
};
interface Result {
name: 'artplayerPluginDanmukuMask'
start: () => Promise<void>
stop: () => void
}
declare const artplayerPluginDanmukuMask: (option?: Option) => (art: Artplayer) => Result;
declare const artplayerPluginDanmukuMask: (option?: Option) => (art: Artplayer) => Result
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(t,e,i,a,n,o,s,l){var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof r[a]&&r[a],p=d.i||{},u=d.cache||{},h="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function m(e,i){if(!u[e]){if(!t[e]){if(n[e])return n[e];var o="function"==typeof r[a]&&r[a];if(!i&&o)return o(e,!0);if(d)return d(e,!0);if(h&&"string"==typeof e)return h(e);var s=Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}p.resolve=function(i){var a=t[e][1][i];return null!=a?a:i},p.cache={};var l=u[e]=new m.Module(e);t[e][0].call(l.exports,p,l,l.exports,r)}return u[e].exports;function p(t){var e=p.resolve(t);return!1===e?{}:m(e)}}m.isParcelRequire=!0,m.Module=function(t){this.id=t,this.bundle=m,this.require=h,this.exports={}},m.modules=t,m.cache=u,m.parent=d,m.distDir=void 0,m.publicUrl=void 0,m.devServer=void 0,m.i=p,m.register=function(e,i){t[e]=[function(t,e){e.exports=i},{}]},Object.defineProperty(m,"root",{get:function(){return r[a]}}),r[a]=m;for(var c=0;c<e.length;c++)m(e[c]);if(i){var f=m(i);"object"==typeof exports&&"undefined"!=typeof module?module.exports=f:"function"==typeof define&&define.amd&&define(function(){return f})}}({"4omrA":[function(t,e,i,a){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i),n.export(i,"default",()=>u);var o=t("./danmuku"),s=n.interopDefault(o),l=t("./setting"),r=n.interopDefault(l),d=t("./heatmap"),p=n.interopDefault(d);function u(t){return e=>{let i=new(0,s.default)(e,t),a=new(0,r.default)(e,i);return i.option.heatmap&&(0,p.default)(e,i,i.option.heatmap),{name:"artplayerPluginDanmuku",emit:i.emit.bind(i),load:i.load.bind(i),config:i.config.bind(i),hide:i.hide.bind(i),show:i.show.bind(i),reset:i.reset.bind(i),mount:a.mount.bind(a),get option(){return i.option},get isHide(){return i.isHide},get isStop(){return i.isStop}}}}u.icons=r.default.icons,"undefined"!=typeof window&&(window.artplayerPluginDanmuku=u)},{"./danmuku":"3UaSK","./setting":"jUZBE","./heatmap":"kCWvn","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3UaSK":[function(t,e,i,a){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i);var o=t("./bilibili"),s=t("bundle-text:./worker"),l=n.interopDefault(s);class r{constructor(t,e){let{constructor:i,template:a}=t;this.utils=i.utils,this.validator=i.validator,this.$danmuku=a.$danmuku,this.$player=a.$player,this.art=t,this.queue=[],this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.index=0,this.option=r.option,this.states={wait:[],ready:[],emit:[],stop:[]},this.config(e,!0);let n=new Blob([l.default.replace("export{e as default};","")],{type:"application/javascript"});this.worker=new Worker(URL.createObjectURL(n)),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.resize=this.resize.bind(this),this.destroy=this.destroy.bind(this),t.on("video:play",this.start),t.on("video:playing",this.start),t.on("video:pause",this.stop),t.on("video:waiting",this.stop),t.on("destroy",this.destroy),t.on("resize",this.resize),this.load()}static get option(){return{danmuku:[],speed:5,margin:[10,"25%"],opacity:1,color:"#FFFFFF",mode:0,modes:[0,1,2],fontSize:25,antiOverlap:!0,synchronousPlayback:!1,mount:void 0,heatmap:!1,width:512,points:[],filter:()=>!0,beforeEmit:()=>!0,beforeVisible:()=>!0,visible:!0,emitter:!0,maxLength:200,lockTime:5,theme:"dark",OPACITY:{},FONT_SIZE:{},MARGIN:{},SPEED:{},COLOR:[]}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",color:"string",mode:"number",modes:"array",fontSize:"number|string",antiOverlap:"boolean",synchronousPlayback:"boolean",mount:"?htmldivelement|string",heatmap:"object|boolean",width:"number",points:"array",filter:"function",beforeEmit:"function",beforeVisible:"function",visible:"boolean",emitter:"boolean",maxLength:"number",lockTime:"number",theme:"string",OPACITY:"object",FONT_SIZE:"object",MARGIN:"object",SPEED:"object",COLOR:"array"}}static get cssText(){return` user-select: none; position: absolute; white-space: pre; pointer-events: none; perspective: 500px; display: inline-block; will-change: transform; font-weight: normal; line-height: 1.125; visibility: hidden; font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif; 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; `}get isRotate(){return this.art.plugins?.autoOrientation?.state}get marginTop(){let{clamp:t}=this.utils,e=this.option.margin[0],{clientHeight:i}=this.$player;return"number"==typeof e?t(e,0,i):"string"==typeof e&&e.endsWith("%")?t(i*(parseFloat(e)/100),0,i):r.option.margin[0]}get marginBottom(){let{clamp:t}=this.utils,e=this.option.margin[1],{clientHeight:i}=this.$player;return"number"==typeof e?t(e,0,i):"string"==typeof e&&e.endsWith("%")?t(i*(parseFloLine truncated
!function(t,e,i,a,n,o,s,r){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof l[a]&&l[a],p=d.i||{},u=d.cache||{},h="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function m(e,i){if(!u[e]){if(!t[e]){if(n[e])return n[e];var o="function"==typeof l[a]&&l[a];if(!i&&o)return o(e,!0);if(d)return d(e,!0);if(h&&"string"==typeof e)return h(e);var s=Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}p.resolve=function(i){var a=t[e][1][i];return null!=a?a:i},p.cache={};var r=u[e]=new m.Module(e);t[e][0].call(r.exports,p,r,r.exports,l)}return u[e].exports;function p(t){var e=p.resolve(t);return!1===e?{}:m(e)}}m.isParcelRequire=!0,m.Module=function(t){this.id=t,this.bundle=m,this.require=h,this.exports={}},m.modules=t,m.cache=u,m.parent=d,m.distDir=void 0,m.publicUrl=void 0,m.devServer=void 0,m.i=p,m.register=function(e,i){t[e]=[function(t,e){e.exports=i},{}]},Object.defineProperty(m,"root",{get:function(){return l[a]}}),l[a]=m;for(var c=0;c<e.length;c++)m(e[c]);if(i){var f=m(i);"object"==typeof exports&&"undefined"!=typeof module?module.exports=f:"function"==typeof define&&define.amd&&define(function(){return f})}}({"6ZbtA":[function(t,e,i,a){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i),n.export(i,"default",()=>u);var o=t("./danmuku"),s=n.interopDefault(o),r=t("./heatmap"),l=n.interopDefault(r),d=t("./setting"),p=n.interopDefault(d);function u(t){return e=>{let i=new(0,s.default)(e,t),a=new(0,p.default)(e,i);return i.option.heatmap&&(0,l.default)(e,i,i.option.heatmap),{name:"artplayerPluginDanmuku",emit:i.emit.bind(i),load:i.load.bind(i),config:i.config.bind(i),hide:i.hide.bind(i),show:i.show.bind(i),reset:i.reset.bind(i),mount:a.mount.bind(a),get option(){return i.option},get isHide(){return i.isHide},get isStop(){return i.isStop}}}}u.icons=p.default.icons,"undefined"!=typeof window&&(window.artplayerPluginDanmuku=u)},{"./danmuku":"6C7g0","./heatmap":"h2ayY","./setting":"90QKZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6C7g0":[function(t,e,i,a){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i);var o=t("bundle-text:./worker"),s=n.interopDefault(o),r=t("./bilibili");class l{constructor(t,e){let{constructor:i,template:a}=t;this.utils=i.utils,this.validator=i.validator,this.$danmuku=a.$danmuku,this.$player=a.$player,this.art=t,this.queue=[],this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.index=0,this.option=l.option,this.states={wait:[],ready:[],emit:[],stop:[]},this.config(e,!0);let n=new Blob([s.default.replace("export{e as default};","")],{type:"application/javascript"});this.worker=new Worker(URL.createObjectURL(n)),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.resize=this.resize.bind(this),this.destroy=this.destroy.bind(this),t.on("video:play",this.start),t.on("video:playing",this.start),t.on("video:pause",this.stop),t.on("video:waiting",this.stop),t.on("destroy",this.destroy),t.on("resize",this.resize),this.load()}static get option(){return{danmuku:[],speed:5,margin:[10,"25%"],opacity:1,color:"#FFFFFF",mode:0,modes:[0,1,2],fontSize:25,antiOverlap:!0,synchronousPlayback:!1,mount:void 0,heatmap:!1,width:512,points:[],filter:()=>!0,beforeEmit:()=>!0,beforeVisible:()=>!0,visible:!0,emitter:!0,maxLength:200,lockTime:5,theme:"dark",OPACITY:{},FONT_SIZE:{},MARGIN:{},SPEED:{},COLOR:[]}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",color:"string",mode:"number",modes:"array",fontSize:"number|string",antiOverlap:"boolean",synchronousPlayback:"boolean",mount:"?htmldivelement|string",heatmap:"object|boolean",width:"number",points:"array",filter:"function",beforeEmit:"function",beforeVisible:"function",visible:"boolean",emitter:"boolean",maxLength:"number",lockTime:"number",theme:"string",OPACITY:"object",FONT_SIZE:"object",MARGIN:"object",SPEED:"object",COLOR:"array"}}static get cssText(){return` user-select: none; position: absolute; white-space: pre; pointer-events: none; perspective: 500px; display: inline-block; will-change: transform; font-weight: normal; line-height: 1.125; visibility: hidden; font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif; 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; `}get isRotate(){return this.art.plugins?.autoOrientation?.state}get marginTop(){let{clamp:t}=this.utils,e=this.option.margin[0],{clientHeight:i}=this.$player;return"number"==typeof e?t(e,0,i):"string"==typeof e&&e.endsWith("%")?t(i*(Number.parseFloat(e)/100),0,i):l.option.margin[0]}get marginBottom(){let{clamp:t}=this.utils,e=this.option.margin[1],{clientHeight:i}=this.$player;return"number"==typeof e?t(e,0,i):"string"==typeof e&&e.endsWith("%")?t(i*(NLine truncated
//# sourceMappingURL=artplayer-plugin-danmuku.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCIwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAJxB,IAAA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GAEe,SAAS,EAAuB,CAAM,EACjD,OAAO,AAAC,IACJ,IAAM,EAAU,GAAI,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,GAC3B,EAAU,GAAI,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,GAMjC,OAJI,EAAQ,MAAM,CAAC,OAAO,EACtB,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,EAAK,E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 truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCIwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAJxB,IAAA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GAEe,SAAS,EAAuB,CAAM,EACnD,OAAO,AAAC,IACN,IAAM,EAAU,GAAI,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,GAC3B,EAAU,GAAI,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,GAMjC,OAJI,EAAQ,MAAM,CAAC,OAAO,EACxB,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,EAAK,E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 truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(t,e,i,a,n,o,s,l){var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof r[a]&&r[a],p=d.i||{},u=d.cache||{},h="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function m(e,i){if(!u[e]){if(!t[e]){if(n[e])return n[e];var o="function"==typeof r[a]&&r[a];if(!i&&o)return o(e,!0);if(d)return d(e,!0);if(h&&"string"==typeof e)return h(e);var s=Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}p.resolve=function(i){var a=t[e][1][i];return null!=a?a:i},p.cache={};var l=u[e]=new m.Module(e);t[e][0].call(l.exports,p,l,l.exports,r)}return u[e].exports;function p(t){var e=p.resolve(t);return!1===e?{}:m(e)}}m.isParcelRequire=!0,m.Module=function(t){this.id=t,this.bundle=m,this.require=h,this.exports={}},m.modules=t,m.cache=u,m.parent=d,m.distDir=void 0,m.publicUrl=void 0,m.devServer=void 0,m.i=p,m.register=function(e,i){t[e]=[function(t,e){e.exports=i},{}]},Object.defineProperty(m,"root",{get:function(){return r[a]}}),r[a]=m;for(var c=0;c<e.length;c++)m(e[c]);if(i){var f=m(i);"object"==typeof exports&&"undefined"!=typeof module?module.exports=f:"function"==typeof define&&define.amd&&define(function(){return f})}}({jz4E5:[function(t,e,i,a){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i),n.export(i,"default",()=>u);var o=t("./danmuku"),s=n.interopDefault(o),l=t("./setting"),r=n.interopDefault(l),d=t("./heatmap"),p=n.interopDefault(d);function u(t){return e=>{let i=new(0,s.default)(e,t),a=new(0,r.default)(e,i);return i.option.heatmap&&(0,p.default)(e,i,i.option.heatmap),{name:"artplayerPluginDanmuku",emit:i.emit.bind(i),load:i.load.bind(i),config:i.config.bind(i),hide:i.hide.bind(i),show:i.show.bind(i),reset:i.reset.bind(i),mount:a.mount.bind(a),get option(){return i.option},get isHide(){return i.isHide},get isStop(){return i.isStop}}}}u.icons=r.default.icons,"undefined"!=typeof window&&(window.artplayerPluginDanmuku=u)},{"./danmuku":"3oV1P","./setting":"ddE7h","./heatmap":"falVu","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3oV1P":[function(t,e,i,a){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i);var o=t("./bilibili"),s=t("bundle-text:./worker"),l=n.interopDefault(s);class r{constructor(t,e){let{constructor:i,template:a}=t;this.utils=i.utils,this.validator=i.validator,this.$danmuku=a.$danmuku,this.$player=a.$player,this.art=t,this.queue=[],this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.index=0,this.option=r.option,this.states={wait:[],ready:[],emit:[],stop:[]},this.config(e,!0);let n=new Blob([l.default.replace("export{e as default};","")],{type:"application/javascript"});this.worker=new Worker(URL.createObjectURL(n)),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.resize=this.resize.bind(this),this.destroy=this.destroy.bind(this),t.on("video:play",this.start),t.on("video:playing",this.start),t.on("video:pause",this.stop),t.on("video:waiting",this.stop),t.on("destroy",this.destroy),t.on("resize",this.resize),this.load()}static get option(){return{danmuku:[],speed:5,margin:[10,"25%"],opacity:1,color:"#FFFFFF",mode:0,modes:[0,1,2],fontSize:25,antiOverlap:!0,synchronousPlayback:!1,mount:void 0,heatmap:!1,width:512,points:[],filter:()=>!0,beforeEmit:()=>!0,beforeVisible:()=>!0,visible:!0,emitter:!0,maxLength:200,lockTime:5,theme:"dark",OPACITY:{},FONT_SIZE:{},MARGIN:{},SPEED:{},COLOR:[]}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",color:"string",mode:"number",modes:"array",fontSize:"number|string",antiOverlap:"boolean",synchronousPlayback:"boolean",mount:"?htmldivelement|string",heatmap:"object|boolean",width:"number",points:"array",filter:"function",beforeEmit:"function",beforeVisible:"function",visible:"boolean",emitter:"boolean",maxLength:"number",lockTime:"number",theme:"string",OPACITY:"object",FONT_SIZE:"object",MARGIN:"object",SPEED:"object",COLOR:"array"}}static get cssText(){return` user-select: none; position: absolute; white-space: pre; pointer-events: none; perspective: 500px; display: inline-block; will-change: transform; font-weight: normal; line-height: 1.125; visibility: hidden; font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif; 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; `}get isRotate(){return this.art.plugins?.autoOrientation?.state}get marginTop(){let{clamp:t}=this.utils,e=this.option.margin[0],{clientHeight:i}=this.$player;return"number"==typeof e?t(e,0,i):"string"==typeof e&&e.endsWith("%")?t(i*(parseFloat(e)/100),0,i):r.option.margin[0]}get marginBottom(){let{clamp:t}=this.utils,e=this.option.margin[1],{clientHeight:i}=this.$player;return"number"==typeof e?t(e,0,i):"string"==typeof e&&e.endsWith("%")?t(i*(parseFloatLine truncated
!function(t,e,i,a,n,o,s,r){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof l[a]&&l[a],p=d.i||{},u=d.cache||{},h="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function m(e,i){if(!u[e]){if(!t[e]){if(n[e])return n[e];var o="function"==typeof l[a]&&l[a];if(!i&&o)return o(e,!0);if(d)return d(e,!0);if(h&&"string"==typeof e)return h(e);var s=Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}p.resolve=function(i){var a=t[e][1][i];return null!=a?a:i},p.cache={};var r=u[e]=new m.Module(e);t[e][0].call(r.exports,p,r,r.exports,l)}return u[e].exports;function p(t){var e=p.resolve(t);return!1===e?{}:m(e)}}m.isParcelRequire=!0,m.Module=function(t){this.id=t,this.bundle=m,this.require=h,this.exports={}},m.modules=t,m.cache=u,m.parent=d,m.distDir=void 0,m.publicUrl=void 0,m.devServer=void 0,m.i=p,m.register=function(e,i){t[e]=[function(t,e){e.exports=i},{}]},Object.defineProperty(m,"root",{get:function(){return l[a]}}),l[a]=m;for(var c=0;c<e.length;c++)m(e[c]);if(i){var f=m(i);"object"==typeof exports&&"undefined"!=typeof module?module.exports=f:"function"==typeof define&&define.amd&&define(function(){return f})}}({"666Ok":[function(t,e,i,a){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i),n.export(i,"default",()=>u);var o=t("./danmuku"),s=n.interopDefault(o),r=t("./heatmap"),l=n.interopDefault(r),d=t("./setting"),p=n.interopDefault(d);function u(t){return e=>{let i=new(0,s.default)(e,t),a=new(0,p.default)(e,i);return i.option.heatmap&&(0,l.default)(e,i,i.option.heatmap),{name:"artplayerPluginDanmuku",emit:i.emit.bind(i),load:i.load.bind(i),config:i.config.bind(i),hide:i.hide.bind(i),show:i.show.bind(i),reset:i.reset.bind(i),mount:a.mount.bind(a),get option(){return i.option},get isHide(){return i.isHide},get isStop(){return i.isStop}}}}u.icons=p.default.icons,"undefined"!=typeof window&&(window.artplayerPluginDanmuku=u)},{"./danmuku":"g81Wu","./heatmap":"hjtgU","./setting":"ho690","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],g81Wu:[function(t,e,i,a){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i);var o=t("bundle-text:./worker"),s=n.interopDefault(o),r=t("./bilibili");class l{constructor(t,e){let{constructor:i,template:a}=t;this.utils=i.utils,this.validator=i.validator,this.$danmuku=a.$danmuku,this.$player=a.$player,this.art=t,this.queue=[],this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.index=0,this.option=l.option,this.states={wait:[],ready:[],emit:[],stop:[]},this.config(e,!0);let n=new Blob([s.default.replace("export{e as default};","")],{type:"application/javascript"});this.worker=new Worker(URL.createObjectURL(n)),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.resize=this.resize.bind(this),this.destroy=this.destroy.bind(this),t.on("video:play",this.start),t.on("video:playing",this.start),t.on("video:pause",this.stop),t.on("video:waiting",this.stop),t.on("destroy",this.destroy),t.on("resize",this.resize),this.load()}static get option(){return{danmuku:[],speed:5,margin:[10,"25%"],opacity:1,color:"#FFFFFF",mode:0,modes:[0,1,2],fontSize:25,antiOverlap:!0,synchronousPlayback:!1,mount:void 0,heatmap:!1,width:512,points:[],filter:()=>!0,beforeEmit:()=>!0,beforeVisible:()=>!0,visible:!0,emitter:!0,maxLength:200,lockTime:5,theme:"dark",OPACITY:{},FONT_SIZE:{},MARGIN:{},SPEED:{},COLOR:[]}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",color:"string",mode:"number",modes:"array",fontSize:"number|string",antiOverlap:"boolean",synchronousPlayback:"boolean",mount:"?htmldivelement|string",heatmap:"object|boolean",width:"number",points:"array",filter:"function",beforeEmit:"function",beforeVisible:"function",visible:"boolean",emitter:"boolean",maxLength:"number",lockTime:"number",theme:"string",OPACITY:"object",FONT_SIZE:"object",MARGIN:"object",SPEED:"object",COLOR:"array"}}static get cssText(){return` user-select: none; position: absolute; white-space: pre; pointer-events: none; perspective: 500px; display: inline-block; will-change: transform; font-weight: normal; line-height: 1.125; visibility: hidden; font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif; 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; `}get isRotate(){return this.art.plugins?.autoOrientation?.state}get marginTop(){let{clamp:t}=this.utils,e=this.option.margin[0],{clientHeight:i}=this.$player;return"number"==typeof e?t(e,0,i):"string"==typeof e&&e.endsWith("%")?t(i*(Number.parseFloat(e)/100),0,i):l.option.margin[0]}get marginBottom(){let{clamp:t}=this.utils,e=this.option.margin[1],{clientHeight:i}=this.$player;return"number"==typeof e?t(e,0,i):"string"==typeof e&&e.endsWith("%")?t(i*(NumLine truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,r,a,i,o,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof l[r]&&l[r],c=u.i||{},d=u.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,n){if(!d[t]){if(!e[t]){if(a[t])return a[t];var i="function"==typeof l[r]&&l[r];if(!n&&i)return i(t,!0);if(u)return u(t,!0);if(p&&"string"==typeof t)return p(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}c.resolve=function(n){var r=e[t][1][n];return null!=r?r:n},c.cache={};var s=d[t]=new f.Module(t);e[t][0].call(s.exports,c,s,s.exports,l)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(f,"root",{get:function(){return l[r]}}),l[r]=f;for(var h=0;h<t.length;h++)f(t[h]);if(n){var m=f(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({bzF6W:[function(e,t,n,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(n),a.export(n,"default",function(){return d});var i=e("./danmuku"),o=a.interopDefault(i),s=e("./setting"),l=a.interopDefault(s),u=e("./heatmap"),c=a.interopDefault(u);function d(e){return function(t){var n=new(0,o.default)(t,e),r=new(0,l.default)(t,n);return n.option.heatmap&&(0,c.default)(t,n,n.option.heatmap),{name:"artplayerPluginDanmuku",emit:n.emit.bind(n),load:n.load.bind(n),config:n.config.bind(n),hide:n.hide.bind(n),show:n.show.bind(n),reset:n.reset.bind(n),mount:r.mount.bind(r),get option(){return n.option},get isHide(){return n.isHide},get isStop(){return n.isStop}}}}d.icons=l.default.icons,"undefined"!=typeof window&&(window.artplayerPluginDanmuku=d)},{"./danmuku":"atzAj","./setting":"1ROJF","./heatmap":"4srjK","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],atzAj:[function(e,t,n,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(n),a.export(n,"default",function(){return h});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),o=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),l=e("@swc/helpers/cjs/_object_spread.cjs"),u=e("@swc/helpers/cjs/_object_spread_props.cjs"),c=e("@swc/helpers/cjs/_ts_generator.cjs"),d=e("./bilibili"),p=e("bundle-text:./worker"),f=a.interopDefault(p),h=function(){"use strict";function e(t,n){(0,o._)(this,e);var r=t.constructor,a=t.template;this.utils=r.utils,this.validator=r.validator,this.$danmuku=a.$danmuku,this.$player=a.$player,this.art=t,this.queue=[],this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.index=0,this.option=e.option,this.states={wait:[],ready:[],emit:[],stop:[]},this.config(n,!0);var i=new Blob([f.default.replace("export{e as default};","")],{type:"application/javascript"});this.worker=new Worker(URL.createObjectURL(i)),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.resize=this.resize.bind(this),this.destroy=this.destroy.bind(this),t.on("video:play",this.start),t.on("video:playing",this.start),t.on("video:pause",this.stop),t.on("video:waiting",this.stop),t.on("destroy",this.destroy),t.on("resize",this.resize),this.load()}return(0,s._)(e,[{key:"isRotate",get:function(){var e,t;return null==(t=this.art.plugins)||null==(e=t.autoOrientation)?void 0:e.state}},{key:"marginTop",get:function(){var t=this.utils.clamp,n=this.option.margin[0],r=this.$player.clientHeight;return"number"==typeof n?t(n,0,r):"string"==typeof n&&n.endsWith("%")?t(r*(parseFloat(n)/100),0,r):e.option.margin[0]}},{key:"marginBottom",get:function(){var t=this.utils.clamp,n=this.option.margin[1],r=this.$player.clientHeight;return"number"==typeof n?t(n,0,r):"string"==typeof n&&n.endsWith("%")?t(r*(parseFloat(n)/100),0,r):e.option.margin[1]}},{key:"fontSize",get:function(){var t=this.utils.clamp,n=this.$player.clientHeight,r=this.option.fontSize;return"number"==typeof r?Math.round(t(r,12,n)):"string"==typeof r&&r.endsWith("%")?Math.round(t(n*(parseFloat(r)/100),12,n)):e.option.fontSize}},{key:"$ref",get:function(){var t=this.$refs.pop()||document.createElement("div");return t.style.cssText=e.cssText,t.dataset.mode="",t.className="",t}},{key:"readys",get:function(){var e=this.art.currentTime,t=[];return this.filter("ready",function(e){return t.push(e)}),this.filter("wait",function(n){e+.1>=n.time&&n.time>=e-.1&&t.push(n)}),t}},{key:"visibles",get:function(){var e=this,t=[],n=this.$player.clientWidth,r=this.getLeft(this.$player);return this.filter("emit",function(a){var i=a.$ref.offsetTop,o=e.getLeft(a.$ref)-r,s=a.$ref.clientHeight,l=a.$ref.clientWidth,u=o+l,c=u/a.$restTimLine truncated
!function(e,t,n,r,a,i,o,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof l[r]&&l[r],c=u.i||{},d=u.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,n){if(!d[t]){if(!e[t]){if(a[t])return a[t];var i="function"==typeof l[r]&&l[r];if(!n&&i)return i(t,!0);if(u)return u(t,!0);if(p&&"string"==typeof t)return p(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}c.resolve=function(n){var r=e[t][1][n];return null!=r?r:n},c.cache={};var s=d[t]=new f.Module(t);e[t][0].call(s.exports,c,s,s.exports,l)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(f,"root",{get:function(){return l[r]}}),l[r]=f;for(var h=0;h<t.length;h++)f(t[h]);if(n){var m=f(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({l3CkF:[function(e,t,n,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(n),a.export(n,"default",function(){return d});var i=e("./danmuku"),o=a.interopDefault(i),s=e("./heatmap"),l=a.interopDefault(s),u=e("./setting"),c=a.interopDefault(u);function d(e){return function(t){var n=new(0,o.default)(t,e),r=new(0,c.default)(t,n);return n.option.heatmap&&(0,l.default)(t,n,n.option.heatmap),{name:"artplayerPluginDanmuku",emit:n.emit.bind(n),load:n.load.bind(n),config:n.config.bind(n),hide:n.hide.bind(n),show:n.show.bind(n),reset:n.reset.bind(n),mount:r.mount.bind(r),get option(){return n.option},get isHide(){return n.isHide},get isStop(){return n.isStop}}}}d.icons=c.default.icons,"undefined"!=typeof window&&(window.artplayerPluginDanmuku=d)},{"./danmuku":"u1ZRC","./heatmap":"hLPK6","./setting":"jpEpW","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],u1ZRC:[function(e,t,n,r){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(n),a.export(n,"default",function(){return h});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),o=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),l=e("@swc/helpers/cjs/_object_spread.cjs"),u=e("@swc/helpers/cjs/_object_spread_props.cjs"),c=e("@swc/helpers/cjs/_ts_generator.cjs"),d=e("bundle-text:./worker"),p=a.interopDefault(d),f=e("./bilibili"),h=function(){"use strict";function e(t,n){(0,o._)(this,e);var r=t.constructor,a=t.template;this.utils=r.utils,this.validator=r.validator,this.$danmuku=a.$danmuku,this.$player=a.$player,this.art=t,this.queue=[],this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.index=0,this.option=e.option,this.states={wait:[],ready:[],emit:[],stop:[]},this.config(n,!0);var i=new Blob([p.default.replace("export{e as default};","")],{type:"application/javascript"});this.worker=new Worker(URL.createObjectURL(i)),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.resize=this.resize.bind(this),this.destroy=this.destroy.bind(this),t.on("video:play",this.start),t.on("video:playing",this.start),t.on("video:pause",this.stop),t.on("video:waiting",this.stop),t.on("destroy",this.destroy),t.on("resize",this.resize),this.load()}return(0,s._)(e,[{key:"isRotate",get:function(){var e,t;return null==(t=this.art.plugins)||null==(e=t.autoOrientation)?void 0:e.state}},{key:"marginTop",get:function(){var t=this.utils.clamp,n=this.option.margin[0],r=this.$player.clientHeight;return"number"==typeof n?t(n,0,r):"string"==typeof n&&n.endsWith("%")?t(r*(Number.parseFloat(n)/100),0,r):e.option.margin[0]}},{key:"marginBottom",get:function(){var t=this.utils.clamp,n=this.option.margin[1],r=this.$player.clientHeight;return"number"==typeof n?t(n,0,r):"string"==typeof n&&n.endsWith("%")?t(r*(Number.parseFloat(n)/100),0,r):e.option.margin[1]}},{key:"fontSize",get:function(){var t=this.utils.clamp,n=this.$player.clientHeight,r=this.option.fontSize;return"number"==typeof r?Math.round(t(r,12,n)):"string"==typeof r&&r.endsWith("%")?Math.round(t(n*(Number.parseFloat(r)/100),12,n)):e.option.fontSize}},{key:"$ref",get:function(){var t=this.$refs.pop()||document.createElement("div");return t.style.cssText=e.cssText,t.dataset.mode="",t.className="",t}},{key:"readys",get:function(){var e=this.art.currentTime,t=[];return this.filter("ready",function(e){return t.push(e)}),this.filter("wait",function(n){e+.1>=n.time&&n.time>=e-.1&&t.push(n)}),t}},{key:"visibles",get:function(){var e=this,t=[],n=this.$player.clientWidth,r=this.getLeft(this.$player);return this.filter("emit",function(a){var i=a.$ref.offsetTop,o=e.getLeft(a.$ref)-r,s=a.$ref.clientHeight,l=a.$ref.clientWidthLine truncated
+22 -22
View File
@@ -1,24 +1,24 @@
{
"license": "MIT",
"version": "5.1.8",
"name": "artplayer-plugin-danmuku",
"types": "types/artplayer-plugin-danmuku.d.ts",
"description": "Danmuku plugin for ArtPlayer",
"main": "dist/artplayer-plugin-danmuku.js",
"legacy": "dist/artplayer-plugin-danmuku.legacy.js",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
"name": "artplayer-plugin-danmuku",
"version": "5.1.8",
"description": "Danmuku plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"main": "dist/artplayer-plugin-danmuku.js",
"types": "types/artplayer-plugin-danmuku.d.ts",
"legacy": "dist/artplayer-plugin-danmuku.legacy.js",
"browserslist": "last 1 Chrome version"
}
@@ -1,88 +1,93 @@
function getMode(key) {
switch (key) {
case 1:
case 2:
case 3:
return 0;
case 4:
return 2;
case 5:
return 1;
default:
return 0;
}
switch (key) {
case 1:
case 2:
case 3:
return 0
case 4:
return 2
case 5:
return 1
default:
return 0
}
}
function bilibiliDanmuParseFromXml(xmlString) {
if (typeof xmlString !== 'string') return [];
const reg = new RegExp(/<d (?:.*? )??p="(?<p>.+?)"(?: .*?)?>(?<text>.+?)<\/d>/gs);
const matches = xmlString.matchAll(reg);
return Array.from(matches)
.map((match) => {
const attr = match.groups.p.split(',');
if (attr.length >= 8) {
const text = match.groups.text
.trim()
.replaceAll('&quot;', '"')
.replaceAll('&apos;', "'")
.replaceAll('&lt;', '<')
.replaceAll('&gt;', '>')
.replaceAll('&amp;', '&');
if (typeof xmlString !== 'string')
return []
const reg = /<d[^>]*?p="(?<p>[^"]+)"[^>]*>(?<text>.*?)<\/d>/gs
const matches = xmlString.matchAll(reg)
return Array.from(matches)
.map((match) => {
const attr = match.groups.p.split(',')
if (attr.length >= 8) {
const text = match.groups.text
.trim()
.replaceAll('&quot;', '"')
.replaceAll('&apos;', '\'')
.replaceAll('&lt;', '<')
.replaceAll('&gt;', '>')
.replaceAll('&amp;', '&')
return {
text,
time: Number(attr[0]),
mode: getMode(Number(attr[1])),
fontSize: Number(attr[2]),
color: `#${Number(attr[3]).toString(16)}`,
timestamp: Number(attr[4]),
pool: Number(attr[5]),
userID: attr[6],
rowID: Number(attr[7]),
};
} else {
return null;
}
})
.filter(Boolean);
return {
text,
time: Number(attr[0]),
mode: getMode(Number(attr[1])),
fontSize: Number(attr[2]),
color: `#${Number(attr[3]).toString(16)}`,
timestamp: Number(attr[4]),
pool: Number(attr[5]),
userID: attr[6],
rowID: Number(attr[7]),
}
}
else {
return null
}
})
.filter(Boolean)
}
function onmessage({ data }) {
const { xml, id } = data;
if (!id || !xml) return;
const danmus = bilibiliDanmuParseFromXml(xml);
self.postMessage({ danmus, id });
const { xml, id } = data
if (!id || !xml)
return
const danmus = bilibiliDanmuParseFromXml(xml)
globalThis.postMessage({ danmus, id })
}
function createWorker() {
const workerText = `
const workerText = `
${getMode.toString()}
${bilibiliDanmuParseFromXml.toString()}
onmessage = ${onmessage.toString()}
`;
const blob = new Blob([workerText], { type: 'application/javascript' });
return new Worker(URL.createObjectURL(blob));
`
const blob = new Blob([workerText], { type: 'application/javascript' })
return new Worker(URL.createObjectURL(blob))
}
export function bilibiliDanmuParseFromUrl(url) {
// eslint-disable-next-line no-async-promise-executor
return new Promise(async (resolve) => {
const res = await fetch(url);
const xml = await res.text();
// eslint-disable-next-line no-async-promise-executor
return new Promise(async (resolve) => {
const res = await fetch(url)
const xml = await res.text()
try {
const worker = createWorker();
worker.onmessage = (event) => {
const { danmus, id } = event.data;
if (!id || !danmus) return;
resolve(danmus);
worker.terminate();
};
worker.postMessage({ xml, id: Date.now() });
// eslint-disable-next-line no-unused-vars
} catch (error) {
const danmus = bilibiliDanmuParseFromXml(xml);
resolve(danmus);
}
});
try {
const worker = createWorker()
worker.onmessage = (event) => {
const { danmus, id } = event.data
if (!id || !danmus)
return
resolve(danmus)
worker.terminate()
}
worker.postMessage({ xml, id: Date.now() })
}
catch (error) {
console.error('Error parsing Bilibili Danmu:', error)
const danmus = bilibiliDanmuParseFromXml(xml)
resolve(danmus)
}
})
}
File diff suppressed because it is too large. Load diff
+149 -146
View File
@@ -1,146 +1,149 @@
const lib = {
map(value, inMin, inMax, outMin, outMax) {
return ((value - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin;
},
range(start, end, tick) {
const s = Math.round(start / tick) * tick;
return Array.from(
{
length: Math.floor((end - start) / tick),
},
(v, k) => {
return k * tick + s;
},
);
},
};
map(value, inMin, inMax, outMin, outMax) {
return ((value - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin
},
range(start, end, tick) {
const s = Math.round(start / tick) * tick
return Array.from(
{
length: Math.floor((end - start) / tick),
},
(v, k) => {
return k * tick + s
},
)
},
}
const line = (pointA, pointB) => {
const lengthX = pointB[0] - pointA[0];
const lengthY = pointB[1] - pointA[1];
return {
length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),
angle: Math.atan2(lengthY, lengthX),
};
};
function line(pointA, pointB) {
const lengthX = pointB[0] - pointA[0]
const lengthY = pointB[1] - pointA[1]
return {
length: Math.sqrt(lengthX ** 2 + lengthY ** 2),
angle: Math.atan2(lengthY, lengthX),
}
}
export default function heatmap(art, danmuku, option) {
const { query } = art.constructor.utils;
const { query } = art.constructor.utils
art.controls.add({
name: 'heatmap',
position: 'top',
html: '',
style: {
position: 'absolute',
top: '-100px',
left: '0px',
right: '0px',
height: '100px',
width: '100%',
pointerEvents: 'none',
},
mounted($heatmap) {
let $start = null;
let $stop = null;
art.controls.add({
name: 'heatmap',
position: 'top',
html: '',
style: {
position: 'absolute',
top: '-100px',
left: '0px',
right: '0px',
height: '100px',
width: '100%',
pointerEvents: 'none',
},
mounted($heatmap) {
let $start = null
let $stop = null
function update(arg = []) {
$start = null;
$stop = null;
$heatmap.innerHTML = '';
function update(arg = []) {
$start = null
$stop = null
$heatmap.innerHTML = ''
if (!art.duration || art.option.isLive) return;
if (!art.duration || art.option.isLive)
return
const svg = {
w: $heatmap.offsetWidth,
h: $heatmap.offsetHeight,
};
const svg = {
w: $heatmap.offsetWidth,
h: $heatmap.offsetHeight,
}
const options = {
xMin: 0,
xMax: svg.w,
yMin: 0,
yMax: 128,
scale: 0.25,
opacity: 0.2,
minHeight: Math.floor(svg.h * 0.05),
sampling: Math.floor(svg.w / 100),
smoothing: 0.2,
flattening: 0.2,
};
const options = {
xMin: 0,
xMax: svg.w,
yMin: 0,
yMax: 128,
scale: 0.25,
opacity: 0.2,
minHeight: Math.floor(svg.h * 0.05),
sampling: Math.floor(svg.w / 100),
smoothing: 0.2,
flattening: 0.2,
}
if (typeof option === 'object') {
Object.assign(options, option);
}
if (typeof option === 'object') {
Object.assign(options, option)
}
let points = [];
let points = []
if (Array.isArray(arg) && arg.length) {
points = [...arg];
} else {
const gap = art.duration / svg.w;
for (let x = 0; x <= svg.w; x += options.sampling) {
const y = danmuku.queue.filter(
({ time }) => time > x * gap && time <= (x + options.sampling) * gap,
).length;
points.push([x, y]);
}
}
if (Array.isArray(arg) && arg.length) {
points = [...arg]
}
else {
const gap = art.duration / svg.w
for (let x = 0; x <= svg.w; x += options.sampling) {
const y = danmuku.queue.filter(
({ time }) => time > x * gap && time <= (x + options.sampling) * gap,
).length
points.push([x, y])
}
}
if (points.length === 0) return;
if (points.length === 0)
return
const lastPoint = points[points.length - 1];
const lastX = lastPoint[0];
const lastY = lastPoint[1];
if (lastX !== svg.w) {
points.push([svg.w, lastY]);
}
const lastPoint = points[points.length - 1]
const lastX = lastPoint[0]
const lastY = lastPoint[1]
if (lastX !== svg.w) {
points.push([svg.w, lastY])
}
const yPoints = points.map((point) => point[1]);
const yMin = Math.min(...yPoints);
const yMax = Math.max(...yPoints);
const yMid = (yMin + yMax) / 2;
const yPoints = points.map(point => point[1])
const yMin = Math.min(...yPoints)
const yMax = Math.max(...yPoints)
const yMid = (yMin + yMax) / 2
for (let i = 0; i < points.length; i++) {
const point = points[i];
const y = point[1];
point[1] = y * (y > yMid ? 1 + options.scale : 1 - options.scale) + options.minHeight;
}
for (let i = 0; i < points.length; i++) {
const point = points[i]
const y = point[1]
point[1] = y * (y > yMid ? 1 + options.scale : 1 - options.scale) + options.minHeight
}
const controlPoint = (current, previous, next, reverse) => {
const p = previous || current;
const n = next || current;
const o = line(p, n);
const flat = lib.map(Math.cos(o.angle) * options.flattening, 0, 1, 1, 0);
const angle = o.angle * flat + (reverse ? Math.PI : 0);
const length = o.length * options.smoothing;
const x = current[0] + Math.cos(angle) * length;
const y = current[1] + Math.sin(angle) * length;
return [x, y];
};
const controlPoint = (current, previous, next, reverse) => {
const p = previous || current
const n = next || current
const o = line(p, n)
const flat = lib.map(Math.cos(o.angle) * options.flattening, 0, 1, 1, 0)
const angle = o.angle * flat + (reverse ? Math.PI : 0)
const length = o.length * options.smoothing
const x = current[0] + Math.cos(angle) * length
const y = current[1] + Math.sin(angle) * length
return [x, y]
}
const bezierCommand = (point, i, a) => {
const cps = controlPoint(a[i - 1], a[i - 2], point);
const cpe = controlPoint(point, a[i - 1], a[i + 1], true);
const close = i === a.length - 1 ? ' z' : '';
return `C ${cps[0]},${cps[1]} ${cpe[0]},${cpe[1]} ${point[0]},${point[1]}${close}`;
};
const bezierCommand = (point, i, a) => {
const cps = controlPoint(a[i - 1], a[i - 2], point)
const cpe = controlPoint(point, a[i - 1], a[i + 1], true)
const close = i === a.length - 1 ? ' z' : ''
return `C ${cps[0]},${cps[1]} ${cpe[0]},${cpe[1]} ${point[0]},${point[1]}${close}`
}
const pointsPositions = points.map((e) => {
const x = lib.map(e[0], options.xMin, options.xMax, 0, svg.w);
const y = lib.map(e[1], options.yMin, options.yMax, svg.h, 0);
return [x, y];
});
const pointsPositions = points.map((e) => {
const x = lib.map(e[0], options.xMin, options.xMax, 0, svg.w)
const y = lib.map(e[1], options.yMin, options.yMax, svg.h, 0)
return [x, y]
})
const pathD = pointsPositions.reduce(
(acc, e, i, a) =>
i === 0
? `M ${a[a.length - 1][0]},${svg.h} L ${e[0]},${svg.h} L ${e[0]},${e[1]}`
: `${acc} ${bezierCommand(e, i, a)}`,
'',
);
const pathD = pointsPositions.reduce(
(acc, e, i, a) =>
i === 0
? `M ${a[a.length - 1][0]},${svg.h} L ${e[0]},${svg.h} L ${e[0]},${e[1]}`
: `${acc} ${bezierCommand(e, i, a)}`,
'',
)
$heatmap.innerHTML = `
$heatmap.innerHTML = `
<svg viewBox="0 0 ${svg.w} ${svg.h}">
<defs>
<linearGradient id="heatmap-solids" x1="0%" y1="0%" x2="100%" y2="0%">
@@ -152,32 +155,32 @@ export default function heatmap(art, danmuku, option) {
</defs>
<path fill="url(#heatmap-solids)" d="${pathD}"></path>
</svg>
`;
`
$start = query('#heatmap-start', $heatmap);
$stop = query('#heatmap-stop', $heatmap);
$start.setAttribute('offset', `${art.played * 100}%`);
$stop.setAttribute('offset', `${art.played * 100}%`);
}
$start = query('#heatmap-start', $heatmap)
$stop = query('#heatmap-stop', $heatmap)
$start.setAttribute('offset', `${art.played * 100}%`)
$stop.setAttribute('offset', `${art.played * 100}%`)
}
art.on('video:timeupdate', () => {
if ($start && $stop) {
$start.setAttribute('offset', `${art.played * 100}%`);
$stop.setAttribute('offset', `${art.played * 100}%`);
}
});
art.on('video:timeupdate', () => {
if ($start && $stop) {
$start.setAttribute('offset', `${art.played * 100}%`)
$stop.setAttribute('offset', `${art.played * 100}%`)
}
})
art.on('setBar', (type, percentage) => {
if ($start && $stop && type === 'played') {
$start.setAttribute('offset', `${percentage * 100}%`);
$stop.setAttribute('offset', `${percentage * 100}%`);
}
});
art.on('setBar', (type, percentage) => {
if ($start && $stop && type === 'played') {
$start.setAttribute('offset', `${percentage * 100}%`)
$stop.setAttribute('offset', `${percentage * 100}%`)
}
})
art.on('ready', () => update());
art.on('resize', () => update());
art.on('artplayerPluginDanmuku:loaded', () => update());
art.on('artplayerPluginDanmuku:points', (points) => update(points));
},
});
art.on('ready', () => update())
art.on('resize', () => update())
art.on('artplayerPluginDanmuku:loaded', () => update())
art.on('artplayerPluginDanmuku:points', points => update(points))
},
})
}
+31 -31
View File
@@ -1,40 +1,40 @@
import Danmuku from './danmuku';
import Setting from './setting';
import heatmap from './heatmap';
import Danmuku from './danmuku'
import heatmap from './heatmap'
import Setting from './setting'
export default function artplayerPluginDanmuku(option) {
return (art) => {
const danmuku = new Danmuku(art, option);
const setting = new Setting(art, danmuku);
return (art) => {
const danmuku = new Danmuku(art, option)
const setting = new Setting(art, danmuku)
if (danmuku.option.heatmap) {
heatmap(art, danmuku, danmuku.option.heatmap);
}
if (danmuku.option.heatmap) {
heatmap(art, danmuku, danmuku.option.heatmap)
}
return {
name: 'artplayerPluginDanmuku',
emit: danmuku.emit.bind(danmuku),
load: danmuku.load.bind(danmuku),
config: danmuku.config.bind(danmuku),
hide: danmuku.hide.bind(danmuku),
show: danmuku.show.bind(danmuku),
reset: danmuku.reset.bind(danmuku),
mount: setting.mount.bind(setting),
get option() {
return danmuku.option;
},
get isHide() {
return danmuku.isHide;
},
get isStop() {
return danmuku.isStop;
},
};
};
return {
name: 'artplayerPluginDanmuku',
emit: danmuku.emit.bind(danmuku),
load: danmuku.load.bind(danmuku),
config: danmuku.config.bind(danmuku),
hide: danmuku.hide.bind(danmuku),
show: danmuku.show.bind(danmuku),
reset: danmuku.reset.bind(danmuku),
mount: setting.mount.bind(setting),
get option() {
return danmuku.option
},
get isHide() {
return danmuku.isHide
},
get isStop() {
return danmuku.isStop
},
}
}
}
artplayerPluginDanmuku.icons = Setting.icons;
artplayerPluginDanmuku.icons = Setting.icons
if (typeof window !== 'undefined') {
window['artplayerPluginDanmuku'] = artplayerPluginDanmuku;
window.artplayerPluginDanmuku = artplayerPluginDanmuku
}
File diff suppressed because it is too large. Load diff
+140 -131
View File
@@ -1,142 +1,151 @@
function getDanmuTop({ target, visibles, clientWidth, clientHeight, marginBottom, marginTop, antiOverlap }) {
// 弹幕最大高度
const maxTop = clientHeight - marginBottom;
// 弹幕最大高度
const maxTop = clientHeight - marginBottom
// 过滤同模式的弹幕,即每种模式各不影响
const danmus = visibles
.filter((item) => item.mode === target.mode && item.top <= maxTop)
.sort((prev, next) => prev.top - next.top);
// 过滤同模式的弹幕,即每种模式各不影响
const danmus = visibles
.filter(item => item.mode === target.mode && item.top <= maxTop)
.sort((prev, next) => prev.top - next.top)
// 如果没有同模式的弹幕,直接返回
if (danmus.length === 0) {
if (target.mode === 2) {
return maxTop - target.height;
} else {
return marginTop;
}
}
// 上下各加一个虚拟弹幕,方便计算
danmus.unshift({
type: 'top',
top: 0,
left: 0,
right: 0,
height: marginTop,
width: clientWidth,
speed: 0,
distance: clientWidth,
});
danmus.push({
type: 'bottom',
top: maxTop,
left: 0,
right: 0,
height: marginBottom,
width: clientWidth,
speed: 0,
distance: clientWidth,
});
// 查找是否有多余的缝隙足以容纳当前弹幕
// 如果没有同模式的弹幕,直接返回
if (danmus.length === 0) {
if (target.mode === 2) {
// 倒序查找
for (let index = danmus.length - 2; index >= 0; index -= 1) {
const item = danmus[index];
const prev = danmus[index + 1];
const itemBottom = item.top + item.height;
const diff = prev.top - itemBottom;
if (diff >= target.height) {
return prev.top - target.height;
}
}
} else {
// 顺序查找
for (let index = 1; index < danmus.length; index += 1) {
const item = danmus[index];
const prev = danmus[index - 1];
const prevBottom = prev.top + prev.height;
const diff = item.top - prevBottom;
if (diff >= target.height) {
return prevBottom;
}
}
return maxTop - target.height
}
else {
return marginTop
}
}
// 上下各加一个虚拟弹幕,方便计算
danmus.unshift({
type: 'top',
top: 0,
left: 0,
right: 0,
height: marginTop,
width: clientWidth,
speed: 0,
distance: clientWidth,
})
danmus.push({
type: 'bottom',
top: maxTop,
left: 0,
right: 0,
height: marginBottom,
width: clientWidth,
speed: 0,
distance: clientWidth,
})
// 查找是否有多余的缝隙足以容纳当前弹幕
if (target.mode === 2) {
// 倒序查找
for (let index = danmus.length - 2; index >= 0; index -= 1) {
const item = danmus[index]
const prev = danmus[index + 1]
const itemBottom = item.top + item.height
const diff = prev.top - itemBottom
if (diff >= target.height) {
return prev.top - target.height
}
}
}
else {
// 顺序查找
for (let index = 1; index < danmus.length; index += 1) {
const item = danmus[index]
const prev = danmus[index - 1]
const prevBottom = prev.top + prev.height
const diff = item.top - prevBottom
if (diff >= target.height) {
return prevBottom
}
}
}
const topMap = []
for (let index = 1; index < danmus.length - 1; index += 1) {
const item = danmus[index]
if (topMap.length) {
const last = topMap[topMap.length - 1]
if (last[0].top === item.top) {
last.push(item)
}
else {
topMap.push([item])
}
}
else {
topMap.push([item])
}
}
if (antiOverlap) {
switch (target.mode) {
case 0: {
const result = topMap.find((list) => {
return list.every((danmu) => {
if (clientWidth < danmu.distance)
return false
if (target.speed < danmu.speed)
return true
const overlapTime = danmu.right / (target.speed - danmu.speed)
if (overlapTime > danmu.time)
return true
return false
})
})
return result && result[0] ? result[0].top : undefined
}
// 静止弹幕没有重叠问题
case 1:
case 2:
return undefined
default:
break
}
}
else {
switch (target.mode) {
case 0:
topMap.sort((prev, next) => {
const nextMinRight = Math.min(...next.map(item => item.right))
const prevMinRight = Math.min(...prev.map(item => item.right))
return nextMinRight * next.length - prevMinRight * prev.length
})
break
case 1:
case 2:
topMap.sort((prev, next) => {
const nextMaxWidth = Math.max(...next.map(item => item.width))
const prevMaxWidth = Math.max(...prev.map(item => item.width))
return prevMaxWidth * prev.length - nextMaxWidth * next.length
})
break
default:
break
}
const topMap = [];
for (let index = 1; index < danmus.length - 1; index += 1) {
const item = danmus[index];
if (topMap.length) {
const last = topMap[topMap.length - 1];
if (last[0].top === item.top) {
last.push(item);
} else {
topMap.push([item]);
}
} else {
topMap.push([item]);
}
}
if (antiOverlap) {
switch (target.mode) {
case 0: {
const result = topMap.find((list) => {
return list.every((danmu) => {
if (clientWidth < danmu.distance) return false;
if (target.speed < danmu.speed) return true;
const overlapTime = danmu.right / (target.speed - danmu.speed);
if (overlapTime > danmu.time) return true;
return false;
});
});
return result && result[0] ? result[0].top : undefined;
}
// 静止弹幕没有重叠问题
case 1:
case 2:
return undefined;
default:
break;
}
} else {
switch (target.mode) {
case 0:
topMap.sort((prev, next) => {
const nextMinRight = Math.min(...next.map((item) => item.right));
const prevMinRight = Math.min(...prev.map((item) => item.right));
return nextMinRight * next.length - prevMinRight * prev.length;
});
break;
case 1:
case 2:
topMap.sort((prev, next) => {
const nextMaxWidth = Math.max(...next.map((item) => item.width));
const prevMaxWidth = Math.max(...prev.map((item) => item.width));
return prevMaxWidth * prev.length - nextMaxWidth * next.length;
});
break;
default:
break;
}
return topMap[0][0].top;
}
return topMap[0][0].top
}
}
onmessage = (event) => {
const { data } = event;
if (!data.id || !data.type) return;
const { data } = event
if (!data.id || !data.type)
return
const fns = { getDanmuTop };
const fn = fns[data.type];
const result = fn(data);
const fns = { getDanmuTop }
const fn = fns[data.type]
const result = fn(data)
self.postMessage({
result,
id: data.id,
});
};
globalThis.postMessage({
result,
id: data.id,
})
}
@@ -1,255 +1,255 @@
import type Artplayer from 'artplayer';
import type Artplayer from 'artplayer'
export = artplayerPluginDanmuku;
export = artplayerPluginDanmuku
export as namespace artplayerPluginDanmuku;
type Mode = 0 | 1 | 2;
type Danmuku = Danmu[] | string | (() => Promise<Danmu[]>) | Promise<Danmu[]>;
type Mode = 0 | 1 | 2
type Danmuku = Danmu[] | string | (() => Promise<Danmu[]>) | Promise<Danmu[]>
type Slider = {
min?: number;
max?: number;
steps?: {
name?: string;
value?: any;
show?: boolean;
}[];
};
interface Slider {
min?: number
max?: number
steps?: {
name?: string
value?: any
show?: boolean
}[]
}
type Danmu = {
/**
* 弹幕文本
*/
text: string;
interface Danmu {
/**
* 弹幕文本
*/
text: string
/**
* 弹幕发送模式: 0: 滚动,1: 顶部,2: 底部
*/
mode?: Mode;
/**
* 弹幕发送模式: 0: 滚动,1: 顶部,2: 底部
*/
mode?: Mode
/**
* 弹幕颜色
*/
color?: string;
/**
* 弹幕颜色
*/
color?: string
/**
* 弹幕出现的时间,单位为秒
*/
time?: number;
/**
* 弹幕出现的时间,单位为秒
*/
time?: number
/**
* 弹幕是否有描边, 默认为 false
*/
border?: boolean;
/**
* 弹幕是否有描边, 默认为 false
*/
border?: boolean
/**
* 弹幕自定义样式
*/
style?: Partial<CSSStyleDeclaration>;
};
/**
* 弹幕自定义样式
*/
style?: Partial<CSSStyleDeclaration>
}
type Option = {
/**
* 弹幕数据: 函数,数组,Promise,URL
*/
danmuku: Danmuku;
interface Option {
/**
* 弹幕数据: 函数,数组,Promise,URL
*/
danmuku: Danmuku
/**
* 弹幕持续时间,范围在[1 ~ 10]
*/
speed?: number;
/**
* 弹幕持续时间,范围在[1 ~ 10]
*/
speed?: number
/**
* 弹幕上下边距,支持像素数字和百分比
*/
margin?: [number | `${number}%`, number | `${number}%`];
/**
* 弹幕上下边距,支持像素数字和百分比
*/
margin?: [number | `${number}%`, number | `${number}%`]
/**
* 弹幕透明度,范围在[0 ~ 1]
*/
opacity?: number;
/**
* 弹幕透明度,范围在[0 ~ 1]
*/
opacity?: number
/**
* 默认弹幕颜色,可以被单独弹幕项覆盖
*/
color?: string;
/**
* 默认弹幕颜色,可以被单独弹幕项覆盖
*/
color?: string
/**
* 弹幕模式: 0: 滚动,1: 顶部,2: 底部
*/
mode?: Mode;
/**
* 弹幕模式: 0: 滚动,1: 顶部,2: 底部
*/
mode?: Mode
/**
* 弹幕可见的模式
*/
modes?: Mode[];
/**
* 弹幕可见的模式
*/
modes?: Mode[]
/**
* 弹幕字体大小,支持像素数字和百分比
*/
fontSize?: number | `${number}%`;
/**
* 弹幕字体大小,支持像素数字和百分比
*/
fontSize?: number | `${number}%`
/**
* 弹幕是否防重叠
*/
antiOverlap?: boolean;
/**
* 弹幕是否防重叠
*/
antiOverlap?: boolean
/**
* 是否同步播放速度
*/
synchronousPlayback?: boolean;
/**
* 是否同步播放速度
*/
synchronousPlayback?: boolean
/**
* 弹幕发射器挂载点, 默认为播放器控制栏中部
*/
mount?: HTMLDivElement | string;
/**
* 弹幕发射器挂载点, 默认为播放器控制栏中部
*/
mount?: HTMLDivElement | string
/**
* 是否开启弹幕热度图
*/
heatmap?:
| boolean
| {
xMin?: number;
xMax?: number;
yMin?: number;
yMax?: number;
scale?: number;
opacity?: number;
minHeight?: number;
sampling?: number;
smoothing?: number;
flattening?: number;
};
/**
* 是否开启弹幕热度图
*/
heatmap?:
| boolean
| {
xMin?: number
xMax?: number
yMin?: number
yMax?: number
scale?: number
opacity?: number
minHeight?: number
sampling?: number
smoothing?: number
flattening?: number
}
/**
* 当播放器宽度小于此值时,弹幕发射器置于播放器底部
*/
width?: number;
/**
* 当播放器宽度小于此值时,弹幕发射器置于播放器底部
*/
width?: number
/**
* 热力图数据
*/
points?: any[];
/**
* 热力图数据
*/
points?: any[]
/**
* 弹幕载入前的过滤器,只支持返回布尔值
*/
filter?: (danmu: Danmu) => boolean;
/**
* 弹幕载入前的过滤器,只支持返回布尔值
*/
filter?: (danmu: Danmu) => boolean
/**
* 弹幕发送前的过滤器,支持返回 Promise
*/
beforeEmit?: (danmu: Danmu) => boolean | Promise<boolean>;
/**
* 弹幕发送前的过滤器,支持返回 Promise
*/
beforeEmit?: (danmu: Danmu) => boolean | Promise<boolean>
/**
* 弹幕显示前的过滤器,支持返回 Promise
*/
beforeVisible?: (danmu: Danmu) => boolean | Promise<boolean>;
/**
* 弹幕显示前的过滤器,支持返回 Promise
*/
beforeVisible?: (danmu: Danmu) => boolean | Promise<boolean>
/**
* 弹幕是否可见
*/
visible?: boolean;
/**
* 弹幕是否可见
*/
visible?: boolean
/**
* 是否开启弹幕发射器
*/
emitter?: boolean;
/**
* 是否开启弹幕发射器
*/
emitter?: boolean
/**
* 弹幕输入框最大长度, 范围在[1 ~ 1000]
*/
maxLength?: number;
/**
* 弹幕输入框最大长度, 范围在[1 ~ 1000]
*/
maxLength?: number
/**
* 输入框锁定时间,范围在[1 ~ 60]
*/
lockTime?: number;
/**
* 输入框锁定时间,范围在[1 ~ 60]
*/
lockTime?: number
/**
* 弹幕主题,只在自定义挂载时生效
*/
theme?: 'light' | 'dark';
/**
* 弹幕主题,只在自定义挂载时生效
*/
theme?: 'light' | 'dark'
/**
* 不透明度配置项
*/
OPACITY?: Slider;
/**
* 不透明度配置项
*/
OPACITY?: Slider
/**
* 弹幕速度配置项
*/
SPEED?: Slider;
/**
* 弹幕速度配置项
*/
SPEED?: Slider
/**
* 显示区域配置项
*/
MARGIN?: Slider;
/**
* 显示区域配置项
*/
MARGIN?: Slider
/**
* 弹幕字号配置项
*/
FONT_SIZE?: Slider;
/**
* 弹幕字号配置项
*/
FONT_SIZE?: Slider
/**
* 颜色列表配置项
*/
COLOR?: string[];
};
/**
* 颜色列表配置项
*/
COLOR?: string[]
}
type Result = {
name: 'artplayerPluginDanmuku';
interface Result {
name: 'artplayerPluginDanmuku'
/**
* 发送一条实时弹幕
*/
emit: (danmu: Danmu) => Result;
/**
* 发送一条实时弹幕
*/
emit: (danmu: Danmu) => Result
/**
* 重载弹幕源,或者切换新弹幕
*/
load: (danmuku?: Danmuku) => Promise<Result>;
/**
* 重载弹幕源,或者切换新弹幕
*/
load: (danmuku?: Danmuku) => Promise<Result>
/**
* 实时改变弹幕配置
*/
config: (option: Option) => Result;
/**
* 实时改变弹幕配置
*/
config: (option: Option) => Result
/**
* 隐藏弹幕层
*/
hide: () => Result;
/**
* 隐藏弹幕层
*/
hide: () => Result
/**
* 显示弹幕层
*/
show: () => Result;
/**
* 显示弹幕层
*/
show: () => Result
/**
* 挂载弹幕输入框
*/
mount: (el?: HTMLDivElement | string) => void;
/**
* 挂载弹幕输入框
*/
mount: (el?: HTMLDivElement | string) => void
/**
* 重置弹幕
*/
reset: () => Result;
/**
* 重置弹幕
*/
reset: () => Result
/**
* 弹幕配置
*/
option: Option;
/**
* 弹幕配置
*/
option: Option
/**
* 是否隐藏弹幕层
*/
isHide: boolean;
/**
* 是否隐藏弹幕层
*/
isHide: boolean
/**
* 是否弹幕层停止状态
*/
isStop: boolean;
};
/**
* 是否弹幕层停止状态
*/
isStop: boolean
}
declare const artplayerPluginDanmuku: (option: Option) => (art: Artplayer) => Result;
declare const artplayerPluginDanmuku: (option: Option) => (art: Artplayer) => Result
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,o,n,r,i,l,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof a[n]&&a[n],s=d.i||{},c=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,o){if(!c[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof a[n]&&a[n];if(!o&&i)return i(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var l=Error("Cannot find module '"+t+"'");throw l.code="MODULE_NOT_FOUND",l}s.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},s.cache={};var u=c[t]=new p.Module(t);e[t][0].call(u.exports,s,u,u.exports,a)}return c[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=f,this.exports={}},p.modules=e,p.cache=c,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=s,p.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(p,"root",{get:function(){return a[n]}}),a[n]=p;for(var h=0;h<t.length;h++)p(t[h]);if(o){var g=p(o);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"4omrA":[function(e,t,o,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(o),r.export(o,"default",()=>s);var i=e("bundle-text:./quality.svg"),l=r.interopDefault(i),u=e("bundle-text:./audio.svg"),a=r.interopDefault(u);function d(e,t){let o=new Map;return e.filter(e=>{let n=e[t];return void 0===n||!o.has(n)&&o.set(n,1)})}function s(e={}){return t=>{let{$video:o}=t.template,{errorHandle:n}=t.constructor.utils;function r(){n(t.dash.getVideoElement()===o,'Cannot find instance of DASH from "art.dash"'),function(o){let n=o.getBitrateInfoListFor("video");if(!n||!n.length)return;let r=e.quality||{},i=r.auto||"Auto",u=r.title||"Quality",a=r.getName||(e=>`${e.height}p`),s=o.getQualityFor("video"),c=o.getSettings().streaming.abr.autoSwitchBitrate.video,f=c?i:a(n[s]),p=d(n.map(e=>({html:a(e),value:e.qualityIndex,default:s===e.qualityIndex&&!c})),"html").sort((e,t)=>t.value-e.value);p.push({html:i,value:"auto",default:c});let h=e=>("auto"===e.value?o.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0}}}}):(o.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!1}}}}),o.setQualityFor("video",e.value)),t.notice.show=`${u}: ${e.html}`,r.control&&t.controls.check(e),r.setting&&t.setting.check(e),e.html);r.control&&t.controls.update({name:"dash-quality",position:"right",html:f,style:{padding:"0 10px"},selector:p,onSelect:h}),r.setting&&t.setting.update({name:"dash-quality",tooltip:f,html:u,icon:l.default,width:200,selector:p,onSelect:h})}(t.dash),function(o){let n=o.getTracksFor("audio");if(!n||!n.length)return;let r=e.audio||{},i=r.auto||"Auto",l=r.title||"Audio",u=r.getName||(e=>e.lang||e.id),s=o.getCurrentTrackFor("audio")||n[0],c=s?u(s):i,f=d(n.map(e=>({html:u(e),value:e,default:s===e})),"html"),p=e=>(o.setCurrentTrack(e.value),t.notice.show=`${l}: ${e.html}`,r.control&&t.controls.check(e),r.setting&&t.setting.check(e),e.html);r.control&&t.controls.update({name:"dash-audio",position:"right",html:c,style:{padding:"0 10px"},selector:f,onSelect:p}),r.setting&&t.setting.update({name:"dash-audio",tooltip:c,html:l,icon:a.default,width:200,selector:f,onSelect:p})}(t.dash)}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginDashControl",update:r}}}"undefined"!=typeof window&&(window.artplayerPluginDashControl=s)},{"bundle-text:./quality.svg":"5iEAx","bundle-text:./audio.svg":"909Xy","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5iEAx":[function(e,t,o,n){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],"909Xy":[function(e,t,o,n){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],w4pLy:[function(e,t,o,n){o.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},o.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},o.exportAll=function(e,t){return Object.keys(e).forEach(function(o){"default"===o||"__esModule"===o||Object.prototype.hasOwnProperty.call(t,o)||Object.defLine truncated
!function(e,t,n,o,i,r,l,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof a[o]&&a[o],s=d.i||{},f=d.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!f[t]){if(!e[t]){if(i[t])return i[t];var r="function"==typeof a[o]&&a[o];if(!n&&r)return r(t,!0);if(d)return d(t,!0);if(c&&"string"==typeof t)return c(t);var l=Error("Cannot find module '"+t+"'");throw l.code="MODULE_NOT_FOUND",l}s.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},s.cache={};var u=f[t]=new p.Module(t);e[t][0].call(u.exports,s,u,u.exports,a)}return f[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=c,this.exports={}},p.modules=e,p.cache=f,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=s,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return a[o]}}),a[o]=p;for(var h=0;h<t.length;h++)p(t[h]);if(n){var g=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"58GV3":[function(e,t,n,o){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n),i.export(n,"default",()=>s);var r=e("bundle-text:./audio.svg"),l=i.interopDefault(r),u=e("bundle-text:./quality.svg"),a=i.interopDefault(u);function d(e,t){let n=new Map;return e.filter(e=>{let o=e[t];return void 0===o||!n.has(o)&&n.set(o,1)})}function s(e={}){return t=>{let{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function i(){o(t.dash.getVideoElement()===n,'Cannot find instance of DASH from "art.dash"'),function(n){let o=n.getBitrateInfoListFor("video");if(!o||!o.length)return;let i=e.quality||{},r=i.auto||"Auto",l=i.title||"Quality",u=i.getName||(e=>`${e.height}p`),s=n.getQualityFor("video"),f=n.getSettings().streaming.abr.autoSwitchBitrate.video,c=f?r:u(o[s]),p=d(o.map(e=>({html:u(e),value:e.qualityIndex,default:s===e.qualityIndex&&!f})),"html").sort((e,t)=>t.value-e.value);p.push({html:r,value:"auto",default:f});let h=e=>("auto"===e.value?n.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0}}}}):(n.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!1}}}}),n.setQualityFor("video",e.value)),t.notice.show=`${l}: ${e.html}`,i.control&&t.controls.check(e),i.setting&&t.setting.check(e),e.html);i.control&&t.controls.update({name:"dash-quality",position:"right",html:c,style:{padding:"0 10px"},selector:p,onSelect:h}),i.setting&&t.setting.update({name:"dash-quality",tooltip:c,html:l,icon:a.default,width:200,selector:p,onSelect:h})}(t.dash),function(n){let o=n.getTracksFor("audio");if(!o||!o.length)return;let i=e.audio||{},r=i.auto||"Auto",u=i.title||"Audio",a=i.getName||(e=>e.lang||e.id),s=n.getCurrentTrackFor("audio")||o[0],f=s?a(s):r,c=d(o.map(e=>({html:a(e),value:e,default:s===e})),"html"),p=e=>(n.setCurrentTrack(e.value),t.notice.show=`${u}: ${e.html}`,i.control&&t.controls.check(e),i.setting&&t.setting.check(e),e.html);i.control&&t.controls.update({name:"dash-audio",position:"right",html:f,style:{padding:"0 10px"},selector:c,onSelect:p}),i.setting&&t.setting.update({name:"dash-audio",tooltip:f,html:u,icon:l.default,width:200,selector:c,onSelect:p})}(t.dash)}return t.on("ready",i),t.on("restart",i),{name:"artplayerPluginDashControl",update:i}}}"undefined"!=typeof window&&(window.artplayerPluginDashControl=s)},{"bundle-text:./audio.svg":"jpinR","bundle-text:./quality.svg":"C2BZy","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],jpinR:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],C2BZy:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64Zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7ZM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],"5lQoW":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.definLine truncated
//# sourceMappingURL=artplayer-plugin-dash-control.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCcwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAdxB,IAAA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GAEA,SAAS,EAAO,CAAK,CAAE,CAAQ,EAC3B,IAAM,EAAO,IAAI,IACjB,OAAO,EAAM,MAAM,CAAC,AAAC,IACjB,IAAM,EAAM,CAAI,CAAC,EAAS,QAC1B,AAAY,KAAA,IAAR,GAGG,CAAC,EAAK,GAAG,CAAC,IAAQ,EAAK,GAAG,CAAC,EAAK,EAC3C,EACJ,CAEe,SAAS,EAA2B,EAAS,CAAC,CAAC,EAC1D,OAAO,AAAC,IA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","sources":["<anon>","src/index.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-26d48274f89c9ca8.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5b9ef104be305102.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -Line truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCcwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAdxB,IAAA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,6B,E,E,c,C,GAEA,SAAS,EAAO,CAAK,CAAE,CAAQ,EAC7B,IAAM,EAAO,IAAI,IACjB,OAAO,EAAM,MAAM,CAAC,AAAC,IACnB,IAAM,EAAM,CAAI,CAAC,EAAS,QAC1B,AAAY,KAAA,IAAR,GAGG,CAAC,EAAK,GAAG,CAAC,IAAQ,EAAK,GAAG,CAAC,EAAK,EACzC,EACF,CAEe,SAAS,EAA2B,EAAS,CAAC,CAAC,EAC5D,OAAO,AAAC,IA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","sources":["<anon>","packages/artplayer-plugin-dash-control/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-45c5e4a1957df1cf.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-4bcc1b66476ef162.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of reqLine truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,o,n,r,i,l,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof a[n]&&a[n],s=d.i||{},c=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,o){if(!c[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof a[n]&&a[n];if(!o&&i)return i(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var l=Error("Cannot find module '"+t+"'");throw l.code="MODULE_NOT_FOUND",l}s.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},s.cache={};var u=c[t]=new p.Module(t);e[t][0].call(u.exports,s,u,u.exports,a)}return c[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=f,this.exports={}},p.modules=e,p.cache=c,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=s,p.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(p,"root",{get:function(){return a[n]}}),a[n]=p;for(var h=0;h<t.length;h++)p(t[h]);if(o){var g=p(o);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({jz4E5:[function(e,t,o,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(o),r.export(o,"default",()=>s);var i=e("bundle-text:./quality.svg"),l=r.interopDefault(i),u=e("bundle-text:./audio.svg"),a=r.interopDefault(u);function d(e,t){let o=new Map;return e.filter(e=>{let n=e[t];return void 0===n||!o.has(n)&&o.set(n,1)})}function s(e={}){return t=>{let{$video:o}=t.template,{errorHandle:n}=t.constructor.utils;function r(){n(t.dash.getVideoElement()===o,'Cannot find instance of DASH from "art.dash"'),function(o){let n=o.getBitrateInfoListFor("video");if(!n||!n.length)return;let r=e.quality||{},i=r.auto||"Auto",u=r.title||"Quality",a=r.getName||(e=>`${e.height}p`),s=o.getQualityFor("video"),c=o.getSettings().streaming.abr.autoSwitchBitrate.video,f=c?i:a(n[s]),p=d(n.map(e=>({html:a(e),value:e.qualityIndex,default:s===e.qualityIndex&&!c})),"html").sort((e,t)=>t.value-e.value);p.push({html:i,value:"auto",default:c});let h=e=>("auto"===e.value?o.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0}}}}):(o.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!1}}}}),o.setQualityFor("video",e.value)),t.notice.show=`${u}: ${e.html}`,r.control&&t.controls.check(e),r.setting&&t.setting.check(e),e.html);r.control&&t.controls.update({name:"dash-quality",position:"right",html:f,style:{padding:"0 10px"},selector:p,onSelect:h}),r.setting&&t.setting.update({name:"dash-quality",tooltip:f,html:u,icon:l.default,width:200,selector:p,onSelect:h})}(t.dash),function(o){let n=o.getTracksFor("audio");if(!n||!n.length)return;let r=e.audio||{},i=r.auto||"Auto",l=r.title||"Audio",u=r.getName||(e=>e.lang||e.id),s=o.getCurrentTrackFor("audio")||n[0],c=s?u(s):i,f=d(n.map(e=>({html:u(e),value:e,default:s===e})),"html"),p=e=>(o.setCurrentTrack(e.value),t.notice.show=`${l}: ${e.html}`,r.control&&t.controls.check(e),r.setting&&t.setting.check(e),e.html);r.control&&t.controls.update({name:"dash-audio",position:"right",html:c,style:{padding:"0 10px"},selector:f,onSelect:p}),r.setting&&t.setting.update({name:"dash-audio",tooltip:c,html:l,icon:a.default,width:200,selector:f,onSelect:p})}(t.dash)}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginDashControl",update:r}}}"undefined"!=typeof window&&(window.artplayerPluginDashControl=s)},{"bundle-text:./quality.svg":"l1ZNL","bundle-text:./audio.svg":"icbOY","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],l1ZNL:[function(e,t,o,n){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],icbOY:[function(e,t,o,n){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],"7o2zS":[function(e,t,o,n){o.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},o.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},o.exportAll=function(e,t){return Object.keys(e).forEach(function(o){"default"===o||"__esModule"===o||Object.prototype.hasOwnProperty.call(t,o)||Object.definePLine truncated
!function(e,t,n,o,i,r,u,l){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof a[o]&&a[o],s=d.i||{},f=d.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!f[t]){if(!e[t]){if(i[t])return i[t];var r="function"==typeof a[o]&&a[o];if(!n&&r)return r(t,!0);if(d)return d(t,!0);if(c&&"string"==typeof t)return c(t);var u=Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}s.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},s.cache={};var l=f[t]=new p.Module(t);e[t][0].call(l.exports,s,l,l.exports,a)}return f[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=c,this.exports={}},p.modules=e,p.cache=f,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=s,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return a[o]}}),a[o]=p;for(var h=0;h<t.length;h++)p(t[h]);if(n){var g=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({fpgdj:[function(e,t,n,o){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n),i.export(n,"default",()=>s);var r=e("bundle-text:./audio.svg"),u=i.interopDefault(r),l=e("bundle-text:./quality.svg"),a=i.interopDefault(l);function d(e,t){let n=new Map;return e.filter(e=>{let o=e[t];return void 0===o||!n.has(o)&&n.set(o,1)})}function s(e={}){return t=>{let{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function i(){o(t.dash.getVideoElement()===n,'Cannot find instance of DASH from "art.dash"'),function(n){let o=n.getBitrateInfoListFor("video");if(!o||!o.length)return;let i=e.quality||{},r=i.auto||"Auto",u=i.title||"Quality",l=i.getName||(e=>`${e.height}p`),s=n.getQualityFor("video"),f=n.getSettings().streaming.abr.autoSwitchBitrate.video,c=f?r:l(o[s]),p=d(o.map(e=>({html:l(e),value:e.qualityIndex,default:s===e.qualityIndex&&!f})),"html").sort((e,t)=>t.value-e.value);p.push({html:r,value:"auto",default:f});let h=e=>("auto"===e.value?n.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0}}}}):(n.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!1}}}}),n.setQualityFor("video",e.value)),t.notice.show=`${u}: ${e.html}`,i.control&&t.controls.check(e),i.setting&&t.setting.check(e),e.html);i.control&&t.controls.update({name:"dash-quality",position:"right",html:c,style:{padding:"0 10px"},selector:p,onSelect:h}),i.setting&&t.setting.update({name:"dash-quality",tooltip:c,html:u,icon:a.default,width:200,selector:p,onSelect:h})}(t.dash),function(n){let o=n.getTracksFor("audio");if(!o||!o.length)return;let i=e.audio||{},r=i.auto||"Auto",l=i.title||"Audio",a=i.getName||(e=>e.lang||e.id),s=n.getCurrentTrackFor("audio")||o[0],f=s?a(s):r,c=d(o.map(e=>({html:a(e),value:e,default:s===e})),"html"),p=e=>(n.setCurrentTrack(e.value),t.notice.show=`${l}: ${e.html}`,i.control&&t.controls.check(e),i.setting&&t.setting.check(e),e.html);i.control&&t.controls.update({name:"dash-audio",position:"right",html:f,style:{padding:"0 10px"},selector:c,onSelect:p}),i.setting&&t.setting.update({name:"dash-audio",tooltip:f,html:l,icon:u.default,width:200,selector:c,onSelect:p})}(t.dash)}return t.on("ready",i),t.on("restart",i),{name:"artplayerPluginDashControl",update:i}}}"undefined"!=typeof window&&(window.artplayerPluginDashControl=s)},{"bundle-text:./audio.svg":"1dVMq","bundle-text:./quality.svg":"hfm0m","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1dVMq":[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],hfm0m:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64Zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7ZM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],"6ykb1":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.definLine truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,o,r,i,u,a){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[o]&&l[o],d=c.i||{},f=c.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!f[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof l[o]&&l[o];if(!n&&i)return i(t,!0);if(c)return c(t,!0);if(s&&"string"==typeof t)return s(t);var u=Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},d.cache={};var a=f[t]=new p.Module(t);e[t][0].call(a.exports,d,a,a.exports,l)}return f[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=f,p.parent=c,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return l[o]}}),l[o]=p;for(var h=0;h<t.length;h++)p(t[h]);if(n){var g=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({bzF6W:[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n),r.export(n,"default",function(){return d});var i=e("bundle-text:./quality.svg"),u=r.interopDefault(i),a=e("bundle-text:./audio.svg"),l=r.interopDefault(a);function c(e,t){var n=new Map;return e.filter(function(e){var o=e[t];return void 0===o||!n.has(o)&&n.set(o,1)})}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=t.template.$video,o=t.constructor.utils.errorHandle;function r(){o(t.dash.getVideoElement()===n,'Cannot find instance of DASH from "art.dash"'),function(n){var o=n.getBitrateInfoListFor("video");if(o&&o.length){var r=e.quality||{},i=r.auto||"Auto",a=r.title||"Quality",l=r.getName||function(e){return"".concat(e.height,"p")},d=n.getQualityFor("video"),f=n.getSettings().streaming.abr.autoSwitchBitrate.video,s=f?i:l(o[d]),p=c(o.map(function(e){return{html:l(e),value:e.qualityIndex,default:d===e.qualityIndex&&!f}}),"html").sort(function(e,t){return t.value-e.value});p.push({html:i,value:"auto",default:f});var h=function(e){return"auto"===e.value?n.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0}}}}):(n.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!1}}}}),n.setQualityFor("video",e.value)),t.notice.show="".concat(a,": ").concat(e.html),r.control&&t.controls.check(e),r.setting&&t.setting.check(e),e.html};r.control&&t.controls.update({name:"dash-quality",position:"right",html:s,style:{padding:"0 10px"},selector:p,onSelect:h}),r.setting&&t.setting.update({name:"dash-quality",tooltip:s,html:a,icon:u.default,width:200,selector:p,onSelect:h})}}(t.dash),function(n){var o=n.getTracksFor("audio");if(o&&o.length){var r=e.audio||{},i=r.auto||"Auto",u=r.title||"Audio",a=r.getName||function(e){return e.lang||e.id},d=n.getCurrentTrackFor("audio")||o[0],f=d?a(d):i,s=c(o.map(function(e){return{html:a(e),value:e,default:d===e}}),"html"),p=function(e){return n.setCurrentTrack(e.value),t.notice.show="".concat(u,": ").concat(e.html),r.control&&t.controls.check(e),r.setting&&t.setting.check(e),e.html};r.control&&t.controls.update({name:"dash-audio",position:"right",html:f,style:{padding:"0 10px"},selector:s,onSelect:p}),r.setting&&t.setting.update({name:"dash-audio",tooltip:f,html:u,icon:l.default,width:200,selector:s,onSelect:p})}}(t.dash)}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginDashControl",update:r}}}"undefined"!=typeof window&&(window.artplayerPluginDashControl=d)},{"bundle-text:./quality.svg":"emaAn","bundle-text:./audio.svg":"5cT3J","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],emaAn:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],"5cT3J":[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],ihnSZ:[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=functiLine truncated
!function(t,e,n,o,r,i,u,a){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[o]&&l[o],d=c.i||{},f=c.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(e,n){if(!f[e]){if(!t[e]){if(r[e])return r[e];var i="function"==typeof l[o]&&l[o];if(!n&&i)return i(e,!0);if(c)return c(e,!0);if(s&&"string"==typeof e)return s(e);var u=Error("Cannot find module '"+e+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(n){var o=t[e][1][n];return null!=o?o:n},d.cache={};var a=f[e]=new p.Module(e);t[e][0].call(a.exports,d,a,a.exports,l)}return f[e].exports;function d(t){var e=d.resolve(t);return!1===e?{}:p(e)}}p.isParcelRequire=!0,p.Module=function(t){this.id=t,this.bundle=p,this.require=s,this.exports={}},p.modules=t,p.cache=f,p.parent=c,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(e,n){t[e]=[function(t,e){e.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return l[o]}}),l[o]=p;for(var h=0;h<e.length;h++)p(e[h]);if(n){var g=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({SomuF:[function(t,e,n,o){var r=t("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n),r.export(n,"default",function(){return d});var i=t("bundle-text:./audio.svg"),u=r.interopDefault(i),a=t("bundle-text:./quality.svg"),l=r.interopDefault(a);function c(t,e){var n=new Map;return t.filter(function(t){var o=t[e];return void 0===o||!n.has(o)&&n.set(o,1)})}function d(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(e){var n=e.template.$video,o=e.constructor.utils.errorHandle;function r(){o(e.dash.getVideoElement()===n,'Cannot find instance of DASH from "art.dash"'),function(n){var o=n.getBitrateInfoListFor("video");if(o&&o.length){var r=t.quality||{},i=r.auto||"Auto",u=r.title||"Quality",a=r.getName||function(t){return"".concat(t.height,"p")},d=n.getQualityFor("video"),f=n.getSettings().streaming.abr.autoSwitchBitrate.video,s=f?i:a(o[d]),p=c(o.map(function(t){return{html:a(t),value:t.qualityIndex,default:d===t.qualityIndex&&!f}}),"html").sort(function(t,e){return e.value-t.value});p.push({html:i,value:"auto",default:f});var h=function(t){return"auto"===t.value?n.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0}}}}):(n.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!1}}}}),n.setQualityFor("video",t.value)),e.notice.show="".concat(u,": ").concat(t.html),r.control&&e.controls.check(t),r.setting&&e.setting.check(t),t.html};r.control&&e.controls.update({name:"dash-quality",position:"right",html:s,style:{padding:"0 10px"},selector:p,onSelect:h}),r.setting&&e.setting.update({name:"dash-quality",tooltip:s,html:u,icon:l.default,width:200,selector:p,onSelect:h})}}(e.dash),function(n){var o=n.getTracksFor("audio");if(o&&o.length){var r=t.audio||{},i=r.auto||"Auto",a=r.title||"Audio",l=r.getName||function(t){return t.lang||t.id},d=n.getCurrentTrackFor("audio")||o[0],f=d?l(d):i,s=c(o.map(function(t){return{html:l(t),value:t,default:d===t}}),"html"),p=function(t){return n.setCurrentTrack(t.value),e.notice.show="".concat(a,": ").concat(t.html),r.control&&e.controls.check(t),r.setting&&e.setting.check(t),t.html};r.control&&e.controls.update({name:"dash-audio",position:"right",html:f,style:{padding:"0 10px"},selector:s,onSelect:p}),r.setting&&e.setting.update({name:"dash-audio",tooltip:f,html:a,icon:u.default,width:200,selector:s,onSelect:p})}}(e.dash)}return e.on("ready",r),e.on("restart",r),{name:"artplayerPluginDashControl",update:r}}}"undefined"!=typeof window&&(window.artplayerPluginDashControl=d)},{"bundle-text:./audio.svg":"lUA8D","bundle-text:./quality.svg":"gqRgl","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],lUA8D:[function(t,e,n,o){e.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],gqRgl:[function(t,e,n,o){e.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64Zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7ZM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],qpMMf:[function(t,e,n,o){n.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},n.defineInteropFlag=functionLine truncated
@@ -1,30 +1,30 @@
{
"license": "MIT",
"version": "1.0.0",
"name": "artplayer-plugin-dash-control",
"description": "Dash control plugin for ArtPlayer",
"main": "dist/artplayer-plugin-dash-control.js",
"legacy": "dist/artplayer-plugin-dash-control.legacy.js",
"module": "dist/artplayer-plugin-dash-control.esm.js",
"types": "types/artplayer-plugin-dash-control.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-dash-control.esm.js",
"require": "./dist/artplayer-plugin-dash-control.js",
"default": "./dist/artplayer-plugin-dash-control.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
"name": "artplayer-plugin-dash-control",
"version": "1.0.0",
"description": "Dash control plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-dash-control.esm.js",
"require": "./dist/artplayer-plugin-dash-control.js",
"default": "./dist/artplayer-plugin-dash-control.js"
},
"main": "dist/artplayer-plugin-dash-control.js",
"legacy": "dist/artplayer-plugin-dash-control.legacy.js",
"module": "dist/artplayer-plugin-dash-control.esm.js",
"types": "types/artplayer-plugin-dash-control.d.ts",
"browserslist": "last 1 Chrome version"
}
@@ -1,174 +1,181 @@
import $quality from 'bundle-text:./quality.svg';
import $audio from 'bundle-text:./audio.svg';
import $audio from 'bundle-text:./audio.svg'
import $quality from 'bundle-text:./quality.svg'
function uniqBy(array, property) {
const seen = new Map();
return array.filter((item) => {
const key = item[property];
if (key === undefined) {
return true;
}
return !seen.has(key) && seen.set(key, 1);
});
const seen = new Map()
return array.filter((item) => {
const key = item[property]
if (key === undefined) {
return true
}
return !seen.has(key) && seen.set(key, 1)
})
}
export default function artplayerPluginDashControl(option = {}) {
return (art) => {
const { $video } = art.template;
const { errorHandle } = art.constructor.utils;
return (art) => {
const { $video } = art.template
const { errorHandle } = art.constructor.utils
function updateQuality(dash) {
const qualities = dash.getBitrateInfoListFor('video');
if (!qualities || !qualities.length) return;
function updateQuality(dash) {
const qualities = dash.getBitrateInfoListFor('video')
if (!qualities || !qualities.length)
return
const config = option.quality || {};
const auto = config.auto || 'Auto';
const title = config.title || 'Quality';
const getName = config.getName || ((level) => `${level.height}p`);
const currentQuality = dash.getQualityFor('video');
const currentAuto = dash.getSettings().streaming.abr.autoSwitchBitrate['video'];
const defaultHtml = currentAuto ? auto : getName(qualities[currentQuality]);
const config = option.quality || {}
const auto = config.auto || 'Auto'
const title = config.title || 'Quality'
const getName = config.getName || (level => `${level.height}p`)
const currentQuality = dash.getQualityFor('video')
const currentAuto = dash.getSettings().streaming.abr.autoSwitchBitrate.video
const defaultHtml = currentAuto ? auto : getName(qualities[currentQuality])
const selector = uniqBy(
qualities.map((item) => {
return {
html: getName(item),
value: item.qualityIndex,
default: currentQuality === item.qualityIndex && !currentAuto,
};
}),
'html',
).sort((a, b) => b.value - a.value);
const selector = uniqBy(
qualities.map((item) => {
return {
html: getName(item),
value: item.qualityIndex,
default: currentQuality === item.qualityIndex && !currentAuto,
}
}),
'html',
).sort((a, b) => b.value - a.value)
selector.push({
html: auto,
value: 'auto',
default: currentAuto,
});
selector.push({
html: auto,
value: 'auto',
default: currentAuto,
})
const onSelect = (item) => {
if (item.value === 'auto') {
dash.updateSettings({
streaming: {
abr: {
autoSwitchBitrate: {
video: true,
},
},
},
});
} else {
dash.updateSettings({
streaming: {
abr: {
autoSwitchBitrate: {
video: false,
},
},
},
});
dash.setQualityFor('video', item.value);
}
art.notice.show = `${title}: ${item.html}`;
if (config.control) art.controls.check(item);
if (config.setting) art.setting.check(item);
return item.html;
};
if (config.control) {
art.controls.update({
name: 'dash-quality',
position: 'right',
html: defaultHtml,
style: { padding: '0 10px' },
selector: selector,
onSelect: onSelect,
});
}
if (config.setting) {
art.setting.update({
name: 'dash-quality',
tooltip: defaultHtml,
html: title,
icon: $quality,
width: 200,
selector: selector,
onSelect: onSelect,
});
}
const onSelect = (item) => {
if (item.value === 'auto') {
dash.updateSettings({
streaming: {
abr: {
autoSwitchBitrate: {
video: true,
},
},
},
})
}
function updateAudio(dash) {
const audioTracks = dash.getTracksFor('audio');
if (!audioTracks || !audioTracks.length) return;
const config = option.audio || {};
const auto = config.auto || 'Auto';
const title = config.title || 'Audio';
const getName = config.getName || ((track) => track.lang || track.id);
const currentTrack = dash.getCurrentTrackFor('audio') || audioTracks[0];
const defaultHtml = currentTrack ? getName(currentTrack) : auto;
const selector = uniqBy(
audioTracks.map((item) => {
return {
html: getName(item),
value: item,
default: currentTrack === item,
};
}),
'html',
);
const onSelect = (item) => {
dash.setCurrentTrack(item.value);
art.notice.show = `${title}: ${item.html}`;
if (config.control) art.controls.check(item);
if (config.setting) art.setting.check(item);
return item.html;
};
if (config.control) {
art.controls.update({
name: 'dash-audio',
position: 'right',
html: defaultHtml,
style: { padding: '0 10px' },
selector: selector,
onSelect: onSelect,
});
}
if (config.setting) {
art.setting.update({
name: 'dash-audio',
tooltip: defaultHtml,
html: title,
icon: $audio,
width: 200,
selector: selector,
onSelect: onSelect,
});
}
else {
dash.updateSettings({
streaming: {
abr: {
autoSwitchBitrate: {
video: false,
},
},
},
})
dash.setQualityFor('video', item.value)
}
art.notice.show = `${title}: ${item.html}`
if (config.control)
art.controls.check(item)
if (config.setting)
art.setting.check(item)
return item.html
}
function update() {
errorHandle(art.dash.getVideoElement() === $video, 'Cannot find instance of DASH from "art.dash"');
updateQuality(art.dash);
updateAudio(art.dash);
}
if (config.control) {
art.controls.update({
name: 'dash-quality',
position: 'right',
html: defaultHtml,
style: { padding: '0 10px' },
selector,
onSelect,
})
}
art.on('ready', update);
art.on('restart', update);
if (config.setting) {
art.setting.update({
name: 'dash-quality',
tooltip: defaultHtml,
html: title,
icon: $quality,
width: 200,
selector,
onSelect,
})
}
}
return {
name: 'artplayerPluginDashControl',
update,
};
};
function updateAudio(dash) {
const audioTracks = dash.getTracksFor('audio')
if (!audioTracks || !audioTracks.length)
return
const config = option.audio || {}
const auto = config.auto || 'Auto'
const title = config.title || 'Audio'
const getName = config.getName || (track => track.lang || track.id)
const currentTrack = dash.getCurrentTrackFor('audio') || audioTracks[0]
const defaultHtml = currentTrack ? getName(currentTrack) : auto
const selector = uniqBy(
audioTracks.map((item) => {
return {
html: getName(item),
value: item,
default: currentTrack === item,
}
}),
'html',
)
const onSelect = (item) => {
dash.setCurrentTrack(item.value)
art.notice.show = `${title}: ${item.html}`
if (config.control)
art.controls.check(item)
if (config.setting)
art.setting.check(item)
return item.html
}
if (config.control) {
art.controls.update({
name: 'dash-audio',
position: 'right',
html: defaultHtml,
style: { padding: '0 10px' },
selector,
onSelect,
})
}
if (config.setting) {
art.setting.update({
name: 'dash-audio',
tooltip: defaultHtml,
html: title,
icon: $audio,
width: 200,
selector,
onSelect,
})
}
}
function update() {
errorHandle(art.dash.getVideoElement() === $video, 'Cannot find instance of DASH from "art.dash"')
updateQuality(art.dash)
updateAudio(art.dash)
}
art.on('ready', update)
art.on('restart', update)
return {
name: 'artplayerPluginDashControl',
update,
}
}
}
if (typeof window !== 'undefined') {
window['artplayerPluginDashControl'] = artplayerPluginDashControl;
window.artplayerPluginDashControl = artplayerPluginDashControl
}
@@ -1,17 +1,17 @@
import type Artplayer from 'artplayer';
import type Artplayer from 'artplayer'
export = artplayerPluginDashControl;
export = artplayerPluginDashControl
export as namespace artplayerPluginDashControl;
type Config = {
control?: boolean;
setting?: boolean;
title?: string;
auto?: string;
getName?(level: object): String;
};
interface Config {
control?: boolean
setting?: boolean
title?: string
auto?: string
getName?: (level: object) => string
}
declare const artplayerPluginDashControl: (option: { quality?: Config; audio?: Config }) => (art: Artplayer) => {
name: 'artplayerPluginDashControl';
update: () => void;
};
declare const artplayerPluginDashControl: (option: { quality?: Config, audio?: Config }) => (art: Artplayer) => {
name: 'artplayerPluginDashControl'
update: () => void
}
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,o,r,l,i,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof a[o]&&a[o],s=c.i||{},f=c.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!f[t]){if(!e[t]){if(r[t])return r[t];var l="function"==typeof a[o]&&a[o];if(!n&&l)return l(t,!0);if(c)return c(t,!0);if(d&&"string"==typeof t)return d(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},s.cache={};var u=f[t]=new p.Module(t);e[t][0].call(u.exports,s,u,u.exports,a)}return f[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=d,this.exports={}},p.modules=e,p.cache=f,p.parent=c,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=s,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return a[o]}}),a[o]=p;for(var h=0;h<t.length;h++)p(t[h]);if(n){var m=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"4omrA":[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n),r.export(n,"default",()=>s);var l=e("bundle-text:./quality.svg"),i=r.interopDefault(l),u=e("bundle-text:./audio.svg"),a=r.interopDefault(u);function c(e,t){let n=new Map;return e.filter(e=>{let o=e[t];return void 0===o||!n.has(o)&&n.set(o,1)})}function s(e={}){return t=>{let{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function r(){o(t.hls?.media===n,'Cannot find instance of HLS from "art.hls"'),function(n){if(!n.levels.length)return;let o=e.quality||{},r=o.auto||"Auto",l=o.title||"Quality",u=o.getName||(e=>e.name||e.height+"P"),a=n.levels[n.currentLevel],s=a?u(a):r,f=c(n.levels.map((e,t)=>({html:u(e,t),value:t,default:n.currentLevel===t})),"html").sort((e,t)=>t.value-e.value);f.push({html:r,value:-1,default:-1===n.currentLevel});let d=e=>(n.currentLevel=e.value,t.notice.show=`${l}: ${e.html}`,o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html);o.control&&t.controls.update({name:"hls-quality",position:"right",html:s,style:{padding:"0 10px"},selector:f,onSelect:d}),o.setting&&t.setting.update({name:"hls-quality",tooltip:s,html:l,icon:i.default,width:200,selector:f,onSelect:d})}(t.hls),function(n){if(!n.audioTracks.length)return;let o=e.audio||{},r=o.auto||"Auto",l=o.title||"Audio",i=o.getName||(e=>e.name||e.lang||e.language),u=n.audioTracks[n.audioTrack],s=u?i(u):r,f=c(n.audioTracks.map((e,t)=>({html:i(e,t),value:e.id,default:n.audioTrack===e.id})),"html"),d=e=>(n.audioTrack=e.value,t.notice.show=`${l}: ${e.html}`,o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html);o.control&&t.controls.update({name:"hls-audio",position:"right",html:s,style:{padding:"0 10px"},selector:f,onSelect:d}),o.setting&&t.setting.update({name:"hls-audio",tooltip:s,html:l,icon:a.default,width:200,selector:f,onSelect:d})}(t.hls)}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginHlsControl",update:r}}}"undefined"!=typeof window&&(window.artplayerPluginHlsControl=s)},{"bundle-text:./quality.svg":"5iEAx","bundle-text:./audio.svg":"909Xy","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5iEAx":[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],"909Xy":[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],w4pLy:[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["4omrA"],"4omrA","parcelRequire8255",{});let{default:e}=parcelRequire8255("4omrA");export{e as default}Line truncated
!function(e,t,n,o,r,l,i,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof a[o]&&a[o],s=d.i||{},f=d.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!f[t]){if(!e[t]){if(r[t])return r[t];var l="function"==typeof a[o]&&a[o];if(!n&&l)return l(t,!0);if(d)return d(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},s.cache={};var u=f[t]=new p.Module(t);e[t][0].call(u.exports,s,u,u.exports,a)}return f[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=c,this.exports={}},p.modules=e,p.cache=f,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=s,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return a[o]}}),a[o]=p;for(var h=0;h<t.length;h++)p(t[h]);if(n){var g=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({f9bsd:[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n),r.export(n,"default",()=>s);var l=e("bundle-text:./audio.svg"),i=r.interopDefault(l),u=e("bundle-text:./quality.svg"),a=r.interopDefault(u);function d(e,t){let n=new Map;return e.filter(e=>{let o=e[t];return void 0===o||!n.has(o)&&n.set(o,1)})}function s(e={}){return t=>{let{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function r(){o(t.hls?.media===n,'Cannot find instance of HLS from "art.hls"'),function(n){if(!n.levels.length)return;let o=e.quality||{},r=o.auto||"Auto",l=o.title||"Quality",i=o.getName||(e=>e.name||`${e.height}P`),u=n.levels[n.currentLevel],s=u?i(u):r,f=d(n.levels.map((e,t)=>({html:i(e,t),value:t,default:n.currentLevel===t})),"html").sort((e,t)=>t.value-e.value);f.push({html:r,value:-1,default:-1===n.currentLevel});let c=e=>(n.currentLevel=e.value,t.notice.show=`${l}: ${e.html}`,o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html);o.control&&t.controls.update({name:"hls-quality",position:"right",html:s,style:{padding:"0 10px"},selector:f,onSelect:c}),o.setting&&t.setting.update({name:"hls-quality",tooltip:s,html:l,icon:a.default,width:200,selector:f,onSelect:c})}(t.hls),function(n){if(!n.audioTracks.length)return;let o=e.audio||{},r=o.auto||"Auto",l=o.title||"Audio",u=o.getName||(e=>e.name||e.lang||e.language),a=n.audioTracks[n.audioTrack],s=a?u(a):r,f=d(n.audioTracks.map((e,t)=>({html:u(e,t),value:e.id,default:n.audioTrack===e.id})),"html"),c=e=>(n.audioTrack=e.value,t.notice.show=`${l}: ${e.html}`,o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html);o.control&&t.controls.update({name:"hls-audio",position:"right",html:s,style:{padding:"0 10px"},selector:f,onSelect:c}),o.setting&&t.setting.update({name:"hls-audio",tooltip:s,html:l,icon:i.default,width:200,selector:f,onSelect:c})}(t.hls)}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginHlsControl",update:r}}}"undefined"!=typeof window&&(window.artplayerPluginHlsControl=s)},{"bundle-text:./audio.svg":"igHyj","bundle-text:./quality.svg":"jhLre","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],igHyj:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],jhLre:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64Zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7ZM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],"5lQoW":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["f9bsd"],"f9bsd","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("f9bsd");export{e as default};
//# sourceMappingURL=artplayer-plugin-hls-control.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCcwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAdxB,IAAA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GAEA,SAAS,EAAO,CAAK,CAAE,CAAQ,EAC3B,IAAM,EAAO,IAAI,IACjB,OAAO,EAAM,MAAM,CAAC,AAAC,IACjB,IAAM,EAAM,CAAI,CAAC,EAAS,QAC1B,AAAY,KAAA,IAAR,GAGG,CAAC,EAAK,GAAG,CAAC,IAAQ,EAAK,GAAG,CAAC,EAAK,EAC3C,EACJ,CAEe,SAAS,EAA0B,EAAS,CAAC,CAAC,EACzD,OAAO,AAAC,IA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","sources":["<anon>","src/index.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-26d48274f89c9ca8.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5b9ef104be305102.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devSLine truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCcwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAdxB,IAAA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,6B,E,E,c,C,GAEA,SAAS,EAAO,CAAK,CAAE,CAAQ,EAC7B,IAAM,EAAO,IAAI,IACjB,OAAO,EAAM,MAAM,CAAC,AAAC,IACnB,IAAM,EAAM,CAAI,CAAC,EAAS,QAC1B,AAAY,KAAA,IAAR,GAGG,CAAC,EAAK,GAAG,CAAC,IAAQ,EAAK,GAAG,CAAC,EAAK,EACzC,EACF,CAEe,SAAS,EAA0B,EAAS,CAAC,CAAC,EAC3D,OAAO,AAAC,IA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","sources":["<anon>","packages/artplayer-plugin-hls-control/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-f074e76d4300b8ac.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-cd7c8aead227e587.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\Line truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,o,l,r,i,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof a[o]&&a[o],s=c.i||{},f=c.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!f[t]){if(!e[t]){if(l[t])return l[t];var r="function"==typeof a[o]&&a[o];if(!n&&r)return r(t,!0);if(c)return c(t,!0);if(d&&"string"==typeof t)return d(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},s.cache={};var u=f[t]=new p.Module(t);e[t][0].call(u.exports,s,u,u.exports,a)}return f[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=d,this.exports={}},p.modules=e,p.cache=f,p.parent=c,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=s,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return a[o]}}),a[o]=p;for(var h=0;h<t.length;h++)p(t[h]);if(n){var g=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({jz4E5:[function(e,t,n,o){var l=e("@parcel/transformer-js/src/esmodule-helpers.js");l.defineInteropFlag(n),l.export(n,"default",()=>s);var r=e("bundle-text:./quality.svg"),i=l.interopDefault(r),u=e("bundle-text:./audio.svg"),a=l.interopDefault(u);function c(e,t){let n=new Map;return e.filter(e=>{let o=e[t];return void 0===o||!n.has(o)&&n.set(o,1)})}function s(e={}){return t=>{let{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function l(){o(t.hls?.media===n,'Cannot find instance of HLS from "art.hls"'),function(n){if(!n.levels.length)return;let o=e.quality||{},l=o.auto||"Auto",r=o.title||"Quality",u=o.getName||(e=>e.name||e.height+"P"),a=n.levels[n.currentLevel],s=a?u(a):l,f=c(n.levels.map((e,t)=>({html:u(e,t),value:t,default:n.currentLevel===t})),"html").sort((e,t)=>t.value-e.value);f.push({html:l,value:-1,default:-1===n.currentLevel});let d=e=>(n.currentLevel=e.value,t.notice.show=`${r}: ${e.html}`,o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html);o.control&&t.controls.update({name:"hls-quality",position:"right",html:s,style:{padding:"0 10px"},selector:f,onSelect:d}),o.setting&&t.setting.update({name:"hls-quality",tooltip:s,html:r,icon:i.default,width:200,selector:f,onSelect:d})}(t.hls),function(n){if(!n.audioTracks.length)return;let o=e.audio||{},l=o.auto||"Auto",r=o.title||"Audio",i=o.getName||(e=>e.name||e.lang||e.language),u=n.audioTracks[n.audioTrack],s=u?i(u):l,f=c(n.audioTracks.map((e,t)=>({html:i(e,t),value:e.id,default:n.audioTrack===e.id})),"html"),d=e=>(n.audioTrack=e.value,t.notice.show=`${r}: ${e.html}`,o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html);o.control&&t.controls.update({name:"hls-audio",position:"right",html:s,style:{padding:"0 10px"},selector:f,onSelect:d}),o.setting&&t.setting.update({name:"hls-audio",tooltip:s,html:r,icon:a.default,width:200,selector:f,onSelect:d})}(t.hls)}return t.on("ready",l),t.on("restart",l),{name:"artplayerPluginHlsControl",update:l}}}"undefined"!=typeof window&&(window.artplayerPluginHlsControl=s)},{"bundle-text:./quality.svg":"l1ZNL","bundle-text:./audio.svg":"icbOY","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],l1ZNL:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],icbOY:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],"7o2zS":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["jz4E5"],"jz4E5","parcelRequire8255",{});
!function(e,t,n,o,r,l,i,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof a[o]&&a[o],d=s.i||{},c=s.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var l="function"==typeof a[o]&&a[o];if(!n&&l)return l(t,!0);if(s)return s(t,!0);if(f&&"string"==typeof t)return f(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}d.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},d.cache={};var u=c[t]=new p.Module(t);e[t][0].call(u.exports,d,u,u.exports,a)}return c[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=f,this.exports={}},p.modules=e,p.cache=c,p.parent=s,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return a[o]}}),a[o]=p;for(var h=0;h<t.length;h++)p(t[h]);if(n){var g=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({dHVos:[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n),r.export(n,"default",()=>d);var l=e("bundle-text:./audio.svg"),i=r.interopDefault(l),u=e("bundle-text:./quality.svg"),a=r.interopDefault(u);function s(e,t){let n=new Map;return e.filter(e=>{let o=e[t];return void 0===o||!n.has(o)&&n.set(o,1)})}function d(e={}){return t=>{let{$video:n}=t.template,{errorHandle:o}=t.constructor.utils;function r(){o(t.hls?.media===n,'Cannot find instance of HLS from "art.hls"'),function(n){if(!n.levels.length)return;let o=e.quality||{},r=o.auto||"Auto",l=o.title||"Quality",i=o.getName||(e=>e.name||`${e.height}P`),u=n.levels[n.currentLevel],d=u?i(u):r,c=s(n.levels.map((e,t)=>({html:i(e,t),value:t,default:n.currentLevel===t})),"html").sort((e,t)=>t.value-e.value);c.push({html:r,value:-1,default:-1===n.currentLevel});let f=e=>(n.currentLevel=e.value,t.notice.show=`${l}: ${e.html}`,o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html);o.control&&t.controls.update({name:"hls-quality",position:"right",html:d,style:{padding:"0 10px"},selector:c,onSelect:f}),o.setting&&t.setting.update({name:"hls-quality",tooltip:d,html:l,icon:a.default,width:200,selector:c,onSelect:f})}(t.hls),function(n){if(!n.audioTracks.length)return;let o=e.audio||{},r=o.auto||"Auto",l=o.title||"Audio",u=o.getName||(e=>e.name||e.lang||e.language),a=n.audioTracks[n.audioTrack],d=a?u(a):r,c=s(n.audioTracks.map((e,t)=>({html:u(e,t),value:e.id,default:n.audioTrack===e.id})),"html"),f=e=>(n.audioTrack=e.value,t.notice.show=`${l}: ${e.html}`,o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html);o.control&&t.controls.update({name:"hls-audio",position:"right",html:d,style:{padding:"0 10px"},selector:c,onSelect:f}),o.setting&&t.setting.update({name:"hls-audio",tooltip:d,html:l,icon:i.default,width:200,selector:c,onSelect:f})}(t.hls)}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginHlsControl",update:r}}}"undefined"!=typeof window&&(window.artplayerPluginHlsControl=d)},{"bundle-text:./audio.svg":"kni09","bundle-text:./quality.svg":"jbawI","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kni09:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],jbawI:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64Zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7ZM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],"6ykb1":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["dHVos"],"dHVos","parcelRequire4dc0",{});
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,o,r,i,l,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof a[o]&&a[o],f=c.i||{},s=c.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!s[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof a[o]&&a[o];if(!n&&i)return i(t,!0);if(c)return c(t,!0);if(d&&"string"==typeof t)return d(t);var l=Error("Cannot find module '"+t+"'");throw l.code="MODULE_NOT_FOUND",l}f.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},f.cache={};var u=s[t]=new p.Module(t);e[t][0].call(u.exports,f,u,u.exports,a)}return s[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=d,this.exports={}},p.modules=e,p.cache=s,p.parent=c,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=f,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return a[o]}}),a[o]=p;for(var h=0;h<t.length;h++)p(t[h]);if(n){var v=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=v:"function"==typeof define&&define.amd&&define(function(){return v})}}({bzF6W:[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n),r.export(n,"default",function(){return f});var i=e("bundle-text:./quality.svg"),l=r.interopDefault(i),u=e("bundle-text:./audio.svg"),a=r.interopDefault(u);function c(e,t){var n=new Map;return e.filter(function(e){var o=e[t];return void 0===o||!n.has(o)&&n.set(o,1)})}function f(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=t.template.$video,o=t.constructor.utils.errorHandle;function r(){var r;o((null==(r=t.hls)?void 0:r.media)===n,'Cannot find instance of HLS from "art.hls"'),function(n){if(n.levels.length){var o=e.quality||{},r=o.auto||"Auto",i=o.title||"Quality",u=o.getName||function(e){return e.name||e.height+"P"},a=n.levels[n.currentLevel],f=a?u(a):r,s=c(n.levels.map(function(e,t){return{html:u(e,t),value:t,default:n.currentLevel===t}}),"html").sort(function(e,t){return t.value-e.value});s.push({html:r,value:-1,default:-1===n.currentLevel});var d=function(e){return n.currentLevel=e.value,t.notice.show="".concat(i,": ").concat(e.html),o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html};o.control&&t.controls.update({name:"hls-quality",position:"right",html:f,style:{padding:"0 10px"},selector:s,onSelect:d}),o.setting&&t.setting.update({name:"hls-quality",tooltip:f,html:i,icon:l.default,width:200,selector:s,onSelect:d})}}(t.hls),function(n){if(n.audioTracks.length){var o=e.audio||{},r=o.auto||"Auto",i=o.title||"Audio",l=o.getName||function(e){return e.name||e.lang||e.language},u=n.audioTracks[n.audioTrack],f=u?l(u):r,s=c(n.audioTracks.map(function(e,t){return{html:l(e,t),value:e.id,default:n.audioTrack===e.id}}),"html"),d=function(e){return n.audioTrack=e.value,t.notice.show="".concat(i,": ").concat(e.html),o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html};o.control&&t.controls.update({name:"hls-audio",position:"right",html:f,style:{padding:"0 10px"},selector:s,onSelect:d}),o.setting&&t.setting.update({name:"hls-audio",tooltip:f,html:i,icon:a.default,width:200,selector:s,onSelect:d})}}(t.hls)}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginHlsControl",update:r}}}"undefined"!=typeof window&&(window.artplayerPluginHlsControl=f)},{"bundle-text:./quality.svg":"emaAn","bundle-text:./audio.svg":"5cT3J","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],emaAn:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],"5cT3J":[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],ihnSZ:[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumeraLine truncated
!function(e,t,n,o,r,i,l,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof a[o]&&a[o],f=c.i||{},d=c.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!d[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof a[o]&&a[o];if(!n&&i)return i(t,!0);if(c)return c(t,!0);if(s&&"string"==typeof t)return s(t);var l=Error("Cannot find module '"+t+"'");throw l.code="MODULE_NOT_FOUND",l}f.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},f.cache={};var u=d[t]=new p.Module(t);e[t][0].call(u.exports,f,u,u.exports,a)}return d[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=d,p.parent=c,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=f,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return a[o]}}),a[o]=p;for(var h=0;h<t.length;h++)p(t[h]);if(n){var v=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=v:"function"==typeof define&&define.amd&&define(function(){return v})}}({do1Zn:[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n),r.export(n,"default",function(){return f});var i=e("bundle-text:./audio.svg"),l=r.interopDefault(i),u=e("bundle-text:./quality.svg"),a=r.interopDefault(u);function c(e,t){var n=new Map;return e.filter(function(e){var o=e[t];return void 0===o||!n.has(o)&&n.set(o,1)})}function f(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=t.template.$video,o=t.constructor.utils.errorHandle;function r(){var r;o((null==(r=t.hls)?void 0:r.media)===n,'Cannot find instance of HLS from "art.hls"'),function(n){if(n.levels.length){var o=e.quality||{},r=o.auto||"Auto",i=o.title||"Quality",l=o.getName||function(e){return e.name||"".concat(e.height,"P")},u=n.levels[n.currentLevel],f=u?l(u):r,d=c(n.levels.map(function(e,t){return{html:l(e,t),value:t,default:n.currentLevel===t}}),"html").sort(function(e,t){return t.value-e.value});d.push({html:r,value:-1,default:-1===n.currentLevel});var s=function(e){return n.currentLevel=e.value,t.notice.show="".concat(i,": ").concat(e.html),o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html};o.control&&t.controls.update({name:"hls-quality",position:"right",html:f,style:{padding:"0 10px"},selector:d,onSelect:s}),o.setting&&t.setting.update({name:"hls-quality",tooltip:f,html:i,icon:a.default,width:200,selector:d,onSelect:s})}}(t.hls),function(n){if(n.audioTracks.length){var o=e.audio||{},r=o.auto||"Auto",i=o.title||"Audio",u=o.getName||function(e){return e.name||e.lang||e.language},a=n.audioTracks[n.audioTrack],f=a?u(a):r,d=c(n.audioTracks.map(function(e,t){return{html:u(e,t),value:e.id,default:n.audioTrack===e.id}}),"html"),s=function(e){return n.audioTrack=e.value,t.notice.show="".concat(i,": ").concat(e.html),o.control&&t.controls.check(e),o.setting&&t.setting.check(e),e.html};o.control&&t.controls.update({name:"hls-audio",position:"right",html:f,style:{padding:"0 10px"},selector:d,onSelect:s}),o.setting&&t.setting.update({name:"hls-audio",tooltip:f,html:i,icon:l.default,width:200,selector:d,onSelect:s})}}(t.hls)}return t.on("ready",r),t.on("restart",r),{name:"artplayerPluginHlsControl",update:r}}}"undefined"!=typeof window&&(window.artplayerPluginHlsControl=f)},{"bundle-text:./audio.svg":"aaZcq","bundle-text:./quality.svg":"djiLC","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],aaZcq:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6 26.5 0 48 21.5 48 48v128c0 26.5-21.5 48-48 48-44.2 0-80-35.8-80-80V288C0 146.6 114.6 32 256 32s256 114.6 256 256v112c0 44.2-35.8 80-80 80-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48 10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80"/></svg>'},{}],djiLC:[function(e,t,n,o){t.exports='<svg xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 0 512 512"><path fill="#fff" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64Zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7ZM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96"/></svg>'},{}],qpMMf:[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,nLine truncated
@@ -1,30 +1,30 @@
{
"license": "MIT",
"version": "1.0.1",
"name": "artplayer-plugin-hls-control",
"description": "Hls control plugin for ArtPlayer",
"main": "dist/artplayer-plugin-hls-control.js",
"legacy": "dist/artplayer-plugin-hls-control.legacy.js",
"module": "dist/artplayer-plugin-hls-control.esm.js",
"types": "types/artplayer-plugin-hls-control.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-hls-control.esm.js",
"require": "./dist/artplayer-plugin-hls-control.js",
"default": "./dist/artplayer-plugin-hls-control.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
"name": "artplayer-plugin-hls-control",
"version": "1.0.1",
"description": "Hls control plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-hls-control.esm.js",
"require": "./dist/artplayer-plugin-hls-control.js",
"default": "./dist/artplayer-plugin-hls-control.js"
},
"main": "dist/artplayer-plugin-hls-control.js",
"legacy": "dist/artplayer-plugin-hls-control.legacy.js",
"module": "dist/artplayer-plugin-hls-control.esm.js",
"types": "types/artplayer-plugin-hls-control.d.ts",
"browserslist": "last 1 Chrome version"
}
+131 -125
View File
@@ -1,150 +1,156 @@
import $quality from 'bundle-text:./quality.svg';
import $audio from 'bundle-text:./audio.svg';
import $audio from 'bundle-text:./audio.svg'
import $quality from 'bundle-text:./quality.svg'
function uniqBy(array, property) {
const seen = new Map();
return array.filter((item) => {
const key = item[property];
if (key === undefined) {
return true;
}
return !seen.has(key) && seen.set(key, 1);
});
const seen = new Map()
return array.filter((item) => {
const key = item[property]
if (key === undefined) {
return true
}
return !seen.has(key) && seen.set(key, 1)
})
}
export default function artplayerPluginHlsControl(option = {}) {
return (art) => {
const { $video } = art.template;
const { errorHandle } = art.constructor.utils;
return (art) => {
const { $video } = art.template
const { errorHandle } = art.constructor.utils
function updateQuality(hls) {
if (!hls.levels.length) return;
function updateQuality(hls) {
if (!hls.levels.length)
return
const config = option.quality || {};
const auto = config.auto || 'Auto';
const title = config.title || 'Quality';
const getName = config.getName || ((level) => level.name || level.height + 'P');
const defaultLevel = hls.levels[hls.currentLevel];
const defaultHtml = defaultLevel ? getName(defaultLevel) : auto;
const config = option.quality || {}
const auto = config.auto || 'Auto'
const title = config.title || 'Quality'
const getName = config.getName || (level => level.name || `${level.height}P`)
const defaultLevel = hls.levels[hls.currentLevel]
const defaultHtml = defaultLevel ? getName(defaultLevel) : auto
const selector = uniqBy(
hls.levels.map((item, index) => {
return {
html: getName(item, index),
value: index,
default: hls.currentLevel === index,
};
}),
'html',
).sort((a, b) => b.value - a.value);
const selector = uniqBy(
hls.levels.map((item, index) => {
return {
html: getName(item, index),
value: index,
default: hls.currentLevel === index,
}
}),
'html',
).sort((a, b) => b.value - a.value)
selector.push({
html: auto,
value: -1,
default: hls.currentLevel === -1,
});
selector.push({
html: auto,
value: -1,
default: hls.currentLevel === -1,
})
const onSelect = (item) => {
hls.currentLevel = item.value;
art.notice.show = `${title}: ${item.html}`;
if (config.control) art.controls.check(item);
if (config.setting) art.setting.check(item);
return item.html;
};
const onSelect = (item) => {
hls.currentLevel = item.value
art.notice.show = `${title}: ${item.html}`
if (config.control)
art.controls.check(item)
if (config.setting)
art.setting.check(item)
return item.html
}
if (config.control) {
art.controls.update({
name: 'hls-quality',
position: 'right',
html: defaultHtml,
style: { padding: '0 10px' },
selector: selector,
onSelect: onSelect,
});
}
if (config.control) {
art.controls.update({
name: 'hls-quality',
position: 'right',
html: defaultHtml,
style: { padding: '0 10px' },
selector,
onSelect,
})
}
if (config.setting) {
art.setting.update({
name: 'hls-quality',
tooltip: defaultHtml,
html: title,
icon: $quality,
width: 200,
selector: selector,
onSelect: onSelect,
});
}
}
if (config.setting) {
art.setting.update({
name: 'hls-quality',
tooltip: defaultHtml,
html: title,
icon: $quality,
width: 200,
selector,
onSelect,
})
}
}
function updateAudio(hls) {
if (!hls.audioTracks.length) return;
function updateAudio(hls) {
if (!hls.audioTracks.length)
return
const config = option.audio || {};
const auto = config.auto || 'Auto';
const title = config.title || 'Audio';
const getName = config.getName || ((track) => track.name || track.lang || track.language);
const defaultTrack = hls.audioTracks[hls.audioTrack];
const defaultHtml = defaultTrack ? getName(defaultTrack) : auto;
const config = option.audio || {}
const auto = config.auto || 'Auto'
const title = config.title || 'Audio'
const getName = config.getName || (track => track.name || track.lang || track.language)
const defaultTrack = hls.audioTracks[hls.audioTrack]
const defaultHtml = defaultTrack ? getName(defaultTrack) : auto
const selector = uniqBy(
hls.audioTracks.map((item, index) => {
return {
html: getName(item, index),
value: item.id,
default: hls.audioTrack === item.id,
};
}),
'html',
);
const selector = uniqBy(
hls.audioTracks.map((item, index) => {
return {
html: getName(item, index),
value: item.id,
default: hls.audioTrack === item.id,
}
}),
'html',
)
const onSelect = (item) => {
hls.audioTrack = item.value;
art.notice.show = `${title}: ${item.html}`;
if (config.control) art.controls.check(item);
if (config.setting) art.setting.check(item);
return item.html;
};
const onSelect = (item) => {
hls.audioTrack = item.value
art.notice.show = `${title}: ${item.html}`
if (config.control)
art.controls.check(item)
if (config.setting)
art.setting.check(item)
return item.html
}
if (config.control) {
art.controls.update({
name: 'hls-audio',
position: 'right',
html: defaultHtml,
style: { padding: '0 10px' },
selector: selector,
onSelect: onSelect,
});
}
if (config.control) {
art.controls.update({
name: 'hls-audio',
position: 'right',
html: defaultHtml,
style: { padding: '0 10px' },
selector,
onSelect,
})
}
if (config.setting) {
art.setting.update({
name: 'hls-audio',
tooltip: defaultHtml,
html: title,
icon: $audio,
width: 200,
selector: selector,
onSelect: onSelect,
});
}
}
if (config.setting) {
art.setting.update({
name: 'hls-audio',
tooltip: defaultHtml,
html: title,
icon: $audio,
width: 200,
selector,
onSelect,
})
}
}
function update() {
errorHandle(art.hls?.media === $video, 'Cannot find instance of HLS from "art.hls"');
updateQuality(art.hls);
updateAudio(art.hls);
}
function update() {
errorHandle(art.hls?.media === $video, 'Cannot find instance of HLS from "art.hls"')
updateQuality(art.hls)
updateAudio(art.hls)
}
art.on('ready', update);
art.on('restart', update);
art.on('ready', update)
art.on('restart', update)
return {
name: 'artplayerPluginHlsControl',
update,
};
};
return {
name: 'artplayerPluginHlsControl',
update,
}
}
}
if (typeof window !== 'undefined') {
window['artplayerPluginHlsControl'] = artplayerPluginHlsControl;
window.artplayerPluginHlsControl = artplayerPluginHlsControl
}
@@ -1,17 +1,17 @@
import type Artplayer from 'artplayer';
import type Artplayer from 'artplayer'
export = artplayerPluginHlsControl;
export = artplayerPluginHlsControl
export as namespace artplayerPluginHlsControl;
type Config = {
control?: boolean;
setting?: boolean;
title?: string;
auto?: string;
getName?(level: object): String;
};
interface Config {
control?: boolean
setting?: boolean
title?: string
auto?: string
getName?: (level: object) => string
}
declare const artplayerPluginHlsControl: (option: { quality?: Config; audio?: Config }) => (art: Artplayer) => {
name: 'artplayerPluginHlsControl';
update: () => void;
};
declare const artplayerPluginHlsControl: (option: { quality?: Config, audio?: Config }) => (art: Artplayer) => {
name: 'artplayerPluginHlsControl'
update: () => void
}
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,o,n,s,i,a){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof f[o]&&f[o],l=d.i||{},u=d.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var s="function"==typeof f[o]&&f[o];if(!r&&s)return s(t,!0);if(d)return d(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}l.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},l.cache={};var a=u[t]=new p.Module(t);e[t][0].call(a.exports,l,a,a.exports,f)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=c,this.exports={}},p.modules=e,p.cache=u,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return f[o]}}),f[o]=p;for(var m=0;m<t.length;m++)p(t[m]);if(r){var h=p(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({"4omrA":[function(e,t,r,o){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);class n{static get iframe(){return window.top!==window}static postMessage({type:e,data:t,id:r=0}){if(!n.iframe)throw Error('The "ArtplayerPluginIframe.postMessage" method can only be used in iframe');window.parent.postMessage({type:e,data:t,id:r},"*")}static async onMessage(e){if(!n.iframe)throw Error('The "ArtplayerPluginIframe.onMessage" method can only be used in iframe');let{type:t,data:r,id:o}=e.data;if("commit"===t)try{if(r.match(/\bresolve\((.*?)\)/)){let e=`return new Promise(function(resolve){ ${r} })`,t=await Function(e)();n.postMessage({type:"response",data:t,id:o})}else{let e=Function(r)();n.postMessage({type:"response",data:e,id:o})}}catch(e){throw n.postMessage({type:"error",data:e.message,id:o}),e}}static inject(){if(!n.iframe)throw Error('The "ArtplayerPluginIframe.inject" method can only be used in iframe');n.postMessage({type:"inject"}),window.addEventListener("message",n.onMessage)}constructor({iframe:e,url:t}){if(e instanceof HTMLIFrameElement==!1)throw Error('"option.iframe" needs to be a HTMLIFrameElement');if("string"!=typeof t)throw Error('"option.url" needs to be a string');this.url=t,this.$iframe=e,this.promises={},this.injected=!1,this.destroyed=!1,this.messageCallback=()=>null,this.onMessage=this.onMessage.bind(this),window.addEventListener("message",this.onMessage),this.$iframe.src=this.url}onMessage(e){let{type:t,data:r,id:o}=e.data;"inject"===t&&(this.injected=!0),this.promises[o]&&("error"===t?this.promises[o].reject(Error(r)):this.promises[o].resove(r),delete this.promises[o]),this.messageCallback&&this.messageCallback({type:t,data:r})}postMessage({type:e,data:t}){return new Promise((r,o)=>{(function n(){if(this.destroyed)o(Error("The instance has been destroyed"));else if(this.injected){let n=Date.now();this.promises[n]={resove:r,reject:o},this.$iframe.contentWindow.postMessage({type:e,data:t,id:n},"*")}else setTimeout(n.bind(this),200)}).call(this)})}commit(e){if("function"!=typeof e)throw Error('"commit.callback" needs to be a function');let t=e.toString(),r=t.substring(t.indexOf("{")+1,t.lastIndexOf("}"));return this.postMessage({type:"commit",data:r})}message(e){if("function"!=typeof e)throw Error('"message.callback" needs to be a function');this.messageCallback=e}destroy(){this.destroyed=!0,window.removeEventListener("message",this.onMessage)}}r.default=n,"undefined"!=typeof window&&(window.ArtplayerPluginIframe=n)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],w4pLy:[function(e,t,r,o){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["4omrA"],"4omrA","parcelRequire92f7",{});let{default:e}=parcelRequire92f7("4omrA");export{e as default};
!function(e,t,r,o,s,n,i,a){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof f[o]&&f[o],d=l.i||{},u=l.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!u[t]){if(!e[t]){if(s[t])return s[t];var n="function"==typeof f[o]&&f[o];if(!r&&n)return n(t,!0);if(l)return l(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}d.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},d.cache={};var a=u[t]=new p.Module(t);e[t][0].call(a.exports,d,a,a.exports,f)}return u[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=c,this.exports={}},p.modules=e,p.cache=u,p.parent=l,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return f[o]}}),f[o]=p;for(var m=0;m<t.length;m++)p(t[m]);if(r){var h=p(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({cTaWs:[function(e,t,r,o){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);class s{static get iframe(){return window.top!==window}static postMessage({type:e,data:t,id:r=0}){if(!s.iframe)throw Error('The "ArtplayerPluginIframe.postMessage" method can only be used in iframe');window.parent.postMessage({type:e,data:t,id:r},"*")}static async onMessage(e){if(!s.iframe)throw Error('The "ArtplayerPluginIframe.onMessage" method can only be used in iframe');let{type:t,data:r,id:o}=e.data;if("commit"===t)try{if(r.match(/\bresolve\((.*?)\)/)){let e=`return new Promise(function(resolve){ ${r} })`,t=await Function(e)();s.postMessage({type:"response",data:t,id:o})}else{let e=Function(r)();s.postMessage({type:"response",data:e,id:o})}}catch(e){throw s.postMessage({type:"error",data:e.message,id:o}),e}}static inject(){if(!s.iframe)throw Error('The "ArtplayerPluginIframe.inject" method can only be used in iframe');s.postMessage({type:"inject"}),window.addEventListener("message",s.onMessage)}constructor({iframe:e,url:t}){if(e instanceof HTMLIFrameElement==!1)throw TypeError('"option.iframe" needs to be a HTMLIFrameElement');if("string"!=typeof t)throw TypeError('"option.url" needs to be a string');this.url=t,this.$iframe=e,this.promises={},this.injected=!1,this.destroyed=!1,this.messageCallback=()=>null,this.onMessage=this.onMessage.bind(this),window.addEventListener("message",this.onMessage),this.$iframe.src=this.url}onMessage(e){let{type:t,data:r,id:o}=e.data;"inject"===t&&(this.injected=!0),this.promises[o]&&("error"===t?this.promises[o].reject(Error(r)):this.promises[o].resove(r),delete this.promises[o]),this.messageCallback&&this.messageCallback({type:t,data:r})}postMessage({type:e,data:t}){return new Promise((r,o)=>{(function s(){if(this.destroyed)o(Error("The instance has been destroyed"));else if(this.injected){let s=Date.now();this.promises[s]={resove:r,reject:o},this.$iframe.contentWindow.postMessage({type:e,data:t,id:s},"*")}else setTimeout(s.bind(this),200)}).call(this)})}commit(e){if("function"!=typeof e)throw TypeError('"commit.callback" needs to be a function');let t=e.toString(),r=t.substring(t.indexOf("{")+1,t.lastIndexOf("}"));return this.postMessage({type:"commit",data:r})}message(e){if("function"!=typeof e)throw TypeError('"message.callback" needs to be a function');this.messageCallback=e}destroy(){this.destroyed=!0,window.removeEventListener("message",this.onMessage)}}r.default=s,"undefined"!=typeof window&&(window.ArtplayerPluginIframe=s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,t,r,o){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["cTaWs"],"cTaWs","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("cTaWs");export{e as default};
//# sourceMappingURL=artplayer-plugin-iframe.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,A,E,kD,iB,C,ECAe,OAAM,EACjB,WAAW,QAAS,CAChB,OAAO,OAAO,GAAG,GAAK,MAC1B,CAEA,OAAO,YAAY,CAAE,KAAA,CAAI,CAAE,KAAA,CAAI,CAAE,GAAA,EAAK,CAAC,CAAE,CAAE,CACvC,GAAI,CAAC,EAAsB,MAAM,CAC7B,MAAM,AAAI,MAAM,6EAGpB,OAAO,MAAM,CAAC,WAAW,CACrB,CACI,KAAM,EACN,KAAM,EACN,GAAI,CACR,EACA,IAER,CAEA,aAAa,UAAU,CAAK,CAAE,CAC1B,GAAI,CAAC,EAAsB,MAAM,CAC7B,MAAM,AAAI,MAAM,2EAGpB,GAA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","sources":["<anon>","src/index.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n Line truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,M,C,S,C,C,C,C,C,C,C,E,A,E,kD,iB,C,ECAe,OAAM,EACnB,WAAW,QAAS,CAClB,OAAO,OAAO,GAAG,GAAK,MACxB,CAEA,OAAO,YAAY,CAAE,KAAA,CAAI,CAAE,KAAA,CAAI,CAAE,GAAA,EAAK,CAAC,CAAE,CAAE,CACzC,GAAI,CAAC,EAAsB,MAAM,CAC/B,MAAM,AAAI,MAAM,6EAGlB,OAAO,MAAM,CAAC,WAAW,CACvB,CACE,KAAA,EACA,KAAA,EACA,GAAA,CACF,EACA,IAEJ,CAEA,aAAa,UAAU,CAAK,CAAE,CAC5B,GAAI,CAAC,EAAsB,MAAM,CAC/B,MAAM,AAAI,MAAM,2EAGlB,GAA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","sources":["<anon>","packages/artplayer-plugin-iframe/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undLine truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,o,n,s,i,a){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof f[o]&&f[o],l=d.i||{},u=d.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var s="function"==typeof f[o]&&f[o];if(!r&&s)return s(t,!0);if(d)return d(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}l.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},l.cache={};var a=u[t]=new p.Module(t);e[t][0].call(a.exports,l,a,a.exports,f)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=c,this.exports={}},p.modules=e,p.cache=u,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return f[o]}}),f[o]=p;for(var m=0;m<t.length;m++)p(t[m]);if(r){var h=p(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({jz4E5:[function(e,t,r,o){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);class n{static get iframe(){return window.top!==window}static postMessage({type:e,data:t,id:r=0}){if(!n.iframe)throw Error('The "ArtplayerPluginIframe.postMessage" method can only be used in iframe');window.parent.postMessage({type:e,data:t,id:r},"*")}static async onMessage(e){if(!n.iframe)throw Error('The "ArtplayerPluginIframe.onMessage" method can only be used in iframe');let{type:t,data:r,id:o}=e.data;if("commit"===t)try{if(r.match(/\bresolve\((.*?)\)/)){let e=`return new Promise(function(resolve){ ${r} })`,t=await Function(e)();n.postMessage({type:"response",data:t,id:o})}else{let e=Function(r)();n.postMessage({type:"response",data:e,id:o})}}catch(e){throw n.postMessage({type:"error",data:e.message,id:o}),e}}static inject(){if(!n.iframe)throw Error('The "ArtplayerPluginIframe.inject" method can only be used in iframe');n.postMessage({type:"inject"}),window.addEventListener("message",n.onMessage)}constructor({iframe:e,url:t}){if(e instanceof HTMLIFrameElement==!1)throw Error('"option.iframe" needs to be a HTMLIFrameElement');if("string"!=typeof t)throw Error('"option.url" needs to be a string');this.url=t,this.$iframe=e,this.promises={},this.injected=!1,this.destroyed=!1,this.messageCallback=()=>null,this.onMessage=this.onMessage.bind(this),window.addEventListener("message",this.onMessage),this.$iframe.src=this.url}onMessage(e){let{type:t,data:r,id:o}=e.data;"inject"===t&&(this.injected=!0),this.promises[o]&&("error"===t?this.promises[o].reject(Error(r)):this.promises[o].resove(r),delete this.promises[o]),this.messageCallback&&this.messageCallback({type:t,data:r})}postMessage({type:e,data:t}){return new Promise((r,o)=>{(function n(){if(this.destroyed)o(Error("The instance has been destroyed"));else if(this.injected){let n=Date.now();this.promises[n]={resove:r,reject:o},this.$iframe.contentWindow.postMessage({type:e,data:t,id:n},"*")}else setTimeout(n.bind(this),200)}).call(this)})}commit(e){if("function"!=typeof e)throw Error('"commit.callback" needs to be a function');let t=e.toString(),r=t.substring(t.indexOf("{")+1,t.lastIndexOf("}"));return this.postMessage({type:"commit",data:r})}message(e){if("function"!=typeof e)throw Error('"message.callback" needs to be a function');this.messageCallback=e}destroy(){this.destroyed=!0,window.removeEventListener("message",this.onMessage)}}r.default=n,"undefined"!=typeof window&&(window.ArtplayerPluginIframe=n)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7o2zS":[function(e,t,r,o){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["jz4E5"],"jz4E5","parcelRequire92f7",{});
!function(e,t,r,o,n,s,i,a){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof f[o]&&f[o],l=d.i||{},u=d.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var s="function"==typeof f[o]&&f[o];if(!r&&s)return s(t,!0);if(d)return d(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}l.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},l.cache={};var a=u[t]=new p.Module(t);e[t][0].call(a.exports,l,a,a.exports,f)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=c,this.exports={}},p.modules=e,p.cache=u,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return f[o]}}),f[o]=p;for(var m=0;m<t.length;m++)p(t[m]);if(r){var h=p(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({jSFRI:[function(e,t,r,o){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);class n{static get iframe(){return window.top!==window}static postMessage({type:e,data:t,id:r=0}){if(!n.iframe)throw Error('The "ArtplayerPluginIframe.postMessage" method can only be used in iframe');window.parent.postMessage({type:e,data:t,id:r},"*")}static async onMessage(e){if(!n.iframe)throw Error('The "ArtplayerPluginIframe.onMessage" method can only be used in iframe');let{type:t,data:r,id:o}=e.data;if("commit"===t)try{if(r.match(/\bresolve\((.*?)\)/)){let e=`return new Promise(function(resolve){ ${r} })`,t=await Function(e)();n.postMessage({type:"response",data:t,id:o})}else{let e=Function(r)();n.postMessage({type:"response",data:e,id:o})}}catch(e){throw n.postMessage({type:"error",data:e.message,id:o}),e}}static inject(){if(!n.iframe)throw Error('The "ArtplayerPluginIframe.inject" method can only be used in iframe');n.postMessage({type:"inject"}),window.addEventListener("message",n.onMessage)}constructor({iframe:e,url:t}){if(e instanceof HTMLIFrameElement==!1)throw TypeError('"option.iframe" needs to be a HTMLIFrameElement');if("string"!=typeof t)throw TypeError('"option.url" needs to be a string');this.url=t,this.$iframe=e,this.promises={},this.injected=!1,this.destroyed=!1,this.messageCallback=()=>null,this.onMessage=this.onMessage.bind(this),window.addEventListener("message",this.onMessage),this.$iframe.src=this.url}onMessage(e){let{type:t,data:r,id:o}=e.data;"inject"===t&&(this.injected=!0),this.promises[o]&&("error"===t?this.promises[o].reject(Error(r)):this.promises[o].resove(r),delete this.promises[o]),this.messageCallback&&this.messageCallback({type:t,data:r})}postMessage({type:e,data:t}){return new Promise((r,o)=>{(function n(){if(this.destroyed)o(Error("The instance has been destroyed"));else if(this.injected){let n=Date.now();this.promises[n]={resove:r,reject:o},this.$iframe.contentWindow.postMessage({type:e,data:t,id:n},"*")}else setTimeout(n.bind(this),200)}).call(this)})}commit(e){if("function"!=typeof e)throw TypeError('"commit.callback" needs to be a function');let t=e.toString(),r=t.substring(t.indexOf("{")+1,t.lastIndexOf("}"));return this.postMessage({type:"commit",data:r})}message(e){if("function"!=typeof e)throw TypeError('"message.callback" needs to be a function');this.messageCallback=e}destroy(){this.destroyed=!0,window.removeEventListener("message",this.onMessage)}}r.default=n,"undefined"!=typeof window&&(window.ArtplayerPluginIframe=n)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,t,r,o){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}]},["jSFRI"],"jSFRI","parcelRequire4dc0",{});
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,i,a,s){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof c[n]&&c[n],f=u.i||{},l=u.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!l[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof c[n]&&c[n];if(!r&&i)return i(t,!0);if(u)return u(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}f.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},f.cache={};var s=l[t]=new d.Module(t);e[t][0].call(s.exports,f,s,s.exports,c)}return l[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=l,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=f,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var h=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({bzF6W:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),c=e("@swc/helpers/cjs/_ts_generator.cjs"),u=function(){"use strict";function e(t){var r=t.iframe,n=t.url;if((0,a._)(this,e),r instanceof HTMLIFrameElement==!1)throw Error('"option.iframe" needs to be a HTMLIFrameElement');if("string"!=typeof n)throw Error('"option.url" needs to be a string');this.url=n,this.$iframe=r,this.promises={},this.injected=!1,this.destroyed=!1,this.messageCallback=function(){return null},this.onMessage=this.onMessage.bind(this),window.addEventListener("message",this.onMessage),this.$iframe.src=this.url}return(0,s._)(e,[{key:"onMessage",value:function(e){var t=e.data,r=t.type,n=t.data,o=t.id;"inject"===r&&(this.injected=!0),this.promises[o]&&("error"===r?this.promises[o].reject(Error(n)):this.promises[o].resove(n),delete this.promises[o]),this.messageCallback&&this.messageCallback({type:r,data:n})}},{key:"postMessage",value:function(e){var t=this,r=e.type,n=e.data;return new Promise(function(e,o){(function t(){if(this.destroyed)o(Error("The instance has been destroyed"));else if(this.injected){var i=Date.now();this.promises[i]={resove:e,reject:o},this.$iframe.contentWindow.postMessage({type:r,data:n,id:i},"*")}else setTimeout(t.bind(this),200)}).call(t)})}},{key:"commit",value:function(e){if("function"!=typeof e)throw Error('"commit.callback" needs to be a function');var t=e.toString(),r=t.substring(t.indexOf("{")+1,t.lastIndexOf("}"));return this.postMessage({type:"commit",data:r})}},{key:"message",value:function(e){if("function"!=typeof e)throw Error('"message.callback" needs to be a function');this.messageCallback=e}},{key:"destroy",value:function(){this.destroyed=!0,window.removeEventListener("message",this.onMessage)}}],[{key:"iframe",get:function(){return window.top!==window}},{key:"postMessage",value:function(t){var r=t.type,n=t.data,o=t.id;if(!e.iframe)throw Error('The "ArtplayerPluginIframe.postMessage" method can only be used in iframe');window.parent.postMessage({type:r,data:n,id:void 0===o?0:o},"*")}},{key:"onMessage",value:function(t){return(0,i._)(function(){var r,n,o,i,a,s,u;return(0,c._)(this,function(c){switch(c.label){case 0:if(!e.iframe)throw Error('The "ArtplayerPluginIframe.onMessage" method can only be used in iframe');if(n=(r=t.data).type,o=r.data,i=r.id,"commit"===n)return[3,1];return[3,7];case 1:if(c.trys.push([1,5,,6]),!o.match(/\bresolve\((.*?)\)/))return[3,3];return[4,Function("return new Promise(function(resolve){\n".concat(o,"\n})"))()];case 2:return a=c.sent(),e.postMessage({type:"response",data:a,id:i}),[3,4];case 3:s=Function(o)(),e.postMessage({type:"response",data:s,id:i}),c.label=4;case 4:return[3,6];case 5:throw u=c.sent(),e.postMessage({type:"error",data:u.message,id:i}),u;case 6:case 7:return[3,8];case 8:return[2]}})})()}},{key:"inject",value:function(){if(!e.iframe)throw Error('The "ArtplayerPluginIframe.inject" method can only be used in iframe');e.postMessage({type:"inject"}),window.addEventListener("message",e.onMessage)}}]),e}();"undefined"!=typeof window&&(window.ArtplayerPluginIframe=u)},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"4ElRo":[function(e,t,r,n){"use strict";function o(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){r(e);return}s.done?t(c):Promise.resolve(c).Line truncated
!function(e,t,r,n,o,i,a,s){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof c[n]&&c[n],f=u.i||{},l=u.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!l[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof c[n]&&c[n];if(!r&&i)return i(t,!0);if(u)return u(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}f.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},f.cache={};var s=l[t]=new d.Module(t);e[t][0].call(s.exports,f,s,s.exports,c)}return l[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=l,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=f,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var _=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=_:"function"==typeof define&&define.amd&&define(function(){return _})}}({"8IkGp":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),c=e("@swc/helpers/cjs/_ts_generator.cjs"),u=function(){"use strict";function e(t){var r=t.iframe,n=t.url;if((0,a._)(this,e),r instanceof HTMLIFrameElement==!1)throw TypeError('"option.iframe" needs to be a HTMLIFrameElement');if("string"!=typeof n)throw TypeError('"option.url" needs to be a string');this.url=n,this.$iframe=r,this.promises={},this.injected=!1,this.destroyed=!1,this.messageCallback=function(){return null},this.onMessage=this.onMessage.bind(this),window.addEventListener("message",this.onMessage),this.$iframe.src=this.url}return(0,s._)(e,[{key:"onMessage",value:function(e){var t=e.data,r=t.type,n=t.data,o=t.id;"inject"===r&&(this.injected=!0),this.promises[o]&&("error"===r?this.promises[o].reject(Error(n)):this.promises[o].resove(n),delete this.promises[o]),this.messageCallback&&this.messageCallback({type:r,data:n})}},{key:"postMessage",value:function(e){var t=this,r=e.type,n=e.data;return new Promise(function(e,o){(function t(){if(this.destroyed)o(Error("The instance has been destroyed"));else if(this.injected){var i=Date.now();this.promises[i]={resove:e,reject:o},this.$iframe.contentWindow.postMessage({type:r,data:n,id:i},"*")}else setTimeout(t.bind(this),200)}).call(t)})}},{key:"commit",value:function(e){if("function"!=typeof e)throw TypeError('"commit.callback" needs to be a function');var t=e.toString(),r=t.substring(t.indexOf("{")+1,t.lastIndexOf("}"));return this.postMessage({type:"commit",data:r})}},{key:"message",value:function(e){if("function"!=typeof e)throw TypeError('"message.callback" needs to be a function');this.messageCallback=e}},{key:"destroy",value:function(){this.destroyed=!0,window.removeEventListener("message",this.onMessage)}}],[{key:"iframe",get:function(){return window.top!==window}},{key:"postMessage",value:function(t){var r=t.type,n=t.data,o=t.id;if(!e.iframe)throw Error('The "ArtplayerPluginIframe.postMessage" method can only be used in iframe');window.parent.postMessage({type:r,data:n,id:void 0===o?0:o},"*")}},{key:"onMessage",value:function(t){return(0,i._)(function(){var r,n,o,i,a,s,u;return(0,c._)(this,function(c){switch(c.label){case 0:if(!e.iframe)throw Error('The "ArtplayerPluginIframe.onMessage" method can only be used in iframe');if(n=(r=t.data).type,o=r.data,i=r.id,"commit"===n)return[3,1];return[3,7];case 1:if(c.trys.push([1,5,,6]),!o.match(/\bresolve\((.*?)\)/))return[3,3];return[4,Function("return new Promise(function(resolve){\n".concat(o,"\n})"))()];case 2:return a=c.sent(),e.postMessage({type:"response",data:a,id:i}),[3,4];case 3:s=Function(o)(),e.postMessage({type:"response",data:s,id:i}),c.label=4;case 4:return[3,6];case 5:throw u=c.sent(),e.postMessage({type:"error",data:u.message,id:i}),u;case 6:case 7:return[3,8];case 8:return[2]}})})()}},{key:"inject",value:function(){if(!e.iframe)throw Error('The "ArtplayerPluginIframe.inject" method can only be used in iframe');e.postMessage({type:"inject"}),window.addEventListener("message",e.onMessage)}}]),e}();"undefined"!=typeof window&&(window.ArtplayerPluginIframe=u)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_class_call_check.cjs":"4Uf9M","@swc/helpers/cjs/_create_class.cjs":"igUuK","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],cZn0e:[function(e,t,r,n){"use strict";function o(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){r(e);return}s.done?t(c):ProLine truncated
+28 -28
View File
@@ -1,30 +1,30 @@
{
"license": "MIT",
"version": "1.0.0",
"name": "artplayer-plugin-iframe",
"description": "Iframe plugin for ArtPlayer",
"main": "dist/artplayer-plugin-iframe.js",
"legacy": "dist/artplayer-plugin-iframe.legacy.js",
"module": "dist/artplayer-plugin-iframe.esm.js",
"types": "types/artplayer-plugin-iframe.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-iframe.esm.js",
"require": "./dist/artplayer-plugin-iframe.js",
"default": "./dist/artplayer-plugin-iframe.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
"name": "artplayer-plugin-iframe",
"version": "1.0.0",
"description": "Iframe plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-iframe.esm.js",
"require": "./dist/artplayer-plugin-iframe.js",
"default": "./dist/artplayer-plugin-iframe.js"
},
"main": "dist/artplayer-plugin-iframe.js",
"legacy": "dist/artplayer-plugin-iframe.legacy.js",
"module": "dist/artplayer-plugin-iframe.esm.js",
"types": "types/artplayer-plugin-iframe.d.ts",
"browserslist": "last 1 Chrome version"
}
+129 -122
View File
@@ -1,151 +1,158 @@
export default class ArtplayerPluginIframe {
static get iframe() {
return window.top !== window;
static get iframe() {
return window.top !== window
}
static postMessage({ type, data, id = 0 }) {
if (!ArtplayerPluginIframe.iframe) {
throw new Error('The "ArtplayerPluginIframe.postMessage" method can only be used in iframe')
}
static postMessage({ type, data, id = 0 }) {
if (!ArtplayerPluginIframe.iframe) {
throw new Error('The "ArtplayerPluginIframe.postMessage" method can only be used in iframe');
}
window.parent.postMessage(
{
type,
data,
id,
},
'*',
)
}
window.parent.postMessage(
{
type: type,
data: data,
id: id,
},
'*',
);
static async onMessage(event) {
if (!ArtplayerPluginIframe.iframe) {
throw new Error('The "ArtplayerPluginIframe.onMessage" method can only be used in iframe')
}
static async onMessage(event) {
if (!ArtplayerPluginIframe.iframe) {
throw new Error('The "ArtplayerPluginIframe.onMessage" method can only be used in iframe');
const { type, data, id } = event.data
switch (type) {
case 'commit':
try {
if (data.match(/\bresolve\((.*?)\)/)) {
const string = `return new Promise(function(resolve){\n${data}\n})`
// eslint-disable-next-line no-new-func
const result = await new Function(string)()
ArtplayerPluginIframe.postMessage({ type: 'response', data: result, id })
}
else {
// eslint-disable-next-line no-new-func
const result = new Function(data)()
ArtplayerPluginIframe.postMessage({ type: 'response', data: result, id })
}
}
catch (error) {
ArtplayerPluginIframe.postMessage({ type: 'error', data: error.message, id })
throw error
}
break
default:
break
}
}
const { type, data, id } = event.data;
switch (type) {
case 'commit':
try {
if (data.match(/\bresolve\((.*?)\)/)) {
const string = `return new Promise(function(resolve){\n${data}\n})`;
const result = await new Function(string)();
ArtplayerPluginIframe.postMessage({ type: 'response', data: result, id });
} else {
const result = new Function(data)();
ArtplayerPluginIframe.postMessage({ type: 'response', data: result, id });
}
} catch (error) {
ArtplayerPluginIframe.postMessage({ type: 'error', data: error.message, id });
throw error;
}
break;
default:
break;
}
static inject() {
if (!ArtplayerPluginIframe.iframe) {
throw new Error('The "ArtplayerPluginIframe.inject" method can only be used in iframe')
}
static inject() {
if (!ArtplayerPluginIframe.iframe) {
throw new Error('The "ArtplayerPluginIframe.inject" method can only be used in iframe');
}
ArtplayerPluginIframe.postMessage({ type: 'inject' })
window.addEventListener('message', ArtplayerPluginIframe.onMessage)
}
ArtplayerPluginIframe.postMessage({ type: 'inject' });
window.addEventListener('message', ArtplayerPluginIframe.onMessage);
constructor({ iframe, url }) {
if (iframe instanceof HTMLIFrameElement === false) {
throw new TypeError('"option.iframe" needs to be a HTMLIFrameElement')
}
constructor({ iframe, url }) {
if (iframe instanceof HTMLIFrameElement === false) {
throw new Error('"option.iframe" needs to be a HTMLIFrameElement');
}
if (typeof url !== 'string') {
throw new Error('"option.url" needs to be a string');
}
this.url = url;
this.$iframe = iframe;
this.promises = {};
this.injected = false;
this.destroyed = false;
this.messageCallback = () => null;
this.onMessage = this.onMessage.bind(this);
window.addEventListener('message', this.onMessage);
this.$iframe.src = this.url;
if (typeof url !== 'string') {
throw new TypeError('"option.url" needs to be a string')
}
onMessage(event) {
const { type, data, id } = event.data;
this.url = url
this.$iframe = iframe
this.promises = {}
this.injected = false
this.destroyed = false
this.messageCallback = () => null
this.onMessage = this.onMessage.bind(this)
window.addEventListener('message', this.onMessage)
this.$iframe.src = this.url
}
switch (type) {
case 'inject':
this.injected = true;
break;
default:
break;
}
onMessage(event) {
const { type, data, id } = event.data
if (this.promises[id]) {
if (type === 'error') {
this.promises[id].reject(new Error(data));
} else {
this.promises[id].resove(data);
}
delete this.promises[id];
}
if (this.messageCallback) {
this.messageCallback({ type, data });
}
switch (type) {
case 'inject':
this.injected = true
break
default:
break
}
postMessage({ type, data }) {
return new Promise((resove, reject) => {
(function loop() {
if (this.destroyed) {
reject(new Error('The instance has been destroyed'));
} else {
if (this.injected) {
const id = Date.now();
this.promises[id] = { resove, reject };
this.$iframe.contentWindow.postMessage(
{
type: type,
data: data,
id: id,
},
'*',
);
} else {
setTimeout(loop.bind(this), 200);
}
}
}).call(this);
});
if (this.promises[id]) {
if (type === 'error') {
this.promises[id].reject(new Error(data))
}
else {
this.promises[id].resove(data)
}
delete this.promises[id]
}
commit(callback) {
if (typeof callback !== 'function') {
throw new Error('"commit.callback" needs to be a function');
if (this.messageCallback) {
this.messageCallback({ type, data })
}
}
postMessage({ type, data }) {
return new Promise((resove, reject) => {
(function loop() {
if (this.destroyed) {
reject(new Error('The instance has been destroyed'))
}
const callbackString = callback.toString();
const bodyString = callbackString.substring(callbackString.indexOf('{') + 1, callbackString.lastIndexOf('}'));
return this.postMessage({ type: 'commit', data: bodyString });
}
message(callback) {
if (typeof callback !== 'function') {
throw new Error('"message.callback" needs to be a function');
else {
if (this.injected) {
const id = Date.now()
this.promises[id] = { resove, reject }
this.$iframe.contentWindow.postMessage(
{
type,
data,
id,
},
'*',
)
}
else {
setTimeout(loop.bind(this), 200)
}
}
this.messageCallback = callback;
}
}).call(this)
})
}
destroy() {
this.destroyed = true;
window.removeEventListener('message', this.onMessage);
commit(callback) {
if (typeof callback !== 'function') {
throw new TypeError('"commit.callback" needs to be a function')
}
const callbackString = callback.toString()
const bodyString = callbackString.substring(callbackString.indexOf('{') + 1, callbackString.lastIndexOf('}'))
return this.postMessage({ type: 'commit', data: bodyString })
}
message(callback) {
if (typeof callback !== 'function') {
throw new TypeError('"message.callback" needs to be a function')
}
this.messageCallback = callback
}
destroy() {
this.destroyed = true
window.removeEventListener('message', this.onMessage)
}
}
if (typeof window !== 'undefined') {
window['ArtplayerPluginIframe'] = ArtplayerPluginIframe;
window.ArtplayerPluginIframe = ArtplayerPluginIframe
}
@@ -1,30 +1,30 @@
export = ArtplayerPluginIframe;
export = ArtplayerPluginIframe
export as namespace ArtplayerPluginIframe;
type Message = {
type: string;
data: any;
id?: number;
};
interface Message {
type: string
data: any
id?: number
}
declare class ArtplayerPluginIframe {
constructor(option: { iframe: HTMLIFrameElement; url: string });
constructor(option: { iframe: HTMLIFrameElement, url: string })
static iframe: boolean;
static postMessage(message: Message): void;
static onMessage(event: MessageEvent & { data: Message }): void;
static inject(): void;
static iframe: boolean
static postMessage(message: Message): void
static onMessage(event: MessageEvent & { data: Message }): void
static inject(): void
readonly promises: Record<number, { resove: Function; reject: Function }>;
readonly injected: boolean;
readonly destroyed: boolean;
readonly $iframe: HTMLIFrameElement;
readonly url: string;
readonly messageCallback: (...args: any[]) => any;
readonly promises: Record<number, { resove: Function, reject: Function }>
readonly injected: boolean
readonly destroyed: boolean
readonly $iframe: HTMLIFrameElement
readonly url: string
readonly messageCallback: (...args: any[]) => any
onMessage(event: MessageEvent & { data: Message }): void;
postMessage(message: Message): Promise<any>;
commit<T extends (...args: any[]) => any>(callback: T): Promise<ReturnType<T>>;
message(callback: (...args: any[]) => any): void;
destroy(): void;
onMessage(event: MessageEvent & { data: Message }): void
postMessage(message: Message): Promise<any>
commit<T extends (...args: any[]) => any>(callback: T): Promise<ReturnType<T>>
message(callback: (...args: any[]) => any): void
destroy(): void
}
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,s,i,n,a,o){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[s]&&l[s],d=c.i||{},u=c.cache||{},v="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(i[t])return i[t];var n="function"==typeof l[s]&&l[s];if(!r&&n)return n(t,!0);if(c)return c(t,!0);if(v&&"string"==typeof t)return v(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(r){var s=e[t][1][r];return null!=s?s:r},d.cache={};var o=u[t]=new f.Module(t);e[t][0].call(o.exports,d,o,o.exports,l)}return u[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=v,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=d,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[s]}}),l[s]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"4omrA":[function(e,t,r,s){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"default",()=>o);var n=e("./adapter"),a=i.interopDefault(n);function o(e){return t=>{let r=new(0,a.default)(t,e);return{name:"artplayerPluginLibass",libass:r.libass,visible:r.visible,init:r.init.bind(r),switch:r.switch.bind(r),show:r.show.bind(r),hide:r.hide.bind(r),destroy:r.destroy.bind(r)}}}"undefined"!=typeof window&&(window.artplayerPluginLibass=o)},{"./adapter":"i5CMM","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],i5CMM:[function(e,t,r,s){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("libass-wasm"),a=i.interopDefault(n);let o=`[Script Info] ScriptType: v4.00+`;r.default=class{constructor(e,t){let{constructor:r,template:s}=e;this.art=e,this.$video=s.$video,this.$webvtt=s.$subtitle,this.utils=r.utils,this.libass=null,e.once("ready",this.init.bind(this,t))}async init(e){this.#e(),await this.#t(e),this.#r(),this.art.emit("artplayerPluginLibass:init",this);let t=this.art?.option?.subtitle?.url;t&&"ass"===this.utils.getExt(t)&&this.switch(t)}switch(e){this.art.emit("artplayerPluginLibass:switch",e),e&&"ass"===this.utils.getExt(e)?(this.currentType="ass",this.libass.freeTrack(),this.libass.setTrackByUrl(this.#s(e)),this.visible=this.art.subtitle.show):(this.currentType="webvtt",this.hide(),this.libass.freeTrack())}setVisibility(e){this.visible=e}setOffset(e){this.timeOffset=e}get active(){return"ass"===this.currentType}get visible(){return!!this.libass&&"none"!==this.libass.canvasParent.style.display}set visible(e){this.art.emit("artplayerPluginLibass:visible",e),this.#i(!this.active),this.libass.canvasParent&&(this.libass.canvasParent.style.display=e?"block":"none",e&&this.libass.resize())}get timeOffset(){return this.libass.timeOffset}set timeOffset(e){this.art.emit("artplayerPluginLibass:timeOffset",e),this.libass.timeOffset=e}show(){this.visible=!0}hide(){this.visible=!1}destroy(){this.art.emit("artplayerPluginLibass:destroy"),this.#n(),this.libass.dispose(),URL.revokeObjectURL(this.workerScriptUrl),this.libass=null}async #t(e={}){if(!e.fallbackFont)return this.utils.errorHandle(e.fallbackFont,"artplayerPluginLibass: fallbackFont is required");e.workerUrl||(e.workerUrl="https://cdnjs.cloudflare.com/ajax/libs/libass-wasm/4.1.0/js/subtitles-octopus-worker.js"),e.availableFonts&&(e.availableFonts=Object.entries(e.availableFonts).reduce((e,[t,r])=>(e[t]=this.#s(r),e),{})),this.libass=new(0,a.default)({subContent:o,video:this.$video,...e,workerUrl:await this.#a(e),fallbackFont:this.#s(e.fallbackFont),fonts:e.fonts?.map(e=>this.#s(e))}),this.libass.canvasParent.className="artplayer-plugin-libass",this.libass.canvasParent.style.cssText=` position: absolute; top: 0; left: 0; width: 100%; height: 100%; user-select: none; pointer-events: none; z-index: 20;`}#r(){this.switchHandler=this.switch.bind(this),this.visibleHandler=this.setVisibility.bind(this),this.offsetHandler=this.setOffset.bind(this),this.art.on("subtitle",this.visibleHandler),this.art.on("subtitleLoad",this.switchHandler),this.art.on("subtitleOffset",this.offsetHandler),this.art.once("destroy",this.destroy.bind(this))}#n(){this.art.off("subtitle",this.visibleHandler),this.art.off("subtitleLoad",this.switchHandler),this.art.off("subtitleOffset",this.offsetHandler)}#i(e){this.$webvtt.style.visibility=e?"visible":"hidden"}#s(e){return this.#o(e)?e:new URL(e,document.baseURI).toString()}#o(e){return/^https?:\/\//.test(e)}#a({workerUrl:e,wasmUrl:t}){return new Promise(r=>{fetch(e).then(e=>e.text()).then(s=>{let i=s,n=new Blob([i=i.replace(/wasmBinaryFile\s*=\s*"(subtitles-octopus-worker\.wasm)"/g,(r,s)=>(Line truncated
!function(e,t,r,s,i,n,a,o){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[s]&&l[s],d=c.i||{},u=c.cache||{},v="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(i[t])return i[t];var n="function"==typeof l[s]&&l[s];if(!r&&n)return n(t,!0);if(c)return c(t,!0);if(v&&"string"==typeof t)return v(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(r){var s=e[t][1][r];return null!=s?s:r},d.cache={};var o=u[t]=new f.Module(t);e[t][0].call(o.exports,d,o,o.exports,l)}return u[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=v,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=d,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[s]}}),l[s]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"4083l":[function(e,t,r,s){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"default",()=>o);var n=e("./adapter"),a=i.interopDefault(n);function o(e){return t=>{let r=new(0,a.default)(t,e);return{name:"artplayerPluginLibass",libass:r.libass,visible:r.visible,init:r.init.bind(r),switch:r.switch.bind(r),show:r.show.bind(r),hide:r.hide.bind(r),destroy:r.destroy.bind(r)}}}"undefined"!=typeof window&&(window.artplayerPluginLibass=o)},{"./adapter":"uLby7","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],uLby7:[function(e,t,r,s){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("libass-wasm"),a=i.interopDefault(n);let o=`[Script Info] ScriptType: v4.00+`;r.default=class{constructor(e,t){let{constructor:r,template:s}=e;this.art=e,this.$video=s.$video,this.$webvtt=s.$subtitle,this.utils=r.utils,this.libass=null,e.once("ready",this.init.bind(this,t))}async init(e){this.#e(),await this.#t(e),this.#r(),this.art.emit("artplayerPluginLibass:init",this);let t=this.art?.option?.subtitle?.url;t&&"ass"===this.utils.getExt(t)&&this.switch(t)}switch(e){this.art.emit("artplayerPluginLibass:switch",e),e&&"ass"===this.utils.getExt(e)?(this.currentType="ass",this.libass.freeTrack(),this.libass.setTrackByUrl(this.#s(e)),this.visible=this.art.subtitle.show):(this.currentType="webvtt",this.hide(),this.libass.freeTrack())}setVisibility(e){this.visible=e}setOffset(e){this.timeOffset=e}get active(){return"ass"===this.currentType}get visible(){return!!this.libass&&"none"!==this.libass.canvasParent.style.display}set visible(e){this.art.emit("artplayerPluginLibass:visible",e),this.#i(!this.active),this.libass.canvasParent&&(this.libass.canvasParent.style.display=e?"block":"none",e&&this.libass.resize())}get timeOffset(){return this.libass.timeOffset}set timeOffset(e){this.art.emit("artplayerPluginLibass:timeOffset",e),this.libass.timeOffset=e}show(){this.visible=!0}hide(){this.visible=!1}destroy(){this.art.emit("artplayerPluginLibass:destroy"),this.#n(),this.libass.dispose(),URL.revokeObjectURL(this.workerScriptUrl),this.libass=null}async #t(e={}){if(!e.fallbackFont)return this.utils.errorHandle(e.fallbackFont,"artplayerPluginLibass: fallbackFont is required");e.workerUrl||(e.workerUrl="https://cdnjs.cloudflare.com/ajax/libs/libass-wasm/4.1.0/js/subtitles-octopus-worker.js"),e.availableFonts&&(e.availableFonts=Object.entries(e.availableFonts).reduce((e,[t,r])=>(e[t]=this.#s(r),e),{})),this.libass=new(0,a.default)({subContent:o,video:this.$video,...e,workerUrl:await this.#a(e),fallbackFont:this.#s(e.fallbackFont),fonts:e.fonts?.map(e=>this.#s(e))}),this.libass.canvasParent.className="artplayer-plugin-libass",this.libass.canvasParent.style.cssText=` position: absolute; top: 0; left: 0; width: 100%; height: 100%; user-select: none; pointer-events: none; z-index: 20;`}#r(){this.switchHandler=this.switch.bind(this),this.visibleHandler=this.setVisibility.bind(this),this.offsetHandler=this.setOffset.bind(this),this.art.on("subtitle",this.visibleHandler),this.art.on("subtitleLoad",this.switchHandler),this.art.on("subtitleOffset",this.offsetHandler),this.art.once("destroy",this.destroy.bind(this))}#n(){this.art.off("subtitle",this.visibleHandler),this.art.off("subtitleLoad",this.switchHandler),this.art.off("subtitleOffset",this.offsetHandler)}#i(e){this.$webvtt.style.visibility=e?"visible":"hidden"}#s(e){return this.#o(e)?e:new URL(e,document.baseURI).toString()}#o(e){return/^https?:\/\//.test(e)}#a({workerUrl:e,wasmUrl:t}){return new Promise(r=>{fetch(e).then(e=>e.text()).then(s=>{let i=s,n=new Blob([i=i.replace(/wasmBinaryFile\s*=\s*"(subtitles-octopus-worker\.wasm)"/g,(r,s)=>(Line truncated
//# sourceMappingURL=artplayer-plugin-libass.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,a,E,E,c,C,GAEe,SAAS,EAAsB,CAAM,EAChD,OAAO,AAAC,IACJ,IAAM,EAAU,GAAI,CAAA,EAAA,EAAA,OAAY,AAAZ,EAAc,EAAK,GACvC,MAAO,CACH,KAAM,wBACN,OAAQ,EAAQ,MAAM,CACtB,QAAS,EAAQ,OAAO,CACxB,KAAM,EAAQ,IAAI,CAAC,IAAI,CAAC,GACxB,OAAQ,EAAQ,MAAM,CAAC,IAAI,CAAC,GAC5B,KAAM,EAAQ,IAAI,CAAC,IAAI,CAAC,GACxB,KAAM,EAAQ,IAAI,CAAC,IAAI,CAAC,GACxB,QAAS,EAAQ,OAAO,CAAC,IAAI,CAAC,EAClC,CACJ,CACJ,CAEI,AAAkB,aAAlB,OAAO,QACP,CAAA,OAAO,qBAAwB,CAAG,CADtC,C,E,C,Y,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GClBA,IAAA,EAAA,EAAA,e,E,E,c,C,GAEA,IAAM,EAAqB,CAAC;AAAA,kBAAiC,CAAC,AAEzC,CAAA,EAAA,OAAA,CAAN,MACX,YAAY,CAAG,CAAE,CAAM,CAAE,CACrB,GAAM,CAAE,YAAA,CAAW,CAAE,SAAA,CAAQ,CAAE,CAAG,CAElC,CAAA,IAAI,CAAC,GAAG,CAAG,EACX,IAAI,CAAC,MAAM,CAAG,EAAS,MAAM,CAC7B,IAAI,CAAC,OAAO,CAAG,EAAS,SAAS,CACjC,IAAI,CAAC,KAAK,CAAG,EAAY,KAAK,CAE9B,IAAI,CAAC,MAAM,CAAG,KAEd,EAAI,IAAI,CAAC,QAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAC3C,CAEA,MAAM,KAAK,CAAM,CAAE,CACf,IAAI,CAAC,CAAA,CAAwB,GAE7B,MAAM,IAAI,CAAC,CAAA,CAAa,CAAC,GAEzB,IAAI,CAAC,CAAA,CAAkB,GAEvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA8B,IAAI,EAGhD,IAAM,EAAkB,IAAI,CAAC,GAAG,EAAE,QAAQ,UAAU,GAChD,CAAA,GAAmB,AAAuC,QAAvC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IACrC,IAAI,CAAC,MAAM,CAAC,EAEpB,CAEA,OAAO,CAAG,CAAE,CACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+BAAgC,GAE1C,GAAO,AAA2B,QAA3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IACzB,IAAI,CAAC,WAAW,CAAG,MACnB,IAAI,CAAC,MAAM,CAAC,SAAS,GACrB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA,CAAc,CAAC,IAE9C,IAAI,CAAC,OAAO,CAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAErC,IAAI,CAAC,WAAW,CAAG,SACnB,IAAI,CAAC,IAAI,GACT,IAAI,CAAC,MAAM,CAAC,SAAS,GAE7B,CAEA,cAAc,CAAO,CAAE,CACnB,IAAI,CAAC,OAAO,CAAG,CACnB,CAEA,UAAU,CAAM,CAAE,CACd,IAAI,CAAC,UAAU,CAAG,CACtB,CAEA,IAAI,QAAS,CACT,MAAO,AAAqB,QAArB,IAAI,CAAC,WAAW,AAC3B,CAEA,IAAI,SAAU,OACV,CAAI,CAAC,IAAI,CAAC,MAAM,EAET,AAA2C,SAA3C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,AACjD,CAEA,IAAI,QAAQ,CAAO,CAAE,CACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAiC,GAE/C,IAAI,CAAC,CAAA,CAAc,CAAC,CAAC,IAAI,CAAC,MAAM,EAE5B,IAAI,CAAC,MAAM,CAAC,YAAY,GACxB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAG,EAAU,QAAU,OAEzD,GAAS,IAAI,CAAC,MAAM,CAAC,MAAM,GAEvC,CAEA,IAAI,YAAa,CACb,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,AACjC,CAEA,IAAI,WAAW,CAAM,CAAE,CACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAoC,GAClD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAG,CAC7B,CAEA,MAAO,CACH,IAAI,CAAC,OAAO,CAAG,CAAA,CACnB,CAEA,MAAO,CACH,IAAI,CAAC,OAAO,CAAG,CAAA,CACnB,CAEA,SAAU,CACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAEd,IAAI,CAAC,CAAA,CAAqB,GAE1B,IAAI,CAAC,MAAM,CAAC,OAAO,GACnB,IAAI,eAAe,CAAC,IAAI,CAAC,eAAe,EACxC,IAAI,CAAC,MAAM,CAAG,IAClB,CAEA,MAAM,CAAA,CAAa,CAAC,EAAS,CAAC,CAAC,EAC3B,GAAI,CAAC,EAAO,YAAY,CACpB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAO,YAAY,CAAE,kDAGnD,AAAC,CAAA,EAAO,SAAS,EACjB,CAAA,EAAO,SAAS,CACZ,yFAFR,EAKI,EAAO,cAAc,EACrB,CAAA,EAAO,cAAc,CAAG,OAAO,OAAO,CAAC,EAAO,cAAc,EAAE,MAAM,CAAC,CAAC,EAAK,CAAC,EAAK,EAAM,IACnF,CAAG,CAAC,EAAI,CAAG,IAAI,CAAC,CAAA,CAAc,CAAC,GACxB,GACR,CAAC,EAAJ,EAGJ,IAAI,CAAC,MAAM,CAAG,GAAI,CAAA,EAAA,EAAA,OAAgB,AAAhB,EAAiB,CAC/B,WAAY,EACZ,MAAO,IAAI,CAAC,MAAM,CAClB,GAAG,CAAM,CACT,UAAW,MAAM,IAAI,CAAC,CAAA,CAAW,CAAC,GAClC,aAAc,IAAI,CAAC,CAAA,CAAc,CAAC,EAAO,YAAY,EACrD,MAAO,EAAO,KAAK,EAAE,IAAI,AAAC,GAAS,IAAI,CAAC,CAAA,CAAc,CAAC,GAC3D,GAEA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAG,0BACrC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAG;A;A;A;A;A;A;A;AAQzB,wBAAA,CAAC,AACrB,CAEA,CAAA,CAAkB,GACd,IAAI,CAAC,aAAa,CAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAC1C,IAAI,CAAC,cAAc,CAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAClD,IAAI,CAAC,aAAa,CAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAE7C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAY,IAAI,CAAC,cAAc,EAC3C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,eAAgB,IAAI,CAAC,aAAa,EAC9C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAkB,IAAI,CAAC,aAAa,EAEhD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EACnD,CAEA,CAAA,CAAqB,GACjB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAY,IAAI,CAAC,cAAc,EAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,eAAgB,IAAI,CAAC,aAAa,EAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAkB,IAAI,CAAC,aAAa,CACrD,CAEA,CAAA,CAAc,CAAC,CAAO,EAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAG,EAAU,UAAY,QAC1D,CAEA,CAAA,CAAc,CAAC,CAAG,SACd,AAAI,IAAI,CAALine truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,a,E,E,c,C,GAEe,SAAS,EAAsB,CAAM,EAClD,OAAO,AAAC,IACN,IAAM,EAAU,GAAI,CAAA,EAAA,EAAA,OAAY,AAAZ,EAAc,EAAK,GACvC,MAAO,CACL,KAAM,wBACN,OAAQ,EAAQ,MAAM,CACtB,QAAS,EAAQ,OAAO,CACxB,KAAM,EAAQ,IAAI,CAAC,IAAI,CAAC,GACxB,OAAQ,EAAQ,MAAM,CAAC,IAAI,CAAC,GAC5B,KAAM,EAAQ,IAAI,CAAC,IAAI,CAAC,GACxB,KAAM,EAAQ,IAAI,CAAC,IAAI,CAAC,GACxB,QAAS,EAAQ,OAAO,CAAC,IAAI,CAAC,EAChC,CACF,CACF,CAEI,AAAkB,aAAlB,OAAO,QACT,CAAA,OAAO,qBAAqB,CAAG,CADjC,C,E,C,Y,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GClBA,IAAA,EAAA,EAAA,e,E,E,c,C,GAEA,IAAM,EAAqB,CAAC;AAAA,kBAAiC,CAAC,AAEzC,CAAA,EAAA,OAAA,CAAN,MACb,YAAY,CAAG,CAAE,CAAM,CAAE,CACvB,GAAM,CAAE,YAAA,CAAW,CAAE,SAAA,CAAQ,CAAE,CAAG,CAElC,CAAA,IAAI,CAAC,GAAG,CAAG,EACX,IAAI,CAAC,MAAM,CAAG,EAAS,MAAM,CAC7B,IAAI,CAAC,OAAO,CAAG,EAAS,SAAS,CACjC,IAAI,CAAC,KAAK,CAAG,EAAY,KAAK,CAE9B,IAAI,CAAC,MAAM,CAAG,KAEd,EAAI,IAAI,CAAC,QAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GACzC,CAEA,MAAM,KAAK,CAAM,CAAE,CACjB,IAAI,CAAC,CAAA,CAAwB,GAE7B,MAAM,IAAI,CAAC,CAAA,CAAa,CAAC,GAEzB,IAAI,CAAC,CAAA,CAAkB,GAEvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA8B,IAAI,EAGhD,IAAM,EAAkB,IAAI,CAAC,GAAG,EAAE,QAAQ,UAAU,GAChD,CAAA,GAAmB,AAAuC,QAAvC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IACvC,IAAI,CAAC,MAAM,CAAC,EAEhB,CAEA,OAAO,CAAG,CAAE,CACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+BAAgC,GAE1C,GAAO,AAA2B,QAA3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAC3B,IAAI,CAAC,WAAW,CAAG,MACnB,IAAI,CAAC,MAAM,CAAC,SAAS,GACrB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA,CAAc,CAAC,IAE9C,IAAI,CAAC,OAAO,CAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAGrC,IAAI,CAAC,WAAW,CAAG,SACnB,IAAI,CAAC,IAAI,GACT,IAAI,CAAC,MAAM,CAAC,SAAS,GAEzB,CAEA,cAAc,CAAO,CAAE,CACrB,IAAI,CAAC,OAAO,CAAG,CACjB,CAEA,UAAU,CAAM,CAAE,CAChB,IAAI,CAAC,UAAU,CAAG,CACpB,CAEA,IAAI,QAAS,CACX,MAAO,AAAqB,QAArB,IAAI,CAAC,WAAW,AACzB,CAEA,IAAI,SAAU,OACZ,CAAI,CAAC,IAAI,CAAC,MAAM,EAGT,AAA2C,SAA3C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,AAC/C,CAEA,IAAI,QAAQ,CAAO,CAAE,CACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAiC,GAE/C,IAAI,CAAC,CAAA,CAAc,CAAC,CAAC,IAAI,CAAC,MAAM,EAE5B,IAAI,CAAC,MAAM,CAAC,YAAY,GAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAG,EAAU,QAAU,OAEzD,GACF,IAAI,CAAC,MAAM,CAAC,MAAM,GAExB,CAEA,IAAI,YAAa,CACf,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,AAC/B,CAEA,IAAI,WAAW,CAAM,CAAE,CACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAoC,GAClD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAG,CAC3B,CAEA,MAAO,CACL,IAAI,CAAC,OAAO,CAAG,CAAA,CACjB,CAEA,MAAO,CACL,IAAI,CAAC,OAAO,CAAG,CAAA,CACjB,CAEA,SAAU,CACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAEd,IAAI,CAAC,CAAA,CAAqB,GAE1B,IAAI,CAAC,MAAM,CAAC,OAAO,GACnB,IAAI,eAAe,CAAC,IAAI,CAAC,eAAe,EACxC,IAAI,CAAC,MAAM,CAAG,IAChB,CAEA,MAAM,CAAA,CAAa,CAAC,EAAS,CAAC,CAAC,EAC7B,GAAI,CAAC,EAAO,YAAY,CACtB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAO,YAAY,CAAE,kDAGjD,AAAC,CAAA,EAAO,SAAS,EACnB,CAAA,EAAO,SAAS,CACJ,yFAFd,EAKI,EAAO,cAAc,EACvB,CAAA,EAAO,cAAc,CAAG,OAAO,OAAO,CAAC,EAAO,cAAc,EAAE,MAAM,CAAC,CAAC,EAAK,CAAC,EAAK,EAAM,IACrF,CAAG,CAAC,EAAI,CAAG,IAAI,CAAC,CAAA,CAAc,CAAC,GACxB,GACN,CAAC,EAAJ,EAGF,IAAI,CAAC,MAAM,CAAG,GAAI,CAAA,EAAA,EAAA,OAAgB,AAAhB,EAAiB,CACjC,WAAY,EACZ,MAAO,IAAI,CAAC,MAAM,CAClB,GAAG,CAAM,CACT,UAAW,MAAM,IAAI,CAAC,CAAA,CAAW,CAAC,GAClC,aAAc,IAAI,CAAC,CAAA,CAAc,CAAC,EAAO,YAAY,EACrD,MAAO,EAAO,KAAK,EAAE,IAAI,AAAA,GAAQ,IAAI,CAAC,CAAA,CAAc,CAAC,GACvD,GAEA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAG,0BACrC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAG;A;A;A;A;A;A;A;AAQrB,wBAAA,CAAC,AACvB,CAEA,CAAA,CAAkB,GAChB,IAAI,CAAC,aAAa,CAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAC1C,IAAI,CAAC,cAAc,CAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAClD,IAAI,CAAC,aAAa,CAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAE7C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAY,IAAI,CAAC,cAAc,EAC3C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,eAAgB,IAAI,CAAC,aAAa,EAC9C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAkB,IAAI,CAAC,aAAa,EAEhD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EACjD,CAEA,CAAA,CAAqB,GACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAY,IAAI,CAAC,cAAc,EAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,eAAgB,IAAI,CAAC,aAAa,EAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAkB,IAAI,CAAC,aAAa,CACnD,CAEA,CAAA,CAAc,CAAC,CAAO,EACpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAG,EAAU,UAAY,QACxD,CAEA,CAAA,CAAc,CAAC,CAAG,SAChB,AAAI,IAAILine truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,s,i,n,a,o){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[s]&&l[s],d=c.i||{},u=c.cache||{},v="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(i[t])return i[t];var n="function"==typeof l[s]&&l[s];if(!r&&n)return n(t,!0);if(c)return c(t,!0);if(v&&"string"==typeof t)return v(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(r){var s=e[t][1][r];return null!=s?s:r},d.cache={};var o=u[t]=new f.Module(t);e[t][0].call(o.exports,d,o,o.exports,l)}return u[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=v,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=d,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[s]}}),l[s]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({jz4E5:[function(e,t,r,s){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"default",()=>o);var n=e("./adapter"),a=i.interopDefault(n);function o(e){return t=>{let r=new(0,a.default)(t,e);return{name:"artplayerPluginLibass",libass:r.libass,visible:r.visible,init:r.init.bind(r),switch:r.switch.bind(r),show:r.show.bind(r),hide:r.hide.bind(r),destroy:r.destroy.bind(r)}}}"undefined"!=typeof window&&(window.artplayerPluginLibass=o)},{"./adapter":"b8yho","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],b8yho:[function(e,t,r,s){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("libass-wasm"),a=i.interopDefault(n);let o=`[Script Info] ScriptType: v4.00+`;r.default=class{constructor(e,t){let{constructor:r,template:s}=e;this.art=e,this.$video=s.$video,this.$webvtt=s.$subtitle,this.utils=r.utils,this.libass=null,e.once("ready",this.init.bind(this,t))}async init(e){this.#e(),await this.#t(e),this.#r(),this.art.emit("artplayerPluginLibass:init",this);let t=this.art?.option?.subtitle?.url;t&&"ass"===this.utils.getExt(t)&&this.switch(t)}switch(e){this.art.emit("artplayerPluginLibass:switch",e),e&&"ass"===this.utils.getExt(e)?(this.currentType="ass",this.libass.freeTrack(),this.libass.setTrackByUrl(this.#s(e)),this.visible=this.art.subtitle.show):(this.currentType="webvtt",this.hide(),this.libass.freeTrack())}setVisibility(e){this.visible=e}setOffset(e){this.timeOffset=e}get active(){return"ass"===this.currentType}get visible(){return!!this.libass&&"none"!==this.libass.canvasParent.style.display}set visible(e){this.art.emit("artplayerPluginLibass:visible",e),this.#i(!this.active),this.libass.canvasParent&&(this.libass.canvasParent.style.display=e?"block":"none",e&&this.libass.resize())}get timeOffset(){return this.libass.timeOffset}set timeOffset(e){this.art.emit("artplayerPluginLibass:timeOffset",e),this.libass.timeOffset=e}show(){this.visible=!0}hide(){this.visible=!1}destroy(){this.art.emit("artplayerPluginLibass:destroy"),this.#n(),this.libass.dispose(),URL.revokeObjectURL(this.workerScriptUrl),this.libass=null}async #t(e={}){if(!e.fallbackFont)return this.utils.errorHandle(e.fallbackFont,"artplayerPluginLibass: fallbackFont is required");e.workerUrl||(e.workerUrl="https://cdnjs.cloudflare.com/ajax/libs/libass-wasm/4.1.0/js/subtitles-octopus-worker.js"),e.availableFonts&&(e.availableFonts=Object.entries(e.availableFonts).reduce((e,[t,r])=>(e[t]=this.#s(r),e),{})),this.libass=new(0,a.default)({subContent:o,video:this.$video,...e,workerUrl:await this.#a(e),fallbackFont:this.#s(e.fallbackFont),fonts:e.fonts?.map(e=>this.#s(e))}),this.libass.canvasParent.className="artplayer-plugin-libass",this.libass.canvasParent.style.cssText=` position: absolute; top: 0; left: 0; width: 100%; height: 100%; user-select: none; pointer-events: none; z-index: 20;`}#r(){this.switchHandler=this.switch.bind(this),this.visibleHandler=this.setVisibility.bind(this),this.offsetHandler=this.setOffset.bind(this),this.art.on("subtitle",this.visibleHandler),this.art.on("subtitleLoad",this.switchHandler),this.art.on("subtitleOffset",this.offsetHandler),this.art.once("destroy",this.destroy.bind(this))}#n(){this.art.off("subtitle",this.visibleHandler),this.art.off("subtitleLoad",this.switchHandler),this.art.off("subtitleOffset",this.offsetHandler)}#i(e){this.$webvtt.style.visibility=e?"visible":"hidden"}#s(e){return this.#o(e)?e:new URL(e,document.baseURI).toString()}#o(e){return/^https?:\/\//.test(e)}#a({workerUrl:e,wasmUrl:t}){return new Promise(r=>{fetch(e).then(e=>e.text()).then(s=>{let i=s,n=new Blob([i=i.replace(/wasmBinaryFile\s*=\s*"(subtitles-octopus-worker\.wasm)"/g,(r,s)=>(t=Line truncated
!function(e,t,r,s,i,n,a,o){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[s]&&l[s],d=c.i||{},u=c.cache||{},v="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(i[t])return i[t];var n="function"==typeof l[s]&&l[s];if(!r&&n)return n(t,!0);if(c)return c(t,!0);if(v&&"string"==typeof t)return v(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(r){var s=e[t][1][r];return null!=s?s:r},d.cache={};var o=u[t]=new f.Module(t);e[t][0].call(o.exports,d,o,o.exports,l)}return u[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=v,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=d,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[s]}}),l[s]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"9G2Gn":[function(e,t,r,s){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"default",()=>o);var n=e("./adapter"),a=i.interopDefault(n);function o(e){return t=>{let r=new(0,a.default)(t,e);return{name:"artplayerPluginLibass",libass:r.libass,visible:r.visible,init:r.init.bind(r),switch:r.switch.bind(r),show:r.show.bind(r),hide:r.hide.bind(r),destroy:r.destroy.bind(r)}}}"undefined"!=typeof window&&(window.artplayerPluginLibass=o)},{"./adapter":"aO4ju","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aO4ju:[function(e,t,r,s){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("libass-wasm"),a=i.interopDefault(n);let o=`[Script Info] ScriptType: v4.00+`;r.default=class{constructor(e,t){let{constructor:r,template:s}=e;this.art=e,this.$video=s.$video,this.$webvtt=s.$subtitle,this.utils=r.utils,this.libass=null,e.once("ready",this.init.bind(this,t))}async init(e){this.#e(),await this.#t(e),this.#r(),this.art.emit("artplayerPluginLibass:init",this);let t=this.art?.option?.subtitle?.url;t&&"ass"===this.utils.getExt(t)&&this.switch(t)}switch(e){this.art.emit("artplayerPluginLibass:switch",e),e&&"ass"===this.utils.getExt(e)?(this.currentType="ass",this.libass.freeTrack(),this.libass.setTrackByUrl(this.#s(e)),this.visible=this.art.subtitle.show):(this.currentType="webvtt",this.hide(),this.libass.freeTrack())}setVisibility(e){this.visible=e}setOffset(e){this.timeOffset=e}get active(){return"ass"===this.currentType}get visible(){return!!this.libass&&"none"!==this.libass.canvasParent.style.display}set visible(e){this.art.emit("artplayerPluginLibass:visible",e),this.#i(!this.active),this.libass.canvasParent&&(this.libass.canvasParent.style.display=e?"block":"none",e&&this.libass.resize())}get timeOffset(){return this.libass.timeOffset}set timeOffset(e){this.art.emit("artplayerPluginLibass:timeOffset",e),this.libass.timeOffset=e}show(){this.visible=!0}hide(){this.visible=!1}destroy(){this.art.emit("artplayerPluginLibass:destroy"),this.#n(),this.libass.dispose(),URL.revokeObjectURL(this.workerScriptUrl),this.libass=null}async #t(e={}){if(!e.fallbackFont)return this.utils.errorHandle(e.fallbackFont,"artplayerPluginLibass: fallbackFont is required");e.workerUrl||(e.workerUrl="https://cdnjs.cloudflare.com/ajax/libs/libass-wasm/4.1.0/js/subtitles-octopus-worker.js"),e.availableFonts&&(e.availableFonts=Object.entries(e.availableFonts).reduce((e,[t,r])=>(e[t]=this.#s(r),e),{})),this.libass=new(0,a.default)({subContent:o,video:this.$video,...e,workerUrl:await this.#a(e),fallbackFont:this.#s(e.fallbackFont),fonts:e.fonts?.map(e=>this.#s(e))}),this.libass.canvasParent.className="artplayer-plugin-libass",this.libass.canvasParent.style.cssText=` position: absolute; top: 0; left: 0; width: 100%; height: 100%; user-select: none; pointer-events: none; z-index: 20;`}#r(){this.switchHandler=this.switch.bind(this),this.visibleHandler=this.setVisibility.bind(this),this.offsetHandler=this.setOffset.bind(this),this.art.on("subtitle",this.visibleHandler),this.art.on("subtitleLoad",this.switchHandler),this.art.on("subtitleOffset",this.offsetHandler),this.art.once("destroy",this.destroy.bind(this))}#n(){this.art.off("subtitle",this.visibleHandler),this.art.off("subtitleLoad",this.switchHandler),this.art.off("subtitleOffset",this.offsetHandler)}#i(e){this.$webvtt.style.visibility=e?"visible":"hidden"}#s(e){return this.#o(e)?e:new URL(e,document.baseURI).toString()}#o(e){return/^https?:\/\//.test(e)}#a({workerUrl:e,wasmUrl:t}){return new Promise(r=>{fetch(e).then(e=>e.text()).then(s=>{let i=s,n=new Blob([i=i.replace(/wasmBinaryFile\s*=\s*"(subtitles-octopus-worker\.wasm)"/g,(r,s)=>(Line truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,s,i,a){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof c[n]&&c[n],l=u.i||{},f=u.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var s="function"==typeof c[n]&&c[n];if(!r&&s)return s(t,!0);if(u)return u(t,!0);if(d&&"string"==typeof t)return d(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var a=f[t]=new p.Module(t);e[t][0].call(a.exports,l,a,a.exports,c)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=d,this.exports={}},p.modules=e,p.cache=f,p.parent=u,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return c[n]}}),c[n]=p;for(var v=0;v<t.length;v++)p(t[v]);if(r){var h=p(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({bzF6W:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return a});var s=e("./adapter"),i=o.interopDefault(s);function a(e){return function(t){var r=new(0,i.default)(t,e);return{name:"artplayerPluginLibass",libass:r.libass,visible:r.visible,init:r.init.bind(r),switch:r.switch.bind(r),show:r.show.bind(r),hide:r.hide.bind(r),destroy:r.destroy.bind(r)}}}"undefined"!=typeof window&&(window.artplayerPluginLibass=a)},{"./adapter":"kvT3o","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],kvT3o:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return O});var s=e("@swc/helpers/cjs/_async_to_generator.cjs"),i=e("@swc/helpers/cjs/_class_call_check.cjs"),a=e("@swc/helpers/cjs/_class_private_method_get.cjs"),c=e("@swc/helpers/cjs/_class_private_method_init.cjs"),u=e("@swc/helpers/cjs/_create_class.cjs"),l=e("@swc/helpers/cjs/_object_spread.cjs"),f=e("@swc/helpers/cjs/_object_spread_props.cjs"),d=e("@swc/helpers/cjs/_sliced_to_array.cjs"),p=e("@swc/helpers/cjs/_type_of.cjs"),v=e("@swc/helpers/cjs/_ts_generator.cjs"),h=e("libass-wasm"),b=o.interopDefault(h),y=new WeakSet,m=new WeakSet,w=new WeakSet,g=new WeakSet,_=new WeakSet,k=new WeakSet,j=new WeakSet,x=new WeakSet,O=function(){"use strict";function e(t,r){(0,i._)(this,e),(0,c._)(this,y),(0,c._)(this,m),(0,c._)(this,w),(0,c._)(this,g),(0,c._)(this,_),(0,c._)(this,k),(0,c._)(this,j),(0,c._)(this,x);var n=t.constructor,o=t.template;this.art=t,this.$video=o.$video,this.$webvtt=o.$subtitle,this.utils=n.utils,this.libass=null,t.once("ready",this.init.bind(this,r))}return(0,u._)(e,[{key:"init",value:function(e){var t=this;return(0,s._)(function(){var r,n,o,s;return(0,v._)(this,function(i){switch(i.label){case 0:return(0,a._)(t,x,F).call(t),[4,(0,a._)(t,y,E).call(t,e)];case 1:return i.sent(),(0,a._)(t,m,L).call(t),t.art.emit("artplayerPluginLibass:init",t),(s=null==(o=t.art)||null==(n=o.option)||null==(r=n.subtitle)?void 0:r.url)&&"ass"===t.utils.getExt(s)&&t.switch(s),[2]}})})()}},{key:"switch",value:function(e){this.art.emit("artplayerPluginLibass:switch",e),e&&"ass"===this.utils.getExt(e)?(this.currentType="ass",this.libass.freeTrack(),this.libass.setTrackByUrl((0,a._)(this,_,M).call(this,e)),this.visible=this.art.subtitle.show):(this.currentType="webvtt",this.hide(),this.libass.freeTrack())}},{key:"setVisibility",value:function(e){this.visible=e}},{key:"setOffset",value:function(e){this.timeOffset=e}},{key:"active",get:function(){return"ass"===this.currentType}},{key:"visible",get:function(){return!!this.libass&&"none"!==this.libass.canvasParent.style.display},set:function(e){this.art.emit("artplayerPluginLibass:visible",e),(0,a._)(this,g,S).call(this,!this.active),this.libass.canvasParent&&(this.libass.canvasParent.style.display=e?"block":"none",e&&this.libass.resize())}},{key:"timeOffset",get:function(){return this.libass.timeOffset},set:function(e){this.art.emit("artplayerPluginLibass:timeOffset",e),this.libass.timeOffset=e}},{key:"show",value:function(){this.visible=!0}},{key:"hide",value:function(){this.visible=!1}},{key:"destroy",value:function(){this.art.emit("artplayerPluginLibass:destroy"),(0,a._)(this,w,T).call(this),this.libass.dispose(),URL.revokeObjectURL(this.workerScriptUrl),this.libass=null}}]),e}();function E(){return P.apply(this,arguments)}function P(){return(P=(0,s._)(function(){var e,t,r,n,o,s,i,c=arguments;return(0,v._)(this,function(u){switch(u.label){case 0:if(e=this,!(t=c.length>0&&void 0!==c[0]?c[0]:{}).fallbackFont)return[2,this.utils.errorHandle(t.fallbackFont,"artplayerPluginLibass: fallbackFont Line truncated
!function(e,t,r,n,o,i,s,a){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof c[n]&&c[n],u=l.i||{},f=l.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof c[n]&&c[n];if(!r&&i)return i(t,!0);if(l)return l(t,!0);if(d&&"string"==typeof t)return d(t);var s=Error("Cannot find module '"+t+"'");throw s.code="MODULE_NOT_FOUND",s}u.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},u.cache={};var a=f[t]=new p.Module(t);e[t][0].call(a.exports,u,a,a.exports,c)}return f[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=d,this.exports={}},p.modules=e,p.cache=f,p.parent=l,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=u,p.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(p,"root",{get:function(){return c[n]}}),c[n]=p;for(var h=0;h<t.length;h++)p(t[h]);if(r){var v=p(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=v:"function"==typeof define&&define.amd&&define(function(){return v})}}({"4kqKD":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return a});var i=e("./adapter"),s=o.interopDefault(i);function a(e){return function(t){var r=new(0,s.default)(t,e);return{name:"artplayerPluginLibass",libass:r.libass,visible:r.visible,init:r.init.bind(r),switch:r.switch.bind(r),show:r.show.bind(r),hide:r.hide.bind(r),destroy:r.destroy.bind(r)}}}"undefined"!=typeof window&&(window.artplayerPluginLibass=a)},{"./adapter":"jEGLL","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],jEGLL:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return O});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),a=e("@swc/helpers/cjs/_class_private_method_get.cjs"),c=e("@swc/helpers/cjs/_class_private_method_init.cjs"),l=e("@swc/helpers/cjs/_create_class.cjs"),u=e("@swc/helpers/cjs/_object_spread.cjs"),f=e("@swc/helpers/cjs/_object_spread_props.cjs"),d=e("@swc/helpers/cjs/_sliced_to_array.cjs"),p=e("@swc/helpers/cjs/_type_of.cjs"),h=e("@swc/helpers/cjs/_ts_generator.cjs"),v=e("libass-wasm"),b=o.interopDefault(v),y=new WeakSet,m=new WeakSet,w=new WeakSet,g=new WeakSet,_=new WeakSet,k=new WeakSet,j=new WeakSet,x=new WeakSet,O=function(){"use strict";function e(t,r){(0,s._)(this,e),(0,c._)(this,y),(0,c._)(this,m),(0,c._)(this,w),(0,c._)(this,g),(0,c._)(this,_),(0,c._)(this,k),(0,c._)(this,j),(0,c._)(this,x);var n=t.constructor,o=t.template;this.art=t,this.$video=o.$video,this.$webvtt=o.$subtitle,this.utils=n.utils,this.libass=null,t.once("ready",this.init.bind(this,r))}return(0,l._)(e,[{key:"init",value:function(e){return(0,i._)(function(){var t,r,n,o;return(0,h._)(this,function(i){switch(i.label){case 0:return(0,a._)(this,x,R).call(this),[4,(0,a._)(this,y,E).call(this,e)];case 1:return i.sent(),(0,a._)(this,m,P).call(this),this.art.emit("artplayerPluginLibass:init",this),(o=null==(n=this.art)||null==(r=n.option)||null==(t=r.subtitle)?void 0:t.url)&&"ass"===this.utils.getExt(o)&&this.switch(o),[2]}})}).call(this)}},{key:"switch",value:function(e){this.art.emit("artplayerPluginLibass:switch",e),e&&"ass"===this.utils.getExt(e)?(this.currentType="ass",this.libass.freeTrack(),this.libass.setTrackByUrl((0,a._)(this,_,T).call(this,e)),this.visible=this.art.subtitle.show):(this.currentType="webvtt",this.hide(),this.libass.freeTrack())}},{key:"setVisibility",value:function(e){this.visible=e}},{key:"setOffset",value:function(e){this.timeOffset=e}},{key:"active",get:function(){return"ass"===this.currentType}},{key:"visible",get:function(){return!!this.libass&&"none"!==this.libass.canvasParent.style.display},set:function(e){this.art.emit("artplayerPluginLibass:visible",e),(0,a._)(this,g,S).call(this,!this.active),this.libass.canvasParent&&(this.libass.canvasParent.style.display=e?"block":"none",e&&this.libass.resize())}},{key:"timeOffset",get:function(){return this.libass.timeOffset},set:function(e){this.art.emit("artplayerPluginLibass:timeOffset",e),this.libass.timeOffset=e}},{key:"show",value:function(){this.visible=!0}},{key:"hide",value:function(){this.visible=!1}},{key:"destroy",value:function(){this.art.emit("artplayerPluginLibass:destroy"),(0,a._)(this,w,L).call(this),this.libass.dispose(),URL.revokeObjectURL(this.workerScriptUrl),this.libass=null}}]),e}();function E(){return(0,i._)(function(){var e,t,r,n,o,i,s,c=arguments;return(0,h._)(this,function(l){switch(l.label){case 0:if(e=this,!(t=c.length>0&&void 0!==c[0]?c[0]:{}).fallbackFont)return[2,this.utils.errorHandle(t.fallbackFont,"artplayerPluginLibass: fallbackFont is required")]Line truncated
+34 -34
View File
@@ -1,36 +1,36 @@
{
"license": "MIT",
"version": "1.0.0",
"name": "artplayer-plugin-libass",
"description": "A powerful ass subtitle renderer `libass-wasm` for ArtPlayer",
"main": "dist/artplayer-plugin-libass.js",
"legacy": "dist/artplayer-plugin-libass.legacy.js",
"module": "dist/artplayer-plugin-libass.esm.js",
"types": "types/artplayer-plugin-libass.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-libass.esm.js",
"require": "./dist/artplayer-plugin-libass.js",
"default": "./dist/artplayer-plugin-libass.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"dependencies": {
"libass-wasm": "^4.1.0"
},
"devDependencies": {
"@hrgui/libass-wasm-ts": "^1.0.3"
}
"name": "artplayer-plugin-libass",
"version": "1.0.0",
"description": "A powerful ass subtitle renderer `libass-wasm` for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-libass.esm.js",
"require": "./dist/artplayer-plugin-libass.js",
"default": "./dist/artplayer-plugin-libass.js"
},
"main": "dist/artplayer-plugin-libass.js",
"legacy": "dist/artplayer-plugin-libass.legacy.js",
"module": "dist/artplayer-plugin-libass.esm.js",
"types": "types/artplayer-plugin-libass.d.ts",
"browserslist": "last 1 Chrome version",
"dependencies": {
"libass-wasm": "^4.1.0"
},
"devDependencies": {
"@hrgui/libass-wasm-ts": "^1.0.3"
}
}
+203 -198
View File
@@ -1,138 +1,141 @@
import SubtitlesOctopus from 'libass-wasm';
import SubtitlesOctopus from 'libass-wasm'
const defaultAssSubtitle = `[Script Info]\nScriptType: v4.00+`;
const defaultAssSubtitle = `[Script Info]\nScriptType: v4.00+`
export default class LibassAdapter {
constructor(art, option) {
const { constructor, template } = art;
constructor(art, option) {
const { constructor, template } = art
this.art = art;
this.$video = template.$video;
this.$webvtt = template.$subtitle;
this.utils = constructor.utils;
this.art = art
this.$video = template.$video
this.$webvtt = template.$subtitle
this.utils = constructor.utils
this.libass = null;
this.libass = null
art.once('ready', this.init.bind(this, option));
art.once('ready', this.init.bind(this, option))
}
async init(option) {
this.#checkWebAssemblySupport()
await this.#createLibass(option)
this.#addEventListeners()
this.art.emit('artplayerPluginLibass:init', this)
// set initial subtitle
const initialSubtitle = this.art?.option?.subtitle?.url
if (initialSubtitle && this.utils.getExt(initialSubtitle) === 'ass') {
this.switch(initialSubtitle)
}
}
switch(url) {
this.art.emit('artplayerPluginLibass:switch', url)
if (url && this.utils.getExt(url) === 'ass') {
this.currentType = 'ass'
this.libass.freeTrack()
this.libass.setTrackByUrl(this.#toAbsoluteUrl(url))
this.visible = this.art.subtitle.show
}
else {
this.currentType = 'webvtt'
this.hide()
this.libass.freeTrack()
}
}
setVisibility(visible) {
this.visible = visible
}
setOffset(offset) {
this.timeOffset = offset
}
get active() {
return this.currentType === 'ass'
}
get visible() {
if (!this.libass)
return false
return this.libass.canvasParent.style.display !== 'none'
}
set visible(visible) {
this.art.emit('artplayerPluginLibass:visible', visible)
this.#setVttVisible(!this.active)
if (this.libass.canvasParent) {
this.libass.canvasParent.style.display = visible ? 'block' : 'none'
if (visible)
this.libass.resize()
}
}
get timeOffset() {
return this.libass.timeOffset
}
set timeOffset(offset) {
this.art.emit('artplayerPluginLibass:timeOffset', offset)
this.libass.timeOffset = offset
}
show() {
this.visible = true
}
hide() {
this.visible = false
}
destroy() {
this.art.emit('artplayerPluginLibass:destroy')
this.#removeEventListeners()
this.libass.dispose()
URL.revokeObjectURL(this.workerScriptUrl)
this.libass = null
}
async #createLibass(option = {}) {
if (!option.fallbackFont) {
return this.utils.errorHandle(option.fallbackFont, 'artplayerPluginLibass: fallbackFont is required')
}
async init(option) {
this.#checkWebAssemblySupport();
await this.#createLibass(option);
this.#addEventListeners();
this.art.emit('artplayerPluginLibass:init', this);
// set initial subtitle
const initialSubtitle = this.art?.option?.subtitle?.url;
if (initialSubtitle && this.utils.getExt(initialSubtitle) === 'ass') {
this.switch(initialSubtitle);
}
if (!option.workerUrl) {
option.workerUrl
= 'https://cdnjs.cloudflare.com/ajax/libs/libass-wasm/4.1.0/js/subtitles-octopus-worker.js'
}
switch(url) {
this.art.emit('artplayerPluginLibass:switch', url);
if (url && this.utils.getExt(url) === 'ass') {
this.currentType = 'ass';
this.libass.freeTrack();
this.libass.setTrackByUrl(this.#toAbsoluteUrl(url));
this.visible = this.art.subtitle.show;
} else {
this.currentType = 'webvtt';
this.hide();
this.libass.freeTrack();
}
if (option.availableFonts) {
option.availableFonts = Object.entries(option.availableFonts).reduce((acc, [key, value]) => {
acc[key] = this.#toAbsoluteUrl(value)
return acc
}, {})
}
setVisibility(visible) {
this.visible = visible;
}
this.libass = new SubtitlesOctopus({
subContent: defaultAssSubtitle,
video: this.$video,
...option,
workerUrl: await this.#loadWorker(option),
fallbackFont: this.#toAbsoluteUrl(option.fallbackFont),
fonts: option.fonts?.map(font => this.#toAbsoluteUrl(font)),
})
setOffset(offset) {
this.timeOffset = offset;
}
get active() {
return this.currentType === 'ass';
}
get visible() {
if (!this.libass) return false;
return this.libass.canvasParent.style.display !== 'none';
}
set visible(visible) {
this.art.emit('artplayerPluginLibass:visible', visible);
this.#setVttVisible(!this.active);
if (this.libass.canvasParent) {
this.libass.canvasParent.style.display = visible ? 'block' : 'none';
if (visible) this.libass.resize();
}
}
get timeOffset() {
return this.libass.timeOffset;
}
set timeOffset(offset) {
this.art.emit('artplayerPluginLibass:timeOffset', offset);
this.libass.timeOffset = offset;
}
show() {
this.visible = true;
}
hide() {
this.visible = false;
}
destroy() {
this.art.emit('artplayerPluginLibass:destroy');
this.#removeEventListeners();
this.libass.dispose();
URL.revokeObjectURL(this.workerScriptUrl);
this.libass = null;
}
async #createLibass(option = {}) {
if (!option.fallbackFont) {
return this.utils.errorHandle(option.fallbackFont, 'artplayerPluginLibass: fallbackFont is required');
}
if (!option.workerUrl) {
option.workerUrl =
'https://cdnjs.cloudflare.com/ajax/libs/libass-wasm/4.1.0/js/subtitles-octopus-worker.js';
}
if (option.availableFonts) {
option.availableFonts = Object.entries(option.availableFonts).reduce((acc, [key, value]) => {
acc[key] = this.#toAbsoluteUrl(value);
return acc;
}, {});
}
this.libass = new SubtitlesOctopus({
subContent: defaultAssSubtitle,
video: this.$video,
...option,
workerUrl: await this.#loadWorker(option),
fallbackFont: this.#toAbsoluteUrl(option.fallbackFont),
fonts: option.fonts?.map((font) => this.#toAbsoluteUrl(font)),
});
this.libass.canvasParent.className = 'artplayer-plugin-libass';
this.libass.canvasParent.style.cssText = `
this.libass.canvasParent.className = 'artplayer-plugin-libass'
this.libass.canvasParent.style.cssText = `
position: absolute;
top: 0;
left: 0;
@@ -140,82 +143,84 @@ export default class LibassAdapter {
height: 100%;
user-select: none;
pointer-events: none;
z-index: 20;`;
z-index: 20;`
}
#addEventListeners() {
this.switchHandler = this.switch.bind(this)
this.visibleHandler = this.setVisibility.bind(this)
this.offsetHandler = this.setOffset.bind(this)
this.art.on('subtitle', this.visibleHandler)
this.art.on('subtitleLoad', this.switchHandler)
this.art.on('subtitleOffset', this.offsetHandler)
this.art.once('destroy', this.destroy.bind(this))
}
#removeEventListeners() {
this.art.off('subtitle', this.visibleHandler)
this.art.off('subtitleLoad', this.switchHandler)
this.art.off('subtitleOffset', this.offsetHandler)
}
#setVttVisible(visible) {
this.$webvtt.style.visibility = visible ? 'visible' : 'hidden'
}
#toAbsoluteUrl(url) {
if (this.#isAbsoluteUrl(url))
return url
// handle absolute URL when the `Worker` of `BLOB` type loading network resources
return new URL(url, document.baseURI).toString()
}
#isAbsoluteUrl(url) {
return /^https?:\/\//.test(url)
}
#loadWorker({ workerUrl, wasmUrl }) {
return new Promise((resolve) => {
fetch(workerUrl)
.then(res => res.text())
.then((text) => {
let workerScriptContent = text
workerScriptContent = workerScriptContent.replace(
/wasmBinaryFile\s*=\s*"(subtitles-octopus-worker\.wasm)"/g,
(_match, wasm) => {
if (!wasmUrl) {
wasmUrl = new URL(wasm, workerUrl).toString()
}
else {
wasmUrl = this.#toAbsoluteUrl(wasmUrl)
}
return `wasmBinaryFile = "${wasmUrl}"`
},
)
const workerBlob = new Blob([workerScriptContent], { type: 'text/javascript' })
resolve(URL.createObjectURL(workerBlob))
})
})
}
#checkWebAssemblySupport() {
let supportsWebAssembly = false
try {
if (typeof WebAssembly === 'object' && typeof WebAssembly.instantiate === 'function') {
const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6D, 0x01, 0x00, 0x00, 0x00))
if (module instanceof WebAssembly.Module)
supportsWebAssembly = new WebAssembly.Instance(module) instanceof WebAssembly.Instance
}
}
catch (error) {
console.error('WebAssembly is not supported in this browser.', error)
supportsWebAssembly = false
}
#addEventListeners() {
this.switchHandler = this.switch.bind(this);
this.visibleHandler = this.setVisibility.bind(this);
this.offsetHandler = this.setOffset.bind(this);
this.art.on('subtitle', this.visibleHandler);
this.art.on('subtitleLoad', this.switchHandler);
this.art.on('subtitleOffset', this.offsetHandler);
this.art.once('destroy', this.destroy.bind(this));
}
#removeEventListeners() {
this.art.off('subtitle', this.visibleHandler);
this.art.off('subtitleLoad', this.switchHandler);
this.art.off('subtitleOffset', this.offsetHandler);
}
#setVttVisible(visible) {
this.$webvtt.style.visibility = visible ? 'visible' : 'hidden';
}
#toAbsoluteUrl(url) {
if (this.#isAbsoluteUrl(url)) return url;
// handle absolute URL when the `Worker` of `BLOB` type loading network resources
return new URL(url, document.baseURI).toString();
}
#isAbsoluteUrl(url) {
return /^https?:\/\//.test(url);
}
#loadWorker({ workerUrl, wasmUrl }) {
return new Promise((resolve) => {
fetch(workerUrl)
.then((res) => res.text())
.then((text) => {
let workerScriptContent = text;
workerScriptContent = workerScriptContent.replace(
/wasmBinaryFile\s*=\s*"(subtitles-octopus-worker\.wasm)"/g,
(_match, wasm) => {
if (!wasmUrl) {
wasmUrl = new URL(wasm, workerUrl).toString();
} else {
wasmUrl = this.#toAbsoluteUrl(wasmUrl);
}
return `wasmBinaryFile = "${wasmUrl}"`;
},
);
const workerBlob = new Blob([workerScriptContent], { type: 'text/javascript' });
resolve(URL.createObjectURL(workerBlob));
});
});
}
#checkWebAssemblySupport() {
let supportsWebAssembly = false;
try {
if (typeof WebAssembly === 'object' && typeof WebAssembly.instantiate === 'function') {
const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));
if (module instanceof WebAssembly.Module)
supportsWebAssembly = new WebAssembly.Instance(module) instanceof WebAssembly.Instance;
}
// eslint-disable-next-line no-unused-vars
} catch (error) {
//
}
this.utils.errorHandle(supportsWebAssembly, 'Browser does not support WebAssembly');
}
this.utils.errorHandle(supportsWebAssembly, 'Browser does not support WebAssembly')
}
}
+15 -15
View File
@@ -1,21 +1,21 @@
import LibassAdapter from './adapter';
import LibassAdapter from './adapter'
export default function artplayerPluginLibass(option) {
return (art) => {
const adapter = new LibassAdapter(art, option);
return {
name: 'artplayerPluginLibass',
libass: adapter.libass,
visible: adapter.visible,
init: adapter.init.bind(adapter),
switch: adapter.switch.bind(adapter),
show: adapter.show.bind(adapter),
hide: adapter.hide.bind(adapter),
destroy: adapter.destroy.bind(adapter),
};
};
return (art) => {
const adapter = new LibassAdapter(art, option)
return {
name: 'artplayerPluginLibass',
libass: adapter.libass,
visible: adapter.visible,
init: adapter.init.bind(adapter),
switch: adapter.switch.bind(adapter),
show: adapter.show.bind(adapter),
hide: adapter.hide.bind(adapter),
destroy: adapter.destroy.bind(adapter),
}
}
}
if (typeof window !== 'undefined') {
window['artplayerPluginLibass'] = artplayerPluginLibass;
window.artplayerPluginLibass = artplayerPluginLibass
}
@@ -1,17 +1,17 @@
import type Artplayer from 'artplayer';
import type SubtitlesOctopus from '@hrgui/libass-wasm-ts';
import { type Options } from 'libass-wasm';
import type SubtitlesOctopus from '@hrgui/libass-wasm-ts'
import type Artplayer from 'artplayer'
import type { Options } from 'libass-wasm'
export = artplayerPluginAss;
export = artplayerPluginAss
export as namespace artplayerPluginAss;
declare const artplayerPluginAss: (options: Options) => (art: Artplayer) => {
name: 'artplayerPluginLibass';
libass: SubtitlesOctopus;
visible: boolean;
init: () => void;
switch: (url: string) => void;
show: () => void;
hide: () => void;
destroy: () => void;
};
name: 'artplayerPluginLibass'
libass: SubtitlesOctopus
visible: boolean
init: () => void
switch: (url: string) => void
show: () => void
hide: () => void
destroy: () => void
}
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,i,r,a,o,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof l[i]&&l[i],f=u.i||{},d=u.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!d[t]){if(!e[t]){if(r[t])return r[t];var a="function"==typeof l[i]&&l[i];if(!n&&a)return a(t,!0);if(u)return u(t,!0);if(c&&"string"==typeof t)return c(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}f.resolve=function(n){var i=e[t][1][n];return null!=i?i:n},f.cache={};var s=d[t]=new p.Module(t);e[t][0].call(s.exports,f,s,s.exports,l)}return d[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=c,this.exports={}},p.modules=e,p.cache=d,p.parent=u,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=f,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return l[i]}}),l[i]=p;for(var m=0;m<t.length;m++)p(t[m]);if(n){var g=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"4omrA":[function(e,t,n,i){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n),r.export(n,"default",()=>s);var a=e("./parser");async function o(e,{getExt:t,srtToVtt:n,assToVtt:i}){let r=await fetch(e.url),a=await r.arrayBuffer(),o=new TextDecoder(e.encoding||"utf-8").decode(a);switch(e.type||t(e.url)){case"srt":return n(o);case"ass":return i(o);case"vtt":return o;default:return""}}function s({subtitles:e=[]}){return async t=>{let{unescape:n,getExt:i,srtToVtt:r,assToVtt:s}=t.constructor.utils,l=new(0,a.WebVTTParser),u=new(0,a.WebVTTSerializer),f=(await Promise.all(e.map(e=>o(e,{getExt:i,srtToVtt:r,assToVtt:s})))).map((t,n)=>{let i=l.parse(t,"metadata");return i.url=e[n].url,i.name=e[n].name,i}),d="";function c(e=[]){let i=function(e){let t=new(0,a.WebVTTParser)().parse("","metadata");for(let n=0;n<e.length;n++){let i=e[n];if(!i.updated){i.updated=!0;for(let e=0;e<i.cues.length;e++){let t=i.cues[e];for(let e=0;e<t.tree.children.length;e++){let n=t.tree.children[e];n.value=`<div class="art-subtitle-${i.name}">${n.value}</div>`}}}t.cues.push(...i.cues)}return t}(e),r=u.serialize(i.cues);URL.revokeObjectURL(d);let o=URL.createObjectURL(new Blob([r],{type:"text/vtt"}));d=o,t.option.subtitle.escape=!1,t.subtitle.init({...t.option.subtitle,url:o,type:"vtt",onVttLoad:n})}return c(f),{name:"multipleSubtitles",tracks:(e=[])=>c(e.map(e=>f.find(t=>t.name===e))),reset:()=>c(f)}}}"undefined"!=typeof window&&(window.artplayerPluginMultipleSubtitles=s)},{"./parser":"7NrDJ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7NrDJ":[function(e,t,n,i){!function(){var e={direction:"horizontal",snapToLines:!0,linePosition:"auto",lineAlign:"start",textPosition:"auto",positionAlign:"auto",size:100,alignment:"center"},t=function(t){t||(t={"&amp":"&","&lt":"<","&gt":">","&lrm":"‎","&rlm":"‏","&nbsp":" "}),this.entities=t,this.parse=function(n,a){n=n.replace(/\0/g,"�");var o=Date.now(),s=0,l=n.split(/\r\n|\r|\n/),u=!1,f=[],d=[],c=[];function p(e,t){c.push({message:e,line:s+1,col:t})}var m=l[s],g=m.length,v="WEBVTT",h=0,b=v.length;for("\uFEFF"===m[0]&&(h=1,b+=1),(g<b||m.indexOf(v)!==0+h||g>b&&" "!==m[b]&&" "!==m[b])&&p('No valid signature. (File needs to start with "WEBVTT".)'),s++;""!=l[s]&&void 0!=l[s];){if(p("No blank line after the signature."),-1!=l[s].indexOf("--\x3e")){u=!0;break}s++}for(;void 0!=l[s];){for(;!u&&""==l[s];)s++;if(!u&&void 0==l[s])break;var T=Object.assign({},e,{id:"",startTime:0,endTime:0,pauseOnExit:!1,direction:"horizontal",snapToLines:!0,linePosition:"auto",lineAlign:"start",textPosition:"auto",positionAlign:"auto",size:100,alignment:"center",text:"",tree:null}),y=!0;if(-1==l[s].indexOf("--\x3e")){if(T.id=l[s],/^NOTE($|[ \t])/.test(T.id)){for(s++;""!=l[s]&&void 0!=l[s];)-1!=l[s].indexOf("--\x3e")&&p("Cannot have timestamp in a comment."),s++;continue}if(/^STYLE($|[ \t])/.test(T.id)){var x=[],w=!1;for(s++;""!=l[s]&&void 0!=l[s];)-1!=l[s].indexOf("--\x3e")&&(p("Cannot have timestamp in a style block."),w=!0),x.push(l[s]),s++;if(d.length){p("Style blocks cannot appear after the first cue.");continue}w||f.push(x.join("\n"));continue}if(""==l[++s]||void 0==l[s]){p("Cue identifier cannot be standalone.");continue}if(-1==l[s].indexOf("--\x3e")){y=!1,p("Cue identifier needs to be followed by timestamp.");continue}}u=!1;var O=new i(l[s],p),P=0;if(d.length>0&&(P=d[d.length-1].startTime),y&&!O.parse(T,P)){for(T=null,s++;""!=l[s]&&void 0!=l[s];){if(-1!=l[s].indexOf("--\x3e")){u=!0;break}s++}continue}for(s++;""!=l[s]&&void 0!=l[s];){if(-1!=l[s].indexOf("--\x3e")){p("Blank line missing before cue."),u=!0;break}""!=T.text&&(T.text+="\n"),T.text+=l[s],s++}var A=new r(T.text,p,a,t);T.tree=A.parse(T.startLine truncated
!function(e,t,n,i,r,a,o,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof l[i]&&l[i],f=u.i||{},d=u.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!d[t]){if(!e[t]){if(r[t])return r[t];var a="function"==typeof l[i]&&l[i];if(!n&&a)return a(t,!0);if(u)return u(t,!0);if(c&&"string"==typeof t)return c(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}f.resolve=function(n){var i=e[t][1][n];return null!=i?i:n},f.cache={};var s=d[t]=new p.Module(t);e[t][0].call(s.exports,f,s,s.exports,l)}return d[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=c,this.exports={}},p.modules=e,p.cache=d,p.parent=u,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=f,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return l[i]}}),l[i]=p;for(var m=0;m<t.length;m++)p(t[m]);if(n){var g=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"3MgS1":[function(e,t,n,i){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n),r.export(n,"default",()=>s);var a=e("./parser");async function o(e,{getExt:t,srtToVtt:n,assToVtt:i}){let r=await fetch(e.url),a=await r.arrayBuffer(),o=new TextDecoder(e.encoding||"utf-8").decode(a);switch(e.type||t(e.url)){case"srt":return n(o);case"ass":return i(o);case"vtt":return o;default:return""}}function s({subtitles:e=[]}){return async t=>{let{unescape:n,getExt:i,srtToVtt:r,assToVtt:s}=t.constructor.utils,l=new(0,a.WebVTTParser),u=new(0,a.WebVTTSerializer),f=(await Promise.all(e.map(e=>o(e,{getExt:i,srtToVtt:r,assToVtt:s})))).map((t,n)=>{let i=l.parse(t,"metadata");return i.url=e[n].url,i.name=e[n].name,i}),d="";function c(e=[]){let i=function(e){let t=new(0,a.WebVTTParser)().parse("","metadata");for(let n=0;n<e.length;n++){let i=e[n];if(!i.updated){i.updated=!0;for(let e=0;e<i.cues.length;e++){let t=i.cues[e];for(let e=0;e<t.tree.children.length;e++){let n=t.tree.children[e];n.value=`<div class="art-subtitle-${i.name}">${n.value}</div>`}}}t.cues.push(...i.cues)}return t}(e),r=u.serialize(i.cues);URL.revokeObjectURL(d);let o=URL.createObjectURL(new Blob([r],{type:"text/vtt"}));d=o,t.option.subtitle.escape=!1,t.subtitle.init({...t.option.subtitle,url:o,type:"vtt",onVttLoad:n})}return c(f),{name:"multipleSubtitles",tracks:(e=[])=>c(e.map(e=>f.find(t=>t.name===e))),reset:()=>c(f)}}}"undefined"!=typeof window&&(window.artplayerPluginMultipleSubtitles=s)},{"./parser":"01rPS","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"01rPS":[function(e,t,n,i){!function(){var e={direction:"horizontal",snapToLines:!0,linePosition:"auto",lineAlign:"start",textPosition:"auto",positionAlign:"auto",size:100,alignment:"center"},t=function(t){t||(t={"&amp":"&","&lt":"<","&gt":">","&lrm":"‎","&rlm":"‏","&nbsp":" "}),this.entities=t,this.parse=function(n,a){n=n.replace(/\0/g,"�");var o=Date.now(),s=0,l=n.split(/\r\n|\r|\n/),u=!1,f=[],d=[],c=[];function p(e,t){c.push({message:e,line:s+1,col:t})}var m=l[s],g=m.length,v="WEBVTT",h=0,b=v.length;for("\uFEFF"===m[0]&&(h=1,b+=1),(g<b||m.indexOf(v)!==0+h||g>b&&" "!==m[b]&&" "!==m[b])&&p('No valid signature. (File needs to start with "WEBVTT".)'),s++;""!=l[s]&&void 0!=l[s];){if(p("No blank line after the signature."),-1!=l[s].indexOf("--\x3e")){u=!0;break}s++}for(;void 0!=l[s];){for(;!u&&""==l[s];)s++;if(!u&&void 0==l[s])break;var T=Object.assign({},e,{id:"",startTime:0,endTime:0,pauseOnExit:!1,direction:"horizontal",snapToLines:!0,linePosition:"auto",lineAlign:"start",textPosition:"auto",positionAlign:"auto",size:100,alignment:"center",text:"",tree:null}),x=!0;if(-1==l[s].indexOf("--\x3e")){if(T.id=l[s],/^NOTE($|[ \t])/.test(T.id)){for(s++;""!=l[s]&&void 0!=l[s];)-1!=l[s].indexOf("--\x3e")&&p("Cannot have timestamp in a comment."),s++;continue}if(/^STYLE($|[ \t])/.test(T.id)){var y=[],w=!1;for(s++;""!=l[s]&&void 0!=l[s];)-1!=l[s].indexOf("--\x3e")&&(p("Cannot have timestamp in a style block."),w=!0),y.push(l[s]),s++;if(d.length){p("Style blocks cannot appear after the first cue.");continue}w||f.push(y.join("\n"));continue}if(""==l[++s]||void 0==l[s]){p("Cue identifier cannot be standalone.");continue}if(-1==l[s].indexOf("--\x3e")){x=!1,p("Cue identifier needs to be followed by timestamp.");continue}}u=!1;var O=new i(l[s],p),S=0;if(d.length>0&&(S=d[d.length-1].startTime),x&&!O.parse(T,S)){for(T=null,s++;""!=l[s]&&void 0!=l[s];){if(-1!=l[s].indexOf("--\x3e")){u=!0;break}s++}continue}for(s++;""!=l[s]&&void 0!=l[s];){if(-1!=l[s].indexOf("--\x3e")){p("Blank line missing before cue."),u=!0;break}""!=T.text&&(T.text+="\n"),T.text+=l[s],s++}var P=new r(T.text,p,a,t);T.tree=P.parse(T.startLine truncated
//# sourceMappingURL=artplayer-plugin-multiple-subtitles.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC8CwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GA9CxB,IAAA,EAAA,EAAA,YAEA,eAAe,EAAQ,CAAM,CAAE,CAAE,OAAA,CAAM,CAAE,SAAA,CAAQ,CAAE,SAAA,CAAQ,CAAE,EACzD,IAAM,EAAW,MAAM,MAAM,EAAO,GAAG,EACjC,EAAS,MAAM,EAAS,WAAW,GAEnC,EAAO,AADG,IAAI,YAAY,EAAO,QAAQ,EAAI,SAC9B,MAAM,CAAC,GAC5B,OAAQ,EAAO,IAAI,EAAI,EAAO,EAAO,GAAG,GACpC,IAAK,MACD,OAAO,EAAS,EAEpB,KAAK,MACD,OA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 truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC8CwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GA9CxB,IAAA,EAAA,EAAA,YAEA,eAAe,EAAQ,CAAM,CAAE,CAAE,OAAA,CAAM,CAAE,SAAA,CAAQ,CAAE,SAAA,CAAQ,CAAE,EAC3D,IAAM,EAAW,MAAM,MAAM,EAAO,GAAG,EACjC,EAAS,MAAM,EAAS,WAAW,GAEnC,EAAO,AADG,IAAI,YAAY,EAAO,QAAQ,EAAI,SAC9B,MAAM,CAAC,GAC5B,OAAQ,EAAO,IAAI,EAAI,EAAO,EAAO,GAAG,GACtC,IAAK,MACH,OAAO,EAAS,EAElB,KAAK,MACH,OA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 truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,i,r,a,o,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof l[i]&&l[i],f=u.i||{},d=u.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!d[t]){if(!e[t]){if(r[t])return r[t];var a="function"==typeof l[i]&&l[i];if(!n&&a)return a(t,!0);if(u)return u(t,!0);if(c&&"string"==typeof t)return c(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}f.resolve=function(n){var i=e[t][1][n];return null!=i?i:n},f.cache={};var s=d[t]=new p.Module(t);e[t][0].call(s.exports,f,s,s.exports,l)}return d[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=c,this.exports={}},p.modules=e,p.cache=d,p.parent=u,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=f,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return l[i]}}),l[i]=p;for(var m=0;m<t.length;m++)p(t[m]);if(n){var g=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({jz4E5:[function(e,t,n,i){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n),r.export(n,"default",()=>s);var a=e("./parser");async function o(e,{getExt:t,srtToVtt:n,assToVtt:i}){let r=await fetch(e.url),a=await r.arrayBuffer(),o=new TextDecoder(e.encoding||"utf-8").decode(a);switch(e.type||t(e.url)){case"srt":return n(o);case"ass":return i(o);case"vtt":return o;default:return""}}function s({subtitles:e=[]}){return async t=>{let{unescape:n,getExt:i,srtToVtt:r,assToVtt:s}=t.constructor.utils,l=new(0,a.WebVTTParser),u=new(0,a.WebVTTSerializer),f=(await Promise.all(e.map(e=>o(e,{getExt:i,srtToVtt:r,assToVtt:s})))).map((t,n)=>{let i=l.parse(t,"metadata");return i.url=e[n].url,i.name=e[n].name,i}),d="";function c(e=[]){let i=function(e){let t=new(0,a.WebVTTParser)().parse("","metadata");for(let n=0;n<e.length;n++){let i=e[n];if(!i.updated){i.updated=!0;for(let e=0;e<i.cues.length;e++){let t=i.cues[e];for(let e=0;e<t.tree.children.length;e++){let n=t.tree.children[e];n.value=`<div class="art-subtitle-${i.name}">${n.value}</div>`}}}t.cues.push(...i.cues)}return t}(e),r=u.serialize(i.cues);URL.revokeObjectURL(d);let o=URL.createObjectURL(new Blob([r],{type:"text/vtt"}));d=o,t.option.subtitle.escape=!1,t.subtitle.init({...t.option.subtitle,url:o,type:"vtt",onVttLoad:n})}return c(f),{name:"multipleSubtitles",tracks:(e=[])=>c(e.map(e=>f.find(t=>t.name===e))),reset:()=>c(f)}}}"undefined"!=typeof window&&(window.artplayerPluginMultipleSubtitles=s)},{"./parser":"avlNp","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],avlNp:[function(e,t,n,i){!function(){var e={direction:"horizontal",snapToLines:!0,linePosition:"auto",lineAlign:"start",textPosition:"auto",positionAlign:"auto",size:100,alignment:"center"},t=function(t){t||(t={"&amp":"&","&lt":"<","&gt":">","&lrm":"‎","&rlm":"‏","&nbsp":" "}),this.entities=t,this.parse=function(n,a){n=n.replace(/\0/g,"�");var o=Date.now(),s=0,l=n.split(/\r\n|\r|\n/),u=!1,f=[],d=[],c=[];function p(e,t){c.push({message:e,line:s+1,col:t})}var m=l[s],g=m.length,v="WEBVTT",h=0,b=v.length;for("\uFEFF"===m[0]&&(h=1,b+=1),(g<b||m.indexOf(v)!==0+h||g>b&&" "!==m[b]&&" "!==m[b])&&p('No valid signature. (File needs to start with "WEBVTT".)'),s++;""!=l[s]&&void 0!=l[s];){if(p("No blank line after the signature."),-1!=l[s].indexOf("--\x3e")){u=!0;break}s++}for(;void 0!=l[s];){for(;!u&&""==l[s];)s++;if(!u&&void 0==l[s])break;var T=Object.assign({},e,{id:"",startTime:0,endTime:0,pauseOnExit:!1,direction:"horizontal",snapToLines:!0,linePosition:"auto",lineAlign:"start",textPosition:"auto",positionAlign:"auto",size:100,alignment:"center",text:"",tree:null}),y=!0;if(-1==l[s].indexOf("--\x3e")){if(T.id=l[s],/^NOTE($|[ \t])/.test(T.id)){for(s++;""!=l[s]&&void 0!=l[s];)-1!=l[s].indexOf("--\x3e")&&p("Cannot have timestamp in a comment."),s++;continue}if(/^STYLE($|[ \t])/.test(T.id)){var x=[],w=!1;for(s++;""!=l[s]&&void 0!=l[s];)-1!=l[s].indexOf("--\x3e")&&(p("Cannot have timestamp in a style block."),w=!0),x.push(l[s]),s++;if(d.length){p("Style blocks cannot appear after the first cue.");continue}w||f.push(x.join("\n"));continue}if(""==l[++s]||void 0==l[s]){p("Cue identifier cannot be standalone.");continue}if(-1==l[s].indexOf("--\x3e")){y=!1,p("Cue identifier needs to be followed by timestamp.");continue}}u=!1;var O=new i(l[s],p),j=0;if(d.length>0&&(j=d[d.length-1].startTime),y&&!O.parse(T,j)){for(T=null,s++;""!=l[s]&&void 0!=l[s];){if(-1!=l[s].indexOf("--\x3e")){u=!0;break}s++}continue}for(s++;""!=l[s]&&void 0!=l[s];){if(-1!=l[s].indexOf("--\x3e")){p("Blank line missing before cue."),u=!0;break}""!=T.text&&(T.text+="\n"),T.text+=l[s],s++}var z=new r(T.text,p,a,t);T.tree=z.parse(T.startTimeLine truncated
!function(e,t,n,i,r,a,o,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof l[i]&&l[i],f=u.i||{},d=u.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!d[t]){if(!e[t]){if(r[t])return r[t];var a="function"==typeof l[i]&&l[i];if(!n&&a)return a(t,!0);if(u)return u(t,!0);if(c&&"string"==typeof t)return c(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}f.resolve=function(n){var i=e[t][1][n];return null!=i?i:n},f.cache={};var s=d[t]=new p.Module(t);e[t][0].call(s.exports,f,s,s.exports,l)}return d[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=c,this.exports={}},p.modules=e,p.cache=d,p.parent=u,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=f,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return l[i]}}),l[i]=p;for(var m=0;m<t.length;m++)p(t[m]);if(n){var g=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({bY7Hk:[function(e,t,n,i){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n),r.export(n,"default",()=>s);var a=e("./parser");async function o(e,{getExt:t,srtToVtt:n,assToVtt:i}){let r=await fetch(e.url),a=await r.arrayBuffer(),o=new TextDecoder(e.encoding||"utf-8").decode(a);switch(e.type||t(e.url)){case"srt":return n(o);case"ass":return i(o);case"vtt":return o;default:return""}}function s({subtitles:e=[]}){return async t=>{let{unescape:n,getExt:i,srtToVtt:r,assToVtt:s}=t.constructor.utils,l=new(0,a.WebVTTParser),u=new(0,a.WebVTTSerializer),f=(await Promise.all(e.map(e=>o(e,{getExt:i,srtToVtt:r,assToVtt:s})))).map((t,n)=>{let i=l.parse(t,"metadata");return i.url=e[n].url,i.name=e[n].name,i}),d="";function c(e=[]){let i=function(e){let t=new(0,a.WebVTTParser)().parse("","metadata");for(let n=0;n<e.length;n++){let i=e[n];if(!i.updated){i.updated=!0;for(let e=0;e<i.cues.length;e++){let t=i.cues[e];for(let e=0;e<t.tree.children.length;e++){let n=t.tree.children[e];n.value=`<div class="art-subtitle-${i.name}">${n.value}</div>`}}}t.cues.push(...i.cues)}return t}(e),r=u.serialize(i.cues);URL.revokeObjectURL(d);let o=URL.createObjectURL(new Blob([r],{type:"text/vtt"}));d=o,t.option.subtitle.escape=!1,t.subtitle.init({...t.option.subtitle,url:o,type:"vtt",onVttLoad:n})}return c(f),{name:"multipleSubtitles",tracks:(e=[])=>c(e.map(e=>f.find(t=>t.name===e))),reset:()=>c(f)}}}"undefined"!=typeof window&&(window.artplayerPluginMultipleSubtitles=s)},{"./parser":"je6kr","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],je6kr:[function(e,t,n,i){!function(){var e={direction:"horizontal",snapToLines:!0,linePosition:"auto",lineAlign:"start",textPosition:"auto",positionAlign:"auto",size:100,alignment:"center"},t=function(t){t||(t={"&amp":"&","&lt":"<","&gt":">","&lrm":"‎","&rlm":"‏","&nbsp":" "}),this.entities=t,this.parse=function(n,a){n=n.replace(/\0/g,"�");var o=Date.now(),s=0,l=n.split(/\r\n|\r|\n/),u=!1,f=[],d=[],c=[];function p(e,t){c.push({message:e,line:s+1,col:t})}var m=l[s],g=m.length,v="WEBVTT",h=0,b=v.length;for("\uFEFF"===m[0]&&(h=1,b+=1),(g<b||m.indexOf(v)!==0+h||g>b&&" "!==m[b]&&" "!==m[b])&&p('No valid signature. (File needs to start with "WEBVTT".)'),s++;""!=l[s]&&void 0!=l[s];){if(p("No blank line after the signature."),-1!=l[s].indexOf("--\x3e")){u=!0;break}s++}for(;void 0!=l[s];){for(;!u&&""==l[s];)s++;if(!u&&void 0==l[s])break;var T=Object.assign({},e,{id:"",startTime:0,endTime:0,pauseOnExit:!1,direction:"horizontal",snapToLines:!0,linePosition:"auto",lineAlign:"start",textPosition:"auto",positionAlign:"auto",size:100,alignment:"center",text:"",tree:null}),y=!0;if(-1==l[s].indexOf("--\x3e")){if(T.id=l[s],/^NOTE($|[ \t])/.test(T.id)){for(s++;""!=l[s]&&void 0!=l[s];)-1!=l[s].indexOf("--\x3e")&&p("Cannot have timestamp in a comment."),s++;continue}if(/^STYLE($|[ \t])/.test(T.id)){var x=[],w=!1;for(s++;""!=l[s]&&void 0!=l[s];)-1!=l[s].indexOf("--\x3e")&&(p("Cannot have timestamp in a style block."),w=!0),x.push(l[s]),s++;if(d.length){p("Style blocks cannot appear after the first cue.");continue}w||f.push(x.join("\n"));continue}if(""==l[++s]||void 0==l[s]){p("Cue identifier cannot be standalone.");continue}if(-1==l[s].indexOf("--\x3e")){y=!1,p("Cue identifier needs to be followed by timestamp.");continue}}u=!1;var O=new i(l[s],p),P=0;if(d.length>0&&(P=d[d.length-1].startTime),y&&!O.parse(T,P)){for(T=null,s++;""!=l[s]&&void 0!=l[s];){if(-1!=l[s].indexOf("--\x3e")){u=!0;break}s++}continue}for(s++;""!=l[s]&&void 0!=l[s];){if(-1!=l[s].indexOf("--\x3e")){p("Blank line missing before cue."),u=!0;break}""!=T.text&&(T.text+="\n"),T.text+=l[s],s++}var j=new r(T.text,p,a,t);T.tree=j.parse(T.startTimeLine truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,r,i,o,a,s){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof c[r]&&c[r],l=u.i||{},f=u.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!f[t]){if(!e[t]){if(i[t])return i[t];var o="function"==typeof c[r]&&c[r];if(!n&&o)return o(t,!0);if(u)return u(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(n){var r=e[t][1][n];return null!=r?r:n},l.cache={};var s=f[t]=new d.Module(t);e[t][0].call(s.exports,l,s,s.exports,c)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return c[r]}}),c[r]=d;for(var v=0;v<t.length;v++)d(t[v]);if(n){var h=d(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({bzF6W:[function(e,t,n,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n),i.export(n,"default",function(){return p});var o=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),c=e("@swc/helpers/cjs/_to_consumable_array.cjs"),u=e("@swc/helpers/cjs/_ts_generator.cjs"),l=e("./parser");function f(){return(f=(0,o._)(function(e,t){var n,r,i,o,a;return(0,u._)(this,function(s){switch(s.label){case 0:return n=t.getExt,r=t.srtToVtt,i=t.assToVtt,[4,fetch(e.url)];case 1:return[4,s.sent().arrayBuffer()];case 2:switch(o=s.sent(),a=new TextDecoder(e.encoding||"utf-8").decode(o),e.type||n(e.url)){case"srt":return[2,r(a)];case"ass":return[2,i(a)];case"vtt":return[2,a];default:return[2,""]}}})})).apply(this,arguments)}function p(e){var t,n=e.subtitles,r=void 0===n?[]:n;return t=(0,o._)(function(e){var t,n,i,o,p,d,v,h,m;function b(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=function(e){for(var t=new(0,l.WebVTTParser)().parse("","metadata"),n=0;n<e.length;n++){var r,i=e[n];if(!i.updated){i.updated=!0;for(var o=0;o<i.cues.length;o++)for(var a=i.cues[o],s=0;s<a.tree.children.length;s++){var u=a.tree.children[s];u.value='<div class="art-subtitle-'.concat(i.name,'">').concat(u.value,"</div>")}}(r=t.cues).push.apply(r,(0,c._)(i.cues))}return t}(t),i=v.serialize(r.cues);URL.revokeObjectURL(m);var o=URL.createObjectURL(new Blob([i],{type:"text/vtt"}));m=o,e.option.subtitle.escape=!1,e.subtitle.init((0,s._)((0,a._)({},e.option.subtitle),{url:o,type:"vtt",onVttLoad:n}))}return(0,u._)(this,function(a){switch(a.label){case 0:return n=(t=e.constructor.utils).unescape,i=t.getExt,o=t.srtToVtt,p=t.assToVtt,d=new(0,l.WebVTTParser),v=new(0,l.WebVTTSerializer),[4,Promise.all(r.map(function(e){return function(e,t){return f.apply(this,arguments)}(e,{getExt:i,srtToVtt:o,assToVtt:p})}))];case 1:return h=a.sent().map(function(e,t){var n=d.parse(e,"metadata");return n.url=r[t].url,n.name=r[t].name,n}),m="",b(h),[2,{name:"multipleSubtitles",tracks:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return b(e.map(function(e){return h.find(function(t){return t.name===e})}))},reset:function(){return b(h)}}]}})}),function(e){return t.apply(this,arguments)}}"undefined"!=typeof window&&(window.artplayerPluginMultipleSubtitles=p)},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@swc/helpers/cjs/_to_consumable_array.cjs":"1LaMX","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","./parser":"2xVZx","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"4ElRo":[function(e,t,n,r){"use strict";function i(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}n._=function(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function s(e){i(a,r,o,s,c,"next",e)}function c(e){i(a,r,o,s,c,"throw",e)}s(void 0)})}}},{}],"7vaqr":[function(e,t,n,r){"use strict";var i=e("b3d0f206b721b857");n._=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i._(e,t,n[t])})}return e}},{b3d0f206b721b857:"dgB2K"}],dgB2K:[function(e,t,n,r){"use strict";n._=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},{}],iJXke:[function(e,t,n,r){"use strict";Line truncated
!function(e,t,n,r,i,o,a,s){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof c[r]&&c[r],f=u.i||{},l=u.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,n){if(!l[t]){if(!e[t]){if(i[t])return i[t];var o="function"==typeof c[r]&&c[r];if(!n&&o)return o(t,!0);if(u)return u(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}f.resolve=function(n){var r=e[t][1][n];return null!=r?r:n},f.cache={};var s=l[t]=new d.Module(t);e[t][0].call(s.exports,f,s,s.exports,c)}return l[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=l,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=f,d.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(d,"root",{get:function(){return c[r]}}),c[r]=d;for(var v=0;v<t.length;v++)d(t[v]);if(n){var h=d(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({bNEbP:[function(e,t,n,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(n),i.export(n,"default",function(){return l});var o=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),c=e("@swc/helpers/cjs/_to_consumable_array.cjs"),u=e("@swc/helpers/cjs/_ts_generator.cjs"),f=e("./parser");function l(e){var t=e.subtitles,n=void 0===t?[]:t;return function(e){return(0,o._)(function(){var t,r,i,l,p,d,v,h,m;function y(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=function(e){for(var t=new(0,f.WebVTTParser)().parse("","metadata"),n=0;n<e.length;n++){var r,i=e[n];if(!i.updated){i.updated=!0;for(var o=0;o<i.cues.length;o++)for(var a=i.cues[o],s=0;s<a.tree.children.length;s++){var u=a.tree.children[s];u.value='<div class="art-subtitle-'.concat(i.name,'">').concat(u.value,"</div>")}}(r=t.cues).push.apply(r,(0,c._)(i.cues))}return t}(t),i=v.serialize(n.cues);URL.revokeObjectURL(m);var o=URL.createObjectURL(new Blob([i],{type:"text/vtt"}));m=o,e.option.subtitle.escape=!1,e.subtitle.init((0,s._)((0,a._)({},e.option.subtitle),{url:o,type:"vtt",onVttLoad:r}))}return(0,u._)(this,function(a){switch(a.label){case 0:return r=(t=e.constructor.utils).unescape,i=t.getExt,l=t.srtToVtt,p=t.assToVtt,d=new(0,f.WebVTTParser),v=new(0,f.WebVTTSerializer),[4,Promise.all(n.map(function(e){return function(e,t){return(0,o._)(function(e,t){var n,r,i,o,a;return(0,u._)(this,function(s){switch(s.label){case 0:return n=t.getExt,r=t.srtToVtt,i=t.assToVtt,[4,fetch(e.url)];case 1:return[4,s.sent().arrayBuffer()];case 2:switch(o=s.sent(),a=new TextDecoder(e.encoding||"utf-8").decode(o),e.type||n(e.url)){case"srt":return[2,r(a)];case"ass":return[2,i(a)];case"vtt":return[2,a];default:return[2,""]}}})}).apply(this,arguments)}(e,{getExt:i,srtToVtt:l,assToVtt:p})}))];case 1:return h=a.sent().map(function(e,t){var r=d.parse(e,"metadata");return r.url=n[t].url,r.name=n[t].name,r}),m="",y(h),[2,{name:"multipleSubtitles",tracks:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return y(e.map(function(e){return h.find(function(t){return t.name===e})}))},reset:function(){return y(h)}}]}})})()}}"undefined"!=typeof window&&(window.artplayerPluginMultipleSubtitles=l)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_object_spread.cjs":"kyoEj","@swc/helpers/cjs/_object_spread_props.cjs":"3G1wX","@swc/helpers/cjs/_to_consumable_array.cjs":"i81N6","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","./parser":"hxyrW","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],cZn0e:[function(e,t,n,r){"use strict";function i(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}n._=function(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function s(e){i(a,r,o,s,c,"next",e)}function c(e){i(a,r,o,s,c,"throw",e)}s(void 0)})}}},{}],kyoEj:[function(e,t,n,r){"use strict";var i=e("9f9b8a24218ee51e");n._=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i._(e,t,n[t])})}return e}},{"9f9b8a24218ee51e":"ltU3W"}],ltU3W:[function(e,t,n,r){"use strict";n._=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},{}],"3G1wX":[function(e,t,n,r){"use strict";n._=function(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?ObjLine truncated
@@ -1,30 +1,30 @@
{
"license": "MIT",
"version": "1.1.0",
"name": "artplayer-plugin-multiple-subtitles",
"description": "multiple subtitles plugin for ArtPlayer",
"main": "dist/artplayer-plugin-multiple-subtitles.js",
"legacy": "dist/artplayer-plugin-multiple-subtitles.legacy.js",
"module": "dist/artplayer-plugin-multiple-subtitles.esm.js",
"types": "types/artplayer-plugin-multiple-subtitles.d.ts",
"exports": {
"import": "./dist/artplayer-plugin-multiple-subtitles.esm.js",
"require": "./dist/artplayer-plugin-multiple-subtitles.js",
"default": "./dist/artplayer-plugin-multiple-subtitles.js"
},
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "last 1 Chrome version",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
"name": "artplayer-plugin-multiple-subtitles",
"version": "1.1.0",
"description": "multiple subtitles plugin for ArtPlayer",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"license": "MIT",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
],
"exports": {
"import": "./dist/artplayer-plugin-multiple-subtitles.esm.js",
"require": "./dist/artplayer-plugin-multiple-subtitles.js",
"default": "./dist/artplayer-plugin-multiple-subtitles.js"
},
"main": "dist/artplayer-plugin-multiple-subtitles.js",
"legacy": "dist/artplayer-plugin-multiple-subtitles.legacy.js",
"module": "dist/artplayer-plugin-multiple-subtitles.esm.js",
"types": "types/artplayer-plugin-multiple-subtitles.d.ts",
"browserslist": "last 1 Chrome version"
}
@@ -1,99 +1,99 @@
import { WebVTTParser, WebVTTSerializer } from './parser';
import { WebVTTParser, WebVTTSerializer } from './parser'
async function loadVtt(option, { getExt, srtToVtt, assToVtt }) {
const response = await fetch(option.url);
const buffer = await response.arrayBuffer();
const decoder = new TextDecoder(option.encoding || 'utf-8');
const text = decoder.decode(buffer);
switch (option.type || getExt(option.url)) {
case 'srt': {
return srtToVtt(text);
}
case 'ass': {
return assToVtt(text);
}
case 'vtt': {
return text;
}
default:
return '';
const response = await fetch(option.url)
const buffer = await response.arrayBuffer()
const decoder = new TextDecoder(option.encoding || 'utf-8')
const text = decoder.decode(buffer)
switch (option.type || getExt(option.url)) {
case 'srt': {
return srtToVtt(text)
}
case 'ass': {
return assToVtt(text)
}
case 'vtt': {
return text
}
default:
return ''
}
}
function mergeTrees(trees) {
const parser = new WebVTTParser();
const result = parser.parse('', 'metadata');
const parser = new WebVTTParser()
const result = parser.parse('', 'metadata')
for (let i = 0; i < trees.length; i++) {
const tree = trees[i];
for (let i = 0; i < trees.length; i++) {
const tree = trees[i]
if (!tree.updated) {
tree.updated = true;
for (let j = 0; j < tree.cues.length; j++) {
const cue = tree.cues[j];
for (let k = 0; k < cue.tree.children.length; k++) {
const children = cue.tree.children[k];
children.value = `<div class="art-subtitle-${tree.name}">${children.value}</div>`;
}
}
if (!tree.updated) {
tree.updated = true
for (let j = 0; j < tree.cues.length; j++) {
const cue = tree.cues[j]
for (let k = 0; k < cue.tree.children.length; k++) {
const children = cue.tree.children[k]
children.value = `<div class="art-subtitle-${tree.name}">${children.value}</div>`
}
result.cues.push(...tree.cues);
}
}
return result;
result.cues.push(...tree.cues)
}
return result
}
export default function artplayerPluginMultipleSubtitles({ subtitles = [] }) {
return async (art) => {
const { unescape, getExt, srtToVtt, assToVtt } = art.constructor.utils;
return async (art) => {
const { unescape, getExt, srtToVtt, assToVtt } = art.constructor.utils
const parser = new WebVTTParser();
const seri = new WebVTTSerializer();
const parser = new WebVTTParser()
const seri = new WebVTTSerializer()
const vtts = await Promise.all(
subtitles.map((option) => {
return loadVtt(option, { getExt, srtToVtt, assToVtt });
}),
);
const vtts = await Promise.all(
subtitles.map((option) => {
return loadVtt(option, { getExt, srtToVtt, assToVtt })
}),
)
const trees = vtts.map((vtt, index) => {
const tree = parser.parse(vtt, 'metadata');
tree.url = subtitles[index].url;
tree.name = subtitles[index].name;
return tree;
});
const trees = vtts.map((vtt, index) => {
const tree = parser.parse(vtt, 'metadata')
tree.url = subtitles[index].url
tree.name = subtitles[index].name
return tree
})
let lastUrl = '';
function setTracks(trees = []) {
const tree = mergeTrees(trees);
const vtt = seri.serialize(tree.cues);
URL.revokeObjectURL(lastUrl);
const url = URL.createObjectURL(new Blob([vtt], { type: 'text/vtt' }));
lastUrl = url;
art.option.subtitle.escape = false;
art.subtitle.init({
...art.option.subtitle,
url,
type: 'vtt',
onVttLoad: unescape,
});
}
let lastUrl = ''
function setTracks(trees = []) {
const tree = mergeTrees(trees)
const vtt = seri.serialize(tree.cues)
URL.revokeObjectURL(lastUrl)
const url = URL.createObjectURL(new Blob([vtt], { type: 'text/vtt' }))
lastUrl = url
art.option.subtitle.escape = false
art.subtitle.init({
...art.option.subtitle,
url,
type: 'vtt',
onVttLoad: unescape,
})
}
setTracks(trees);
setTracks(trees)
return {
name: 'multipleSubtitles',
tracks(names = []) {
return setTracks(names.map((name) => trees.find((tree) => tree.name === name)));
},
reset() {
return setTracks(trees);
},
};
};
return {
name: 'multipleSubtitles',
tracks(names = []) {
return setTracks(names.map(name => trees.find(tree => tree.name === name)))
},
reset() {
return setTracks(trees)
},
}
}
}
if (typeof window !== 'undefined') {
window['artplayerPluginMultipleSubtitles'] = artplayerPluginMultipleSubtitles;
window.artplayerPluginMultipleSubtitles = artplayerPluginMultipleSubtitles
}
@@ -1,16 +1,16 @@
import type Artplayer from 'artplayer';
import type Artplayer from 'artplayer'
export = artplayerPluginMultipleSubtitles;
export = artplayerPluginMultipleSubtitles
export as namespace artplayerPluginMultipleSubtitles;
declare const artplayerPluginMultipleSubtitles: (option: {
subtitles: {
url?: string;
name?: string;
type?: 'vtt' | 'srt' | 'ass';
encoding?: string;
onParser?(...args: object[]): object;
}[];
subtitles: {
url?: string
name?: string
type?: 'vtt' | 'srt' | 'ass'
encoding?: string
onParser?: (...args: object[]) => object
}[]
}) => (art: Artplayer) => {
name: 'multipleSubtitles';
};
name: 'multipleSubtitles'
}
@@ -5,5 +5,5 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,i,n,r,s,o,a){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof u[n]&&u[n],h=d.i||{},l=d.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,i){if(!l[t]){if(!e[t]){if(r[t])return r[t];var s="function"==typeof u[n]&&u[n];if(!i&&s)return s(t,!0);if(d)return d(t,!0);if(c&&"string"==typeof t)return c(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}h.resolve=function(i){var n=e[t][1][i];return null!=n?n:i},h.cache={};var a=l[t]=new f.Module(t);e[t][0].call(a.exports,h,a,a.exports,u)}return l[t].exports;function h(e){var t=h.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=l,f.parent=d,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=h,f.register=function(t,i){e[t]=[function(e,t){t.exports=i},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var p=0;p<t.length;p++)f(t[p]);if(i){var v=f(i);"object"==typeof exports&&"undefined"!=typeof module?module.exports=v:"function"==typeof define&&define.amd&&define(function(){return v})}}({"4omrA":[function(e,t,i,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(i),r.export(i,"default",()=>o);var s=e("@glomex/vast-ima-player");function o(e){return async t=>{let{template:i,constructor:n}=t,{createElement:r,setStyles:o}=n.utils,{$video:a,$player:u}=i;await (0,s.loadImaSdk)();let d=window.google.ima,h=new d.AdsRenderingSettings;h.restoreCustomPlaybackStateOnAdBreakComplete=!0,h.enablePreloading=!0;let l=new(0,s.PlayerOptions),c=!1,f=null,p=null;function v(){p=function(){let e=r("div");return e.id=`art-vast-${Date.now()}`,o(e,{position:"absolute",inset:"0",width:"100%",height:"100%",zIndex:"150",backgroundColor:"black",display:"none",pointerEvents:"auto"}),e}(),u.appendChild(p),(f=new(0,s.Player)(d,a,p,h,l)).onAdStarted=()=>{c=!0,p.style.display="block",t.pause()},f.onAdEnd=()=>{c=!1,p.style.display="none",t.play()},f.onAdError=e=>{console.error("VAST Ad Error:",e),c=!1,p.style.display="none",t.play()}}return"function"==typeof e&&await e({art:t,playUrl:function(e){if(c)return;f||v();let t=new d.AdsRequest;t.adTagUrl=e,f.playAds(t)},playRes:function(e){if(c)return;f||v();let t=new d.AdsRequest;t.adsResponse=e,f.playAds(t)},ima:d,imaPlayer:f,get container(){return p}}),{name:"artplayerPluginVast",destroy:function(){p&&p.parentNode&&p.parentNode.removeChild(p),p=null,f=null}}}}"undefined"!=typeof window&&(window.artplayerPluginVast=o)},{"@glomex/vast-ima-player":"1CPmN","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1CPmN":[function(e,t,i,n){var r,s,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(i),o.export(i,"Player",()=>ed),o.export(i,"PlayerError",()=>j),o.export(i,"PlayerEvent",()=>M),o.export(i,"PlayerOptions",()=>L),o.export(i,"loadImaSdk",()=>d);var a=null,u=function(){a=null},d=function(){var e=window;return e.google&&e.google.ima?Promise.resolve(e.google.ima):a||((a=new Promise(function(e,t){var i=document.createElement("script");i.async=!0,i.src="https://imasdk.googleapis.com/js/sdkloader/ima3.js",i.onload=e,i.onerror=t,document.body.appendChild(i)}).then(function(){return e.google.ima})).then(u).catch(u),a)};function h(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t,i){return t&&h(e.prototype,t),i&&h(e,i),e}function c(){return(c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,v(e,t)}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e,t,i){return(y=!function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}()?function(e,t,i){var n=[null];n.push.apply(n,t);var r=new(Function.bind.apply(e,n));return i&&v(r,i.prototype),r}:Reflect.construct).apply(null,arguments)}function E(e){var t="function"==typeof Map?new Map:void 0;return(E=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return y(e,arguments,p(this).constructor)}return i.prototype=Object.create(e.proLine truncated
!function(e,t,i,n,r,s,o,a){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof u[n]&&u[n],h=d.i||{},l=d.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,i){if(!l[t]){if(!e[t]){if(r[t])return r[t];var s="function"==typeof u[n]&&u[n];if(!i&&s)return s(t,!0);if(d)return d(t,!0);if(c&&"string"==typeof t)return c(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}h.resolve=function(i){var n=e[t][1][i];return null!=n?n:i},h.cache={};var a=l[t]=new f.Module(t);e[t][0].call(a.exports,h,a,a.exports,u)}return l[t].exports;function h(e){var t=h.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=l,f.parent=d,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=h,f.register=function(t,i){e[t]=[function(e,t){t.exports=i},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var p=0;p<t.length;p++)f(t[p]);if(i){var v=f(i);"object"==typeof exports&&"undefined"!=typeof module?module.exports=v:"function"==typeof define&&define.amd&&define(function(){return v})}}({"6FruW":[function(e,t,i,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(i),r.export(i,"default",()=>o);var s=e("@glomex/vast-ima-player");function o(e){return async t=>{let{template:i,constructor:n}=t,{createElement:r,setStyles:o}=n.utils,{$video:a,$player:u}=i;await (0,s.loadImaSdk)();let d=window.google.ima,h=new d.AdsRenderingSettings;h.restoreCustomPlaybackStateOnAdBreakComplete=!0,h.enablePreloading=!0;let l=new(0,s.PlayerOptions),c=!1,f=null,p=null;function v(){p=function(){let e=r("div");return e.id=`art-vast-${Date.now()}`,o(e,{position:"absolute",inset:"0",width:"100%",height:"100%",zIndex:"150",backgroundColor:"black",display:"none",pointerEvents:"auto"}),e}(),u.appendChild(p),(f=new(0,s.Player)(d,a,p,h,l)).onAdStarted=()=>{c=!0,p.style.display="block",t.pause()},f.onAdEnd=()=>{c=!1,p.style.display="none",t.play()},f.onAdError=e=>{console.error("VAST Ad Error:",e),c=!1,p.style.display="none",t.play()}}return"function"==typeof e&&await e({art:t,playUrl:function(e){if(c)return;f||v();let t=new d.AdsRequest;t.adTagUrl=e,f.playAds(t)},playRes:function(e){if(c)return;f||v();let t=new d.AdsRequest;t.adsResponse=e,f.playAds(t)},ima:d,imaPlayer:f,get container(){return p}}),{name:"artplayerPluginVast",destroy:function(){p&&p.parentNode&&p.parentNode.removeChild(p),p=null,f=null}}}}"undefined"!=typeof window&&(window.artplayerPluginVast=o)},{"@glomex/vast-ima-player":"dtCfZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dtCfZ:[function(e,t,i,n){var r,s,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(i),o.export(i,"Player",()=>ed),o.export(i,"PlayerError",()=>L),o.export(i,"PlayerEvent",()=>M),o.export(i,"PlayerOptions",()=>j),o.export(i,"loadImaSdk",()=>d);var a=null,u=function(){a=null},d=function(){var e=window;return e.google&&e.google.ima?Promise.resolve(e.google.ima):a||((a=new Promise(function(e,t){var i=document.createElement("script");i.async=!0,i.src="https://imasdk.googleapis.com/js/sdkloader/ima3.js",i.onload=e,i.onerror=t,document.body.appendChild(i)}).then(function(){return e.google.ima})).then(u).catch(u),a)};function h(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t,i){return t&&h(e.prototype,t),i&&h(e,i),e}function c(){return(c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,v(e,t)}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e,t,i){return(y=!function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}()?function(e,t,i){var n=[null];n.push.apply(n,t);var r=new(Function.bind.apply(e,n));return i&&v(r,i.prototype),r}:Reflect.construct).apply(null,arguments)}function E(e){var t="function"==typeof Map?new Map:void 0;return(E=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return y(e,arguments,p(this).constructor)}return i.prototype=Object.create(e.protoLine truncated
//# sourceMappingURL=artplayer-plugin-vast.esm.js.map
@@ -1 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,2BAEe,SAAS,EAAoB,CAAQ,EAChD,OAAO,MAAO,IACV,GAAM,CAAE,SAAA,CAAQ,CAAE,YAAA,CAAW,CAAE,CAAG,EAC5B,CAAE,cAAA,CAAa,CAAE,UAAA,CAAS,CAAE,CAAG,EAAY,KAAK,CAChD,CAAE,OAAA,CAAM,CAAE,QAAA,CAAO,CAAE,CAAG,CAE5B,OAAM,AAAA,CAAA,EAAA,EAAA,UAAS,AAAT,IAEN,IAAM,EAAM,AADG,OAAO,MAAM,CACT,GAAG,CAEhB,EAAu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 truncated
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,2BAEe,SAAS,EAAoB,CAAQ,EAClD,OAAO,MAAO,IACZ,GAAM,CAAE,SAAA,CAAQ,CAAE,YAAA,CAAW,CAAE,CAAG,EAC5B,CAAE,cAAA,CAAa,CAAE,UAAA,CAAS,CAAE,CAAG,EAAY,KAAK,CAChD,CAAE,OAAA,CAAM,CAAE,QAAA,CAAO,CAAE,CAAG,CAE5B,OAAM,AAAA,CAAA,EAAA,EAAA,UAAS,AAAT,IAEN,IAAM,EAAM,AADG,OAAO,MAAM,CACT,GAAG,CAEhB,EAAu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 truncated
@@ -5,4 +5,4 @@
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,i,n,r,s,o,a){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof u[n]&&u[n],h=d.i||{},l=d.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,i){if(!l[t]){if(!e[t]){if(r[t])return r[t];var s="function"==typeof u[n]&&u[n];if(!i&&s)return s(t,!0);if(d)return d(t,!0);if(c&&"string"==typeof t)return c(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}h.resolve=function(i){var n=e[t][1][i];return null!=n?n:i},h.cache={};var a=l[t]=new f.Module(t);e[t][0].call(a.exports,h,a,a.exports,u)}return l[t].exports;function h(e){var t=h.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=l,f.parent=d,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=h,f.register=function(t,i){e[t]=[function(e,t){t.exports=i},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var p=0;p<t.length;p++)f(t[p]);if(i){var v=f(i);"object"==typeof exports&&"undefined"!=typeof module?module.exports=v:"function"==typeof define&&define.amd&&define(function(){return v})}}({jz4E5:[function(e,t,i,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(i),r.export(i,"default",()=>o);var s=e("@glomex/vast-ima-player");function o(e){return async t=>{let{template:i,constructor:n}=t,{createElement:r,setStyles:o}=n.utils,{$video:a,$player:u}=i;await (0,s.loadImaSdk)();let d=window.google.ima,h=new d.AdsRenderingSettings;h.restoreCustomPlaybackStateOnAdBreakComplete=!0,h.enablePreloading=!0;let l=new(0,s.PlayerOptions),c=!1,f=null,p=null;function v(){p=function(){let e=r("div");return e.id=`art-vast-${Date.now()}`,o(e,{position:"absolute",inset:"0",width:"100%",height:"100%",zIndex:"150",backgroundColor:"black",display:"none",pointerEvents:"auto"}),e}(),u.appendChild(p),(f=new(0,s.Player)(d,a,p,h,l)).onAdStarted=()=>{c=!0,p.style.display="block",t.pause()},f.onAdEnd=()=>{c=!1,p.style.display="none",t.play()},f.onAdError=e=>{console.error("VAST Ad Error:",e),c=!1,p.style.display="none",t.play()}}return"function"==typeof e&&await e({art:t,playUrl:function(e){if(c)return;f||v();let t=new d.AdsRequest;t.adTagUrl=e,f.playAds(t)},playRes:function(e){if(c)return;f||v();let t=new d.AdsRequest;t.adsResponse=e,f.playAds(t)},ima:d,imaPlayer:f,get container(){return p}}),{name:"artplayerPluginVast",destroy:function(){p&&p.parentNode&&p.parentNode.removeChild(p),p=null,f=null}}}}"undefined"!=typeof window&&(window.artplayerPluginVast=o)},{"@glomex/vast-ima-player":"g5DTO","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],g5DTO:[function(e,t,i,n){var r,s,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(i),o.export(i,"Player",()=>ed),o.export(i,"PlayerError",()=>L),o.export(i,"PlayerEvent",()=>M),o.export(i,"PlayerOptions",()=>j),o.export(i,"loadImaSdk",()=>d);var a=null,u=function(){a=null},d=function(){var e=window;return e.google&&e.google.ima?Promise.resolve(e.google.ima):a||((a=new Promise(function(e,t){var i=document.createElement("script");i.async=!0,i.src="https://imasdk.googleapis.com/js/sdkloader/ima3.js",i.onload=e,i.onerror=t,document.body.appendChild(i)}).then(function(){return e.google.ima})).then(u).catch(u),a)};function h(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t,i){return t&&h(e.prototype,t),i&&h(e,i),e}function c(){return(c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,v(e,t)}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e,t,i){return(y=!function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}()?function(e,t,i){var n=[null];n.push.apply(n,t);var r=new(Function.bind.apply(e,n));return i&&v(r,i.prototype),r}:Reflect.construct).apply(null,arguments)}function E(e){var t="function"==typeof Map?new Map:void 0;return(E=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return y(e,arguments,p(this).constructor)}return i.prototype=Object.create(e.prototyLine truncated
!function(e,t,i,n,r,s,o,a){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof d[n]&&d[n],h=u.i||{},l=u.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,i){if(!l[t]){if(!e[t]){if(r[t])return r[t];var s="function"==typeof d[n]&&d[n];if(!i&&s)return s(t,!0);if(u)return u(t,!0);if(c&&"string"==typeof t)return c(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}h.resolve=function(i){var n=e[t][1][i];return null!=n?n:i},h.cache={};var a=l[t]=new f.Module(t);e[t][0].call(a.exports,h,a,a.exports,d)}return l[t].exports;function h(e){var t=h.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=l,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=h,f.register=function(t,i){e[t]=[function(e,t){t.exports=i},{}]},Object.defineProperty(f,"root",{get:function(){return d[n]}}),d[n]=f;for(var p=0;p<t.length;p++)f(t[p]);if(i){var v=f(i);"object"==typeof exports&&"undefined"!=typeof module?module.exports=v:"function"==typeof define&&define.amd&&define(function(){return v})}}({dwHLV:[function(e,t,i,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(i),r.export(i,"default",()=>o);var s=e("@glomex/vast-ima-player");function o(e){return async t=>{let{template:i,constructor:n}=t,{createElement:r,setStyles:o}=n.utils,{$video:a,$player:d}=i;await (0,s.loadImaSdk)();let u=window.google.ima,h=new u.AdsRenderingSettings;h.restoreCustomPlaybackStateOnAdBreakComplete=!0,h.enablePreloading=!0;let l=new(0,s.PlayerOptions),c=!1,f=null,p=null;function v(){p=function(){let e=r("div");return e.id=`art-vast-${Date.now()}`,o(e,{position:"absolute",inset:"0",width:"100%",height:"100%",zIndex:"150",backgroundColor:"black",display:"none",pointerEvents:"auto"}),e}(),d.appendChild(p),(f=new(0,s.Player)(u,a,p,h,l)).onAdStarted=()=>{c=!0,p.style.display="block",t.pause()},f.onAdEnd=()=>{c=!1,p.style.display="none",t.play()},f.onAdError=e=>{console.error("VAST Ad Error:",e),c=!1,p.style.display="none",t.play()}}return"function"==typeof e&&await e({art:t,playUrl:function(e){if(c)return;f||v();let t=new u.AdsRequest;t.adTagUrl=e,f.playAds(t)},playRes:function(e){if(c)return;f||v();let t=new u.AdsRequest;t.adsResponse=e,f.playAds(t)},ima:u,imaPlayer:f,get container(){return p}}),{name:"artplayerPluginVast",destroy:function(){p&&p.parentNode&&p.parentNode.removeChild(p),p=null,f=null}}}}"undefined"!=typeof window&&(window.artplayerPluginVast=o)},{"@glomex/vast-ima-player":"edhqb","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],edhqb:[function(e,t,i,n){var r,s,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(i),o.export(i,"Player",()=>eu),o.export(i,"PlayerError",()=>j),o.export(i,"PlayerEvent",()=>M),o.export(i,"PlayerOptions",()=>L),o.export(i,"loadImaSdk",()=>u);var a=null,d=function(){a=null},u=function(){var e=window;return e.google&&e.google.ima?Promise.resolve(e.google.ima):a||((a=new Promise(function(e,t){var i=document.createElement("script");i.async=!0,i.src="https://imasdk.googleapis.com/js/sdkloader/ima3.js",i.onload=e,i.onerror=t,document.body.appendChild(i)}).then(function(){return e.google.ima})).then(d).catch(d),a)};function h(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t,i){return t&&h(e.prototype,t),i&&h(e,i),e}function c(){return(c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,v(e,t)}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e,t,i){return(y=!function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}()?function(e,t,i){var n=[null];n.push.apply(n,t);var r=new(Function.bind.apply(e,n));return i&&v(r,i.prototype),r}:Reflect.construct).apply(null,arguments)}function E(e){var t="function"==typeof Map?new Map:void 0;return(E=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return y(e,arguments,p(this).constructor)}return i.prototype=Object.create(e.prototyLine truncated
Loaded 100 of 447 files, more files were not shown because too many files have changed in this diff. Show more