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);
}
注:
代码来源:
音频上下文采样率由输出设备而非输入设备决定。输入设备重新采样到输出设备速率。
我在 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);
}
注:
代码来源:
音频上下文采样率由输出设备而非输入设备决定。输入设备重新采样到输出设备速率。