在 Beagleboard 上,我需要它播放来自多个进程的声音。
默认的 /etc/asound.conf 是空的,所以我把这个 dmix 示例在。
现在,sund 混合得很好,但是当我尝试运行使用麦克风的进程时,我得到了"(snd_pcm_dmix_open) The dmix plugin supports only playback stream"
。
我该在配置中修复什么才能使软件混音和麦克风正常工作?
答案1
答案CL
(虽然不太冗长并且没有提供示例)是正确的;如果您还想在使用时使用麦克风dmix
,则也需要使用asym
。
允许同时访问麦克风的示例配置dmix
可能看起来像这样:
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 8192
rate 44100
}
bindings {
0 0
1 1
}
}
pcm.asymed {
type asym
playback.pcm "dmixer"
capture.pcm "hw:0,0"
}
pcm.dsp0 {
type plug
slave.pcm "asymed"
}
pcm.!default {
type plug
slave.pcm "asymed"
}
pcm.default {
type plug
slave.pcm "asymed"
}
ctl.mixer0 {
type hw
card 0
}
或者无论您的配置是什么,您都希望您的default
不是dmixer
但是asym
(并且有该pcm.asymed
块定义单独的playback
[您的旧设备dmixer
和capture
设备]
答案2
该dmix
插件仅适用于播放设备。
为了能够拥有一个既能dmix
播放视频又能捕捉视频的设备,你必须使用不对称插件定义用于播放/捕获的不同插件。