Sto usando i loopback di pulseaudio per collegare insieme i suoni del mio sistema e il mio microfono. Il problema è che i suoni del mio sistema hanno un ritardo di un secondo o anche di più a volte. Ho cambiato barrato simultaneo in paprefs
ma questo non l'ha risolto. Sto usando questo script per farlo.
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
Ho sfogliato le pagine di google, ma nulla sembra risolverlo. C'è qualcosa di ovvio che mi sfugge?
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
sono tutti i miei suoni di sistema.
alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono
è il mio microfono
Ecco un esempio in cui il ritardo diventa 3,4 secondi:http://screencloud.net/v/tNAQ mentre l'altro loopback ha molto meno http://screencloud.net/v/suIF
Da quello che posso dire, per qualche motivo il buffer si riempie. In qualche modo posso svuotarlo o qualcosa del genere?
Risposta accettata:
Ho trovato una via d'uscita temporanea, ma questo mi confonde ancora. Ho creato un modulo combinato, dopodiché collego ogni sorgente sonora che voglio a quella combinata, che poi viene indirizzata ai suoni del mio sistema e allo Streaming sink.
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
Probabilmente c'è un modo in cui posso grep i risultati di pacmd list-clients
e quindi ripulisci solo le sorgenti valide, cambia il loro output nel sink combinato, ma ciò richiederebbe troppo tempo e complessità.
Anche se ora sorge un nuovo problema e l'ho persino testato eseguendo il comando tramite il terminale. Per qualche motivo non posso cambiare il sink di output di Java. Ecco cosa ho provato e cosa ha restituito:
[email protected]:~$ pacmd move-sink-input 6421 124
Welcome to PulseAudio! Use "help" for usage information.
>>> Moved failed.
Ho provato anche con altri e hanno funzionato tutti. 6421 è l'indice Java e 124 è l'indice sink.
Correlati:Come:cambiare un'icona in 16.04?