Pulseaudio环回卸载音频输出设备

我正试图找出如何卸载pulseaudio环回输出。 我正在使用pulseaudio创建一个环回混音来捕获我的麦克风和系统音频以进行流式传输。 每次我启动具有此代码的脚本时:

pactl load-module module-null-sink sink_name=mix pactl load-module module-loopback sink=mix pactl load-module module-loopback sink=mix avconv ... pactl unload-module module-loopback 

它关闭后会留下两个输出设备。 unload-module命令摆脱了录音,但我找不到输出的命令。

卸载模块的适当方法

卸载加载到Pulse Audio的模块由模块的索引号完成,该索引号在加载时给出:

 pactl load-module module-null-sink sink_name=test 24 

在上面的示例中,Pulseaudio服务器加载了索引ID为24的模块。 可以使用以下命令卸载此模块:

 pactl unload-module 24 

您的脚本必须解析pactl的输出。

如果我们不知道模块编号,我们可以发出以下命令,该命令将显示编号和模块名称:

 pactl list short modules 

较新版本还允许按名称卸载:

 pactl unload-module  

快速而肮脏的方法

如果pulseaudio被设置为自动生成恶魔(应该是默认值),我们可以通过重置PulseAudio服务器快速卸载登录后加载的所有模块,以通过运行以下命令加载我们的default.pa定义的默认模块:

 pulseaudio -k 

这将有效地从脚本中卸载所有模块,并将加载默认接收器以进行输出。