我在 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 指定一个别名,这样我就可以在不注销和登录的情况下切换它们。
提前致谢。