// // Editor de Vídeos 31/07/2008 // unit - TopicsExpress



          

// // Editor de Vídeos 31/07/2008 // unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, MOVIEPLAYERLib_TLB, ExtCtrls, ComCtrls, jpeg, Buttons, math, Menus, ShellApi; type TForm1 = class(TForm) MoviePlayer1: TMoviePlayer; OpenDialog1: TOpenDialog; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; BitBtn4: TBitBtn; BitBtn5: TBitBtn; SaveDialog1: TSaveDialog; OpenDialog2: TOpenDialog; chkAspectRatio: TCheckBox; chkLoop: TCheckBox; Label20: TLabel; TrackBar1: TTrackBar; PageControl1: TPageControl; TabSheet1: TTabSheet; BitBtn7: TBitBtn; BitBtn8: TBitBtn; BitBtn9: TBitBtn; BitBtn10: TBitBtn; BitBtn11: TBitBtn; BitBtn15: TBitBtn; BitBtn16: TBitBtn; BitBtn17: TBitBtn; BitBtn18: TBitBtn; BitBtn19: TBitBtn; TabSheet2: TTabSheet; BitBtn6: TBitBtn; TabSheet3: TTabSheet; TabSheet4: TTabSheet; ComboBox1: TComboBox; ProgressBar1: TProgressBar; TrackBar2: TTrackBar; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Image1: TImage; StaticText1: TStaticText; StaticText2: TStaticText; BitBtn13: TBitBtn; BitBtn14: TBitBtn; BitBtn12: TBitBtn; BitBtn21: TBitBtn; txtwidth: TEdit; txtHeight: TEdit; BitBtn20: TBitBtn; TabSheet5: TTabSheet; BitBtn22: TBitBtn; BitBtn23: TBitBtn; BitBtn24: TBitBtn; StaticText3: TStaticText; BitBtn25: TBitBtn; BitBtn26: TBitBtn; BitBtn27: TBitBtn; BitBtn28: TBitBtn; procedure chkAspectRatioClick(Sender: TObject); procedure MoviePlayer1Completed(Sender: TObject); procedure TrackBar1Change(Sender: TObject); procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); procedure RadioButton3Click(Sender: TObject); procedure MoviePlayer1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject); procedure BitBtn6Click(Sender: TObject); procedure BitBtn7Click(Sender: TObject); procedure BitBtn8Click(Sender: TObject); procedure BitBtn9Click(Sender: TObject); procedure BitBtn10Click(Sender: TObject); procedure BitBtn11Click(Sender: TObject); procedure TrackBar2Change(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure BitBtn13Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure BitBtn14Click(Sender: TObject); procedure BitBtn12Click(Sender: TObject); procedure BitBtn15Click(Sender: TObject); procedure BitBtn16Click(Sender: TObject); procedure BitBtn17Click(Sender: TObject); procedure BitBtn18Click(Sender: TObject); procedure BitBtn19Click(Sender: TObject); procedure BitBtn21Click(Sender: TObject); procedure PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); procedure BitBtn20Click(Sender: TObject); procedure BitBtn22Click(Sender: TObject); procedure BitBtn23Click(Sender: TObject); procedure BitBtn24Click(Sender: TObject); procedure BitBtn25Click(Sender: TObject); procedure BitBtn26Click(Sender: TObject); procedure BitBtn27Click(Sender: TObject); procedure BitBtn28Click(Sender: TObject); procedure MoviePlayer1Playing(Sender: TObject; iCurrent: Double; const strTime: WideString); private { Private declarations } public { Public declarations } end; var Form1: TForm1; inicio : Double; final : Double; lapso : Double; Avance : Integer; playing : Boolean; proceso : Integer; spliter : Boolean; implementation {$R *.dfm} procedure Cronometro ( Sitio : Double ); var MyLapso: TDateTime; seg, mseg : Integer; minu, horas : integer; begin Lapso := Sitio; if Avance Round(Sitio) then begin Avance := Round(Sitio); Form1.ProgressBar1.Position := Round(Avance); end; // Duracion del video seg := round(int(Sitio)); mseg := round((Sitio-seg)*1000); minu := min(max(seg div 60,0),60); seg := min(max(seg - minu * 60,0),60); horas:= minu div 60; minu := min(max(minu - horas * 60,0),60); TryEncodeTime(horas,minu,seg,mseg,MyLapso); LongTimeFormat := hh:nn:ss.zzz; Form1.StaticText1.Caption := Timetostr(MyLapso); Form1.ProgressBar1.Position := Round(Sitio); Form1.TrackBar2.Position := Round(Sitio); end; procedure RunWmvConverter(Que:String); const CUANTOBUFFER = 2000; var Seguridades : TSecurityAttributes; PaLeer,PaEscribir : THandle; start : TStartUpInfo; ProcessInfo : TProcessInformation; Buffer : Pchar; CuandoSale : DWord; begin with Seguridades do begin nlength := SizeOf(TSecurityAttributes); binherithandle := true; lpsecuritydescriptor := nil; end; {Creamos el pipe...} if Createpipe (PaLeer, PaEscribir, @Seguridades, 0) then begin Buffer := AllocMem(CUANTOBUFFER + 1); FillChar(Start,Sizeof(Start),#0); start.cb := SizeOf(start); start.hStdOutput := PaEscribir; start.hStdInput := PaLeer; start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW; start.wShowWindow := SW_HIDE; if CreateProcess(nil, PChar(Que), @Seguridades, @Seguridades, true, IDLE_PRIORITY_CLASS, nil, nil, start, ProcessInfo) then begin repeat Proceso := Proceso + 1; Form1.StaticText2.Caption := inttostr(Proceso); CuandoSale := WaitForSingleObject( ProcessInfo.hProcess,500); Application.ProcessMessages; until (CuandoSale WAIT_TIMEOUT); Form1.StaticText2.Caption := 0; end; FreeMem(Buffer); CloseHandle(ProcessInfo.hProcess); CloseHandle(ProcessInfo.hThread); CloseHandle(PaLeer); CloseHandle(PaEscribir); end; end; procedure TForm1.chkAspectRatioClick(Sender: TObject); begin if chkAspectRatio.Checked then movieplayer1.AspectRatio :=True else movieplayer1.AspectRatio :=False; end; procedure TForm1.MoviePlayer1Completed(Sender: TObject); begin if chkLoop.Checked then movieplayer1.Play() else begin Playing := False; ProgressBar1.Position := 0; TrackBar2.Position := 0; end; end; procedure TForm1.TrackBar1Change(Sender: TObject); begin movieplayer1.SoundVolume := TrackBar1.Position - 1500; // 1500 end; procedure TForm1.RadioButton1Click(Sender: TObject); begin movieplayer1.SetMPEG1AudioChannel(0); end; procedure TForm1.RadioButton2Click(Sender: TObject); begin movieplayer1.SetMPEG1AudioChannel(1); end; procedure TForm1.RadioButton3Click(Sender: TObject); begin movieplayer1.SetMPEG1AudioChannel(2); end; procedure TForm1.MoviePlayer1Click(Sender: TObject); begin movieplayer1.Top := 0; movieplayer1.Left := 136; movieplayer1.ResizeControl(360,240); Form1.Left := 193; Form1.Top := 119; Form1.Width := 697; Form1.Height := 481; // ShowCursor(TRUE); end; procedure TForm1.FormCreate(Sender: TObject); begin // Form1.Left:=0; // Form1.Top:=0; // Form1.Width:=Screen.Width; // Form1.Height:=Screen.Height; PostMessage(ProgressBar1.Handle, $0409, 0, RGB(240,43,0)); StaticText1.Font.Color := RGB(240,43,0); StaticText2.Font.Color := RGB(240,43,0); StaticText3.Font.Color := RGB(240,43,0); Movieplayer1.DoubleBuffered := True; StaticText1.DoubleBuffered := True; Playing := False; Spliter := False; Form1.Color := RGB(169,166,150); Form1.chkAspectRatio.Color := $00A8A8AA; Form1.chkLoop.Color := $00A8A8AA; Form1.Label20.Color := $00A2A19D; Form1.ComboBox1.Color := RGB(169,166,150); PageControl1.Perform(WM_ERASEBKGND, PageControl1.Canvas.Handle, 0); end; procedure TForm1.BitBtn1Click(Sender: TObject); begin Inicio := Lapso; Edit1.Text := StaticText1.Caption; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin Final := Lapso; Edit2.Text := StaticText1.Caption; end; procedure TForm1.BitBtn3Click(Sender: TObject); begin Application.Terminate; end; procedure TForm1.BitBtn4Click(Sender: TObject); begin Application.Minimize; end; procedure TForm1.BitBtn5Click(Sender: TObject); begin Form1.Left:=0; Form1.Top:=0; Form1.Width:=Screen.Width; Form1.Height:=Screen.Height; movieplayer1.ResizeControl(1024,768); movieplayer1.Top := 0; movieplayer1.Left := 0; end; procedure TForm1.BitBtn6Click(Sender: TObject); begin MoviePlayer1.SetPos(Inicio); Lapso := Inicio; Cronometro (Lapso); end; procedure TForm1.BitBtn7Click(Sender: TObject); begin MoviePlayer1.SetPos(Final); Lapso := Final; Cronometro(Lapso); end; procedure TForm1.BitBtn8Click(Sender: TObject); begin Lapso := Lapso - 0.1; Movieplayer1.SetPos(Lapso - 0.1); Cronometro (Lapso); end; procedure TForm1.BitBtn9Click(Sender: TObject); begin Lapso := Lapso + 0.1; Movieplayer1.SetPos(Lapso + 0.1); Cronometro (Lapso); end; procedure TForm1.BitBtn10Click(Sender: TObject); begin Lapso := Lapso -5; Movieplayer1.SetPos(Lapso - 5); Cronometro (Lapso); end; procedure TForm1.BitBtn11Click(Sender: TObject); begin Lapso := Lapso + 5; Movieplayer1.SetPos(Lapso + 5); Cronometro (Lapso); end; procedure TForm1.TrackBar2Change(Sender: TObject); begin if Spliter = False then begin Movieplayer1.SetPos(TrackBar2.Position); ProgressBar1.Position := TrackBar2.Position; end; end; procedure TForm1.ComboBox1Change(Sender: TObject); begin if Combobox1.Text = 128x96 then movieplayer1.ResizeControl(128,96); if Combobox1.Text = 160x120 then movieplayer1.ResizeControl(160,120); if Combobox1.Text = 176x144 then movieplayer1.ResizeControl(176,144); if Combobox1.Text = 320x200 then movieplayer1.ResizeControl(320,200); if Combobox1.Text = 320x240 then movieplayer1.ResizeControl(320,240); if Combobox1.Text = 640x480 then begin Form1.Left:=0; Form1.Top:=0; Form1.Width:=640; Form1.Height:=480; movieplayer1.ResizeControl(640,480); movieplayer1.Top := 0; movieplayer1.Left := 0; end; if Combobox1.Text = 1024x768 then begin Form1.Left:=0; Form1.Top:=0; Form1.Width:=1024; Form1.Height:=768; movieplayer1.ResizeControl(1024,768); movieplayer1.Top := 0; movieplayer1.Left := 0; end; if Combobox1.Text = 1600x1200 then begin Form1.Left:=0; Form1.Top:=0; Form1.Width:=1600; Form1.Height:=1200; movieplayer1.ResizeControl(1600,1200); movieplayer1.Top := 0; movieplayer1.Left := 0; end; if Combobox1.Text = 2048x1536 then begin Form1.Left:=0; Form1.Top:=0; Form1.Width:=2048; Form1.Height:=1536; movieplayer1.ResizeControl(2048,1536); movieplayer1.Top := 0; movieplayer1.Left := 0; end; end; procedure TForm1.BitBtn13Click(Sender: TObject); var Procesos : String; Largo : Double; Largo_str : String; MyLapso : TDateTime; seg, mseg : Integer; minu,horas : integer; begin // Corta Video savedialog1.Filter :=wmv (*.wmv)|*.wmv|avi (*.avi)|*.avi; if savedialog1.filename = then begin savedialog1.FileName := copy(opendialog1.FileName,1,length(opendialog1.FileName)-4); savedialog1.DefaultExt := copy(opendialog1.FileName,length(opendialog1.FileName)-3,length(opendialog1.FileName)); end; if savedialog1.Execute and (Edit1.Text ) and (Edit2.Text ) then begin Edit4.Text := savedialog1.FileName; Proceso := 0; StaticText2.Caption := 0; Largo := Final - inicio; // Largo del corte seg := round(int(Largo)); mseg := round((Largo-seg)*1000); minu := min(max(seg div 60,0),60); seg := min(max(seg - minu * 60,0),60); horas:= minu div 60; minu := min(max(minu - horas * 60,0),60); TryEncodeTime(horas,minu,seg,mseg,MyLapso); LongTimeFormat := hh:nn:ss.zzz; Largo_str := Timetostr(MyLapso); if copy(Edit4.Text,Length(Edit4.Text)-3,Length(Edit4.Text)) = .wmv then Procesos := ExtractFilePath(Application.ExeName)+ffmpeg -y -i +Edit3.text+ -ss +Edit1.text+ -t +Largo_str+ -vcodec wmv2 -b 3000000 -qscale 1 -ac 2 -ab 128000 -ar 44100 -acodec wmav2 -s 320x240 +Edit4.text+; if copy(Edit4.Text,Length(Edit4.Text)-3,Length(Edit4.Text)) = .avi then Procesos := ExtractFilePath(Application.ExeName)+ffmpeg -y -i +Edit3.text+ -ss +Edit1.text+ -t +Largo_str+ -vcodec msmpeg4v2 -b 3000000 -qscale 1 -ac 2 -ab 128000 -ar 44100 -acodec libmp3lame -s 320x240 +Edit4.text+; RunWmvConverter(PChar(Procesos)); end else if MessageDlg(Debes escojer limites de corte ( inferior y superior ) y video de destino, mtWarning, [mbYes], 0) = mrYes then begin end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if MessageDlg(Desea Salir del Editor de Video?, mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin OpenDialog1.Free; statictext3.Free; txtWidth.Free; txtHeight.Free; Image1.Free; MoviePlayer1.Free; BitBtn1.Free; BitBtn2.Free; Edit1.Free; Edit2.Free; BitBtn3.Free; BitBtn4.Free; BitBtn5.Free; BitBtn6.Free; BitBtn7.Free; BitBtn8.Free; BitBtn9.Free; BitBtn10.Free; BitBtn11.Free; TrackBar2.Free; ProgressBar1.Free; Edit3.Free; Edit4.Free; SaveDialog1.Free; ComboBox1.Free; chkAspectRatio.Free; chkLoop.Free; Label20.Free; TrackBar1.Free; BitBtn13.Free; StaticText2.Free; StaticText1.Free; Action := caFree; end else Action := caNone; end; procedure TForm1.BitBtn14Click(Sender: TObject); var Procesos : String; begin // Corta Audio savedialog1.Filter :=mp3 (*.mp3)|*.mp3|wav (*.wav)|*.wav; savedialog1.FileName := copy(opendialog1.FileName,1,Length(opendialog1.FileName)-4)+.mp3; if savedialog1.Execute then begin Edit4.Text := savedialog1.FileName; Proceso := 0; StaticText2.Caption := 0; if copy(Edit4.Text,Length(Edit4.Text)-3,Length(Edit4.Text)) = .mp3 then Procesos := ExtractFilePath(Application.ExeName)+ffmpeg -y -i +Edit3.text+ -vn -f mp3 +Edit4.text+; if copy(Edit4.Text,Length(Edit4.Text)-3,Length(Edit4.Text)) = .wav then Procesos := ExtractFilePath(Application.ExeName)+ffmpeg -y -i +Edit3.text+ -vn -f wav +Edit4.text+; RunWmvConverter(PChar(Procesos)); end; end; procedure TForm1.BitBtn12Click(Sender: TObject); var Procesos : String; begin // Pega Audio opendialog2.Filter :=mp3 (*.mp3)|*.mp3|wav (*.wav)|*.wav; opendialog2.FileName := copy(opendialog1.FileName,1,Length(opendialog1.FileName)-4)+.mp3; savedialog1.Filter :=wmv (*.wmv)|*.wmv|avi (*.avi)|*.avi; if savedialog1.filename = then begin savedialog1.FileName := opendialog1.FileName; end; if opendialog2.Execute and savedialog1.Execute then begin Edit4.Text := savedialog1.FileName; Proceso := 0; StaticText2.Caption := 0; Procesos := ExtractFilePath(Application.ExeName)+ffmpeg -y -i +Edit3.text+ -i +opendialog2.FileName+ -map 0:0 -map 1:0 -ss 00:00:00.000 -vcodec wmv2 -b 3000000 -qscale 1 -ac 2 -ab 128000 -ar 44100 -acodec wmav2 -s 320x240 +Edit4.text+; // Procesos := ExtractFilePath(Application.ExeName)+ffmpeg -y -i +Edit3.text+ -i +Edit4.Text+ -map 0:0 -map 1:0 -ss 00:00:00.000 -vcodec wmv2 -b 3000000 -qscale 1 -ac 2 -ab 128000 -ar 44100 -acodec wmav2 -s 320x240 +Edit4.text+; RunWmvConverter(PChar(Procesos)); end; end; procedure TForm1.BitBtn15Click(Sender: TObject); begin if Playing then begin movieplayer1.Pause(); Playing := False; end else begin movieplayer1.Play(); Playing := True; end; end; procedure TForm1.BitBtn16Click(Sender: TObject); begin Movieplayer1.Stop; Lapso := 0; MoviePlayer1.SetPos(0); Cronometro (Lapso); Playing := False; end; procedure TForm1.BitBtn17Click(Sender: TObject); begin movieplayer1.PlaybackRate :=strTofloat(0,5); end; procedure TForm1.BitBtn18Click(Sender: TObject); begin movieplayer1.PlaybackRate :=strTofloat(1); end; procedure TForm1.BitBtn19Click(Sender: TObject); begin movieplayer1.PlaybackRate :=strTofloat(2); end; procedure TForm1.BitBtn21Click(Sender: TObject); begin MoviePlayer1.SnapShot (ExtractFilePath(Application.ExeName)+foto.bmp); Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+foto.bmp); end; procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); begin with PageControl1.canvas do begin fillrect(rect); brush.style := bsClear; if Active then font.Color := clAqua else font.Color := clBlack; textout(rect.left+9,rect.top+4,PageControl1.Pages[TabIndex].Caption); if Active then font.Color := clBlue else font.Color := clGray; textout(rect.left+8,rect.top+3,PageControl1.Pages[TabIndex].Caption); end; end; procedure TForm1.BitBtn20Click(Sender: TObject); var MyDuracion: TDateTime; seg, mseg : Integer; min, horas : integer; begin opendialog1.Filter :=wmv (*.wmv)|*.wmv|mpeg (*.mpg)|*.mpg;*.mpeg|avi (*.avi)|*.avi|asf (*.asf)|*.asf|mov (*.mov)|*.mov|mp4 (*.mp4)|*.mp4|3gp (*.3gp)|*.3gp|todos (*.*)|*.*; if opendialog1.Execute then begin Inicio := 0; Final := 0; edit1.Text := ; edit2.Text := ; edit3.Text := ; edit4.Text := ; StaticText2.Caption := 0; // movieplayer1.FileName :=opendialog1.FileName; // Hay un error la nueva version no calcula la duracion // correctamente Form1.MoviePlayer1.ClearLayers; Form1.MoviePlayer1.AddLayer(opendialog1.Filename,0,0,1,1,1,true); edit3.Text := opendialog1.FileName; movieplayer1.Show; // Duracion del video seg := round(int(Movieplayer1.Duration)); showmessage(inttostr(seg)); mseg := round((movieplayer1.Duration-seg)*1000); min := seg div 60; seg := seg - min * 60; horas:= min div 60; min := min - horas * 60; MyDuracion := EncodeTime(horas,min,seg,mseg); LongTimeFormat := hh:nn:ss.zzz; statictext3.Caption := Timetostr(MyDuracion); txtHeight.Text := Format(%d, [movieplayer1.VideoHeight]); txtWidth.Text := Format(%d, [movieplayer1.VideoWidth]); // Contro de Volumen TrackBar1.Min :=0; // 0 TrackBar1.Max :=10000; // 10000 TrackBar1.Position :=10000;// 10000 TrackBar1.PageSize := 500; // 500 // Contro Posicion TrackBar2.Min := 0; TrackBar2.Max := round(int(Movieplayer1.Duration)); TrackBar2.Frequency := 2; // Ejecucion del Video ProgressBar1.Min := 0; ProgressBar1.Max := round(int(Movieplayer1.Duration)); movieplayer1.SoundVolume:=0; // movieplayer1.Play; // playing := True; end; end; procedure TForm1.BitBtn22Click(Sender: TObject); begin ShellExecute(handle, nil,pchar(ExtractFilePath(Application.ExeName)+Configura.exe), pchar(), Nil, SW_SHOWNORMAL); end; procedure TForm1.BitBtn23Click(Sender: TObject); begin Lapso := 0; MoviePlayer1.SetPos(0); Cronometro (Lapso); end; procedure TForm1.BitBtn24Click(Sender: TObject); var Duracionn : Double; begin Duracionn := Movieplayer1.Duration; Lapso := Duracionn; MoviePlayer1.SetPos(Lapso); Cronometro (Lapso); end; procedure TForm1.BitBtn25Click(Sender: TObject); begin Spliter := True; Form1.TrackBar2.Position := Round(Lapso); Spliter := False; end; procedure TForm1.BitBtn26Click(Sender: TObject); begin if Playing then begin Lapso := 0; MoviePlayer1.SetPos(0); Cronometro (Lapso); movieplayer1.Play(); Playing := True; end else begin Lapso := 0; MoviePlayer1.SetPos(0); Cronometro (Lapso); movieplayer1.Play(); Playing := True; end; end; procedure TForm1.BitBtn27Click(Sender: TObject); var Procesos : String; begin // repara o renderiza Video savedialog1.Filter :=wmv (*.wmv)|*.wmv|avi (*.avi)|*.avi; if savedialog1.filename = then begin savedialog1.FileName := opendialog1.FileName; end; if savedialog1.Execute then begin Edit4.Text := savedialog1.FileName; Proceso := 0; StaticText2.Caption := 0; if copy(Edit4.Text,Length(Edit4.Text)-3,Length(Edit4.Text)) = .wmv then Procesos := ExtractFilePath(Application.ExeName)+ffmpeg -y -i +Edit3.text+ -vcodec wmv2 -qscale 1 -sameq -ac 2 -ab 128000 -ar 44100 -acodec wmav2 +Edit4.text+; if copy(Edit4.Text,Length(Edit4.Text)-3,Length(Edit4.Text)) = .avi then Procesos := ExtractFilePath(Application.ExeName)+ffmpeg -y -i +Edit3.text+ -vcodec msmpeg4v2 -qscale 1 -sameq -ac 2 -ab 128000 -ar 44100 -acodec libmp3lame +Edit4.text+; RunWmvConverter(PChar(Procesos)); end; end; procedure TForm1.BitBtn28Click(Sender: TObject); var Procesos : String; begin if Edit3.Text then begin Proceso := 0; StaticText2.Caption := 0; Procesos := ffmpeg.exe -i +Edit3.text+; ChDir(ExtractFilePath(Application.ExeName)); winexec(PCHar(cmd.exe /k +Procesos),SW_SHOWNORMAL); end; end; procedure TForm1.MoviePlayer1Playing(Sender: TObject; iCurrent: Double; const strTime: WideString); var MyLapso: TDateTime; seg, mseg : Integer; minu, horas : integer; begin Lapso := iCurrent; if Avance Round(iCurrent) then begin Avance := Round(iCurrent); // RoundTo(1.235, -2) 1.24 ProgressBar1.Position := Round(Avance); // TrackBar2.Position := Round(Avance); if Avance = 3 then begin MoviePlayer1.SnapShot (ExtractFilePath(Application.ExeName)+foto.bmp); Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+foto.bmp); end; end; // Duracion del video seg := round(int(Lapso)); mseg := round((Lapso-seg)*1000); minu := min(max(seg div 60,0),60); seg := min(max(seg - minu * 60,0),60); horas:= minu div 60; minu := min(max(minu - horas * 60,0),60); TryEncodeTime(horas,minu,seg,mseg,MyLapso); LongTimeFormat := hh:nn:ss.zzz; StaticText1.Caption := Timetostr(MyLapso); end; end.
Posted on: Thu, 01 Jan 2015 13:50:54 +0000

Trending Topics



Recently Viewed Topics




© 2015