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

Directshow播放影片視窗問題

尚未結案
yean0429
一般會員


發表:3
回覆:2
積分:1
註冊:2008-02-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-20 00:25:56 IP:163.22.xxx.xxx 訂閱

我寫了兩個BUTTON
按下BUTTON1播出第一段影片,
而當我隨時按下BUTTON2時,可以停止第一段影片,且在同一視窗播放第二段影片
不過我目前寫出來都是按下BUTTON2時,又跑出新的視窗播放,且第一段影片也沒有停止

看了版上很多有關DIRECTSHOW的文章,不過還是沒有想法可以解決,想請問大家程式須在哪裡做修改,謝謝
BUTTON1程式:
{

[code cpp]
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
pGraph->QueryInterface(IID_IVideoWindow, (void **)&pVidWin);
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
pGraph->QueryInterface(IID_IMediaEventEx, (void **)&pEventEx);
pEventEx->SetNotifyWindow((OAHWND)g_hwnd, WM_GRAPHNOTIFY, 0);

pVidWin->put_Owner(OAHWND(g_hwnd));
pVidWin->put_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS);
pVidWin->SetWindowPosition(0, 0,680 , 576);
pGraph->RenderFile(L"1.avi", NULL);
pMediaControl->Run();
pEventEx->GetEvent(&evCode, ¶m1, ¶m2, 0);
[/code]



BUTTON2程式:

[code cpp]
pMediaControl->Stop();
pMediaControl->Release();
pGraph->Release();
pGraph->RenderFile(L"2.avi", NULL);
pMediaControl->Run();
[/code]




我的宣告都是public,是用VC 的windows form去寫,不過directshow的部分應該都是通用的
想請問大家是哪裡出了問題呢,有想過使用兩個Filter Graph來實現,不過當我需要不只播放兩段時,似乎太麻煩了...

編輯記錄
yean0429 重新編輯於 2009-02-20 00:27:32, 註解 無‧
yean0429 重新編輯於 2009-02-20 00:28:11, 註解 無‧
ikk
尊榮會員


發表:4
回覆:413
積分:768
註冊:2003-06-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-20 09:01:41 IP:163.28.xxx.xxx 訂閱
你沒有指定VideoWindow
請先建立 TPanel * Panel_Video

[code cpp]
IVideoWindow *g_pVideoWindow;
g_pGraphBuilder->QueryInterface(IID_IVideoWindow, (void **)&g_pVideoWindow);
g_pVideoWindow->put_Owner((OAHWND)Panel_Video->Handle);
g_pVideoWindow->put_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);
g_pVideoWindow->put_Visible(OATRUE);
g_pVideoWindow->SetWindowForeground(-1);



RECT grc;
grc = Panel_Video->ClientRect;
g_pVideoWindow->SetWindowPosition(0, 0, grc.right, grc.bottom);

[/code]
------
FPGA驗證, FPGA開發平台, http://smims.com
編輯記錄
ikk 重新編輯於 2009-02-20 09:02:07, 註解 無‧
yean0429
一般會員


發表:3
回覆:2
積分:1
註冊:2008-02-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-02-20 17:48:46 IP:163.22.xxx.xxx 訂閱
感謝回答...
不過我希望畫面是可以放在另外跳出的視窗上...並且都再同一個
不想放在FORM裡面的PANEL裡
另外試了一下用PANEL...用我的程式流程仍然只有第一個影片會在PANEL裡
第二個影片出來就變成另外跳出視窗了@@
我是用vc 的windows form

感覺Stop()以及Release()並沒有釋放第一個影像的資源...我按下第二個鍵的時候,似乎變成是第一個影片跟第二個影片都有在播放@@
系統時間:2024-11-25 16:36:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!