c++ - 实时音频(发送和接收)的好库?

标签 c++ audio node.js real-time

<分区>

我正在考虑使用 node.js 进行实时音频聊天。但是,据我所知,目前没有任何好的 Node 库。为了录制音频,我可能会打开一个音频设备并从中读取 PCM 字节——但是,我不确定如何继续。我想控制网络的东西,例如我希望能够通过现有连接多路复用流量,因此也处理网络部分的库对我不起作用。所以,我认为我需要的是:

  • 一个 C/C++/JavaScript 库,能够进行快速(可能有损)实时音频(解)压缩(可能针对压缩人声进行了优化)
  • 一个 C/C++/JavaScript 库,可以确保事情保持实时,例如负责在抖动后丢弃数据——也许我也可以自己用 JavaScript 完成这部分

这听起来合理吗?这些东西有哪些好的库?

最佳答案

我创建了一个名为“Crosstalk”的 C++ 音频库。

这是一个实时 C++ 音频引擎,可让您实时创建和路由音频系统。基本上,引擎负责所有音频路由,并为您提供一个简单的平台来创建系统组件(例如,“网络输入馈送”组件连接到“低通滤波器”连接到“文件记录器”)。

它非常易于使用。这是一个如何播放 mp3 文件的示例(这些组件随引擎一起提供):

XtSystem system;
XtMp3Decoder mp3Decoder;
XtAudioDevice audioDevice;

long md = system.addComponent(&mp3Decoder);
long ad = system.addComponent(&audioDevice);

system.connOutToIn(md,0,ad,0);
system.connOutToIn(md,1,ad,1);

mp3Decoder.loadFile("../05 Tchaikovski-Swan Lake-Scene.mp3");
mp3Decoder.play();

您可以在此处查看 API 文档和许可详细信息:http://www.adaptaudio.com/Crosstalk

更新:与免费许可证的兼容性。

只有 Crosstalk 的演示版可以与免费许可软件结合使用,但是,Crosstalk 的商业用途和分发仍然是不允许的。如果您希望在免费软件中使用 Crosstalk 演示,只需在您的 EULA 中提及您的程序使用 Crosstalk 的演示版本,并且在您提供软件链接的任何地方,提供指向:“http://www.adaptaudio.com/Crosstalk”的链接,他们在哪里可以自己下载。

编辑(2012 年 1 月 12 日):

串扰已被名为“DSPatch”的开源项目所取代。 DSPatch 本质上是 Crosstalk 背后路由引擎的升级版,不再仅限于音频处理。 DSPatch 允许您创建和路由几乎任何类型的流程链,并且免费供个人和专有使用:)

关于c++ - 实时音频(发送和接收)的好库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8725950/

相关文章:

android-studio - 从阵列中选择随机声音以在Android Studio上单击按钮播放

iphone - 为什么我们只使用 aurioTouch 项目中的第一个缓冲区

javascript - 如何在reactjs中使用条件语句渲染组件?

javascript - Gulp 4 sass 忘记发出异步完成信号

c++ - 字符串文字的模板参数推导

c++ - 带if语句的for循环用于arduino供电的湿度控制

c# - 我可以为 Windows Universal App 创建闹钟应用程序吗?

python - 使用序列python设置数组元素

c++ - if 语句如何在 C++ 中求值?

mysql - 如何转换 datetime : 1518427800 to hh:mm:ss dd/mm/yyyy in node. js?