可以比@MikWind提出的改进做得更进一步,并在创建时配置回送设备的源。
我终于有了一个bash脚本来设置所有常量:
#!/bin/bash
MICROPHONE="alsa_input.pci-0000_00_1b.0.analog-stereo"
SPEAKERS="alsa_output.pci-0000_00_1b.0.analog-stereo"
# Create the null sinks
# virtual1 gets your audio source (mplayer ...) only
# virtual2 gets virtual1 + micro
pactl load-module module-null-sink sink_name=virtual1 sink_properties=device.description="virtual1"
pactl load-module module-null-sink sink_name=virtual2 sink_properties=device.description="virtual2"
# Now create the loopback devices, all arguments are optional and can be configured with pavucontrol
pactl load-module module-loopback source=virtual1.monitor sink=$SPEAKERS
pactl load-module module-loopback source=virtual1.monitor sink=virtual2
pactl load-module module-loopback source=$MICROPHONE sink=virtual2
经过数小时的努力使自己无法理解之后,我将自己的研究结果(脚本,文档链接,说明)汇总到了git repo中。
我不确定是否清楚是否可以对我以外的其他人有用,但是我希望我自己进行研究时能找到此类文档,所以我建议任何尝试做同样事情的人看一看。