Einzelnen Beitrag anzeigen

DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#4

Re: Musik-Lautstärke ändern??

  Alt 27. Sep 2003, 00:12
Hallo!
Ich habe mir den Link oben auch mal angeschaut, und möchte die Lautstärke nun über eine TrackBar regeln; Hat hier einer eine Ahnung, wie ich das Anstellen könnte?;

Hier der Code zum Auslesen der Datei (GetVolume):
Delphi-Quellcode:
procedure GetVolume(var VolL, VolR: Word);
var
 hWO: HWaveOut;
 waveF: TWAVEFORMATEX;
 vol: DWORD;
begin
  volR := 0;
  volL := 0;
  //init TWAVEFORMATEX
  FillChar(waveF, SizeOf(waveF), 0);
  //open WaveMapper = std output of playsound
  waveOutOpen(@hWo, WAVE_MAPPER, @waveF, 0, 0, 0);
  //get volume
  waveOutGetVolume(hWO, @vol);
  volR := vol and $FFFF;
  volL := vol shr 16;
  waveOutClose(hWO);
end;
Und hier der, mit dem ich die Lautstärke 'Setzen' können soll (SetVolume):
Delphi-Quellcode:
procedure SetVolume(const volR, volL: Word);
var
  hWO: HWaveOut;
  waveF: TWAVEFORMATEX;
  vol: DWORD;
begin
  //init TWAVEFORMATEX
  FillChar(waveF, sizeOf(waveF), 0);
  // open WaveMapper = std output of playsound
  WaveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
  vol := VolL + VolR shr 16;
  //set volume
  waveOutSetVolume(hWO, vol);
  waveOutClose(hWO);
end;
Dann noch eine Frage: Wieso zeigen die beiden Labels (siehe unten) vollkommen unterschiedliche Werte an, sobald man folgenden Quelltext eingibt (und die nötigen Komponenten initialisiert bzw. erstellt):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var VolLi, VolRe: Word;
begin
 GetVolume(VolLi, VolRe);
 Label1.Caption := IntToStr(VolLi);
 Label2.Caption := IntToStr(VolRe);
end;
Bitte, wenn möglich, um schnelle Antwort;

Gruss
DelphiUser7
  Mit Zitat antworten Zitat