我在我的电脑上安装了一个新的基于 PCI 的声卡。它有 8 个基于 S/PDIF 的 I/O 对,每对编号为 1 到 8,用于输入和输出。我尝试使用第 3-8 行作为立体声输入(麦克风),使用第 3-8 行作为立体声输出(播放):
- 第 3 行 + 第 4 行 = 通道 1(输入和输出),
- 第 5 行 + 第 6 行 = 通道 2(输入和输出),
- 第 7 行 + 第 8 行 = 通道 3(输入和输出)。
所以,我创建了以下内容.asoundrc
:
pcm.!default {
type plug
slave {
pcm "hw:1,0"
}
}
ctl.!default {
type hw
card 1
}
pcm.play_out_44 {
type dmix
ipc_key 1201
ipc_key_add_uid true
slave {
pcm "hw:1,0"
channels 2
rate 44100
format S32_LE
buffer_size 4096
period_size 1024
}
}
pcm.rec_in_44 {
type dsnoop
ipc_key 1210
slave {
pcm "hw:1,0"
channels 2
rate 44100
buffer_size 4096
period_size 1024
}
}
pcm.outch1 {
type plug
slave {
pcm "play_out_44"
bindings {
2 2
3 3
}
hint.description "PCI Card Stereo output/playback channel 1 (from output ports 3 & 4)"
}
}
pcm.inch1 {
type plug
slave {
pcm "rec_in_44"
bindings {
2 2
3 3
}
hint.description "PCI Card Stereo input/capture channel 1 (from input ports 3 & 4)"
}
}
pcm.outch2 {
type plug
slave {
pcm "play_out_44"
bindings {
4 4
5 5
}
hint.description "PCI Card Stereo output/playback channel 2 (from output ports 5 & 6)"
}
}
pcm.inch2 {
type plug
slave {
pcm "rec_in_44"
bindings {
4 4
5 5
}
hint.description "PCI Card Stereo input/capture channel 2 (from input ports 5 & 6)"
}
}
pcm.outch3 {
type plug
slave {
pcm "play_out_44"
bindings {
6 6
7 7
}
hint.description "PCI Card Stereo output/playback channel 3 (from output ports 7 & 8)"
}
}
pcm.inch3 {
type plug
slave {
pcm "rec_in_44"
bindings {
6 6
7 7
}
hint.description "PCI Card Stereo input/capture channel 3 (from input ports 7 & 8)"
}
}
如上所述这里,我创建了一个新dmix
类型来适合我的配置。但是当我尝试打开Audacity
尝试播放和捕获时,录制设备或播放设备列表中没有 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、inch1
、inch2
、inch3
、、outch1
。outch2
outch3
如何.asoundrc
在我的设备上修改或创建立体声播放和立体声捕捉?
答案1
outch
我用传统的立体声声卡重现了插头的问题。我认为inch
插头也有类似的问题。
问题是:这些plugs
不接受字段bindings
和hint
。我想你并不真正hint
需要bindings
进入dmix
或dsnooper
(看这里)
如果您想更快地调试您的设置,而不必每次都开始大胆,这就是我要做的(以及我如何诊断您的问题):
- 为您的 pcms 提供易于 grep 的名称。我重命名了你的,所以它们总是以“xx”开头。
- 跑步
aplay -L | grep xx
。那么你至少应该看你的PCM。随着你的剥离 .asoundrc 我看到
。
xxplay_out_44
xxoutch1
- 找到一些 wav 文件,例如
locate *.wav | head
- 使用上一步中发现的 pcm 之一播放 wav 文件
。
> aplay -D xxoutch1 /usr/share/sounds/sound-icons/xylofon.wav
ALSA lib pcm.c:7448:(snd_pcm_slave_conf) Unknown field bindings
现在你有一个不错的错误消息。如果你删除bindings
你会看到它抱怨该hint
字段。