1、全局申请的buffer,splice()
var aVideoYUVBuffer = [];
function downloadYUVData(yuvData)
{
if (bWriteYUVData) {
let bufferPackage = new Uint8Array(yuvData);
let iIndexBuffer = aVideoYUVBuffer.length;
for (let i = 0, iLen = bufferPackage.length; i < iLen; i++) {
aVideoYUVBuffer[iIndexBuffer + i] = bufferPackage[i];
}
iYUV10size++;
bufferPackage = null;
}
if (bWriteYUVData&&iYUV10size >= WRITE_YUV_NUM)
{
console.log("download"+WRITE_YUV_NUM+"YUVdata");
let YUVbuffer = new Uint8Array(aVideoYUVBuffer);
downloadFile(YUVbuffer, "videoYUV.data");
aVideoYUVBuffer.splice(0, aVideoYUVBuffer.length);//清空YUV缓存
bWriteYUVData = false;
iYUV10size = 0;
YUVbuffer = null;
}
}
2、malloc申请的缓存,进行free
//内存申请
var pDataYUV = Module._malloc(nYUVSize1);
//内存释放
if (pDataYUV != null) {
Module._free(pDataYUV);
pDataYUV1 = null;
}
3、new Uint8Array后要置空
let bodyData0 = new Uint8Array(sourceData);
bodyData0=null;//置空处理