ALSAおよび/またはPulseを使用して他のプログラムで使用するオーディオソースを「公開」するにはどうすればよいですか?

ALSAおよび/またはPulseを使用して他のプログラムで使用するオーディオソースを「公開」するにはどうすればよいですか?

システムの他のプログラムで参照できる動的に名前付きオーディオソースを作成したいと思います。たとえば、次のようになります。

gst-launch-1.0 audiotestsrc ! alsapubsink name='Test Source'

次に、次のような他のプログラムがこれを参照します。

gst-launch-1.0 alsasrc device='Test Source' ! ... ! autoaudiosink

もちろん要素はありませんalsapubsink。 ALSA、Pulse、または私が知らない他のツールを使用してこの種の作業を実行する方法はありますか?

答え1

Pulseaudioから:「空の」受信機を作成する

pacmd load-module module-null-sink sink_name=public-sink-1 sink_properties=device.description=Public-Sink-1

次に、コマンドラインオプションまたはアプリケーションメニューオプション(利用可能な場合)を使用して、pavucontrol「参照」するすべてのサウンド出力をこのレシーバにリダイレクトします。

各Pulseaudioシンクには関連.monitorソースがあるため、他のアプリケーションはその関連ソースのオーディオを一般的な方法(ソース選択などpavucontrol)で録音または処理できます。

関連情報