设置默认脉冲音频音量

设置默认脉冲音频音量

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

是否有一个配置文件,我可以在其中设置 PulseAudio 首次加载设备时指定的默认音量?或者甚至是启动时的主音量?

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

答案1

对我有用的是进入~/.config/pulse/default.pa并滚动到底部set-sink-volume并将值更改为 0

答案2

将音量设置为所需的级别,然后在终端中输入:

sudo alsactl store

现在,即使重启后它也应该被保存。

答案3

使用 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: <alsa_output.card0>
    base volume: 65536 / 100% / 0.00 dB
  * index: 1
    name: <alsa_output.card1>
    base volume: 32768 / 100% / 0.00 dB

例如,要指定卡 1 的默认音量为 70%,该行将变为:

set-sink-volume alsa_output.card1 22937

答案4

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

脚本如下:

 export sink_index=$(pactl list short sinks | awk -v index_number=<sink_name> '$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

希望这些能够对你有帮助。

相关内容