Страница 1 из 1
Звук компьютера
Добавлено: 08 фев 2015, 00:03
Sergey Ivanov
Подскажите, как поменять громкость через
? И возможно ли это вообще ?
Нашёл
это, но появляется только окно с регулировкой уровня звука.
Re: Звук компьютера
Добавлено: 08 фев 2015, 15:10
dadreamer
А
это не подходит? Есть ещё
вот такая ссылка.
Re: Звук компьютера
Добавлено: 08 фев 2015, 16:54
Sergey Ivanov
по первой ссылке пробовал способ. не работает, точнее я не понимаю от куда узнать
device ID.
мне громкость надо менять у системы. допустим, воспроизвожу звук через колонки из плеера или сайта и мне через
надо изменить звук.
- 111222334445.png (9.12 КБ) 13354 просмотра
Re: Звук компьютера
Добавлено: 08 фев 2015, 17:02
Sergey Ivanov
моя лень не имеет предела. благодаря вашей ссылке ( про использование user32.dll)
нашёл то что надо ! спасибо !
Re: Звук компьютера
Добавлено: 12 мар 2015, 09:59
Sergey Ivanov
dadreamer писал(а):А
это не подходит? Есть ещё
вот такая ссылка.
по первой ссылке не подходит, т.к. необходимо открывать звуковой файл в
, а я воспроизвожу его через другое приложение.
вторая ссылка - подходит, но можно ли получить текущую громкость ? сейчас получается, что регулировка громкости осуществляется "вслепую"
или можно задать конкретное значение громкости, а не только вверх или вниз ?
Re: Звук компьютера
Добавлено: 12 мар 2015, 11:34
dadreamer
Sergey Ivanov, почему у вас все темы такие "непростые"?..
Кстати, а чем не устроила регулировка громкости в стандартном окне Windows?
А для того, чтобы управлять громкостью в Windows, нужно лезть в дебри. На системах, начиная с Vista, изменился механизм взаимодействия с аудио-устройствами. Почитайте вот здесь:
About the Windows Core Audio APIs. Предполагая, что вы используете ОС не старее Висты, могу предложить только
такое решение. Все классы наподобие IMMDeviceEnumerator определены в mmdeviceapi.h, так что нужно качать и ставить
Microsoft Windows SDK for Windows 7. Подозреваю, что и ActiveX библиотеки там же лежат, а после установки должны зарегистрироваться в системе нужные классы, и уже после этого можно будет попытаться открыть их в
. Как альтернатива, есть ещё
NAudio с аналогами тех же классов. Возможно, что даже в коде не придётся ничего менять.
Re: Звук компьютера
Добавлено: 12 мар 2015, 11:36
Sergey Ivanov
Сделал так, но как-то не очень правильно это, как мне кажется
dadreamer писал(а):Sergey Ivanov, почему у вас все темы такие "непростые"?..
Кстати, а чем не устроила регулировка громкости в стандартном окне Windows?
Ну не знаю, тянет меня к прекрасному )))
Вы имеете в виду вызов микшера (SndVol32.exe) ? у меня два монитора, поэтому, это окно надо перемещать (открывается по умолчания на 1 мониторе, а мне надо чтобы было на 2). Для перемещения использую
cmdow. На некоторых компах cmdow работает стабильно, а на некоторых иногда не срабатывает.
PS надеялся, что через user32 как-то можно получить текущую громкость. видимо, нет. устанавливать новые компоненты не очень хочется.
Re: Звук компьютера
Добавлено: 12 мар 2015, 11:55
dadreamer
Sergey Ivanov, есть такое дело ) А если у пользователя громкость на пределе стоит? Хватит ли 52 итерации для обнуления громкости? Да и мне, честно говоря, не очень нравится слать сообщения каким-то приложениям. Имхо, как-то это ненадёжно работает время от времени.
Для перемещения использую cmdow. На некоторых компах cmdow работает стабильно, а на некоторых иногда не срабатывает.
Почему бы не использовать
SetWindowPos, хэндл (hWnd) я показал, как получить в смежной теме. Или есть более простая
MoveWindow. Эти функции должна работать на любой системе.
А что касается аудио, то весь пакет при дальнейшей работе вашей программы будет не нужен. Надо лишь выдернуть оттуда библиотеку для перечисления аудио-устройств. Скорее всего, её можно будет потом распространять вместе с приложением.
Re: Звук компьютера
Добавлено: 12 мар 2015, 12:10
Sergey Ivanov
dadreamer писал(а):Sergey Ivanov, есть такое дело ) А если у пользователя громкость на пределе стоит? Хватит ли 52 итерации для обнуления громкости? Да и мне, честно говоря, не очень нравится слать сообщения каким-то приложениям. Имхо, как-то это ненадёжно работает время от времени.
Для перемещения использую cmdow. На некоторых компах cmdow работает стабильно, а на некоторых иногда не срабатывает.
Почему бы не использовать
SetWindowPos, хэндл (hWnd) я показал, как получить в смежной теме. Или есть более простая
MoveWindow. Эти функции должна работать на любой системе.
А что касается аудио, то весь пакет при дальнейшей работе вашей программы будет не нужен. Надо лишь выдернуть оттуда библиотеку для перечисления аудио-устройств. Скорее всего, её можно будет потом распространять вместе с приложением.
52 - хватит. их всего 50 (весь диапазон). 52 - типа с запасом указал
Re: Звук компьютера
Добавлено: 13 мар 2015, 20:07
dadreamer
Sergey Ivanov, я тут вам решил немного помочь, попробовал библиотеку NAudio. Очень хорошо себя в работе она показала. Сопровождение неплохое и примеры на уровне, можно спокойно свой плеер/конвертор делать при желании. Используется библиотека NAudio.dll, на БД размещается .NET Constructor Node и в нём выбирается эта DLL. Сперва попробовал вот такой код (вы можете тоже попробовать в качестве домашнего задания
):
Код: Выделить всё
using NAudio.CoreAudioApi;
MMDeviceEnumerator devEnum = new MMDeviceEnumerator();
MMDevice defaultDevice = devEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
string currVolume = "MasterPeakVolume : " + defaultDevice.AudioMeterInformation.MasterPeakValue.ToString();
Но получил на выходе громкость = 0 дБ, скорее всего потому что у меня используется на текущем компе дополнительная звуковуха, весь поток идёт через нее. Так что я перебрал все аудио-точки с помощью
вот этого кода. Получилось вот что:
Первый элемент массива - как раз текущая громкость динамиков в моей системе. Установить громкость программно попробуйте сами, там до безобразия просто.
Re: Звук компьютера
Добавлено: 15 мар 2015, 10:02
Sergey Ivanov
Да, действительно просто ! Жаль что через user32.dll громкость не задать (
Re: Звук компьютера
Добавлено: 15 мар 2015, 10:55
dadreamer
Sergey Ivanov, учтите, что на XP и ниже вышеописанный способ работать не будет.
Re: Звук компьютера
Добавлено: 15 мар 2015, 11:46
Sergey Ivanov
спасибо, буду знать !