Sesi karıştırıcı ile nasıl değiştiririm?


48

Natty dahil olmak üzere, her zaman 'Master' ses seviyesini,

amixer sset Master toggle

CompizConfig-Manager'da bir kenar ciltlemesine bağladığım komut.

Şimdi Oneiric'i kurduktan sonra komut sadece sesi kapatıyor ama açmıyor. Terminalde bile denedim ama işe yaramadı. ' Mono: Oynatma 68 [78%] [-14.25dB] [kapalı] ' - '... [açık]' olarak değiştirir, ancak sesin sesini kısar ve bu sayede 'ses göstergesi' üzerinden sesini açmam gerekir. panel.

Bunun tekrar çalışmasını nasıl sağlayabilirim? Natty'den beri ne değişti? Ses göstergesini değiştirmek için 'ses göstergesinin' kullandığı komutu bilen var mı?


Ve daha da garip hale getirmek için: diğer dizüstü bilgisayarımda, yeni bir yükleme yerine Natty'den Oneiric'e yükselttiğim yerde hala çalışıyor.
joschi

Yanıtlar:


51

Bu benim için 13.04'te çalışır, hem dilsiz hem de dilsiz:

amixer -D pulse set Master 1+ toggle

Sesi açmayı, her şeyi açmayı kesmek için atım sesini belirtir.


Lubuntu'da çalıştı 13.10. WEEKS için bunu arıyorum!
luisgonzalez

1
EDIT: Sadece terminalde bir komut olarak çalışırken işe yaradı. Ancak, önemli bir bağlayıcı olarak yapılandırmaya çalıştığımda şunu anlıyorum: Giriş dizini erişilebilir değil: İzin reddedildi ALSA lib pulse.c: 243: (pulse_connect) PulseAudio: Bağlanamadı: Bağlantı reddedildi amixer: Mikser ekleme pulse hatası: Bağlantı reddedildi
luisgonzalez

5
1+Parametre olmadan daha iyi çalışır .
J. Katzwinkel

3
Hala 17.10'da (sanatsal) çalışıyor. Bunu i3 medya bağlantıları için kullanıyorum:bindsym XF86AudioMute exec --no-startup-id amixer -D pulse set Master 1+ toggle
Joel

2
1+ nedeni nedir?
Gayan Weerakutti

16

Bu komut dosyasını geçici çözüm olarak kullanıyorum:

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

Ben bir diff yaptılar amixer scontentsçağırmadan önce amixer set Master muteve onu çağıran ve sesi açıldı olması gerekiyordu anlamaya GUI kullanarak her şeyi yoksaymaktan vazgeçme sonra.


  1. Ses açıkken amixer scontents > ~/before(tüm ses kanallarının durumunu gösteren bir dosya alırsınız)
  2. Ardından ses seviyesi ile geçiş yap amixer set Master toggle
  3. İle ikinci bir chanel durum dosyası oluşturun amixer scontents > ~/after
  4. Sesi tekrar amixer set Master toggleaçıp, ilk toggle komutundan önce sesi tekrar seviyeye getirmesi gereken
  5. İle üçüncü bir dosya oluşturun amixer scontents > ~/afterafter

Şimdi size, normal ses için kullanılan, sessiz olan amixer set Master toggleve aynı komutla tekrar açarak tekrar açılmayan ses kanallarının durumunu söyleyen üç dosyanız var .

Dosyaları kolayca karşılaştırmak ve farklılıkları görmek için (sessiz olan ve sonradan açılmayan kanallar) meldYazılım Merkezi'nden kullanabilirsiniz. Başlat, üç dosyayı aç ve kaydırma çubuğunda dosyalar arasında farkların nerede olduğunu görebilirsiniz. Bunları yukarıda açıklanan komut dosyasına eklemek için bulunan chanel adlarını kullanın.


Ne yazık ki senaryo sadece sesi
kapatıyor

