By Fanxiushu ,引用和转载请注明原作者
本来是打算做个声卡过滤驱动的,可以用来采集电脑内部的声音,但是网上查的的资料显示,
事情不是这么简单,或者我还没掌握其中的处理办法。
声卡和摄像头都属于内核流媒体类驱动,属于同一类型。
拦截 IOCTL_KS_READ_STREAM 可以截获读取的数据流,
拦截 IOCTL_KS_WRITE_STREAM 可以截获写入的数据流。
听起来这么简单,如果世界真这么简单该多好,但是对于音频流,世界就不会这么美好。
有些声卡是通过 IOCTL_KS_WRITE_STREAM写入音频数据,有些声卡是通过DMA传输数据,
有些是通过告诉一个ring0 buffer的指针,然后上层直接把音频数据写到指针所指的内存里,
反正是五花八门,至于要怎么获得这些地址,我还没找到一个好办法,主要是对声卡这玩意理解的还不够。
有做过这方面的过滤驱动的朋友或者深入研究过的,不吝赐教!
于是暂时放弃开发声卡过滤驱动,转而实现摄像头过滤驱动。
也许使用虚拟声卡来采集电脑内部的声音,是兼容性最好的一个办法,但是也有个缺点,用户配置起来比较麻烦。
这里简单说说虚拟声卡如何采集电脑内