Para alternar para a saída de áudio HDMI (do monitor) e retornar à saída de áudio normal da tomada de áudio do sistema (para fones de ouvido, pois meu monitor não possui saída de áudio), eu me pego abrindo as preferências de som e selecionando o canal certo sempre. Existe alguma maneira de criar um botão de alternância no painel ou atribuir alguma tecla de atalho para alternar, pois faço a alternância com tanta frequência.
:aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 7: STAC92xx Digital [STAC92xx Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
sound
software-recommendation
iJeeves
fonte
fonte
Respostas:
Com o pulseaudio, podemos selecionar o coletor de saída na linha de comando:
Este comando pode ser usado em um iniciador, script ou mesmo atribuído a um atalho de teclado para alternar rapidamente entre diferentes coletores. Substitua "SINKNAME" pelo nome ou número do coletor desejado. Uma lista de sumidouros conhecidos com seus números e nomes associados é fornecida pelo comando:
Nota: A alteração do coletor de saída pela interface da linha de comandos somente terá efeito se a leitura do dispositivo de destino do fluxo estiver desativada. Isso pode ser feito editando a linha correspondente em
/etc/pulse/default.pa
:Como alternativa, poderíamos executar o pulseaudio para emitir simultaneamente o som para o dispositivo de áudio interno e para o dispositivo HDMI executando paprefs com a opção de adicionar um dispositivo de saída virtual:
fonte
pacmd set-default-sink "alsa_output.pci-0000_00_1b.0.analog-stereo"
epacmd set-default-sink "alsa_output.pci-0000_00_1b.0.hdmi-stereo"
funciona somente depois de selecionar o perfil correspondente em Preferências de som. Se eu estiver com o HDMI configurado e executar o comando pacmd para estéreo analógico, estou recebendo o erro.Sink alsa_output.pci-0000_00_1b.0.analog-stereo does not exist.
Mas se eu selecionar manualmente o perfil na GUI de preferências de som e executar o mesmo comando, não estou recebendo o erro. Portanto, não está ajudando a mudar.Achei isso muito irritante e escrevi um script para alternar a saída:
e depois vincule uma tecla não usada no meu teclado para executá-la (consulte Como vincular comandos personalizados a atalhos de teclado? )
fonte
Ainda outro script de comutador de pia
testado no Ubuntu 16.04
Mas este permite alternar apenas o áudio do aplicativo que você deseja.
USO: concentre o aplicativo que você deseja alterar seu coletor e execute este script. É isso aí!!!
Esse script detecta o aplicativo que está em foco, localiza todos os áudios reproduzidos nele e os muda para o próximo coletor disponível.
https://gist.github.com/madacol/1a0d8569166886d2d98f073f7f5c5fe3
Explicando o script
Precisamos encontrar o PID do aplicativo em foco
Mas primeiro precisamos do xid
Em seguida, insira-o aqui
$xid
para obter o pid da aplicaçãoAgora precisamos encontrar as entradas de coletor relacionadas a esse PID
Primeiro, vamos linearizar a saída do comando
pacmd list-sink-inputs
para listar uma entrada de coletor por linha, mostrando seu índice, coletor e pid na mesma linhavamos analisá-lo passo a passo:
grep -E 'index:|sink:|process.id
só manter linhas que contêmindex:
,sink:
ouprocess.id
tr '\n' ' '
junta todas as linhastr -d '"'
remove todos os"
caracteres. Necessário para receber o pid sem aspassed -e 's/index:/\n/g'
substitui todas asindex:
ocorrências por um novo caractere de linha\n
tail -n +2
remove a primeira linha porque está vaziaE o resultado é algo como isto:
Vamos analisar uma linha para entender o que isso significa:
182
é o índice de entrada do coletor,0
é o índice do coletor e,13752
no final, é o pid do aplicativo pertencenteEntão iteramos através de cada linha
E, finalmente, filtre apenas o pid da entrada do coletor que corresponde ao pid do aplicativo focado
Extraindo dados
Com
awk
podemos obter os elementos que precisamosObtenha o número de sumidouros para saber quando a rotação dos sumidouros deve reiniciar de 0.
Para encontrar o próximo coletor, precisamos percorrer a lista de coletores, para saber qual deles corresponde a current_sink_index e para saber o índice do próximo coletor.
E, finalmente, movemos a entrada do coletor para tocar no next_sink_index
Nota no Ubuntu 16.04:
Ao configurar a tecla de atalho, não consegui fazê-lo funcionar com o gerenciador de atalhos do ubuntu. Então eu tive que instalar o compizconfig-settings-manager
fonte
Se você estiver usando o Gnome Shell em vez do Unity, poderá instalar a extensão abaixo. Você poderá alternar do atalho de volume no painel superior. https://extensions.gnome.org/extension/142/output-device-chooser-on-volume-menu/
fonte
Como existe apenas uma placa de som visível na captura de tela, acho que a saída dessa placa de som deve ser alterada.
Por exemplo: Eu tenho um notebook com uma placa de som integrada, mas ela possui uma saída digital (SPDIF) quando encaixada.
Então, o que eu queria fazer era mudar a saída ativa ou "Perfil" no pulseaudio.
Encontrei os comandos que fazem exatamente isso:
O que fiz para obter os nomes corretos para a configuração de saída desejada - aqui, saída digital, mas entrada (micro) analógica - foi:
fonte
Eu tenho tentado encontrar uma solução para esse problema também. No Ubuntu 11.04, isso não parece ser possível diretamente, encontrei este guia apenas para adicionar HDMI e Analógico como saídas separadas; portanto, o pacmd mostra três pias agora. Então é possível alternar entre pias usando os comandos acima. ( veja também )
Mas, aparentemente, o Ubuntu 11.11 terá um PulseAudio com sistema de detecção de jack. De acordo com o site abaixo, David Henningsson codificou uma detecção via udev para que o áudio de pulso seja alternado automaticamente para a última saída adicionada, incluindo a alternância entre diferentes perfis da mesma placa de som (como é o caso da sua e da minha instalação). (veja aqui )
Então, espero que isso funcione, quando experimentar a versão final na próxima sexta-feira.
fonte
Com base em muitas das respostas anteriores, escrevi um script que define o coletor de reprodução alternando entre as disponíveis.
A melhor maneira de usá-lo é criando um atalho de teclado para executá-lo; assim, toda vez que você pressionar essa combinação de teclas, o áudio será redirecionado para o próximo coletor disponível.
O código está disponível aqui: https://gist.github.com/germank/7fa2fb07d45a838bf890addadd8bea8c
fonte
No meu caso, as opções analógicas não estão na lista. Instale o pavucontrol:
sudo apt install pavucontrol
Pode corrigir o problema iniciando o aplicativo:
pavucontrol
(enter)Agora eu podia ouvir e selecionar diferentes perfis (no Linux Mint):
fonte
Uma alternativa ao Sound Switcher Indicator (que requer a adição de um PPA) é criar um comando (ou um script) e chamá-lo com um atalho:
No meu caso era
hdmi-stereo-extra1+input
perfil, então em uma linha seria:Você pode usar um atalho personalizado (
gnome-control-center keyboard
) para executá-lobash -c
(avisará se houver algum conflito com outro atalho):Eu uso:
Além disso, você pode adicionar um
alias
ao seu.bashrc
.Testado no Ubuntu 16.04 e 18.04
Se você não estava acima do comportamento em um script, fiz algumas alterações com base na resposta @ user829996:
fonte
Escrevi um miniaplicativo indicador que permite alternar a saída de som.
fonte