MCPcopy Create free account
hub / github.com/modelscope/FunASR / clazzUrl

Function clazzUrl

runtime/html5/static/recorder-core.js:200–249  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

198 return;
199 };
200 var clazzUrl=function(){
201 var xf=function(f){return f.toString().replace(/^function|DEL_/g,"").replace(/\$RA/g,recAudioWorklet)};
202 var clazz='class '+RecProc+' extends AudioWorkletProcessor{';
203 clazz+="constructor "+xf(function(option){
204 DEL_super(option);
205 var This=this,bufferSize=option.processorOptions.bufferSize;
206 This.bufferSize=bufferSize;
207 This.buffer=new Float32Array(bufferSize*2);//乱给size搞乱缓冲区不管
208 This.pos=0;
209 This.port.onmessage=function(e){
210 if(e.data.kill){
211 This.kill=true;
212 console.log("$RA kill call");
213 }
214 };
215 console.log("$RA .ctor call", option);
216 });
217
218 //https://developer.mozilla.org/en-US/docs/Web/API/AudioWorkletProcessor/process 每次回调128个采样数据,1秒375次回调,高频导致移动端性能问题,结果就是回调次数缺斤少两,进而导致丢失数据,PC端似乎没有性能问题
219 clazz+="process "+xf(function(input,b,c){//需要等到ctx激活后才会有回调
220 var This=this,bufferSize=This.bufferSize;
221 var buffer=This.buffer,pos=This.pos;
222 input=(input[0]||[])[0]||[];
223 if(input.length){
224 buffer.set(input,pos);
225 pos+=input.length;
226
227 var len=~~(pos/bufferSize)*bufferSize;
228 if(len){
229 this.port.postMessage({ val: buffer.slice(0,len) });
230
231 var more=buffer.subarray(len,pos);
232 buffer=new Float32Array(bufferSize*2);
233 buffer.set(more);
234 pos=more.length;
235 This.buffer=buffer;
236 }
237 This.pos=pos;
238 }
239 return !This.kill;
240 });
241 clazz+='}'
242 +'try{'
243 +'registerProcessor("'+RecProc+'", '+RecProc+')'
244 +'}catch(e){'
245 +'console.error("'+recAudioWorklet+'注册失败",e)'
246 +'}';
247 //URL.createObjectURL 本地有些浏览器会报 Not allowed to load local resource,直接用dataurl
248 return "data:text/javascript;base64,"+btoa(unescape(encodeURIComponent(clazz)));
249 };
250
251 var awNext=function(){//可以继续,没有调用断开
252 return isWorklet && stream._na;

Callers 1

connWorkletFunction · 0.70

Calls 2

xfFunction · 0.70
logMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…