从python应用程序流式传输alsa pcm扬声器输出

时间:2013-09-30 06:52:01

标签: python linux alsa

正在为一个项目做一些研究,并想知道我如何能够将我的alsa设备中的原始数据流式传输到python / C ++ / java应用程序。我一直在使用alsaaudio,python接口,但只能使用麦克风。我希望能够捕获通过卡(来自vlc等应用程序)的所有数据。

有人对此有所帮助吗?

1 个答案:

答案 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