DelphiX-Tutorial für Anfänger

Ursprünglich erstellt von MiGa Mail Homepage (Danke!!)
Design-Anpassung und Veränderung von Simon

 

Kapitel 8

Sound verändern

Natürlich können sie den Sound nicht einfach nur so abspielen, sondern auch die Lautstärke und andere Eigenschaften verändern.

Wir machen eine neue Anwendung und erstellen drei Buttons, zwei Trackbars, eine DXSound und eine OpenDialog Komponente.
Als eigenes Objekt erstellen wir "Audio":

private
{ Private-Deklarationen}
public
  Audio: TAudioFileStream;
end;

Wenn wir auf den ersten Button drücken, soll das "Öffnen" Fenster geöffnet werden und eine Wave Datei geöffnet werden.
Das sieht dann so aus:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if opendialog1.execute then
    begin
      Audio := TAudioFileStream.Create(DXSound1.DSound);
      Audio.AutoUpdate := True;
      Audio.FileName := OpenDialog1.FileName;
    end;
end;

Wenn sie also eine Wave Datei ausgewählt haben, wird unser Objekt "Audio" erstellt und bekommt als Inhalt die Wave Datei.

Unser zweiter Button ist der Abspielknopf. Audio wird per Audio.Play abgespielt.

procedure TForm1.Button2Click(Sender: TObject);
begin
  audio.play;
  Timer1.enabled:=true; {wird später erklärt}
end;

Der dritte Button dient zum Stoppen:

procedure TForm1.Button3Click(Sender: TObject);
begin
  audio.stop;
  Audio.Position := 0; {dient dazu, dass der Sound an den Anfang gesetzt wird}
  Timer1.enabled:=false; {wird später erklärt}
end;

Damit wir den Sound noch mal abspielen können, wenn er zuende ist, müssen wir ihn auch zurücksetzen. Das machen wir, indem wir eine Timer-Komponente einfügen und folgendes in das OnTimer Ereignis machen:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if Audio.Playing then
  else
    Audio.Position := 0;
end;

Das heißt nichts anderes, als das immer überprüft wird, ob Audio gerade am spielen ist. Wenn nicht, setzen wir die Position auf 0.

Mit der ersten TrackBar werden wir die Lautstärke des Audio Streams ändern. Das können wir über Audio.Volumen machen.

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  Audio.Volume := TrackBar1.Position*100;
end;

Als Trackbar1.Max sollte man 0 und als Min -20 eingeben.

Mit der zweiten Trackbar soll geändert werden, ob der Sound auf dem linken oder dem rechten Lautsprecher lauter sein soll. Die geht per Audio.Pan:

procedure TForm1.TrackBar2Change(Sender: TObject);
begin
  Audio.Pan:= TrackBar2.Position*100;
end;

Als Trackbar1.Max sollte man 20 und als Min -20 eingeben.

Wenn man jetzt F9 drück und eine Wave Datei lädt, kann man per Trackbars die Lautstärke Eigenschaften ändern.

 

<<Vorheriges Kapitel>>   <<Nächstes Kapitel>>