1

У меня есть два приложения, работающие через padsp . Как я могу (надеюсь, во время выполнения) убедиться, что выходные данные первого записаны вторым?

1 ответ1

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 запомнит источники / приемники по умолчанию для этих приложений, пока он активен, и автоматически подключит их при следующем запуске.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .