C# 在.NET中是否存在默认音频输入更改的事件?

C# 在.NET中是否存在默认音频输入更改的事件?,c#,.net,events,audio,speech-recognition,C#,.net,Events,Audio,Speech Recognition,我在Windows7中使用System.Speech.Recognition让用户通过语音命令控制程序。识别代码集成到程序本身中。现在,识别引擎在程序启动时创建,并在用户更改语音识别语言时重新创建。这一切都很好 最近,我们在创建识别引擎时遇到了一个问题。如果系统默认音频输入在程序运行期间发生变化,我们将无法对此做出响应。具体来说,如果程序启动时麦克风被拔下,识别引擎将无法找到输入。我进入了残疾状态。如果以后插入麦克风,我希望程序注意到这一点并更新引擎 系统默认音频输入更改时是否存在公开事件?您需

我在Windows7中使用
System.Speech.Recognition
让用户通过语音命令控制程序。识别代码集成到程序本身中。现在,识别引擎在程序启动时创建,并在用户更改语音识别语言时重新创建。这一切都很好

最近,我们在创建识别引擎时遇到了一个问题。如果系统默认音频输入在程序运行期间发生变化,我们将无法对此做出响应。具体来说,如果程序启动时麦克风被拔下,识别引擎将无法找到输入。我进入了残疾状态。如果以后插入麦克风,我希望程序注意到这一点并更新引擎


系统默认音频输入更改时是否存在公开事件?

您需要实现并调用IMMDeviceEnumerator::RegisterEndpointNotificationCallback。这些家伙有一个C#包装;我会看的。

谢谢!在找到包装器之前,我必须对源代码进行一点挖掘。文档很少。根据我收集的信息,我需要实现一个imNotificationClient,并通过MMDeviceEnumeratorComObject实例注册它。不过我还没试过。