Directshow播放影片視窗問題 |
尚未結案
|
yean0429
一般會員 發表:3 回覆:2 積分:1 註冊:2008-02-12 發送簡訊給我 |
我寫了兩個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來實現,不過當我需要不只播放兩段時,似乎太麻煩了... |
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
你沒有指定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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |