查询过滤器图表事件接口
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;

相关内容

热门资讯

朱老六探索酸菜预制菜标准化,盒... 在快节奏的生活中,越来越多的人开始寻求方便、快捷且健康的饮食方式。你是否也在思考,如何在忙碌的生活中...
水晶肴肉:晶莹如玉,一席江南清... 水晶肴肉是淮扬经典冷碟,以色泽晶莹、肉质紧实、鲜香爽口闻名,堪称江南凉菜里的雅致精品。 选用新鲜猪...
零食云仓一件代发,如何帮你省下... 零食,这个品类看似简单,但其仓储和发货的门道,比服装、日用品要深得多。很多做零食电商的朋友,起步时觉...
盐煎肉:川菜里的“急脾气”,一... 在川菜江湖里,回锅肉是温润如玉的“大家闺秀”,而盐煎肉,则是那个风风火火的“急脾气”。它懒得像回锅肉...