Não sei se existe um arquivo de configuração ou configuração para isso em qualquer lugar, mas isso pode ser feito com variáveis de ambiente. Baseei minha resposta nesta entrada nas Perguntas frequentes do PulseAudio sobre como definir a fonte de gravação. Eu tentei isso com saída (um coletor no PulseAudio), mas deve funcionar para entrada e saída.
O primeiro passo é obter o nome interno da fonte e coletor que você deseja usar. Para fazer isso, você precisa usar o pactl list
comando Esse comando retornará uma pilha de dados, mas o seguinte listará apenas os nomes de origem:
LANG=C pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2
Essa lista provavelmente incluirá os nomes das fontes regulares e das fontes de monitor do PulseAudio (que no meu sistema têm "monitor" no nome). Você deseja usar o nome de origem regular do dispositivo que deseja segmentar.
Você pode fazer o mesmo para obter os nomes dos coletores:
LANG=C pactl list | grep -A2 'Sink #' | grep 'Name: ' | cut -d" " -f2
Depois de obter os nomes, você pode executar algo como o seguinte no seu terminal:
PULSE_SINK=<sink_name> PULSE_SOURCE=<source_name> <command_to_run_skype>
Obviamente, se você quiser executar isso em um menu, provavelmente precisará criar um shell script e usá-lo em vez do comando padrão. Algo assim deve funcionar:
#!/bin/sh
set PULSE_SINK <sink_name>
set PULSE_SOURCE <source_name>
<command_to_run_skype>
Você precisa EXPORTAR e atribuir as variáveis, assim:
fonte
Eu escrevi um módulo perl que faz isso PulseAudio.pm .
Permite que você use uma sintaxe como esta,
Obviamente, você pode usar qualquer critério em
get_sink_by
eget_source_by
. Lê depacmd info
. Isso funciona com a mesma idéia da resposta do @ moberley, exceto que ele usa uma biblioteca perl em vez de forçar você a fazer sua própria análise. Ele também fornece alguns outros recursos interessantes.No meu programa de podcast, eu também uso isso para iniciar o Skype.
(os
btrlistener*
nomes do Skype são para blogtalkradio).fonte