我正在尝试创建一个使用 dmix 和 dsnoop 的 asym 默认设备。我正在使用的应用程序不断独占对 USB 麦克风和音频输出的访问权限。我还想同时将我的麦克风连接到音频输出,因此我需要通过创建允许此操作的默认设备来强制应用程序使用可以为多个进程提供服务的设备(应用程序尝试打开一个输入并首先在默认设备上输出)。
这是我目前拥有的 .asoundrc:
pcm.inout {
type plug
slave.pcm {
type asym
playback.pcm {
type dmix
ipc_key 4323
slave.pcm: "hw:0,1"
}
capture.pcm {
type dsnoop
ipc_key 5432
slave.pcm "hw:1,0"
}
}
}
ctl.inout {
type hw
card 0
}
pcm.!default "inout"
ctl.!defualt "inout"
但是,当我运行该应用程序时,或者alsaloop -C default -P default -c 1 -t 50000
我得到以下信息:
ALSA lib pcm_direct.c:1524:(_snd_pcm_direct_get_slave_ipc_offset) Invalid type 'dmix' for slave PCM
另外,我看到运行时 ALSA 自动创建了 dmix 设备aplay -L
,但不知道如何使用它。alsaloop -C default -P dmix:0,1 -c 2 -t 50000
没有抛出任何错误,但我没有通过耳机听到任何声音。