最近项目中用到web录音,但是录音的采样率需要设置为8000,而不是默认的44100.但是修改samplerate后,发现录音不能正常播放,播放出来的是噪音。在stackOverFlow上搜到解决方案如下:
function downsampleBuffer(buffer, rate) {
if (rate == sampleRate) {
return buffer;
}
if (rate > sampleRate) {
throw "downsampling rate show be smaller than original sample rate";
}
var sampleRateRatio = sampleRate / rate;
var newLength = Math.round(buffer.length / sampleRateRatio);
var result = new Float32Array(newLength);
var offsetResult = 0;
var offsetBuffer = 0;
while (offsetResult < result.length) {
var nextOffsetBuffer = Math.round((offsetResult +