使用 .NET Framework 捕获麦克风音频流

Posted

技术标签:

【中文标题】使用 .NET Framework 捕获麦克风音频流【英文标题】:Capture a Microphone Audio Stream Using .NET Framework 【发布时间】:2010-10-05 07:58:25 【问题描述】:

我需要在我的应用程序中捕获来自麦克风的输入流,该应用程序是用 VB.NET 编写的。我需要能够将这些数据流式传输到文件或通过 HTTP,并可能使用 LAME MP3 对其进行编码。有人可以帮我开始吗?

谢谢!

【问题讨论】:

【参考方案1】:

如果您需要 .NET 解决方案,您可以查看NAudio,它是一个开源音频库。查看WaveInStream 类(或最新代码中的WaveIn)。这将让您打开麦克风,并接收包含最新捕获字节的事件。这将很容易传递给流。

至于使用 LAME 编码 MP3,我见过的一种方法是通过标准输入将音频传递给 lame.exe,然后从标准输出读取 mp3。我认为这比获取 LAME DLL 并为其编写互操作包装器更容易。

更新:我创建了一个示例项目,该项目使用 NAudio 从麦克风录制,并使用 LAME 在http://voicerecorder.codeplex.com 保存为 MP3。请参阅我在 Coding4Fun here 的文章。

【讨论】:

我知道已经有一段时间了,但我终于解决了这个问题!谢谢,马克。 GitHub 中的示例:github.com/markheath/voicerecorder【参考方案2】:

也许不是最新的体验,但我记得我在玩http://nyxtom.vox.com/library/post/recording-audio-in-c.html

对于更专业的事情,您可能需要查看 DirectSound API。

干杯。

【讨论】:

以上是关于使用 .NET Framework 捕获麦克风音频流的主要内容,如果未能解决你的问题,请参考以下文章

使用麦克风录制时,SDL 音频捕获未检测到任何音频

使用 C 在 Windows 中捕获麦克风音频流

使用 WASAPI 捕获蓝牙音频数据

音频单元从麦克风捕获声音,添加混响,然后发送到扬声器

哪种方式更容易通过麦克风捕获音频,同时播放音频?像音频放大器

OpenAL播放捕获的音频数据c ++