3

我正在一台有两个声卡的计算机上开发一个 Linux 应用程序,我想在 OpenAL 中同时使用两个声卡,每个都在自己的上下文中。当我调用 OpenAL 的枚举扩展 alcGetString(NULL, ALC_DEVICE_SPECIFIER) 来获取可能的输出设备列表时,该列表仅包含“ALSA 软件”和“OSS 软件”。我知道这些只是 OpenAL 对软件设备的看法,所以当我选择其中任何一个时,OpenAL 只会将音频输出到在 ALSA 或 OSS 中配置的默认设备。我什至不确定这是否可能,但有没有办法将 OpenAL 上下文的音频输出定向到特定设备?这样,我可以创建两个上下文,每个设备一个,并向每个设备发送单独的音频。

谢谢,-Al

4

1 回答 1

6

我今天做了一些测试,找到了答案。显然,您必须使用参数 ALC_ALL_DEVICES_SPECIFIER 调用 alcGetString 才能获得完整的列表。一个足够简单的更改,但 OpenAL 关于此功能的文档充其量是多云的,最坏的情况是具有误导性。请参阅 OpenAL 1.1 规范的第 9.5 节和 OpenAL 程序员指南的“Creative Labs 对 OpenAL 的扩展”->“枚举所有扩展”->“检索设备名称”小节,了解我的意思。

OpenAL 文档: http ://connect.creativelabs.com/openal/Documentation/Forms/AllItems.aspx

于 2010-07-28T22:55:23.263 回答