ARDeskTop上で動画再生(その3)
次にDirectShowでなにもしなければ、かってに開いてしまう映像トラックのウインドウを出なくする。
新たにNull Rendererフィルタを追加してVideo Rendererと入れ替えれば、映像なし・音声のみで動画ファイルが再生される。
void CCVVideoManager::TurnOffVideo(void) { IBaseFilter* pNullRenderer = 0; IBaseFilter* pFilter = 0; IBaseFilter* pVideoRenderer = 0; IPin* pinIn = 0; IPin* pinOut = 0; //NULL Rendererを追加 CoCreateInstance(CLSID_NullRenderer, NULL,CLSCTX_INPROC_SERVER, IID_IBaseFilter, (LPVOID *) &pNullRenderer); pGraphBuilder->AddFilter(pNullRenderer, L"Null Renderer"); //Video Rendererを探す pGraphBuilder->FindFilterByName(L"Video Renderer", &pVideoRenderer); //Video Rendererの入力ピンを探す pVideoRenderer->FindPin(L"VMR Input0", &pinIn); //出力されているピンを探す pinIn->ConnectedTo(&pinOut); //NULL Rendererに接続 pNullRenderer->FindPin(L"In", &pinIn); pinOut->Connect(pinIn, NULL); //Video Rendererを除去 pGraphBuilder->RemoveFilter(pVideoRenderer); pVideoRenderer->Release(); }
これでARDeskTop上で動画の単純再生ができるようになった。
OpenCVで動画をキャプチャしているので早送りは出来ても巻き戻しはちょっと厳しいかもしれない。