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
 }
}

これを呼び出すと、~/.asoundrcHDMI テレビ/モニターからサウンドが再生されます。ただし、パックをラップトップに切り替えるには、スクリプトの名前を変更し、ログアウトして再度ログインする必要があります。

明らかに動作はしていますが、理解できません。1. すべてのデバイスを直接表示して使用できるのに (たとえば、スピーカー テストを使用)、alsamixer と pulseaudio ではデバイスが「表示されない」のはなぜですか。2. asoundrc の構造について、どなたか詳しい説明をいただけませんか。マニュアルをあまり読み進めることができず、このスクリプトに 3 つのバージョンのデバイスが相互参照されている理由がよくわかりません。また、hw:0,0 と hw:0,3 のエイリアスを指定して、ログアウトしてログインしなくても切り替えられるようにする方法があるのではないかと思います。

前もって感謝します。

関連情報