Звук компьютера

Обсуждение вопросов, связанных с обработкой аудио и видео информации

Звук компьютера

Postby Sergey Ivanov on 08 Feb 2015, 00:03

Подскажите, как поменять громкость через :labview: ? И возможно ли это вообще ?


Нашёл это, но появляется только окно с регулировкой уровня звука.
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Звук компьютера

Postby dadreamer on 08 Feb 2015, 15:10

А это не подходит? Есть ещё вот такая ссылка.
User avatar
dadreamer
professor
professor
 
Posts: 3336
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet

Re: Звук компьютера

Postby Sergey Ivanov on 08 Feb 2015, 16:54

по первой ссылке пробовал способ. не работает, точнее я не понимаю от куда узнать device ID.

мне громкость надо менять у системы. допустим, воспроизвожу звук через колонки из плеера или сайта и мне через :labview: надо изменить звук.
111222334445.png
111222334445.png (9.12 KiB) Viewed 10822 times
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Звук компьютера

Postby Sergey Ivanov on 08 Feb 2015, 17:02

моя лень не имеет предела. благодаря вашей ссылке ( про использование user32.dll) нашёл то что надо ! спасибо !
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Звук компьютера

Postby Sergey Ivanov on 12 Mar 2015, 09:59

dadreamer wrote:А это не подходит? Есть ещё вот такая ссылка.



по первой ссылке не подходит, т.к. необходимо открывать звуковой файл в :labview: , а я воспроизвожу его через другое приложение.

вторая ссылка - подходит, но можно ли получить текущую громкость ? сейчас получается, что регулировка громкости осуществляется "вслепую"

или можно задать конкретное значение громкости, а не только вверх или вниз ?
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Звук компьютера

Postby dadreamer on 12 Mar 2015, 11:34

Sergey Ivanov, почему у вас все темы такие "непростые"?.. :D
Кстати, а чем не устроила регулировка громкости в стандартном окне Windows?
А для того, чтобы управлять громкостью в Windows, нужно лезть в дебри. На системах, начиная с Vista, изменился механизм взаимодействия с аудио-устройствами. Почитайте вот здесь: About the Windows Core Audio APIs. Предполагая, что вы используете ОС не старее Висты, могу предложить только такое решение. Все классы наподобие IMMDeviceEnumerator определены в mmdeviceapi.h, так что нужно качать и ставить Microsoft Windows SDK for Windows 7. Подозреваю, что и ActiveX библиотеки там же лежат, а после установки должны зарегистрироваться в системе нужные классы, и уже после этого можно будет попытаться открыть их в :labview: . Как альтернатива, есть ещё NAudio с аналогами тех же классов. Возможно, что даже в коде не придётся ничего менять.
User avatar
dadreamer
professor
professor
 
Posts: 3336
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet

Re: Звук компьютера

Postby Sergey Ivanov on 12 Mar 2015, 11:36

Сделал так, но как-то не очень правильно это, как мне кажется
Снимок.JPG

VolumeCTRL.vi
(23.18 KiB) Downloaded 131 times


dadreamer wrote:Sergey Ivanov, почему у вас все темы такие "непростые"?.. :D
Кстати, а чем не устроила регулировка громкости в стандартном окне Windows?


Ну не знаю, тянет меня к прекрасному )))
Вы имеете в виду вызов микшера (SndVol32.exe) ? у меня два монитора, поэтому, это окно надо перемещать (открывается по умолчания на 1 мониторе, а мне надо чтобы было на 2). Для перемещения использую cmdow. На некоторых компах cmdow работает стабильно, а на некоторых иногда не срабатывает.

PS надеялся, что через user32 как-то можно получить текущую громкость. видимо, нет. устанавливать новые компоненты не очень хочется.
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Звук компьютера

Postby dadreamer on 12 Mar 2015, 11:55

