如何使用DirectShow在C ++中呈现音频

时间:2011-11-04 01:09:24

标签: c++ directshow

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

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

提前致谢。

1 个答案:

答案 0 :(得分:4)

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

要完成您想要做的最简单的事情是首先使用GraphEdit工具正确使用它(我假设您希望以编程方式执行此操作)。

创建包含音频设备的图表,WavDestFilterfile writer

Source -> WavDest -> File Writer

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

WRW WavDestFilter,IIRC它可能不在SDK的所有版本中,你必须找到合适的版本。您还需要构建它,并对其进行regsvr32,以便它显示在GraphEdit的可用过滤器列表中。

如果这一切看起来有点多,我会通过MSDN上的DirectShow文档阅读至少了解DirectShow的概述。