Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
 Воспроизводится ли звук в системе в текущий момент?  [new]
Правильный Вася
Member

Откуда:
Сообщений: 297
Как определить это на Windows 10?

Допустим, некая программа время от времени подаёт звуковые сигналы, чтоб на неё обратили внимание. Но если колонки выключены, то можно и прозевать это, т.к. визуально слабо сигнализирует, мягко говоря.

Вот и хочется как-то программно отслеживать появление звуков (по возможности через конкретное устройство воспроизведения, а не через умолчательное в системе), чтоб уже мигалку поярче сделать свою.
16 июл 20, 03:42    [22168283]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизводится ли звук в системе в текущий момент?  [new]
Dima T
Member

Откуда:
Сообщений: 14885
В общем случае никак, например воткнуты наушники, а в уши не вставлены. С точки зрения техники - все работает.

Окно проги на первый план выведи.
Иконкой на панели задач или в трэе моргай.
16 июл 20, 07:10    [22168299]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизводится ли звук в системе в текущий момент?  [new]
mayton
Member

Откуда: loopback
Сообщений: 47964
В данной примитивной постановке - никак. Учитывая например что звуковушка имеет микрофонные входы
и в принципе может просто ретранслировать и усиливать некий внешний эфир.

Но я думаю что существует API как часть звуковой подсистемы Windows которое хотя-бы
сообщит нам что в настоящий момент вызвана некая async-функция и она воспроизводит
PCM звук. Не факт что этот звук будет вообще слышимым. Он может быть очень тихим
за пределами нашего уха. Но с точки зрения API реально воспроизводиться.

Возможно это не асинк-функция а функция измерителя уровня сигнала на выходе микшера например.

Вобщем автор начни читать отсюдова и задавай уже более инженерные вопросы.

https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/windows-audio-architecture
16 июл 20, 11:43    [22168446]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизводится ли звук в системе в текущий момент?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50784
Правильный Вася
чтоб уже мигалку поярче сделать свою.

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

Ко всему вышесказанному, не помогут ни сирена, ни стробоскоп если пользователь перед экраном пять минут назад скончался от сердечного приступа.
16 июл 20, 14:04    [22168614]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизводится ли звук в системе в текущий момент?  [new]
Правильный Вася
Member

Откуда:
Сообщений: 297
Dima T,
это не моя программа, которая сигналит звуком. А в своей хочу сделать что-то подобное, но нужен триггер, срабатывающий на появление звука.

Dimitry Sibiryakov
Обычно отслеживают отсутствие реакции пользователя, а не подачу ему сигналов.

Ну так та программа и отслеживает, если пользователь не реагирует, снова будильником визжит. Я же хочу ещё визуально добавить.
16 июл 20, 21:20    [22168870]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизводится ли звук в системе в текущий момент?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50784
Правильным способом будет изменение исходников "той программы" самостоятельно или через запрос автору.
17 июл 20, 14:02    [22169254]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизводится ли звук в системе в текущий момент?  [new]
Правильный Вася
Member

Откуда:
Сообщений: 297
Не всё в этом мире можно сделать, как хочется. Чаще - как получится. Иногда - как есть возможность.

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

Почитал про эти хуки на вызовы системных функций и понял, что за пару часов это не сделать. Отдельная DLL, инжекторы в память другого процесса...

Неужто нет чего попроще?
17 июл 20, 21:31    [22169515]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизводится ли звук в системе в текущий момент?  [new]
Малыхин Сергей
Member

Откуда: г. Курск
Сообщений: 735
Хуки на системные вызовы далеко не во всех случаях смогут помочь.
Винда отвечает только за инициализацию а дальше приложение напрямую работает с драйвером.
В любом случае нужно писать драйвер или брать уже готовый.
С виндой идет уже готовый драйвер "стерео микшер" он позволяет параллельно воспроизводить звук на разных устройствах ну или ловить звук с помощью WSAPI в своем приложении.
18 июл 20, 02:17    [22169589]     Ответить | Цитировать Сообщить модератору
Все форумы / Программирование Ответить