So verbinden Sie bestimmte Pulseaudio-Clients

So verbinden Sie bestimmte Pulseaudio-Clients

Ich habe zwei Anwendungen, die über laufen padsp. Wie kann ich (hoffentlich zur Laufzeit) sicherstellen, dass die Ausgabe der ersten von der zweiten aufgezeichnet wird?

Antwort1

Geben Sie den OSS-Anwendungen und den Streams beim Starten zunächst Namen, damit sie leichter zu identifizieren sind:

padsp -n oss_play -m oss_output your/playback/app
padsp -n oss_rec  -m oss_input  your/recording/app

Um die Ausgabe von einer App in die andere weiterzuleiten, verwenden wir einen Null-Sink und den zugehörigen Monitor. Laden Sie ihn über die Befehlszeile:

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

Nun können Sie entweder pavucontrolmit die Ausgabe vonoss_playZuOSS-Rohrund die Eingabe vonoss_recZuMonitor der OSS-Pipeüber die GUI. Oder Sie können wieder die Kommandozeile verwenden, um die Indexnummer der Streams zu ermitteln mit

pacmd list-sink-inputs
pacmd list-source-outputs

Die Ausgabe ist nicht besonders analysierfreundlich, aber wenn Sie ein Skript verwenden möchten,sgrepfunktioniert (für „oss_play“, ähnlich für „oss_rec“):

sgrep '"index: "__"\n" in ("index" .. ("index" or end)  containing "application.name = \"oss_play\"")'

Angenommen, die Indizes sind 3 bzw. 17. Verschieben Sie sie abschließend:

pacmd move-sink-input 3 oss_pipe
pacmd move-sink-output 17 oss_pipe.monitor

Wenn module-stream-restoregeladen ist (Standard), merkt sich Pulseaudio die Standardquellen/-senken für diese Anwendungen, solange es aktiv ist, und verbindet sie automatisch für Sie, wenn Sie sie erneut starten.

verwandte Informationen