了解 asoundrc 和 hdmi 输出

了解 asoundrc 和 hdmi 输出

我在 lenovo x220t 上运行 nixos。启动时,它会找到模拟扬声器并在 alsamixer(或 pavucontrol)中仅显示它们。但是,当连接到 hdmi 显示器/电视时,我可以通过扬声器播放声音,例如通过speaker-test -c 2 -D hw:0,3

在网上搜索了一下,我找到了这个脚本,

pcm.!default{
type plug
slave.pcm "hdmivol"
}

pcm.hdmi-playback{
type hw
card 0
device 3
}

pcm.hdmivol{
type softvol
slave.pcm "hdmi-playback"
control {
    name "Master"
    card 0
 }
}

如果调用该~/.asoundrc脚本,声音将通过我的 HDMI 电视/显示器播放。但要将包切换到我的笔记本电脑,我必须重命名脚本并注销并重新登录。

显然一切都正常,但我不明白:1. 为什么我可以直接看到并使用所有设备(例如使用扬声器测试),但 alsamixer 和 pulseaudio 却“看不到”它们?2. 有人可以提供一些有关 asoundrc 结构的见解吗?我没有在手册上取得很大进展,我不清楚为什么这个脚本有三个版本的设备相互引用。我怀疑有一种方法可以为 hw:0,0 和 hw:0,3 指定一个别名,这样我就可以在不注销和登录的情况下切换它们。

提前致谢。

相关内容