
PulseAudio は、一般的に利用可能な ALSA デバイスを確認し、自動的に設定することをすばらしく行います。そうでなければ、この見かけに自動接続がどのように発生するかはわかりません。 ALSAがPulseAudioにデバイスについて知らせるのはプッシュですか、それともPulseAudioがALSA設定に基づいて決定するプールですか? A、B、Cという3つのオーディオ「カード」があるとしましょう。 aplay -l
3つすべてが表示されますが(3つともaplayを介して期待どおりに機能すると仮定)、pacmd list-cards
AとBのみが表示されます。 PulseAudioにBとCのみを使用させるには、PulseAudioにAを削除してCを追加するように指示しますか? PAの実行構成ファイルを変更または変更することでこれを行うことができると思いますpacmd
が、これを行う方法が正確に何であるかはわかりません。
答え1
モジュールがデバイスの追加を担当していると思います。たとえば、ということがありますが、module-udev-detect
私のシステムでこれを行うと、3つのうち2つがpacmd list-cards
表示されます。module-udev-detect.discovered = "1"
3番目はBluetoothデバイスなので、モジュールから出てきたようですbluez5
。
ネットワークを少し調べると、ENV{PULSE_IGNORE}="1"
udevルールを設定してpulseaudioにudevのデバイスを無視させることができます。バラより
- https://jamielinux.com/blog/tell-pulseaudio-to-ignore-a-usb-device-using-udev/そして
- https://github.com/pulseaudio/pulseaudio/blob/5f727f0faf4c37794da6719941ab975252325888/src/modules/module-udev-Detect.c#L453)
Bluetoothの場合、デバイスを無視するにはbluezを操作する必要があるようです。
デバイスが無視される理由は、おそらくpulseaudioがデバイスを開こうとするとロックされているためです(alsaデバイスは一度だけ開くことができます)。
@blihpの編集者:
PulseAudioにオーディオデバイスを使用させるには、次の項目を追加してください/etc/pulse/default.pa
。
load-module module-alsa-sink device=plughw:<card#>,<device#>
(<card#>,<device#>
たとえば、システムの特定のハードウェアと交換0,1
)