录音过程中拔掉麦克风后如何处理 NAudio 的 MMException

发布于 2024-12-11 04:45:31 字数 352 浏览 0 评论 0原文

我正在开发一个 Windows 窗体程序,它使用 NAudio 监听所有活动的音频输入设备。我遇到的问题是,如果在录制开始时只插入一个音频输入设备,然后在录制结束之前将其删除,我收到一个未处理的 MMException ,其中包含 MMResult< MMResult.NoDriver 的 /code>。

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

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

I am working on an windows forms program which listens to all of the active audio input devices using NAudio. The problem I am running into is if an there is only one audio input device is plugged in at the beginning of recording then is removed before the recording ends I received an unhandled MMException with an MMResult of MMResult.NoDriver.

Since I am using the WaveIn.StartRecording() method, which works in another thread I assume, the exception gets thrown up to the main method without being caught.

Does anyone have any suggestions on what I can do to safely continue recording or maybe stop the recording until the device is plugged back in?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

謌踐踏愛綪 2024-12-18 04:45:31

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

您需要从此处获取源代码修复程序(也称为 fork),并且自己编译它(仅限 x86)。

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

There is a solution in the NAudio discussion.

You need to get the source code fix (aka fork) from here and compile it (only x86) for yourself.

bobasaurus: This just changes part of the wavein callback code to cleanly stop recording if the recording device has a problem (like being disabled from pulling the cable on some Win 7 boxes). It will call the RecordingStopped event when this happens. I implemented this event handler in my main program's GUI controller, which, if it detects that WaveIn.DeviceCount is 0, will start a timer that will poll WaveIn.DeviceCount until it's back above 0 and restart the recording.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文