我希望创建一个应用程序,可以让我录制来自麦克风的声音,并通过其他电脑进行播放。目前,我只想在自己的电脑上播放录音以使其正常工作。
我已经花了几个小时研究NAudio,看起来它可能能够帮助我实现这个目标。
我想知道是否有其他人有过这方面的经验,并且是否有可能实现?
谢谢, Stuart
有一个codeproject上的示例项目可以做到这一点:
http://www.codeproject.com/KB/cs/Streaming_wave_audio.aspx
我不知道延迟有多低。
作为编解码器,我建议使用Speex(至少用于语音)。它是免费的、开源的,提供低延迟和低带宽。
NAudio是一个很好的音频捕获和播放的起点,但正如Mark指出的那样,延迟可能是个问题。
如果你想进一步并且希望将音频数据通过网络发送,你将需要一个编解码器来压缩数据,因为PCM或WAV是无损压缩的,而对于语音,你只需要WAV所需带宽的一小部分。 由于你正在使用C#,有一个名为NSpeex的Speex的C#移植版本,值得一看。
这是可能的,但使用WaveIn/WaveOut(使用WASAPI可能会获得更好的结果)很难实现低延迟。您可以使用BufferedWaveProvider(在最新的源代码中)来存储从麦克风录制的音频并将输出提供给声卡。