2

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

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

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

4

1 回答 1

1

NAudio 讨论中有一个解决方案。

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

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

于 2011-10-31T15:51:41.333 回答