Estoy usando loopback de pulseaudio para vincular los sonidos de mi sistema y mi micrófono. El problema es que los sonidos de mi sistema tienen un retraso de un segundo o incluso más a veces. He cambiado marcado simultáneo en paprefs
pero eso no lo ha solucionado. Estoy usando este script para hacerlo.
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
He pasado por páginas de google, pero nada parece solucionarlo. ¿Hay algo obvio que me estoy perdiendo?
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
son todos los sonidos de mi sistema.
alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono
es mi micrófono
Aquí hay un ejemplo en el que el retraso se convierte en 3,4 segundos:http://screencloud.net/v/tNAQ mientras que el otro loopback tiene mucho menos http://screencloud.net/v/suIF
Por lo que puedo decir, por alguna razón el búfer se llena. ¿Hay alguna manera de que pueda descargarlo o algo así?
Respuesta aceptada:
He encontrado una salida temporal, pero esto todavía me confunde. Creé un módulo combinado, y luego vinculo cada fuente de sonido que quiero al combinado, que luego se enruta a los sonidos de mi sistema y al sumidero de Streaming.
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
Probablemente haya una forma en que pueda grep los resultados de pacmd list-clients
y luego limpie solo las fuentes válidas, cambie su salida al sumidero combinado, pero eso llevaría demasiado tiempo y sería demasiado complejo.
Aunque ahora surge un nuevo problema, e incluso lo probé ejecutando el comando a través de la terminal. Por alguna razón, no puedo cambiar el sumidero de salida de Java. Esto es lo que probé y lo que devolvió:
[email protected]:~$ pacmd move-sink-input 6421 124
Welcome to PulseAudio! Use "help" for usage information.
>>> Moved failed.
Probé con otros también y todos funcionaron. 6421 es el índice de Java y 124 es el índice receptor.
Relacionado:Cómo:¿Cambiar un ícono en 16.04?