K propojení systémových zvuků a mikrofonu používám pulzní audio smyčky. Problém je v tom, že zvuky mého systému mají zpoždění sekundy nebo někdy i více. Změnil jsem zaškrtnuté současně v paprefs
ale tím se to nevyřešilo. K tomu používám tento 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
Prošel jsem stránky google, ale zdá se, že to nic nevyřeší. Je něco zjevného, co mi chybí?
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
jsou všechny zvuky mého systému.
alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono
je můj mikrofon
Zde je příklad, kdy se zpoždění stane 3,4 sekundy:http://screencloud.net/v/tNAQ, zatímco druhá smyčka má mnohem méně http://screencloud.net/v/suIF
Z toho, co mohu říct, z nějakého důvodu se vyrovnávací paměť plní. Nějakým způsobem to můžu spláchnout nebo tak něco?
Přijatá odpověď:
Našel jsem dočasné východisko, ale stále mě to mate. Vytvořil jsem kombinovaný modul a poté propojím každý zdroj zvuku, který chci, s kombinovaným, který pak směruje do mých systémových zvuků a do jímky 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
Pravděpodobně existuje způsob, jak mohu získat výsledky pacmd list-clients
a poté vyčistit pouze platné zdroje, změnit jejich výstup na kombinovanou jímku, ale to by trvalo příliš dlouho a složitě.
I když nyní vyvstává nový problém a dokonce jsem to testoval spuštěním příkazu přes terminál. Z nějakého důvodu nemohu změnit výstupní jímku Java. Zde je to, co jsem zkusil a co to vrátilo:
[email protected]:~$ pacmd move-sink-input 6421 124
Welcome to PulseAudio! Use "help" for usage information.
>>> Moved failed.
Zkoušel jsem to i s ostatními a všichni fungovali. 6421 je index Java a 124 je index sink.
Související:Jak:Změnit ikonu v 16.04?