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