web-dev-qa-db-ja.com

コマンドラインを使用して音量を変更する方法

プログラミングスクリプトを使用して音量を制御しようとしています。 Fedora 15、Ubuntu linuxで次のことをするにはどうすればよいですか?

  1. ミュート/ミュート解除
  2. ボリュームアップとボリュームダウン

注:ウェブUSBマイク/スピーカーとアナログマイク/スピーカーも使用しています。確実に全員に応募したいです。

78
user11085

amixer を使用できます。 UbuntuとDebianのalsa-utilsパッケージに含まれています。

パラメータなしでamixerを実行して、デフォルトデバイスのコントロールに関する概要を取得します。

(同じパッケージの)パラメーターなしでalsamixerを使用して、より視覚的な概要を取得することもできます。 F6を使用して、デバイスを表示および切り替えます。一般に、PulseAudioとハードウェアサウンドカードから選択できます。

次に、amixersetコマンドとともに使用して、ボリュームを設定します。たとえば、マスターチャネルを50%に設定するには:

amixer set Master 50%

Masterはコントロール名であり、パラメーターなしで実行したときに表示されるものと一致する必要があります。

%記号に注意してください。これがない場合、値は0-65536レベルとして扱われます。

PulseAudioがデフォルトのデバイスでない場合は、-Dスイッチを使用できます。

amixer -D Pulse set Master 50%

コメントで指摘された他の便利なコマンド:

音量を増減するには、数字の後に+/-を使用します。

amixer set Master 10%+
amixer set Master 10%-

ミュート、ミュート解除、またはミュート/ミュート解除の状態を切り替えるには、

amixer set Master mute
amixer set Master unmute
amixer set Master toggle

また、2つの異なるパーセンテージスケールが存在する可能性があることにも注意してください。デフォルトのrawと、一部のデバイスでは デシベルに基づくより自然なスケール であり、alsamixerでも使用されます。後者を使用するには、-Mを使用します。

最後に、PulseAudioのみに関心がある場合は、pactlを確認することをお勧めします(他の回答の1つを参照してください)。

88
Dario Seidl

ミュートするには:

amixer -D Pulse sset Master mute

ミュートを解除するには:

amixer -D Pulse sset Master unmute

音量を5%上げるには:

amixer -D Pulse sset Master 5%+

音量を5%下げるには:

amixer -D Pulse sset Master 5%-
33
Eric Terry

pactl / pacmdamixerとは異なり)ボリュームを100%以上増やすことができます:-)。

pactl set-sink-mute 0 toggle  # toggle mute, also you have true/false
pactl set-sink-volume 0 0     # mute (force)
pactl set-sink-volume 0 100%  # max
pactl set-sink-volume 0 +5%   # +5% (up)
pactl set-sink-volume 0 -5%   # -5% (down)

pavucontrolでは、100%を超える手動設定が可能です(alsamixerとは異なります)。

:異なるシンクの異なるホストで同じコマンドを共有する場合は、_の代わりに@DEFAULT_SINK@をシンクとして使用できます0

pactl set-sink-volume @DEFAULT_SINK@ +5%

pactl set-default-sink my-sink-nameを使用してデフォルトのシンクを設定します(pactl list short sinksを使用して名前をリストします)。

ソースaskubuntu.comwiki.archlinux.org

18
pevik

ボリュームが大きい:

amixer set Master 3%+

音量を下げる:

amixer set Master 3%-

ミュート切り替え:

amixer set Master toggle

i3 / sway のキーバインドの例、コマンドはexecの後にあります:

bindsym XF86AudioRaiseVolume exec amixer set Master 3%+
bindsym XF86AudioLowerVolume exec amixer set Master 3%-
bindsym XF86AudioMute exec amixer set Master toggle
bindsym Ctrl+$alt+Up  exec amixer set Master 3%+
bindsym Ctrl+$alt+Down exec amixer set Master 3%-
5
Alexander

pevik の答えはPulseAudioにとってほぼ正しいです。

  • 負のボリューム変更コマンドは、そのマイナス部分が別の(認識されない)オプションとして解釈されるため、エラーを生成します。オプションの解析をオフにする必要があります。たとえば、負の数の前のどこかでダブルマイナスを使用します。 「--5%」

  • 真のミュート状態は同じキーで切り替えることができるはずですが、ボリュームを固定値0に設定しているだけでは機能しないため、正しいコマンドは次のようになります。

pactl set-sink-mute @DEFAULT_SINK@ toggle

LE:最初のヒントが適用可能かどうかは、実行しているPulseAudioのバージョンやディストリビューションの他の何かに依存する可能性があります-Ubuntu 16では「-」なしで機能し、「-」を追加すると失敗することに気付きましたマイナスの割合の前。

3
Don Joe

ユーザーがデバイスをミュートした場合は、「ミュートを解除」する必要があります。そうでない場合、パーセンテージの設定は機能しますが、サウンドはまだオフです

amixer set 'Master' 100% unmute
/usr/bin/amixer set 'PCM' 100% unmute
3
Guest

amixerはうまくいきましたが、キーボードの音量を上げるボタンを押したときに得られる素晴らしいアニメーションが得られませんでした。

私はxteを使用して、コマンドラインからそのキーを直接押すことにしました。

ボリュームアップ:xte 'key 0x1008ff13'

ボリュームダウン: xte 'key 0x1008ff11'

ミュート: xte 'key 0x1008ff12'

xevを使用して、キーシム(その16進数)を見つけました。

Sudo apt-get install xbindkeys xautomation
xev

キーボードの音量大ボタンを押して、keysymを取得します。キーsymはシステムによって異なる可能性があるため、xevからそれを見つけることが最も信頼できる方法です。

結果は次のようになります。

KeyReleaseイベント、シリアル37、合成NO、ウィンドウ0x2c00001、ルート0xef、subw 0x0、時間6660080、(566,573)、ルート:(664,651)、状態0x0、キーコード123(keysym 0x1008ff13、XF86AudioRaiseVolume)、same_screen YES、XLookupStringは0バイト:XFilterEventが返す:False

2
Sami Start