再起動すると、PulseAudioシンクのボリュームが100%に設定されます。 pactl set-sink-volumeを使用してボリュームを変更する方法を知っていますが、それは一時的にのみ設定されます。起動時に実行されるスクリプトを作成できましたが、後でシンクを接続した場合は適用されません。 (つまり、Bluetoothスピーカー)
PulseAudioによってデバイスが最初にロードされたときにデバイスに与えられるデフォルトのボリュームを設定できる設定ファイルはありますか?それとも、起動時のマスターボリュームですか?
明確化:アプリケーションはヘッドレスLinuxボックス用であるため、システムをリブートする必要はなく、ボリュームを調整するためにsshを介して接続しなくても新しいデバイスを受け入れることができるはずです。
私のために働いたのは、/home/(user)/.config/Pulse/default.pa
に入り、set-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: <alsa_output.card0>
base volume: 65536 / 100% / 0.00 dB
* index: 1
name: <alsa_output.card1>
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=<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は、ボリュームを設定するbluetoothシンクまたはシンクにする必要があります。
Bluetoothシンクは次の場所から入手できます。
pactl list short sinks | grep "alsa_output" | awk '{ print $2 }' | head -n1
これらがあなたを助けることを願っています。