Klawisz wyciszenia wycisza Alsa i PulseAudio, ale wycisza tylko Alsa

20

Kiedy naciskam klawisz wyciszenia na klawiaturze, zarówno główny kanał Alsa, jak i główny kanał PulseAudio zostają wyciszone, ponowne naciśnięcie powoduje jedynie wyciszenie głównego kanału alsa, główny kanał pulseaudio zostaje wyciszony. Wynik: brak dźwięku. Jak to naprawić?

Alfred Rupp
źródło

Odpowiedzi:

11

Uruchom to polecenie:

amixer -D pulse set Master 1+ unmute
Pajko
źródło
12
Czy możesz wyjaśnić, co robi to polecenie, aby inni użytkownicy wiedzieli?
Przywróć Monikę - ζ--
1
Do czego służy ten 1+? Nie mogłem znaleźć wyjaśnienia na stronie podręcznika użytkownika amixer.
jarno
użycie przełącznika zamiast wyciszenia jest przydatne, jeśli amixer -D pulse set Master 1+ toggle
wiążesz
20

jest to jednak znacznie prostsze.

amixer -D pulse set Master Playback Switch toggle

ustaw to jako skrót na „Wycisz \ Wyłącz wyciszenie”. regulatory głośności można pozostawić bez zmian.

Mint 15 Mate - sam to rozgryzłem, działa dobrze dla mnie.

użytkownik197761
źródło
Cokolwiek to jest - działało dobrze na Arch Linux. Pomyślnie wyciszono i wyciszono dźwięk. Teraz powiązałem to polecenie z poleceniem wyciszenia na moim laptopie, ponieważ domyślny nie wycisza wszystkich kanałów. DZIĘKI
Erikas,
To działało dla mnie z Ubuntu 14.04 + i3, zaakceptowana odpowiedź nie działała.
Ingo Bürk
1
amixer -D pulse set Master togglezrobi. Amixer oczekuje prostej nazwy kontrolki miksera dla polecenia set lub sset, a nawet jeśli zaakceptowałby pełną nazwę kontrolki miksera, musiałbyś podać taką nazwę złożoną z wielu słów. Możesz użyć opcjonalnego modyfikatora playbackw komendzie w następujący sposób:, amixer -D pulse set Master playback toggleale nie jest to konieczne, jeśli Masternie ma również możliwości przechwytywania. Za pomocą opcjonalnych modyfikatorów możesz również kontrolować, które kanały dotyczą polecenia, jeśli Twój system obsługuje dźwięk przestrzenny.
jarno
5

Miałem ten sam problem z uruchomieniem pulpitu MATE na Linux Mint Debian Edition (201204).

Działanie „Zwiększenie głośności” nie było w stanie wyciszyć głośności. Uświadomiłem sobie, że problem dotyczy Pulseaudio, ale pakiet mate-media-gstreameri mate-settings-daemon-gstreamermiejsce instalacji są domyślnie. Instalując mate-media-pulsei mate-settings-daemon-pulse(który odinstalowałem mate-media-gstreameri mate-settings-daemon-gstreamer) i tadam ... Akcja „Zwiększ głośność” była w stanie ponownie wyciszyć głośność!

Mam nadzieję, że to również zadziała dla Ciebie!

gari gari
źródło
Pracowałem dla mnie (na Debian Jessie) i to rozwiązanie jest trwałe, podczas gdy rozwiązania AFAIU obejmujące amixer -D pulse set Master xxxjeden strzał lub wymagają ręcznego mapowania na skrót. Proponowane tutaj rozwiązanie wygląda tak, jak powinno być.
Jérôme,
2

Jest to problem z pulseaudio, polecenia dla alsa lub amixer nie wysyłają poprawnie wyciszenia na puls. Gdy polecenia alsa wysyłają sygnał wyciszenia, jest to polecenie przełączania (wysyłaj to samo polecenie, aby wyciszyć / anulować wyciszenie).

Teraz w pulseaudio mają osobne wyciszenie i wyłączenie wyciszenia kodu! Wielu twierdzi, że odinstalowanie pulseaudio rozwiąże problem, ale dla niektórych nie jest to naprawdę akceptowalna odpowiedź (jak ja, ponieważ puls jest przydatny w wielu aplikacjach).

Aby rozwiązać ten problem, musimy stworzyć skrypt,

1- Utwórz nowy pusty dokument w edytorze tekstów, takim jak gedit lub podkładka pod mysz,

2- Wklej ten kod do dokumentu, Soruce kodu: 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- Nazwij plik „wolumin” (nie wymaga rozszerzenia), umieść go w miejscu, w którym można go znaleźć, i nie usuniesz go tak, jak folder domowy

4- Ustaw plik jako wykonywalny, klikając plik prawym przyciskiem myszy, przejdź do Właściwości, a następnie zakładkę Uprawnienia i zaznacz pole wyboru, aby oznaczyć plik jako wykonywalny, co pozwoli na uruchomienie skryptu. mark-file-as-executible-gui

5- Następnie musimy połączyć polecenia z klawiaturą, polecenia dla kodu są zwiększane, zmniejszane i wyciszane.

