【发布时间】:2015-12-03 13:04:44
【问题描述】:
AudioContext.SampleRate() 中的采样率始终为 48khz。然后我更改了 Windows 中的定义,转到“录音设备”并在那里更改麦克风的 SampleRate。但是,无论如何,AudioContext.SampleRate() 保持不变。为什么?此值仅与设备有关,与 windows 定义无关?
【问题讨论】:
AudioContext.SampleRate() 中的采样率始终为 48khz。然后我更改了 Windows 中的定义,转到“录音设备”并在那里更改麦克风的 SampleRate。但是,无论如何,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);
}
【讨论】: