我正在观看如何向 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
。
该示例看起来不完整。您可以使用该
slaves
选项将多个接收器添加到组合接收器:where
sink1
etc. 是您要组合的接收器。此外,通常您不需要为 ALSA 硬件加载模块,它们应该自动加载。
用于
list-sinks
获取可用接收器的列表(pavucontrol
如果您更喜欢 GUI,则使用)。编辑
hw:0,0
是设备的ALSA名称。这些module-alsa-*
模块使 ALSA 设备可用作Pulseaudio源和接收器。当您使用引用现有源/接收器的其他 Pulseaudio 模块时,您当然会使用 Pulseaudio 名称(参见pacmd list-sinks
等,没有尖括号)。ALSA 名称在 Pulseaudio 中不相关。我不确定您所说的“虚拟设备”是什么意思。Pulseaudio 有各种不同类型的源和汇。其中一些对应于通过 ALSA 可用的物理硬件,其中一些对应于网络上的流式音频,其中一些对应于物理蓝牙设备(不是通过 ALSA),还有一些两者都不是。Pulseaudio 不在乎它们是什么,它们只是源和汇,没有一个被称为“虚拟”。
编辑
我系统上的接收器名称:
所以,在我的系统上:
重复一遍:不,您不能使用
hw:1
Pulseaudio 之类的名称。这些是通过ALSA 库访问的ALSA 设备的ALSA 名称。您可以在 Pulseaudio 中仅在一个地方使用它们,即当加载 ALSA 模块(或)时,使 ALSA 设备可用于 Pulseaudio。在其他任何地方,您都使用从上面的列表命令获得的 Pulseaudio 接收器名称(或通过加载提供接收器的模块并为其命名)。module-alsa-devices
module-aslsa-card
module-null-sink
编辑
我不确定您所说的“绝对名称”是什么意思。该名称是提供接收器的模块选择设置的任何名称。它通常可以在加载模块时指定为参数,也可以在未指定时由模块选择,就像在 Pulseaudio 时默认加载模块时为 ALSA 接收器(使用硬件位置)所做的那样开始。但这一切都无关紧要:只要看看你有什么水槽,然后使用正确的水槽。如果您加载其他模块,请命名接收器,如果您愿意的话。