与 alsaloop 共享 alsa 捕获设备

与 alsaloop 共享 alsa 捕获设备

我正在尝试“共享”麦克风输入,以便程序可以访问它。


最初的天真尝试。

在一个终端中:

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


有人对如何开展这项工作有一些想法或建议吗?

相关内容