Bonjours, je viens de me lancer dans delphi car j ai besoin d utiliser un media palyer pour diffuser la video par la sortie video de ma carte de decompression. Avec graphedit je suis parvenu a faire mon graph, cependant je ne sait pas comment inclure mon graph a mon player, jai lu un tutorial sur se sujet (
[ Lien ] ) mais cela reste un peu difficile pour moi en tant que newbie.
si vous pouvez m aider merci.
voici mon code source du lecteur media:
CODE
unit Unit1;
{-----------------------------------------------------------------------------}
interface
{-----------------------------------------------------------------------------}
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DSPack, StdCtrls, Buttons, ComCtrls, Menus;
{-----------------------------------------------------------------------------}
type
TForm1 = class(TForm)
playBtn: TBitBtn;
stopBtn: TBitBtn;
pauseBtn: TBitBtn;
FilterGraph1: TFilterGraph;
BitBtn4: TBitBtn;
DSVideoWindowEx21: TDSVideoWindowEx2;
DSTrackBar1: TDSTrackBar;
PopupMenu1: TPopupMenu;
Play1: TMenuItem;
Pause1: TMenuItem;
Stop1: TMenuItem;
Quitter1: TMenuItem;
FullScreen1: TMenuItem;
OpenDialog1: TOpenDialog;
OuvrirBtn: TBitBtn;
tbVolume: TTrackBar;
MainMenu1: TMainMenu;
Fichier1: TMenuItem;
Edition1: TMenuItem;
Affichage1: TMenuItem;
Outils1: TMenuItem;
Ouvrir1: TMenuItem;
Quitter2: TMenuItem;
corp1: TMenuItem;
LetterBox1: TMenuItem;
Streched1: TMenuItem;
ColorControl1: TMenuItem;
btnFullScreen: TBitBtn;
procedure up(Sender: TObject);
procedure Down(Sender: TObject);
procedure btnFullScreenClick(Sender: TObject);
procedure Streched1Click(Sender: TObject);
procedure LetterBox1Click(Sender: TObject);
procedure corp1Click(Sender: TObject);
procedure tbVolumeChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure OuvrirBtnClick(Sender: TObject);
procedure DSVideoWindowEx21Click(Sender: TObject);
procedure Quitter1Click(Sender: TObject);
procedure Stop1Click(Sender: TObject);
procedure Pause1Click(Sender: TObject);
procedure FullScreen1Click(Sender: TObject);
procedure playBtnClick(Sender: TObject);
procedure pauseBtnClick(Sender: TObject);
procedure stopBtnClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
{-----------------------------------------------------------------------------}
var
Form1: TForm1;
Fichier:string;
{-----------------------------------------------------------------------------}
implementation
{$R *.dfm}
{-----------------------------------------------------------------------------}
procedure TForm1.FormCreate(Sender: TObject);
begin
tbVolume.Position := 3000;
tbVolume.SelEnd := tbVolume.Position;
filterGraph1.Volume := tbVolume.Position;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.playBtnClick(Sender: TObject);
begin
if not filtergraph1.active then begin
filtergraph1.active:=true;
filtergraph1.RenderFile(fichier);
end;
if not filtergraph1.active then begin
filtergraph1.active:=true;
filtergraph1.RenderFile(fichier);
end;
filtergraph1.Play;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.pauseBtnClick(Sender: TObject);
begin
filtergraph1.Pause;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.stopBtnClick(Sender: TObject);
begin
filtergraph1.Stop;
filtergraph1.Active:=false;;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
filtergraph1.cleargraph;
filtergraph1.active:=false;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.Pause1Click(Sender: TObject);
begin
filtergraph1.Pause
end;
{-----------------------------------------------------------------------------}
procedure TForm1.Stop1Click(Sender: TObject);
begin
filtergraph1.Stop;
filtergraph1.Active:=false;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.Quitter1Click(Sender: TObject);
begin
close;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.DSVideoWindowEx21Click(Sender: TObject);
begin
If DSVideoWindowEx21.FullScreen then
begin
DSVideoWindowEx21.FullScreenTopMost := False;
DSVideoWindowEX21.SetBounds(0,0,337, 225);
DSVideoWindowEx21.NormalPlayback;
end
else
begin
DSVideoWindowEx21.FullScreenTopMost := True;
DSVideoWindowEX21.SetBounds(0,0,Screen.Width, Screen.Height);
DSVideoWindowEx21.StartFullScreen;
end;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.OuvrirBtnClick(Sender: TObject);
begin
// Attention: prévoir une gestion des erreurs
if opendialog1.execute then begin
stopBtnclick(sender);
fichier:=opendialog1.filename;
playBtnClick(sender);
pauseBtnClick(sender);
end;//if opendialog1
end;
{-----------------------------------------------------------------------------}
procedure TForm1.tbVolumeChange(Sender: TObject);
begin
tbVolume.SelEnd := tbVolume.Position;
if FilterGraph1.Active then
FilterGraph1.Volume := tbVolume.Position;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.corp1Click(Sender: TObject);
begin
DSVideoWindowEx21.AspectRatio := rmCrop;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.LetterBox1Click(Sender: TObject);
begin
DSVideoWindowEx21.AspectRatio := rmLetterBox;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.Streched1Click(Sender: TObject);
begin
DSVideoWindowEx21.AspectRatio := rmStretched;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.btnFullScreenClick(Sender: TObject);
begin
If DSVideoWindowEx21.FullScreen then
begin
DSVideoWindowEx21.FullScreenTopMost := False;
DSVideoWindowEX21.SetBounds(0,0,337, 225);
DSVideoWindowEx21.NormalPlayback;
end
else
begin
DSVideoWindowEx21.FullScreenTopMost := True;
DSVideoWindowEX21.SetBounds(0,0,Screen.Width, Screen.Height);
DSVideoWindowEx21.StartFullScreen;
end;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.Down(Sender: TObject);
begin
DSVideoWindowEx21.FullScreenTopMost := True
end;
{-----------------------------------------------------------------------------}
procedure TForm1.up(Sender: TObject);
begin
DSVideoWindowEx21.FullScreenTopMost := False;
end;
{-----------------------------------------------------------------------------}
procedure TForm1.FullScreen1Click(Sender: TObject);
begin
If DSVideoWindowEx21.FullScreen then
begin
DSVideoWindowEx21.FullScreenTopMost := False;
DSVideoWindowEX21.SetBounds(0,0,337, 225);
DSVideoWindowEx21.NormalPlayback;
end
else
begin
DSVideoWindowEx21.FullScreenTopMost := True;
DSVideoWindowEX21.SetBounds(0,0,Screen.Width, Screen.Height);
DSVideoWindowEx21.StartFullScreen;
end;
end;
end.