Q&A

  • DsPack의 VideoWindow 사용시
DSPack의 VideoWindow를 사용하여
특정폴더의 동영상화일을 연속적으로 재생하려고 하는데
Filter가 없으면 재생이 안되는 군요
그리고 Filter의 BaseFilter를 지정해야만 재생이 되는데
여러개의 동영상이 모두 다른 코덱을 사용하는 것이어서
플레이가 안되는 군요...

고수님들 자세한 설명 부탁합니다.
<!--Codes-->
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DSUtil, DSPack, StdCtrls, Buttons, DirectShow9, ExtCtrls;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    FilterGraph: TFilterGraph;
    VideoWindow1: TVideoWindow;
    Filter: TFilter;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
    FilterGraph.Active := False;
    FilterGraph.Active := true;
    FilterGraph.ClearGraph;
    FilterGraph.RenderFile('sample1.avi');
//    VideoWindow.PopupMenu := PopupMenu;
//    SoundLevel.Position := FilterGraph.Volume;
    FilterGraph.Play;
end;

end.
<!--CodeE-->
1  COMMENTS
  • Profile
    박상윤 2007.09.11 19:46

    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
        FilterGraph.Active := False;
        FilterGraph.Active := true;
        FilterGraph.ClearGraph;
        /*============================*/
        VideoWindow1.FilterGraph:=FilterGraph;
    /*============================*/
        FilterGraph.RenderFile('sample1.avi');
        VideoWindow.PopupMenu := PopupMenu;
        SoundLevel.Position := FilterGraph.Volume;
        FilterGraph.Play;
    end;

    end.

    렌더 파일 시 소스 필처 자동으로  삽입합니다.
    그리고 VideoWindow1는 연결 가느 하다면 자동으로 연결 합니다.
    안될경우 ...CaptureGrapbuilder 사용 강제 연결 하면 쉽습니다.