OpenAL输出到多个设备(Linux)
收藏

我正在一台有两个声卡的计算机上开发一个linux应用程序,我想在openal中同时使用这两个声卡,每个声卡都有自己的上下文。当我调用openal的枚举扩展alcGetString(null,alc_device_说明符)来获取可能的输出设备列表时,该列表只包含“alsa software”和“oss software”。我知道这些只是openal对软件设备的看法,所以当我选择其中一个时,openal只是将音频输出到alsa或oss中配置的默认设备。我甚至不确定是否有可能,但有没有办法将openal上下文的音频输出定向到特定设备?这样我就可以创建两个上下文,每个设备一个上下文,并向每个上下文发送单独的音频。
谢谢,
-艾尔


最佳答案:

我今天做了一些测试,找到了答案。显然,必须使用参数alc_all_devices_说明符调用alcGetString才能获得完整的列表。一个足够简单的改变,但是openal关于这个功能的文档充其量是多云的,充其量是误导性的。请参阅OpenAL1.1规范的第9.5节和OpenALProgrammer'sGuide的“CreativeLabs对OpenAL的扩展”->“枚举所有扩展”->“检索设备名”小节,了解我的意思。
OpenAL文档:
http://connect.creativelabs.com/openal/Documentation/Forms/AllItems.aspx

    公众号
    关注公众号订阅更多技术干货!