Показать полную графическую версию : играет ли музыка?)
Есть ли возможность определить, выдает ли какое либо приложение звук в данные момент или нет.
Например визуально это можно видеть по прыгающему уровню в микшере :) А программно?
птичка0001
23-05-2020, 12:36
посмотрите следующее: wasapi, IAudioSessionManager2, sysinternals и проч.
птичка0001, спасибо за наводку, но слишком абстрактно... и sysinternals - там разве есть инструменты для моего вопроса.
мне в идеале просто нужна консольная утилитка, которая запустившись, "слушает" например 5 сек... и возвращает errorlevel, играла музыка(звук) или нет. Всё.
Есть ли возможность определить, выдает ли какое либо приложение звук в данные момент или нет. »
AFAIK нельзя
Например визуально это можно видеть по прыгающему уровню в микшере »
нельзя
приложение может воспроизводить тишину :-)
птичка0001
23-05-2020, 16:50
> но слишком абстрактно
Угу.
> sysinternals - там разве есть инструменты для моего вопроса.
PE.
См. Audio Session (.dll) Audio Engine (.dll) для вывода приложений. Посмотрите там сами что к чему и что Вам надо.
[hr]
Ознакомьтесь с этим (https://stackoverflow.com/questions/20938934/controlling-applications-volume-by-process-id)
P.S. Все в Ваших руках :)
Есть ли возможность определить, выдает ли какое либо приложение звук в данные момент или нет.
AFAIK нельзя
На всякий случай отмечу: можно. Только формулировку лучше использовать «воспроизводить аудио/выводить звук», а не «выдавать звук».
Поудаляла Сообщения, простите, спать хочу и устала, надеюсь, что никто ничего не видел))) Простите.
приложение может воспроизводить тишину :-) »
в моем случае ответ должен быть отрицателен - музыки_нет
artenaki
23-05-2020, 23:05
Если в Windows микшере появляется приложение, то по идее можно отследить.
птичка0001
24-05-2020, 08:50
В общем, перейдите по ссылке выше, актуализируйте под себя документацию, которую приводят авторы. Там есть вся необходимая информация для решения Вашего вопроса. И вот эту ссылку тоже прочтите и актуализируете под себя (https://stackoverflow.com/questions/26948290/wasapi-getdisplayname-returns-blank)
Busla, Вы прежде чем писать о том, что нельзя, а что можно, хоть бы приводили доказательства своих слов, ибо выглядит голословно.
В удаленном сообщении шла речь о sndvol, клиенте wasapi, с ползунками громкости session.
P.S. Уже больше года не использую Windows.
птичка0001, спасибо постараюсь выкурить. т.к. кроме вопроизведения wav на события в программе ничего в этом направлении не писал.
птичка0001
24-05-2020, 12:41
Опиум, имейте в виду, что возможно есть более простое и более актуальное решение (без всяких нюансов). Я всего лишь минут 10 гуглила, особенно не углублялась, так как мне тема не особо интересна. Возможно, Вы самостоятельно найдёте оптимальный вариант.
Оказывается есть готовые решения типа SoundVolumeView (введите в поисковике, не проверяла, просто пример).
Удачи.
Оказывается есть готовые решения типа SoundVolumeView (введите в поисковике, не проверяла, просто пример). »
И где в нём показывается воспроизведение звука в текущий момент?
птичка0001
25-05-2020, 07:19
Iska, Полагаю, Вы хотите меня «подловить» за некорректный пример (не проверяла) и за то, что есть определенные «нюансы», связанные с реализацией хотелки автора. Тогда приведу другой пример: какая-нибудь улучшенная копия Sndvol (за долгое время существования наверняка породил тучу «подражателей»).
// удалила, криво написала. + ссылку не ту прикрепила в п.2 (тут и п 2 был)
Iska, Полагаю, Вы хотите меня «подловить» за некорректный пример »
Нет, не хотел.
Я просто не вижу данного функционала в SoundVolumeView и не очень представляю, чем может помочь какой-нибудь SndVol.
птичка0001
27-05-2020, 20:58
Busla, извините за беспокойство, но не могли бы Вы поподробнее обьяснить второе свое «нельзя»? Спасибо.
птичка0001
28-05-2020, 11:23
Эх... Видимо, ответа мы не дождёмся. Однако теперь я знаю, как реагировать, если товарищ Busla будет говорить «Нельзя»... Просто непонятно, зачем так делать... Можно же...
1. IAudioSessionManager2 interface (https://docs.microsoft.com/en-us/windows/win32/api/audiopolicy/nn-audiopolicy-iaudiosessionmanager2)
2.IAudioMeterInformation interface (https://docs.microsoft.com/en-us/windows/win32/api/endpointvolume/nn-endpointvolume-iaudiometerinformation)
3. Core Audio APIs (https://docs.microsoft.com/en-us/windows/win32/coreaudio/core-audio-apis-in-windows-vista)
4. About WASAPI (https://docs.microsoft.com/en-us/windows/win32/coreaudio/wasapi)
Раз. (https://matthewvaneerde.wordpress.com/2012/06/08/getting-audio-peak-meter-values-for-all-active-audio-sessions/)
Два. (http://forum.script-coding.com/viewtopic.php?id=7654)
Три. (http://forum.script-coding.com/viewtopic.php?pid=100602#p100602)
Larry Osterman (https://docs.microsoft.com/en-us/archive/blogs/larryosterman/)
птичка0001, вот мне заняться больше нечем, как каждое ваше сообщение отслеживать и тут же бежать вприпрыжку комментировать
В реальной жизни звук приложения - это музыка (с паузами между треками), аудиокниги (с паузами между словани, фразами, главами), фильмы и игры, где может вообще довольно долго идти какое-нибудь фоновое звуковое оформление идти типа шума ветра, волн и т.п. С другой стороны отсутствие звука - вовсе не нолик - в порядке вещей шум смикшированный шум с линейного входа, ошибки округления и т.п. С чем, собственно, и столкнулся человек в вашей ссылке "Два." Создаётся впечатление, что вы не особо вчитываясь накидываете сюда нагугленное.
Т.е. надо снимать данные какое-то продолжительное время, да ещё и анализировать их природу.
А иначе будет как в анекдоте:
- Товарищ прапорщик, посмотрите: поворотник работает?
- Работает, не работает, работает, не работает...
И это ещё не учитывая нескольких звуковых устройств и звуков уведомлений. В общем, всё это очень косвенно и ненадёжно.
птичка0001
28-05-2020, 16:56
Busla, спасибо за Ваше мнение. Ни в коем случае не хотела Вас задеть или обидеть каким-либо образом, просто было интересно услышать Вашу аргументацию по этому поводу.
Тогда Вам нужны беруши и шапочка из фольги, чтобы это было надежно и не косвенно :) Простите, не удержалась.
Busla, ну, так теперь есть хоть что и как «снимать» :).
Grabber2006
29-05-2020, 09:19
Для работы со звуком в Delphi удобно использовать Bass.dll (http://www.un4seen.com/). Я бы в этом случае мыслил бы в направлении постоянной записи со стереомикшера с триггером по превышению какого-то минимального уровня.
Но было бы лучше, если бы описали ситуацию, в которой вам это необходимо. Вероятно, что вы неправильно мыслите.
птичка0001
09-06-2020, 05:36
Windows накладывает определенные ограничения, и приложения не могут вмешиваться настолько глубоко, так как штатно (без привлечения сторонних средств) у API нет (очень сложно) доступа к потокам данных в не зависимости от того смешаны [данные] (loopback включено, общий микс, нет возможности разграничить активные от неактивных и проверить на тишину) они или нет. Даже с привлечением сторонних средств NAudio, обертки .net для аудиобиблиотеки bass и проч. это сложно.
раз (https://matthewvaneerde.wordpress.com/2008/12/16/sample-wasapi-loopback-capture-record-what-you-hear/), два (https://matthewvaneerde.wordpress.com/2008/12/10/sample-playing-silence-via-wasapi-event-driven-pull-mode/), три (https://matthewvaneerde.wordpress.com/2014/11/05/draining-the-wasapi-capture-buffer-fully/), четыре (https://mathewsachin.github.io/blog/2017/07/28/mixing-audio.html) и проч.
Возможно, лучший и самый простой путь - это получить пиковые значения для всех активных audio sessions (с активным аудио клиентом) / для всех конечных точек в системе/для всех приложений (это предлагалось выше уже). Чтобы не работать напрямую с Core Audio APIs можно использовать библиотеки. + Использовать «дорожную карту» по UWP, там у Вас будет рекомендованный API (https://docs.microsoft.com/en-us/uwp/api/Windows.Devices.Enumeration) для получения списка устройств и проч. Это только кажется сложным, но на самом деле это довольно просто :)
0 - это общепринятое значение тишины.
Насчет Стерео Микшера: Из документации (https://docs.microsoft.com/ru-ru/windows/win32/coreaudio/loopback-recording):
Although hardware loopback devices are similar in operation to the WASAPI loopback mode, they can be more difficult to use.
Hardware loopback devices have the following disadvantages for audio applications:
Not all audio adapters have loopback devices. Thus, applications that depend on them will not work on all systems.
Before an application can record from a loopback device, the user must identify the loopback device and enable it for use.
Different vendors assign different names to their hardware loopback devices. The following names are examples:
- Stereo Mix
- Waveout Mix
- Mixed Output
- What You Hear
The lack of standardized names might cause users to have difficulty identifying a loopback device in a list of device names.
+ В современных ОС (Windows) очень часто отсутствует Стерео Микшер и пользователи проходят жуткий квест на тему «как безопасненько и надежно его воткнуть»: ставят драйверы от Vista и проч.
+ В отдельных ОС мы можем защитить свои приложения (запрет захвата звука): конфиденциальная информация (личные голосовые записи), защита авторского права (музыка, фильмы и проч.).
Простите, если написано криво и не учтены все Ваши хотелки
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.