Название: Как отследить подключение микрофона? Отправлено: mezmay от Февраль 10, 2015, 09:45 Можно ли как-то отследить подключение устройства в микрофонный или линейный входы компьютера?
p.s. - в Linux Название: Re: Как отследить подключение микрофона? Отправлено: xokc от Февраль 10, 2015, 11:41 На уровне ОС для отдельных типов драйверов есть какие-то сообщения о подключении устройств в эти разъёмы, но говорить об унивесальном интерфейсе к ним не приходится. В принципе, в приложении можно попробовать постоянно мониторить данные, поступающие на линейный вход/микрофон и по характеристикам получаемого сигнала пытаться сделать вывод о наличии "возбудителя", но это всё же не решение исходной задачи в "чистом виде".
Название: Re: Как отследить подключение микрофона? Отправлено: Пантер от Февраль 10, 2015, 11:42 Придется писать самому для каждой платформы, скорее всего.
Название: Re: Как отследить подключение микрофона? Отправлено: mezmay от Февраль 10, 2015, 12:03 На уровне ОС для отдельных типов драйверов есть какие-то сообщения о подключении устройств в эти разъёмы, но говорить об унивесальном интерфейсе к ним не приходится. В принципе, в приложении можно попробовать постоянно мониторить данные, поступающие на линейный вход/микрофон и по характеристикам получаемого сигнала пытаться сделать вывод о наличии "возбудителя", но это всё же не решение исходной задачи в "чистом виде". Пока придумал вот так: Код: void cwin::on_timer() Название: Re: Как отследить подключение микрофона? Отправлено: Пантер от Февраль 10, 2015, 12:08 Вполне годно. :) Только если выполнение availableDevices занимает много времени, можно вынести в отдельный поток.
Название: Re: Как отследить подключение микрофона? Отправлено: qate от Февраль 10, 2015, 13:07 разве QAudioDeviceInfo::availableDevices не возвращает всегда одно и тоже число ? например линейный вход + микрофонный = 2
Название: Re: Как отследить подключение микрофона? Отправлено: mezmay от Февраль 10, 2015, 13:15 разве QAudioDeviceInfo::availableDevices не возвращает всегда одно и тоже число ? например линейный вход + микрофонный = 2 нет. Возвращает подключенные (в данном случае - входные) устройства к этим входам.Еще идеи будут? Может системные функции Linux или alsa API ? Название: Re: Как отследить подключение микрофона? Отправлено: qate от Февраль 10, 2015, 14:32 нет. Возвращает подключенные (в данном случае - входные) устройства к этим входам. странно, в исходниках есть пример "examples/multimedia/audioinput" - всегда возвращает одно и тоже количество устройств вне зависимости от того подключил я микрофон или нет Название: Re: Как отследить подключение микрофона? Отправлено: mezmay от Февраль 10, 2015, 15:59 странно, в исходниках есть пример "examples/multimedia/audioinput" - всегда возвращает одно и тоже количество устройств вне зависимости от того подключил я микрофон или нет Да, это у меня в семерке работало. В линуксе показывает постоянное число, так что вопрос остается открытым.Название: Re: Как отследить подключение микрофона? Отправлено: qate от Февраль 10, 2015, 16:07 тогда наверно никак - если в системном журнале нет событий о втыкании микрофона, значит драйвер и не поддерживает данный функционал
Название: Re: Как отследить подключение микрофона? Отправлено: mezmay от Февраль 10, 2015, 16:54 тогда наверно никак - если в системном журнале нет событий о втыкании микрофона, значит драйвер и не поддерживает данный функционал но Alsamixer реагирует на подключение микрофона/лин. входа, так что должна быть функцияНазвание: Re: Как отследить подключение микрофона? Отправлено: qate от Февраль 11, 2015, 12:29 но Alsamixer реагирует на подключение микрофона/лин. входа, так что должна быть функция не обращал внимание - текстовый который миксер? тут еще 2 проблемы вижу 1. не все звуковухи могут такую инфу отдавать 2. кроме алсы есть pulse - как в нем ? |