我正在运行一组需要链接音频的程序。
程序 1 生成需要静默路由到程序 2 的音频,然后程序 2 创建一个需要静默路由到程序 3 的新音频源。最后,程序 3 创建应发送到扬声器的音频。
谁能帮我弄清楚实现这一目标的最佳方法是什么?我成功地使用“sudo modprobe snd-aloop”将音频从程序 1 静默路由到程序 2,这为我提供了一个环回设备。
但现在我陷入了如何默默地将音频路由到程序 3 的问题上。哦,这不能通过管道来实现。
答案1
Pulseaudio,还是纯粹的 ALSA? Pulseaudio 最简单:创建一个虚拟接收器
pacmd load-module module-null-sink sink_name=tmpsink
并让程序1输出给它。程序2从tmpsink.monitor
源中读取。等等。所有这些都可以编写脚本。pacmd help
显示更多可能有用的命令,例如list-sink-inputs
、list-source-outputs
、 或move-sink-input
以及move-sink-output
如果您无法在命令行上为程序指定源和接收器。
在 ALSA 中这样做可能......很有趣。在我尝试在 ALSA 中做到这一点之前,我会尝试使用 Jack 来做到这一点。