Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   играет ли музыка?) (http://forum.oszone.net/showthread.php?t=345281)

Опиум 22-05-2020 19:12 2922224

играет ли музыка?)
 
Есть ли возможность определить, выдает ли какое либо приложение звук в данные момент или нет.
Например визуально это можно видеть по прыгающему уровню в микшере :) А программно?

птичка0001 23-05-2020 12:36 2922271

посмотрите следующее: wasapi, IAudioSessionManager2, sysinternals и проч.

Опиум 23-05-2020 13:46 2922279

птичка0001, спасибо за наводку, но слишком абстрактно... и sysinternals - там разве есть инструменты для моего вопроса.
мне в идеале просто нужна консольная утилитка, которая запустившись, "слушает" например 5 сек... и возвращает errorlevel, играла музыка(звук) или нет. Всё.

Busla 23-05-2020 15:23 2922287

Цитата:

Цитата Опиум
Есть ли возможность определить, выдает ли какое либо приложение звук в данные момент или нет. »

AFAIK нельзя

Цитата:

Цитата Опиум
Например визуально это можно видеть по прыгающему уровню в микшере »

нельзя
приложение может воспроизводить тишину :-)

птичка0001 23-05-2020 16:50 2922304

> но слишком абстрактно
Угу.

> sysinternals - там разве есть инструменты для моего вопроса.
PE.
См. Audio Session (.dll) Audio Engine (.dll) для вывода приложений. Посмотрите там сами что к чему и что Вам надо.


Ознакомьтесь с этим

P.S. Все в Ваших руках :)
Цитата:

Цитата Опиум
Есть ли возможность определить, выдает ли какое либо приложение звук в данные момент или нет.

Цитата:

Цитата Busla
AFAIK нельзя

На всякий случай отмечу: можно. Только формулировку лучше использовать «воспроизводить аудио/выводить звук», а не «выдавать звук».
Поудаляла Сообщения, простите, спать хочу и устала, надеюсь, что никто ничего не видел))) Простите.

Опиум 23-05-2020 17:53 2922309

Цитата:

Цитата Busla
приложение может воспроизводить тишину :-) »

в моем случае ответ должен быть отрицателен - музыки_нет

artenaki 23-05-2020 23:05 2922342

Если в Windows микшере появляется приложение, то по идее можно отследить.

птичка0001 24-05-2020 08:50 2922370

В общем, перейдите по ссылке выше, актуализируйте под себя документацию, которую приводят авторы. Там есть вся необходимая информация для решения Вашего вопроса. И вот эту ссылку тоже прочтите и актуализируете под себя
Busla, Вы прежде чем писать о том, что нельзя, а что можно, хоть бы приводили доказательства своих слов, ибо выглядит голословно.
В удаленном сообщении шла речь о sndvol, клиенте wasapi, с ползунками громкости session.
P.S. Уже больше года не использую Windows.

Опиум 24-05-2020 09:46 2922377

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

птичка0001 24-05-2020 12:41 2922401

Опиум, имейте в виду, что возможно есть более простое и более актуальное решение (без всяких нюансов). Я всего лишь минут 10 гуглила, особенно не углублялась, так как мне тема не особо интересна. Возможно, Вы самостоятельно найдёте оптимальный вариант.
Оказывается есть готовые решения типа SoundVolumeView (введите в поисковике, не проверяла, просто пример).

Удачи.

Iska 25-05-2020 05:38 2922507

Цитата:

Цитата птичка0001
Оказывается есть готовые решения типа SoundVolumeView (введите в поисковике, не проверяла, просто пример). »

И где в нём показывается воспроизведение звука в текущий момент?

птичка0001 25-05-2020 07:19 2922516

Iska, Полагаю, Вы хотите меня «подловить» за некорректный пример (не проверяла) и за то, что есть определенные «нюансы», связанные с реализацией хотелки автора. Тогда приведу другой пример: какая-нибудь улучшенная копия Sndvol (за долгое время существования наверняка породил тучу «подражателей»).
// удалила, криво написала. + ссылку не ту прикрепила в п.2 (тут и п 2 был)

Iska 25-05-2020 13:17 2922553

Цитата:

Цитата птичка0001
Iska, Полагаю, Вы хотите меня «подловить» за некорректный пример »