Sergey Ivanov, есть такое дело ) А если у пользователя громкость на пределе стоит? Хватит ли 52 итерации для обнуления громкости? Да и мне, честно говоря, не очень нравится слать сообщения каким-то приложениям. Имхо, как-то это ненадёжно работает время от времени.
Для перемещения использую cmdow. На некоторых компах cmdow работает стабильно, а на некоторых иногда не срабатывает.

Почему бы не использовать SetWindowPos, хэндл (hWnd) я показал, как получить в смежной теме. Или есть более простая MoveWindow. Эти функции должна работать на любой системе.
А что касается аудио, то весь пакет при дальнейшей работе вашей программы будет не нужен. Надо лишь выдернуть оттуда библиотеку для перечисления аудио-устройств. Скорее всего, её можно будет потом распространять вместе с приложением.
User avatar
dadreamer
professor
professor
 
Posts: 3336
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet

Re: Звук компьютера

Postby Sergey Ivanov on 12 Mar 2015, 12:10

dadreamer wrote:Sergey Ivanov, есть такое дело ) А если у пользователя громкость на пределе стоит? Хватит ли 52 итерации для обнуления громкости? Да и мне, честно говоря, не очень нравится слать сообщения каким-то приложениям. Имхо, как-то это ненадёжно работает время от времени.
Для перемещения использую cmdow. На некоторых компах cmdow работает стабильно, а на некоторых иногда не срабатывает.

Почему бы не использовать SetWindowPos, хэндл (hWnd) я показал, как получить в смежной теме. Или есть более простая MoveWindow. Эти функции должна работать на любой системе.
А что касается аудио, то весь пакет при дальнейшей работе вашей программы будет не нужен. Надо лишь выдернуть оттуда библиотеку для перечисления аудио-устройств. Скорее всего, её можно будет потом распространять вместе с приложением.


52 - хватит. их всего 50 (весь диапазон). 52 - типа с запасом указал :haha:
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Звук компьютера

Postby dadreamer on 13 Mar 2015, 20:07

Sergey Ivanov, я тут вам решил немного помочь, попробовал библиотеку NAudio. Очень хорошо себя в работе она показала. Сопровождение неплохое и примеры на уровне, можно спокойно свой плеер/конвертор делать при желании. Используется библиотека NAudio.dll, на БД размещается .NET Constructor Node и в нём выбирается эта DLL. Сперва попробовал вот такой код (вы можете тоже попробовать в качестве домашнего задания :D):
Code: Select all
using NAudio.CoreAudioApi;
MMDeviceEnumerator devEnum = new MMDeviceEnumerator();
MMDevice defaultDevice = devEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
string currVolume = "MasterPeakVolume : " + defaultDevice.AudioMeterInformation.MasterPeakValue.ToString();

Но получил на выходе громкость = 0 дБ, скорее всего потому что у меня используется на текущем компе дополнительная звуковуха, весь поток идёт через нее. Так что я перебрал все аудио-точки с помощью вот этого кода. Получилось вот что:

2015-03-13_21-57-13.jpg
2015-03-13_21-57-32.jpg
Untitled 2.vi
LV2011
(9.12 KiB) Downloaded 147 times

Первый элемент массива - как раз текущая громкость динамиков в моей системе. Установить громкость программно попробуйте сами, там до безобразия просто. :crazy:
User avatar
dadreamer
professor
professor
 
Posts: 3336
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet

Re: Звук компьютера

Postby Sergey Ivanov on 15 Mar 2015, 10:02

Да, действительно просто ! Жаль что через user32.dll громкость не задать (
Attachments
Снимок.JPG
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: Звук компьютера

Postby dadreamer on 15 Mar 2015, 10:55

Sergey Ivanov, учтите, что на XP и ниже вышеописанный способ работать не будет.
User avatar
dadreamer
professor
professor
 
Posts: 3336
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet

Re: Звук компьютера

Postby Sergey Ivanov on 15 Mar 2015, 11:46

спасибо, буду знать !
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP


Return to Работа с графикой и звуком

Who is online

Users browsing this forum: Google and 1 guest

cron