Russian Qt Forum
Май 12, 2024, 19:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Регулятор громкости системы  (Прочитано 5578 раз)
Aeromiss
Гость
« : Декабрь 10, 2010, 03:51 »

Помогите реализовать регулятор громкости системы(не видео плеера).... Вроде просто....Искал пытался через directsound установил но как подключить Qt и DirectX не понимаю.... через winmm.dll но в dll я не понимаю особо руки кривые.... там функция требует тип dword... Qt такого не знает и пишет как не опознанный.... Помогите кто чем может=)...
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #1 : Декабрь 10, 2010, 22:42 »

Чего за функция-то? Если waveOutSetVolume, то надо сделать #include <mmsystem.h>  и добавить в .pro файл LIBS += winmm.lib. Функция требует тип DWORD, что для С++ совсем не эквивалентно dword.
Записан
Aeromiss
Гость
« Ответ #2 : Декабрь 10, 2010, 23:56 »

Пробую пока что убрать звук вообще пишет ставлю
waveOutSetVolume(0,0);
Получилось только звук убирает в самом приложении(создается канал приложения)...
а хотелось бы чтоб управляло общим каналом(тоесть всеми)....
нашел пару гайдов там есть алгоритм выбора канала для его управления через WaveOutGetNumDevs и через открытие канала. В Qt WaveOutGetNumDevs выдает символ AD0h по ANSI и ппц это ведь не количество устройств...
c громкостью разобрался... осталось добраться до общего канала(общей громкости системы)
пробовал
  a=waveOutGetID((HWAVEOUT)WAVE_MAPPER,(LPUINT)"0268(как и в след DEV_0268)");
     b=waveOutGetID((HWAVEOUT)WAVE_MAPPER,(LPUINT)"HDAUDIO\FUNC_01&VEN_10EC&DEV_0268&SUBSYS_1025011E//ID устройства(оборудования) как по гайду");
//в обоих случаях получается символ | видимо это я ID получил =)
    ui->AddressLabel->setText((QString)a);
    ui->statusLabel->setText((QString)b);
    waveOutSetVolume((HWAVEOUT)a,(DWORD)0x0000);
    waveOutSetVolume((HWAVEOUT)b,(DWORD)0x0000);  
в итоге не увидело устройство или канал....
че делать?
« Последнее редактирование: Декабрь 11, 2010, 18:50 от Aeromiss » Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #3 : Декабрь 13, 2010, 13:18 »

Я в свое время писал классы для регуляции звука, функция ищет в системе микрофон или LineIn и меняет ему громкость.

К сожалению не будет работать в Windows 7, я щас сам в поиске решений.

Исходники прикрепил.

Записан
Aeromiss
Гость
« Ответ #4 : Декабрь 14, 2010, 00:01 »

я на http://www.codeproject.com/KB/vista/CoreAudio.aspx тут работает и на w7 но тут VS.... и dll.... ну и кроме всего оч сложно закодена... лучше поискать варианты полегче....лана качаю VS попробую на нем...
« Последнее редактирование: Декабрь 14, 2010, 00:20 от Aeromiss » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.132 секунд. Запросов: 23.