Нет, не хотел.

Я просто не вижу данного функционала в SoundVolumeView и не очень представляю, чем может помочь какой-нибудь SndVol.

птичка0001 27-05-2020 20:58 2923008

Busla, извините за беспокойство, но не могли бы Вы поподробнее обьяснить второе свое «нельзя»? Спасибо.

птичка0001 28-05-2020 11:23 2923060

Эх... Видимо, ответа мы не дождёмся. Однако теперь я знаю, как реагировать, если товарищ Busla будет говорить «Нельзя»... Просто непонятно, зачем так делать... Можно же...
1. IAudioSessionManager2 interface
2.IAudioMeterInformation interface
3. Core Audio APIs
4. About WASAPI
Примеры, если документации оказалось недостаточно

Busla 28-05-2020 16:04 2923095

птичка0001, вот мне заняться больше нечем, как каждое ваше сообщение отслеживать и тут же бежать вприпрыжку комментировать

В реальной жизни звук приложения - это музыка (с паузами между треками), аудиокниги (с паузами между словани, фразами, главами), фильмы и игры, где может вообще довольно долго идти какое-нибудь фоновое звуковое оформление идти типа шума ветра, волн и т.п. С другой стороны отсутствие звука - вовсе не нолик - в порядке вещей шум смикшированный шум с линейного входа, ошибки округления и т.п. С чем, собственно, и столкнулся человек в вашей ссылке "Два." Создаётся впечатление, что вы не особо вчитываясь накидываете сюда нагугленное.
Т.е. надо снимать данные какое-то продолжительное время, да ещё и анализировать их природу.
А иначе будет как в анекдоте:
Цитата:

- Товарищ прапорщик, посмотрите: поворотник работает?
- Работает, не работает, работает, не работает...
И это ещё не учитывая нескольких звуковых устройств и звуков уведомлений. В общем, всё это очень косвенно и ненадёжно.

птичка0001 28-05-2020 16:56 2923098

Busla, спасибо за Ваше мнение. Ни в коем случае не хотела Вас задеть или обидеть каким-либо образом, просто было интересно услышать Вашу аргументацию по этому поводу.
Тогда Вам нужны беруши и шапочка из фольги, чтобы это было надежно и не косвенно :) Простите, не удержалась.

Iska 28-05-2020 17:17 2923101

Busla, ну, так теперь есть хоть что и как «снимать» :).

Grabber2006 29-05-2020 09:19 2923154

Для работы со звуком в Delphi удобно использовать Bass.dll. Я бы в этом случае мыслил бы в направлении постоянной записи со стереомикшера с триггером по превышению какого-то минимального уровня.
Но было бы лучше, если бы описали ситуацию, в которой вам это необходимо. Вероятно, что вы неправильно мыслите.

птичка0001 09-06-2020 05:36 2924489

Windows накладывает определенные ограничения, и приложения не могут вмешиваться настолько глубоко, так как штатно (без привлечения сторонних средств) у API нет (очень сложно) доступа к потокам данных в не зависимости от того смешаны [данные] (loopback включено, общий микс, нет возможности разграничить активные от неактивных и проверить на тишину) они или нет. Даже с привлечением сторонних средств NAudio, обертки .net для аудиобиблиотеки bass и проч. это сложно.
раз, два, три, четыре и проч.
Возможно, лучший и самый простой путь - это получить пиковые значения для всех активных audio sessions (с активным аудио клиентом) / для всех конечных точек в системе/для всех приложений (это предлагалось выше уже). Чтобы не работать напрямую с Core Audio APIs можно использовать библиотеки. + Использовать «дорожную карту» по UWP, там у Вас будет рекомендованный API для получения списка устройств и проч. Это только кажется сложным, но на самом деле это довольно просто :)
  • 0 - это общепринятое значение тишины.
  • Насчет Стерео Микшера: Из документации:
    Цитата:

    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 и проч.
    + В отдельных ОС мы можем защитить свои приложения (запрет захвата звука): конфиденциальная информация (личные голосовые записи), защита авторского права (музыка, фильмы и проч.).


Простите, если написано криво и не учтены все Ваши хотелки


Время: 07:57.

Время: 07:57.
© OSzone.net 2001-