使用Naudio + WASAPI捕获麦克风音频?

时间:2013-06-01 12:52:17

标签: capture microphone naudio bass wasapi

我正在寻找有关如何使用Naudio + WASAPI捕获麦克风音频的示例代码。

(我对直接录制磁盘不感兴趣,我需要的是实时处理输入缓冲区以便做一些音频效果。)

我搜索了很多,但在网上找不到合适的样本。

你能帮忙吗?

P.S。我们也欢迎BASS库和C#示例!

2 个答案:

答案 0 :(得分:3)

NAudio source code附带一个演示应用程序,演示如何使用WASAPI捕获音频。查看NAudioDemo\RecordingDemo\RecordingPanel.cs

答案 1 :(得分:0)

MSDN有很多代码示例,虽然不包括NAudio,但他们确实有一些示例详细显示了如何使用Windows Audio Session API。

由于WASAPI是纯本机API,因此有两个示例项目向您展示如何从仅限本机的应用程序Here使用该API以及向您展示如何构建包装的本机组件的示例供CSharp应用程序使用的API。我找不到C#/ C ++的直接链接 - 样本,但它包含在Windows 8 App Samples包中。然后可以选择为API编写一个托管包装器,但除非你喜欢痛苦并且正在寻找编组冒险,否则我不会推荐它......

如果你正在为Windows Phone开发,那么WP8 SDK中有一个VOIP样本,它涵盖了如何使用WASAPI捕获和呈现PCM音频数据。

正如Mark指出的那样,pcm数据缓冲区的大小可能会随着时间而有所不同,这部分是由于WASAPI是一个低延迟的音频API,因此消费者(你的应用程序)之间的抽象很少和生产者(司机)尽可能。虽然没有任何东西阻止你做一些自己的修复大小缓冲,只有当你自己的缓冲区已满时才将数据传递给你的应用程序。