Russian Qt Forum

Qt => Мультимедиа => Тема начата: Firefox от Март 24, 2010, 08:59



Название: wav проблема с waveOutSetVolume
Отправлено: Firefox от Март 24, 2010, 08:59
Здравствуйте. и спользую следующую функцию для регулировки звука
Код:
void WaveSound::volum(unsigned int SetVolume)
{
WAVEOUTCAPSA Woc;
DWORD Volume;
if(waveOutGetDevCapsA(WAVE_MAPPER, &Woc, sizeof(Woc)) ==MMSYSERR_NOERROR)

if(Woc.dwSupport && WAVECAPS_VOLUME == WAVECAPS_VOLUME)

waveOutSetVolume(0, SetVolume);

}
в программе использую её так
Код:
volum(36000);
происходит следующий дефект: звук меняется, но смещается ползунок баланса распределения звука между калонками влево, то есть одну колонку полностью не слышно. а так как у меня в силу технических аспектов воспроизводит только одна колонка(главная), то получается что звука вообще нет. как избежать этого?подскажите пожалуйста


Название: Re: wav проблема с waveOutSetVolume
Отправлено: zenden от Март 24, 2010, 09:23
Код
C++ (Qt)
waveOutSetVolume((HWAVEOUT)WAVE_MAPPER, MAKELONG( left, right ));

или

Код
C++ (Qt)
volum(MAKELONG( left, right ));


Название: Re: wav проблема с waveOutSetVolume
Отправлено: Firefox от Март 24, 2010, 15:28
Код:
void WaveSound::volum(unsigned int SetVolume)
{
WAVEOUTCAPSA Woc;
DWORD Volume;
if(waveOutGetDevCapsA(WAVE_MAPPER, &Woc, sizeof(Woc)) ==MMSYSERR_NOERROR)

if(Woc.dwSupport && WAVECAPS_VOLUME == WAVECAPS_VOLUME)

waveOutSetVolume((HWAVEOUT)WAVE_MAPPER,MAKELONG( SetVolume, SetVolume));

}
volum(36000)
я правильно понимаю лево и право - это громкость левой и правой колонки(или канала)