()
| 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{ |
no outgoing calls
no test coverage detected
searching dependent graphs…