Linux

PulseAudio 如何確定哪些 ALSA 設備可用或不可用?

  • October 14, 2018

PulseAudio 通常可以很好地確定可用的 ALSA 設備並自動設置它們。如果沒有,我不清楚這種看似自動的連結是如何發生的。是 ALSA 告訴 PulseAudio 有關設備的推送,還是 PulseAudio 從 ALSA 配置中確定的推送?假設您有 3 個音頻“卡”:A、B 和 C。 aplay -l顯示所有三個(假設所有三個都通過 aplay 按預期工作)但pacmd list-cards只顯示 A 和 B。如果您只希望 PulseAudio 使用 B 和 C,您如何讓 PulseAudio 刪除 A 並添加 C?我認為這將通過pacmd和/或更改 PA 的啟動配置文件來完成,但我不清楚具體如何執行此操作。

我認為模組負責添加設備。例如,有一個叫module-udev-detect,如果我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

引用自:https://unix.stackexchange.com/questions/473846