// Getestet mit D4 unter XP
// Variante 1 (Laustärke insgesamt
regeln)
//
Hiermit kann man die Lauststärke beim Abspielen von MP3s
// oder Waves mittels einer Trackbar regeln.
uses MMSystem;
var
vol, fak: Integer;
procedure TForm1.TrackBar1Change(Sender: TObject);
var i: Integer;
begin
i := fak * Trackbar1.position;
vol := i + i shl 16;
if WaveOutSetVolume(-1, vol) <> 0 then
ShowMessage('Fehler');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
fak := 65535 div Trackbar1.max;
WaveOutGetVolume(-1, @vol);
Trackbar1.position := LoWord(vol) div fak;
end;
//
---------------------------------------------------------------
// Variante 2 (Laustärke kanalweise regeln)
// Hiermit kann man die Lauststärke des rechten und linken Kanals
// beim Abspielen von MP3s oder Waves unabhängig voneinander regeln
// (nicht mit Balance verwechseln).
uses
MMSystem;
function Vol: DWord;
begin
WaveoutGetVolume(-1, @Result);
end;
procedure TForm1.FormCreate(Sender: TObject);
var d: DWord;
begin
Trackbar1.Max := 65535;
Trackbar1.Frequency := 3277;
Trackbar2.Max := Trackbar1.Max;
Trackbar2.Frequency := Trackbar1.Frequency;
d := vol;
Trackbar1.Position := d and $FFFF;
Trackbar2.Position := d shr 16;
end;
procedure LeftVolume(value: DWord);
begin
WaveoutSetVolume(-1, value or (hiword(vol) shl 16));
end;
procedure RightVolume(value: DWord);
begin
WaveoutSetVolume(-1, (value shl 16) or loword(vol))
end;
// Lautstärke links
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
Label1.caption := inttostr(Trackbar1.Position);
LeftVolume(Trackbar1.Position);
end;
// Lautstärke rechts
procedure TForm1.TrackBar2Change(Sender: TObject);
begin
Label2.caption := inttostr(Trackbar2.Position);
RightVolume(Trackbar2.Position);
end;
|