1.控制两个声卡同时输出声音
在/etc/目录下添加asound.conf文件进行两个声卡的控制,比如两个声卡一个“hw:0,0”,“hw:1,0”。
asound.conf内容:
pcm.!default {
type route
slave.pcm "quad"
ttable.0.0 1
ttable.1.1 1
}
pcm.quad {
type multi
slaves.a.pcm "hw:0,0"
slaves.a.channels 2
slaves.b.pcm "hw:1,0"
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave b
bindings.1.channel 0
bindings.1.channel 1
}
channel是左右声道的意思,因为这个HDMI只有一个声道所以配一个。
2.在asound.conf里面添加控件控制音量大小
1.asound.conf里面添加音量控制控件
pcm.!default {
type route
slave.pcm "quad"
ttable.0.0 1
ttable.1.1 1
}
pcm.quad {
type multi
slaves.a.pcm "hdmi_sound"
slaves.a.channels 2
slaves.b.pcm "es8156_sound"
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave b
bindings.1.channel 0
bindings.1.channel 1
}
pcm.es8156_sound {
type softvol
slave.pcm "hw:1,0"
control {
name "softvol_es8156_sound"
card 1
}
min_dB -40.0
max_dB 0.0
resolution 150
}
pcm.hdmi_sound {
type softvol
slave.pcm "hw:0,0"
control {
name "softvol_hdmi"
card 0
}
min_dB -40.0
max_dB 0.0
resolution 150
}
2.步骤1弄好后,执行/etc/init.d/alsa-utils restart,如果没有这个文件,那就直接重启设备。
3.重启设备后调用amixer -c 0 contents会找到softvol_hdmi控件,amixer -c 1 contents会找到softvol_es8156_sound控件。
4.对应控件找到的话直接调用amixer -c 0 sset 'softvol_hdmi',0 80%,80% unmute命令来调节音量。
这个命令使用 amixer
工具来设置音频控制器的音量大小。具体来说,命令中的参数含义如下:
-c 1
:指定声卡的索引号为 1。这表示您想要设置的是声卡1的音频控制器。sset
:设置音频控制器的值。'softvol_hdmi',0
:指定要设置的音频控制器的名称为'softvol_hdmi'
,并将其索引值设置为0
。这个名称和索引值通常是根据amixer -c 0 controls
或amixer -c 1 contents
命令的输出确定的。80%,80%
:将音频控制器的左右声道的音量都设置为80%
。这表示您将音量设置为80%
的水平。unmute
:取消静音状态,确保音频控制器处于非静音状态。