我正在尝试“共享”麦克风输入,以便程序可以访问它。
最初的天真尝试。
在一个终端中:
alsaloop -C hw:1,0 -P hw:0,0 -t 500 -c1 -A 5 -T-1 --resample -v
在另一个终端中:
$ arecord -D hw:1,0 -d 5 -f S16_LE > silence.wav
arecord: main:722: audio open error: Device or resource busy
参考:
hw:1,0 - microphone input
hw:0,0 - output
我认为以下是我所需要的:http://alsa.opensrc.org/Dsnoop
但我不确定如何正确配置我的.asoundrc
.
我尝试了以下方法:
pcm.dsnooped {
type dsnoop
ipc_key 1024
slave {
pcm "hw:1,0"
channels 1
rate 48000
}
}
pcm.foo {
type plug
slave.pcm "dsnooped" # use our new PCM here
以下内容将起作用:
arecord -D foo -d 5 -f S16_LE > recording.wav
并且能够回放:aplay recording.wav
但后来alsaloop
似乎不认识foo
:
alsaloop -C foo -P hw:0,0 -t 500 -c1 -A 5 -T-1 --resample -v
事实上,这似乎挂了,我必须用它来杀死它pkill -9 alsaloop
有人对如何开展这项工作有一些想法或建议吗?