2013-01-17 158 views
4

我正在尝试编写一些代码来捕获与DirectShow过滤器的麦克风和立体声混音。首先,我试图使用Windows SDK中的GraphEdit设置过滤器。我将捕捉设备设置为麦克风和立体声混音,然后将捕捉引脚从它们两个连接到AVI Mux的输入01和输入02,然后将AVI输出引脚连接到文件编辑器的输入引脚。当我运行图时,我得到从麦克风+立体声混音DirectShow声音捕获

此图不能播放。未指定的错误(返回码:0x80004005)

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

如果我尝试将它们分别连接到每个WAV Dest过滤器,我会得到相同的错误。出于某种原因,我无法理解,它不会让我捕捉到这两者。 StereoMix是在模拟麦克风时捕捉它吗?

如果我试图从他们那里捕获一个它的作品,但我需要从两个捕获同时。如果我将麦克风设置为输出到扬声器,那么我可以录制它们两个,但这并不能真正帮助我,因为用户可以在扬声器中听到自己的声音,这真的会让人分心。

我也尝试和成功记录与WASAPI环回,但我需要一些向后兼容性由于记录与WASAPI环回仅适用于Vista或Windows 7

我看着PortAudioFFmpeg但我不能让这个计划比现在复杂化。我该怎么办?

回答

0

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

某些电脑没有支持StereoMix的声卡。唯一可以在Windows XP上运行的解决方案是使用Windows DDK创建虚拟音频驱动程序,将其设置为默认设备,将缓冲区传递给真正的音频设备(以防止音频输出)和我的应用程序。

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

下面是来自微软的音频驱动程序文件:http://msdn.microsoft.com/en-us/library/windows/hardware/ff537871%28v=vs.85%29.aspx

我不是很在这些问题上精通。我希望这可以帮助任何情况相同的人。如果有人有任何其他建议,请让我知道。

+0

很难说出为什么你有从两个设备同时捕获的问题。它应该是可能的,即使在XP下(我不记得全局约束),可能是特定于您正在使用的硬件。 –

+0

我在两台独立的机器上试过同样的事情。一个运行VIA声卡,另一个运行Realtek声卡,驱动程序安装正确。两个弹出相同的未指定的错误。 –

+0

本教程将演示如何检测DirectShow以及如何使用麦克风记录它:http://free-tutorials.org/how-to-record-sound-from-microphone-with-ffmpeg/ –