2014-09-29 42 views
0

我正在操作中塊WAV數據,並每次工人返回塊作爲Int16Array,我想合併這些到一個單一的Int16Array我會轉化爲最終的.wav文件,究竟什麼是有效的方式爲了做到這一點?合併多個Int16Array

是我所做的正確嗎?

 ... 
    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

問題是我不知道,什麼是finalArray的最終長度,所以我不能設置默認長度。 – mido 2014-09-29 06:33:52