Javascript 为什么我的JS音频流代码在x86和x86_64系统上听起来不同?

Javascript 为什么我的JS音频流代码在x86和x86_64系统上听起来不同?,javascript,binary,streaming,web-audio-api,endianness,Javascript,Binary,Streaming,Web Audio Api,Endianness,我的应用程序将PCM二进制数据从服务器传输到Web音频API 为了规范化音频,我使用DataView将传入的数据转换为Int16,将每个样本除以32768,然后再将它们转换回Float32进行播放: var data = new DataView(arrayBuffer); var tempArray = new Int16Array(data.byteLength / Int16Array.BYTES_PER_ELEMENT); var len = tempArray.length; fo

我的应用程序将PCM二进制数据从服务器传输到Web音频API

为了规范化音频,我使用DataView将传入的数据转换为Int16,将每个样本除以32768,然后再将它们转换回Float32进行播放:

var data = new DataView(arrayBuffer);

var tempArray = new Int16Array(data.byteLength / Int16Array.BYTES_PER_ELEMENT);

var len = tempArray.length;
for (var jj = 0; jj < len; ++jj) {
    tempArray[jj] = data.getInt16(jj * Int16Array.BYTES_PER_ELEMENT, true);
}


var bufferToPlay = new Float32Array(tempArray.length);
var channelCounter = 0;
for (var i = 0; i < tempArray.length;) {
    var normalizedAudio = tempArray[i] / 32768;
    i = i + 1;
    bufferToPlay[channelCounter] = normalizedAudio;
    channelCounter++;
}
var data=新数据视图(arrayBuffer);
var tempArray=新的Int16Array(data.byteLength/Int16Array.BYTES\u/元素);
var len=tempArray.length;
对于(var jj=0;jj
奇怪的是:

当我在我的64位Win机器上运行时,音频是完美的。但当我使用旧的32位Win XP机器时,音频中充满了听起来像重采样/位转换工件的东西


我已经读了很多关于endian的书,但是这两台机器都是奔腾的,所以都应该是小endian,对吗?那么这怎么可能呢?

检查每台机器上的WebAudio上下文的
sampleRate
。它们是一样的吗?另外,如果endianness是错误的,听起来就不像是重采样/位转换。如果听起来像是重新采样,那么这两台机器的采样率可能非常不同。

谢谢您的输入。结果是声卡采样率不匹配。