我通过 运行了两个应用程序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_play到OSS管道,以及输入oss_rec到OSS-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 会在应用程序处于活动状态时记住这些应用程序的默认源/接收器,并在您再次启动它们时自动为您连接它们。