2009-07-21 2 views
1

Я хочу получать уведомления о включении микрофонного гнезда. Что такое событие, выпущенное ОС (в частности, Vista) Звуковая панель не отображает активного устройства записи, если микрофон не подключен в (Vista). Это никогда не происходило в XP.Включение микрофона/событие подключения микрофона Vista

Также, если у моего микрофона был «предварительный контроль», например, Bass Boost, Mic Boost (AGC) и т. Д., Как я могу получить управление микшером для того же самого, чтобы управлять им.

Я использую MFC для разработки. Thanks

ответ

0

Я считаю, что вы хотите реализовать IMMNotificationClient и обрабатывать событие OnDeviceAdded.
Если вы хотите использовать различные элементы управления в Vista, вам лучше использовать Device Topology API, чтобы получить элементы управления (IAudioLoudness и т. Д.). В противном случае вам необходимо перечислить идентификаторы устройства микшера &, запросить их идентификаторы конечных точек, затем сравнить endpoint ID, чтобы найти интересующее вас устройство.

+0

Hi Eric! Спасибо за ответ! Теперь я изо всех сил пытаюсь найти то же самое для XP. Я не использую Vista SDK, но более старая версия, следовательно, не может получить IMMNotificationClient. Есть ли способ сделать это в старом SDK? Кроме того, есть ли системный запрос, если я могу разобрать, если микрофон/динамик даже подключен (то есть он подключен или нет)? Спасибо –

+0

Я не очень хорошо знаком с API-интерфейсами на уровне XP, поэтому я не могу этого сделать. Сожалею. –

+0

Не проблема Эрик! Знаете ли вы, каким образом я могу определить мощность/децибел пользователя во время записи с помощью микрофона. Я хочу откалибровать громкость микрофона в зависимости от ввода пользователей. Используемый алгоритм вычисляет уровень мощности, применяя некоторые БПФ к значениям waveInbuffer. Тем не менее, на разных машинах я получаю разные уровни мощности (как на чувствительных звуковых картах, я получаю более высокий уровень мощности, даже если микрофон не подключен) Есть ли другой способ сделать это? Спасибо. –