我想说明以下几点:
USB DAC连接到linux盒。到目前为止还没有问题..。
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0现在我的目标是让多个应用程序使用alsa的dmix模块进行回放,而使用alsamixer,这些虚拟通道应该是独立可控的(这可能吗??)--能够将dmix通道映射到应用程序吗?例如,我可以让mpd一直播放到2.1,让另一个应用程序播放到2.2?
发布于 2021-12-25 06:47:45
我知道这是个老问题…但这里有个答案。因为我把好耳机留在家里,所以我在旅途中不得不用USB耳机进行测试。
我的实际配置也使用了一个均衡器插件,这个插件被省略了。
使用Debian,没有脉冲音频。正如我所理解的,您只需要有多个作为从服务器的最终dmix输出的softvol接收器。
定义其中的几个,其中所有这些都在底部使用相同的dmix从,但每个都有唯一的名称(可能是pcm.generic_softvol0、pcm.generic_softvol1等等)。也给他们不同的control名称(可能是soft0、soft1或其他什么)。
我的USB输出只是用“设备”这个名字来标识自己,而不是什么有意义的东西。这就是你在下面看到的。
# generic headset softvol
pcm.generic_softvol {
type plug;
slave.pcm {
type softvol;
slave {
pcm "dmix:CARD=Device,DEV=0";
}
control {
name "soft"
card "Device"
}
}
}这样,您应该能够在启动程序之前设置一个环境变量,以更改其输出声音的位置。这样,如果您像上面那样定义了其他的软件,您可以告诉一个特定的程序使用它进行回放(例如,ALSA_PCM=generic_softvol0 program_name;如果不提供,它将使用定义为default的程序)。
pcm.!default {
type asym
playback.pcm {
@func getenv
vars [ ALSA_PCM ]
default "generic_softvol" # don't prefix with 'plug:' because generic_softvol is already a plug-type as we've defined it.
}
# Put your preferred capture device here for the default.
capture.pcm {
@func getenv
vars [ ALSA_CAPTURE_PCM ]
default "dsnoop:CARD=Loopback,DEV=1"
}
}https://unix.stackexchange.com/questions/488016
复制相似问题