web-dev-qa-db-ja.com

ミキサーでサウンドを切り替えるにはどうすればよいですか?

Nattyを含めて、「マスター」の音量を常に切り替え(ミュート/ミュート解除)

amixer sset Master toggle

compizConfig-ManagerのEdgeバインディングにリンクしたコマンド。

Oneiricをインストールした後、コマンドはサウンドをミュートするだけで、ミュートを解除しません。ターミナルでも試してみましたが、機能しません。 'Mono:Playback 68 [78%] [-14.25dB] [off]'を '... [on]'に変更しますが、サウンドはミュートのままなので、パネルの「サウンドインジケータ」。

これを再び機能させるにはどうすればよいですか? Nattyから何が変わったのですか? 「サウンドインジケータ」が音量を切り替えるために使用するコマンドを知っていますか?

48
joschi

これは13.04でミュートとミュート解除の両方で機能します:

amixer -D Pulse set Master 1+ toggle

Pulseオーディオを指定して、ミュートを解除し、すべてのミュートを解除します。

51
David C. Bishop

このスクリプトを回避策として使用しています。

#!/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を使用してすべてのミュートを解除してから、ミュートを解除する必要があるものを見つけました。


  1. タイプがamixer scontents > ~/beforeのサウンドの場合(すべてのサウンドチャンネルのステータスを含むファイルを取得します)
  2. 次に、amixer set Master toggleで音量を切り替えます
  3. amixer scontents > ~/afterを使用して2つ目のシャネルステータスファイルを作成します
  4. 最初の切り替えコマンドの前のレベルに音量を戻すことになっているamixer set Master toggleでサウンドを再度切り替えます
  5. amixer scontents > ~/afterafterで3番目のファイルを作成します

これで、通常のサウンドに使用されるサウンドチャンネルのステータスを示す3つのファイルがあり、amixer set Master toggleによってミュートされ、同じコマンドで再びミュートを解除しても再びオンになりません。

ファイルを簡単に比較して、相違点(ミュートされ、その後ミュート解除されないチャネル)を確認するには、ソフトウェアセンターのmeldを使用できます。それを開始し、3つのファイルを開き、スクロールバーでファイル間の違いがある場所を確認できます。見つかったシャネル名を使用して、上記のスクリプトに追加します。

16
Jim Hunziker

サウンドをミュートして正しく切り替えることができませんでした。 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クイックキーを割り当てました。今、それは正しく切り替わります-素晴らしい。これが他の人の助けになることを願っています。

平和

5
user46082

間違っていなければ、他のミキサーチャンネルのミュートとミュート解除を引き起こすバグです。ミュートするには、試してください

ミキサーセットマスター0;

ミュートを解除するには

ミキサーセットマスター1%+;ミキサーセットマスター7dB +;

2
Meme Notyou

このスクリプトフラグメントを試してみてください...それは動作します

https://wiki.archlinux.org/index.php/PulseAudio#volume_control

2
user33392

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
1
Jakob

トリックは、ヘッドフォンが接続されているかどうかに応じて、スピーカーまたはヘッドフォンの状態をマスターチャンネルの状態に追従させることです。このスクリプトは、私の古い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文字列は別のものである必要があります。

0
loop