
Tengo dos aplicaciones ejecutándose a través de padsp
. ¿Cómo puedo (con suerte en tiempo de ejecución) asegurarme de que el resultado del primero se registre en el segundo?
Respuesta1
Primero, cuando inicie las aplicaciones OSS, proporcióneles nombres a ellas y a las transmisiones para que sea más fácil identificarlas:
padsp -n oss_play -m oss_output your/playback/app
padsp -n oss_rec -m oss_input your/recording/app
Para canalizar la salida de una aplicación a la otra, usaremos un receptor nulo y el monitor asociado. Cárgalo desde la línea de comando:
pacmd load-module module-null-sink sink_name=oss_pipe sink_properties=device.description=OSS-Pipe
Ahora puedes usar pavucontrol
para configurar la salida deoss_playaTubería OSS, y la entrada deoss_recaMonitor de tubería OSSusando la GUI. O puede usar nuevamente la línea de comando para identificar el número de índice de las transmisiones con
pacmd list-sink-inputs
pacmd list-source-outputs
El resultado no es particularmente fácil de analizar, pero si desea utilizar un script,sgrepfunciona (para "oss_play", de manera similar para "oss_rec"):
sgrep '"index: "__"\n" in ("index" .. ("index" or end) containing "application.name = \"oss_play\"")'
Digamos que los índices son 3 y 17, respectivamente. Finalmente, muévelos:
pacmd move-sink-input 3 oss_pipe
pacmd move-sink-output 17 oss_pipe.monitor
Si module-stream-restore
está cargado (predeterminado), pulseaudio recordará las fuentes/disipadores predeterminados para esas aplicaciones siempre que esté activo, y las conectará automáticamente cuando las inicie nuevamente.