我在视频文件播放时GetCurrentPosition然后建立IMediaDet用GetBitmapBits抓帧,想要每隔5帧抓一次,请问怎么办?
------解决方案--------------------------------------------------------
如果简单地通过IMediaDet去抓,恐怕做不到这么精确。
有一种方法,就是你让每一个sample都回调到应用程序中,你在应用程序中计数,每5帧取出来一帧。大致这样:
1. 在你的应用程序中实现ISampleGrabberCB接口。
2. 调用IMediaDet::GetSampleGrabber获得sample grabber filter的ISampleGrabber接口。
3. 调用ISampleGrabber::SetCallback将你在应用程序上实现的回调接口设置给sampel grabber filter
.....
当filter graph运行时,每个sample都会回调到你在应用程序上实现的回调接口中,在那里你可以对sample计数。
参见directx sdk文档的“Using the Sample Grabber”