我正在尝试为websocket客户端自动化一些testing。 这个客户端连接到服务器的命令,服务器基本上是一个文本引擎的语音。 客户端支持来自麦克风的audiostream,以便人们可以实时logging自己并将其传输到引擎。 我在一个没有物理声卡的Centos虚拟机上运行客户端,所以我决定模拟一个使用
modprobe snd-dummy
我的计划是pipe输出
aplay audioFile.raw
到input
arecord test.raw -r 8000 -t raw
以便我可以使用模拟麦克风function。 我在网上读到,ALSA的文件插件可以将一个命令的结果传送到下一个命令,所以我对根目录中的.asoundrc文件进行了以下修改:
pcm.!default { type hw card 0 } pcm.Ted { type file slave mySlave file "| arecord test.raw -r 8000 -t raw" } pcm_slave.mySlave { pcm "hw:0,0" } ctl.!default { type hw card 0 }
当我尝试下面的命令:
aplay audioFile.raw -D Ted
它似乎运行良好,但test.raw的输出似乎只包含沉默…有谁知道我在做什么错了,我是非常新的ALSA,所以如果任何人都可以指向我在正确的方向,这将是巨大的赞赏。 谢谢!
问题修正,而不是使用snd-dummy我用snd-aloop和正确的音频管道引用这个问题:
是否有可能从虚拟卡输出?