recorder-core
Version:
Recorder库: html5 js 录音 mp3 wav ogg webm amr g711a g711u 格式,支持pc和Android、iOS部分浏览器、Hybrid App(提供Android iOS App源码)、微信,提供ASR语音识别转文字 H5版语音通话聊天示例 DTMF编码解码
6 lines • 147 kB
JavaScript
/*
录音
https://github.com/xiangyuecn/Recorder
src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js
*/
!function(e){"use strict";var t=!1,a="object"==typeof window&&window.document,s=a&&a.documentElement,n=Object["Recorder-Core-IsBrowser"];if(null!=n)t=!!n;else if(s&&s.style)try{var r=a.createElement("div").style;r.cssText="margin:6px !important",t="6px"==r.marginTop}catch(e){}var i=t?window:Object,o=Object["Recorder-Core-Alias"],_=o||"Recorder";!function(e,t,y){var A=function(){},f=function(e){return"number"==typeof e},B=function(e){return JSON.stringify(e)},ee=function(e){return new l(e)},k=ee.LM="2026-07-08 20:16",R="https://github.com/xiangyuecn/Recorder",T="Recorder",x="getUserMedia",N="srcSampleRate",V="sampleRate",i="bitRate",E="catch",a=e[t];if(a&&a.LM==k)return a.CLog(a.i18n.$T("K8zP::重复导入{1}",0,T+(T==t?"":"@"+t)),3);ee.IsBrowser=y,ee.LoadTime=Date.now(),ee.IsOpen=function(){var e=ee.Stream;if(e){var t=j(e),a=t[0];if(a){var s=a.readyState;return"live"==s||s==a.LIVE}}return!1},ee.BufferSize=4096,ee.Destroy=function(){for(var e in te(T+" Destroy"),F(),s)s[e]()};var s={};ee.BindDestroy=function(e,t){s[e]=t},ee.Support=function(){if(!y)return!1;var e=navigator.mediaDevices||{};return e[x]||(e=navigator)[x]||(e[x]=e.webkitGetUserMedia||e.mozGetUserMedia||e.msGetUserMedia),!!e[x]&&(ee.Scope=e,!!ee.GetContext())},ee.GetContext=function(e){if(!y)return null;var t=window.AudioContext;if(t||(t=window.webkitAudioContext),!t)return null;var a=ee.Ctx,s=0;return a||(a=ee.Ctx=new t,s=1,ee.NewCtxs=ee.NewCtxs||[],ee.BindDestroy("Ctx",function(){var e=ee.Ctx;e&&e.close&&(n(e),ee.Ctx=0);var t=ee.NewCtxs;ee.NewCtxs=[];for(var a=0;a<t.length;a++)n(t[a])})),e&&a.close&&(s||(a._useC||n(a),a=new t),a._useC=1,ee.NewCtxs.push(a)),a},ee.CloseNewCtx=function(e){if(e&&e.close){n(e);for(var t=ee.NewCtxs||[],a=t.length,s=0;s<t.length;s++)if(t[s]==e){t.splice(s,1);break}te(ae("mSxV::剩{1}个GetContext未close",0,a+"-1="+t.length),t.length?3:0)}};var n=function(e){if(e&&e.close&&!e._isC&&(e._isC=1,"closed"!=e.state))try{e.close()}catch(e){te("ctx close err",1,e)}},C=ee.ResumeCtx=function(a,s,n,r){var i=0,o=0,_=0,l=0,f="EventListener",c="ResumeCtx ",u=function(e,t){o&&h(),i||(i=1,e&&r(e,l),t&&n(l)),t&&(!a._LsSC&&a["add"+f]&&a["add"+f]("statechange",p),a._LsSC=1,_=1)},h=function(e){if(!e||!o){o=e?1:0;for(var t=["focus","mousedown","mouseup","touchstart","touchend"],a=0;a<t.length;a++)window[(e?"add":"remove")+f](t[a],p,!0)}},p=function(){var e=a.state,t=b(e);if(!i&&!s(t?++l:l))return u();t?(_&&te(c+"sc "+e,3),h(1),a.resume().then(function(){_&&te(c+"sc "+a.state),u(0,1)})[E](function(e){te(c+"error",1,e),b(a.state)||u(e.message||"error")})):"closed"==e?(_&&!a._isC&&te(c+"sc "+e,1),u("ctx closed")):u(0,1)};p()},b=ee.CtxSpEnd=function(e){return"suspended"==e||"interrupted"==e},I=function(e){var t=e.state,a="ctx.state="+t;return b(t)&&(a+=ae("nMIy::(注意:ctx不是running状态,rec.open和start至少要有一个在用户操作(触摸、点击等)时进行调用,否则将在rec.start时尝试进行ctx.resume,可能会产生兼容性问题(仅iOS),请参阅文档中runningContext配置)")),a},L="ConnectEnableWebM";ee[L]=!0;var P="ConnectEnableWorklet";ee[P]=!1;var H=function(e){var _=e.BufferSize||ee.BufferSize,l=e.Stream,i=l._c,f=i[V],c={},t=j(l),a=t[0],s=null,n="";if(a&&a.getSettings){var r=(s=a.getSettings())[V];r&&r!=f&&(n=ae("eS8i::Stream的采样率{1}不等于{2},将进行采样率转换(注意:音质不会变好甚至可能变差),主要在移动端未禁用回声消除时会产生此现象,浏览器有回声消除时可能只会返回16k采样率的音频数据,",0,r,f))}l._ts=s,te(n+"Stream TrackSet: "+B(s),n?3:0);var u,o,h,p=function(e){var t=l._m=i.createMediaStreamSource(l),a=i.destination,s="createMediaStreamDestination";i[s]&&(a=l._d=i[s]()),t.connect(e),e.connect(a)},b="",m=l._call,v=function(e,t){for(var a in m){if(t!=f){c.index=0;var s=(c=ee.SampleData([e],t,f,c,{_sum:1})).data,n=c._sum}else{c={};for(var r=e.length,s=new Int16Array(r),n=0,i=0;i<r;i++){var o=e[i];o<-1?o=-1:1<o&&(o=1),o=o<0?32768*o:32767*o,s[i]=o,n+=o<0?-o:o}}for(var _ in m)m[_](s,n);return}},d="ScriptProcessor",g="audioWorklet",w=T+" "+g,S="RecProc",M="MediaRecorder",y=M+".WebM.PCM",A=i.createScriptProcessor||i.createJavaScriptNode,k=ae("ZGlf::。由于{1}内部1秒375次回调,在移动端可能会有性能问题导致回调丢失录音变短,PC端无影响,暂不建议开启{1}。",0,g),R=function(){o=l.isWorklet=!1,O(l),te(ae("7TU0::Connect采用老的{1},",0,d)+U.get(ae(ee[P]?"JwCL::但已设置{1}尝试启用{2}":"VGjB::可设置{1}尝试启用{2}",2),[T+"."+P+"=true",g])+b+k,3);var e=l._p=A.call(i,_,1,1);p(e),e.onaudioprocess=function(e){var t=e.inputBuffer.getChannelData(0);v(t,f)}},x=function(){u=l.isWebM=!1,D(l),o=l.isWorklet=!A||ee[P];var t=window.AudioWorkletNode;if(o&&i[g]&&t){var s=function(){return o&&l._na},n=l._na=function(){""!==h&&(clearTimeout(h),h=setTimeout(function(){h=0,s()&&(te(ae("MxX1::{1}未返回任何音频,恢复使用{2}",0,g,d),3),A&&R())},500))},r=function(){if(s()){var e=l._n=new t(i,S,{processorOptions:{bufferSize:_}});p(e),e.port.onmessage=function(e){h&&(clearTimeout(h),h=""),s()?v(e.data.val,f):o||te(ae("XUap::{1}多余回调",0,g),3)},te(ae("yOta::Connect采用{1},设置{2}可恢复老式{3}",0,g,T+"."+P+"=false",d)+b+k,3)}},e=function(){if(s())if(i[S])r();else{var e,t,a=(t="class "+S+" extends AudioWorkletProcessor{",t+="constructor "+(e=function(e){return e.toString().replace(/^function|DEL_/g,"").replace(/\$RA/g,w)})(function(e){DEL_super(e);var t=this,a=e.processorOptions.bufferSize;t.bufferSize=a,t.buffer=new Float32Array(2*a),t.pos=0,t.port.onmessage=function(e){e.data.kill&&(t.kill=!0,$C.log("$RA kill call"))},$C.log("$RA .ctor call",e)}),t+="process "+e(function(e,t,a){var s=this,n=s.bufferSize,r=s.buffer,i=s.pos;if((e=(e[0]||[])[0]||[]).length){r.set(e,i);var o=~~((i+=e.length)/n)*n;if(o){this.port.postMessage({val:r.slice(0,o)});var _=r.subarray(o,i);(r=new Float32Array(2*n)).set(_),i=_.length,s.buffer=r}s.pos=i}return!s.kill}),t=(t+='}try{registerProcessor("'+S+'", '+S+')}catch(e){$C.error("'+w+' Reg Error",e)}').replace(/\$C\./g,"console."),"data:text/javascript;base64,"+btoa(unescape(encodeURIComponent(t))));i[g].addModule(a).then(function(e){s()&&(i[S]=1,r(),h&&n())})[E](function(e){te(g+".addModule Error",1,e),s()&&R()})}};C(i,function(){return s()},e,e)}else R()};!function(){var e=window[M],t="ondataavailable",a="audio/webm; codecs=pcm";u=l.isWebM=ee[L];var s=e&&t in e.prototype&&e.isTypeSupported(a);if(b=s?"":ae("VwPd::(此浏览器不支持{1})",0,y),!u||!s)return x();var n=function(){return u&&l._ra};l._ra=function(){""!==h&&(clearTimeout(h),h=setTimeout(function(){n()&&(te(ae("vHnb::{1}未返回任何音频,降级使用{2}",0,M,g),3),x())},500))};var r=Object.assign({mimeType:a},ee.ConnectWebMOptions),i=l._r=new e(l,r),o=l._rd={};i[t]=function(e){var t=new FileReader;t.onloadend=function(){if(n()){var e=z(new Uint8Array(t.result),o);if(!e)return;if(-1==e)return void x();h&&(clearTimeout(h),h=""),v(e,o.webmSR)}else u||te(ae("O9P7::{1}多余回调",0,M),3)},t.readAsArrayBuffer(e.data)};try{i.start(~~(_/48)),te(ae("LMEm::Connect采用{1},设置{2}可恢复使用{3}或老式{4}",0,y,T+"."+L+"=false",g,d))}catch(e){te("mr start err",1,e),x()}}()},r=function(e){e._na&&e._na(),e._ra&&e._ra()},O=function(e){e._na=null,e._n&&(e._n.port.postMessage({kill:!0}),e._n.disconnect(),e._n=null)},D=function(e){if(e._ra=null,e._r){try{e._r.stop()}catch(e){te("mr stop err",1,e)}e._r=null}},F=function(e){var t=(e=e||ee)==ee,a=e.Stream;a&&(a._m&&(a._m.disconnect(),a._m=null),!a._RC&&a._c&&ee.CloseNewCtx(a._c),a._RC=null,a._c=null,a._d&&(o(a._d.stream),a._d=null),a._p&&(a._p.disconnect(),a._p.onaudioprocess=a._p=null),O(a),D(a),t&&o(a)),e.Stream=0},o=ee.StopS_=function(e){for(var t=j(e),a=0;a<t.length;a++){var s=t[a];s.stop&&s.stop()}e.stop&&e.stop()},j=function(e){var t=0,a=0,s=[];e.getAudioTracks&&(t=e.getAudioTracks(),a=e.getVideoTracks()),t||(t=e.audioTracks,a=e.videoTracks);for(var n=0,r=t?t.length:0;n<r;n++)s.push(t[n]);for(var n=0,r=a?a.length:0;n<r;n++)s.push(a[n]);return s};ee.SampleData=function(e,t,a,s,n){var r="SampleData";s||(s={});var i=s.index||0,o=s.offset||0,_=s.raisePrev||0,l=s.downPrev,f=s.filter;f&&f.fn&&(f.sr&&f.sr!=t||f.srn&&f.srn!=a)&&(f=null,te(ae("d48C::{1}的filter采样率变了,重设滤波",0,r),3)),f||(f=a<t?{fn:ee.IIRFilter(!0,t,a/2)}:t<a?{fn:ee.IIRFilter(!0,a,t/2)}:{fn:null}),f.sr=t,f.srn=a;var c=f.fn,u=s.frameNext||[];n||(n={});var h=n.frameSize||1;n.frameType&&(h="mp3"==n.frameType?1152:1);var p=n._sum,b=0,m=e.length;m+1<i&&te(ae("tlbC::{1}似乎传入了未重置chunk {2}",0,r,i+">"+m),3);for(var v=0,d=i;d<m;d++)v+=e[d].length;var g=t/a;if(1<g){v=Math.max(0,v-o);var w=(v/=g)%1*g;v=Math.ceil(v),g%1&&0<w&&w<1&&v--,l&&v++}else if(g<1){var S=1/g;v+=o,v=Math.floor(v*S)}v+=u.length;for(var M=new Int16Array(v),y=0,A=0,k=0,d=0;d<u.length;d++)M[k]=u[d],k++;for(;i<m;i++){var R=e[i],x=R instanceof Float32Array,d=o,B=R.length,T=c&&c.Embed,E=0,C=0;if(1==g){for(var I=0;I<B;I++){var L=R[I];x&&(L<-1?L=-1:1<L&&(L=1),L=L<0?32768*L:32767*L),M[k]=L,k++}o=0}else if(g<1){for(var P=k+d,H=P,O=_,I=0;I<B;I++){var L=R[I];x&&(L<-1?L=-1:1<L&&(L=1),L=L<0?32768*L:32767*L);for(var N=~~P,V=~~(P=H+(I+1)*S),D=(L-O)/(V-N),F=1;N<V;N++,F++){var j=~~(O+F*D);T?(E=j,C=T.b0*E+T.b1*T.x1+T.b0*T.x2-T.a1*T.y1-T.a2*T.y2,T.x2=T.x1,T.x1=E,T.y2=T.y1,T.y1=C,j=C):j=c?c(j):j,32767<j?j=32767:j<-32768&&(j=-32768),p&&(b+=j<0?-j:j),M[N]=j,k++}O=_=L,d=o+(I+1)*S}o=d%1}else{for(var z=0,X=0,I=0,q=0;I<B;I++,q++){if(q<B){var L=R[q];x&&(L<-1?L=-1:1<L&&(L=1),L=L<0?32768*L:32767*L),T?(E=L,C=T.b0*E+T.b1*T.x1+T.b0*T.x2-T.a1*T.y1-T.a2*T.y2,T.x2=T.x1,T.x1=E,T.y2=T.y1,T.y1=C):C=c?c(L):L}var Y=X;X=C;var G=!0;if(0==q){if(I--,!l)continue;z--,Y=l.v,Y+=(X-Y)*l.at,l=null}else{var U=~~d;if(I!=U)continue;if(U!=d){var K=U+1,Z=d-U;B<=K?(G=!1,l={v:Y,at:Z}):Y+=(X-Y)*Z}}if(G){if(32767<Y?Y=32767:Y<-32768&&(Y=-32768),p&&(b+=Y<0?-Y:Y),k==v){y||(y=v),A++,v++;var W=new Int16Array(M.length+1);W.set(M),M=W}M[k]=Y,k++}d=o+ ++z*g}o=Math.max(0,d-B)}}k<v?(y||(y=v),A++,v=k,M=new Int16Array(M.buffer.slice(0,2*v))):v<k&&(A=-1),(y||k!=v)&&te(r+" idx:"+k+" != size:"+(y?y+" resize:"+v:v),3),u=null;var Q=v%h;if(0<Q){var $=2*(v-Q);u=new Int16Array(M.buffer.slice($)),M=new Int16Array(M.buffer.slice(0,$))}var J={index:i,offset:o,raisePrev:_,downPrev:l,resizeCount:-1==s.resizeCount||-1==A?-1:(s.resizeCount||0)+A,filter:f,frameNext:u,sampleRate:a,data:M};return p&&(J._sum=b),J},ee.IIRFilter=ee.IIRFilter_Default=function(e,t,a){e&&(a=Math.max(3*a/4,a-Math.abs(t/2-a)/2));var s=2*Math.PI*a/t,n=Math.sin(s),r=Math.cos(s),i=n/2,o=1+i,_=-2*r/o,l=(1-i)/o;if(e)var f=(1-r)/2/o,c=(1-r)/o;else var f=(1+r)/2/o,c=-(1+r)/o;var u=0,h=0,p=0,b=0,m=0,v=function(e){return p=f*e+c*u+f*h-_*b-l*m,h=u,u=e,m=b,b=p};return v.Embed={x1:0,x2:0,y1:0,y2:0,b0:f,b1:c,a1:_,a2:l},v},ee.PowerLevel=function(e,t){var a=e/t||0;return a<1251?Math.round(a/1250*10):Math.round(Math.min(100,Math.max(0,100*(1+Math.log(a/1e4)/Math.log(10)))))},ee.PowerDBFS=function(e,t){var a=Math.max(.1,e||0);return a=Math.min(a,32767),a=20*Math.log(a/32767)/Math.log(10),Math.max(-100,t?a:Math.round(a))},ee.CLog=function(e,t){if("object"==typeof console){var a=new Date,s=("0"+a.getMinutes()).substr(-2)+":"+("0"+a.getSeconds()).substr(-2)+"."+("00"+a.getMilliseconds()).substr(-3),n=this&&this.envIn&&this.envCheck&&this.id,r=["["+s+" "+T+(n?":"+n:"")+"]"+e],i=arguments,o=ee.CLog,_=2,l=o.log||console.log;for(f(t)?l=1==t?o.error||console.error:3==t?o.warn||console.warn:l:_=1;_<i.length;_++)r.push(i[_]);c?l&&l("[IsLoser]"+r[0],1<r.length?r:""):l.apply(console,r)}};var te=function(){ee.CLog.apply(this,arguments)},c=!0;try{c=!console.log.apply}catch(e){}var _=0;function l(e){var t=this;t.id=++_,u();var a={type:"mp3",onProcess:A};for(var s in e)a[s]=e[s];var n=(t.set=a)[i],r=a[V];(n&&!f(n)||r&&!f(r))&&t.CLog(ae.G("IllegalArgs-1",[ae("VtS4::{1}和{2}必须是数值",0,V,i)]),1,e),a[i]=+n||16,a[V]=+r||16e3,t.state=0,t._S=9,t.Sync={O:9,C:9}}ee.Sync={O:9,C:9},ee.prototype=l.prototype={CLog:te,_streamStore:function(){return this.set.sourceStream?this:ee},_streamGet:function(){return this._streamStore().Stream},_streamCtx:function(){var e=this._streamGet();return e&&e._c},open:function(e,a){var _=this,l=_.set,s=_._streamStore(),n=0;e=e||A;var r=function(e,t){t=!!t,_.CLog(ae("5tWi::录音open失败:")+e+",isUserNotAllow:"+t,1),n&&ee.CloseNewCtx(n),a&&a(e,t)};_._streamTag=x;var i=function(){_.CLog("open ok, id:"+_.id+" stream:"+_._streamTag),e(),_._SO=0},o=s.Sync,f=++o.O,c=o.C;_._O=_._O_=f,_._SO=_._S;if(y){var t=_.envCheck({envName:"H5",canProcess:!0});if(t)r(ae("A5bm::不能录音:")+t);else{var u,h=function(){(u=l.runningContext)||(u=n=ee.GetContext(!0))};if(l.sourceStream){if(_._streamTag="set.sourceStream",!ee.GetContext())return void r(ae("1iU7::不支持此浏览器从流中获取录音"));h(),F(s);var p=_.Stream=l.sourceStream;p._c=u,p._RC=l.runningContext,p._call={};try{H(s)}catch(e){return F(s),void r(ae("BTW2::从流中打开录音失败:")+e.message)}i()}else{var b=function(e,t){try{window.top.a}catch(e){return void r(ae("Nclz::无权录音(跨域,请尝试给iframe添加麦克风访问策略,如{1})",0,'allow="camera;microphone"'))}m(1,e)&&(/Found/i.test(e)?r(t+ae("jBa9::,无可用麦克风")):r(t))},m=function(e,t){if(/Permission|Allow/i.test(t))e&&r(ae("gyO5::用户拒绝了录音权限"),!0);else{if(!1!==window.isSecureContext)return 1;e&&r(ae("oWNo::浏览器禁止不安全页面录音,可开启https解决"))}};if(ee.IsOpen())i();else if(ee.Support()){h();var v,d,g=function(t){setTimeout(function(){t._call={};var e=ee.Stream;e&&(F(),t._call=e._call),(ee.Stream=t)._c=u,t._RC=l.runningContext,function(){if(c!=o.C||!_._O){var e=ae("dFm8::open被取消");return f==o.O?_.close():e=ae("VtJO::open被中断"),r(e),!0}}()||(ee.IsOpen()?(e&&_.CLog(ae("upb8::发现同时多次调用open"),1),H(s),i()):r(ae("Q1GA::录音功能无效:无音频流")))},100)},w=function(e){var t=e.name||e.message||e.code+":"+e,a="";1==S&&m(0,t)&&(a=ae("KxE2::,将尝试禁用回声消除后重试"));var s=ae("xEQR::请求录音权限错误"),n=ae("bDOG::无法录音:");_.CLog(s+a+"|"+e,a||d?3:1,e),a?(v=t,d=e,M(1)):d?(_.CLog(s+"|"+d,1,d),b(v,n+d)):b(t,n+e)},S=0,M=function(e){S++;var t="audioTrackSet",a="autoGainControl",s="echoCancellation",n="noiseSuppression",r=JSON.parse(B(l[t]||!0));_.CLog("open... "+S+" "+t+":"+B(r)),e&&("object"!=typeof r&&(r={}),r[a]=!1,r[s]=!1,r[n]=!1),r[V]&&_.CLog(ae("IjL3::注意:已配置{1}参数,可能会出现浏览器不能正确选用麦克风、移动端无法启用回声消除等现象",0,t+"."+V),3);var i={audio:r,video:l.videoTrackSet||!1};try{var o=ee.Scope[x](i,g,w)}catch(e){_.CLog(x,3,e),i={audio:!0,video:!1},o=ee.Scope[x](i,g,w)}_.CLog(x+"("+B(i)+") "+I(u)+" | "+ae("RiWe::提示:未配置 {1} 时浏览器可能会自动启用回声消除(含降噪);未禁用回声消除时可能会导致:open打开录音会很耗时(禁用后打开变快),移动端降低系统播放音量(关闭录音后可恢复)、录音音量很小或忽大忽小、和可能只提供16k采样率的音频流(禁用后获得48k高音质流);请参阅文档中{2}配置",0,"audioTrackSet:{echoCancellation,noiseSuppression,autoGainControl}",t)+"("+R+") LM:"+k+" UA:"+navigator.userAgent),o&&o.then&&o.then(g)[E](w)};M()}else b("",ae("COxc::此浏览器不支持录音"))}}}else r(ae.G("NonBrowser-1",["open"])+ae("EMJq::,可尝试使用RecordApp解决方案")+"("+R+"/tree/master/app-support-sample)")},close:function(e){e=e||A;var t=this,a=t._streamStore();t._stop();var s=" stream:"+t._streamTag,n=a.Sync;if(t._O=0,t._O_!=n.O)return t.CLog(ae("hWVz::close被忽略(因为同时open了多个rec,只有最后一个会真正close)")+s,3),void e();n.C++,F(a),t.CLog("close,"+s),e()},mock:function(e,t){var a=this;return a._stop(),a.isMock=1,a.mockEnvInfo=null,a.buffers=[e],a.recSize=e.length,a._setSrcSR(t),a._streamTag="mock",a},_setSrcSR:function(e){var t=this.set,a=t[V],s="";e<a&&(t.allowUpsample?s="upsample!!":(s="!set.allowUpsample: "+a,t[V]=a=e)),this[N]=e,this.CLog(N+": "+e+" set."+V+": "+a+" "+s,s?3:0)},envCheck:function(e){var t,a=this.set,s="CPU_BE";if(t||ee[s]||"function"!=typeof Int8Array||new Int8Array(new Int32Array([1]).buffer)[0]||(u(s),t=ae("Essp::不支持{1}架构",0,s)),!t){var n=a.type,r=this[n+"_envCheck"];a.takeoffEncodeChunk&&(r?e.canProcess||(t=ae("7uMV::{1}环境不支持实时处理",0,e.envName)):t=ae("2XBl::{1}类型不支持设置takeoffEncodeChunk",0,n)+(this[n]?"":ae("LG7e::(未加载编码器)"))),!t&&r&&(t=this[n+"_envCheck"](e,a))}return t||""},envStart:function(e,t){var a=this,s=a.set;if(a.isMock=e?1:0,a.mockEnvInfo=e,a.buffers=[],a.recSize=0,e&&(a._streamTag="env$"+e.envName),a.state=1,a.envInLast=0,a.envInFirst=0,a.envInFix=0,a.envInFixTs=[],a._setSrcSR(t),a.engineCtx=0,a[s.type+"_start"]){var n=a.engineCtx=a[s.type+"_start"](s);n&&(n.pcmDatas=[],n.pcmSize=0)}},envResume:function(){this.envInFixTs=[]},envIn:function(e,t){var n=this,r=n.set,i=n.engineCtx;if(1==n.state){var a=n[N],s=e.length,o=ee.PowerLevel(t,s),_=n.buffers,l=_.length;_.push(e);var f=_,c=l,u=Date.now(),h=Math.round(s/a*1e3);n.envInLast=u,1==n.buffers.length&&(n.envInFirst=u-h);var p=n.envInFixTs;p.splice(0,0,{t:u,d:h});for(var b=u,m=0,v=0;v<p.length;v++){var d=p[v];if(3e3<u-d.t){p.length=v;break}b=d.t,m+=d.d}var g=p[1],w=u-b,S=w-m;if(w/3<S&&(g&&1e3<w||6<=p.length)){var M=u-g.t-h;if(h/5<M){var y=!r.disableEnvInFix;if(n.CLog("["+u+"]"+U.get(ae(y?"4Kfd::补偿{1}ms":"bM5i::未补偿{1}ms",1),[M])+" | "+ae("bM6i::提示:在onProcess中打印buffers等二进制数据、部分WebView在后台运行受限,均可能导致卡顿"),3),n.envInFix+=M,y){var A=new Int16Array(M*a/1e3);s+=A.length,_.push(A)}}}var k=n.recSize,R=s,x=k+R;if(n.recSize=x,i){var B=ee.SampleData(_,a,r[V],i.chunkInfo);i.chunkInfo=B,k=i.pcmSize,R=B.data.length,x=k+R,i.pcmSize=x,_=i.pcmDatas,l=_.length,_.push(B.data),a=B[V]}var T=Math.round(x/a*1e3),E=_.length,C=f.length,I=function(){for(var e=L?0:-R,t=null==_[0],a=l;a<E;a++){var s=_[a];null==s?t=1:(e+=s.length,i&&s.length&&n[r.type+"_encode"](i,s))}if(t&&i){var a=c;for(f[0]&&(a=0);a<C;a++)f[a]=null}t&&(e=L?R:0,_[0]=null),i?i.pcmSize+=e:n.recSize+=e},L=0,P="rec.set.onProcess";try{L=!0===(L=r.onProcess(_,o,T,a,l,I))}catch(e){console.error(P+ae("gFUF::回调出错是不允许的,需保证不会抛异常"),e)}var H=Date.now()-u;if(10<H&&1e3<n.envInFirst-u&&n.CLog(P+ae("2ghS::低性能,耗时{1}ms",0,H),3),L){for(var O=0,v=l;v<E;v++)null==_[v]?O=1:_[v]=new Int16Array(0);O?n.CLog(ae("ufqH::未进入异步前不能清除buffers"),3):i?i.pcmSize-=R:n.recSize-=R}else I()}else n.state||n.CLog("envIn at state=0",3)},start:function(){var t=this,e=1;if(t.set.sourceStream?t.Stream||(e=0):ee.IsOpen()||(e=0),e){var a=t._streamCtx();if(t.CLog(ae("kLDN::start 开始录音,")+I(a)+" stream:"+t._streamTag),t._stop(),t.envStart(null,a[V]),t.state=3,t._SO&&t._SO+1!=t._S)t.CLog(ae("Bp2y::start被中断"),3);else{t._SO=0;var s=function(){3==t.state&&(t.state=1,t.resume())},n="AudioContext resume: ",r=t._streamGet();r._call[t.id]=function(){t.CLog(n+a.state+"|stream ok"),s()},C(a,function(e){return e&&t.CLog(n+"wait..."),3==t.state},function(e){e&&t.CLog(n+a.state),s()},function(e){t.CLog(n+a.state+ae("upkE::,可能无法录音:")+e,1),s()})}}else t.CLog(ae("6WmN::start失败:未open"),1)},pause:function(){var e=this,t=e._streamGet();e.state&&(e.state=2,e.CLog("pause"),t&&delete t._call[e.id])},resume:function(){var a=this,t=a._streamGet(),s="resume(wait ctx)";if(3==a.state)a.CLog(s);else if(a.state){a.state=1,a.CLog("resume"),a.envResume(),t&&(t._call[a.id]=function(e,t){1==a.state&&a.envIn(e,t)},r(t));var n=a._streamCtx();n&&C(n,function(e){return e&&a.CLog(s+"..."),1==a.state},function(e){e&&a.CLog(s+n.state),r(t)},function(e){a.CLog(s+n.state+"[err]"+e,1)})}},_stop:function(e){var t=this,a=t.set;t.isMock||t._S++,t.state&&(t.pause(),t.state=0),!e&&t[a.type+"_stop"]&&(t[a.type+"_stop"](t.engineCtx),t.engineCtx=0)},stop:function(c,t,e){var u,h=this,p=h.set,a=h.envInLast-h.envInFirst,s=a&&h.buffers.length;h.CLog(ae("Xq4s::stop 和start时差:")+(a?a+"ms "+ae("3CQP::补偿:")+h.envInFix+"ms envIn:"+s+" fps:"+(s/a*1e3).toFixed(1):"-")+" stream:"+h._streamTag+" ("+R+") LM:"+k);var b=function(){h._stop(),e&&h.close()},m=function(e){h.CLog(ae("u8JG::结束录音失败:")+e,1),t&&t(e),b()},n=function(e,t,a){var s="arraybuffer",n="dataType",r="DefaultDataType",i=h[n]||ee[r]||"blob",o=n+"="+i,_=e instanceof ArrayBuffer,l=0,f=_?e.byteLength:e.size;if(i==s?_||(l=1):"blob"==i?"function"!=typeof Blob?l=ae.G("NonBrowser-1",[o])+ae("1skY::,请设置{1}",0,T+"."+r+'="'+s+'"'):(_&&(e=new Blob([e],{type:t})),e instanceof Blob||(l=1),t=e.type||t):l=ae.G("NotSupport-1",[o]),h.CLog(ae("Wv7l::结束录音 编码花{1}ms 音频时长{2}ms 文件大小{3}b",0,Date.now()-u,a,f)+" "+o+","+t),l)m(1!=l?l:ae("Vkbd::{1}编码器返回的不是{2}",0,p.type,i)+", "+o);else{if(p.takeoffEncodeChunk)h.CLog(ae("QWnr::启用takeoffEncodeChunk后stop返回的blob长度为0不提供音频数据"),3);else if(f<Math.max(50,a/5))return void m(ae("Sz2H::生成的{1}无效",0,p.type));c&&c(e,a,t),b()}};if(!h.isMock){var r=3==h.state;if(!h.state||r)return void m(ae("wf9t::未开始录音")+(r?ae("Dl2c::,开始录音前无用户交互导致AudioContext未运行"):""))}h._stop(!0);var i=h.recSize;if(i)if(h[p.type]){if(h.isMock){var o=h.envCheck(h.mockEnvInfo||{envName:"mock",canProcess:!1});if(o)return void m(ae("AxOH::录音错误:")+o)}var _=h.engineCtx;if(h[p.type+"_complete"]&&_){var l=Math.round(_.pcmSize/p[V]*1e3);return u=Date.now(),void h[p.type+"_complete"](_,function(e,t){n(e,t,l)},m)}if(u=Date.now(),h.buffers[0]){var f=ee.SampleData(h.buffers,h[N],p[V]);p[V]=f[V];var v=f.data,l=Math.round(v.length/p[V]*1e3);h.CLog(ae("CxeT::采样:{1} 花:{2}ms",0,i+"->"+v.length,Date.now()-u)),setTimeout(function(){u=Date.now(),h[p.type](v,function(e,t){n(e,t,l)},function(e){m(e)})})}else m(ae("xkKd::音频buffers被释放"))}else m(ae("xGuI::未加载{1}编码器,请尝试到{2}的src/engine内找到{1}的编码器并加载",0,p.type,T));else m(ae("Ltz3::未采集到录音"))}};var z=function(e,t){t.pos||(t.pos=[0],t.tracks={},t.bytes=[]);var a=t.tracks,s=[t.pos[0]],n=function(){t.pos[0]=s[0]},r=t.bytes.length,i=new Uint8Array(r+e.length);if(i.set(t.bytes),i.set(e,r),t.bytes=i,!t._ht){if(Y(i,s),G(i,s),!X(Y(i,s),[24,83,128,103]))return;for(Y(i,s);s[0]<i.length;){var o=Y(i,s),_=G(i,s),l=[0],f=0;if(!_)return;if(X(o,[22,84,174,107])){for(;l[0]<_.length;){var c=Y(_,l),u=G(_,l),h=[0],p={channels:0,sampleRate:0};if(X(c,[174]))for(;h[0]<u.length;){var b=Y(u,h),m=G(u,h),v=[0];if(X(b,[215])){var d=q(m);p.number=d,a[d]=p}else if(X(b,[131])){var d=q(m);1==d?p.type="video":2==d?(p.type="audio",f||(t.track0=p),p.idx=f++):p.type="Type-"+d}else if(X(b,[134])){for(var g="",w=0;w<m.length;w++)g+=String.fromCharCode(m[w]);p.codec=g}else if(X(b,[225]))for(;v[0]<m.length;){var S=Y(m,v),M=G(m,v);if(X(S,[181])){var d=0,y=new Uint8Array(M.reverse()).buffer;4==M.length?d=new Float32Array(y)[0]:8==M.length?d=new Float64Array(y)[0]:te("WebM Track !Float",1,M),p[V]=Math.round(d)}else X(S,[98,100])?p.bitDepth=q(M):X(S,[159])&&(p.channels=q(M))}}}t._ht=1,te("WebM Tracks",a),n();break}}}var A=t.track0;if(A){var k=A[V];if(t.webmSR=k,16==A.bitDepth&&/FLOAT/i.test(A.codec)&&(A.bitDepth=32,te("WebM 16->32 bit",3)),k<8e3||32!=A.bitDepth||A.channels<1||!/(\b|_)PCM\b/i.test(A.codec))return t.bytes=[],t.bad||te("WebM Track Unexpected",3,t),-(t.bad=1);for(var R=[],x=0;s[0]<i.length;){var c=Y(i,s),u=G(i,s);if(!u)break;if(X(c,[163])){var B=15&u[0],p=a[B];if(!p)return te("WebM !Track"+B,1,a),-1;if(0===p.idx){for(var T=new Uint8Array(u.length-4),w=4;w<u.length;w++)T[w-4]=u[w];R.push(T),x+=T.length}}n()}if(x){var E=new Uint8Array(i.length-t.pos[0]);E.set(i.subarray(t.pos[0])),t.bytes=E,t.pos[0]=0;for(var T=new Uint8Array(x),w=0,C=0;w<R.length;w++)T.set(R[w],C),C+=R[w].length;var y=new Float32Array(T.buffer);if(1<A.channels){for(var I=[],w=0;w<y.length;)I.push(y[w]),w+=A.channels;y=new Float32Array(I)}return y}}},X=function(e,t){if(!e||e.length!=t.length)return!1;if(1==e.length)return e[0]==t[0];for(var a=0;a<e.length;a++)if(e[a]!=t[a])return!1;return!0},q=function(e){for(var t="",a=0;a<e.length;a++){var s=e[a];t+=(s<16?"0":"")+s.toString(16)}return parseInt(t,16)||0},Y=function(e,t,a){var s=t[0];if(!(s>=e.length)){var n=e[s],r=("0000000"+n.toString(2)).substr(-8),i=/^(0*1)(\d*)$/.exec(r);if(i){var o=i[1].length,_=[];if(!(s+o>e.length)){for(var l=0;l<o;l++)_[l]=e[s],s++;return a&&(_[0]=parseInt(i[2]||"0",2)),t[0]=s,_}}}},G=function(e,t){var a=Y(e,t,1);if(a){var s=q(a),n=t[0],r=[];if(s<2147483647){if(n+s>e.length)return;for(var i=0;i<s;i++)r[i]=e[n],n++}return t[0]=n,r}},U=ee.i18n={lang:"zh-CN",alias:{"zh-CN":"zh","en-US":"en"},locales:{},data:{},put:function(e,t){var a=T+".i18n.put: ",s=e.overwrite;s=null==s||s;var n=e.lang;if(!(n=U.alias[n]||n))throw new Error(a+"set.lang?");var r=U.locales[n];r||(r={},U.locales[n]=r);for(var i,o=/^([\w\-]+):/,_=0;_<t.length;_++){var l=t[_];if(i=o.exec(l)){var f=i[1],l=l.substr(f.length+1);!s&&r[f]||(r[f]=l)}else te(a+"'key:'? "+l,3,e)}},get:function(){return U.v_G.apply(null,arguments)},v_G:function(s,n,e){n=n||[],e=e||U.lang,e=U.alias[e]||e;var t=U.locales[e],r=t&&t[s]||"";return r||"zh"==e?(U.lastLang=e,"=Empty"==r?"":r.replace(/\{(\d+)(\!?)\}/g,function(e,t,a){return e=n[(t=+t||0)-1],(t<1||t>n.length)&&(e="{?}",te("i18n["+s+"] no {"+t+"}: "+r,3)),a?"":e})):"en"==e?U.v_G(s,n,"zh"):U.v_G(s,n,"en")},$T:function(){return U.v_T.apply(null,arguments)},v_T:function(){for(var e,t=arguments,a="",s=[],n=0,r=T+".i18n.$T:",i=/^([\w\-]*):/,o=0;o<t.length;o++){var _=t[o];if(0==o){if(e=i.exec(_),!(a=e&&e[1]))throw new Error(r+"0 'key:'?");_=_.substr(a.length+1)}if(-1===n)s.push(_);else{if(n)throw new Error(r+" bad args");if(0===_)n=-1;else if(f(_)){if(_<1)throw new Error(r+" bad args");n=_}else{var l=1==o?"en":o?"":"zh";if((e=i.exec(_))&&(l=e[1]||l,_=_.substr(e[1].length+1)),!e||!l)throw new Error(r+o+" 'lang:'?");U.put({lang:l,overwrite:!1},[a+":"+_])}}}return a?0<n?a:U.v_G(a,s):""}},ae=U.$T;ae.G=U.get,ae("NonBrowser-1::非浏览器环境,不支持{1}",1),ae("IllegalArgs-1::参数错误:{1}",1),ae("NeedImport-2::调用{1}需要先导入{2}",2),ae("NotSupport-1::不支持:{1}",1),ee.TrafficImgUrl="//ia.51.la/go1?id=20469973&pvFlag=1";var u=ee.Traffic=function(e){if(y){e=e?"/"+T+"/Report/"+e:"";var t=ee.TrafficImgUrl;if(t)try{var a=ee.Traffic,s=/^(https?:..[^\/#]*\/?)[^#]*/i.exec(location.href)||[],n=s[1]||"http://file/",r=(s[0]||n)+e;if(0==t.indexOf("//")&&(t=/^https:/i.test(r)?"https:"+t:"http:"+t),e&&(t=t+"&cu="+encodeURIComponent(n+e)),!a[r]){a[r]=1;var i=new Image,o="complete"==document.readyState?0:15e3-(Date.now()-ee.LoadTime);0<o?setTimeout(function(){i.src=t},o):i.src=t,te("Traffic Analysis Image: "+(e||T+".TrafficImgUrl="+ee.TrafficImgUrl))}}catch(e){}}};a&&(te(ae("8HO5::覆盖导入{1}",0,T+(T==t?"":"@"+t)),1),a.Destroy&&a.Destroy(),ee.Export_Overwrite=a);e[t]=ee}(i,_,t);var l=i[_];Object[o||"Recorder-Core-Export"]=l,"function"==typeof define&&define.amd&&define(function(){return l}),"object"==typeof module&&module.exports&&(module.exports=l)}(),function(e){var t=Object[Object["Recorder-Core-Alias"]||"Recorder-Core-Export"];if(!t)throw new Error("Must import recorder-core first");!function(m,f,e){"use strict";var _="48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000",l="8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320";m.prototype.enc_mp3={stable:!0,takeEC:"full",getTestMsg:function(){return f("Zm7L::采样率范围:{1};比特率范围:{2}(不同比特率支持的采样率范围不同,小于32kbps时采样率需小于32000)",0,_,l)}};var h,v=function(e){var t=e.bitRate,a=e.sampleRate,s=a;if(-1==(" "+l+",").indexOf(" "+t+",")&&m.CLog(f("eGB9::{1}不在mp3支持的取值范围:{2}",0,"bitRate="+t,l),3),-1==(" "+_+",").indexOf(" "+a+",")){for(var n=_.split(", "),r=[],i=0;i<n.length;i++)r.push({v:+n[i],s:Math.abs(n[i]-a)});r.sort(function(e,t){return e.s-t.s}),s=r[0].v,e.sampleRate=s,m.CLog(f("zLTa::sampleRate已更新为{1},因为{2}不在mp3支持的取值范围:{3}",0,s,a,_),3)}if(null==e.engine_mp3_lowpassfreq){var o=m.Set_engine_mp3_lowpassfreq;null!=o&&(e.engine_mp3_lowpassfreq=o)}},s=function(){return f.G("NeedImport-2",["mp3.js","src/engine/mp3-engine.js"])},d=e&&"function"==typeof Worker;m.prototype.mp3=function(r,i,o){var e=this,_=e.set,l=r.length;if(m.lamejs){if(d){var t=e.mp3_start(_);if(t){if(t.isW)return e.mp3_encode(t,r),void e.mp3_complete(t,i,o,1);e.mp3_stop(t)}}v(_);var f=new m.lamejs.Mp3Encoder(1,_.sampleRate,_.bitRate,{lowpassfreq:_.engine_mp3_lowpassfreq}),c=new Int8Array(5e5),u=0,h=0,p=0,b=function(){try{if(h<l)var e=f.encodeBuffer(r.subarray(h,h+57600));else{p=1;var e=f.flush()}}catch(e){if(console.error(e),!p)try{f.flush()}catch(e){console.error(e)}return void o("MP3 Encoder: "+e.message)}var t=e.length;if(0<t){if(u+t>c.length){var a=new Int8Array(c.length+Math.max(5e5,t));a.set(c.subarray(0,u)),c=a}c.set(e,u),u+=t}if(h<l)h+=57600,setTimeout(b);else{var s=[c.buffer.slice(0,u)],n=g.fn(s,u,l,_.sampleRate);n.lowpassfreq=(f.gfp||{}).lowpassfreq,w(n,_),i(s[0]||new ArrayBuffer(0),"audio/mp3")}};b()}else o(s())},m.BindDestroy("mp3Worker",function(){h&&(m.CLog("mp3Worker Destroy"),h.terminate(),h=null)}),m.prototype.mp3_envCheck=function(e,t){var a="";return t.takeoffEncodeChunk&&(b()||(a=f("yhUs::当前浏览器版本太低,无法实时处理"))),a||m.lamejs||(a=s()),a},m.prototype.mp3_start=function(e){return b(e)};var p={id:0},b=function(t,e){var c,a=function(e){var t=e.data,a=c.wkScope.wk_ctxs,s=c.wkScope.wk_lame,n=c.wkScope.wk_mp3TrimFix,r=a[t.id];if("init"==t.action)a[t.id]={sampleRate:t.sampleRate,bitRate:t.bitRate,takeoff:t.takeoff,pcmSize:0,memory:new Int8Array(5e5),mOffset:0,encObj:new s.Mp3Encoder(1,t.sampleRate,t.bitRate,{lowpassfreq:t.lowpassfreq})};else if(!r)return;var i=function(e){var t=e.length;if(r.mOffset+t>r.memory.length){var a=new Int8Array(r.memory.length+Math.max(5e5,t));a.set(r.memory.subarray(0,r.mOffset)),r.memory=a}r.memory.set(e,r.mOffset),r.mOffset+=t};switch(t.action){case"stop":if(!r.isCp)try{r.encObj.flush()}catch(e){console.error(e)}r.encObj=null,delete a[t.id];break;case"encode":if(r.isCp)break;r.pcmSize+=t.pcm.length;try{var o=r.encObj.encodeBuffer(t.pcm)}catch(e){r.err=e,console.error(e)}o&&0<o.length&&(r.takeoff?u.onmessage({action:"takeoff",id:t.id,chunk:o}):i(o));break;case"complete":r.isCp=1;var _=null;try{var o=r.encObj.flush();_=(r.encObj.gfp||{}).lowpassfreq}catch(e){r.err=e,console.error(e)}if(o&&0<o.length&&(r.takeoff?u.onmessage({action:"takeoff",id:t.id,chunk:o}):i(o)),r.err){u.onmessage({action:t.action,id:t.id,err:"MP3 Encoder: "+r.err.message});break}var l=[r.memory.buffer.slice(0,r.mOffset)],f=n.fn(l,r.mOffset,r.pcmSize,r.sampleRate);f.lowpassfreq=_,u.onmessage({action:t.action,id:t.id,blob:l[0]||new ArrayBuffer(0),meta:f})}},s=function(s){u.onmessage=function(e){var t=e;s&&(t=e.data);var a=p[t.id];a&&("takeoff"==t.action?a.set.takeoffEncodeChunk(new Uint8Array(t.chunk.buffer)):(a.call&&a.call(t),a.call=null))}},n=function(){var e={worker:u,set:t};return t?(e.id=++p.id,p[e.id]=e,v(t),u.postMessage({action:"init",id:e.id,sampleRate:t.sampleRate,bitRate:t.bitRate,lowpassfreq:t.engine_mp3_lowpassfreq,takeoff:!!t.takeoffEncodeChunk,x:new Int16Array(5)})):u.postMessage({x:new Int16Array(5)}),e},u=h;if(e||!d)return m.CLog(f("k9PT::当前环境不支持Web Worker,mp3实时编码器运行在主线程中"),3),u={postMessage:function(e){a({data:e})}},c={wkScope:{wk_ctxs:{},wk_lame:m.lamejs,wk_mp3TrimFix:g}},s(),n();try{if(!u){var r=(a+"").replace(/[\w\$]+\.onmessage/g,"self.postMessage"),i=");wk_lame();self.onmessage="+(r=r.replace(/[\w\$]+\.wkScope/g,"wkScope"));i+=";var wkScope={ wk_ctxs:{},wk_lame:wk_lame",i+=",wk_mp3TrimFix:{rm:"+g.rm+",fn:"+g.fn+"} }";var o=m.lamejs.toString(),_=(window.URL||webkitURL).createObjectURL(new Blob(["var wk_lame=(",o,i],{type:"text/javascript"}));u=new Worker(_),setTimeout(function(){(window.URL||webkitURL).revokeObjectURL(_)},1e4),s(1)}var l=n();return l.isW=1,h=u,l}catch(e){return u&&u.terminate(),console.error(e),b(t,1)}};m.prototype.mp3_stop=function(e){if(e&&e.worker){e.worker.postMessage({action:"stop",id:e.id}),e.worker=null,delete p[e.id];var t=-1;for(var a in p)t++;t&&m.CLog(f("fT6M::mp3 worker剩{1}个未stop",0,t),3)}},m.prototype.mp3_encode=function(e,t){e&&e.worker&&e.worker.postMessage({action:"encode",id:e.id,pcm:t})},m.prototype.mp3_complete=function(t,a,s,n){var r=this;t&&t.worker?(t.call=function(e){n&&r.mp3_stop(t),e.err?s(e.err):(w(e.meta,t.set),a(e.blob,"audio/mp3"))},t.worker.postMessage({action:"complete",id:t.id})):s(f("mPxH::mp3编码器未start"))},m.mp3ReadMeta=function(e,t){var a="undefined"!=typeof window&&window.parseInt||"undefined"!=typeof self&&self.parseInt||parseInt,s=new Uint8Array(e[0]||[]);if(s.length<4)return null;var n=function(e,t){return("0000000"+((t||s)[e]||0).toString(2)).substr(-8)},r=n(0)+n(1),i=n(2)+n(3);if(!/^1{11}/.test(r))return null;var o={"00":2.5,10:2,11:1}[r.substr(11,2)],_={"01":3}[r.substr(13,2)],l={1:[44100,48e3,32e3],2:[22050,24e3,16e3],2.5:[11025,12e3,8e3]}[o];l&&(l=l[a(i.substr(4,2),2)]);var f=[[0,8,16,24,32,40,48,56,64,80,96,112,128,144,160],[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320]][1==o?1:0][a(i.substr(0,4),2)];if(!(o&&_&&f&&l))return null;for(var c=Math.round(8*t/f),u=1==_?384:2==_?1152:1==o?1152:576,h=u/l*1e3,p=Math.floor(u*f/8/l*1e3),b=0,m=0,v=0;v<e.length;v++){var d=e[v];if(m+=d.byteLength,p+3<=m){var g=new Uint8Array(d),w=d.byteLength-(m-(p+3)+1),S=n(w,g);b="1"==S.charAt(6);break}}return b&&p++,{version:o,layer:_,sampleRate:l,bitRate:f,duration:c,size:t,hasPadding:b,frameSize:p,frameDurationFloat:h}};var g={rm:m.mp3ReadMeta,fn:function(e,t,a,s){var n=this.rm(e,t);if(!n)return{size:t,err:"mp3 unknown format"};var r=Math.round(a/s*1e3),i=Math.floor((n.duration-r)/n.frameDurationFloat);if(0<i){var o=i*n.frameSize-(n.hasPadding?1:0);t-=o;for(var _=0,l=[],f=0;f<e.length;f++){var c=e[f];if(o<=0)break;o>=c.byteLength?(o-=c.byteLength,l.push(c),e.splice(f,1),f--):(e[f]=c.slice(o),_=c,o=0)}var u=this.rm(e,t);if(!u){_&&(e[0]=_);for(var f=0;f<l.length;f++)e.splice(f,0,l[f]);n.err="mp3 fix error: 已还原,错误原因不明"}var h=n.trimFix={};h.remove=i,h.removeDuration=Math.round(i*n.frameDurationFloat),h.duration=Math.round(8*t/n.bitRate)}return n}},w=function(e,t){var a="MP3 Info: ";(e.sampleRate&&e.sampleRate!=t.sampleRate||e.bitRate&&e.bitRate!=t.bitRate)&&(m.CLog(a+f("uY9i::和设置的不匹配{1},已更新成{2}",0,"set:"+t.bitRate+"kbps "+t.sampleRate+"hz","set:"+e.bitRate+"kbps "+e.sampleRate+"hz"),3,t),t.sampleRate=e.sampleRate,t.bitRate=e.bitRate);var s=e.trimFix;s?(a+=f("iMSm::Fix移除{1}帧",0,s.remove)+" "+s.removeDuration+"ms -> "+s.duration+"ms",2<s.remove&&(e.err=(e.err?e.err+", ":"")+f("b9zm::移除帧数过多"))):a+=(e.duration||"-")+"ms",e.err?m.CLog(a,e.size?1:0,e.err,e):m.CLog(a,e)}}(t,t.i18n.$T,t.IsBrowser)}(),function(e){var t=Object[Object["Recorder-Core-Alias"]||"Recorder-Core-Export"];if(!t)throw new Error("Must import recorder-core first");!function(e){"use strict";function t(){var d=function(e){return Math.log(e)/Math.log(10)},me=function(e){throw new Error("abort("+e+")")};function M(e){return new Int8Array(e)}function n(e){return new Int16Array(e)}function ve(e){return new Int32Array(e)}function de(e){return new Float32Array(e)}function s(e){return new Float64Array(e)}function ge(e){if(1==e.length)return de(e[0]);var t=e[0];e=e.slice(1);for(var a=[],s=0;s<t;s++)a.push(ge(e));return a}function g(e){if(1==e.length)return ve(e[0]);var t=e[0];e=e.slice(1);for(var a=[],s=0;s<t;s++)a.push(g(e));return a}function w(e){if(1==e.length)return n(e[0]);var t=e[0];e=e.slice(1);for(var a=[],s=0;s<t;s++)a.push(w(e));return a}function E(e){if(1==e.length)return new Array(e[0]);var t=e[0];e=e.slice(1);for(var a=[],s=0;s<t;s++)a.push(E(e));return a}var we={fill:function(e,t,a,s){if(2==arguments.length)for(var n=0;n<e.length;n++)e[n]=t;else for(var n=t;n<a;n++)e[n]=s}},I={arraycopy:function(e,t,a,s,n){for(var r=t+n;t<r;)a[s++]=e[t++]}},V={};function Se(e){this.ordinal=e}V.SQRT2=1.4142135623730951,V.FAST_LOG10=function(e){return d(e)},V.FAST_LOG10_X=function(e,t){return d(e)*t},Se.short_block_allowed=new Se(0),Se.short_block_coupled=new Se(1),Se.short_block_dispensed=new Se(2),Se.short_block_forced=new Se(3);var D={};function Me(e){this.ordinal=e}D.MAX_VALUE=3.4028235e38,Me.vbr_off=new Me(0),Me.vbr_mt=new Me(1),Me.vbr_rh=new Me(2),Me.vbr_abr=new Me(3),Me.vbr_mtrh=new Me(4),Me.vbr_default=Me.vbr_mtrh;function ye(e){var t=e;this.ordinal=function(){return t}}function A(){var S=null;function v(e){this.bits=0|e}this.qupvt=null,this.setModules=function(e){this.qupvt=e,S=e};var n=[[0,0],[0,0],[0,0],[0,0],[0,0],[0,1],[1,1],[1,1],[1,2],[2,2],[2,3],[2,3],[3,4],[3,4],[3,4],[4,5],[4,5],[4,6],[5,6],[5,6],[5,7],[6,7],[6,7]];function M(e,t,a,s,n,r){var i=.5946/t;for(e>>=1;0!=e--;)n[r++]=i>a[s++]?0:1,n[r++]=i>a[s++]?0:1}function y(e,t,a,s,n,r){var i=(e>>=1)%2;for(e>>=1;0!=e--;){var o,_,l,f,c,u,h,p;o=a[s++]*t,_=a[s++]*t,c=0|o,l=a[s++]*t,u=0|_,f=a[s++]*t,h=0|l,o+=S.adj43[c],p=0|f,_+=S.adj43[u],n[r++]=0|o,l+=S.adj43[h],n[r++]=0|_,f+=S.adj43[p],n[r++]=0|l,n[r++]=0|f}0!=i&&(o=a[s++]*t,_=a[s++]*t,c=0|o,u=0|_,o+=S.adj43[c],_+=S.adj43[u],n[r++]=0|o,n[r++]=0|_)}var o=[1,2,5,7,7,10,10,13,13,13,13,13,13,13,13];function d(e,t,a,s){var n=function(e,t,a){var s=0,n=0;do{var r=e[t++],i=e[t++];s<r&&(s=r),n<i&&(n=i)}while(t<a);s<n&&(s=n);return s}(e,t,a);switch(n){case 0:return n;case 1:return function(e,t,a,s){var n=0,r=L.ht[1].hlen;do{var i=2*e[t+0]+e[t+1];t+=2,n+=r[i]}while(t<a);return s.bits+=n,1}(e,t,a,s);case 2:case 3:return function(e,t,a,s,n){var r,i,o=0,_=L.ht[s].xlen;i=2==s?L.table23:L.table56;do{var l=e[t+0]*_+e[t+1];t+=2,o+=i[l]}while(t<a);(r=65535&o)<(o>>=16)&&(o=r,s++);return n.bits+=o,s}(e,t,a,o[n-1],s);case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:return function(e,t,a,s,n){var r=0,i=0,o=0,_=L.ht[s].xlen,l=L.ht[s].hlen,f=L.ht[s+1].hlen,c=L.ht[s+2].hlen;do{var u=e[t+0]*_+e[t+1];t+=2,r+=l[u],i+=f[u],o+=c[u]}while(t<a);var h=s;i<r&&(r=i,h++);o<r&&(r=o,h=s+2);return n.bits+=r,h}(e,t,a,o[n-1],s);default:var r,i;for(R.IXMAX_VAL<n&&me(),n-=15,r=24;r<32&&!(L.ht[r].linmax>=n);r++);for(i=r-8;i<24&&!(L.ht[i].linmax>=n);i++);return function(e,t,a,s,n,r){var i,o=65536*L.ht[s].xlen+L.ht[n].xlen,_=0;do{var l=e[t++],f=e[t++];0!=l&&(14<l&&(l=15,_+=o),l*=16),0!=f&&(14<f&&(f=15,_+=o),l+=f),_+=L.largetbl[l]}while(t<a);(i=65535&_)<(_>>=16)&&(_=i,s=n);return r.bits+=_,s}(e,t,a,i,r,s)}}function h(e,t,a,s,n,r,i,o){for(var _=t.big_values,l=2;l<Ae.SBMAX_l+1;l++){var f=e.scalefac_band.l[l];if(_<=f)break;var c=n[l-2]+t.count1bits;if(a.part2_3_length<=c)break;var u=new v(c),h=d(s,f,_,u);c=u.bits,a.part2_3_length<=c||(a.assign(t),a.part2_3_length=c,a.region0_count=r[l-2],a.region1_count=l-2-r[l-2],a.table_select[0]=i[l-2],a.table_select[1]=o[l-2],a.table_select[2]=h)}}this.noquant_count_bits=function(e,t,a){var s=t.l3_enc,n=Math.min(576,t.max_nonzero_coeff+2>>1<<1);for(null!=a&&(a.sfb_count1=0);1<n&&0==(s[n-1]|s[n-2]);n-=2);t.count1=n;for(var r=0,i=0;3<n;n-=4){var o;if(1<(2147483647&(s[n-1]|s[n-2]|s[n-3]|s[n-4])))break;o=2*(2*(2*s[n-4]+s[n-3])+s[n-2])+s[n-1],r+=L.t32l[o],i+=L.t33l[o]}var _=r;if(t.count1table_select=0,i<r&&(_=i,t.count1table_select=1),t.count1bits=_,0==(t.big_values=n))return _;if(t.block_type==Ae.SHORT_TYPE)(r=3*e.scalefac_band.s[3])>t.big_values&&(r=t.big_values),i=t.big_values;else if(t.block_type==Ae.NORM_TYPE){if(r=t.region0_count=e.bv_scf[n-2],i=t.region1_count=e.bv_scf[n-1],i=e.scalefac_band.l[r+i+2],r=e.scalefac_band.l[r+1],i<n){var l=new v(_);t.table_select[2]=d(s,i,n,l),_=l.bits}}else t.region0_count=7,t.region1_count=Ae.SBMAX_l-1-7-1,r=e.scalefac_band.l[8],(i=n)<r&&(r=i);if(r=Math.min(r,n),i=Math.min(i,n),0<r){var l=new v(_);t.table_select[0]=d(s,0,r,l),_=l.bits}if(r<i){var l=new v(_);t.table_select[1]=d(s,r,i,l),_=l.bits}if(2==e.use_best_huffman&&me(),null!=a&&t.block_type==Ae.NORM_TYPE){for(var f=0;e.scalefac_band.l[f]<t.big_values;)f++;a.sfb_count1=f}return _},this.count_bits=function(e,t,a,s){var n=a.l3_enc,r=R.IXMAX_VAL/S.IPOW20(a.global_gain);return a.xrpow_max>r?R.LARGE_BITS:(function(e,t,a,s,n){var r,i,o,_=0,l=0,f=0,c=0,u=t,h=0,p=u,b=0,m=e,v=0;o=null!=n&&s.global_gain==n.global_gain,i=s.block_type==Ae.SHORT_TYPE?38:21;for(r=0;r<=i;r++){var d=-1;if((o||s.block_type==Ae.NORM_TYPE)&&(d=s.global_gain-(s.scalefac[r]+(0!=s.preflag?S.pretab[r]:0)<<s.scalefac_scale+1)-8*s.subblock_gain[s.window[r]]),o&&n.step[r]==d)0!=l&&(y(l,a,m,v,p,b),l=0),0!=f&&me();else{var g,w=s.width[r];if(_+s.width[r]>s.max_nonzero_coeff)g=s.max_nonzero_coeff-_+1,we.fill(t,s.max_nonzero_coeff,576,0),(w=g)<0&&(w=0),r=i+1;if(0==l&&0==f&&(p=u,b=h,m=e,v=c),null!=n&&0<n.sfb_count1&&r>=n.sfb_count1&&0<n.step[r]&&d>=n.step[r]?(0!=l&&(y(l,a,m,v,p,b),l=0,p=u,b=h,m=e,v=c),f+=w):(0!=f&&(M(f,a,m,v,p,b),f=0,p=u,b=h,m=e,v=c),l+=w),w<=0){0!=f&&me(),0!=l&&me();break}}r<=i&&(h+=s.width[r],c+=s.width[r],_+=s.width[r])}0!=l&&(y(l,a,m,v,p,b),l=0);0!=f&&me()}(t,n,S.IPOW20(a.global_gain),a,s),0!=(2&e.substep_shaping)&&me(),this.noquant_count_bits(e,a,s))},this.best_huffman_divide=function(e,t){var a=new x,s=t.l3_enc,n=ve(23),r=ve(23),i=ve(23),o=ve(23);if(t.block_type!=Ae.SHORT_TYPE||1!=e.mode_gr){a.assign(t),t.block_type==Ae.NORM_TYPE&&(!function(e,t,a,s,n,r,i){for(var o=t.big_values,_=0;_<=22;_++)s[_]=R.LARGE_BITS;for(var _=0;_<16;_++){var l=e.scalefac_band.l[_+1];if(o<=l)break;var f=0,c=new v(f),u=d(a,0,l,c);f=c.bits;for(var h=0;h<8;h++){var p=e.scalefac_band.l[_+h+2];if(o<=p)break;var b=f;c=new v(b);var m=d(a,l,p,c);b=c.bits,s[_+h]>b&&(s[_+h]=b,n[_+h]=_,r[_+h]=u,i[_+h]=m)}}}(e,t,s,n,r,i,o),h(e,a,t,s,n,r,i,o));var _=a.big_values;if(!(0==_||1<(s[_-2]|s[_-1])||576<(_=t.count1+2))){a.assign(t),a.count1=_;for(var l=0,f=0;_>a.big_values;_-=4){var c=2*(2*(2*s[_-4]+s[_-3])+s[_-2])+s[_-1];l+=L.t32l[c],f+=L.t33l[c]}if(a.big_values=_,a.count1table_select=0,f<l&&(l=f,a.count1table_select=1),a.count1bits=l,a.block_type==Ae.NORM_TYPE)h(e,a,t,s,n,r,i,o);else{if(a.part2_3_length=l,l=e.scalefac_band.l[8],_<l&&(l=_),0<l){var u=new v(a.part2_3_length);a.table_select[0]=d(s,0,l,u),a.part2_3_length=u.bits}if(l<_){var u=new v(a.part2_3_length);a.table_select[1]=d(s,l,_,u),a.part2_3_length=u.bits}t.part2_3_length>a.part2_3_length&&t.assign(a)}}}};var u=[1,1,1,1,8,2,2,2,4,4,4,8,8,8,16,16],p=[1,2,4,8,1,2,4,8,2,4,8,2,4,8,4,8],b=[0,0,0,0,3,1,1,1,2,2,2,3,3,3,4,4],m=[0,1,2,3,0,1,2,3,1,2,3,1,2,3,2,3];A.slen1_tab=b,A.slen2_tab=m,this.best_scalefac_store=function(e,t,a,s){var n,r,i,o,_=s.tt[t][a],l=0;for(n=i=0;n<_.sfbmax;n++){var f=_.width[n];for(i+=f,o=-f;o<0&&0==_.l3_enc[o+i];o++);0==o&&(_.scalefac[n]=l=-2)}if(0==_.scalefac_scale&&0==_.preflag){var c=0;for(n=0;n<_.sfbmax;n++)0<_.scalefac[n]&&(c|=_.scalefac[n]);if(0==(1&c)&&0!=c){for(n=0;n<_.sfbmax;n++)0<_.scalefac[n]&&(_.scalefac[n]>>=1);_.scalefac_scale=l=1}}if(0==_.preflag&&_.block_type!=Ae.SHORT_TYPE&&2==e.mode_gr){for(n=11;n<Ae.SBPSY_l&&!(_.scalefac[n]<S.pretab[n]&&-2!=_.scalefac[n]);n++);if(n==Ae.SBPSY_l){for(n=11;n<Ae.SBPSY_l;n++)0<_.scalefac[n]&&(_.scalefac[n]-=S.pretab[n]);_.preflag=l=1}}for(r=0;r<4;r++)s.scfsi[a][r]=0;for(2==e.mode_gr&&1==t&&s.tt[0][a].block_type!=Ae.SHORT_TYPE&&s.tt[1][a].block_type!=Ae.SHORT_TYPE&&(!function(e,t){for(var a,s=t.tt[1][e],n=t.tt[0][e],r=0;r<L.scfsi_band.length-1;r++){for(a=L.scfsi_band[r];a<L.scfsi_band[r+1]&&!(n.scalefac[a]!=s.scalefac[a]&&0<=s.scalefac[a]);a++);if(a==L.scfsi_band[r+1]){for(a=L.scfsi_band[r];a<L.scfsi_band[r+1];a++)s.scalefac[a]=-1;t.scfsi[e][r]=1}}var i=0,o=0;for(a=0;a<11;a++)-1!=s.scalefac[a]&&(o++,i<s.scalefac[a]&&(i=s.scalefac[a]));for(var _=0,l=0;a<Ae.SBPSY_l;a++)-1!=s.scalefac[a]&&(l++,_<s.scalefac[a]&&(_=s.scalefac[a]));for(var r=0;r<16;r++)if(i<u[r]&&_<p[r]){var f=b[r]*o+m[r]*l;s.part2_length>f&&(s.part2_length=f,s.scalefac_compress=r)}}(a,s),l=0),n=0;n<_.sfbmax;n++)-2==_.scalefac[n]&&(_.scalefac[n]=0);0!=l&&(2==e.mode_gr?this.scale_bitcount(_):this.scale_bitcount_lsf(e,_))};var _=[0,18,36,54,54,36,54,72,54,72,90,72,90,108,108,126],l=[0,18,36,54,51,35,53,71,52,70,88,69,87,105,104,122],f=[0,10,20,30,33,21,31,41,32,42,52,43,53,63,64,74];this.scale_bitcount=function(e){var t,a,s,n=0,r=0,i=e.scalefac;if(e.block_type==Ae.SHORT_TYPE)s=_,0!=e.mixed_block_flag&&(s=l);else if(s=f,0==e.preflag){for(a=11;a<Ae.SBPSY_l&&!(i[a]<S.pretab[a]);a++);if(a==Ae.SBPSY_l)for(e.preflag=1,a=11;a<Ae.SBPSY_l;a++)i[a]-=S.pretab[a]}for(a=0;a<e.sfbdivide;a++)n<i[a]&&(n=i[a]);for(;a<e.sfbmax;a++)r<i[a]&&(r=i[a]);for(e.part2_length=R.LARGE_BITS,t=0;t<16;t++)n<u[t]&&r<p[t]&&e.part2_length>s[t]&&(e.part2_length=s[t],e.scalefac_compress=t);return e.part2_length==R.LARGE_BITS};var g=[[15,15,7,7],[15,15,7,0],[7,3,0,0],[15,31,31,0],[7,7,7,0],[3,3,0,0]];this.scale_bitcount_lsf=function(e,t){var a,s,n,r,i,o,_,l,f=ve(4),c=t.scalefac;for(a=0!=t.preflag?2:0,_=0;_<4;_++)f[_]=0;if(t.block_type==Ae.SHORT_TYPE){s=1;var u=S.nr_of_sfb_block[a][s];for(n=l=0;n<4;n++)for(r=u[n]/3,_=0;_<r;_++,l++)for(i=0;i<3;i++)c[3*l+i]>f[n]&&(f[n]=c[3*l+i])}else{s=0;var u=S.nr_of_sfb_block[a][s];for(n=l=0;n<4;n++)for(r=u[n],_=0;_<r;_++,l++)c[l]>f[n]&&(f[n]=c[l])}for(o=!1,n=0;n<4;n++)f[n]>g[a][n]&&(o=!0);if(!o){var h,p,b,m;for(t.sfb_partition_table=S.nr_of_sfb_block[a][s],n=0;n<4;n++)t.slen[n]=w[f[n]];switch(h=t.slen[0],p=t.slen[1],b=t.slen[2],m=t.slen[3],a){case 0:t.scalefac_compress=(5*h+p<<4)+(b<<2)+m;break;case 1:t.scalefac_compress=400+(5*h+p<<2)+b;break;case 2:t.scalefac_compress=500+3*h+p}}if(!o)for(t.part2_length=0,n=0;n<4;n++)t.part2_length+=t.slen[n]*t.sfb_partition_table[n];return o};var w=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];this.huffman_init=function(e){for(var t=2;t<=576;t+=2){for(var a,s=0;e.scalefac_band.l[++s]<t;);for(a=n[s][0];e.scalefac_band.l[a+1]>t;)a--;for(a<0&&(a=n[s][0]),e.bv_scf[t-2]=a,a=n[s][1];e.scalefac_band.l[a+e.bv_scf[t-2]+2]>t;)a--;a<0&&(a=n[s][1]),e.bv_scf[t-1]=a}}}function T(){}function y(){this.setModules=function(e,t,a){e,t,a};var s=[0,49345,49537,320,49921,960,640,49729,50689,1728,1920,51009,1280,50625,50305,1088,52225,3264,3456,52545,3840,53185,52865,3648,2560,51905,52097,2880,51457,2496,2176,51265,55297,6336,6528,55617,6912,56257,55937,6720,7680,57025,57217,8e3,56577,7616,7296,56385,5120,54465,54657,5440,55041,6080,5760,54849,53761,4800,4992,54081,4352,53697,53377,4160,61441,12480,12672,61761,13056,62401,62081,12864,13824,63169,63361,14144,62721,13760,13440,62529,15360,64705,64897,15680,65281,16320,16e3,65089,64001,15040,15232,64321,14592,63937,63617,14400,10240,59585,59777,10560,60161,11200,10880,59969,60929,11968,12160,61249,11520,60865,60545,11328,58369,9408,9600,58689,9984,59329,59009,9792,8704,58049,58241,9024,57601,8640,8320,57409,40961,24768,24960,41281,25344,41921,41601,25152,26112,42689,42881,26432,42241,26048,25728,42049,27648,44225,44417,27968,44801,28608,28288,44609,43521,27328,27520,43841,26880,43457,43137,26688,30720,47297,47489,31040,47873,31680,31360,47681,48641,32448,32640,48961,32e3,48577,48257,31808,46081,29888,30080,46401,30464,47041,46721,30272,29184,45761,45953,29504,45313,29120,28800,45121,20480,37057,37249,20800,37633,21440,21120,37441,38401,22208,22400,38721,21760,38337,38017,21568,39937,23744,23936,40257,24320,40897,40577,24128,23040,39617,39809,23360,39169,22976,22656,38977,34817,18624,18816,35137,19200,35777,35457,19008,19968,36545,36737,20288,36097,19904,19584,35905,17408,33985,34177,17728,34561,18368,18048,34369,33281,17088,17280,33601,16640,33217,32897,16448];function r(e,t){var a=t^e;return t=t>>8^s[255&a]}this.updateMusicCRC=function(e,t,a,s){for(var n=0;n<s;++n)e[0]=r(t[a+n],e[0])}}function C(){var i=this,r=null,o=null;this.setModules=function(e,t,a,s){e,t,r=a,o=s};var _=null,l=0,f=0,c=0;function n(e){I.arraycopy(e.header[e.w_ptr].buf,0,_,f,e.sideinfo_len),f+=e.sideinfo_len,l+=8*e.sideinfo_len,e.w_ptr=e.w_ptr+1&O.MAX_HEADER_BUF-1}function v(e,t,a){for(;0<a;){var s;0==c&&(c=8,f++,e.header[e.w_ptr].write_timing==l&&n(e),_[f]=0),s=Math.min(a,c),a-=s,c-=s,_[f]|=t>>a<<c,l+=s}}function u(e,t){var a,s=e.internal_flags;if(8<=t&&(v(s,76,8),t-=8),8<=t&&(v(s,65,8),t-=8),8<=t&&(v(s,77,8),t-=8),8<=t&&(v(s,69,8),t-=8),32<=t){var n=r.getLameShortVersion();if(32<=t)for(a=0;a<n.length&&8<=t;++a)t-=8,v(s,n.charCodeAt(a),8)}for(;1<=t;t-=1)v(s,s.ancillary_flag,1),s.ancillary_flag^=e.disable_reservoir?0:1}function h(e,t,a){for(var s=e.header[e.h_ptr].ptr;0<a;){var n=Math.min(a,8-(7&s));a-=n,e.header[e.h_ptr].buf[s>>3]|=t>>a<<8-(7&s)-n,s+=n}e.header[e.h_ptr].ptr=s}function m(e,t){var a,s=L.ht[t.count1table_select+32],n=0,r=t.big_values,i=t.big_values;for(a=(t.count1-t.big_values)/4;0<a;--a){var o=0,_=0;0!=t.l3_enc[r+0]&&(_+=8,t.xr[i+0]<0&&o++),0!=t.l3_enc[r+1]&&(_+=4,o*=2,t.xr[i+1]<0&&o++),0!=t.l3_enc[r+2]&&(_+=2,o*=2,t.xr[i+2]<0&&o++),0!=t.l3_enc[r+3]&&(_++,o*=2,t.xr[i+3]<0&&o++),r+=4,i+=4,v(e,o+s.table[_],s.hlen[_]),n+=s.hlen[_]}return n}function p(e,t,a,s,n){var r=L.ht[t],i=0;if(0==t)return i;for(var o=a;o<s;o+=2){var _=0,l=0,f=r.xlen,c=r.xlen,u=0,h=n.l3_enc[o],p=n.l3_enc[o+1];if(0!=h&&(n.xr[o]<0&&u++,_--),15<t){if(14<h){var b=h-15;u|=b<<1,l=f,h=15}if(14<p){var m=p-15;u<<=f,u|=m,l+=f,p=15}c=16}0!=p&&(u<<=1,n.xr[o+1]<0&&u++,_--),h=h*c+p,l-=_,_+=r.hlen[h],v(e,r.table[h],_),v(e,u,l),i+=_+l}return i}function d(e,t){var a=3*e.scalefac_band.s[3];a>t.big_values&&(a=t.big_values);var s=p(e,t.table_select[0],0,a,t);return s+=p(e,t.table_select[1],a,t.big_values,t)}function g(e,t){var a,s,n,r;a=t.big_values;var i=t.region0_count+1;return n=e.scalefac_band.l[i],i+=t.region1_count+1,r=e.scalefac_band.l[i],a<n&&(n=a),a<r&&(r=a),s=p(e,t.table_select[0],0,n,t),s+=p(e,t.table_select[1],n,r,t),s+=p(e,t.table_select[2],r,a,t)}function b(){this.total=0}function w(e,t){var a,s,n,r=e.internal_flags;return r.w_ptr,-1==(n=r.h_ptr-1)&&(n=O.MAX_HEADER_BUF-1),a=r.header[n].write_timing-l,0<=(t.total=a)&&me(),s=i.getframebits(e),a+=s,t.total+=s,t.total%8!=0?t.total=1+t.total/8:t.total=t.total/8,t.total+=f+1,a}this.getframebits=function(e){var t,a=e.internal_flags;t=0!=a.bitrate_index?L.bitrate_table[e.version][a.bitrate_index]:e.brate;var s=0|72e3*(e.version+1)*t/e.out_samplerate+a.padding;return 8*s},this.flush_bitstream=function(e){var t,a,s=e.internal_flags,n=s.h_ptr-1;-1==n&&(n=O.MAX_HEADER_BUF-1),t=s.l3_side,(a=w(e,new b))<0||(u(e,a),s.ResvSize=0,t.main_data_begin=0,s.findReplayGain&&me(),s.findPeakSample&&me())},this.format_bitstream=function(e){var t,a=e.internal_flags;t=a.l3_side;var s=this.getframebits(e);u(e,t.resvDrain_pre),function(e,t){var a,s,n,r=e.internal_flags;a=r.l3_side,r.header[r.h_ptr].ptr=0,we.fill(r.header[r.h_ptr].buf,0,r.sideinfo_len,0),e.out_samplerate<16e3?h(r,4094,12):h(r,4095,12);h(r,e.version,1),h(r,1,2),h(r,e.error_protection?0:1,1),h(r,r.bitrate_index,4),h(r,r.samplerate_index,2),h(r,r.padding,1),h(r,e.extension,1),h(r,e.mode.ordinal(),2),h(r,r.mode_ext,2),h(r,e.copyright,1),h(r,e.original,1),h(r,e.emphasis,2),e.error_protection&&h(r,0,16);if(1==e.version){for(h(r,a.main_data_begin,9),2==r.channels_out?h(r,a.private_bits,3):h(r,a.private_bits,5),n=0;n<r.channels_out;n++){var i;for(i=0;i<4;i++)h(r,a.scfsi[n][i],1)}for(s=0;s<2;s++)for(n=0;n<r.channels_out;n++){var o=a.tt[s][n];h(r,o.part2_3_length+o.part2_length,12),h(r,o.big_values/2,9),h(r,o.global_gain,8),h(r,o.scalefac_compress,4),o.block_type!=Ae.NORM_TYPE?(h(r,1,1),h(r,o.block_type,2),h(r,o.mixed_block_flag,1),14==o.table_select[0]&&(o.table_select[0]=16),h(r,o.table_select[0],5),14==o.table_select[1]&&(o.table_select[1]=16),h(r,o.table_select[1],5),h(r,o.subblock_gain[0],3),h(r,o.subblock_gain[1],3),h(r,o.subblock_gain[2],3)):(h(r,0,1),14==o.table_select[0]&&(o.table_select[0]=16),h(r,o.table_select[0],5),14==o.table_select[1]&&(o.table_select[1]=16),h(r,o.table_select[1],5),14==o.table_select[2]&&(o.table_select[2]=16),h(r,o.table_select[2],5),h(r,o.region0_count,4),h(r,o.regi