Re: [問題] 有關Directshow讀取、播放影片
我已經利用 IMediaEvent 介面中的
WaitForCompletion( msTimeout, pEvCode)
可以監視前一段影片撥完後
在執行接下來程式 就可以連撥兩段影片了
不過想請問大家 再使用WaitForCompletion時
是否有辦法或指令強制終止監視呢
因為一般時候希望一二段接連著撥,但在特定時候可以第二段把第一段截掉直接播放
謝謝
※ 引述《yenbowl (4545)》之銘言:
: 想用directshow讀取一段影片 在panel上播放
: 程式環境是Visual C++ 2005 的Windows forms
: 參考了一些範例 目前可以成功播放
: CoInitialize(NULL);
: IGraphBuilder *pGraph = NULL;
: IMediaControl *pMediaControl = NULL;
: IVideoWindow *pVidWin = NULL;
: IMediaEvent *pEvent;
: HWND g_hwnd;
: // Create the filter graph manager.
: CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,
: IID_IGraphBuilder, (void **)&pGraph);
: pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
: pGraph->QueryInterface(IID_IVideoWindow, (void **)&pVidWin);
: // Build the graph.
: pGraph->RenderFile(L"summer_rain.avi", NULL);
: //Set the video window.
: pVidWin->put_Owner(OAHWND(this->panel3->Handle.ToInt64()));
: pVidWin->put_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS);
: RECT grc;
: GetClientRect(g_hwnd, &grc);
: pVidWin->SetWindowPosition(0, 0, 675, 540);
: // Run the graph.
: pMediaControl->Run()
: 不過目前碰到兩個問題,就是我希望可以連續播放兩段影片
: 當我第一段播放完時,接著播第二段
: 但是當我讀取第二段並且Run時,畫面會把第一段的影片截掉 並直接播第二段
: 想請問有什麼方法或指令可以判斷等到第一段播放完時,再接著播二段影片嗎?
: 另外是否有可以重複播放同一段的方法或指令?
: 想麻煩請各位幫我解答,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.22.18.83
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章