![]() |
AutomaticVolumeControl (автоматическая регулировка громкости приложений)
Давно пытаюсь разобраться с автоматической регулировкой громкости приложений...
Первая хотелка была такой – Снижение громкости iCarDS при появлении звука в BlueStacks. Восстановление громкости при пропадании звука. Пытался решить всякими CheVolume, IndieVolume, VBCABLE и т.п., но получались какие-то сложные глючные костыли. Потом наткнулся на AutomaticVolumeMixer. Первую хотелку она решала, но есть пара нюансов:
Поначалу я ковырялся в исходном коде AutomaticVolumeMixer, переделывал iCarDS на регулировку громкости самого DSPlayer, а не устройства вывода, и т.д. и т.п. Но потом решил изобрести свой велосипед, который, недолго думая, обозвал AutomaticVolumeControl (скачать). Для работы требуется .NET Framework 4.8 + RUS Language Pack. Проверял на Win7, Win10. Возможности приложения – это реализация мои хотелок. Программа запускается свернутая в трей. Запуск программы настраивается самостоятельно. Настройки разворачиваются при двойном клике по иконке в трее, или при выборе соответствующего пункта меню иконки. Настройки программы выглядят так: https://i123.fastpic.org/big/2024/03...3154ae1829.png Рис. 1. Настройки программы. "Отслеживаемые процессы" – это процессы, за наличием звука в которых следит программа. При появлении звука в каком-либо из этих процессов запускается процедура снижения громкости всех процессов из таблицы "Процессы с изменяемой громкостью" в соответствии с параметрами "Коэффициент/громкость" и "Тип". Типы:
"Процессы с фиксированной громкостью" – это процессы, громкость которых не изменяется при превышении громкости устройства вывода заданного уровня. Если громкость устройства вывода меньше заданного уровня (фиксированной громкости), то громкость этого процесса равна громкости устройства. Если громкость устройства вывода больше заданного уровня (фиксированной громкости) – то громкость процесса не изменяется, т.е. остается зафиксированной. Под таблицами расположены кнопки добавления/удаления процессов. Другие параметры:
Решил выяснить, насколько различается. Установил программу-шумомер на телефоне. Телефон расположил вблизи переднего динамика. В BlueStacks установил аудиоплеер и скопировал туда немного музыки. В микшере Windows установил громкость устройства вывода и громкость BlueStacks одинаковой – 10%. Это мой комфортный уровень громкости BlueStacks, у каждого он будет другой. Включил музыку в BlueStacks. Шумомер показал среднее значение 68 дБ. https://i123.fastpic.org/big/2024/03...96c1b5e11b.png Рис. 2. Громкости устройства и BlueStacks – 10%. Физическая громкость – 68 дБ. Далее установил громкость устройства вывода 100%, а громкость BlueStacks оставил той же – 10%. Шумомер показал среднее значение 81 дБ. https://i123.fastpic.org/big/2024/03...752e6252a2.png Рис. 3. Громкость устройства – 100%, BlueStacks – 10%. Физическая громкость – 81 дБ. Разница громкости – 81-68=13 дБ. В переводе на понятный язык громкость увеличилась в 13/10*2=2,6 раз (т.к. увеличение на 10 дБ – это увеличение в 2 раза). Т.е. при уровне громкости устройства вывода 100% громкость BlueStacks должна быть 10/2,6=3,8%, чтобы на слух громкость была на том же уровне, когда громкость устройства 10%. Т.о., помимо удержания/фиксирования громкости BlueStacks на одном уровне (10%) необходимо еще и дополнительно корректировать его громкость – при увеличении громкости устройства с 10% до 100% громкость BlueStacks должна пропорционально изменяться с 10% до 3,8%. Для этой коррекции в настройки программы необходимо ввести коэффициент, рассчитываемый следующим образом: Коэффициент = (УвеличениеГромкостиРаз-1)/(1-ГромкостьFixed) = (2,6-1)/(1-0,1) = 1,6/0,9 = 1,7778 , где:
|
Часовой пояс GMT +4, время: 00:53. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot