Alsa - 我如何知道我的默认音频输出是卡 2 和设备 0,而不是 hdmi?

Alsa - 我如何知道我的默认音频输出是卡 2 和设备 0,而不是 hdmi?

如何判断我的系统默认声音输出是卡 2 和设备 0,而不是卡 2 设备 3、7 或 1?

我这样做了,但是没有声音。

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Device [C-Media USB Audio Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

$ cat /etc/asound.conf
#pcm.!default { 
#  type plug; 
#  slave { pcm "hw:2" } 
#} 
pcm.!default {
    type hw
    card 2
    device 0
}

答案1

如果您发现您的声卡不断切换索引,您将无法defaults.pcm.card 2/etc/asound.conf.一种(复杂的)方法可能有效,那就是使用您想要的优先级配置声音内核模块。

这种方法描述于Debian 错误 #614113:

  1. 跑步alsamixer;
  2. 使用 F6 并研究可用的声音设备
  3. 设置在设备上播放的正确级别;
  4. 运行一些允许选择声音设备的声音播放器(audacious例如);
  5. 使用您的声音设备(重复步骤 2,3)并决定默认值;
  6. 退出alsamixer和播放器;
  7. 以 root 身份登录;
  8. 运行lsmod | grep snd并尝试了解哪些模块对应于物理声音设备;
  9. 如果不确定步骤 2 中是否正确确定模块:转到/sys/module并检查名称以“snd”开头的所有目录。该目录的名称与模块完全相同。如果您将在检查目录中看到“drivers”目录 - 那么检查目录的名称是与物理声音设备对应的模块的名称。记住(用记事本写下)所有此类模块。
  10. 为您在步骤 2 和 3 中找到的每个模块运行 modinfo <module name> | grep desc 。阅读说明并决定该模块的优先级。这将是相应声音设备的优先级。
  11. /etc/modprobe.d;
  12. 创造snd_cards_priorities.conf;
  13. 向 snd_cards_priorities.conf 写入如下内容:

    alias snd-card-0 <module for highest priority card>
    options <module for highest priority card> index=0
    alias snd-card-1 <module for lower priority card>
    options <module for lower priority card> index=1
    
  14. 保存存档;
  15. 使用命令重新启动 alsa /usr/sbin/alsa force-reload
  16. 运行 cat /proc/asound/cards 命令并检查声音设备的顺序是否正确(设备 #0 具有最高优先级);
  17. 重复步骤9、10几次,检查声音设备顺序没有改变;
  18. 退出根;

  19. 运行alsamixer并配置您的默认声音设备,退出alsamixer

  20. 使用您最喜欢的声音播放器来测试您的新配置。

答案2

要设置默认设备,您不应重新定义设备default,而只需将以下内容放入/etc/asound.conf

defaults.pcm.card 2      # or better "PCH"
defaults.pcm.device 0

这仅适用于实际使用默认设备而未显式指定设备的程序。如果某些程序(如 PulseAudio 或 VLC)已针对某些特定输出设备进行配置,则必须更改该配置。

相关内容