AudioContext.SampleRate()
中的我的sampleRate总是48khz。然后我改变了windows中的定义,转到"录制设备"然后改变麦克风的SampleRate。但是,无论出于何种理由,AudioContext.SampleRate()
都是一样的。为什么?该值仅与设备有关,而与窗口定义无关?
答案 0 :(得分:2)
音频上下文采样率由输出设备决定,而不是输入设备。输入设备将重新采样为输出设备速率。
答案 1 :(得分:-1)
您可以使用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);
}
注意:
代码的信用卡:https://stackoverflow.com/a/30032095/1501285