Web Audio API - 更改 Windows 定义中的采样率

WebAudioAPI - change SampleRate in Windows definitions

我在 AudioContext.SampleRate() 中的采样率始终是 48khz。然后我更改 windows 中的定义,转到 "recording devices" 并在那里更改麦克风的采样率。但是,无论出于何种原因,AudioContext.SampleRate() 都保持不变。为什么?此值仅与设备相关,与 windows 定义无关?

您可以使用https://github.com/taisel/XAudioJS/blob/master/resampler.js

var resampler = new Resampler(44100, 48000, 1, 2229);

function startUsermedia(stream) {
    var input = audio_context.createMediaStreamSource(stream);
    recorder = audio_context.createScriptProcessor(2048);
    recorder.onaudioprocess = recorderProcess;
    recorder.connect(audio_context.destination);
}

function recorderProcess(e) {
    var buffer = e.inputBuffer.getChannelData(0);
    var resampled = resampler.resampler(buffer);
}

注:
代码来源:

音频上下文采样率由输出设备而非输入设备决定。输入设备重新采样到输出设备速率。