Nattyを含めて、「マスター」の音量を常に切り替え(ミュート/ミュート解除)
amixer sset Master toggle
compizConfig-ManagerのEdgeバインディングにリンクしたコマンド。
Oneiricをインストールした後、コマンドはサウンドをミュートするだけで、ミュートを解除しません。ターミナルでも試してみましたが、機能しません。 'Mono:Playback 68 [78%] [-14.25dB] [off]'を '... [on]'に変更しますが、サウンドはミュートのままなので、パネルの「サウンドインジケータ」。
これを再び機能させるにはどうすればよいですか? Nattyから何が変わったのですか? 「サウンドインジケータ」が音量を切り替えるために使用するコマンドを知っていますか?
これは13.04でミュートとミュート解除の両方で機能します:
amixer -D Pulse set Master 1+ toggle
Pulseオーディオを指定して、ミュートを解除し、すべてのミュートを解除します。
このスクリプトを回避策として使用しています。
#!/bin/bash
CURRENT_STATE=`amixer get Master | egrep 'Playback.*?\[o' | egrep -o '\[o.+\]'`
if [[ $CURRENT_STATE == '[on]' ]]; then
amixer set Master mute
else
amixer set Master unmute
amixer set Front unmute
amixer set Headphone unmute
fi
amixer scontents
を呼び出す前にamixer set Master mute
のdiffを実行し、GUIを使用してすべてのミュートを解除してから、ミュートを解除する必要があるものを見つけました。
amixer scontents > ~/before
のサウンドの場合(すべてのサウンドチャンネルのステータスを含むファイルを取得します)amixer set Master toggle
で音量を切り替えますamixer scontents > ~/after
を使用して2つ目のシャネルステータスファイルを作成しますamixer set Master toggle
でサウンドを再度切り替えますamixer scontents > ~/afterafter
で3番目のファイルを作成しますこれで、通常のサウンドに使用されるサウンドチャンネルのステータスを示す3つのファイルがあり、amixer set Master toggle
によってミュートされ、同じコマンドで再びミュートを解除しても再びオンになりません。
ファイルを簡単に比較して、相違点(ミュートされ、その後ミュート解除されないチャネル)を確認するには、ソフトウェアセンターのmeld
を使用できます。それを開始し、3つのファイルを開き、スクロールバーでファイル間の違いがある場所を確認できます。見つかったシャネル名を使用して、上記のスクリプトに追加します。
サウンドをミュートして正しく切り替えることができませんでした。 CLIを使用してAmixer sset Masterトグルを入力するか、HPパビリオンメディアトグルキーを押すと、同じ結果が得られます。サウンドがオンで動作している場合、マスターチャネルとPCMチャネルが自動的にオフになります。その後、トグル(cliまたはキー)をもう一度押すと、常にマスターがオンになりますが、PCMはミュートされたままになります。私のリグ(Xubuntu Onericを実行しているHP Pavilion DV6)の場合、これはマスターがオンであっても音がオフであることを意味します。 CLIから実行した場合-同じ結果。 cliでPCMを切り替えると、マスターチャネルもオフになり、PCMが正しく切り替えられますが、再びオンになりません。
動作したスクリプトは次のとおりです。
#!/bin/bash
if amixer -c 0 get Master | grep -q off
then
amixer set Master unmute
amixer set PCM unmute
else
amixer set Master mute
fi
次に、Xubuntuキーバインド(設定>設定マネージャー>キーボード>アプリケーションショートカット)を使用してスクリプトを参照しました(sndfx.shと呼び、thunarで右クリックして実行可能にするチェックマークを付けて実行可能に設定しました)。次に、そのキーをタップして、HP Pavilionクイックキーを割り当てました。今、それは正しく切り替わります-素晴らしい。これが他の人の助けになることを願っています。
平和
間違っていなければ、他のミキサーチャンネルのミュートとミュート解除を引き起こすバグです。ミュートするには、試してください
ミキサーセットマスター0;
ミュートを解除するには
ミキサーセットマスター1%+;ミキサーセットマスター7dB +;
このスクリプトフラグメントを試してみてください...それは動作します
https://wiki.archlinux.org/index.php/PulseAudio#volume_control
Lircを操作するリモートコントロールの.lircrcのamixerを置き換える場合は、次の行を試すことができます。必ずxmacroをインストールしてください。ボリュームコントロールが再び機能するようになりました。
begin
prog = irexec
button = KEY_VOLUMEUP
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_MUTE
config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $DISPLAY
end
トリックは、ヘッドフォンが接続されているかどうかに応じて、スピーカーまたはヘッドフォンの状態をマスターチャンネルの状態に追従させることです。このスクリプトは、私の古いDell Latitudeラップトップでそれを実行します。
#!/bin/bash
amixer -q sset Master toggle
MASTER_STATE=`amixer get Master | awk -F"dB] " 'NR == 5 {print $2;}'`
HEADPHONES_PLUGGED=`amixer contents | grep -A 2 Headphone\ Jack | awk -F"=" 'NR == 3 {print $2;}'`
if [[ $HEADPHONES_PLUGGED == 'on' ]]; then
SLAVE="Headphone"
else
SLAVE="Speaker+LO"
fi
if [[ $MASTER_STATE == '[on]' ]]; then
amixer -q sset $SLAVE unmute
else
amixer -q sset $SLAVE mute
fi
コンピューター上のミキサーでチャンネルを確認し、それに応じてスレーブ定義を変更する必要がある場合があります。また、HEADPHONES_PLUGGED定義の「Headphone\Jack」grep文字列は別のものである必要があります。