查询过滤器图表事件接口
admin
2024-03-28 20:57:22

//播放视频文件
void CVideoPlay::PlayFromFile(CString szFile)
{
      WCHAR wFile[MAX_PATH];
      HRESULT   hr;
      MultiByteToWideChar( CP_ACP, 0, szFile.GetBuffer(_MAX_PATH), -1, wFile, MAX_PATH );
      szFile.ReleaseBuffer();
      //创建过滤器图表生成器接口
      CHECK_ERROR(::CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
                   IID_IGraphBuilder, (void **)&pigb),"CoCreateInstance Error") ;
      //查询数据流控制接口
      pigb->QueryInterface(IID_IMediaControl, (void **)&pimc);  
      //查询过滤器图表事件接口
      hr=pigb->QueryInterface(IID_IMediaEventEx, (void **)&pimex);
      //查询视频播放窗口接口    
      pigb->QueryInterface(IID_IVideoWindow, (void **)&pivw);
      //查询数据流位置接口
      hr=pigb->QueryInterface(IID_IMediaPosition, (void**) &pmp);

      //为指定的多媒体文件创建一个过滤器图表进行处理
      hr = pigb->RenderFile(wFile, NULL);
      //得到视频文件的播放时间
      if (SUCCEEDED(hr))                
         hr=pmp->get_Duration(&tLength);  

      //显示视频播放窗口
      DisplayVideoWin();    
      if (SUCCEEDED(hr))
         pimc->Run();       //播放视频

      pimex->SetNotifyWindow((OAHWND)m_hwnd, WM_PLAYOVER, 0);

}

int CVideoPlay::PlayOver()
{

//播放视频文件
void CVideoPlay::PlayFromFile(CString szFile)
{
      WCHAR wFile[MAX_PATH];
      HRESULT   hr;
      MultiByteToWideChar( CP_ACP, 0, szFile.GetBuffer(_MAX_PATH), -1, wFile, MAX_PATH );
      szFile.ReleaseBuffer();
      //创建过滤器图表生成器接口
      CHECK_ERROR(::CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
                   IID_IGraphBuilder, (void **)&pigb),"CoCreateInstance Error") ;
      //查询数据流控制接口
      pigb->QueryInterface(IID_IMediaControl, (void **)&pimc);  
      //查询过滤器图表事件接口
      hr=pigb->QueryInterface(IID_IMediaEventEx, (void **)&pimex);
      //查询视频播放窗口接口    
      pigb->QueryInterface(IID_IVideoWindow, (void **)&pivw);
      //查询数据流位置接口
      hr=pigb->QueryInterface(IID_IMediaPosition, (void**) &pmp);

      //为指定的多媒体文件创建一个过滤器图表进行处理
      hr = pigb->RenderFile(wFile, NULL);
      //得到视频文件的播放时间
      if (SUCCEEDED(hr))                
         hr=pmp->get_Duration(&tLength);  

      //显示视频播放窗口
      DisplayVideoWin();    
      if (SUCCEEDED(hr))
         pimc->Run();       //播放视频

      pimex->SetNotifyWindow((OAHWND)m_hwnd, WM_PLAYOVER, 0);

}

int CVideoPlay::PlayOver()
{
  long evCode,evParam1,evParam2;
 

  long evCode,evParam1,evParam2;

相关内容

热门资讯

把音乐厅搬进喀斯特溶洞是什么体...   近日,一场融合多元艺术形式的洞穴音乐会在贵州省修文县举行,五百余名观众在喀斯特溶洞之中,感受了一...
教师专享福利!北京这些景区免票... 新京报讯 据首都教育消息,教师节将至,北京多家景区为老师们准备了专属免票福利!这份优惠合集已整理好,...
黑茶,喝的是一种境界与健康 在专门用来喝黑茶的茶具“飘逸杯”里,黑茶茶汤看起来并不像“黑茶”这个名字那样黑黢黢的一团。 玻璃器皿...
上海旅游节大巡游花车阵容抢先看... 2026上海旅游节大巡游9月12日外滩启幕,21辆全新主题花车携手21支境内外表演方队联袂登场,邀你...
原创 8... 上周门诊来了位 62 岁的张阿姨,得糖尿病快五年了,平时管嘴特别严,糖果、点心、甜饮料一概不碰,连水...