Bru*_*ola 15 sound pulseaudio microphone skype alsa
我能够使用 paprefs 并添加虚拟输出设备通过两个或多个输出/设备播放声音,如本答案所述: 通过两个或多个输出/设备播放声音
现在我希望能够对输入做同样的事情,所以基本上是从任何可用的有能力的设备收集声音输入并路由它,例如,Skype 或 Slack。这对我在大型会议室中非常有用,这样我就可以在周围分布多个扬声器/麦克风,以便在两种方式下都能获得良好的音质。
有人可以提出解决方案吗?
Bru*_*ola 21
所以基本上我在互联网上进行了大量挖掘后自己弄清楚了这一点。这是我在另一个论坛中找到的最佳答案,网址为http://www.pclinuxos.com/forum/index.php/topic,119695.msg905379.html#msg905379
基本上,您首先需要添加一个假通道,一个“空接收器”,用于收集输入。我们将称之为“输入”,我们将使用以下命令创建它:
pactl load-module module-null-sink sink_name=inputs
Run Code Online (Sandbox Code Playgroud)
之后,您需要为需要连接的设备创建尽可能多的虚拟通道,并将其链接到您之前创建的“输入”通道。因此,请对您想要混合的任何输入重复此命令(如果您还想混合笔记本电脑的输入,请添加一个):
pactl load-module module-loopback sink=inputs
Run Code Online (Sandbox Code Playgroud)
现在,您必须将这个新的“环回”通道连接到您打算从中进行录音的设备。您可以使用“pavucontrol”(如果缺少则安装),打开“Recording”选项卡,从底部选择器中选择“Virtual Streams”,然后确保将不同的输入连接到每个不同的回送。
此时,只需在您的应用程序中使用您的输入进行录音,就可以了!请记住还按照我的原始问题中的描述设置输出:)
我也很高兴收到任何更好的答案,因为此过程(即使它可以自动化)仍然容易出错,并且不会自动包含以后添加的新设备(您必须设置新频道并再次添加它们) .
小智 8
作为对Bruno Bossola 答案的补充,pactl load-module module-loopback
接受另一个参数source
,如果我们想使用单个 bash 脚本自动化该过程(即避免每次都使用pavucontrol
GUI),这会很有帮助。
我们可以使用以下命令获取名称:
pacmd list-sources | egrep '(^\s+name: .*)|(^\s+device.description = .*)'
Run Code Online (Sandbox Code Playgroud)
$ pacmd list-sources | egrep '(^\s+name: .*)|(^\s+device.description = .*)'
name: <alsa_input.hw_0_0>
device.description = "Built-in Audio"
name: <alsa_input.usb-046d_C922_Pro_Stream_Webcam_4B17D4DF-02.analog-stereo>
device.description = "C922 Pro Stream Webcam Analog Stereo"
name: <alsa_output.pci-0000_00_1f.3.analog-stereo.monitor>
device.description = "Monitor of Built-in Audio Analog Stereo"
name: <alsa_input.pci-0000_00_1f.3.analog-stereo>
device.description = "Built-in Audio Analog Stereo"
Run Code Online (Sandbox Code Playgroud)
假设我们想要将Monitor of Built-in Audio Analog Stereo
(计算机音频)与C922 Pro Stream Webcam Analog Stereo
(网络摄像头麦克风)结合起来,那么我们的脚本将如下所示:
#!/bin/bash
if [ "$1" == "-u" ]; then
pactl unload-module module-loopback
pactl unload-module module-null-sink
else
pactl load-module module-null-sink sink_name=combined sink_properties=device.description="NewInputName"
pactl load-module module-loopback source=alsa_input.usb-046d_C922_Pro_Stream_Webcam_4B17D4DF-02.analog-stereo sink=combined
pactl load-module module-loopback source=alsa_output.pci-0000_00_1f.3.analog-stereo.monitor sink=combined
fi
pacmd set-default-source combined.monitor #Set it as default
Run Code Online (Sandbox Code Playgroud)
基本上,如果在-u
调用脚本时发送选项,它将执行unload
所有操作,否则,它将创建null sink
并将麦克风与计算机音频组合到其中。
归档时间: |
|
查看次数: |
23585 次 |
最近记录: |