У меня есть два приложения, работающие через 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_play для OSS-Pipe, а ввод oss_rec для Monitor OSS-Pipe с помощью графического интерфейса. Или вы можете снова использовать командную строку для определения номера индекса потоков с
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 запомнит источники / приемники по умолчанию для этих приложений, пока он активен, и автоматически подключит их при следующем запуске.