首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alsa,软件配置?

Alsa,软件配置?
EN

Unix & Linux用户
提问于 2018-12-14 16:57:34
回答 1查看 580关注 0票数 0

我想说明以下几点:

USB DAC连接到linux盒。到目前为止还没有问题..。

代码语言:javascript
复制
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?

EN

回答 1

Unix & Linux用户

发布于 2021-12-25 06:47:45

我知道这是个老问题…但这里有个答案。因为我把好耳机留在家里,所以我在旅途中不得不用USB耳机进行测试。

我的实际配置也使用了一个均衡器插件,这个插件被省略了。

使用Debian,没有脉冲音频。正如我所理解的,您只需要有多个作为从服务器的最终dmix输出的softvol接收器。

定义其中的几个,其中所有这些都在底部使用相同的dmix从,但每个都有唯一的名称(可能是pcm.generic_softvol0pcm.generic_softvol1等等)。也给他们不同的control名称(可能是soft0soft1或其他什么)。

我的USB输出只是用“设备”这个名字来标识自己,而不是什么有意义的东西。这就是你在下面看到的。

代码语言:javascript
复制
# 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的程序)。

代码语言:javascript
复制
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"
  }
}
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/488016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档