線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1981
推到 Plurk!
推到 Facebook!

DirectShow 播放上的處理問題

缺席
adonis
高階會員


發表:140
回覆:258
積分:159
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-07 22:21:08 IP:61.62.xxx.xxx 未訂閱
各位前輩請教一個問題 ~ 底下的code是參考站內所寫的..  
uses DirectShow9, Activex, ComObj ..
var  pGraph   :IGraphBuilder;
     pControl :IMediaControl;
     pEvent   :IMediaEvent;
     pVidWin  :IVideoWindow;
     hr       :HRESULT;
     evCode   :LongInt;
     grc      :TRect;
{$R *.DFM}    procedure TForm1.Button1Click(Sender: TObject);
begin
  pGraph   := NIL;
  pControl := NIL;
  pEvent   := NIL;
  pVidWin  := NIL;
  hr := CoInitialize(nil);
  if FAILED(hr) then
  begin
    showmessage('ERROR - COM 函式庫無法初使化?');
    exit;
  end;
  hr := CoCreateInstance(CLSID_FilterGraph, NIL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, pGraph);
  if FAILED(hr) then
  begin
    showmessage('ERROR - 無法建立 Filter Graph Manager ?');
    exit;
  end;
  hr := pGraph.QueryInterface(IID_IMediaControl, pControl);
  hr := pGraph.QueryInterface(IID_IMediaEvent, pEvent);
  hr := pGraph.QueryInterface(IID_IVideoWindow, pVidWin);
  pVidWin.Put_Owner(Panel.Handle);
  pVidWin.Put_WindowStyle(WS_CHILD or WS_CLIPSIBLINGS or WS_CLIPCHILDREN);
  grc:=Panel.ClientRect;
  pVidWin.SetWindowPosition(grc.left,grc.Top, grc.right, grc.bottom);
  pVidWin.put_Visible(True);
  hr := pGraph.RenderFile(WideString('C:\1.avi'), NIL);
  if SUCCEEDED(hr) then
  begin
    hr := pControl.Run;
    if SUCCEEDED(hr) then
    begin
      pEvent.WaitForCompletion(INFINITE,evCode);
    end;
  end;
end;    procedure TForm1.Button2Click(Sender: TObject);
begin
  pVidWin.put_Owner(null);
  pVidWin._Release;
  pControl._Release;
  pEvent._Release;
  pGraph._Release;
  CoUninitialize;
end;
 
1. ComObj 無論是否有uses都不影響;但是 Activex 若沒有uses的話,則CoInitialize, CoCreateInstance .. 無法編譯(出現沒有宣告) 是否合理? 2. 但是不論怎麼試,總無法在Panel上顯示,總是會另外自行打開視窗獨立播放,該視窗的標題為 ActiveMovie Window .. 該如何處理呢? 3. 點選Button2結束時會出現錯誤 EVariantError--Invalid variant type conversin .. 該如何處理? 4. 又該如何加上暫停or停止播放? 謝謝
------
我也在努力學習中,若有錯謬請見諒。
系統時間:2024-03-19 15:27:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!