Como o PulseAudio determina quais dispositivos ALSA disponibilizar ou não?

2

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 empurrão em que o ALSA informa à PulseAudio sobre os dispositivos ou uma recepção em que o PulseAudio determina a partir da configuração do ALSA? Digamos que você tenha 3 'cartões' de áudio: A, B e C. aplay -l mostra todos os três (suponha que todos os três estejam funcionando conforme o esperado), mas pacmd list-cards só mostra A e B. Se você só queria o PulseAudio para usar B e C, como você obteria o PulseAudio para remover A e adicionar C? Eu suponho que isso seria feito via pacmd e / ou alterando os arquivos de configuração de inicialização do PA, mas não estou claro como exatamente fazer isso.

    
por blihp 07.10.2018 / 22:29

1 resposta

3

Acho que os módulos são responsáveis por adicionar dispositivos. Por exemplo. existe um chamado module-udev-detect e, se eu fizer pacmd list-cards no meu sistema, vejo module-udev-detect.discovered = "1" em dois dos três. O terceiro é um dispositivo bluetooth, então eu acho que vem do módulo bluez5 .

Olhando um pouco para a web, você pode fazer pulseaudio ignorar um dispositivo vindo do udev, configurando ENV{PULSE_IGNORE}="1" em uma regra do udev. Veja

Eu acho que para o bluetooth você teria que mexer com o bluez para ignorar o dispositivo.

Por que um dispositivo pode ser ignorado, pode ser porque ele estava bloqueado (os dispositivos só podem ser abertos uma vez) quando o pulseaudio tentou abri-lo.

Editar de @blihp:

Para forçar o PulseAudio a tentar usar um dispositivo de áudio, adicione uma entrada a /etc/pulse/default.pa :

load-module module-alsa-sink device=plughw:<card#>,<device#>

(substitua <card#>,<device#> pelo hardware específico do seu sistema, como 0,1 )

    
por 14.10.2018 / 01:40