如何使用 Javascript 获取麦克风/输入设备的采样率?

avo*_*iva 2 javascript sample-rate audiocontext web-audio-api

当您创建新设备时,AudioContext它将采样率设置为默认输出设备。这是预期的默认行为。有谁知道是否有什么方法可以在Javascript中获取输入设备的采样率?

我们可以在AudioContext的文档中看到它说的是sampleRate

该值通常在 8,000 Hz 到 96,000 Hz 之间;默认值会根据输出设备而有所不同,但采样率 44,100 Hz 是最常见的。如果选项中未包含sampleRate属性,或者在创建音频上下文时未指定选项,则默认使用新上下文的输出设备的首选采样率。

我如何使用它的示例:

const stream = await navigator.mediaDevices.getUserMedia({audio: true, video: false});
const context = new AudioContext();
context.sampleRate // This is the default output device's sample rate. I need the default input sampleRate
Run Code Online (Sandbox Code Playgroud)

我一直在搜索文档和互联网以寻找实现此目的的方法,但没有找到任何有用的东西。感谢任何帮助。

chr*_*din 5

您可以sampleRate像这样获取流中的音轨:

const sampleRate = stream.getAudioTracks()[0].getSettings().sampleRate;
Run Code Online (Sandbox Code Playgroud)

然后您可以使用它来创建AudioContext.

const context = new AudioContext({ sampleRate });
Run Code Online (Sandbox Code Playgroud)