Джек Сенсинг в C # - PullRequest
       7

Джек Сенсинг в C #

7 голосов
/ 06 марта 2012

Я пишу приложение, которое будет записывать звук с микрофона. Моя проблема в том, что мне нужно знать, когда пользователь подключит гнездо и вытащит гнездо.

Я заглянул в Win32_SoundDevice класс WMI и мне кажется, что такого свойства нет, чтобы я мог проверить состояние Джека.

Затем я нашел RegisterEndpointNotificationCallback в IMMDeviceEnumerator, который, кажется, делает то, что мне нужно, но я понятия не имею, как это сделать в C #. Кто-нибудь знает, как использовать MMDeviceEnumerator методы для проверки состояния аудио порта? Любая помощь высоко ценится.

Ответы [ 2 ]

1 голос
/ 06 марта 2012

Возможно, вы захотите взглянуть на проект с открытым исходным кодом NAudio .

Я просмотрел их код, и оказалось, что у них есть оболочка .Net для вашего IMMDeviceEnumerator интерфейса .

Поскольку этот проект находится под лицензией Microsoft Public License, он, вероятно, будет использоваться в вашем проекте.

0 голосов
/ 06 марта 2012

Проверьте со следующим кодом:

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

Это свойство возвращает 1 (подключено) или 0 (отключено) ..

У вас должна быть ссылка на библиотеку NAudio ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...