最近我遇到一个问题,启动一个需要访问我的麦克风的应用程序会将我在 pavucontrol 中设置的音频配置文件从“专业音频”更改为其他内容。
例如,在使用 Discord 时,这种情况尤其会发生。每次我加入频道时,我都需要进入 pavucontrol,将配置文件改回“专业音频”,然后我还必须在 discord 中明确设置我的输入/输出到该设备。在 discord 中将输入/输出设置为“默认”似乎会导致音频服务器完全崩溃。
我对 Linux 音频世界还比较陌生,但据我所知,Discord 使用的是 PulseAudio,我可以使用 pipewire-pulse(请参阅下面的配置)。但它不应该改变我正在运行的设备配置文件,对吗?
当我检查时,pw-cli e <device-id> Profile
我可以看到该配置文件确实可用、已被选择并且设置为保存。
非常感谢有关如何调试/修复此问题的任何建议。
我正在使用 NixOS,我的音频设备是 Focusrite Scarlett Solo 4th Gen。
这是我的 Nix 音频配置:
configuration.nix
:
{ config, pkgs, ... }:
{
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
wireplumber.enable = true;
jack.enable = true;
extraConfig = {
pipewire."92-low-latency" = {
context.properties = {
default.clock.rate = 192000;
default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 ];
default.clock.quantum = 512;
default.clock.min-quantum = 32;
default.clock.max-quantum = 1024;
};
};
};
};
environment.systemPackages = with pkgs; [
pavucontrol
helvum
alsa-utils
];
}
easyeffects.nix
:
{ pkgs, config, ... }: {
services.easyeffects = {
enable = true;
preset = "default";
};
home.file = {
".config/easyeffects/output/default.json" = {
source = config.lib.file.mkOutOfStoreSymlink ../loose-configs/easyeffects/output/default.json;
};
};
}