O PulseAudio pacmd
não é capaz de alternar os coletores padrão enquanto houver um fluxo em reprodução ativa na entrada do coletor. No entanto, ainda há uma maneira de conseguir isso.
Alterando o coletor padrão na linha de comando
Primeiro, precisamos determinar o número do índice dos coletores que queremos trocar. Isso pode ser feito chamando:
pacmd list-sinks
Dependendo do nosso sistema, isso fornecerá uma lista mais ou menos longa de pias e propriedades atualmente acessíveis:
>>> 2 sink(s) available.
* index: 0
name: <alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1>
driver: <module-alsa-card.c>
:
:
index: 1
name: <alsa_output.pci-0000_00_14.2.analog-stereo>
driver: <module-alsa-card.c>
O index
ou o name
dado aqui é o que precisamos para endereçar o coletor por linha de comando. O coletor padrão atual é marcado com um asterisco (aqui 0
).
Para poder alternar os coletores padrão da linha de comando, talvez seja necessário desativar a restauração do dispositivo de destino do fluxo editando a linha correspondente em /etc/pulse/default.pa
:
load-module module-stream-restore restore_device=false
Para alterar o coletor de saída padrão para coletor 1
, corremos
pacmd set-default-sink 1
O sucesso pode ser visualizado abrindo o menu Configurações de som .
Movendo um fluxo para outro coletor
Alterar o coletor padrão enquanto temos um fluxo de entrada ativo sendo reproduzido em um determinado coletor não tem efeito . Isso deve ser feito movendo essa entrada para outro coletor.
pacmd list-sink-inputs
nos dirá o índice do fluxo de entrada
>>> 1 sink input(s) available.
index: 5
driver: <protocol-native.c>
Agora sabemos que queremos mover o fluxo de entrada 5
para afundando 1
chamando
pacmd move-sink-input 5 1
ou voltar a afundar, 0
se quisermos. Isso será feito imediatamente, sem a necessidade de interromper a reprodução.
Alterando o coletor padrão durante a reprodução
Obviamente, podemos combinar esses dois comandos para mudar imediatamente os sumidouros padrão durante a reprodução, por exemplo, com
pacmd set-default-sink 1 & pacmd move-sink-input 5 1
Uma desvantagem desse método é que o índice do fluxo de entrada muda toda vez que paramos e reiniciamos o music player. Portanto, sempre precisamos descobrir o índice do fluxo atual antes de podermos alternar usando a linha de comando.
pactl list short sinks
>4 bluez_sink.FC_A8_9A_2C_EB_0B module-bluez5-device.c s16le 1ch 8000Hz IDLE
agora basta fazer referência ao nomepactl set-default-sink bluez_sink.FC_A8_9A_2C_EB_0B