Przejdź do ustawień klawiatury - jak-i-zmienić-moją-klawiaturę-skróty-w-xubuntu , W obszarze skrótów klawiaturowych kliknij dodaj, a następnie otwórz, otwórz plik „wolumin”, który utworzyliśmy, a następnie dodaj polecenie dla kodu po głośności, odczytu zwiększenia głośności lub wyciszenia głośności ect. ale z lokalizacją, gdzie znajduje się przed nim plik kodu, np. „/ home / nazwa użytkownika / wyciszenie głośności”

Następnie przypisz go do klawiatury, naciskając klawisz, lub jeśli klawisz jest już używany,
~ Najprawdopodobniej przypadek ~ znajdź je i zastąp polecenie.

Skróty klawiszowe są prawdopodobnie nazywane XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioMute . Ponieważ tylko wyciszenie jest zepsute, skoncentruj się najpierw na zmianie.

Błąd: 1

Mateo
źródło
Właśnie XF86AudioMutezmapowałem do polecenia amixer set Master toggle. Klawisze podnoszenia i zmniejszania głośności są odwzorowywane podobnie do amixerpoleceń.
Chan-Ho Suh
@ Chan-HoSuh masz ten sam problem? możesz po prostu wywołać polecenie wyciszenia tego skryptu, jeśli chcesz, z jakiegoś powodu puls przechwytywał wyciszenie na mojej maszynie, amixer wysyła przełącznik, który jest interpretowany jako wyciszenie za pomocą impulsu lub po prostu przechwytywanie naciśnięcia klawisza? Używałem podobnego skryptu, który wcześniej pokazywał pasek głośności :(, ale to wycisza i wyłącza wyciszenie, a teraz mają powiadomienia, więc wszystko jest w porządku, przełączanie jest takie, jak wcześniej.
Mateo
Jednym drobnym ulepszeniem skryptu jest również wymuszenie wyciszenia przy zwiększaniu / zmniejszaniu głośności. Dodałem również „paplay /usr/share/sounds/ubuntu/stereo/message.ogg”, aby uzyskać informacje zwrotne na temat głośności.
dma
Może to był inny wcześniej, ale z PulseAudio 4.0 można użyć polecenia jak pactl set-sink-volume 0 +5%, pactl set-sink-volume 0 -5%i pactl set-sink-mute 0 toggleaby zwiększyć głośność, zmniejszenia głośności i przełącznik objętości odpowiednio.
jarno
@jarno tak, miało to rozwiązać konkretny problem (błąd), więc prawdopodobnie został naprawiony / nie tak istotny, ale pozostaje niezłym małym hackiem, jeśli nic więcej nie działa
Mateo
1

Pracował dla mnie 12.10:

    #!/bin/sh
    amixer -c 0 sset Master,0 mute
    sleep 5
    amixer -D pulse set Master 1+ unmute
Brendan
źródło
1

W przypadku użytkowników KDE i kmix, jeśli użyjesz tego skryptu, nadal będziesz mieć wizualną informację zwrotną:

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

Stosowanie:

1) Zapisz jako ~ / bin / mixctl
2) Usuń mapowanie domyślnych skrótów klawiaturowych kmix dla Zwiększania / zmniejszania głośności i wyciszania
3) Utwórz trzy nowe niestandardowe skróty klawiaturowe o nazwie „Zwiększanie głośności”, „Zmniejszanie głośności” i „Wyciszanie”
- > rodzaj skrótu: polecenie
-> jak używać polecenia ~ / bin / mixctl Volup , ~ / bin / mixctl volDn i ~ / bin / mixctl wyciszenia odpowiednio

EleotleCram
źródło
1

Miałem ten sam problem na wielu maszynach Xubuntu 12.04, które zostały uaktualnione do XFCE 4.10. Oto bardzo szybki sposób rozwiązania tego problemu z wiersza poleceń (lub za pomocą bashskryptu).

W przeciwieństwie do poprzednich rozwiązań, które oferują skrypty zatrzymania przerwy, to rozwiązanie w pełni przywraca funkcję przycisku wyciszania / wyłączania wyciszenia.

Wystarczy wydać następujące dwa polecenia raz, aby rozwiązać problem raz na zawsze:

$ 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'
Serge Stroobandt
źródło
1

Na tym forum znalazłem proste rozwiązanie, które działa dobrze dla mnie . Szczegółowo musisz dodać to do /etc/asound.conf:

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

A następnie ustaw skrót klawiszowy dla klawisza wyciszenia, używając polecenia:

amixer set Master toggle
Trung Ta
źródło
0

Możesz użyć ustawień klawiatury, aby ustawić przycisk wyciszenia w celu wykonania polecenia TUTAJ . Chociaż pierwsza metoda wymienione na ten link był bezużyteczny dla mnie, drugi działa świetnie dla xfce4: $ pactl set-sink-mute 0 toggle. Możesz także utworzyć skrypt lub program uruchamiający, aby wykonać polecenie po kliknięciu myszą.

Do twojej wiadomości, jeśli używasz czegoś takiego jak Cinnamon (i prawdopodobnie inne komputery oparte na gnome) powyższa sugestia użytkownika 197761 wydaje się lepsza, ponieważ aplet dźwiękowy cynamonu rozpoznaje, że głośność jest wyciszona: amixer -D pulse set Master Playback Switch toggle(jeśli podoba ci się to drugie polecenie, proszę głosować jego odpowiedź, nie moje.)

TSJNachos117
źródło