ALSA: çıkış cihazını geçici olarak değiştirme


15

ALSA'da mümkün olan en basit şeyi yapmak istiyorum: USB kulaklıkların tabletimin dahili hoparlörü yerine ses üretmesini sağlamak. Aygıtların sırasını değiştirerek asound.rcveya alsa.confveya asound.confkulaklıklar gibi yapılandırma dosyalarını varsayılan çıkış aygıtı olarak kalıcı olarak ayarlamak istemiyorum, kulaklıkların fişini çekene kadar geçici bir efekt istiyorum. Garip bir şekilde, cevabı google edemiyorum. Mı alsamixero yapabilen (hayır gibi görünüyor)?

Gnome'da PulseAudio, GUI veya CLI arayüzünde mevcut çıkış cihazını kolayca seçebilirsiniz , ancak PulseAudiokendisi ALSA'nın üstünde çalışır! Ben de merak ediyorum, ALSA'yı çıkış cihazını nasıl değiştirmeye zorlar?


alsamixerarayüzde bir "Ses kartı seç" seçeneği var, ancak bunun aslında çıkış cihazını ayarlayıp ayarlamadığını bilmiyorum.
goldilocks

1
hayır, ne yazık ki sadece bu ses kartının parametrelerini görüntüler ve onları değiştirmeye izin verir, ancak çıkışı yeniden yönlendirmez
Boris Burkov

Merhaba, alsamixerbir terminalden exec'yi deneyebilir ve F6başka bir ses kartı seçmek için tuşuna basabilirsiniz . :)
slackmart

@sgmart Merhaba, sgmart, tam olarak bunu yaptım, ancak sesi o cihaza aktarmaz, sadece cihazı ayarlamak için akışları değil, parametrelerini ayarlamak için o cihazı seçer.
Boris Burkov

4
Alsamixer yardımcı programının bazı kontrolleri vardır: Master, PCI, vb. Bir MMetiket olup olmadığını kontrol edin (MM = sessiz), bu nedenle Msesi etkinleştirmek için klavyenizdeki tuşu kullanın .
slackmart

Yanıtlar:


4

USB cihazı sistemde ses kartı olarak listeleniyorsa man amixer, unmuteparametreyi kontrol etmek ve kullanmak isteyebilirsiniz .

amixer -c 1 set Master playback 100% unmute

Ayrıca diğer kanalları da kontrol edin (PCM vb.). Kılavuzdan örnekler:

   amixer -c 1 sset Line,0 80%,40% unmute cap
          will set the second soundcard's left line input volume to 80% and right line
          input to 40%, unmute it, and select it as a source for capture (recording).

   amixer -c 1 -- sset Master playback -20dB
          will set the master volume of the second card to -20dB.  If the  master  has
          multiple channels, all channels are set to the same value.

   amixer -c 1 set PCM 2dB+
          will  increase  the PCM volume of the second card with 2dB.  When both play‐
          back and capture volumes exist, this is applied to both volumes.

   amixer -c 2 cset iface=MIXER,name='Line Playback Volume",index=1 40%
          will set the third soundcard's second line playback volume(s) to 40%

   amixer -c 2 cset numid=34 40%
          will set the 34th soundcard element to 40%

Teşekkürler, Jari, işe yarıyor. ALSA'daki kılavuzları okudum ve bir sorum var: amixer ve alsamixer tarafından listelenen cihazlar aslında donanım cihazları değil, /usr/share/alsa/alsa.conf ve arkadaşlarındaki alsa eklentileri tarafından oluşturulan ALSA cihazları mı? Çoğunlukla bu eklentilerin sözdizimini anlıyorum, ancak "pcm" veya "ctl" veya "type" gibi çok temel anahtar kelimelerin tanımlarını bulamıyorum. Doxygen belgelerinde anahtar kelime listesi bulamadım: alsa-project.org/alsa-doc/alsa-lib, alsa-project.org/alsa-doc/alsa-lib/conf.html. Onlar hakkında herhangi bir bilgi kaynağı biliyor musunuz?
Boris Burkov

8
Bu orijinal soruyu gerçekten çözmez. Parametreleri ayarlayabilirsiniz, ancak sesin çıktığı kartı değiştirmez.
kendini

2
Bu aslında orijinal soruyu cevaplıyorsa, tam bir örnek gerekir. Bu alsamixer'ın yapamadığı bir şeyi nasıl yapar? Açıkçası, alsamixer farklı bir ses kartı üzerinden çıkışa geçemez. Ya da, benim durumumda, aynı ses kartıyla, hoparlörler / kulaklık yerine HDMI çıkışı yapmak istedim. Pulseaudio bunları yapıyor, ama nasıl? Bunun iyi bir cevap olabilmesi için baştan sona örneklere ihtiyaç vardır.
Colin Keenan

1
Pitty bu cevap olarak seçildi - soru tam olarak aradığım şey: çıkış için kullanılan kartın geçici olarak nasıl değiştirileceği. Ancak, @ kişinin daha önce belirttiği gibi, bu cevap aslında bunun nasıl yapılacağını açıklamaz. Hemen hemen aynı başlıkta yeni bir soru sormanın artık kopya olarak kapanması muhtemeldir.
domsson

1
@domsson sadece bununla bağlantı kurun ve cevabın sorununuzu çözmediğini açıklayın. Bu bir dupe olarak kapalı olmamasını sağlamalıdır.
terdon

0

IIUC .asoundrcveya /etc/asound.confdinamik olarak güncelleyebilirsiniz . Bu nedenle, iki dosyaya sahip olmanız headphones.confve front.confvarsayılan cihazlarınızı uygun hw:channel,devicenumaralara ayarlamanız ve ardından bir "ACPI jakı / kulaklık KULAKLIK fişi" etkinliğinde açmanız mümkün olmalıdır. Ben denemek üzereyim, /etc/asound.confbirine bağlamak için "ln" kullanarak/etc/sounds/{headphones,front}.conf

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.