我想在语音聊天(discord、teamspeak、skype 等)中使用我的 USB 麦克风
但我也想偶尔包含其他应用程序的声音,例如 Firefox YouTube 播放
因此,当我按下通话键时,不仅我的声音会被传输,而且我的应用程序的声音也会被传输。
答案1
从概念上来说,我决定创建两个虚拟接收器:
- “record_as_input”,我的所有应用程序都会将音频路由到该输入端,但它也会路由到我的主声卡,这样我仍然可以听到应用程序的声音
- “combined_input” 结合了 record_as_input(应用程序)和我的麦克风(我的声音)
pactl load-module module-null-sink sink_name="combined_input" sink_properties=device.description="combined_input"
pactl load-module module-null-sink sink_name="record_as_input" sink_properties=device.description="record_as_input"
所以我仍然可以听到音频:
pactl load-module module-loopback source=record_as_input.monitor sink=alsa_output.pci-0000_00_1f.3.analog-stereo
将录制的应用程序路由到组合接收器:
pactl load-module module-loopback source=record_as_input.monitor sink=combined_input
将麦克风连接至组合水槽:
pactl load-module module-loopback source=alsa_input.usb-AKM_AK5370-00.mono-fallback sink=combined_input
更改默认源,以便 Discord 等程序可以使用默认输入设备:
pacmd set-default-source combined_input.monitor
您可以使用以下方式找到源和接收器:
pactl list short sources
pactl list short sinks
现在您需要使用 pavucontrol 路由音频,如下所示:
Loopback from Monitor of record_as_input -> Your main output/speakers
Loopback from Monitor of record_as_input -> combined_input
Loopback from AK5370 I/F A/D Mono (your microphone) -> combined_input
Firefox (or any other app) -> record_as_input
如果您不再需要将应用程序混合到默认输入中,请将其更改回主输出/扬声器。
为了使设置永久生效,我已将上述命令(不带 pactl/pacmd)添加到 /etc/pulse/default.pa 的末尾