Cómo conectar clientes pulseaudio específicos

Cómo conectar clientes pulseaudio específicos

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 pavucontrolpara 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-restoreestá cargado (predeterminado), pulseaudio recordará las fuentes/disipadores predeterminados para esas aplicaciones siempre que esté activo, y las conectará automáticamente cuando las inicie nuevamente.

información relacionada