在 Ubuntu 18.04 中,我经常在笔记本电脑和耳机之间切换声音/麦克风。但是,我并不总是想通过 pavucontrol 来执行此操作,因为在某些应用程序运行时这样做很繁琐。
因此我想出了一个脚本,它使用各种 pactl 命令在需要时来回切换。
对于麦克风/源,我基本上执行以下步骤
pactl list short source-outputs
-> for each item I perform
pactl move-source-output <stream> <newSource>
pactl set-default-source <newSource>
当前正在录制音频的应用程序通过该move-source-output
命令正确切换。
但是 set-default-source 有时不起作用!在我看来,pulseaudio 似乎以某种方式“记住”了应用程序之前使用过的源,并自动为特定应用程序再次选择该源。例如,audacity 使用笔记本电脑麦克风,simplearecord
使用耳机麦克风,尽管目前默认设置为“笔记本电脑”。
但我想完全进行切换,即从现在开始所有应用程序都应该使用给定的源,直到我进行另一次切换。
有什么方法可以控制 pulseaudio 中的这种行为,使其不会变得智能并记住每个应用程序之前选择了哪个源/源输出?
我还查看了 /etc/pulse 和 ~/.pulse 中的文件,但找不到任何相关内容,也许是默认模块之一导致了这种情况?
答案1
我在 pulseaudio 文档中找到了答案https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/DefaultDevice/
有一个restore_device
模块选项module-stream-restore
,您可以将其设置为false
,通过以下内容/etc/pulse/default.pa
我得到了所需的行为:
load-module module-stream-restore restore_device=false