使用OpenAL播放到特定频道

时间:2017-05-23 14:33:02

标签: openal

我的系统目前使用两张杜比7.1声卡,每张声卡使用OpenAL / alsoft为不同的扬声器组播放不同的立体声输出。

由于我不需要两张卡上的所有输出通道,我想要删除系统中的一张声卡。

我已经证明硬件通过修改我的ALSA配置文件来支持它,并且我能够使用aplay -D setA /tmp/sound.wav和ALSA PCM仅向一组扬声器播放声音,并且仅向另一组播放相同的声音使用另一个PCM的扬声器:aplay -D setB /tmp/sound.wavsetAsetBasound.conf文件中定义。

我在查询OpenAL / alsoft时可用的播放设备是:

ALSA Software on Xonar DX [Multichannel] (hw:0,0)
ALSA Software on Xonar DX [Digital] (hw:0,1)

我希望能够创建映射到特定ALSA PCM的“虚拟”OpenAL设备。这可能吗?

我可以在alsoft.conf文件中指定一个ALSA PCM(通过device =标签),但是看不到任何映射alsoft和ALSA设备的地方。

1 个答案:

答案 0 :(得分:0)

OpenAL的最新主干具有我正在寻找的确切功能。

来自OpenAL维护者:https://openal.org/pipermail/openal/2017-May/000639.html

在最新版本中,您可以指定ALSA PCM通道到OpenAL设备的映射,如下所示:

[alsa]
custom-devices = Stereo Set 1=setA;Stereo Set 2=setB

格式为<OpenAL device name>=<ALSA device name>,每个条目用分号分隔(注意前后空格是保留的,不是剥离的)。这些添加到通常提供的设备列表中,并显示在ALSA默认设备之后。它目前还没有验证ALSA设备实际上是否有效,相关的OpenAL设备如果不能打开则无法打开。

具有此功能的官方OpenAL版本1.18似乎将于2017年6月发布。