2012-03-06 12 views
7

Piszę aplikację, która nagra audio z mikrofonu. Mój problem polega na tym, że muszę wiedzieć, kiedy użytkownik podłącza się do gniazda i wyjmuje podnośnik.Jack Sensing in C#

Zajrzałem do klasy WMI Win32_SoundDevice i wydaje mi się, że nie ma takiej właściwości, żebym mógł sprawdzić status Jacka.

Następnie znalazłem RegisterEndpointNotificationCallback w IMMDeviceEnumerator co wydaje się robić to, czego potrzebuję, ale nie mam pojęcia, jak to zrobić w języku C#. Czy ktoś wie, jak korzystać z metod MMDeviceEnumerator, aby sprawdzić stan portu audio? Każda pomoc bardzo ceniona.

Odpowiedz

1

Możesz zajrzeć do projektu open source NAudio.

Zrewidowałem ich kod i wygląda na to, że mają wtyczkę .Net dla twojego IMMDeviceEnumerator interface.

Ponieważ ten projekt jest objęty licencją publiczną Microsoft, prawdopodobnie będzie można go wykorzystać w projekcie.

0

Zapoznaj się z następującym kodem:

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()); 

Ta nieruchomość Return 1 (Podłączony) lub 0 (Unplugged) ..

Musisz oddać NAudio biblioteka odwołuje ..

+0

Dostaję błąd "Brak odniesienia do obiektu obiektu" w Guid, co to jest Guid? – kakopappa