从麦克风实时播放音频。C#

4

我希望创建一个应用程序,可以让我录制来自麦克风的声音,并通过其他电脑进行播放。目前,我只想在自己的电脑上播放录音以使其正常工作。

我已经花了几个小时研究NAudio,看起来它可能能够帮助我实现这个目标。

我想知道是否有其他人有过这方面的经验,并且是否有可能实现?

谢谢, Stuart


你想要实时音频,还是只是想在另一台电脑上播放已录制的文件? - Robert Harvey
我想实时播放音频。因此,当我对着麦克风说话时,我希望尽快听到自己的声音。 - stuartmclark
4个回答

2

这太棒了,谢谢。我正在尝试将该应用程序拆分为两个独立的应用程序,一个用于广播,另一个用于监听,但迄今为止没有成功。你有任何想法吗?我使用了这段代码创建了两个应用程序,但当我开始录制/监听时,它们似乎彼此不可见,什么也无法通过。 - stuartmclark
没什么头绪。我从来没有研究过网络方面的东西。我只是使用了WaveIn/WaveOut的封装器。 - CodesInChaos

0

NAudio是一个很好的音频捕获和播放的起点,但正如Mark指出的那样,延迟可能是个问题。

如果你想进一步并且希望将音频数据通过网络发送,你将需要一个编解码器来压缩数据,因为PCM或WAV是无损压缩的,而对于语音,你只需要WAV所需带宽的一小部分。 由于你正在使用C#,有一个名为NSpeex的Speex的C#移植版本,值得一看。


0

0

这是可能的,但使用WaveIn/WaveOut(使用WASAPI可能会获得更好的结果)很难实现低延迟。您可以使用BufferedWaveProvider(在最新的源代码中)来存储从麦克风录制的音频并将输出提供给声卡。


所以如果我理解正确的话,我将会录制并保存到文件/缓冲区,并从同一缓冲区输出到扬声器?几乎同时进行?如果听起来比实际困难,我很抱歉,因为我是音频编程开发的完全新手。 - stuartmclark
没错,将录制的音频缓存到内存中,以便尽快返回给声卡进行播放。请查看BufferedWaveProvider(上面添加了一个链接)。 - Mark Heath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接