mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-08 10:56:15 -08:00
8 lines
10 KiB
JavaScript
8 lines
10 KiB
JavaScript
|
|
/*!
|
|
* artplayer-plugin-asr.js v2.0.0
|
|
* Github: https://github.com/zhw2590582/ArtPlayer
|
|
* (c) 2017-2026 Harvey Zhao
|
|
* Released under the MIT License.
|
|
*/
|
|
!function(e,t,r,n,o){var a="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{},u="function"==typeof a[n]&&a[n],i=u.i||{},l=u.cache||{},s="u">typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(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(u)return u(t,!0);if(s&&"string"==typeof t)return s(t);var f=Error("Cannot find module '"+t+"'");throw f.code="MODULE_NOT_FOUND",f}d.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},d.cache={};var p=l[t]=new c.Module(t);e[t][0].call(p.exports,d,p,p.exports,a)}return l[t].exports;function d(e){var t=d.resolve(e);if(!1===t)return{};if(Array.isArray(t)){var r={__esModule:!0};return t.forEach(function(e){var t=e[0],n=e[1],o=e[2]||e[0],a=c(n);"*"===t?Object.keys(a).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:function(){return a[e]}})}):"*"===o?Object.defineProperty(r,t,{enumerable:!0,value:a}):Object.defineProperty(r,t,{enumerable:!0,get:function(){return"default"===o?a.__esModule?a.default:a:a[o]}})}),r}return c(t)}}c.isParcelRequire=!0,c.Module=function(e){this.id=e,this.bundle=c,this.require=s,this.exports={}},c.modules=e,c.cache=l,c.parent=u,c.distDir=void 0,c.publicUrl=void 0,c.devServer=void 0,c.i=i,c.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(c,"root",{get:function(){return a[n]}}),a[n]=c;for(var f=0;f<t.length;f++)c(t[f]);if(r){var p=c(r);"object"==typeof exports&&"u">typeof module?module.exports=p:"function"==typeof define&&define.amd&&define(function(){return p})}}({"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 a=e("@swc/helpers/cjs/_async_to_generator.cjs"),u=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("bundle-text:./style.less"),l=o.interopDefault(i);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,i=e.sampleRate,l=void 0===i?16e3:i,s=e.autoHideTimeout,c=void 0===s?1e4:s,f=e.onAudioChunk,p=void 0===f?function(){return null}:f;return function(e){var t=!1,n=null,i=null,s=null,f=null,d=[],b=null,h=!1,v=null,y=null,m=null,g=e.layers.add({name:"asr",html:""});function w(){g.style.display="none"}function x(e){"string"==typeof e&&(clearTimeout(v),v=setTimeout(w,c),g.style.display="",g.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 _=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,a._)(function(){return(0,u._)(this,function(e){return t&&(t=!1,clearInterval(b),b=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),f&&(f.disconnect(),f=null),d=[]),[2]})})()}function A(){return(0,a._)(function(){return(0,u._)(this,function(e){switch(e.label){case 0:return[4,j()];case 1:if(e.sent(),m&&(m.disconnect(),m=null),i&&(i.disconnect(),i=null),y&&(y.getTracks().forEach(function(e){return e.stop()}),y=null),!n)return[3,3];return[4,n.close()];case 2:e.sent(),n=null,e.label=3;case 3:return h=!1,[2]}})})()}return e.on("video:volumechange",function(){f&&(f.gain.value=e.volume)}),e.on("play",function(){return(0,a._)(function(){var r,c,v;return(0,u._)(this,function(g){switch(g.label){case 0:if(t)return[2];g.label=1;case 1:return g.trys.push([1,6,,8]),[4,(0,a._)(function(){return(0,u._)(this,function(e){switch(e.label){case 0:if(n)return[2,n];if("suspended"!==(n=new(window.AudioContext||window.webkitAudioContext)({sampleRate:l})).state)return[3,2];return[4,n.resume()];case 1:e.sent(),e.label=2;case 2:return[2,n]}})})()];case 2:return g.sent(),[4,(0,a._)(function(){return(0,u._)(this,function(t){switch(t.label){case 0:if(!i&&e.video)try{return i=n.createMediaElementSource(e.video),[2,i]}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed:",e)}t.label=1;case 1:var r;if(t.trys.push([1,4,,5]),y)return[3,3];return[4,(r=e.video,(0,a._)(function(){return(0,u._)(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:y=t.sent(),t.label=3;case 3:if(y)return[2,m=n.createMediaStreamSource(y)];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=g.sent()))throw Error("Could not establish audio source");if(h)return[3,5];return c=_(),[4,n.audioWorklet.addModule(c)];case 4:g.sent(),URL.revokeObjectURL(c),h=!0,g.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.connect(n.destination),v=o/1e3*l,b=setInterval(function(){return(0,a._)(function(){var e,t,r,n;return(0,u._)(this,function(o){switch(o.label){case 0:var a,u,i,s,c;if(0===d.length)return[2];for(e=new Float32Array(0);e.length<v&&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<v)return[2];return a=n=function(e){for(var t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r),o=0;o<t;o++){var a=Math.max(-1,Math.min(1,e[o]));n.setInt16(2*o,a<0?32768*a:32767*a,!0)}return r}(e.slice(0,v)),s=new DataView(i=new ArrayBuffer(44+(u=a.byteLength))),(c=function(e,t){for(var r=0;r<t.length;r++)s.setUint8(e+r,t.charCodeAt(r))})(0,"RIFF"),s.setUint32(4,36+u,!0),c(8,"WAVE"),c(12,"fmt "),s.setUint32(16,16,!0),s.setUint16(20,1,!0),s.setUint16(22,1,!0),s.setUint32(24,l,!0),s.setUint32(28,2*l,!0),s.setUint16(32,2,!0),s.setUint16(34,16,!0),c(36,"data"),s.setUint32(40,u,!0),new Uint8Array(i).set(new Uint8Array(a),44),[4,p({pcm:n,wav:i})];case 1:return x(o.sent()),[2]}})})()},o),t=!0,[3,8];case 6:return console.error("[artplayerPluginAsr] Initialization failed:",g.sent()),[4,j()];case 7:return g.sent(),[3,8];case 8:return[2]}})})()}),e.on("pause",j),e.on("destroy",A),{name:"artplayerPluginAsr",stop:A,hide:w,append:x}}}if("u">typeof document&&!document.getElementById("artplayer-plugin-asr")){var c=document.createElement("style");c.id="artplayer-plugin-asr",c.textContent=l.default,document.head.appendChild(c)}"u">typeof window&&(window.artplayerPluginAsr=s)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","bundle-text:./style.less":"gKjNi","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],cZn0e:[function(e,t,r,n){"use strict";function o(e,t,r,n,o,a,u){try{var i=e[a](u),l=i.value}catch(e){r(e);return}i.done?t(l):Promise.resolve(l).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var u=e.apply(t,r);function i(e){o(u,n,a,i,l,"next",e)}function l(e){o(u,n,a,i,l,"throw",e)}i(void 0)})}}},{}],eltGh:[function(e,t,r,n){"use strict";r._=function(e,t){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(u,"next",{value:l(0)}),i(u,"throw",{value:l(1)}),i(u,"return",{value:l(2)}),"function"==typeof Symbol&&i(u,Symbol.iterator,{value:function(){return this}}),u;function l(i){return function(l){var s=[i,l];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,s[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}},{}],gKjNi:[function(e,t,r,n){t.exports=".art-video-player .art-layer-asr{z-index:150;justify-content:end;gap:var(--art-subtitle-gap);padding:0 2%;padding-bottom:var(--art-subtitle-bottom);transition:padding-bottom var(--art-transition-duration) ease;text-shadow:var(--art-subtitle-border) 1px 0 1px, var(--art-subtitle-border) 0 1px 1px, var(--art-subtitle-border) -1px 0 1px, var(--art-subtitle-border) 0 -1px 1px, var(--art-subtitle-border) 1px 1px 1px, var(--art-subtitle-border) -1px -1px 1px, var(--art-subtitle-border) 1px -1px 1px, var(--art-subtitle-border) -1px 1px 1px;flex-direction:column;font-size:1rem;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none!important}.art-video-player.art-control-show .art-layer-asr{padding-bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}"},{}],qpMMf:[function(e,t,r,n){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})}},{}]},["98QZN"],"98QZN","parcelRequire4dc0",{}); |