私はラップトップの音量を調整するために一貫したシェルコマンドを見つけようとしました。試してみることを提案します(ミュート/ミュート解除):
pactl set-sink-mute 0 toggle
動作しません。エラーが発生します。
Failed to get sink information: No such entity
もっと詳しく見た後、コマンドを変更すると0
効果があることがわかりました。1
私はこれが起動時にpactlが私のサウンドカードに番号を割り当て、ラップトップを再起動したときにその番号が変更されたためだと思います。
正常に動作しますが、ラップトップを再起動すると、オーディオキーは機能しなくなります。シェルで作業コマンドを試しましたが、「該当エンティティなし」エラーが再び発生しました。1
もう一度変更すると0
(つまり、元のコマンド)、再び機能します。
サウンドカードが1つしかないようなので混乱しています。とにかく、カードに割り当てられた番号が一致しない場合、カードを参照して音量を調整する一貫した方法はありますか?
答え1
ラップトップには1つのサウンドカードしかありませんが、オーディオ再生用に複数のPulseaudioレシーバーを持つことができます。
利用可能な受信機のリストを表示するには、次の手順を実行します。
pactl list short sinks
受信機インデックス番号は起動時に割り当てられ、受信機の順序は起動間で変更できます。 mute コマンドが正しいリスナーで動作することを確認するには、索引番号の代わりに記号名を使用します。
たとえば、
私のシステムの受信機は次のようにリストされています。
$ pactl list short sinks
0 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz RUNNING
1 alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1 module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
このデバイスはRUNNING
ミュートするデバイスです。
symbolic name = alsa_output.pci-0000_00_1b.0.analog-stereo
したがって、このデバイスのミュート状態を切り替えるコマンドは次のようになります。
$ pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo toggle
答え2
オーディオドライバを再起動するのに役立ちました。
pulseaudio -k && sudo alsa force-reload
その後pact
...コマンドはエラーなしで動作しました。
pactl -- set-sink-volume 0 125%
答え3
これら二つは私のために働いた。
1: xdotoolを使う
$ xdotool key XF86AudioLowerVolume #decrease volume
$ xdotool key XF86AudioRaiseVolume #increase volume
2:これを使用してオーディオデバイスのインデックスを表示します。
$ pacmd list-sinks | grep -e 'name:' -e 'index:'
index: 1
name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_5__sink>
index: 2
name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_4__sink>
index: 3
name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink>
* index: 4
name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink>
その前にindex: 4
アスタリスクがあります。私に必要な機器は次のとおりです。
$ pactl set-sink-volume 4 +10%
$ pactl set-sink-volume 4 -10%