我想将来自我的音频接口(interface)(focusrite saffire)的音频信号发送到我的 nodejs 服务器。我该怎么做呢?最简单的方法是从浏览器 (html5) 访问音频接口(interface),例如使用 getUserMedia (https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia) 捕获麦克风输出,但找不到通过该库访问我的音频接口(interface)的方法。否则,我打算创建一个桌面应用程序,但不知道是否有允许访问我的 USB 连接音频接口(interface)的功能/库。
最佳答案
这可能与 Javascript 或 MediaDevices API 无关。在 Linux 上,使用 Firefox,PulseAudio is required与您的音频硬件接口(interface)。由于您的声卡是一个输入/输出接口(interface),您应该能够通过简单地在浏览器中播放任何声音文件来轻松测试它。
大部分PulseAudio configuration可以使用 pavucontrol
来实现图形用户界面。您应该检查“配置”选项卡以及“输入设备”和“输出设备”选项卡,以确保您的 Focusrite 设置正确并用作声音 I/O。
完成此操作后,您应该能够使用以下内容访问音频流(仅在“安全上下文”中可用,即 localhost
或通过 HTTPS 提供服务,如您提到的 MDN 页面中所述):
navigator.mediaDevices.getUserMedia({ audio: true })
.then(function(stream) {
// do whatever you want with this audio stream
})
(取自 MDN page about MediaDevices 的代码片段)
向服务器发送音频是另一回事。你试过什么吗?您是否正在寻找与服务器的实时通信?如果是这样,我会先看看 WebSockets API . WebRTC文档可能也值得一读,但它更面向客户端到客户端的通信。
关于javascript - Node JS 访问音频接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53218829/