Answers:
是的,这很容易实现。你真的只运行ALSA,或者你也在运行Pulseaudio(基本上所有发行版的默认值多年)?
使用Pulseaudio,它应该开箱即用。
使用ALSA,请确保使用plughw
设备名称(内部添加dsnoop
插件)而不是hw
设备名称。该dsnoop插件将输入流分成用于不同应用的多个流。
编辑
正如我所说,而不是-D hw:0
等(修改您的硬件地址),只需使用-D plughw:0
for arecord
和类似的设备名称darkice
。
一个条件是没有其他程序hw:0
直接使用。所有人都必须使用plughw:0
。
您不需要了解有关的详细信息dsnoop
,ALSA会自动为您执行此操作。(但您可以在我链接的插件页面上阅读详细信息)。
您不必自己设置~/.asoundrc
,也不必修改任何配置文件。
/etc/modprobe.d/alsa-base.conf
,但我不确定如何应用你在该文件中提到的内容。
arecord -D plughw:0 -f S16_LE -c2 -r 44100 -vv foo.wav
并使用指定的暗色配置device = plughw:0
,但似乎仍然存在阻塞。一个程序可以启动,但另一个程序将死亡DarkIce: DarkIce.cpp:1273: can't open connector [0]
或arecord: main:722: audio open error: Device or resource busy
(取决于我开始第二个)。我错过了什么?再次感谢。
plughw
添加了dsnoop
吗?对我有用的arecord -D dsnoop:0,0
是允许我在不修改alsa配置的情况下同时运行多个监听器。
我接受了dirkt的答案,这些答案让我大部分都在那里。结果我需要创建一个dsnoop
接口:
/etc/asound.conf
pcm.custom_snoop_card {
type dsnoop
ipc_key 420042
ipc_key_add_uid 1
slave {
pcm "hw:0,0" # the actual device
format S16_LE
channels 2
rate 44100
}
}
现在我可以device = custom_snoop_card
在我的darkice
配置中指定,并同时进行WAV录制arecord -D custom_snoop_card -f S16_LE -c2 -r 44100 -vv myfile.wav
echo hi | tee output.txt >> output2.txt
”或“echo hi | tee output.txt | tee output2.txt
”或“echo hi | tee output.txt output2.txt
”