C++ / W32 - 录制声音、Direct Show 或 WaveInOpen?
Posted
技术标签:
【中文标题】C++ / W32 - 录制声音、Direct Show 或 WaveInOpen?【英文标题】:C++ / W32 - Recording sound, Direct Show or WaveInOpen? 【发布时间】:2011-08-11 10:00:24 【问题描述】:在考虑 WinXP、Vista、Win7++ 时选择什么:
使用 Direct Show / Direct ... 录制音频?
使用经典 WaveInOpen(我曾在某处看到有人说这将在 W7/W8 中过时 - 可能吗?)
附言。我需要一个回调功能,将缓冲区传递给编码器。
谢谢!
【问题讨论】:
【参考方案1】:WaveIn 易于使用,网上有大量示例代码,它会以您需要的方式为您提供回调。
DirectSound 使用循环缓冲区,设置起来可能有点麻烦,而且很可能您需要处理循环缓冲区而不是“仅仅填充缓冲区”。然而,DirectSound 可以让您更严格地控制音频,即延迟更好一些。
IMO,Microsoft 不太可能弃用/删除 Wave API。他们会破坏成千上万的应用程序。实际上,我认为 MS 从未从 Windows 中删除过核心 API。
所以为了简单起见,我会选择 Wave API。
【讨论】:
说得好,幸运的是我已经准备好了 WaveAPI 包装类。感谢您提供信息,我只需要确认 Wave API 正在使用中。以上是关于C++ / W32 - 录制声音、Direct Show 或 WaveInOpen?的主要内容,如果未能解决你的问题,请参考以下文章