ArrayBuffer没有直接的合并方法,所以要绕一下
- 首先把两个ArrayBuffer转换成Unit8Array
- 然后用一个大的Unit8Array把两个小的Unit8Array装进去
- 最后把大的Unit8Array转换成ArrayBuffer
/**
* Creates a new Uint8Array based on two different ArrayBuffers
*
* @private
* @param {ArrayBuffers} buffer1 The first buffer.
* @param {ArrayBuffers} buffer2 The second buffer.
* @return {ArrayBuffers} The new ArrayBuffer created out of the two.
*/
var _appendBuffer = function(buffer1, buffer2) {
var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength);
tmp.set(new Uint8Array(buffer1), 0);
tmp.set(new Uint8Array(buffer2), buffer1.byteLength);
return tmp.buffer;
};