最简单的办法就是直接添加Sample Grabber Fliter,然后直接条用ISampleGrabber的接口函数。
首先声明以下接口,并对这些接口初始化:
IGraphBuilder *pGraph = NULL; //for graph builder
IMediaControl *pControl = NULL; //media control
IMediaSeeking *pSeeking = NULL; //media seeking
IMediaEventEx *pEvent = NULL; //media envent
IBaseFilter *pNullFilter =NULL;//for holding the Sample grabber Filter
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,
IID_IGraphBuilder, (void **)&pGraph));
CoCreateInstance(CLSID_NullRenderer, NULL, CLSCTX_INPROC,
IID_IBaseFilter, (void **)&pNullFilter));
pGraph->QueryInterface(IID_IMediaControl,(void**)&pControl));
pGraph->QueryInterface(IID_IMediaSeeking, (void**)&pSeeking));
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent));
接下来我们就可以创建Sample Grabber,