4

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

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

我已经对这个错误进行了相当多的搜索,但似乎找不到答案。

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

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

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

我已经调查过了PortAudioFFmpeg但我不能让程序变得比现在更复杂。我应该怎么办?

4

1 回答 1

0

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

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

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

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

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

于 2013-01-17T09:57:28.980 回答