PulseAudio モジュールは systemd または xsession で起動すると正しく設定されていませんが、端末で起動すると正常に動作します。

PulseAudio モジュールは systemd または xsession で起動すると正しく設定されていませんが、端末で起動すると正常に動作します。

仮想リスナーから直接「.monitor」をインポートできないほとんどすべてのアプリケーションで許可されているマイクを持つように、いくつかの仮想ソースを作成しようとしています。

基本的に私が作成する計画は次のとおりです。

For System Audio recording :
Any Application Audio -> PulseEffects(apps) -> A_SINK -> alsa-card......

A virtual mic so I can pass an output as a input :
FFMPEG -> MIC_IN -> MIC_OUT

Combined 
A_SINK ==========\
                  |=> Mixed -> Mixed_OUT
MIC_OUT =========/

これまではとてもよかったです。いくつかのテストを経た後、以下の結果が得られた。

For System Audio recording :
Application -> module-null-sink("TIRTAGT_SINK") -> module-loopback("alsa_output.pci.analog-stereo")



For virtual mic :
FFMPEG -> module-null-sink("TIRTAGT_MIC_IN") -> module-remap-source(master="TIRTAGT_MIC_IN.monitor", source_name="TIRTAGT_MIC_OUT")



For Combined Mic and System Audio :
module-loopback(source="TIRTAGT_SINK.monitor") =====\
                                                     |==> module-null-sink("TIRTAGT_Mixed")
module-loopback(source="TIRTAGT_MIC_OUT") ==========/                  ||
                                                                       \/
module-remap-source(master="TIRTAGT_Mixed.monitor" source_name="TIRTAGT_Mixed_OUT")


/home/matthewtirta/.config/pulse/default.paすべてがうまくいったので、ファイルの末尾に次の行を追加するように修正しました。

### Import addon for additional configuration
.nofail
.include /home/matthewtirta/.config/pulse/presets

そしてそのコマンドをディレクトリに入れました/home/matthewtirta/.config/pulse/presets

  • システムオーディオ録音(00-TIRTAGT_SINK.pa):
load-module module-null-sink sink_name='TIRTAGT_SINK' sink_properties=device.description='TIRTAGT_SINK'

load-module module-loopback source="TIRTAGT_SINK.monitor" sink="alsa_output.pci-0000_05_00.6.analog-stereo" latency_msec=25

set-default-sink TIRTAGT_SINK
  • 仮想マイクの場合:
load-module module-null-sink sink_name="TIRTAGT_MIC_IN" sink_properties=device.description='TIRTAGT_MIC_IN'

load-module module-remap-source master="TIRTAGT_MIC_IN.monitor" source_name="TIRTAGT_MIC_OUT" source_properties=device.description='TIRTAGT_MIC_OUT'

set-default-source TIRTAGT_MIC_OUT
  • 結合されたマイクとシステムオーディオの場合(02-TIRTAGT_Mixed.pa):
load-module module-null-sink sink_name="TIRTAGT_Mixed" sink_properties=device.description='TIRTAGT_Mixed'

load-module module-loopback source="TIRTAGT_SINK.monitor" sink="TIRTAGT_Mixed" latency_msec=25
load-module module-loopback source="TIRTAGT_MIC_OUT" sink="TIRTAGT_Mixed" latency_msec=25

load-module module-remap-source master="TIRTAGT_Mixed.monitor" source_name="TIRTAGT_Mixed_OUT" source_properties=device.description='TIRTAGT_Mixed_OUT'

pulseaudio -kテストのために通常のユーザーとして実行してpulseaudioサーバーを停止しました。この時点で、pulseaudioは管理対象のsystemdによって停止され、再起動されますpulseaudio.socket。その後、実行すると、pavucontrol次の結果が表示されます。

Pavucontrol再生タブ

Pavucontrol録音タブ

Pavucontrol出力デバイス

Pavucontrol入力デバイス

load moduleコマンドが設定した内容が間違っているようです。

しかし、私は結果を見ることに非常に興味があったので、pavucontrolはループバックとリマップが期待した方向を指していないことがわかりましたが、とにかくテストを始めました。

この経験はとても残念でした。これで、仮想マイク出力(TIRTAGT_MIC_OUT)が私のスピーカーから聞こえます。これは何とかTIRTAGT_SINKにループ/リダイレクトされていることを意味しますpavucontrol

マイクをスピーカーに接続する必要があるのはなぜですか?

だから再起動をやり直したいと思いましたpulseaudio -k。その時点で、systemdはすぐにpulseaudioサーバーを再起動しました。

残念ながら同じ結果です。

だから今回は… systemctl --user stop pulseaudio.socket pulseaudio.service。 Pulseaudioが動作を停止したようです。しかし、実行されていないことを確認するために別のものを実行し、手動で起動しpulseaudio -kましたpulseaudio -D

これで、Pulseaudioが次のように再実行されますpavucontrolここに画像の説明を入力してください。

ここに画像の説明を入力してください。

*評判が10未満の人は最大8つのリンクを持つことができるため、2つのタブを省略しましたが、これはsystemdシナリオとまったく同じです。

ループバックと再マッピングが私の目には正確に見えたので、もう一度テストすることにしました。これでFFMPEGを実行し、受信機を指しながらデスクトップオーディオを録音できますTIRTAGT_MIC_IN

スクリーンレコーダーキャプチャTIRTAGT_Mixed_OUT、すべてがうまく動作します!

pulseaudio -D &だから私はsystemdを無効にしておき、セッションログイン時にpulseaudioを起動するために私のファイルを置こうと思いました~/.xsession

その後、コンピュータをシャットダウンして再起動し、トップパネルのxfce4-pulseaudio-pluginを見て、pulseaudioがオンラインになったので、もう一度テストを始めました!

驚くべきことに、今ターミナルから始めたときにやったことの代わりに、systemdがパルスオーディオを始めるのと同じように、すべてがめちゃくちゃになりました。

ここで何が起こっているのか分かりません。どうぞよろしくお願いします!

さて、pulseaudio -D &セッションが開始されるたびに実際にコマンドを入力できますが、実際には可能であれば手動で入力しないことをお勧めします。

ベストアンサー1

おすすめ記事