如何连接特定的 pulseaudio 客户端

如何连接特定的 pulseaudio 客户端

我通过 运行了两个应用程序padsp。我怎样才能(希望在运行时)确保第一个应用程序的输出被第二个应用程序记录下来?

答案1

首先,当您启动 OSS 应用程序时,请为它们和流命名,以便于识别它们:

padsp -n oss_play -m oss_output your/playback/app
padsp -n oss_rec  -m oss_input  your/recording/app

要将一个应用程序的输出导入另一个应用程序,我们将使用 null-sink 和关联的监视器。从命令行加载它:

pacmd load-module module-null-sink sink_name=oss_pipe sink_properties=device.description=OSS-Pipe

现在您可以使用pavucontrol设置输出oss_playOSS管道,以及输入oss_recOSS-Pipe监控使用 GUI。或者,您也可以使用命令行来识别流的索引号

pacmd list-sink-inputs
pacmd list-source-outputs

输出不是特别容易解析,但如果你想使用脚本,sgrep可以解决问题(对于“oss_play”,对于“oss_rec”类似):

sgrep '"index: "__"\n" in ("index" .. ("index" or end)  containing "application.name = \"oss_play\"")'

假设索引分别为 3 和 17。最后,移动它们:

pacmd move-sink-input 3 oss_pipe
pacmd move-sink-output 17 oss_pipe.monitor

如果module-stream-restore已加载(默认),pulseaudio 会在应用程序处于活动状态时记住这些应用程序的默认源/接收器,并在您再次启动它们时自动为您连接它们。

相关内容