2012-03-06 15 views
7

Yo escribo una aplicación que grabar audio desde el micrófono. Mi problema es que necesito saber cuándo el usuario conecta el conector y saca el conector.la detección de conector en C#

Busqué en la clase WMI Win32_SoundDevice y me parece que no hay tal propiedad que pueda verificar el estado del Jack.

Luego encontré RegisterEndpointNotificationCallback en IMMDeviceEnumerator que parece hacer lo que necesito pero no tengo ni idea de cómo hacer esto en C#. ¿Alguien sabe cómo utilizar MMDeviceEnumerator métodos para comprobar el estado del puerto de audio? Cualquier ayuda muy apreciada.

Respuesta

1

Es posible que desee echar un vistazo a continuación, abra la fuente NAudio proyecto.

He ojeado su código y parece que tienen un envoltorio .Net para su IMMDeviceEnumerator interface.

Como este proyecto está bajo Licencia Pública de Microsoft, es probable que se puede utilizar en su proyecto.

0

Salida con siguiente código:

var enumerator = new MMDeviceEnumerator(); 
var d = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia); 
Console.WriteLine(d.Properties[new Guid("46d16a2c-5654-41c0-911e-7860d2bce7ee")].Value.ToString()); 

de este retorno de la propiedad 1 (conectado) o 0 (Unplugged) ..

Debe haber la biblioteca NAudio referencia ..

+0

Me estoy haciendo una "referencia a objeto no establecida como instancia de un objeto" error en el GUID, lo que es el GUID? – kakopappa

Cuestiones relacionadas