【发布时间】:2011-11-04 01:09:23
【问题描述】:
我刚开始用 C++ 学习 DirectShow。我需要使用 DirectShow 录制音频并将其写入磁盘上的 WAV 文件。我从其他人那里听说 Win 7 不允许使用 DirectShow 渲染音频。
另外,我想知道我应该如何开始使用 DirectShow 和 C++ 重新编码音频?如果有样本源就好了。
提前致谢。
【问题讨论】:
标签: c++ directshow
我刚开始用 C++ 学习 DirectShow。我需要使用 DirectShow 录制音频并将其写入磁盘上的 WAV 文件。我从其他人那里听说 Win 7 不允许使用 DirectShow 渲染音频。
另外,我想知道我应该如何开始使用 DirectShow 和 C++ 重新编码音频?如果有样本源就好了。
提前致谢。
【问题讨论】:
标签: c++ directshow
我想你可能误解了这些人。 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。
【讨论】: