
我有兩個應用程式通過 運行padsp
。我如何(希望在運行時)確保第二個記錄第一個的輸出?
答案1
首先,當您啟動 OSS 應用程式時,為它們和流提供名稱,以便更容易識別它們:
padsp -n oss_play -m oss_output your/playback/app
padsp -n oss_rec -m oss_input your/recording/app
要將一個應用程式的輸出透過管道傳輸到另一個應用程序,我們將使用空接收器和關聯的監視器。從命令列加載它:
pacmd load-module module-null-sink sink_name=oss_pipe sink_properties=device.description=OSS-Pipe
現在您可以使用pavucontrol
設定輸出oss_播放到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 將記住這些應用程式的預設來源/接收器(只要它處於活動狀態),並在您再次啟動它們時自動為您連接它們。