我用的directshow实务精选中第三章的视频点播例子,请问怎么实现对播放中的视频进行图片抓拍,并显示在窗口中,存储在本地?
我用过1BasicVideo::GetCurrentImage接口方法,但是抓取之后视频就停止播放了,必须重新请求播放,有说VMR才能用,但是VMR怎么用呀?我是菜鸟一只~~安装的是directX9。
char szTemp[] = "C:\\mysnapshot.bmp";
if (mPlayer.GetCurrentImage(szTemp))
{
// User can browser for a new file here
CString strFilter = "BMP File (*.bmp)|*.bmp|";
CFileDialog dlgOpen(FALSE, ".bmp", NULL, OFN_HIDEREADONLY, strFilter, NULL);
if (IDOK == dlgOpen.DoModal())
{
::CopyFile(szTemp, dlgOpen.GetPathName(), FALSE);
::DeleteFile(szTemp);
}
} 该书第二章的即时抓图看着太复杂了。还是directshow开发指南中介绍的Sample Grabber Filter方法是不是更好些呢?
我用过1BasicVideo::GetCurrentImage接口方法,但是抓取之后视频就停止播放了,必须重新请求播放,有说VMR才能用,但是VMR怎么用呀?我是菜鸟一只~~安装的是directX9。
char szTemp[] = "C:\\mysnapshot.bmp";
if (mPlayer.GetCurrentImage(szTemp))
{
// User can browser for a new file here
CString strFilter = "BMP File (*.bmp)|*.bmp|";
CFileDialog dlgOpen(FALSE, ".bmp", NULL, OFN_HIDEREADONLY, strFilter, NULL);
if (IDOK == dlgOpen.DoModal())
{
::CopyFile(szTemp, dlgOpen.GetPathName(), FALSE);
::DeleteFile(szTemp);
}
} 该书第二章的即时抓图看着太复杂了。还是directshow开发指南中介绍的Sample Grabber Filter方法是不是更好些呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货