我正在一台带有两个声卡的计算机上开发Linux应用程序,我想在OpenAL中同时使用它们,每个都在自己的上下文中。当我调用OpenAL的枚举扩展名alcGetString(NULL,ALC_DEVICE_SPECIFIER)以获取可能的输出设备列表时,该列表仅包含“ALSA软件”和“OSS软件”。我知道这些只是OpenAL对软件设备的看法所以当我选择其中任何一个时,OpenAL只会将音频输出到ALSA或OSS中配置的默认设备。我甚至不确定它是否可行,但有没有办法将OpenAL上下文的音频输出定向到特定设备?通过这种方式,我可以创建两个上下文,每个上下文一个,并为每个上下文发送单独的音频。
谢谢, -Al
答案 0 :(得分:6)
我今天做了一些测试并找到了答案。显然,您必须使用参数ALC_ALL_DEVICES_SPECIFIER调用alcGetString才能获得完整列表。一个简单的变化,但OpenAL关于此功能的文档最多是阴天,最糟糕的是误导。请参阅OpenAL 1.1规范的第9.5节和“OpenAL的创意实验室扩展”小节 - >“枚举所有扩展” - >“检索OpenAL程序员指南的设备名称”以了解我的意思。
OpenAL文档: http://connect.creativelabs.com/openal/Documentation/Forms/AllItems.aspx