Звук компьютера
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Звук компьютера
Подскажите, как поменять громкость через ? И возможно ли это вообще ?
Нашёл это, но появляется только окно с регулировкой уровня звука.
Нашёл это, но появляется только окно с регулировкой уровня звука.
Добро пожаловать на http://rk-stud.ru/
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Звук компьютера
по первой ссылке пробовал способ. не работает, точнее я не понимаю от куда узнать device ID.
мне громкость надо менять у системы. допустим, воспроизвожу звук через колонки из плеера или сайта и мне через надо изменить звук.
мне громкость надо менять у системы. допустим, воспроизвожу звук через колонки из плеера или сайта и мне через надо изменить звук.
Добро пожаловать на http://rk-stud.ru/
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Звук компьютера
моя лень не имеет предела. благодаря вашей ссылке ( про использование user32.dll) нашёл то что надо ! спасибо !
Добро пожаловать на http://rk-stud.ru/
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Звук компьютера
по первой ссылке не подходит, т.к. необходимо открывать звуковой файл в , а я воспроизвожу его через другое приложение.
вторая ссылка - подходит, но можно ли получить текущую громкость ? сейчас получается, что регулировка громкости осуществляется "вслепую"
или можно задать конкретное значение громкости, а не только вверх или вниз ?
Добро пожаловать на http://rk-stud.ru/
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: Звук компьютера
Sergey Ivanov, почему у вас все темы такие "непростые"?..
Кстати, а чем не устроила регулировка громкости в стандартном окне Windows?
А для того, чтобы управлять громкостью в Windows, нужно лезть в дебри. На системах, начиная с Vista, изменился механизм взаимодействия с аудио-устройствами. Почитайте вот здесь: About the Windows Core Audio APIs. Предполагая, что вы используете ОС не старее Висты, могу предложить только такое решение. Все классы наподобие IMMDeviceEnumerator определены в mmdeviceapi.h, так что нужно качать и ставить Microsoft Windows SDK for Windows 7. Подозреваю, что и ActiveX библиотеки там же лежат, а после установки должны зарегистрироваться в системе нужные классы, и уже после этого можно будет попытаться открыть их в . Как альтернатива, есть ещё NAudio с аналогами тех же классов. Возможно, что даже в коде не придётся ничего менять.
Кстати, а чем не устроила регулировка громкости в стандартном окне Windows?
А для того, чтобы управлять громкостью в Windows, нужно лезть в дебри. На системах, начиная с Vista, изменился механизм взаимодействия с аудио-устройствами. Почитайте вот здесь: About the Windows Core Audio APIs. Предполагая, что вы используете ОС не старее Висты, могу предложить только такое решение. Все классы наподобие IMMDeviceEnumerator определены в mmdeviceapi.h, так что нужно качать и ставить Microsoft Windows SDK for Windows 7. Подозреваю, что и ActiveX библиотеки там же лежат, а после установки должны зарегистрироваться в системе нужные классы, и уже после этого можно будет попытаться открыть их в . Как альтернатива, есть ещё NAudio с аналогами тех же классов. Возможно, что даже в коде не придётся ничего менять.
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Звук компьютера
Сделал так, но как-то не очень правильно это, как мне кажется
Вы имеете в виду вызов микшера (SndVol32.exe) ? у меня два монитора, поэтому, это окно надо перемещать (открывается по умолчания на 1 мониторе, а мне надо чтобы было на 2). Для перемещения использую cmdow. На некоторых компах cmdow работает стабильно, а на некоторых иногда не срабатывает.
PS надеялся, что через user32 как-то можно получить текущую громкость. видимо, нет. устанавливать новые компоненты не очень хочется.
Ну не знаю, тянет меня к прекрасному )))dadreamer писал(а):Sergey Ivanov, почему у вас все темы такие "непростые"?..
Кстати, а чем не устроила регулировка громкости в стандартном окне Windows?
Вы имеете в виду вызов микшера (SndVol32.exe) ? у меня два монитора, поэтому, это окно надо перемещать (открывается по умолчания на 1 мониторе, а мне надо чтобы было на 2). Для перемещения использую cmdow. На некоторых компах cmdow работает стабильно, а на некоторых иногда не срабатывает.
PS надеялся, что через user32 как-то можно получить текущую громкость. видимо, нет. устанавливать новые компоненты не очень хочется.
Добро пожаловать на http://rk-stud.ru/
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: Звук компьютера
Sergey Ivanov, есть такое дело ) А если у пользователя громкость на пределе стоит? Хватит ли 52 итерации для обнуления громкости? Да и мне, честно говоря, не очень нравится слать сообщения каким-то приложениям. Имхо, как-то это ненадёжно работает время от времени.
А что касается аудио, то весь пакет при дальнейшей работе вашей программы будет не нужен. Надо лишь выдернуть оттуда библиотеку для перечисления аудио-устройств. Скорее всего, её можно будет потом распространять вместе с приложением.
Почему бы не использовать SetWindowPos, хэндл (hWnd) я показал, как получить в смежной теме. Или есть более простая MoveWindow. Эти функции должна работать на любой системе.Для перемещения использую cmdow. На некоторых компах cmdow работает стабильно, а на некоторых иногда не срабатывает.
А что касается аудио, то весь пакет при дальнейшей работе вашей программы будет не нужен. Надо лишь выдернуть оттуда библиотеку для перечисления аудио-устройств. Скорее всего, её можно будет потом распространять вместе с приложением.
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Звук компьютера
52 - хватит. их всего 50 (весь диапазон). 52 - типа с запасом указалdadreamer писал(а):Sergey Ivanov, есть такое дело ) А если у пользователя громкость на пределе стоит? Хватит ли 52 итерации для обнуления громкости? Да и мне, честно говоря, не очень нравится слать сообщения каким-то приложениям. Имхо, как-то это ненадёжно работает время от времени.Почему бы не использовать SetWindowPos, хэндл (hWnd) я показал, как получить в смежной теме. Или есть более простая MoveWindow. Эти функции должна работать на любой системе.Для перемещения использую cmdow. На некоторых компах cmdow работает стабильно, а на некоторых иногда не срабатывает.
А что касается аудио, то весь пакет при дальнейшей работе вашей программы будет не нужен. Надо лишь выдернуть оттуда библиотеку для перечисления аудио-устройств. Скорее всего, её можно будет потом распространять вместе с приложением.
Добро пожаловать на http://rk-stud.ru/
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: Звук компьютера
Sergey Ivanov, я тут вам решил немного помочь, попробовал библиотеку NAudio. Очень хорошо себя в работе она показала. Сопровождение неплохое и примеры на уровне, можно спокойно свой плеер/конвертор делать при желании. Используется библиотека NAudio.dll, на БД размещается .NET Constructor Node и в нём выбирается эта DLL. Сперва попробовал вот такой код (вы можете тоже попробовать в качестве домашнего задания ):
Но получил на выходе громкость = 0 дБ, скорее всего потому что у меня используется на текущем компе дополнительная звуковуха, весь поток идёт через нее. Так что я перебрал все аудио-точки с помощью вот этого кода. Получилось вот что:
Первый элемент массива - как раз текущая громкость динамиков в моей системе. Установить громкость программно попробуйте сами, там до безобразия просто.
Код: Выделить всё
using NAudio.CoreAudioApi;
MMDeviceEnumerator devEnum = new MMDeviceEnumerator();
MMDevice defaultDevice = devEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
string currVolume = "MasterPeakVolume : " + defaultDevice.AudioMeterInformation.MasterPeakValue.ToString();
Первый элемент массива - как раз текущая громкость динамиков в моей системе. Установить громкость программно попробуйте сами, там до безобразия просто.
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Звук компьютера
Да, действительно просто ! Жаль что через user32.dll громкость не задать (
Добро пожаловать на http://rk-stud.ru/
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация: