各位。我有一个外部 USB 声卡,根据我的实际位置,系统中可能存在也可能不存在。以前我默认使用这张卡,所以像下面这样的配置工作得很好:
defaults.ctl.card 1
defaults.pcm.card 1
defaults.pcm.dmix.rate 176400
defaults.pcm.dmix.format S32_LE
defaults.timer.card 1
但由于可能根本没有这张卡,因此将其定义为默认值不再起作用,而我仍然需要重新定义pcm.dmix.rate
内置pcm.dmix.format
卡 0 的特定卡生活系统默认值(无论它们是什么)。
我做了一个简短的搜索,但只找到了定义虚拟 pcms 女巫的示例,这不是我要找的。
aplay -l 输出:
card 0: PCH [HDA Intel PCH], device 0: Generic Analog [Generic Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Pro [DX3 Pro], device 0: USB Audio [USB Audio] <- optional card of interest
Subdevices: 0/1
Subdevice #0: subdevice #0
然后这是我的外部卡,配置为完全工作的 dmix“设备”,具有正确的采样率和格式:
pcm.dx3proDM {
type dmix
ipc_key_add_uid true
ipc_key 2048 # mandatory, mast be unique
ipc_perm 0660
ipc_gid audio
slave {
pcm "hw:1"
rate 176400
format "S32_LE"
channels 2
period_time 0
period_size 1024
buffer_size 8192 # mandatory parameter
}
bindings {
0 0
1 1
}
}
问题是 dx3proDM 无法被系统使用(例如,我无法在 Audacous 中选择 ii 作为输出设备)。
我仍然需要重新定义默认值以指向它:
pcm.!default{
type plug
slave.pcm "dx3proDM"
}
再次将其设为默认值 - 与我想要做的完全相反。
这里有什么想法吗?
答案1
也许我仍然不明白这个问题,但我这样配置我的网络摄像头:
pcm.webcam {
type plug
slave {
pcm "front:U0x46d0x809"
rate 48000
format "S16_LE"
}
}
是否有任何原因无法像这样配置您的可选外部卡,使用您获得的名称,例如使用aplay -L
,并以这种方式设置您需要的任何参数(以及plug
),而不是使用defaults
?
因为如果您使配置卡特定,并webcam
在需要时手动选择插件作为输出,则没有理由使用defaults
.
问题是 dx3proDM 无法被系统使用(例如,我无法在 Audacous 中选择 ii 作为输出设备)。
它完全可用(尝试类似的东西aplay -D dx3proDM some_file.wav
),只是有些应用程序不列出插件,并且不允许您输入设备名称。这是应用程序的限制,而不是 ALSA 的限制。
我仍然需要重新定义默认值以指向它[...]
然后我们回到 (1) 使用udev
脚本进行更改,或 (2) 使用 Pulseaudio,并让它开箱即用。