D2 TEKNIK KOMPUTER (BSI PROGRAMMER)
Membuat Aplikasi MediaPlayer Menggunakan EwMediaPlayer Pada Delphi 2010
1. Install EwMediaPlayer ActiveX Control
2. Menggunakan link berikut yang sudah ada project EwMediaPlayer
Download EwMediaPlayer||Project_EwMediaPlayer_BSIPROGRAMMER||
Screen Shut Program :
Kemudian coding form mediaplayer sebagai berikut :
--------------------------------------------------------------------------------------------------
unit play;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
OleCtrls, EWMediaLib_TLB, StdCtrls, Spin, ComCtrls,
ExtCtrls;
type
TForm1 = class(TForm)
EWMedia1: TEWMedia;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label7: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label3: TLabel;
Button5: TButton;
GroupBox2: TGroupBox;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
RadioButton7: TRadioButton;
RadioButton8: TRadioButton;
RadioButton9: TRadioButton;
RadioButton10: TRadioButton;
RadioButton11: TRadioButton;
Edit1: TEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
Edit2: TEdit;
Label1: TLabel;
Label8: TLabel;
TrackBar1: TTrackBar;
TrackBar2: TTrackBar;
CheckBox3: TCheckBox;
GroupBox3: TGroupBox;
TrackBar3: TTrackBar;
TrackBar4: TTrackBar;
TrackBar5: TTrackBar;
TrackBar6: TTrackBar;
TrackBar7: TTrackBar;
TrackBar8: TTrackBar;
TrackBar9: TTrackBar;
TrackBar10: TTrackBar;
TrackBar11: TTrackBar;
TrackBar12: TTrackBar;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
OpenDialog1: TOpenDialog;
ScrollBar1: TScrollBar;
Timer1: TTimer;
SaveDialog1: TSaveDialog;
Label22: TLabel;
Image1: TImage;
GroupBox4: TGroupBox;
RadioButton12: TRadioButton;
RadioButton13: TRadioButton;
Label23: TLabel;
ScrollBar2: TScrollBar;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
TrackBar13: TTrackBar;
Label27: TLabel;
Label28: TLabel;
TrackBar14: TTrackBar;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure TrackBar3Change(Sender: TObject);
procedure TrackBar4Change(Sender: TObject);
procedure TrackBar5Change(Sender: TObject);
procedure TrackBar6Change(Sender: TObject);
procedure TrackBar7Change(Sender: TObject);
procedure TrackBar8Change(Sender: TObject);
procedure TrackBar9Change(Sender: TObject);
procedure TrackBar10Change(Sender: TObject);
procedure TrackBar11Change(Sender: TObject);
procedure TrackBar12Change(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure RadioButton5Click(Sender: TObject);
procedure RadioButton6Click(Sender: TObject);
procedure RadioButton7Click(Sender: TObject);
procedure RadioButton8Click(Sender: TObject);
procedure RadioButton9Click(Sender: TObject);
procedure RadioButton10Click(Sender: TObject);
procedure RadioButton11Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
procedure Button5Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RadioButton12Click(Sender: TObject);
procedure RadioButton13Click(Sender: TObject);
procedure ScrollBar2Change(Sender: TObject);
procedure TrackBar13Change(Sender: TObject);
procedure TrackBar14Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
postype : Integer;
text : String;
ismove : Boolean;
ofile : String;
infostr : String;
peaks : array[0..20] of integer;
implementation
{$R *.DFM}
procedure tickertext();
begin
If Form1.RadioButton3.Checked Then
postype := 0;
If Form1.RadioButton4.Checked Then
postype := 1;
If Form1.RadioButton5.Checked Then
postype := 2;
If Form1.RadioButton6.Checked Then
postype := 3;
If Form1.RadioButton7.Checked Then
postype := 4;
If Form1.RadioButton8.Checked Then
postype := 5;
If Form1.RadioButton9.Checked Then
postype := 6;
If Form1.RadioButton10.Checked Then
postype := 7;
If Form1.RadioButton11.Checked Then
postype := 8;
text := Form1.Edit1.text;
If Form1.CheckBox1.Checked = True Then
ismove := True
Else
ismove := False;
Form1.EWMedia1.SetTextColor(255, 0, 0);
//ewmedia1.SetTextFont "Arial", 20, False, False, False
Form1.EWMedia1.SetTickerText(text);
If Form1.CheckBox1.Checked = True Then
Form1.EWMedia1.StartTickerSlide(postype, ismove, round( strtofloat(Form1.Edit2.text) * 1000.0))
Else
Form1.EWMedia1.StopTickerSlide;
End;
procedure seteq();
var val1 : Single;
val2 : Single;
val3 : Single;
val4 : Single;
val5 : Single;
val6 : Single;
val7 : Single;
val8 : Single;
val9 : Single;
val10 : Single;
begin
val1 := - Form1.TrackBar3.Position / 120.0 * 12.0;
val2 := - Form1.TrackBar4.Position / 120.0 * 12.0;
val3 := - Form1.TrackBar5.Position / 120.0 * 12.0;
val4 := - Form1.TrackBar6.Position / 120.0 * 12.0;
val5 := - Form1.TrackBar7.Position / 120.0 * 12.0;
val6 := - Form1.TrackBar8.Position / 120.0 * 12.0;
val7 := - Form1.TrackBar9.Position / 120.0 * 12.0;
val8 := - Form1.TrackBar10.Position / 120.0 * 12.0;
val9 := - Form1.TrackBar11.Position / 120.0 * 12.0;
val10 := - Form1.TrackBar12.Position / 120.0 * 12.0;
Form1.EWMedia1.Equalizer(val1, val2, val3, val4, val5, val6, val7, val8, val9, val10);
End;
Function stotime(time : Double) : String;
var hh : Integer;
mm : Integer;
ss : Integer;
begin
try
hh:=0;
mm:=0;
ss:=0;
if(time<3600.0) then hh := 0 else hh := trunc(int(time / 3600.0));
if(time<60.0) then mm := 0 else mm := trunc(int((time - hh * 3600.0) / 60.0));
if(time>1) then ss := round(time - hh * 3600.0 - mm * 60.0);
except
hh:=0;
end;
If ss = 60 Then
begin
ss := 0;
mm := mm + 1;
End;
If mm = 60 Then
begin
mm := 0;
hh := hh + 1;
End;
result := inttostr(hh) + ':' + inttostr(mm) + ':' + inttostr(ss);
End;
procedure TForm1.FormCreate(Sender: TObject);
var volume : integer;
var handle : integer;
begin
RadioButton2.Checked := True;
RadioButton5.Checked := True;
Checkbox1.Checked := False;
//video effects
ComboBox1.Items.Add('None');
ComboBox1.Items.Add('Flip');
ComboBox1.Items.Add('Mirror');
ComboBox1.Items.Add('Emboss');
ComboBox1.Items.Add('GrayScale');
ComboBox1.Items.Add('Negate');
ComboBox1.Items.Add('RGB');
ComboBox1.Items.Add('Brightness');
ComboBox1.Items.Add('Contrast');
ComboBox1.Items.Add('Windy');
ComboBox1.Items.Add('Sharp');
ComboBox1.Items.Add('Mosaic');
ComboBox1.Items.Add('Stripe"');
ComboBox1.Items.Add('Blur');
combobox1.ItemIndex := 0;
//audio effects
ComboBox2.Items.Add('None');
ComboBox2.Items.Add('Chorus');
ComboBox2.Items.Add('Compressor');
ComboBox2.Items.Add('Distortion');
ComboBox2.Items.Add('Echo');
ComboBox2.Items.Add('Flanger');
ComboBox2.Items.Add('Gargle');
ComboBox2.Items.Add('I3DL2Reverb');
ComboBox2.Items.Add('ParamEQ');
ComboBox2.Items.Add('WavesReverb');
combobox2.ItemIndex := 0;
//set volume
EWMedia1.GetCurVolume(volume);
TrackBar1.Position := (100 - volume);
RadioButton12.Checked := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var width : integer;
height : integer;
sample : integer;
channel : integer;
duration : Double;
isvideo : wordbool;
isaudio : wordbool;
filename : String;
begin
//open ifo file
Label1.Caption := 'Open file ...';
if OpenDialog1.Execute then
begin
filename := OpenDialog1.FileName;
Form1.Refresh;
ofile := filename;
EWMedia1.OpenFile(filename);
EWMedia1.GetFileProperty(filename,duration,isvideo,isaudio,width,height,sample,channel);
ScrollBar1.Min := 0;
ScrollBar1.Max := round(duration);
Label1.Caption := 'Length:' + stotime(duration) + ' ';
If isvideo Then
Label1.Caption := Label1.Caption + 'Video is:' + inttostr(width) + '*' + inttostr(height)
Else
Label1.Caption := Label1.Caption + 'Video is unavailable.';
If isaudio Then
Label1.Caption := Label1.Caption + ' ' + 'Audio is:' + inttostr(sample) + 'HZ ' + inttostr(channel) + ' Channel'
Else
Label1.Caption := Label1.Caption + ' ' + 'Audio is unavailable.';
infostr := Label1.Caption;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled := True;
EWMedia1.Play;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Timer1.Enabled := True;
EWMedia1.Pause;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Timer1.Enabled := False;
EWMedia1.Stop;
end;
procedure TForm1.TrackBar2Change(Sender: TObject);
begin
EWMedia1.SetBalance(TrackBar2.Position);
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
EWMedia1.SetVolume(TrackBar1.Max - TrackBar1.Position)
end;
procedure TForm1.TrackBar3Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar4Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar5Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar6Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar7Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar8Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar9Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar10Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar11Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar12Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton4Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton5Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton6Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton7Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton8Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton9Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton10Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton11Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
If CheckBox1.Checked = True Then
EWMedia1.StartTickerSlide(postype, ismove, round(strtofloat(Edit2.text) * 1000))
Else
EWMedia1.StopTickerSlide;
end;
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
tickertext();
If CheckBox1.Checked = True Then
EWMedia1.StartTickerSlide(postype, ismove, round(strtofloat(Edit2.text) * 1000))
Else
EWMedia1.StopTickerSlide;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
If (CheckBox1.Checked = True) and (strtofloat(Edit2.text) > 0) Then
EWMedia1.StartTickerSlide(postype, ismove, round(strtofloat(Edit2.text) * 1000));
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
var num :Integer;
begin
num := ComboBox1.ItemIndex - 1;
Case num of
-1:EWMedia1.SetVideoEffect(-1, 0, 0, 0);
0:EWMedia1.SetVideoEffect(0, 0, 0, 0);
1:EWMedia1.SetVideoEffect(1, 0, 0, 0);
2:EWMedia1.SetVideoEffect(2, 3, 0, 0);
3:EWMedia1.SetVideoEffect(3, 0, 0, 0);
4:EWMedia1.SetVideoEffect(4, 0, 0, 0);
5:EWMedia1.SetVideoEffect(5, 255, 10, 0);
6:EWMedia1.SetVideoEffect(6, 20, 10, 0);
7:EWMedia1.SetVideoEffect(7, 120, 0, 0);
8:EWMedia1.SetVideoEffect(8, 15, 0, 0);
9:EWMedia1.SetVideoEffect(9, 20, 0, 0);
10:EWMedia1.SetVideoEffect(10, 3, 0, 0);
11:EWMedia1.SetVideoEffect(11, 35, 25, 0);
12:EWMedia1.SetVideoEffect(12, 5, 0, 0);
End;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
var num : Integer;
curtime : Double;
begin
num := ComboBox2.ItemIndex - 1;
Case num of
-1:EWMedia1.DisableAudioEffects;
0:EWMedia1.SetAudChorus(50.0, 10.0, 25.0, 1.1, 1, 16.0, 0);
1:EWMedia1.SetAudCompressor(0.0, 50.0, 200.0, -20.0, 1.0, 4.0);
2:EWMedia1.SetAudDistortion(-18.0,15.0, 4143.0, 2400.0, 8000.0);
3:EWMedia1.SetAudEcho(50.0, 50.0, 500.0, 500.0, 0);
4:EWMedia1.SetAudFlanger(50.0, 100.0, -50.0, 0.25, 1, 2.0, 2);
5:EWMedia1.SetAudGargle(20, 0);
6:EWMedia1.SetAudI3DL2Reverb(-1000, -1000, 0.0, 1.49, 0.83, -2602, 0.007, 200, 0.011, 100.0, 100.0, 5000.0, 2);
7:EWMedia1.SetAudParamEq(8000.0, 12.0, 12.0);
8:EWMedia1.SetAudWavesReverb(0.0, 0.0, 1000.0, 0.001);
End;
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
EWMedia1.SetAspectRatioMode(0);
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
EWMedia1.SetAspectRatioMode(1);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var curtime:real;
i : Integer;
j : Integer;
tmp : integer;
value : integer;
value1 : integer;
max : Integer;
max1 : Integer;
jg : Double;
leftv : integer;
rightv : integer;
js : Integer;
rect : TRect;
timevalue:double;
begin
try
EWMedia1.GetPlayCurTime(timevalue);
if(timevalue<1.0) then curtime:= 0 else curtime:=timevalue;
ScrollBar1.Position := round(curtime);
label1.Caption := infostr + ' Current time:' + stotime(timevalue);
//DISP DSP
js := 0;
//begin draw DSP
rect.Left := 0;
rect.Top := 0;
rect.Right := Image1.Width;
rect.Bottom := Image1.Height;
Image1.Canvas.Brush.Color := rgb(0,0,0);
Image1.Canvas.FillRect(rect);
jg := Image1.width / 511;
If RadioButton12.checked Then
begin
For i := 0 To 20 do
begin
If peaks[i] > 2 Then
begin
peaks[i] := peaks[i] - 2;
If peaks[i] < 2 Then
peaks[i] := 2;
end;
end;
//image1 spectrum
i := 0;
max := 0;
while(i<511) do
Begin
EWMedia1.GetDSPValue(i,tmp);
If (tmp > max) Then max := tmp;
if (i mod 26) = 0 then
begin
value := max;
if(i=0) then rect.left := 0 else rect.Left := trunc(jg*i);
rect.Top := Image1.Height - value;
if(i=0) then rect.Right := 8 else rect.Right := trunc(jg * i+8);
rect.Bottom := Image1.Height;
Image1.Canvas.Brush.Color := rgb(0,255,0);//0,166,81
Image1.Canvas.FillRect(rect);
If value > peaks[js] Then
begin
peaks[js] := value;
end;
max := 0;
tmp := 0;
js := js + 1;
end;
i := i+1;
end;
//draw peaks
js := 0;
i:=0;
while(js<20) do
begin
rect.Left := trunc(jg*js*26);
rect.Top := Image1.Height - (peaks[js] + 2);
rect.Right := trunc(jg * js*26+8);
rect.Bottom := Image1.Height - peaks[js];
Image1.Canvas.Brush.Color := rgb(109,207,246);
Image1.Canvas.FillRect(rect);
js := js+1;
end;
end;
If RadioButton13.checked Then
begin
max := 0;
max1 := 0;
//For i = 0 To 511 Step 10
Image1.Canvas.MoveTo(0,trunc(Image1.height/2));
i:=1;
while(i<511) do
begin
//tmp = EWMedia1.GetDSPValue(i)
Image1.Canvas.Pen.Color := rgb(0,255,0);
EWMedia1.GetDSPValue(i,value);
EWMedia1.GetDSPValue(i + 10,value1);
if(i=0) then Image1.Canvas.LineTo(trunc(jg * i), value);
Image1.Canvas.MoveTo(trunc(jg * i), value);
Image1.Canvas.LineTo(trunc(jg * (i + 10)), value1);
//Picture2.Line (jg * i, value)-(jg * (i + 10), value1), RGB(0, 255, 0)
i := i + 10;
end;
End;
except
end;
end;
procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
begin
EWMedia1.SeekToPos(ScrollBar1.Position);
end;
procedure TForm1.Button5Click(Sender: TObject);
var filename :string;
begin
if SaveDialog1.Execute then
begin
filename := SaveDialog1.FileName;
EWMedia1.CaptureImage(filename);
end;
end;
procedure TForm1.FormShow(Sender: TObject);
var rect:trect;
begin
rect.Left := 0;
rect.Top := 0;
rect.Right := IMAGE1.Width;
rect.Bottom := IMAGE1.Height;
IMAGE1.Canvas.Brush.Color := rgb(0,0,0);
IMAGE1.Canvas.FillRect(rect);
end;
procedure TForm1.RadioButton12Click(Sender: TObject);
begin
EWMedia1.SetPlayDSPDisplay(0, 0, IMAGE1.Height);
end;
procedure TForm1.RadioButton13Click(Sender: TObject);
begin
EWMedia1.SetPlayDSPDisplay(1, 0, IMAGE1.height);
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
EWMedia1.SetPlayRate(scrollbar2.Position/100)
end;
procedure TForm1.TrackBar13Change(Sender: TObject);
var value:real;
begin
value := (2000-trackbar13.Position)/10;
if(value<0.1) then value := 0.1;
EWmedia1.SetAudPitch(value);
label33.Caption := format('%.1f',[value])+'%';
end;
procedure TForm1.TrackBar14Change(Sender: TObject);
var value:real;
begin
value := -trackbar14.Position/10;
EWMedia1.SetAudTempo(value);
label34.Caption := format('%.1f',[100+value])+'%';
end;
end.
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
OleCtrls, EWMediaLib_TLB, StdCtrls, Spin, ComCtrls,
ExtCtrls;
type
TForm1 = class(TForm)
EWMedia1: TEWMedia;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label7: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label3: TLabel;
Button5: TButton;
GroupBox2: TGroupBox;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
RadioButton7: TRadioButton;
RadioButton8: TRadioButton;
RadioButton9: TRadioButton;
RadioButton10: TRadioButton;
RadioButton11: TRadioButton;
Edit1: TEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
Edit2: TEdit;
Label1: TLabel;
Label8: TLabel;
TrackBar1: TTrackBar;
TrackBar2: TTrackBar;
CheckBox3: TCheckBox;
GroupBox3: TGroupBox;
TrackBar3: TTrackBar;
TrackBar4: TTrackBar;
TrackBar5: TTrackBar;
TrackBar6: TTrackBar;
TrackBar7: TTrackBar;
TrackBar8: TTrackBar;
TrackBar9: TTrackBar;
TrackBar10: TTrackBar;
TrackBar11: TTrackBar;
TrackBar12: TTrackBar;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
OpenDialog1: TOpenDialog;
ScrollBar1: TScrollBar;
Timer1: TTimer;
SaveDialog1: TSaveDialog;
Label22: TLabel;
Image1: TImage;
GroupBox4: TGroupBox;
RadioButton12: TRadioButton;
RadioButton13: TRadioButton;
Label23: TLabel;
ScrollBar2: TScrollBar;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
TrackBar13: TTrackBar;
Label27: TLabel;
Label28: TLabel;
TrackBar14: TTrackBar;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure TrackBar3Change(Sender: TObject);
procedure TrackBar4Change(Sender: TObject);
procedure TrackBar5Change(Sender: TObject);
procedure TrackBar6Change(Sender: TObject);
procedure TrackBar7Change(Sender: TObject);
procedure TrackBar8Change(Sender: TObject);
procedure TrackBar9Change(Sender: TObject);
procedure TrackBar10Change(Sender: TObject);
procedure TrackBar11Change(Sender: TObject);
procedure TrackBar12Change(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure RadioButton5Click(Sender: TObject);
procedure RadioButton6Click(Sender: TObject);
procedure RadioButton7Click(Sender: TObject);
procedure RadioButton8Click(Sender: TObject);
procedure RadioButton9Click(Sender: TObject);
procedure RadioButton10Click(Sender: TObject);
procedure RadioButton11Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
procedure Button5Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RadioButton12Click(Sender: TObject);
procedure RadioButton13Click(Sender: TObject);
procedure ScrollBar2Change(Sender: TObject);
procedure TrackBar13Change(Sender: TObject);
procedure TrackBar14Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
postype : Integer;
text : String;
ismove : Boolean;
ofile : String;
infostr : String;
peaks : array[0..20] of integer;
implementation
{$R *.DFM}
procedure tickertext();
begin
If Form1.RadioButton3.Checked Then
postype := 0;
If Form1.RadioButton4.Checked Then
postype := 1;
If Form1.RadioButton5.Checked Then
postype := 2;
If Form1.RadioButton6.Checked Then
postype := 3;
If Form1.RadioButton7.Checked Then
postype := 4;
If Form1.RadioButton8.Checked Then
postype := 5;
If Form1.RadioButton9.Checked Then
postype := 6;
If Form1.RadioButton10.Checked Then
postype := 7;
If Form1.RadioButton11.Checked Then
postype := 8;
text := Form1.Edit1.text;
If Form1.CheckBox1.Checked = True Then
ismove := True
Else
ismove := False;
Form1.EWMedia1.SetTextColor(255, 0, 0);
//ewmedia1.SetTextFont "Arial", 20, False, False, False
Form1.EWMedia1.SetTickerText(text);
If Form1.CheckBox1.Checked = True Then
Form1.EWMedia1.StartTickerSlide(postype, ismove, round( strtofloat(Form1.Edit2.text) * 1000.0))
Else
Form1.EWMedia1.StopTickerSlide;
End;
procedure seteq();
var val1 : Single;
val2 : Single;
val3 : Single;
val4 : Single;
val5 : Single;
val6 : Single;
val7 : Single;
val8 : Single;
val9 : Single;
val10 : Single;
begin
val1 := - Form1.TrackBar3.Position / 120.0 * 12.0;
val2 := - Form1.TrackBar4.Position / 120.0 * 12.0;
val3 := - Form1.TrackBar5.Position / 120.0 * 12.0;
val4 := - Form1.TrackBar6.Position / 120.0 * 12.0;
val5 := - Form1.TrackBar7.Position / 120.0 * 12.0;
val6 := - Form1.TrackBar8.Position / 120.0 * 12.0;
val7 := - Form1.TrackBar9.Position / 120.0 * 12.0;
val8 := - Form1.TrackBar10.Position / 120.0 * 12.0;
val9 := - Form1.TrackBar11.Position / 120.0 * 12.0;
val10 := - Form1.TrackBar12.Position / 120.0 * 12.0;
Form1.EWMedia1.Equalizer(val1, val2, val3, val4, val5, val6, val7, val8, val9, val10);
End;
Function stotime(time : Double) : String;
var hh : Integer;
mm : Integer;
ss : Integer;
begin
try
hh:=0;
mm:=0;
ss:=0;
if(time<3600.0) then hh := 0 else hh := trunc(int(time / 3600.0));
if(time<60.0) then mm := 0 else mm := trunc(int((time - hh * 3600.0) / 60.0));
if(time>1) then ss := round(time - hh * 3600.0 - mm * 60.0);
except
hh:=0;
end;
If ss = 60 Then
begin
ss := 0;
mm := mm + 1;
End;
If mm = 60 Then
begin
mm := 0;
hh := hh + 1;
End;
result := inttostr(hh) + ':' + inttostr(mm) + ':' + inttostr(ss);
End;
procedure TForm1.FormCreate(Sender: TObject);
var volume : integer;
var handle : integer;
begin
RadioButton2.Checked := True;
RadioButton5.Checked := True;
Checkbox1.Checked := False;
//video effects
ComboBox1.Items.Add('None');
ComboBox1.Items.Add('Flip');
ComboBox1.Items.Add('Mirror');
ComboBox1.Items.Add('Emboss');
ComboBox1.Items.Add('GrayScale');
ComboBox1.Items.Add('Negate');
ComboBox1.Items.Add('RGB');
ComboBox1.Items.Add('Brightness');
ComboBox1.Items.Add('Contrast');
ComboBox1.Items.Add('Windy');
ComboBox1.Items.Add('Sharp');
ComboBox1.Items.Add('Mosaic');
ComboBox1.Items.Add('Stripe"');
ComboBox1.Items.Add('Blur');
combobox1.ItemIndex := 0;
//audio effects
ComboBox2.Items.Add('None');
ComboBox2.Items.Add('Chorus');
ComboBox2.Items.Add('Compressor');
ComboBox2.Items.Add('Distortion');
ComboBox2.Items.Add('Echo');
ComboBox2.Items.Add('Flanger');
ComboBox2.Items.Add('Gargle');
ComboBox2.Items.Add('I3DL2Reverb');
ComboBox2.Items.Add('ParamEQ');
ComboBox2.Items.Add('WavesReverb');
combobox2.ItemIndex := 0;
//set volume
EWMedia1.GetCurVolume(volume);
TrackBar1.Position := (100 - volume);
RadioButton12.Checked := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var width : integer;
height : integer;
sample : integer;
channel : integer;
duration : Double;
isvideo : wordbool;
isaudio : wordbool;
filename : String;
begin
//open ifo file
Label1.Caption := 'Open file ...';
if OpenDialog1.Execute then
begin
filename := OpenDialog1.FileName;
Form1.Refresh;
ofile := filename;
EWMedia1.OpenFile(filename);
EWMedia1.GetFileProperty(filename,duration,isvideo,isaudio,width,height,sample,channel);
ScrollBar1.Min := 0;
ScrollBar1.Max := round(duration);
Label1.Caption := 'Length:' + stotime(duration) + ' ';
If isvideo Then
Label1.Caption := Label1.Caption + 'Video is:' + inttostr(width) + '*' + inttostr(height)
Else
Label1.Caption := Label1.Caption + 'Video is unavailable.';
If isaudio Then
Label1.Caption := Label1.Caption + ' ' + 'Audio is:' + inttostr(sample) + 'HZ ' + inttostr(channel) + ' Channel'
Else
Label1.Caption := Label1.Caption + ' ' + 'Audio is unavailable.';
infostr := Label1.Caption;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled := True;
EWMedia1.Play;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Timer1.Enabled := True;
EWMedia1.Pause;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Timer1.Enabled := False;
EWMedia1.Stop;
end;
procedure TForm1.TrackBar2Change(Sender: TObject);
begin
EWMedia1.SetBalance(TrackBar2.Position);
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
EWMedia1.SetVolume(TrackBar1.Max - TrackBar1.Position)
end;
procedure TForm1.TrackBar3Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar4Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar5Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar6Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar7Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar8Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar9Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar10Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar11Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.TrackBar12Change(Sender: TObject);
begin
seteq
end;
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton4Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton5Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton6Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton7Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton8Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton9Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton10Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.RadioButton11Click(Sender: TObject);
begin
tickertext()
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
If CheckBox1.Checked = True Then
EWMedia1.StartTickerSlide(postype, ismove, round(strtofloat(Edit2.text) * 1000))
Else
EWMedia1.StopTickerSlide;
end;
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
tickertext();
If CheckBox1.Checked = True Then
EWMedia1.StartTickerSlide(postype, ismove, round(strtofloat(Edit2.text) * 1000))
Else
EWMedia1.StopTickerSlide;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
If (CheckBox1.Checked = True) and (strtofloat(Edit2.text) > 0) Then
EWMedia1.StartTickerSlide(postype, ismove, round(strtofloat(Edit2.text) * 1000));
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
var num :Integer;
begin
num := ComboBox1.ItemIndex - 1;
Case num of
-1:EWMedia1.SetVideoEffect(-1, 0, 0, 0);
0:EWMedia1.SetVideoEffect(0, 0, 0, 0);
1:EWMedia1.SetVideoEffect(1, 0, 0, 0);
2:EWMedia1.SetVideoEffect(2, 3, 0, 0);
3:EWMedia1.SetVideoEffect(3, 0, 0, 0);
4:EWMedia1.SetVideoEffect(4, 0, 0, 0);
5:EWMedia1.SetVideoEffect(5, 255, 10, 0);
6:EWMedia1.SetVideoEffect(6, 20, 10, 0);
7:EWMedia1.SetVideoEffect(7, 120, 0, 0);
8:EWMedia1.SetVideoEffect(8, 15, 0, 0);
9:EWMedia1.SetVideoEffect(9, 20, 0, 0);
10:EWMedia1.SetVideoEffect(10, 3, 0, 0);
11:EWMedia1.SetVideoEffect(11, 35, 25, 0);
12:EWMedia1.SetVideoEffect(12, 5, 0, 0);
End;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
var num : Integer;
curtime : Double;
begin
num := ComboBox2.ItemIndex - 1;
Case num of
-1:EWMedia1.DisableAudioEffects;
0:EWMedia1.SetAudChorus(50.0, 10.0, 25.0, 1.1, 1, 16.0, 0);
1:EWMedia1.SetAudCompressor(0.0, 50.0, 200.0, -20.0, 1.0, 4.0);
2:EWMedia1.SetAudDistortion(-18.0,15.0, 4143.0, 2400.0, 8000.0);
3:EWMedia1.SetAudEcho(50.0, 50.0, 500.0, 500.0, 0);
4:EWMedia1.SetAudFlanger(50.0, 100.0, -50.0, 0.25, 1, 2.0, 2);
5:EWMedia1.SetAudGargle(20, 0);
6:EWMedia1.SetAudI3DL2Reverb(-1000, -1000, 0.0, 1.49, 0.83, -2602, 0.007, 200, 0.011, 100.0, 100.0, 5000.0, 2);
7:EWMedia1.SetAudParamEq(8000.0, 12.0, 12.0);
8:EWMedia1.SetAudWavesReverb(0.0, 0.0, 1000.0, 0.001);
End;
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
EWMedia1.SetAspectRatioMode(0);
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
EWMedia1.SetAspectRatioMode(1);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var curtime:real;
i : Integer;
j : Integer;
tmp : integer;
value : integer;
value1 : integer;
max : Integer;
max1 : Integer;
jg : Double;
leftv : integer;
rightv : integer;
js : Integer;
rect : TRect;
timevalue:double;
begin
try
EWMedia1.GetPlayCurTime(timevalue);
if(timevalue<1.0) then curtime:= 0 else curtime:=timevalue;
ScrollBar1.Position := round(curtime);
label1.Caption := infostr + ' Current time:' + stotime(timevalue);
//DISP DSP
js := 0;
//begin draw DSP
rect.Left := 0;
rect.Top := 0;
rect.Right := Image1.Width;
rect.Bottom := Image1.Height;
Image1.Canvas.Brush.Color := rgb(0,0,0);
Image1.Canvas.FillRect(rect);
jg := Image1.width / 511;
If RadioButton12.checked Then
begin
For i := 0 To 20 do
begin
If peaks[i] > 2 Then
begin
peaks[i] := peaks[i] - 2;
If peaks[i] < 2 Then
peaks[i] := 2;
end;
end;
//image1 spectrum
i := 0;
max := 0;
while(i<511) do
Begin
EWMedia1.GetDSPValue(i,tmp);
If (tmp > max) Then max := tmp;
if (i mod 26) = 0 then
begin
value := max;
if(i=0) then rect.left := 0 else rect.Left := trunc(jg*i);
rect.Top := Image1.Height - value;
if(i=0) then rect.Right := 8 else rect.Right := trunc(jg * i+8);
rect.Bottom := Image1.Height;
Image1.Canvas.Brush.Color := rgb(0,255,0);//0,166,81
Image1.Canvas.FillRect(rect);
If value > peaks[js] Then
begin
peaks[js] := value;
end;
max := 0;
tmp := 0;
js := js + 1;
end;
i := i+1;
end;
//draw peaks
js := 0;
i:=0;
while(js<20) do
begin
rect.Left := trunc(jg*js*26);
rect.Top := Image1.Height - (peaks[js] + 2);
rect.Right := trunc(jg * js*26+8);
rect.Bottom := Image1.Height - peaks[js];
Image1.Canvas.Brush.Color := rgb(109,207,246);
Image1.Canvas.FillRect(rect);
js := js+1;
end;
end;
If RadioButton13.checked Then
begin
max := 0;
max1 := 0;
//For i = 0 To 511 Step 10
Image1.Canvas.MoveTo(0,trunc(Image1.height/2));
i:=1;
while(i<511) do
begin
//tmp = EWMedia1.GetDSPValue(i)
Image1.Canvas.Pen.Color := rgb(0,255,0);
EWMedia1.GetDSPValue(i,value);
EWMedia1.GetDSPValue(i + 10,value1);
if(i=0) then Image1.Canvas.LineTo(trunc(jg * i), value);
Image1.Canvas.MoveTo(trunc(jg * i), value);
Image1.Canvas.LineTo(trunc(jg * (i + 10)), value1);
//Picture2.Line (jg * i, value)-(jg * (i + 10), value1), RGB(0, 255, 0)
i := i + 10;
end;
End;
except
end;
end;
procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
begin
EWMedia1.SeekToPos(ScrollBar1.Position);
end;
procedure TForm1.Button5Click(Sender: TObject);
var filename :string;
begin
if SaveDialog1.Execute then
begin
filename := SaveDialog1.FileName;
EWMedia1.CaptureImage(filename);
end;
end;
procedure TForm1.FormShow(Sender: TObject);
var rect:trect;
begin
rect.Left := 0;
rect.Top := 0;
rect.Right := IMAGE1.Width;
rect.Bottom := IMAGE1.Height;
IMAGE1.Canvas.Brush.Color := rgb(0,0,0);
IMAGE1.Canvas.FillRect(rect);
end;
procedure TForm1.RadioButton12Click(Sender: TObject);
begin
EWMedia1.SetPlayDSPDisplay(0, 0, IMAGE1.Height);
end;
procedure TForm1.RadioButton13Click(Sender: TObject);
begin
EWMedia1.SetPlayDSPDisplay(1, 0, IMAGE1.height);
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
EWMedia1.SetPlayRate(scrollbar2.Position/100)
end;
procedure TForm1.TrackBar13Change(Sender: TObject);
var value:real;
begin
value := (2000-trackbar13.Position)/10;
if(value<0.1) then value := 0.1;
EWmedia1.SetAudPitch(value);
label33.Caption := format('%.1f',[value])+'%';
end;
procedure TForm1.TrackBar14Change(Sender: TObject);
var value:real;
begin
value := -trackbar14.Position/10;
EWMedia1.SetAudTempo(value);
label34.Caption := format('%.1f',[100+value])+'%';
end;
end.
Sekian Dan Terima Kasih......