Mit der Stummschalttaste werden Alsa und PulseAudio stummgeschaltet, jedoch nur Alsa


19

Wenn ich die Stummschalttaste auf meiner Tastatur drücke, werden sowohl der Alsa-Masterkanal als auch der PulseAudio-Masterkanal stummgeschaltet. Durch erneutes Drücken wird nur die Stummschaltung des alsa-Masterkanals aufgehoben, der pulseaudio-Masterkanal bleibt stummgeschaltet. Ergebnis: kein Ton. Wie behebe ich das?

Antworten:


11

Führen Sie diesen Befehl aus:

amixer -D pulse set Master 1+ unmute

12
Können Sie erklären, was dieser Befehl für andere Benutzer bedeutet?
Wiedereinsetzung von Monica - ζ--

1
Wofür ist das 1+? Ich konnte keine Erklärung in der Manpage von amixer finden.
Jarno

Das Umschalten statt das Aufheben der Stummschaltung ist nützlich, wenn Sie den Befehl an einen Hardwareschlüssel bindenamixer -D pulse set Master 1+ toggle
Pol Alvarez Vecino

20

es ist jedoch viel einfacher.

amixer -D pulse set Master Playback Switch toggle

Stellen Sie dies als Hotkey auf "Mute \ Unmute". Lautstärkeregler können so belassen werden, wie sie sind.

Mint 15 Mate - es selbst herausgefunden, funktioniert gut für mich.


Was auch immer es ist - hat auf Arch Linux gut funktioniert. Gedämpfter und nicht gedämpfter Ton erfolgreich. Jetzt habe ich diesen Befehl auf Mute-Befehl auf meinem Laptop festgelegt, da ein Standardbefehl nicht alle Kanäle stummschaltet. DANKE
Erikas

Dies funktionierte für mich mit Ubuntu 14.04 + i3, die akzeptierte Antwort funktionierte nicht.
Ingo Bürk

1
amixer -D pulse set Master toggleWird besorgt. Amixer erwartet einen einfachen Mixer-Control-Namen für den Befehl set oder sset, und selbst wenn er einen vollständigen Mixer-Control-Namen akzeptiert, müssten Sie einen solchen Namen mit mehreren Wörtern angeben. Sie können den optionalen Modifikator playbackin dem Befehl wie amixer -D pulse set Master playback togglefolgt verwenden:, dies ist Masterjedoch nicht erforderlich , wenn keine Erfassungsfunktionen vorhanden sind. Mit optionalen Modifikatoren können Sie auch steuern, auf welche Kanäle der Befehl angewendet wird, wenn Ihr System Surround-Sound-fähig ist.
Jarno

5

Ich hatte das gleiche Problem beim Ausführen des MATE-Desktops auf einer Linux Mint Debian Edition (201204).

Die Aktion "Lautstärke erhöhen" konnte die Lautstärke nicht aufheben. Ich erkannte, dass das Problem mit Pulseaudio war, aber das Paket mate-media-gstreamerund mate-settings-daemon-gstreamerwo standardmäßig installiert. Durch die Installation von mate-media-pulseund mate-settings-daemon-pulse(das deinstalliert mate-media-gstreamerund mate-settings-daemon-gstreamer) und Tadam ... "Lauter" Aktion konnte die Lautstärke wieder aufgehoben werden!

Ich hoffe das klappt auch bei dir!


Arbeitete für mich (unter Debian Jessie) und diese Lösung ist permanent, wohingegen AFAIU-Lösungen amixer -D pulse set Master xxxnur einen Schuss beinhalten oder manuell einer Verknüpfung zugeordnet werden müssen. Die hier vorgeschlagene Lösung sieht so aus, wie sie sein soll.
Jérôme,

2

Es ist ein Problem mit pulseaudio, die Befehle für alsa oder amixer senden die Stummschaltung für pulse nicht korrekt. Wenn alsa-Befehle ein Stummschaltungssignal senden, handelt es sich um einen Umschaltbefehl (senden Sie denselben Befehl an Mute / Unmute).

Jetzt haben sie in pulseaudio getrennten Mute- und Unmute-Code! Viele berichten, dass die Deinstallation von pulseaudio das Problem lösen wird, aber für manche ist dies keine akzeptable Antwort (wie für mich, da pulse für viele Apps nützlich ist).

Um dies zu lösen, müssen wir ein Skript erstellen,

1- Erstellen Sie ein neues leeres Dokument in einem Texteditor wie gedit oder mousepad.

2- Fügen Sie diesen Code in das Dokument ein, Soruce of Code: 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- Nennen Sie die Datei "Volume" (keine Erweiterung erforderlich) und platzieren Sie sie an einer Stelle, an der Sie sie finden können. Sie wird nicht wie Ihr privater Ordner gelöscht

4- Machen Sie die Datei ausführbar, indem Sie mit der rechten Maustaste auf die Datei klicken, auf Eigenschaften und dann auf die Registerkarte Berechtigungen klicken und das Kontrollkästchen verwenden, um sie als ausführbar zu markieren. Dadurch kann das Skript ausgeführt werden. mark-file-as-executible-gui

5- Als nächstes müssen wir die Befehle mit der Tastatur verknüpfen. Die Befehle für den Code sind Erhöhen, Verringern und Stummschalten.

