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>>
|