我需要编写一个~/.asoundrc
文件来配置一些音频设备,因为我需要能够从这些设备中选择单个通道。
因为我对 alsa 不是很有经验,所以我开始寻找一个主题简介。它指出基本.asoundrc
文件看起来像这样:
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
但我不知道这个ctl
选项有什么用。我在ALSA 文档仍然没有向我清楚地解释:
“pcm”选项会影响哪张卡和设备将用于音频播放,而“ctl”选项会影响哪张卡被 alsamixer 等控制实用程序使用。
pcm
和有什么区别ctl
?它们的用途是什么?什么时候使用哪一个?
更新
我现在可以在同一台设备但通过两个不同的频道播放不同的音频流:
pcm.USB_hw{
type hw
format S16_LE
rate 48000
card 2
device 0
subdevice 0
channels 2
}
pcm.USB_dmix{
type dmix
ipc_key 1111
slave.pcm "USB_hw"
hint {
description "Direct sample mixing device"
}
}
pcm.OUTPUT0 {
type plug
slave.pcm {
type route
slave.pcm "USB_dmix"
ttable{
0.0 0
1.1 1
}
hint {
description "Playback channel 0 over USB"
}
}
}
pcm.OUTPUT1 {
type plug
slave.pcm {
type route
slave.pcm "USB_dmix"
ttable {
0.0 1
1.1 0
}
hint {
description "Playback channel 1 over USB"
}
}
}
OUTPUT0
运行正常,但我无法访问这些插件(和OUTPUT1
)的音量alsamixer
。此访问可能是在ctl
选项中配置的,但我从未使用过。
问题是如何配置ctl
才能让这些插头显示在alsamixer
?
有可能吗?