我正在尝试找出如何卸载 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 命令会删除录音设备,但我找不到输出命令。
答案1
卸载模块的适当方法
卸载加载到 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 <name>
快速而肮脏的方法
如果将 pulseaudio 设置为自动生成恶魔(这应该是默认行为),我们可以通过重置 PulseAudio 服务器来快速卸载登录后加载的所有模块,以通过default.pa
运行以下命令加载我们定义的默认模块:
pulseaudio -k
这将有效地从脚本中卸载所有模块并加载默认的输出接收器。