Как изменить громкость.
Как изменить громкость.
Как изменить громкость. procedure SetVolume(X: Word); var iErr : Integer; i: integer; a: TAuxCaps; begin for i := 0 to auxGetNumDevs do begin auxGetDevCaps(i,Addr(a),SizeOf(a)); If a.wTechnology = AUXCAPS_CDAUDIO Then break; end; // Устанавливаем одинаковую громкость для левого и правого каналов. // VOLUME := LEFT*$10000 + RIGHT*1 iErr:=auxSetVolume(i,(X*$10001)); if (iErr<>0) then ShowMessage('No audio devices are available!'); end; function GetVolume: Word; var iErr : Integer; i: integer; a: TAuxCaps; vol: word; begin for i := 0 to auxGetNumDevs do begin auxGetDevCaps(i,Addr(a),SizeOf(a)); If a.wTechnology = AUXCAPS_CDAUDIO Then break; end; iErr:=auxGetVolume(i,addr(vol)); GetVolume := vol; if (iErr<>0) then ShowMessage('No audio devices are available!'); end; **************************************************** procedure TForm1.TrackBar1Change(Sender: TObject); var volume:DWORD; begin volume := 65000*Round((TrackBar1.Position-TrackBar1.Min)/(TrackBar1.Max-TrackBar1.Min)); volume := volume + (volume shl 16); waveOutSetVolume(WAVE_MAPPER,volume); end; ****************************************************** uses MMSystem; ... procedure TForm1.TrackBar1Change(Sender: TObject); var HWO: HWAVEOUT; WF: TWAVEFORMATEX; V: DWORD; begin FillChar(WF,SizeOf(WF),0); WaveOutOpen(@HWO,WAVE_MAPPER,@WF,0,0,0); V:=TrackBar1.Position+TrackBar1.Position shl 16; WaveOutSetVolume(HWO,V); WaveOutClose(HWO); end; При этом должно быть установлено свойство TrackBar1.Max:=65535;