amixer コマンドでミュート解除が機能しないのはなぜですか?

amixer コマンドでミュート解除が機能しないのはなぜですか?

Linux のターミナルで amixer コマンドを使用してミュートとミュート解除を試みています。

ミュートするために使用するコマンド:

 amixer sset 'Master' mute

そして

amixer set Master mute

両方とも機能しました...

しかし、ミュートを解除しようとすると:

amixer sset 'Master' unmute

そして

amixer set Master unmute

動作せず、音量はミュートのままです。

両方のミュート解除コード行を試したところ、ターミナルに次の出力が返されました。

シンプルなミキサー コントロール 'マスター'、0 機能: pvolume pvolume-joined pswitch pswitch-joined 再生チャンネル: モノラル 制限: 再生 0 - 87 モノラル: 再生 87 [100%] [0.00dB] [オン]

amixer をミュート解除するにはどうすればいいですか? また、なぜオフに切り替わらないのですか? Linux OS* で音量を制御するには、amixer の方が優れたコマンドですか? そうでない場合、amixer の代わりにどのツールが優れていますか?

*注: Linux OS 全般。これは、サウンドのミュート/ミュート解除における非互換性やコード変動の可能性が低く、すべての Linux ディストリビューションで動作するはずです。

答え1

これから役職アルヴィダスはこう書いている。

何らかの理由で、ミュートは正常に機能しますが、ミュート解除や切り替えは機能しません。さらに調査したところ、マスター チャンネルをミュートすると、「PCM」および「マスター モノ」チャンネルもミュートされることがわかりました。マスターのミュートを解除しても、これら 2 つのチャンネルのミュートは解除されません。

私の場合、Ubuntu 14.04 (qtile WM) でミュート解除するには次のようにします:

pactl set-sink-mute 0 0

ミュートするには:

pactl set-sink-mute 0 1

更新しました:

この問題に関する報告はたくさんあるバグ #1026331そしてバグ #878986 Launchpad でマスターをミュート/切り替える場合:

amixer set Master mute

他のチャンネル(私の場合はヘッドフォンとスピーカー)もミュートされます。ただし、マスターのミュートを解除/切り替えると:

amixer set Master unmute

他のチャンネルはミュートされたままですが、ヘッドフォンとスピーカーのチャンネルのミュートを解除すると音が戻ります。

amixer set Master unmute
amixer set Headphone unmute
amixer set Speaker unmute

答え2

xdotool は時々面倒なことがありますが、幸いなことに、PulseAudio では音量調節とミュートのためのコマンドが提供されるようになりました。

pactl set-sink-mute 0 toggleミュートを切り替えるには、次のコマンドを試してください。

ソース:https://wiki.archlinux.org/index.php/PulseAudio#キーボード音量コントロール

答え3

上記の既存の回答はすべてpactlまたはを使用しますがxdotool、ここではamixer具体的な答え:

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

amixer -D pulse set Master toggle

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

  • 13.04から17.10、そして最新のUbuntuとDebianまで動作します。
  • 元の回答には がありました1+が、その理由は不明であり、「パラメータなしでもさらにうまく機能します1+
  • 一部の人は、amixer set Master toggle動作し、Debian 10 でも動作することが確認されました。

答え4

amixer -D pulse set Master 1+ toggle

関連情報