ミュートキーはAlsaとPulseAudioをミュートしますが、Alsaのみミュートを解除します


20

キーボードのミュートキーを押すと、AlsaマスターチャンネルとPulseAudioマスターチャンネルの両方がミュートされ、もう一度押すとalsaマスターチャンネルのミュートが解除されるだけで、pulseaudioマスターチャンネルはミュートのままです。結果:音が出ません。どうすれば修正できますか?

回答:


11

次のコマンドを実行します:

amixer -D pulse set Master 1+ unmute

12
他のユーザーが知っているようにこのコマンドが何をするのか説明できますか?
モニカの復職-ζ--12年

1
その1+は何のためですか?amixerのmanページで説明を見つけることができませんでした。
jarno

あなたがハードウェアキーにコマンドを結合している場合トグル代わりにミュートを使用すると便利ですamixer -D pulse set Master 1+ toggle
ポル・アルバレスVecino

20

しかし、はるかに単純です。

amixer -D pulse set Master Playback Switch toggle

これをホットキーとして「ミュート\ミュート解除」に設定します。ボリュームコントロールはそのままにしておくことができます。

Mint 15 Mate-自分で考え出した、私にとってはうまくいく。


それが何であれ-Arch Linuxでうまく機能しました。ミュートとミュート解除のサウンドが正常に。デフォルトのコマンドではすべてのチャンネルのミュートが解除されないため、このコマンドをラップトップのミュートコマンドにバインドしました。THANKS
Erikas

これはUbuntu 14.04 + i3で機能しましたが、受け入れられた答えは機能しませんでした。
インゴバーク14年

1
amixer -D pulse set Master toggleしましょう。Amixerは、setコマンドまたはssetコマンドに単純なミキサーコントロール名を想定しています。完全なミキサーコントロール名を受け入れた場合でも、そのような複数語の名前を引用する必要があります。playback次のようにコマンドでオプションの修飾子を使用できますが、同様にキャプチャ機能がないamixer -D pulse set Master playback toggle場合は不要Masterです。オプションの修飾子を使用すると、システムがサラウンドサウンドに対応している場合、コマンドを適用するチャンネルを制御することもできます。
jarno

5

Linux Mint Debian Edition(201204)でMATEデスクトップを実行すると、同じ問題が発生しました。

「音量を上げる」アクションは、音量をミュート解除できませんでした。問題はPulseaudioにあることがわかりましたが、パッケージmate-media-gstreamermate-settings-daemon-gstreamerデフォルトでインストールされている場所です。インストールmate-media-pulseしてmate-settings-daemon-pulse(アンインストールmate-media-gstreamerしてmate-settings-daemon-gstreamer)およびtadam ...「ボリュームを上げる」アクションでボリュームのミュートを再び解除することができました。

これがあなたにも役立つことを願っています!


(Debian Jessieで)私のために働いたこのソリューションは永続的ですが、AFAIUのソリューションamixer -D pulse set Master xxxはワンショットであるか、ショートカットに手動でマッピングする必要があります。ここで提案されている解決策は、本来の方法のように見えます。
ジェローム

2

これは、pulseaudioの問題です。alsaまたはamixerのコマンドは、ミュート解除をパルスに適切に送信しません。alsaコマンドがミュート信号を送信する場合、それはトグルコマンドです(同じコマンドをミュート/ミュート解除に送信します)。

現在、pulseaudioでは、ミュートとミュート解除のコードが別々になっています!pulseaudioをアンインストールすることで問題は解決すると多くの人が報告していますが、一部の人にとっては実際には受け入れがたい答えではありません(私のように、pulseは多くのアプリに便利です)。

これを解決するには、スクリプトを作成する必要があります。

1- geditやマウスパッドなどのテキストエディターで新しい空のドキュメントを作成し、

2-このコードをドキュメントのSoruceのコードに貼り付けます:2

#!/bin/bash
#### Create ~/.pulse/mute if not exists
ls ~/.pulse/mute &> /dev/null
if [[ $? != 0 ]]
then
    echo "false" > ~/.pulse/mute
fi

####Create ~/.pulse/volume if not exists
ls ~/.pulse/volume &> /dev/null
if [[ $? != 0 ]]
then
    echo "65536" > ~/.pulse/volume
fi

CURVOL=`cat ~/.pulse/volume`     #Reads in the current volume
MUTE=`cat ~/.pulse/mute`          #Reads mute state

if [[ $1 == "increase" ]]
then
    CURVOL=$(($CURVOL + 3277)) #3277 is 5% of the total volume, you can change this to suit your needs.
    if [[ $CURVOL -ge 65536 ]]
    then
        CURVOL=65536        
    fi
elif [[ $1 == "decrease" ]]
then
    CURVOL=$(($CURVOL - 3277))
    if [[ $CURVOL -le 0 ]]
    then
        CURVOL=0        
    fi
elif [[ $1 == "mute" ]]
then
    if [[ $MUTE == "false" ]]
    then
        pactl set-sink-mute 0 1
        echo "true" > ~/.pulse/mute
    exit    
    else
        pactl set-sink-mute 0 0
        echo "false" > ~/.pulse/mute    
    exit
    fi
fi

pactl set-sink-volume 0 $CURVOL
echo $CURVOL > ~/.pulse/volume # Write the new volume to disk to be read the next time the script is run.

3-ファイルに「ボリューム」という名前を付けます(拡張子は不要)。ホームフォルダーのように、削除できる場所に置いてください。

4-ファイルを右クリックしてファイルを実行可能にし、[プロパティ]、[アクセス許可]タブの順に移動し、チェックボックスを使用して実行可能とマークすると、スクリプトが実行可能になります。実行可能ファイルとしてマークファイル

