Q&A

  • CD 볼륨제어를 하면 MAIN과 MIC의 볼륨까지 변하는 걸까요?
CD 볼륨제어 TrackBar에서 이벤트가 발생하면 실행하는 함수를

옮겨놓았습니다.

근데 CD 볼륨제어를 하면 MAIN 볼륨과 MIC 볼륨까지 같이

제어가 되는데 왜그런지 답답합니다.

제발 도와주소서..



// CD-ROM의 볼륨설정을 변경하는 이벤트가 발생하면

procedure TMixerForm.TrackBar3Change(Sender: TObject);

begin

SetAUXMaxVolume(TrackBar3.Max - TrackBar3.Position);

end;



// 보조 오디오의 볼륨을 결정하는 프로시져

procedure SetAUXMaxVolume(level:integer);

begin

// 보조오디오의 수를 얻는다.

nNbrAuxDevices := auxGetNumDevs;



for nDevId := 0 to nNbrAuxDevices-1 do

begin

rc := auxGetDevCaps(nDevId, @mauxcaps, sizeof(mauxcaps));

if (rc = MMSYSERR_NOERROR and (wTechnology and AUXCAPS_CDAUDIO) and

(dwSupport and AUXCAPS_VOLUME)) then

begin

if auxGetVolume(nDevId, @dwVol) <> MMSYSERR_NOERROR then Break;



wLeft := LOWORD(dwVol);

wRight := LOWORD(dwVol);



if level < 0 then level := 0;

if level > 15 then level := 15;



wLeft := $1111 * level;

wRight := $1111 * level;



// 보조오디오의 좌우 볼륨을 설정한다.

rc := AuxSetVolume(nDevid, MAKELONG(wLeft, wRight));

end;

end;

end;



// 보조오디오의 현재볼륨설정을 가져오는 함수

Function GetAUXMaxVolume:integer;

begin

// 보조오디오의 수를 얻는다.

nNbrAuxDevices := auxGetNumDevs;



for nDevId := 0 to nNbrAuxDevices-1 do

begin

// 보조오디오의 능력을 결정한다.

rc := auxGetDevCaps(nDevId, @mauxcaps, sizeof(mauxcaps));

if (rc = MMSYSERR_NOERROR and (wTechnology and AUXCAPS_CDAUDIO) and

(dwSupport and AUXCAPS_VOLUME)) then

begin

if auxGetVolume(nDevId, @dwVol) <> MMSYSERR_NOERROR then Break;

wLeft := LOWORD(dwVol);



// 보조오디오의 보륨값을 얻는다.

Result:= (wLeft div $1111);

end;

end;

end;





0  COMMENTS