如何連接特定的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

要將一個應用程式的輸出透過管道傳輸到另一個應用程序,我們將使用空接收器和關聯的監視器。從命令列加載它:

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

現在您可以使用pavucontrol設定輸出oss_播放OSS-管線,以及輸入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 將記住這些應用程式的預設來源/接收器(只要它處於活動狀態),並在您再次啟動它們時自動為您連接它們。

相關內容