我需要知道如何在 Linux 中获取声音来执行特定操作

我需要知道如何在 Linux 中获取声音来执行特定操作

我想要的是将两个不同应用程序的声音输出彼此分开,并将其传输到声音编辑程序中。

我需要的是一种在记录中添加输出到播放选项卡的条目的方法。我需要其中两个。我不确定是否有 alsa(管道)命令来建立这两个连接,或者声子?

app1(output) > inputA --- outputA > editing app (input1)
app2(output) > inputB --- outputB > editing app (input2)

因此,我将输出设备设置为编辑应用程序的输入设备。这将在同一个编辑应用程序中为我提供两个独立的音频源。

答案1

使用 Pulseaudio,并且没有空接收器:

开始pavucontrol。启动所有应用程序。选择Output Devices,查看app1正在使用哪个输出设备。选择Input Devices,将input1其设置editing app.monitor您刚才看到的输出设备的输入。

如果您不想听到声音app1产生,而只想听到 的声音,editing app这会很不方便。因此创建一个空接收器:

pacmd load-module module-null-sink sink_name=app1sink

再次在 中pavucontrol,将输出设备设置为app1to app1sink,并将 of 设置input1editing appto app1sink.monitor

app2您可以使用额外的或使用相同的空接收器对 执行相同的操作app2sink。在后一种情况下app1, 和的声音输出app2将被混合。您可以使用pavucontrol(或应用程序内音量控制)单独调整每个添加的音量。

如果editing app(您没有命名)实际上无法使用两个不同的 ALSA/Pulseaudio 输入,并且您不满足于如上所述的单个空接收器的简单混合,那么它会变得更加复杂 - 在这种情况下您有决定如何你想在 Pulseaudio 中混合app1app2,所以单一输入 可以editing app做一些有用的事情。

答案2

杰克可以做这样的事情。

如果只有部分应用程序支持 JACK,则必须JACK 和 ALSA 之间的路线

如果您的应用程序都不支持 JACK,您也许可以使用该snd-aloop驱动程序来创建虚拟声卡。

相关内容