O PulseAudio geralmente faz um bom trabalho ao determinar quais dispositivos ALSA estão disponíveis e configurá-los automaticamente. Quando isso não acontece, não estou claro como essa ligação aparentemente automática ocorre. É um push em que o ALSA informa ao PulseAudio sobre os dispositivos ou um pull em que o PulseAudio determina a partir da configuração do ALSA? Digamos que você tenha 3 'placas' de áudio: A, B e C. aplay -l
mostra todos os três (suponha que todos os três estejam funcionando como esperado via aplay), mas pacmd list-cards
mostra apenas A e B. Se você quiser que o PulseAudio use apenas B e C, como você faria com que o PulseAudio removesse A e adicionasse C? Eu suponho que isso seria feito através pacmd
e/ou alterando os arquivos de configuração de inicialização do PA, mas não estou claro como exatamente fazer isso.
relate perguntas
-
Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?
-
Inicie/pare o serviço systemd usando o atalho de teclado [fechado]
-
Necessidade de algumas chamadas de sistema
-
astyle não altera a formatação do arquivo de origem
-
Passe o sistema de arquivos raiz por rótulo para o kernel do Linux
Eu acho que os módulos são responsáveis por adicionar dispositivos. Por exemplo, há um chamado
module-udev-detect
, e se eu fizer issopacmd list-cards
no meu sistema, vejomodule-udev-detect.discovered = "1"
em dois dos três. O terceiro é um dispositivo bluetooth, então acho que vem dobluez5
módulo.Olhando um pouco para a web, você pode fazer o pulseaudio ignorar um dispositivo vindo do udev configurando
ENV{PULSE_IGNORE}="1"
uma regra do udev. VerAcho que para o bluetooth você teria que mexer no bluez, para ignorar o dispositivo.
Quanto ao motivo pelo qual um dispositivo pode ser ignorado, pode ser porque foi bloqueado (dispositivos alsa só podem ser abertos uma vez) quando o pulseaudio tentou abri-lo.
Editado de @blihp:
Para forçar o PulseAudio a tentar usar um dispositivo de áudio, adicione uma entrada a
/etc/pulse/default.pa
:(substitua
<card#>,<device#>
pelo hardware específico para o seu sistema, como0,1
)