Como minha entrada de áudio pode ser sempre o microfone da webcam?

12

Cada vez que eu quero usar o Skype, eu tenho que ir nas preferências de som. E aí, transforme o áudio em " webcam " e desmarque o botão " mudo ". É muito chato. Existe uma maneira de manter sempre a mesma configuração?

    
por Gizmoatwork 20.03.2011 / 17:10

4 respostas

13

Alterando as configurações padrão do PulseAudio

Ao executar o pulseaudio, todas as configurações podem ser definidas colocando arquivos de configuração personalizados no diretório oculto .pulse em sua tela inicial. Se esses arquivos ainda não existirem, você poderá usar os arquivos padrão de /etc/pulse/ como modelo. A maioria das entradas contém explicações detalhadas nesses arquivos.

  • ~/.pulse/default.pa para carregar módulos e definir padrões
  • ~/.pulse/client.conf para configurar um cliente para o servidor de som
  • ~/.pulse/daemon.conf para definir taxas de amostragem e buffers

Para tornar a sua webcam a fonte padrão, precisamos saber o nome e o número dessa fonte olhando a lista produzida pelo seguinte comando em um terminal:

pacmd list-sources

Em seguida, editamos a seguinte linha em ~/.pulse/default.pa :

set-default-source [name]

e substitua [name] pelo nome ou pelo número de origem da fonte desejada. Em seguida, precisamos garantir que a fonte não seja ativada adicionando esta linha:

