プログラミングスクリプトを使用して音量を制御しようとしています。 Fedora 15、Ubuntu linuxで次のことをするにはどうすればよいですか?
注:ウェブUSBマイク/スピーカーとアナログマイク/スピーカーも使用しています。確実に全員に応募したいです。
amixer を使用できます。 UbuntuとDebianのalsa-utils
パッケージに含まれています。
パラメータなしでamixer
を実行して、デフォルトデバイスのコントロールに関する概要を取得します。
(同じパッケージの)パラメーターなしでalsamixer
を使用して、より視覚的な概要を取得することもできます。 F6を使用して、デバイスを表示および切り替えます。一般に、PulseAudioとハードウェアサウンドカードから選択できます。
次に、amixer
をset
コマンドとともに使用して、ボリュームを設定します。たとえば、マスターチャネルを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つを参照してください)。
ミュートするには:
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%-
pactl
/ pacmd
(amixer
とは異なり)ボリュームを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.com 、 wiki.archlinux.org 。
ボリュームが大きい:
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%-
pevik の答えはPulseAudioにとってほぼ正しいです。
負のボリューム変更コマンドは、そのマイナス部分が別の(認識されない)オプションとして解釈されるため、エラーを生成します。オプションの解析をオフにする必要があります。たとえば、負の数の前のどこかでダブルマイナスを使用します。 「--5%」
真のミュート状態は同じキーで切り替えることができるはずですが、ボリュームを固定値0に設定しているだけでは機能しないため、正しいコマンドは次のようになります。
pactl set-sink-mute @DEFAULT_SINK@ toggle
LE:最初のヒントが適用可能かどうかは、実行しているPulseAudioのバージョンやディストリビューションの他の何かに依存する可能性があります-Ubuntu 16では「-」なしで機能し、「-」を追加すると失敗することに気付きましたマイナスの割合の前。
ユーザーがデバイスをミュートした場合は、「ミュートを解除」する必要があります。そうでない場合、パーセンテージの設定は機能しますが、サウンドはまだオフです
amixer set 'Master' 100% unmute
/usr/bin/amixer set 'PCM' 100% unmute
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