Alterando a saída de áudio do terminal

1

Eu tenho uma placa Xonar DGX e posso alterar a saída de áudio com alsamixer acessando a opção Analog Output e alternando entre Stereo Headphones e Stereo Headphones FP . Como posso fazer o mesmo usando a linha de comando?

Eu olhei para cima e descobri sobre pias e como elas podem ser trocadas com pacmd , mas pelo que entendi minhas duas saídas estão no mesmo coletor, que é meu cartão Xonar.

    
por Javier Garcia 30.07.2018 / 01:56

3 respostas

0

Acredito que você pode fazer isso usando várias ferramentas, como amixer ou pamd ou pactl .

OBSERVAÇÃO: Sua suposição é como eu também entendo as coisas. Pias Eu identifico placas de som reais (saída) e as saídas nelas são chamadas de portas.

A definição real deste guia intitulado PulseAudio sob o capô :

Sink

A sink is an output device. It is an active unit that consumes samples.

Sink usually runs a thread with its own event loop, peeks sample chunks from connected sink inputs, and mixes them. It also implements clocking and maintains latency. The rest of the world usually communicates with a sink using messages.

The typical sink represents an output sound device, e.g. headphones connected to a sound card line output or on a Bluetooth headset. PulseAudio automatically creates a sink for every detected output device.

Exemplo

Veja um exemplo mostrando como usar pactl :

$ pactl list sinks |& grep -E "Sink|Ports|analog-ou"
Sink #0
    Ports:
        analog-output-lineout: Line Out (priority: 9900, not available)
        analog-output-headphones: Headphones (priority: 9000, not available)
    Active Port: analog-output-lineout

Acima você pode ver que meu Active Port: é atualmente o lineout da minha placa de som. Vamos mudar isso para os fones de ouvido.

$ pactl set-sink-port 0 analog-output-headphones

E se verificarmos novamente:

$ pactl list sinks |& grep -E "Sink|Ports|analog-ou"
X11 connection rejected because of wrong authentication.
Sink #0
    Ports:
        analog-output-lineout: Line Out (priority: 9900, not available)
        analog-output-headphones: Headphones (priority: 9000, not available)
    Active Port: analog-output-headphones

De man pactl :

   set-sink-port SINK PORT
          Set the specified sink (identified by its symbolic name or
          numerical index) to the specified port (identified by its symbolic 
          name).

E se o dispositivo de áudio desaparecer?

Em casos raros, notei que o dispositivo de saída de áudio desaparece misteriosamente da lista de dispositivos. Se você achar que isso acontece, você pode facilmente resolver isso informando ao Pulse Audio para recarregar seus módulos:

$ pactl load-module module-detect

Referências

por 30.07.2018 / 04:03
0

Eu usei pacmd para mudar automaticamente o som dos alto-falantes do PC para o HDMI:

if grep '^connected$' /sys/class/drm/card0/card0-HDMI*/status ;then             
  sleep 2
  pacmd set-card-profile 0 output:hdmi-stereo
else
  sleep 2
  pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo
fi

Para obter o perfil de som ativo:

pacmd list |grep 'active profile'
        active profile: <output:analog-stereo+input:analog-stereo>

Para listar todos os perfis de som de saída disponíveis suportados:

pacmd list |grep 'output:'
    
por 01.08.2018 / 02:53
0

Você pode fazer isso com amixer .

amixer -c 0 cset name='Analog Output Playback Enum' 0

Onde 0 em -c 0 representa o número do cartão. O último parâmetro é o seguinte:

0 - 'Stereo Headphones'
1 - 'Stereo Headphones FP'
2 - 'Multichannel'
    
por 24.10.2018 / 16:18

Tags