使用C#从线路输入连续采样的最简单方法是什么?

时间:2008-10-23 05:45:48

标签: c# audio signal-processing audio-recording

我希望在使用C#(然后处理该数据)时从我的PC音频线连续采样。采样的最佳方法是什么?

4 个答案:

答案 0 :(得分:3)

您可以使用开源NAudio .NET音频库进行一些(基本)音频捕获。看看NAudioDemo项目,看看使用WaveIn函数录制到WAV文件的简单示例。 NAudio现在还具有使用WASAPI(Windows Vista及更高版本)和ASIO(如果您的声卡具有ASIO驱动程序)捕获音频的功能。

答案 1 :(得分:2)

.NET框架中没有用于处理声音的内置库,但如果您使用的是Win32,则可以使用DirectSound等非托管库来执行此操作。

Ianier Munoz在CodeProject上显示how to write a full-duplex audio player in C# using waveIn via P/Invoke。他提到 Managed DirectSound 是一种更通用的方法。

答案 2 :(得分:2)

还有Alvas Audio图书馆,不是免费的,如果你不付费就会有一个唠叨的画面,但作品很漂亮。文档很好,如果你发现了一个bug或什么的,那么支持也很好。

答案 3 :(得分:1)

托管DirectX支持直接捕获音频,并且非常易于使用,但不再受支持,并且去年已从DirectX SDK中删除。通过在2007年8月之前安装SDK版本,仍然可以get it

虽然不严格满足您的要求,但更强大的方法是在本机C ++ DirectSound API周围创建一个C ++ / CLI包装程序集,同样来自DirectX SDK。然后可以直接从C#代码调用它。尽管需要一些C ++和COM知识,但这绝对是一种更强大和可维护的方法。

我过去曾使用过这两种技术,但效果都很好。