PulseAudio는 어떤 ALSA 장치를 사용할 수 있는지 여부를 어떻게 결정합니까?

PulseAudio는 어떤 ALSA 장치를 사용할 수 있는지 여부를 어떻게 결정합니까?

PulseAudio는 일반적으로 사용 가능한 ALSA 장치를 확인하고 자동으로 설정하는 작업을 훌륭하게 수행합니다. 그렇지 않다면 이 겉보기에 자동 연결이 어떻게 발생하는지 명확하지 않습니다. ALSA가 PulseAudio에 장치에 대해 알려주는 것이 푸시인가요, 아니면 PulseAudio가 ALSA 구성을 기반으로 결정하는 풀인가요? A, B, C라는 3개의 오디오 "카드"가 있다고 가정해 보겠습니다. aplay -l세 개 모두 표시되지만(세 개 모두 aplay를 통해 예상대로 작동한다고 가정) pacmd list-cardsA와 B만 표시됩니다. PulseAudio가 B와 C만 사용하도록 하려면 PulseAudio에 A를 제거하고 C를 추가하도록 어떻게 지시합니까? PA의 실행 구성 파일을 변경하거나 변경하여 이 작업을 수행할 수 있다고 생각 pacmd하지만 이를 수행하는 방법이 정확히 무엇인지는 확실하지 않습니다.

답변1

모듈이 장치 추가를 담당한다고 생각합니다. 예를 들어, 라는 것이 있는데 module-udev-detect, 내 시스템에서 이 작업을 수행하면 3개 중 2개가 pacmd list-cards표시됩니다 . module-udev-detect.discovered = "1"세 번째는 블루투스 장치이므로 모듈에서 나온 것 같습니다 bluez5.

네트워크를 조금 살펴보면 ENV{PULSE_IGNORE}="1"udev 규칙을 설정하여 pulseaudio가 udev의 장치를 무시하도록 할 수 있습니다. 바라보다

블루투스의 경우 장치를 무시하려면 bluez를 조작해야 할 것 같습니다.

장치가 무시되는 이유는 아마도 pulseaudio가 장치를 열려고 할 때 잠겨 있기 때문일 것입니다(alsa 장치는 한 번만 열 수 있습니다).

@blihp의 편집자:

PulseAudio가 오디오 장치를 사용하도록 강제하려면 다음 항목을 추가하세요 /etc/pulse/default.pa.

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

( <card#>,<device#>예를 들어 시스템의 특정 하드웨어로 교체 0,1)

관련 정보