5-次に、コマンドをキーボードにリンクする必要があります。コードのコマンドは増加、減少、ミュートです。

キーボード設定に移動します-how-do-i-change-my-keyboard-shortcuts-in-xubuntu、キーボードショートカットエリアで、追加をクリックして開き、作成した「ボリューム」ファイルを開き、コマンドを追加します音量の後のコード、読み込み音量の増加、または音量ミュートなど。しかし、「/ home / username / volume mute」のようなコードファイルがある場所の場所

次に、キーを押してキーボードに割り当てます。または、キーが既に使用されて
いる場合は、ほとんどの場合、それらを見つけてコマンドを置き換えます。

主なショートカットは、おそらくXF86AudioRaiseVolume、XF86AudioLowerVolume、XF86AudioMuteと呼ばれます。ミュートが壊れているだけなので、最初にそれを変更することに集中してください。

バグ:1


私はしているXF86AudioMuteコマンドにマップされましたamixer set Master toggle。ボリュームキーの上げ下げは、amixerコマンドと同様にマッピングされます。
チャンホSuh

@ Chan-HoSuhあなたは同じ問題を抱えていますか?必要に応じて、このスクリプトのミュートコマンドを呼び出すことができます。何らかの理由で、パルスが私のマシンのミュートをインターセプトした場合、ミキサーはトグルを送信します。私は:(前に音量バーを示した同様のスクリプトを使用していたが、このミュートおよびミュート解除、と彼らは今、それはすべて良いことだので、トグルは、それが以前に設定された方法で、通知を持っている。
マテオ

スクリプトの小さな改善点の1つは、音量の増減時にミュートを強制的に解除することです。ボリュームに関するフィードバックを得るために、「paplay /usr/share/sounds/ubuntu/stereo/message.ogg」も追加しました。
dma 14年

以前は違っていたかもしれませんが、pulseaudio 4.0ではpactl set-sink-volume 0 +5%pactl set-sink-volume 0 -5%などのコマンドを使用して、pactl set-sink-mute 0 toggle音量を上げたり、下げたり、音量を切り替えたりできます。
ジャーノ

ええ@jarno、これは、それがそうではない関連するものとして/固定されているように、特定の問題(バグ)を解決するためだったが、何もないが動作するかどうか、それはちょっといいハックまま
マテオ


1

12.10で私のために働いた:

    #!/bin/sh
    amixer -c 0 sset Master,0 mute
    sleep 5
    amixer -D pulse set Master 1+ unmute

1

KDEおよびkmixユーザーの場合、このスクリプトを使用すると、視覚的なフィードバックが機能します。

#! /bin/bash

DBUS=qdbus 2> /dev/null

case "$1" in
  volup)
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo 0
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/increase_volume com.trolltech.Qt.QAction.trigger
        ;;
  voldn)
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo 0
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/decrease_volume com.trolltech.Qt.QAction.trigger
        ;;
  mute)
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/mute com.trolltech.Qt.QAction.trigger
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo $(${DBUS} org.kde.kmix /Mixers/0/Master_0 org.kde.KMix.Control.mute | sed 's/false/0/g;s/true/1/g')
        ;;
  *)
    echo "Usage: mixctl <volup|voldn|mute>" >&2
    exit 1
    ;;
esac

exit 0

使用法:

1)〜/ bin / mixctlとして保存します
2)ボリュームアップ/ボリュームダウンおよびミュートのデフォルトのkmixキーボードショートカットをマップ解除します
3)「ボリュームアップ」、「ボリュームダウン」、「ミュート」という名前の3つの新しいカスタムキーボードショートカットを作成します
- >ショートカットタイプ:コマンド
->コマンドは〜/ bin / mixctl volup〜/ bin / mixctl voldnおよび〜/ bin / mixctl muteをそれぞれ使用するため


1

XFCE 4.10にアップグレードされた複数のXubuntu 12.04マシンで同じ問題が発生しました。コマンドラインから(またはbashスクリプトを使用して)この問題を解決する非常に簡単な方法を次に示します。

ストップギャップスクリプトを提供する以前のソリューションとは異なり、このソリューションはミュート/ミュート解除ボタンの機能を完全に復元します。

次の2つのコマンドを1回発行するだけで、問題を完全に解決できます。

$ xfconf-query --channel xfce4-mixer --property /active-card --set PlaybackInternalAudioAnalogStereoPulseAudioMixer --reset
$ xfconf-query --create --channel xfce4-keyboard-shortcuts --property /commands/custom/XF86AudioMute --type string --set 'amixer -D pulse set Master 1+ toggle'

1

このフォーラムで私にとってうまくいく簡単なソリューションを見つけました。詳細には、これを/etc/asound.conf以下に追加する必要があります。

pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}

次に、次のコマンドを使用して、ミュートキーのキーボードショートカットを設定します。

amixer set Master toggle

0

キーボード設定を使用して、ミュートボタンを設定して、ここにあるコマンドを実行できます。このリンクに記載されている最初の方法は役に立たなかったが、2番目の方法はXFCE4に最適です$ pactl set-sink-mute 0 toggle。マウスクリックでコマンドを実行するスクリプトまたはランチャーを作成することもできます。

参考までに、Cinnamon(およびおそらく他のgnomeベースのデスクトップ)のようなものを使用している場合、cinnamonのサウンドアプレットは音量がミュートされていることを認識するため、user197761の上記の提案はより良いamixer -D pulse set Master Playback Switch toggleようです:私のじゃない。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.