set-source-mute [name]|[#n]> 0

Indique o nome ou o índice da sua fonte. Você pode adicionar uma variedade de outras configurações que são referenciadas na Wiki PulseAudio (agora na página man: man pulse-cli-syntax ).

Recomenda-se testar primeiro todos os comandos através da interface da linha de comandos antes de alterar os arquivos de configuração. Isso pode ser aberto com pacmd em um terminal

    
por Takkat 20.03.2011 / 19:58
6

Concordo que o problema é que o Pulseaudio não define um dispositivo USB como padrão porque não está presente quando o pulso é iniciado.

Soo minha solução para isso é ligar-se ao sistema que faz aviso quando um dispositivo USB está conectado ... UDEV!

BTW, estas instruções são um pouco funky, e estou assumindo que você está confortável fazendo coisas na linha de comando, e se tornando o usuário root para atualizar os arquivos do udev, e tornando os scripts executáveis.

Primeiro, descubra coisas

ID do USB

O primeiro passo é conectar sua webcam e encontrar o fornecedor mágico e os números dos produtos digitando

lsusb

Estou usando um Microsoft Lifecam e ele é exibido como

Bus 001 Device 013: ID 045e:072d Microsoft Corp.

a parte importante é 045e: 072d

Dispositivo Pulseaudio

Em seguida, enquanto a webcam estiver conectada, descubra o nome do dispositivo pulseaudio. Digite

pacmd list-sources

Mais uma vez, estou procurando a linha que inicia name: e, em seguida, algo sobre um Microsoft Lifecam ... aqui está

name: <alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono>

então meu nome do dispositivo pulseaudio será alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono

regras UDEV

Em seguida, criei uma nova regra do udev que é acionada quando um dispositivo USB com o fornecedor = 045e e o produto = 072d é inserido. Para criar uma regra, crie um novo arquivo chamado /etc/udev/rules.d/ ALGO .rules (chamei meu arquivo /etc/udev/rules.d/95-webcam-mic.rules ).

Coloque esta linha no arquivo

SUBSYSTEMS=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="072d", ACTION=="add", GROUP="audio", RUN+="/usr/local/bin/webcam-mic"

Lembre-se de substituir o ATTR {idVendor} e o ATTR {idProduct} pelos valores da sua webcam.

O que esta regra faz é executar um script para configurar o dispositivo usb para entrada, que é a RUN+="/usr/local/bin/webcam-mic" part.

Por fim, defina a webcam para entrada

Tempo de resumo rápido. Toda vez que eu conecto minha webcam, eu quero executar o comando

pacmd set-default-source alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono

Mas o comando precisa ser executado como me (o usuário executando a área de trabalho), mas o udev é executado como o usuário root - assim, quando o udev executa meu comando, ele precisa ser alterado para meu usuário e executado o comando.

Portanto, temos duas opções.

  1. Rápido e sujo . Torne a regra do udev executada su james -c pacmd set-default-source... isso é tão errado que eu não consigo nem terminar de digitar o comando. E se você mudar de webcam? E se você instalar isso para outro usuário?

  2. Ligeiramente mais limpo . Execute um script que leia um arquivo padrão que tenha o nome do dispositivo pulseaudio e seu nome de usuário. Se você quiser os arquivos que eles estão no GitHub. Primeiro o script /usr/local/bin/webcam-mic . O arquivo de padrões /etc/default/webcam-mic precisa apenas definir as 2 variáveis do shell, conforme o comentário na essência. Coloque o script em /usr/local/bin/ e torne-o executável. Em seguida, insira o arquivo padrão em /etc/defaults/ e edite-o para usar seu nome de usuário e o dispositivo pulseaudio de antes.

Boa sorte!

    
por James Mitchell 17.10.2014 / 05:10
2

A solução da Takkat não estava funcionando para mim, aqui está a minha solução para quem ainda tem um problema com isso.

Houve dois problemas para mim com a solução do Takkat. Primeiro, percebi que é preciso haver um atraso após a inicialização antes que a mudança para o microfone possa ocorrer (eu uso o comando 'sleep' na minha solução abaixo). Além disso, o comando 'set-default-source' estava funcionando para ligar o microfone USB, mas de alguma forma o Skype não estava reconhecendo isso e continuava a usar o microfone interno.

Para isto funcionar, primeiro é útil instalar o pavucontrol. No pavucontrol, abra a guia "Configuração" e observe o que acontece com os comandos abaixo para verificar se as coisas estão funcionando conforme o esperado.

Então, a partir de um terminal, digite:

pacmd

De lá, digite:

list-cards

Na saída, encontre o número de índice do áudio USB que você quer (no meu caso, este era '1'). Em seguida, observe as linhas listadas em 'perfis' para o cartão padrão e o cartão USB. Estes devem ser os mesmos listados no pavucontrol, e podem ser algo como 'ouput: input + output', 'off' ou 'input: analog-mono' etc. Ainda na linha de comando do pacmd, o comando set-card-profile <index number> <profile name> deve alterar as configurações no pavucontrol. O que queremos fazer aqui é mudar o áudio interno de duplex para saída apenas e o USB para entrada.

Uma vez encontrados os perfis apropriados, queremos criar um comando de inicialização para alterar algumas configurações logo após a inicialização. Para criar um comando de inicialização, abra o painel e procure por 'aplicativos de inicialização', clique em 'adicionar' e digite um nome de sua escolha e o comando apropriado abaixo.

Após tentativa e erro, meu comando de inicialização acabou ficando assim:

bash -c "sleep 30 && pacmd set-card-profile 0 output:analog-stereo && pacmd set-card-profile 1 off && pacmd set-card-profile 1 input:analog-mono"

Explicação: Eu achei que o comando 'sleep' era necessário, isso significa que o comando é executado após uma pausa, que eu configurei para 30 segundos (acho que isso pode ser menor, brincar com isso). O próximo comando (depois de '& &') é fazer com que o perfil de cartão padrão (interno) mude de entrada + saída (duplex, que é o padrão) para saída somente. O próximo comando é para a placa de som USB (no meu caso, o número é '1') para desligar. O último comando é para que esta mesma placa volte a ligar no modo 'input: analog-mono'

Você pode ter que brincar com essas configurações para encontrar a que funciona.

Agora, quando eu inicio, meu microfone USB está pronto para uso após 30 segundos e o Skype usa o microfone correto.

    
por geoffrey 10.04.2015 / 10:56
0

tente isso, clique no ícone do alto-falante no seu painel superior, as preferências de clique. lá você pode selecionar uma opção de entrada padrão para o seu microfone e provavelmente alterar algumas configurações de hardware para que funcione bem.

    
por helios66 20.03.2011 / 17:37