我刚刚开始学习使用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++ - 如何使用DirectShow在C++中呈现音频,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8003877/