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