0

两者都有 C 的绑定,都可以播放各种格式。

哪个更优越?在简单性、性能、开销和内存占用方面。

还有哪一个更擅长处理多个流?

4

2 回答 2

1

我没有使用其中任何一个进行编程,但我相信 OpenAL 的设计目的是为游戏渲染和输出多通道音频,并要求实时性能。

libSoX 更多用于音频文件的输入和输出,以及格式转换。有很多插件,但 AFAIK 并不是为实时音频输出而设计的。不过,使用起来似乎要简单得多。

您可能还想看看libsndfile

你到底想做什么?

于 2010-12-22T16:43:45.937 回答
0

虽然我从未使用过 OpenAL,但我听说过很多关于它的不好的事情,这使得它听起来不专业,基本上是一条死胡同。来自维基百科:

OpenAL 最初是由 Loki Software 开发的,目的是帮助他们将 Windows 游戏移植到 Linux 上。Loki 消亡后,该项目由自由软件/开源社区维护了一段时间,并在 NVIDIA nForce 声卡和主板上实现。它现在由 Creative Technology 托管(并主要开发),并得到 Apple、Blue Ripple Sound 和免费软件/开源爱好者的持续支持。

虽然 OpenAL 章程规定将有一个以 OpenGL ARB 为模型的“架构审查委员会”(ARB),但从未成立过这样的组织,OpenAL 规范通常通过其公共邮件列表上的电子邮件进行处理和讨论。

自 1.1 以来,Creative 的实现已变为专有,免费许可证的最新版本仍可通过项目的 subversion 访问。但是,OpenAL Soft 是一种广泛使用的开源替代方案。

还有一个问题是它弄乱了调用应用程序的状态;我相信只是链接它会导致一些全局构造函数在调用之前以main改变程序初始环境的方式运行,并破坏一些程序(也许是 MPlayer?)。我不清楚这个问题是否曾经得到解决,但它尖叫着糟糕的图书馆,我会怀疑是否曾经相信一个图书馆历史上包含这种滥用行为。

于 2010-12-22T16:31:33.750 回答