Обнаружение при подключении головных телефонов

Есть ли способ определить программно, когда наушники подключены к компьютеру?

По сути, я просто хочу написать простой инструмент, который отключит звук, если не подключены наушники. Возможно ли это?

Ответ 1

В Windows Vista и более поздних версиях вы можете использовать уведомления о прибытии и удалении устройства и получить форму формы endpoint, чтобы определить, считает ли производитель вашего аудио решения конкретную конечную точку "наушниками".

До Vista не было способа определить эту информацию.

Ответ 2

Многие аудиокодеки обеспечивают "обнаружение гнезда", возможно, это термин, который вам нужен для google.

Похоже, что в Vista вы можете использовать IMMDeviceEnumerator:: GetDefaultAudioEndpoint() и IMMDevice:: GetState(), чтобы проверить состояние "конечной точки". Существует также 'IKsJackDescription Interface'.

В XP вы можете попробовать 'waveInGetNumDevs' - драйвер может сообщить 0 до тех пор, пока наушники не будут подключены. См. комментарии в это обсуждение для получения дополнительной информации.

Ответ 3

Я думаю, вы не можете предоставить универсальное решение.

Я также указываю на решение nray. Большинство звуковых карт Realtek, Специальная realtek на основных плате Intel имеет эту функцию. Но в этом случае аппаратное обеспечение не является "стандартным". Другими словами, в этих звуковых картах должен быть специальный механизм для обнаружения изменения сопротивления по узлам выходных гнезд и "Огонь события"

Если у вас есть такая звуковая карта +, вам просто нужно работать, но не идеально, просто измените процедуру, которая вызывает программу настройки. (Программа для отключения/включения звука). Затем замените программу настройки (вы можете найти ее с помощью проводника процессов) с помощью новой утилиты.

N.B Я не уверен на 100%, можем ли мы идентифицировать plug-in - подключить отчетливо.

Ответ 4

Возможно, у RealTek есть утилита для системных лотков, которая выдает раздражающую полезную утилиту для настройки вашего звука всякий раз, когда вы подключаете что-то к гнезду микрофона, возможно, разъем для наушников аналогичен.

Ответ 5

Нет, если ваша звуковая карта не поддерживает его, что вызывает сомнения.

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

Теперь, если у вас есть разъем, который используется совместно с микрофоном (например, гарнитурой), вы можете обнаружить "поп" на канале микрофона, но я бы рискнул, что все еще будет довольно ненадежным. Вы не знали бы, было ли оно подключено или удалено, только что произошло изменение.

Лично я просто отключиваю звук все время и включаю его только тогда, когда мне действительно нужен звук.