1

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

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

我搜索了很多,但在网上找不到任何像样的样本。

你能帮忙吗?

也欢迎 PS BASS 库和 C# 示例!

4

2 回答 2

4

NAudio 源代码附带一个演示应用程序,该应用程序展示了如何使用 WASAPI 捕获音频。进去看看NAudioDemo\RecordingDemo\RecordingPanel.cs

于 2013-06-04T16:22:59.420 回答
0

MSDN 有很多代码示例,虽然没有涵盖 NAudio,但它们确实有一些示例详细展示了如何使用 Windows 音频会话 API。

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

如果您正在为 Windows Phone 开发,那么 WP8 SDK 中有一个 VOIP 示例,其中介绍了如何使用 WASAPI 捕获和呈现 PCM 音频数据。

正如 Mark 指出的那样,pcm 数据缓冲区的大小可能会随时间而变化,这部分是由于 WASAPI 是一种低延迟音频 API,因此消费者(您的应用程序)和生产者之间的抽象很少(司机)尽可能。尽管没有什么可以阻止您自己进行一些修复大小的缓冲,并且只有在您自己的缓冲区已满时才将数据传递给您的应用程序。

于 2013-07-09T18:09:46.403 回答