MCPcopy Index your code
hub / github.com/modelscope/FunASR / asyncEnd

Function asyncEnd

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

Source from the content-addressed store, hash-verified

984
985 //允许异步处理buffer数据
986 var asyncEnd=function(){
987 //重新计算size,异步的早已减去添加的,同步的需去掉本次添加的然后重新计算
988 var num=asyncBegin?0:-addSize;
989 var hasClear=buffers[0]==null;
990 for(var i=bufferFirstIdx;i<bufferNextIdx;i++){
991 var buffer=buffers[i];
992 if(buffer==null){//已被主动释放内存,比如长时间实时传输录音时
993 hasClear=1;
994 }else{
995 num+=buffer.length;
996
997 //推入后台边录边转码
998 if(engineCtx&&buffer.length){
999 This[set.type+"_encode"](engineCtx,buffer);
1000 };
1001 };
1002 };
1003
1004 //同步清理This.buffers,不管buffers到底清了多少个,buffersThis是使用不到的进行全清
1005 if(hasClear && engineCtx){
1006 var i=bufferFirstIdxThis;
1007 if(buffersThis[0]){
1008 i=0;
1009 };
1010 for(;i<bufferNextIdxThis;i++){
1011 buffersThis[i]=null;
1012 };
1013 };
1014
1015 //统计修改后的size,如果异步发生clear要原样加回来,同步的无需操作
1016 if(hasClear){
1017 num=asyncBegin?addSize:0;
1018
1019 buffers[0]=null;//彻底被清理
1020 };
1021 if(engineCtx){
1022 engineCtx.pcmSize+=num;
1023 }else{
1024 This.recSize+=num;
1025 };
1026 };
1027 //实时回调处理数据,允许修改或替换上次回调以来新增的数据 ,但是不允许修改已处理过的,不允许增删第一维数组 ,允许将第二维数组任意修改替换成空数组也可以
1028 var asyncBegin=0,procTxt="rec.set.onProcess";
1029 try{

Callers 1

recorder-core.jsFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…