为 PulseAudio 设置默认配置文件

D.W*_*.W. 23 pulseaudio

如何在 PulseAudio 中设置每次启动后使用的默认配置文件?

当我启动时,声音不起作用。如果我打开 PulseAudio 音量控制应用程序,然后转到“配置”窗格并从“配置文件”下拉菜单中选择“模拟环绕 4.0 输出”,则声音再次起作用。但是,这只持续到下一次重新启动。

如何配置系统以在将来重新启动后使用该配置文件?

D.W*_*.W. 37

将以下内容添加到/etc/pulse/default.pa

set-card-profile <cardindex> <profilename>
Run Code Online (Sandbox Code Playgroud)

我们如何确定使用 ascardindex和 as 的内容profilename?这是一种方法。配置卡,以便一切正常。在cardindex通常是0,但你可以通过运行找到它pacmd list-cards,看着行index: ...。要找到profilename,请使用

pacmd list-cards | grep 'active profile'
Run Code Online (Sandbox Code Playgroud)

当前配置文件的名称应出现在输出中。删除尖括号(<>)。

您可以通过运行来测试您的配置

pactl set-card-profile <cardindex> <profilename>
Run Code Online (Sandbox Code Playgroud)

从命令行查看它是否正确设置了配置文件,然后将其添加到/etc/pulse/default.pa.

由于索引名称是动态的(如果您在插入 USB 音频设备的情况下启动,它可以更改您的 PCI 设备索引),您可以使用<symbolic-name>代替<index>(如果您运行pacmd list-cards,符号名称就在索引正下方)。此外,如果在启动 pulseaudio 时设备丢失,该命令可能会失败,因此可能值得用 .ifexists 子句包装该命令:

.ifexists <symbolic-name>
pactl set-card-profile <symbolic-name> <profilename>
.endif
Run Code Online (Sandbox Code Playgroud)

  • 然而,当设备热插拔时(例如:蓝牙耳机),这不起作用。运行 `pactl...` 有效,但是将相同的命令设置到 `/etc/pulse/default.pa` 中没有任何效果...我试图默认设置 `headset_head_unit profile` 而不是 `a2dp_sink`对于我的耳机单元。 (3认同)
  • 如果您有多个顺序不固定的音频设备,您还可以使用 udev 规则为设备配置 Pulseaudio 配置文件。这允许通过供应商/产品 ID、序列号或其他方式识别设备。用于设置 Pulseaudio 配置文件的规则元素是 `ENV{PULSE_PROFILE_SET}="&lt;profilename&gt;"` (2认同)