如何强制 pulseaudio 默认使用正确的声卡、设备、端口?

如何强制 pulseaudio 默认使用正确的声卡、设备、端口?

注意:出现此问题的原因是 Pulsaudio 忽略了用户在设置声音菜单中设置的设置。

如何强制 pulsaudio 默认使用正确的音频设备?

系统:

  • Ubuntu 21.10;NVidia gtx1050ti。

配置:

  • 4k 显示器插入 DP 端口;
  • hdmi2av 适配器插入 hdmi 端口;
  • 模拟立体声插入 hdmi2av 转换器。

期望的结果:

  • 显示器上的 4k 视频;
  • 立体声高清音效。

实际结果:

  • 有4k视频;
  • 启动并恢复后, HDMI 端口没有声音。

无声音的原因:系统未默认使用正确的设备。在启动和恢复时,默认为内置扬声器。

所采取的行动:

  • 操作,第 1 部分:使用“设置”手动设置正确的设备。

  • 操作第 1 部分结果:声音正常。但在恢复或重新启动后,声音恢复为内部声音。

  • 行动,第 2 部分:

    • 重启
    • 将此行添加到 /etc/pulse/default.pa... : set-default-sink alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1
    • 命令:pulseaudio --kill
    • 命令:pulseaudion --start
  • 操作第 2 部分结果:设置现在显示正确的声音设备,以及来自 HDMI 端口的音频。

问题:

每次重新启动和恢复时,都必须输入命令pulseaudio --kill/--start

问题:

如何强制 pulseaudio 默认使用正确的音频卡、设备、端口,而不需要总是:a/ 输入命令kill/start;或 b/ 重新启动或重启?

答案1

经过一年的阅读,我读了所有能找到的资料,并进行了多次反复尝试,我可能终于找到了答案。这个过程极其复杂、隐蔽且令人沮丧。以下是我发现的过程、命令、结果和解决方案...

  1. 查找 HDMI 输出

    $ aplay -l
    

    返回...

    card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    
  2. 测试正确的卡

    $ aplay -D plughw:1,7 /usr/share/sounds/alsa/Noise.wav
    

    ...如果听到噪音,则卡+设备正确

    (在找到正确的卡+设备之前不要继续)

  3. 查找计算机中的 pulseaudio 接收器

    $ pactl list sinks
    

    返回...

    3 alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1   module-alsa-card.c      s16le 2ch 44100Hz
    
  4. 手动配置 PulseAudio 以检测 Nvidia HDMI

    sudo gedit /etc/pulse/default.pa
    

    在 default.pa 的底部输入以下几行...

    load-module module-alsa-sink device=hw:1,7
    set-sink-port alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1
    

    保存并关闭 gedit

重新启动 PulseAudio:

 $ pulseaudio --kill
 $ pulseaudio --start

打开设置,并检查声音设置

是否列出了正确的音频设备?

  1. 关闭机器电源,然后打开重新启动

打开设置,并检查声音设置

是否选择了正确的音频设备作为默认设备?如果是,完成!

答案2

解决了!

我最诚挚地感谢 Pulseaudio 的 Igor Kovalenko 最终解决了这个问题。

步骤1:验证正确的卡(如上)。

就我而言,相关地址是:

alsa_card.pci-0000_01_00.1

第 2 步:设置粘性

调用终端并输入:

$ pactl 发送消息 /card/alsa_card.pci-0000_01_00.1 获取配置文件粘性

这应该返回值:false。

通过此命令将 false 更改为 true:

$ pactl 发送消息 /card/alsa_card.pci-0000_01_00.1 设置配置文件粘性 true

重新启动计算机:关闭/打开电源。

笔记:

如果 Ubuntu 的人们将 pavucontrol 5.0 的更新版本添加到存储库中,那么上述所有内容都不是必需的

Pavucontrol 5.0 具有 GUI 来选择和锁定 HDMI 卡 + 端口。之前的版本(例如存储库中的 4.2)没有此功能。

相关内容