从麦克风+立体声混音中捕捉DirectShow声音

时间:2013-01-17 06:43:24

标签: audio filter directshow capture microphone

我正在尝试使用DirectShow过滤器编写一些代码来捕获麦克风和立体声混音。首先,我尝试使用Windows SDK中的GraphEdit设置过滤器。我将捕获设备设置为Microphone和Stereo Mix,然后将两者的Capture引脚连接到AVI Mux的Input 01和Input 02,然后将AVI Out引脚连接到File Writer的in引脚。当我运行图表时,我得到了

  

此图表无法播放。未指定错误(返回代码:0x80004005)

我已经搜索了这个错误,我似乎无法找到答案。

如果我尝试将它们分别连接到每个WAV Dest过滤器,我会得到同样的错误。由于某种原因,我无法理解,它不会让我捕获两者。当我从中捕获时,StereoMix是否会模拟麦克风?

如果我尝试一次一个地捕获它们,但我需要同时捕获它们。如果我将麦克风设置为输出到扬声器,那么我可以录制它们,但这对我没有帮助,因为用户可以在扬声器中听到自己真的会分散注意力。

我也尝试并成功使用WASAPI记录环回,但我需要一些向后兼容性,因为使用WASAPI记录环回仅适用于Vista或Windows 7。

我调查了PortAudioFFmpeg,但我不能让程序复杂化。我该怎么办?

1 个答案:

答案 0 :(得分:0)

我做了一些进一步的研究。显然这是一个非常棘手的情况。我没有找到有关DirectShow过滤器的答案。

某些计算机没有支持StereoMix的声卡。唯一可在Windows XP上运行的解决方案是使用Windows DDK创建虚拟音频驱动程序,将其设置为默认设备,将缓冲区传递给真实音频设备(不阻碍音频输出)和我的应用程序。 / p>

同时我可以使用DirectShow过滤器从麦克风中捕获音频。

以下是Microsoft关于音频驱动程序的文档:http://msdn.microsoft.com/en-us/library/windows/hardware/ff537871%28v=vs.85%29.aspx

我对这些事情并不十分精通。我希望这可以帮助任何同样情况的人。如果有人有任何其他建议,请告诉我。