Alsa:snd-aloop 正在创建环绕声设备

Alsa:snd-aloop 正在创建环绕声设备

我需要创建两个 ALSA 环回接口来链接两个应用程序。

我在 /etc/modprobe.d/sound.conf 中有以下内容 -

alias snd-card-1 snd-aloop
options snd-aloop pcm_substreams=2,2 id=1,2 enable=1,1 index=10,11

这会创建环回并且它正在工作,但它也创建了我不需要的大量环绕声接口。下面的例子-

surround51:CARD=D2,DEV=0
    Loopback, Loopback PCM
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=D2,DEV=0
    Loopback, Loopback PCM
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers

无论如何,我可以为立体声创建环回设备吗?

谢谢

答案1

我发现有配置文件:

/usr/share/alsa/pcm

那就是创建环绕声接口。我删除了这些文件,并且不再创建接口。

答案2

Pulseaudio 的替代方案:

要使 Pulseaudio 下的一个应用程序记录另一个应用程序的输出相当简单:

Pulseaudio 有声源和声汇的概念。您可以任意将应用程序连接到这些。 Pulseaudio 具有记住这些连接的模块,并将在下次应用程序重新启动时恢复连接(如果连接可行)。否则 Pulseaudio 将为您选择默认连接。

您可以使用 GUI 检查和更改所有这些pavucontrol,这还允许您更改应用程序和源/接收器之间的连接以及源/接收器本身的音量控制。

四个源/接收器的基本用例是代表硬件录制和播放。但它并不限于此:有多种方法可以创建其他类型的源和汇。特别是,每个接收器都连接到一个.monitor源,该源只是环回。实际上pavucontrol就是用它们来实现声音计量显示的。

因此,设置两个环路,甚至 100 个环路,或者与多个应用程序监听一个应用程序的 T 形连接都非常简单。

如果 GUI 对您来说还不够,还有命令行应用程序pacmdpactl,允许编写脚本。详情请参见pacmd help或。 pactl help(我不知道为什么有两个......)。然而,它们的输出并不是特别容易解析,并且需要一些摆弄grep -A等。

Pulseaudio 包含一个兼容性层,允许所有 ALSA 应用程序通过 ALSA 设备使用 Pulseaudio pulse。如果你有.asoundrc喜欢的

pcm.!default pulse
ctl.!default pulse

那么每个 ALSA 应用程序都会默认使用 Pulseaudio(除非您将其配置为使用不同的 ALSA 设备)。一些 ALSA 应用程序认为它们需要使用hw:...(这是糟糕的设计),并且您必须说服这些应用程序default改为使用。一些 ALSA 应用程序尝试执行仅适用于 的操作hw:...,这些操作会导致问题,但这种情况很少见。

底线:使用 Pulseaudio(或使用 Jack)路由声音比直接使用 ALSA 容易得多。

相关内容