ALSA: come modificare temporaneamente il dispositivo di output


15

Voglio fare una cosa più semplice possibile in ALSA: fare in modo che le cuffie USB producano suoni anziché altoparlanti interni del mio tablet. Non voglio cambiare i file di configurazione come asound.rco alsa.confo asound.confe impostare permanentemente le cuffie come dispositivo di output predefinito cambiando l'ordine dei dispositivi, voglio un effetto temporaneo, fino a quando non scollego le cuffie. Stranamente, non riesco a google la risposta. È in alsamixergrado di farlo (sembra di no)?

In Gnome puoi facilmente selezionare il dispositivo di output corrente PulseAudio, sia nella sua interfaccia GUI o CLI, ma PulseAudiofunziona da solo su ALSA! Quindi mi chiedo anche, come costringe ALSA a cambiare il dispositivo di output?


alsamixerha un'opzione "Seleziona la scheda audio" nell'interfaccia, anche se non so se questo in realtà imposta anche il dispositivo di output.
Riccioli d'oro

1
no, sfortunatamente mostra solo i parametri di questa scheda audio e consente di modificarli, ma non reindirizza l'output ad esso
Boris Burkov

Ciao, puoi provare a eseguire exec alsamixerda un terminale e premere F6per selezionare un'altra scheda audio. :)
slackmart il

@sgmart Ciao, sgmart, ho fatto esattamente questo, ma non trasferisce l'audio a quel dispositivo, seleziona semplicemente quel dispositivo per sintonizzare i suoi parametri, non lo streaming.
Boris Burkov,

4
L'utility alsamixer ha alcuni controlli: Master, PCI e così via. Controlla se c'è MMun'etichetta (MM = muto), quindi usa il Mtasto della tastiera per abilitare il suono.
slackmart,

Risposte:


4

Se il dispositivo USB è elencato come una scheda audio nel sistema, è possibile che si desideri verificare man amixere utilizzare il unmuteparametro.

amixer -c 1 set Master playback 100% unmute

Controllare anche gli altri canali (PCM ecc.). Gli esempi del manuale sono:

   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%

Grazie, Jari, funziona. Ho letto i manuali su ALSA e ho una domanda: i dispositivi elencati da amixer e alsamixer non sono in realtà dispositivi hardware, ma dispositivi ALSA, creati da plugin alsa in /usr/share/alsa/alsa.conf e amici? Capisco principalmente la sintassi di quei plugin, ma non riesco a trovare le definizioni delle parole chiave fondamentali, come "pcm" o "ctl" o "tipo". Non sono riuscito a trovare alcun elenco di parole chiave nella documentazione di doxygen: alsa-project.org/alsa-doc/alsa-lib, alsa-project.org/alsa-doc/alsa-lib/conf.html. Conosci qualche fonte di informazioni su di loro?
Boris Burkov,

8
Questo non risolve davvero la domanda originale. È possibile impostare i parametri, ma non cambia la scheda attraverso la quale viene emesso l'audio.
se stessi

2
Se questo risponde effettivamente alla domanda originale, è necessario un esempio completo. Come fa tutto ciò che alsamixer non può fare? Chiaramente, alsamixer non può passare all'output attraverso una scheda audio diversa. O, nel mio caso, volevo anche l'uscita attraverso la stessa scheda audio ma HDMI invece di altoparlanti / cuffie. Pulseaudio fa queste cose, ma come? Sono necessari esempi dall'inizio alla fine per rendere questa una buona risposta.
Colin Keenan,

1
Pitty questo è stato selezionato come risposta - la domanda è esattamente quello che sto cercando: come cambiare temporaneamente la scheda utilizzata per l'output. Tuttavia, come già notato da @oneself, questa risposta in realtà non spiega come farlo. È probabile che una nuova domanda con quasi lo stesso titolo venga chiusa come duplicata.
domsson,

1
@domsson si collega a questo e spiega che la risposta non ha risolto il tuo problema. Ciò dovrebbe garantire che non sia chiuso come duplicato.
terdon

0

IIUC è possibile aggiornare .asoundrco in /etc/asound.confmodo dinamico. Così dovrebbe essere possibile avere due file headphones.confe front.confche impostare i dispositivi predefiniti alle appropriate hw:channel,devicenumeri e poi li passa su un evento "jack ACPI / cuffie spina della cuffia". Sto per provare questo, usando "ln" per collegarti /etc/asound.confa uno dei/etc/sounds/{headphones,front}.conf

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.