如何在 PulseAudio 中设置每次启动后使用的默认配置文件?
当我启动时,声音不起作用。如果我打开 PulseAudio 音量控制应用程序,转到“配置”窗格并从“配置文件”下拉菜单中选择“模拟环绕 4.0 输出”,则声音会再次正常工作。但是,这只会持续到下次重新启动为止。
如何配置系统以在将来重新启动后使用该配置文件?
答案1
将以下内容添加到/etc/pulse/default.pa
:
set-card-profile <cardindex> <profilename>
我们如何确定使用 ascardindex
和 as profilename
?这是一种方法。配置卡,使一切正常。通常cardindex
为 0,但您可以通过运行pacmd list-cards
并查看行来找到它index: ...
。要找到profilename
,请使用
pacmd list-cards | grep 'active profile'
当前配置文件的名称应出现在输出中。删除尖括号( 和<
)>
。
您可以通过运行来测试您的配置
pactl set-card-profile <cardindex> <profilename>
从命令行查看它是否正确设置了配置文件,然后将其添加到/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
答案2
最后写这篇文章是为了帮助更改配置文件。只担心蓝牙,但您可以根据需要编辑它以选择 中的其他来源pactl list cards
。
index=$(pactl list cards | grep -B1 "bluez_card" | grep -oP '(?<=Card #)\d+')
pactl set-card-profile $index a2dp-sink
# pactl set-card-profile $index off
# pactl set-card-profile $index headset-head-unit
答案3
插入命令行/etc/pulse/default.pa
对我来说不起作用;它导致了错误。
我刚刚解决了发出命令的问题
pactl set-card-profile <symbolic-name> <profilename>
在linux的自启动任务中,它可以工作。
答案4
我只是想添加另一种更简单的方法来做到这一点,但可能只能在某些桌面环境下工作:
在 KDE Plasma 下,我可以打开系统设置 GUI,导航到“音频”窗格(在“硬件”下),然后从下拉菜单更改配置文件。重新启动后此更改仍然存在。无需编辑奇怪的文件,或手动确定卡名称和所需的配置文件。