正在为一个项目做一些研究,并想知道我如何能够将我的alsa设备中的原始数据流式传输到python / C ++ / java应用程序。我一直在使用alsaaudio,python接口,但只能使用麦克风。我希望能够捕获通过卡(来自vlc等应用程序)的所有数据。
有人对此有所帮助吗?
答案 0 :(得分:1)
有些硬件可以将其输出重新路由回某些捕获设备,但大多数声音设备都不支持此功能。
您可以加载snd-aloop driver并使用multi plugin创建虚拟设备,将输出路由到实际设备和环回设备,但很可能是两个设备的采样时钟如果他们跑了太久就会分歧。
我建议使用file plugin创建一个虚拟设备,通过管道将数据复制到您的应用程序。
将以下内容放入/etc/asound.conf
或~/.asoundrc
:
pcm.mydevice {
type plug
slave.pcm {
type file
slave.pcm "hw:0,0" # or whatever your actual output device is
file "|/some/where/myapplication"
}
}
并告诉其他应用程序使用ALSA设备mydevice
。