Node JS 访问音频接口

cwo*_*cwo 5 html javascript audio node.js web-audio-api

我想将来自我的音频接口(focusrite saffire)的音频信号发送到我的nodejs 服务器。我该怎么做呢?最简单的方法是从浏览器(html5)访问音频接口,例如使用 getUserMedia 捕获麦克风输出(https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia),但无法找不到通过该库访问我的音频接口的方法。否则,我计划创建一个桌面应用程序,但不知道是否有一个函数/库允许访问我的 USB 连接音频接口。

小智 0

这可能与 Javascript 或 MediaDevices API 没有什么关系。在 Linux 上,使用 Firefox,PulseAudio 需要与音频硬件连接。由于您的声卡是输入/输出接口,因此您应该能够通过在浏览器中播放任何声音文件来轻松测试它。

大多数PulseAudio 配置可以使用 GUI 来实现pavucontrol。您应该检查“配置”选项卡以及“输入设备”和“输出设备”选项卡,以确保您的 Focusrite 已正确设置并用作声音 I/O。

完成此操作后,您应该能够使用以下内容访问音频流(仅在“安全上下文”上可用,即localhost或通过 HTTPS 提供服务,如您提到的 MDN 页面中所述):

navigator.mediaDevices.getUserMedia({ audio: true })
  .then(function(stream) {
    // do whatever you want with this audio stream
  })
Run Code Online (Sandbox Code Playgroud)

(代码片段取自有关 MediaDevices 的 MDN 页面

将音频发送到服务器则完全是另一回事。你尝试过什么吗?您是否正在寻找与服务器的实时通信?如果是这样,我会首先查看WebSockets API。WebRTC文档可能也值得阅读,但它更面向客户端到客户端的通信