Gehen Sie also zu den Tastatureinstellungen - wie-ändere-ich-meine-Tastaturkürzel-in-xubuntu. Klicken Sie im Bereich Tastaturkürzel auf Hinzufügen, öffnen Sie die von uns erstellte "Volume" -Datei und fügen Sie dann den Befehl hinzu für den Code nach der Lautstärke, zum Erhöhen der Lautstärke oder zum Stummschalten der Lautstärke ect. aber mit dem Ort, an dem sich die Code-Datei befindet, wie "/ home / username / volume mute"

Weisen Sie es dann der Tastatur zu, indem Sie die Taste drücken. Wenn die Taste bereits verwendet wird,
finden Sie sie höchstwahrscheinlich und ersetzen Sie den Befehl.

Die Tastenkürzel heißen wahrscheinlich XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioMute . Da nur die Stummschaltung unterbrochen ist, konzentrieren Sie sich darauf, diese zuerst zu ändern.

Fehler: 1


Ich habe gerade XF86AudioMuteden Befehl zugeordnet amixer set Master toggle. Die Tasten zum Erhöhen und Verringern der Lautstärke werden ähnlich wie amixerBefehle zugeordnet.
Chan-Ho Suh

@ Chan-HoSuh hast du das gleiche Problem? Sie können einfach den Befehl mute dieses Skripts aufrufen, wenn Sie möchten. Aus irgendeinem Grund hat pulse die Stummschaltung auf meinem Computer unterbrochen. Der Amixer sendet eine Umschaltung, die so interpretiert wird, dass nur die Stummschaltung durch einen Impuls oder nur das Abfangen des Tastendrucks erfolgt. Ich war mit einem ähnlichen Skript , das ein Volumen bar vor :( zeigte, aber diese Stumme und hebt die Stummschaltung, und sie jetzt die Benachrichtigungen, so dass es ist alles gut, der Knebel ist , wie es zuvor eingerichtet wurde.
Mateo

Eine kleine Verbesserung des Skripts besteht darin, die Stummschaltung auch beim Erhöhen / Verringern der Lautstärke zu erzwingen. Ich habe auch 'paplay /usr/share/sounds/ubuntu/stereo/message.ogg' hinzugefügt, um Feedback zur Lautstärke zu erhalten.
dma

Vielleicht war es vorher anders, aber mit pulseaudio 4.0 können Sie Befehle wie pactl set-sink-volume 0 +5%, pactl set-sink-volume 0 -5%und verwenden pactl set-sink-mute 0 toggle, um die Lautstärke zu erhöhen, zu verringern und die Lautstärke umzuschalten .
Jarno

@jarno ja, dies war, um ein bestimmtes Problem zu lösen (Fehler), so dass es wahrscheinlich behoben wird / nicht als relevant, aber es bleibt ein netter kleiner Hack, wenn nichts anderes funktioniert
Mateo


1

Arbeitete für mich am 12.10:

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

1

Wenn Sie dieses Skript für KDE- und kmix-Benutzer verwenden, funktioniert das visuelle Feedback weiterhin:

#! /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

Verwendung:

1) speichern Sie es als ~ / bin / mixctl
2) Unmap die Standard kmix Tastaturkürzel für Lauter / Leiser und Mute
3) Erstellen Sie drei neue benutzerdefinierte Tastenkombinationen genannt 'Volume Up', 'Volume Down' und 'Mute'
- > Verknüpfungstyp: Befehl
-> da die Befehle ~ / bin / mixctl volup , ~ / bin / mixctl voldn und ~ / bin / mixctl mute verwenden


1

Ich hatte das gleiche Problem auf mehreren Xubuntu 12.04-Computern, die auf XFCE 4.10 aktualisiert wurden. Hier ist eine sehr schnelle Möglichkeit, dieses Problem über die Befehlszeile (oder mit einem bashSkript) zu lösen .

Im Gegensatz zu früheren Lösungen, die Skripte mit Unterbrechungen enthalten, wird bei dieser Lösung die Funktion der Stummschalttaste vollständig wiederhergestellt.

Geben Sie einfach die folgenden zwei Befehle ein Mal ein, um das Problem ein für alle Mal zu beheben:

$ 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

Ich habe eine einfache Lösung gefunden, die für mich in diesem Forum gut funktioniert . Im Detail müssen Sie dies hinzufügen zu /etc/asound.conf:

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

Legen Sie anschließend eine Tastenkombination für die Stummschalttaste fest. Der Befehl lautet:

amixer set Master toggle

0

Sie können die Tastatureinstellungen verwenden, um die Stummschalttaste so einzustellen, dass der HIER gefundene Befehl ausgeführt wird . Obwohl die auf diesen Link aufgeführten Methode für mich nutzlos war, arbeitet die zweite für XFCE4 groß: $ pactl set-sink-mute 0 toggle. Sie können auch ein Skript oder einen Starter erstellen, um den Befehl per Mausklick auszuführen.

FYI, wenn Sie so etwas wie Zimt verwenden (und wahrscheinlich auch andere gnome-basierten Desktops) user197761 der obigen Vorschlag besser scheint, als Zimt Sound - Applet das Volumen erkennt stumm geschaltet ist: amixer -D pulse set Master Playback Switch toggle(wenn Sie diese letztere Befehl, bitte seine / ihre Antwort upvote, nicht mein.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.