设置默认的pulseaudio音量

重新启动时,PulseAudio接收器上的音量设置为100%。 我知道如何使用pactl set-sink-volume更改音量,但这只是临时设置。 我可以编写一个在启动时运行的脚本,但是如果我稍后连接一个接收器就不会应用它。 (即蓝牙音箱)

是否有配置文件,我可以设置PulseAudio首次加载时为设备提供的默认音量? 甚至是启动时的主卷?

澄清:该应用程序适用于无头linux机箱,因此系统不必重新启动,并且应该能够接受新设备而无需通过ssh连接来调整音量等。

对我有用的是进入/home/(user)/.config/pulse/default.pa并滚动到底部设置 – sink-volume并将值更改为0

使用Ubuntu 16.04上的PulseAudio 8.0和单个声卡,您可以使用以下文件将默认主卷设置为50%。 通过包含系统默认值,您不必担心分发默认值的更改。

$ cat ~/.config/pulse/default.pa .include /etc/pulse/default.pa # Set volume to 50% on boot set-sink-volume 0 32768 

如果您有多张卡,请使用名称替换索引号,因为无法保证订单。 此外,如果要调整音量,请确定表示最大值的“基本音量”并计算等效百分比。

 $ pacmd list-sinks | grep -e "name:" -e "index:" -e "base volume:" * index: 0 name:  base volume: 65536 / 100% / 0.00 dB * index: 1 name:  base volume: 32768 / 100% / 0.00 dB 

例如,要为card1指定默认卷70%,该行将变为:

 set-sink-volume alsa_output.card1 22937 

将音量设置为所需级别,然后键入终端:

 sudo alsactl store 

现在,它应该在重启后存储。

您可以创建单独的脚本并从启动运行它,因此每次重新启动系统时都会检查特定的接收器卷。

这是脚本:

  export sink_index=$(pactl list short sinks | awk -v index_number= '$2==index_number {print $1}') volume=$(pactl list sinks | perl -000ne 'if(/#$ENV{sink_index}/){/(Volume:.*)/; print "$1\n"}' | sed 's/.*\ \(.*\)%.*/\1/g') if [ $volume -ne 100 ]; then pactl set-sink-volume $sink_index 100% fi 

sink_name应该是您要设置音量的蓝牙接收器或接收器。

您可以从以下位置找到蓝牙接收器:

 pactl list short sinks | grep "alsa_output" | awk '{ print $2 }' | head -n1 

希望这些能帮到你。