【发布时间】:2014-09-06 05:47:50
【问题描述】:
出于应用程序特定的原因,我需要在现有 Int16Array 的开头添加这两个字符“a”(a 和一个逗号)
目前我尝试使用此代码,但它似乎无法正常工作:
function convertFloat32ToInt16(buffer) {
var prefix = 'a,',
prefixLength = prefix.length / 2, // divided by 2 because we deal with 16 bits, not 8 bits
bufferLength = buffer.length,
totalLength = prefixLength + bufferLength,
arr = new Int16Array(totalLength),
i
for (i = 0; i < prefixLength; i = i + 2) {
arr[i] = prefix.charCodeAt(i) + prefix.charCodeAt(i + 1)
}
for (i = prefixLength; i < totalLength; i++) {
arr[i] = Math.min(1, buffer[i - prefixLength]) * 0x7FFF // convert to 16 bit
}
return arr.buffer
}
有什么建议可以让我做得更好并修复上面的代码吗?
非常感谢!
【问题讨论】:
标签: javascript arrays buffer