
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 pavucontrol
mit 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-restore
geladen 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.