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

有帮助吗?

解决方案

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

其他提示

还有 Alvas Audio 库,不是免费的,有唠叨屏幕,如果你不付钱,但工作得很漂亮。文档很好,如果你发现了一个bug或什么的,那么支持也很好。

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

Ianier Munoz显示如何使用CodeProject上的 waveIn 通过P / Invoke 在C#中编写全双工音频播放器。他提到了 托管DirectSound 一般方法。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top