linux - OpenAL 输出到多个设备 (Linux)

标签 linux audio device openal

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

谢谢, -阿尔

最佳答案

我今天做了一些测试并找到了答案。显然,您必须使用参数 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

关于linux - OpenAL 输出到多个设备 (Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3348806/

相关文章:

python - 使用传统的 TCP 向 ZeroMQ 服务器发送消息,可能吗?

linux - Keepalived 跟踪多个接口(interface)

linux - 如何从 ext2/ext3 文件系统上的稀疏文件中删除一些 block

audio - 仅使用视频流中的音轨

excel - 如何使用Matlab中Excel表格中的信息读取一个文件夹中的所有.wav音频文件?

linux - Linux 中的虚拟网络设备

delphi - 使用 Delphi 检测 Windows 中何时安装卷

android - USB调试: How to revoke the "Always allow from this computer" option

android - android studio 中未检测到设备

java - Gdx.audio错误