PulseAudio - 同时输出 - 添加两个设备

PulseAudio - 同时输出 - 添加两个设备

我正在看这个例子如何向 PulseAudio 添加同步模式支持。该示例展示了如何添加硬件设备:

### Load analog device
load-module module-alsa-sink device=hw:0,0
load-module module-combine-sink sink_name=combined
set-default-sink combined

我的问题是如何添加(或更多)设备以及如何添加虚拟设备?

编辑:


我尝试了组合两个水槽的说明:

$pacmd load-module module-combine-sink sink_name=combined2 sink_properties=device.description="Combined with a null sink" slaves=combined,MyTestSink

但我得到了错误Module load failed。语法有问题或者还有什么问题?我combined and MyTestSink在 的输出中显示了名称$pacmd list-sinks

答案1

该示例看起来不完整。您可以使用该slaves选项将多个接收器添加到组合接收器中:

load-module module-combine-sink sink_name=combination-sink sink_properties=device.description=myCombinationSink slaves=sink1,sink2[,...] channels=2

其中sink1等是您想要组合的水槽。

另外,通常您不需要加载 ALSA 硬件的模块,它们应该自动加载。

用于list-sinks获取可用接收器的列表(或者pavucontrol如果您喜欢 GUI,则使用)。

编辑

hw:0,0是一个阿尔萨斯设备的名称。这些module-alsa-*模块使 ALSA 设备可用脉冲音频源和汇。当您使用引用现有源/接收器的其他 Pulseaudio 模块时,您当然可以使用 Pulseaudio 名称(参见pacmd list-sinks等,不带尖括号)。 ALSA 名称与 Pulseaudio 无关。

我不确定你所说的“虚拟设备”是什么意思。 Pulseaudio 有各种不同类型的源和接收器。其中一些对应于通过 ALSA 提供的物理硬件,其中一些对应于网络上的流音频,其中一些对应于物理蓝牙设备(不通过 ALSA),而另一些则两者都不是。 Pulseaudio 并不关心它们是什么,它们只是源和接收器,并且它们都不被称为“虚拟”。

编辑

我的系统上的接收器名称:

$ pacmd list-sinks | grep name:
name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
name: <alsa_output.usb-Roland_UA-25EX-00.analog-stereo>

$ pactl list short sinks
0       alsa_output.pci-0000_00_1b.0.analog-stereo      module-alsa-card.c     s16le 2ch 44100Hz        IDLE
1       alsa_output.usb-Roland_UA-25EX-00.analog-stereo module-alsa-card.c     s16le 2ch 44100Hz        RUNNING

所以,在我的系统上:

pacmd load-module module-combine-sink sink_name=combined sink_properties=device.description=CombinedSink slaves=alsa_output.pci-0000_00_1b.0.analog-stereo,alsa_output.usb-Roland_UA-25EX-00.analog-stereo

重复一遍:不,你不能hw:1使用Pulseaudio 之类的名称。这些都是ALSA 名称为了ALSA设备通过访问ALSA 库。您可以在 Pulseaudio 中的一处使用它们,即当加载ALSA 模块(module-alsa-devices或)时,使 ALSA 设备可用于 Pulseaudio。module-aslsa-card在其他地方,您可以使用从上面的列表命令获取的 Pulseaudio 接收器名称(或者通过加载提供类似接收器的模块module-null-sink并给它们命名)。

编辑

我不确定你所说的“绝对名称”是什么意思。该名称是提供接收器的模块选择设置的名称。它通常可以在加载模块时指定为参数,也可以在未指定时由模块选择,就像在 Pulseaudio 时默认加载模块时为 ALSA 接收器所做的那样(使用硬件位置)开始。但这一切并不重要:只需看看您拥有什么水槽,然后使用正确的水槽即可。如果您加载其他模块,请根据需要为接收器命名。

相关内容