Ich verwende pulseaudio Loopbacks, um meine Systemsounds und mein Mikrofon miteinander zu verbinden. Das Problem ist, dass meine Systemtöne manchmal eine Verzögerung von einer Sekunde oder sogar mehr haben. Häkchen gleichzeitig habe ich in paprefs
geändert aber das hat es nicht behoben. Ich verwende dazu dieses Skript.
STREAM_MODULE=$(pactl load-module module-null-sink sink_name=StreamAudio sink_properties=device.description="StreamAudio")
pactl load-module module-loopback source=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor sink=StreamAudio latency_msec=1 >> /dev/null
pactl load-module module-loopback source=alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono sink=StreamAudio latency_msec=1 >> /dev/null
pactl load-module module-device-manager >> /dev/null
read -p "Loaded! Press enter to unload!"
pactl unload-module $STREAM_MODULE
pactl unload-module module-device-manager
pactl unload-module module-null-sink
pactl unload-module module-loopback
Ich habe Seiten von Google durchgesehen, aber nichts scheint es zu beheben. Gibt es etwas offensichtliches, das ich vermisse?
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
sind alle meine Systemsounds.
alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono
ist mein Mikrofon
Hier ist ein Beispiel, bei dem die Verzögerung 3,4 Sekunden beträgt:http://screencloud.net/v/tNAQ, während der andere Loopback viel weniger http://screencloud.net/v/suIF
hatSoweit ich das beurteilen kann, füllt sich der Puffer aus irgendeinem Grund. Irgendwie kann ich es spülen oder so?
Akzeptierte Antwort:
Ich habe einen vorübergehenden Ausweg gefunden, aber das verwirrt mich immer noch. Ich habe ein kombiniertes Modul erstellt, und danach verknüpfe ich jede gewünschte Soundquelle mit dem kombinierten Modul, das dann zu meinen Systemsounds und zur Streaming-Senke leitet.
STREAM_MODULE=$(pactl load-module module-null-sink sink_name=StreamAudio sink_properties=device.description="StreamAudio")
COMBINE_MODULE=$(pactl load-module module-combine-sink sink_name=Combined sink_properties=device.description="Combined" slaves=StreamAudio,alsa_output.pci-0000_00_1b.0.analog-stereo)
pactl load-module module-loopback rate=44000 adjust_time=0 source=alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono sink=StreamAudio latency_msec=1 >> /dev/null
pactl load-module module-device-manager >> /dev/null
read -p "Loaded! Press enter to unload!"
pactl unload-module $COMBINE_MODULE
pactl unload-module $STREAM_MODULE
pactl unload-module module-device-manager
pactl unload-module module-loopback
Es gibt wahrscheinlich eine Möglichkeit, die Ergebnisse von pacmd list-clients
abzurufen und dann nur gültige Quellen bereinigen, ihre Ausgabe auf die kombinierte Senke ändern, aber das würde zu lange und zu komplex dauern.
Obwohl jetzt ein neues Problem auftaucht, habe ich es sogar getestet, indem ich den Befehl über das Terminal ausgeführt habe. Aus irgendeinem Grund kann ich die Ausgabesenke von Java nicht ändern. Folgendes habe ich versucht und zurückgegeben:
[email protected]:~$ pacmd move-sink-input 6421 124
Welcome to PulseAudio! Use "help" for usage information.
>>> Moved failed.
Ich habe es auch mit anderen versucht und alle haben funktioniert. 6421 ist der Java-Index und 124 der Senkenindex.
Siehe auch:Gewusst wie:Ändern Sie ein Symbol in 16.04?