有没有人知道如何以编程方式捕获正在播放的声音(即,来自声卡的所有内容,而不是麦克风等输入设备).
假设您在谈论Windows,基本上有三种方法可以做到这一点.
第一种是打开音频设备的主输出作为录制源.这只有在驾驶员支持它时才有可能,尽管大多数人都这样做了.虚拟设备的通用名称是"您听到的内容"或"波出".您需要使用合适的API(请参阅MSDN中的WaveIn或DirectSound)进行捕获.
第二种方法是编写一个过滤器驱动程序,它可以在音频流到达物理设备之前拦截它.同样,这种技术仅适用于具有合适驱动程序拓扑的设备,而且当然不适合胆小的人.
这意味着这些选项都不能保证在具有任意硬件的PC上工作.
最后一种方法是使用虚拟音频设备,例如虚拟音频电缆.如果此设备在Windows中设置为defualt播放设备,那么所有表现良好的应用程序都将通过它播放.然后,您可以从同一设备录制以捕获总和输出.只要您可以控制要记录的应用程序使用的设备,该选项将始终有效.
所有这些技术都有其优点和缺点 - 由您决定哪种技术最适合您的需求.