📄 equalizer.pas
字号:
unit Equalizer;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, XaudioPlayer;
type
TEqualizerForm = class(TForm)
EnableCheckBox: TCheckBox;
TrackBar06: TTrackBar;
TrackBar05: TTrackBar;
TrackBar07: TTrackBar;
TrackBar04: TTrackBar;
TrackBar08: TTrackBar;
TrackBar03: TTrackBar;
TrackBar02: TTrackBar;
TrackBar01: TTrackBar;
procedure UpdateEqualizer;
procedure EnableCheckBoxClick(Sender: TObject);
procedure TrackBar01Change(Sender: TObject);
procedure TrackBar02Change(Sender: TObject);
procedure TrackBar03Change(Sender: TObject);
procedure TrackBar04Change(Sender: TObject);
procedure TrackBar05Change(Sender: TObject);
procedure TrackBar06Change(Sender: TObject);
procedure TrackBar07Change(Sender: TObject);
procedure TrackBar08Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
EqualizerForm: TEqualizerForm;
implementation
uses Player;
{$R *.DFM}
procedure TEqualizerForm.UpdateEqualizer;
var
EQ: XA_EqualizerInfo;
begin
if EnableCheckBox.Checked then
begin
EQ.Left[ 0] := -TrackBar01.Position;
EQ.Left[ 1] := -TrackBar02.Position;
EQ.Left[ 2] := -TrackBar03.Position;
EQ.Left[ 3] := -TrackBar03.Position;
EQ.Left[ 4] := -TrackBar04.Position;
EQ.Left[ 5] := -TrackBar04.Position;
EQ.Left[ 6] := -TrackBar05.Position;
EQ.Left[ 7] := -TrackBar05.Position;
EQ.Left[ 8] := -TrackBar06.Position;
EQ.Left[ 9] := -TrackBar06.Position;
EQ.Left[10] := -TrackBar06.Position;
EQ.Left[11] := -TrackBar06.Position;
EQ.Left[12] := -TrackBar06.Position;
EQ.Left[13] := -TrackBar06.Position;
EQ.Left[14] := -TrackBar07.Position;
EQ.Left[15] := -TrackBar07.Position;
EQ.Left[16] := -TrackBar07.Position;
EQ.Left[17] := -TrackBar07.Position;
EQ.Left[18] := -TrackBar07.Position;
EQ.Left[19] := -TrackBar07.Position;
EQ.Left[20] := -TrackBar08.Position;
EQ.Left[21] := -TrackBar08.Position;
EQ.Left[22] := -TrackBar08.Position;
EQ.Left[23] := -TrackBar08.Position;
EQ.Left[24] := -TrackBar08.Position;
EQ.Left[25] := -TrackBar08.Position;
EQ.Left[26] := -TrackBar08.Position;
EQ.Left[27] := -TrackBar08.Position;
EQ.Left[28] := -TrackBar08.Position;
EQ.Left[29] := -TrackBar08.Position;
EQ.Left[30] := -TrackBar08.Position;
EQ.Left[31] := -TrackBar08.Position;
EQ.Right[ 0] := EQ.Left[ 0];
EQ.Right[ 1] := EQ.Left[ 1];
EQ.Right[ 2] := EQ.Left[ 2];
EQ.Right[ 3] := EQ.Left[ 3];
EQ.Right[ 4] := EQ.Left[ 4];
EQ.Right[ 5] := EQ.Left[ 5];
EQ.Right[ 6] := EQ.Left[ 6];
EQ.Right[ 7] := EQ.Left[ 7];
EQ.Right[ 8] := EQ.Left[ 8];
EQ.Right[ 9] := EQ.Left[ 9];
EQ.Right[10] := EQ.Left[10];
EQ.Right[11] := EQ.Left[11];
EQ.Right[12] := EQ.Left[12];
EQ.Right[13] := EQ.Left[13];
EQ.Right[14] := EQ.Left[14];
EQ.Right[15] := EQ.Left[15];
EQ.Right[16] := EQ.Left[16];
EQ.Right[17] := EQ.Left[17];
EQ.Right[18] := EQ.Left[18];
EQ.Right[19] := EQ.Left[19];
EQ.Right[20] := EQ.Left[20];
EQ.Right[21] := EQ.Left[21];
EQ.Right[22] := EQ.Left[22];
EQ.Right[23] := EQ.Left[23];
EQ.Right[24] := EQ.Left[24];
EQ.Right[25] := EQ.Left[25];
EQ.Right[26] := EQ.Left[26];
EQ.Right[27] := EQ.Left[27];
EQ.Right[28] := EQ.Left[28];
EQ.Right[29] := EQ.Left[29];
EQ.Right[30] := EQ.Left[30];
EQ.Right[31] := EQ.Left[31];
PlayerForm.XaudioPlayer.SetCodecEqualizer(@EQ);
PlayerForm.XaudioPlayer.GetCodecEqualizer;
end
else
PlayerForm.XaudioPlayer.SetCodecEqualizer(nil);
end;
procedure TEqualizerForm.EnableCheckBoxClick(Sender: TObject);
begin
UpdateEqualizer;
end;
procedure TEqualizerForm.TrackBar01Change(Sender: TObject);
begin
UpdateEqualizer;
end;
procedure TEqualizerForm.TrackBar02Change(Sender: TObject);
begin
UpdateEqualizer;
end;
procedure TEqualizerForm.TrackBar03Change(Sender: TObject);
begin
UpdateEqualizer;
end;
procedure TEqualizerForm.TrackBar04Change(Sender: TObject);
begin
UpdateEqualizer;
end;
procedure TEqualizerForm.TrackBar05Change(Sender: TObject);
begin
UpdateEqualizer;
end;
procedure TEqualizerForm.TrackBar06Change(Sender: TObject);
begin
UpdateEqualizer;
end;
procedure TEqualizerForm.TrackBar07Change(Sender: TObject);
begin
UpdateEqualizer;
end;
procedure TEqualizerForm.TrackBar08Change(Sender: TObject);
begin
UpdateEqualizer;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -