Russian Qt Forum

Qt => Мультимедиа => Тема начата: Aeromiss от Декабрь 10, 2010, 03:51



Название: Регулятор громкости системы
Отправлено: Aeromiss от Декабрь 10, 2010, 03:51
Помогите реализовать регулятор громкости системы(не видео плеера).... Вроде просто....Искал пытался через directsound установил но как подключить Qt и DirectX не понимаю.... через winmm.dll но в dll я не понимаю особо руки кривые.... там функция требует тип dword... Qt такого не знает и пишет как не опознанный.... Помогите кто чем может=)...


Название: Re: Регулятор громкости системы
Отправлено: xokc от Декабрь 10, 2010, 22:42
Чего за функция-то? Если waveOutSetVolume, то надо сделать #include <mmsystem.h>  и добавить в .pro файл LIBS += winmm.lib. Функция требует тип DWORD, что для С++ совсем не эквивалентно dword.


Название: Re: Регулятор громкости системы
Отправлено: Aeromiss от Декабрь 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);  
в итоге не увидело устройство или канал....
че делать?


Название: Re: Регулятор громкости системы
Отправлено: Admin от Декабрь 13, 2010, 13:18
Я в свое время писал классы для регуляции звука, функция ищет в системе микрофон или LineIn и меняет ему громкость.

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

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



Название: Re: Регулятор громкости системы
Отправлено: Aeromiss от Декабрь 14, 2010, 00:01
я на http://www.codeproject.com/KB/vista/CoreAudio.aspx тут работает и на w7 но тут VS.... и dll.... ну и кроме всего оч сложно закодена... лучше поискать варианты полегче....лана качаю VS попробую на нем...