2011-11-04 69 views
2

我刚开始用C++学习DirectShow。我需要使用DirectShow录制音频并将其写入磁盘上的WAV文件。我从其他人那里听说,Win 7不允许使用DirectShow渲染音频。如何使用DirectShow在C++中渲染音频

此外,我想知道如何开始使用DirectShow和C++重新编码音频?如果有样品来源,那就太好了。

在此先感谢。

回答

4

我想你可能误解了这些其他人。 Windows Media Foundation旨在成为DirectShow的继任者,但DirectShow仍然是very valid technology on Windows 7

完成你想要做的最简单的事情是,首先使用GraphEdit工具来正确地做到这一点(我假设你想以编程方式做到这一点)。

创建一个图表,其中包含您的音频设备WavDestFilterfile writer

Source -> WavDest -> File Writer 

播放图形。停止图形,你应该创建一个带有录制音频的.wav文件。如果你能做到这一点,那么你需要以编程方式完成整个事情。 SDK中有几个示例向您展示了如何以编程方式向图中添加过滤器并将它们连接起来,这将使您能够开始使用。

WRT WavDestFilter,IIRC它可能不是所有版本的SDK,你必须找到一个合适的。您还需要构建它,并使用regsvr32,以便它将显示在GraphEdit中可用过滤器的列表中。

如果这一切似乎有点多,我会通过MSDN上的DirectShow文档阅读,以至少获得DirectShow的概述。