录音过程中拔下麦克风后如何处理音频异常

Posted

技术标签:

【中文标题】录音过程中拔下麦克风后如何处理音频异常【英文标题】:How to handle MMException from NAudio after Mic is unplugged during recording 【发布时间】:2011-10-20 15:37:52 【问题描述】:

我正在开发一个 Windows 窗体程序,该程序使用 NAudio 监听所有活动的音频输入设备。我遇到的问题是,如果在录制开始时仅插入一个音频输入设备,然后在录制结束之前将其移除,我收到未处理的MMExceptionMMResultMMResult.NoDriver

由于我使用WaveIn.StartRecording() 方法,我假设它在另一个线程中工作,所以异常会被抛出到 main 方法而不会被捕获。

是否有人对我可以做些什么来安全地继续录制或停止录制直到重新插入设备有任何建议?

【问题讨论】:

【参考方案1】:

NAudio discussion中有解决办法。

您需要从 here 获取源代码修复(又名 fork)并自己编译它(仅限 x86)。

bobasaurus:这只是更改了部分wavein回调代码,以便在录制设备出现问题时完全停止录制(例如在某些 Win 7 机器上被禁止拉电缆)。发生这种情况时,它将调用 RecordingStopped 事件。我在主程序的 GUI 控制器中实现了这个事件处理程序,如果它检测到 WaveIn.DeviceCount 为 0,它将启动一个计时器,该计时器将轮询 WaveIn.DeviceCount 直到它回到 0 以上并重新开始录制。

【讨论】:

非常感谢,这正是我所需要的。

以上是关于录音过程中拔下麦克风后如何处理音频异常的主要内容,如果未能解决你的问题,请参考以下文章

android录音采用的双麦克风还是单麦克风

如何确定录音源

Ubuntu Linux下怎样同时对麦克风及系统声音进行录音

iOS:调用原生录音机

停止录音并继续播放音频

使用蓝牙耳机在奥利奥录音问题