我在块中操作wav数据,并且每次worker返回一个块作为Int16Array时,我想将所有这些合并到一个Int16Array中,我将转换为最终的.wav文件,那么这样做的有效方法是什么?
是我做得对的吗?
...
var offset=0;
var finalArray;
worker.onmessage = function (e) {
//e.data is the Int16Array
if(!finalArray){
finalArray=e.data;
offset=e.data.byteLength;
}else{
finalArray.set(e.data,offset);
offset+=e.data.byteLength;
}
...
答案 0 :(得分:0)
您需要分配内存以适应两个块,然后将内容放在新数组中。
所以,你所做的是正确的。如果性能是一个问题,你可以聪明地寻找偏移量的阵列,但这可能比它的价值更麻烦。