当我重新启动时,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
希望这些能够对你有帮助。