-
Можно ли в Delphi отследить уровень воспроизводимого системой Windows 7 звука? Например, пока играет тихая спокойная фоновая музыка с низким уровнем воспроизведении, то ничего не делаем, но если в музыке происходит резкий всплеск уровня (например ударили в барабаны), или другая программа (например Скайп) резко зазвонила, то запрограммировать какое либо СОБЫТИЕ-1. Есть ли функция, которая возвращала бы уровень звука воспроизводимого Windows 7 в данный момент?
-
Функции нет. Нужно самому писать. 1) Выбираете библиотеку с которой будете работать. 2) Захватываете звук с микшера. Тут надо учитывать особенности работы звуковых карт. Надо знать минимальный размер буфера. И правильно переключать что-бы разрывов и пропаданий небыло. 3) Делаете конвейер: захват -> обработка -> генерация вешнего воздействия Внешнее воздействие это может быть сообщение или вызов функции, или событие. Конвейер надо строить с учётом того что виндоус не является системой реального масштаба времени. 4) Обработка это БПФ, выделение основного тона, далее порог. Порог Советую выбирать не равномерный, а с учётом психофизического восприятия уровня громкости. Он там неравномерный, а с нарастанием.
-
> [1] Pavia © (01.05.15 22:44) > выделение основного тона
Причём тут тон?
|