WebAudioAPI - 在Windows定义中更改SampleRate

时间:2015-12-03 13:04:44

标签: javascript web-audio

AudioContext.SampleRate()中的我的sampleRate总是48khz。然后我改变了windows中的定义,转到"录制设备"然后改变麦克风的SampleRate。但是,无论出于何种理由,AudioContext.SampleRate()都是一样的。为什么?该值仅与设备有关,而与窗口定义无关?

2 个答案:

答案 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