我刚开始使用 PulseAudio 来路由源,但如何创建以下设置?
我有一些源 X,我可以使用 pavucontrol 将其设置为某些特定应用程序的音频输入。源 X 包括:来自插入的麦克风的音频,以及来自应用程序 A 的音频(甚至可能还有更多应用程序,但只要我能够切换正在输入的应用程序,就不是 100% 需要)
来源 X 应该不是在我的实际扬声器中可以听到,仅用作某些应用程序的源。
我一直无法弄清楚这一点 - 我已经尝试了一些类似问题的解决方案,但它们总是以耳机中的音频或无限回声结束。
如果在 Pulse 中无法做到这一点,那么我该怎么做呢?如果唯一的解决方案是使用 JACK,我可以尝试让它工作,但 Pulse 是首选。
谢谢
答案1
您可以使用 pactl 命令(PulseAudio ConTroL)创建虚拟扬声器
pactl load-module module-null-sink sink_name=sourceX sink_properties=device.description=Source-X-speaker
现在将麦克风输出复制到该虚拟扬声器:
pactl load-module module-loopback sink_dont_move=true sink=sourceX
此命令将获取您的默认系统麦克风,如果您想选择不同的添加选项 source=,您可以使用此命令找到您的麦克风:pactl list sources short
。你真正的麦克风通常会包含alsa
这样的词alsa_input.pci-0000_00_1f.3.analog-stereo
现在打开 pavucontrol 并将您的应用程序重定向到虚拟扬声器。您也可以通过命令来完成此操作,但这里的 GUI 更容易。
有些程序(如 Firefox 或 simplescreenrecorder)允许将此扬声器用作麦克风,但有些程序则不允许(如 chrome 或任何 chromium/电子应用程序,如不和谐)。您可以创建一个虚拟麦克风,其中包含发送到虚拟扬声器的所有声音。使用此命令创建一个:
pactl load-module module-remap-source source_name=sourceXmic master=sourceX.monitor source_properties=device.description=Source-X-microphone
现在请将 Source-X-microphone 设置为任何想要使用的程序中的麦克风/源