【问题标题】:WebAudioAPI - change SampleRate in Windows definitionsWeb Audio API - 在 Windows 定义中更改采样率
【发布时间】:2015-12-03 13:04:44
【问题描述】:

AudioContext.SampleRate() 中的采样率始终为 48khz。然后我更改了 Windows 中的定义,转到“录音设备”并在那里更改麦克风的 SampleRate。但是,无论如何,AudioContext.SampleRate() 保持不变。为什么?此值仅与设备有关,与 windows 定义无关?

【问题讨论】:

    标签: javascript web-audio-api


    【解决方案1】:

    音频上下文采样率由输出设备决定,而不是输入设备。输入设备被重新采样到输出设备的速率。

    【讨论】:

    • 我在 windows 中更改了采样率,但这次我在扬声器设备中进行了更改。一切顺利。再次感谢@cwilso
    • 没问题。将来,音频上下文的采样率将是可选的,但我仍然希望输出设备驱动时钟,因此输入将始终被重新采样。
    【解决方案2】:

    您可以使用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

    【讨论】:

      猜你喜欢
      • 2013-10-25
      • 2018-07-18
      • 2022-01-01
      • 2021-10-08
      • 2013-04-27
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      相关资源
      最近更新 更多