我刚刚开始使用 C++ 学习 DirectShow。我需要使用 DirectShow 录制音频并将其写入磁盘上的 WAV 文件。我听其他人说 Win 7 不允许使用 DirectShow 渲染音频。
此外,我想知道如何开始使用 DirectShow 和 C++ 重新编码音频?如果有示例源码就太好了。
提前致谢。
最佳答案
我认为您可能误解了其他人。 Windows Media Foundation 的目标是成为 DirectShow 的继承者,但 DirectShow 仍然是 very valid technology on Windows 7 .
完成您想做的事情最简单的事情就是使用 GraphEdit 来正确完成它。首先工具(我假设您想以编程方式执行此操作)。
创建一个包含您的音频设备的图表,WavDestFilter ,以及 file writer .
Source -> WavDest -> File Writer
播放图表。停止图表,您应该已经使用录制的音频创建了一个 .wav 文件。如果你能做到这一点,那么你需要以编程方式完成整个事情。 SDK 中有几个示例,向您展示如何以编程方式向图表添加过滤器并连接它们,这应该使您能够开始使用。
WRT WavDestFilter,IIRC 它可能不在所有版本的 SDK 中,您必须找到一个合适的。您还需要构建它,并对其进行 regsvr32,以便它将显示在 GraphEdit 中的可用过滤器列表中。
如果这一切看起来有点多,我会通读 MSDN 上的 DirectShow 文档,至少获得 DirectShow 的概述。
关于c++ - 如何在C++中使用DirectShow渲染音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8003877/