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
set-default-sink
mas ainda precisará do número do índicemove-sink-input
.0 sink input(s) available.
? Mas esse flash player de merda ainda está reproduzindo áudio?client(s) logged in
seção depacmd list
Eu escrevi um script simples para mover todas as entradas do coletor automaticamente.
Uso:
./movesinks.sh <sink number>
fonte
Versão aprimorada do script @Gaco
minha cópia de tempo de execução está no github e inclui também comutação automática do canal Master para
kmix
fonte
Existe um script ruby (que eu originalmente bifurquei e reescrevi), que permite alterar o status padrão de sumidouros, volumes e silenciar na linha de comando.
fonte
Eu juntei coisas de alguns lugares diferentes e criei esse script para configurar um JAMBOX bluetooth depois de emparelhado. Seu MAC será diferente, é claro. Como controle o volume JAMBOX por meio do aplicativo Clementine, 130% do volume funciona melhor no meu caso. Você pode alterar isso, juntamente com o arquivo rhythmbox.png (foi a única foto do alto-falante que eu encontrei no meu computador). A verificação de erros é rudimentar, mas funciona de maneira bastante confiável. Coloquei isso em um iniciador de área de trabalho por conveniência em um netbook da ASUS.
fonte
pactl list short
. Você pode simplificar a seguinte linha fazendo o corte diretamente depois:pactl list short sink-inputs | cut -f1 | while read streamId
funciona para mim.PIRAS DE CIRCLE-TOGGLE.
O script Gaco com apenas mais uma linha para alternar entre os pias disponíveis.
fonte
E aqui está um script que também alternará entre pias:
http://marginalhacks.com/index.0.html#pulse-switch-out
Aqui está o script abaixo:
fonte
Com base na resposta de Gaco, reescrevi um pouco para meu uso pessoal. Talvez alguém ache útil. É para alternar entre os meus alto-falantes USB e USB Gaming Gaming.
fonte
Acho que há mais uma opção que vale a pena mencionar e está disponível na página oficial de Perguntas frequentes sobre o PulseAudio em freedesktop.org . Sob o seguinte título:
Eles fornecem o seguinte script para fazer isso:
fonte
Adaptei o @mpapis a um simples "toggle sink0 or sink1" quando executado:
fonte