Kryptex Ответов: 3

Обнаружение аудиоразъема


Всем привет, я разрабатываю приложение с голосовыми командами и ищу способ определить, когда что-то подключено к одному из аудиоразъемов компьютера. Неважно, что это-разъем для наушников или микрофона. Мне просто нужно знать когда ЧТО-ТО подключается или отключается. Я искал всевозможные форумы, и все всегда отвечали, что микрофоны не являются цифровыми и их нельзя обнаружить. Я знаю, что. Как я уже сказал, мне просто нужно знать, как определить, когда что-то, неважно, что это такое, подключено или удалено из любого аудиоразъема. Надеюсь, я ясно дал понять, что мне нужно делать.

3 Ответов

Рейтинг:
22

Ron Beyer

То, что вы нашли в интернете, верно, вы не можете его обнаружить.

Аудиоразъемы - это простые разъемы,которые либо посылают аналоговые сигналы, либо принимают их. Они функционируют так же, если что-то связано с ними, как и когда что-то не связано. У них нет способа определить, подключено оборудование или нет.

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

Просто нет никакого способа определить, есть ли там динамики или нет

Было бы иначе, если бы существовал метод измерения непрерывности через гнездо динамика, но его нет.


Рейтинг:
2

dimas1971

Есть способ обнаружить его.

Взгляните сюда http://stackoverflow.com/questions/33872895/detect-if-headphones-are-plugged-in-or-not-via-c-sharp[^]


Но проблема в том, как отличить аудиоустройство от встроенного аудиоустройства = Speackers.

И чтобы решить эту проблему, мы должны получить необходимую информацию. Что ж... Я не знаю, кому нужна эта информация.


CHill60

Другими словами вы ничего не добавили к этой 2 летней дискуссии

Рейтинг:
0

Kryptex

окей. похоже, мне просто придется поместить SetInputToDefaultAudioDevice для распознавателя речи в блок try/catch. Спасибо за ваш ответ, Рон Бейер.