有时我的 USB 耳机麦克风会从我的输入设备列表中消失。重新连接耳机不起作用,但杀死 Pulseaudio 可以:
pulseaudio -k
当 Pulseaudio 开始备份时,我的 USB 耳机同时出现在输入和输出设备下并且工作正常。
问题是关闭 Pulseaudio 也会使所有使用它的应用程序崩溃,或者让它们没有声音。这意味着我必须重新启动 Skype、Steam、XChat、任何正在运行的视频播放器(SMPlayer 崩溃)、任何正在运行的游戏等。
有没有办法在不终止正在运行的 Pulseaudio 实例的情况下强制重新加载所有设备?
有趣的是,当我通过重启 Pulseaudio 让我的 USB 耳机工作时,重新连接耳机将只显示输出设备。我必须在连接耳机的情况下再次重启 Pulseaudio 才能显示输入设备。
编辑:pavuvontrol
在“配置”下检查:
重新启动 Pulseaudio 后,列表中会出现一个以“+ 数字立体声输入”(或类似名称)结尾的附加配置文件,默认情况下会选中该配置文件。
我一直在为同样的问题苦恼一段时间,终于有机会看看它了。事实证明,卸载和重新加载负责音频设备的 Pulseaudio 模块对我有用。
手动卸载和重新加载模块
在终端窗口中,输入命令
并从输出中找到缺少配置文件的音频设备。您可能会得到几张卡片,并且需要找到正确的一张。我的看起来像这样:
从您的输出中,查找“ owner module ”行。这是您需要卸载的模块,但您需要先查看它的参数,以便重新加载它。输入命令
并找到驱动您的卡的模块。同样,在我的案例中,输出的相关部分如下所示(索引与pacmd list-cards输出中的所有者模块相匹配):
您将需要模块名称和参数来重新加载它。
要卸载模块,请输入命令(将模块索引替换为输出中的适当值)
要在卸载后重新加载模块,请输入命令
将module-name和module-arguments替换为pacmd list-modules的输出值。去掉尖括号。
现在应该重新加载模块,幸运的是你的耳机配置文件又回来了。
应用自动化
如果你需要经常重置你的设备,上面的步骤是很多工作,因为模块索引不断变化,你需要每次都查找它。我为自己编写了一个 shell 脚本来自动执行最糟糕的操作:
当不带参数运行时,脚本会列出 Pulseaudio 知道的卡片。当卡片名称的一部分作为参数给出时,脚本会尝试卸载并重新加载相关的 Pulseaudio 模块。