1
내 응용 프로그램은 PCM 이진 데이터를 서버에서 Web Audio API로 스트리밍합니다. 왜 내 JS 오디오 스트리밍 코드가 x86 및 x86_64 시스템에서 다르게 들리는가요?
내가 재생 Float32에 다시 캐스팅하기 전에, 32768에 의해 각각의 샘플을, INT16에 들어오는 데이터를 캐스팅 분할하는 DataView를를 사용하여 오디오를 정상화하려면 : 여기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++;
}
것은 불확실성이다
이것을 64 비트 Win 머신에서 실행할 때 오디오는 완벽합니다. 그러나 기존의 32 비트 Win XP 시스템을 사용하면 오디오는 리샘플링/비트 변환 아티팩트와 같은 사운드로 가득차 있습니다.
저는 엔디안에 대해 많이 읽었지 만 두 기계 모두 펜티엄이므로 리틀 엔디안이어야합니다. 맞습니까? 어떻게 가능합니까?
입력 해 주셔서 감사합니다. 사운드 카드 샘플링 속도의 불일치라고 밝혀졌습니다. – user3174541