PulseAudio 环回延迟

Vil*_*sol 5 sound pulseaudio

我正在使用pulseaudio环回将我的系统声音和麦克风连接在一起。问题是我的系统声音有时会延迟一秒甚至更长。我已经同时更改了勾选,paprefs但这还没有解决它。我正在使用这个脚本来执行此操作。

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
Run Code Online (Sandbox Code Playgroud)

我已经浏览了谷歌页面,但似乎没有任何解决办法。我是否缺少一些明显的东西?

alsa_output.pci-0000_00_1b.0.analog-stereo.monitor都是我的系统声音。

alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono是我的麦克风

下面是一个延迟变为 3.4 秒的示例:http://screencloud.net/v/tNAQ,而另一个环回的延迟要少得多http://screencloud.net/v/suIF

据我所知,由于某种原因缓冲区已满。有什么办法可以冲洗它或什么吗?

Vil*_*sol 5

我找到了暂时的出路,但这仍然让我困惑。我制作了一个组合模块,然后将我想要的每个声源链接到组合模块,然后将其路由到我的系统声音和流媒体接收器。

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
Run Code Online (Sandbox Code Playgroud)

可能有一种方法可以 grep 的结果pacmd list-clients,然后仅清除有效的源,将其输出更改为组合接收器,但这将花费太长且复杂的时间。

虽然现在出现了一个新问题,我什至通过通过终端运行命令来测试它。由于某种原因,我无法更改 Java 的输出接收器。这是我尝试过的以及它返回的结果:

vilsol@skynet:~$ pacmd move-sink-input 6421 124
Welcome to PulseAudio! Use "help" for usage information.
>>> Moved failed.
Run Code Online (Sandbox Code Playgroud)

我也和其他人一起尝试过,他们都成功了。6421是Java索引,124是sink索引。