我正在研究开发一个需要实时音频流的应用程序。我更喜欢使用一些用 C 或 C++ 编写的跨平台(windows/linux/BSD)开源库,即使使用各自操作系统的声音 API 编写它仍然是一种选择。
我已经阅读了一些关于各种声音库的信息,包括 SFML、SDL 和 PortAudio。诚然,我还没有对 FreeBSD 和 Linux 中的声音进行足够的研究(这两者之间有多相似?)
主要要求将是
- 从选定的麦克风/麦克风获取音频以通过网络发送,
- 将数据发送到选择的输出设备,
- 处理声音(过滤、清理噪音、多路复用流等),但是一旦我有了音频数据就可以完成,库本身不需要能够做任何这些。
- 具有相当低的延迟
我主要担心的是这些提到的 API 似乎主要针对游戏(声音通常从磁盘加载,并且没有太多(如果有的话)录音,而不是通过网络流式传输,录音和播放之间具有同等重要性。
是否有人对这些或其他声音 API 或在各自操作系统的 API 中实现这一点的优点/缺点有任何指示/警告/建议?
注意:虽然这样:“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于 Stack Overflow 来说是题外话”,但当人们也认为“作为他们往往会吸引固执己见的答案和垃圾邮件”,那么我认为这个问题不应该被关闭。寻找所描述的此类库的人将很难找到任何东西,这个问题的答案实际上总结了所有可用的选项。因此,这在“通常涵盖……程序员常用的软件工具”中;接受答案的类别。