如何将应用程序的输出与 USB 麦克风结合起来进行录音?

如何将应用程序的输出与 USB 麦克风结合起来进行录音?

我想在语音聊天(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 的末尾

相关内容