ボリュームを調整する一貫したシェルコマンドはありますか?

ボリュームを調整する一貫したシェルコマンドはありますか?

私はラップトップの音量を調整するために一貫したシェルコマンドを見つけようとしました。試してみることを提案します(ミュート/ミュート解除):

 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%

関連情報