играет ли музыка?)
Есть ли возможность определить, выдает ли какое либо приложение звук в данные момент или нет.
Например визуально это можно видеть по прыгающему уровню в микшере :) А программно? |
посмотрите следующее: wasapi, IAudioSessionManager2, sysinternals и проч.
|
птичка0001, спасибо за наводку, но слишком абстрактно... и sysinternals - там разве есть инструменты для моего вопроса.
мне в идеале просто нужна консольная утилитка, которая запустившись, "слушает" например 5 сек... и возвращает errorlevel, играла музыка(звук) или нет. Всё. |
|
> но слишком абстрактно
Угу. > sysinternals - там разве есть инструменты для моего вопроса. PE. См. Audio Session (.dll) Audio Engine (.dll) для вывода приложений. Посмотрите там сами что к чему и что Вам надо. Ознакомьтесь с этим P.S. Все в Ваших руках :) Цитата:
Цитата:
Поудаляла Сообщения, простите, спать хочу и устала, надеюсь, что никто ничего не видел))) Простите. |
Цитата:
|
Если в Windows микшере появляется приложение, то по идее можно отследить.
|
В общем, перейдите по ссылке выше, актуализируйте под себя документацию, которую приводят авторы. Там есть вся необходимая информация для решения Вашего вопроса. И вот эту ссылку тоже прочтите и актуализируете под себя
Busla, Вы прежде чем писать о том, что нельзя, а что можно, хоть бы приводили доказательства своих слов, ибо выглядит голословно. В удаленном сообщении шла речь о sndvol, клиенте wasapi, с ползунками громкости session. P.S. Уже больше года не использую Windows. |
птичка0001, спасибо постараюсь выкурить. т.к. кроме вопроизведения wav на события в программе ничего в этом направлении не писал.
|
Опиум, имейте в виду, что возможно есть более простое и более актуальное решение (без всяких нюансов). Я всего лишь минут 10 гуглила, особенно не углублялась, так как мне тема не особо интересна. Возможно, Вы самостоятельно найдёте оптимальный вариант.
Оказывается есть готовые решения типа SoundVolumeView (введите в поисковике, не проверяла, просто пример). Удачи. |
Цитата:
|
Iska, Полагаю, Вы хотите меня «подловить» за некорректный пример (не проверяла) и за то, что есть определенные «нюансы», связанные с реализацией хотелки автора. Тогда приведу другой пример: какая-нибудь улучшенная копия Sndvol (за долгое время существования наверняка породил тучу «подражателей»).
// удалила, криво написала. + ссылку не ту прикрепила в п.2 (тут и п 2 был) |
Цитата:
Я просто не вижу данного функционала в SoundVolumeView и не очень представляю, чем может помочь какой-нибудь SndVol. |
Busla, извините за беспокойство, но не могли бы Вы поподробнее обьяснить второе свое «нельзя»? Спасибо.
|
Эх... Видимо, ответа мы не дождёмся. Однако теперь я знаю, как реагировать, если товарищ Busla будет говорить «Нельзя»... Просто непонятно, зачем так делать... Можно же...
1. IAudioSessionManager2 interface 2.IAudioMeterInformation interface 3. Core Audio APIs 4. About WASAPI Примеры, если документации оказалось недостаточно
|
птичка0001, вот мне заняться больше нечем, как каждое ваше сообщение отслеживать и тут же бежать вприпрыжку комментировать
В реальной жизни звук приложения - это музыка (с паузами между треками), аудиокниги (с паузами между словани, фразами, главами), фильмы и игры, где может вообще довольно долго идти какое-нибудь фоновое звуковое оформление идти типа шума ветра, волн и т.п. С другой стороны отсутствие звука - вовсе не нолик - в порядке вещей шум смикшированный шум с линейного входа, ошибки округления и т.п. С чем, собственно, и столкнулся человек в вашей ссылке "Два." Создаётся впечатление, что вы не особо вчитываясь накидываете сюда нагугленное. Т.е. надо снимать данные какое-то продолжительное время, да ещё и анализировать их природу. А иначе будет как в анекдоте: Цитата:
|
Busla, спасибо за Ваше мнение. Ни в коем случае не хотела Вас задеть или обидеть каким-либо образом, просто было интересно услышать Вашу аргументацию по этому поводу.
Тогда Вам нужны беруши и шапочка из фольги, чтобы это было надежно и не косвенно :) Простите, не удержалась. |
Busla, ну, так теперь есть хоть что и как «снимать» :).
|
Для работы со звуком в Delphi удобно использовать Bass.dll. Я бы в этом случае мыслил бы в направлении постоянной записи со стереомикшера с триггером по превышению какого-то минимального уровня.
Но было бы лучше, если бы описали ситуацию, в которой вам это необходимо. Вероятно, что вы неправильно мыслите. |
Windows накладывает определенные ограничения, и приложения не могут вмешиваться настолько глубоко, так как штатно (без привлечения сторонних средств) у API нет (очень сложно) доступа к потокам данных в не зависимости от того смешаны [данные] (loopback включено, общий микс, нет возможности разграничить активные от неактивных и проверить на тишину) они или нет. Даже с привлечением сторонних средств NAudio, обертки .net для аудиобиблиотеки bass и проч. это сложно.
раз, два, три, четыре и проч. Возможно, лучший и самый простой путь - это получить пиковые значения для всех активных audio sessions (с активным аудио клиентом) / для всех конечных точек в системе/для всех приложений (это предлагалось выше уже). Чтобы не работать напрямую с Core Audio APIs можно использовать библиотеки. + Использовать «дорожную карту» по UWP, там у Вас будет рекомендованный API для получения списка устройств и проч. Это только кажется сложным, но на самом деле это довольно просто :)
Простите, если написано криво и не учтены все Ваши хотелки |
Время: 07:57. |
Время: 07:57.
© OSzone.net 2001-