Bu muhtemelen, açılmış olması gereken şeylerin sistemimdeki gibi "Ön" ve "Kulaklık" olarak adlandırılmaması nedeniyledir.
Jim Hunziker

Ayrıca bir fark yarattım ve komut dosyasının bilgisayarımda çalışması için neyin eksik olduğunu öğrendim, şimdi çalışıyor. Çok teşekkürler.
joschi

5

Doğru şekilde geçiş yapmak için ses kısma alamadım. CLI kullanıp Amixer sset Master toggle yazıp HP Pavillion media toggle key tuşuna basıp basmasam da aynı sonucu alırım: Ses açık ve çalışıyorsa, Master kanalı ve PCM kanalını otomatik olarak kapatır. Sonra tekrar aç / kapa düğmesine bastığımda (cli veya key) HER ZAMAN Master'ı açar, ancak PCM'yi sessiz bırakır. Donanımım için (Xubuntu Oneric çalıştıran HP Pavilion DV6), bu, master açıkken bile sesin kapalı olduğu anlamına gelir. CLI'den çalıştırıldığında - aynı sonuçlar. Cli ile birlikte PCM'yi değiştirirsem, ana kanalı da kapatır ve PCM'yi doğru bir şekilde değiştirmesine rağmen tekrar açmaz.

Çalışan senaryo şuydu:

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

Sonra betiğe göz atmak için Xubuntu tuşlarını (ayarlar> ayarlar yöneticisi> klavye> uygulama kısayolları) kullandım (bunu sndfx.sh olarak adlandırdım ve thunar'a sağ tıklayıp çalıştırılabilir hale getirilmiş izinler altında çalıştırılabilir hale getirerek). Sonra HP Pavilion hızlı anahtarını bu tuşa dokunarak atadım. Şimdi, doğru geçiş yapar - Başar. Umarım bu başka birine yardımcı olur.

Barış


2

Yanılmıyorsam, diğer mikser kanallarının sesini kapatıp açmasına neden olan bir hatadır. Sesi kapatmak için deneyin

karıştırıcı Master 0;

Sesi açmayı denemek

karıştırıcı Master% 1 + ayarlı; karıştırıcı seti Master 7dB +;


Bu komutlar işe yarıyor, ancak ses seviyesini kenar bağlama ile birleştirebileceğim tek bir komutla değiştirmeme izin vermiyorlar.
joschi

1
İlgili hata raporuyla ilgilenen varsa buraya bakın .
joschi


1

Lirc ile çalışan uzaktan kumandanızın karıştırıcısını .lircrc yerine değiştirmek istiyorsanız, aşağıdaki satırları deneyebilirsiniz. Xmacro'nun kurulu olduğundan emin olun. Ses kontrolü şimdi tekrar çalışıyor.

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

0

İşin püf noktası, kulaklık takılı olup olmadığına bağlı olarak hoparlör veya kulaklık durumunu ana kanalın durumunu izlemektir. Bu senaryo benim için eski Dell Latitude dizüstü bilgisayarımda yapıyor:

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

Kanallarınızı bilgisayarınızdaki karıştırıcı ile kontrol etmeniz ve SLAVE tanımlarını buna göre değiştirmeniz gerekebilir. Ayrıca, HEADPHONES_PLUGGED tanımındaki "Headphone \ Jack" grep string'in başka bir şey olması gerekebilir.


-1

Kaba kuvvet unmute:

for i in $(amixer |grep -o \'.*\'); do amixer set $i unmute; done

2
80 ve daha fazla cihazı açmanın iyi bir fikir olduğunu düşünmüyorum. Bu, istenmeyen geri besleme döngülerine yol açabilecek mikrofonlar içerir. ne yapılacağını for i in $(amixer |grep -o \'.*\'); do echo amixer set $i unmute; donegörmek için daha önce yapın.
kullanıcı bilinmeyen,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.