VideoPlay.h
上传用户:hxb_1234
上传日期:2010-03-30
资源大小:8328k
文件大小:2k
源码类别:

VC书籍

开发平台:

Visual C++

  1. // VideoPlay.h: interface for the CVideoPlay class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_VIDEOPLAY_H__761FDC3A_3404_11D4_883E_0000210A0111__INCLUDED_)
  5. #define AFX_VIDEOPLAY_H__761FDC3A_3404_11D4_883E_0000210A0111__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include <streams.h>             //要访问DirectShow的接口必须包含该头文件
  10. #include <mmsystem.h>
  11. #define HELPER_RELEASE(x)  if (x) {x->Release(); x = NULL; }
  12. #define CHECK_ERROR(x, idFailMsg) if (FAILED(hr = (x))) { if (idFailMsg) MessageBox(m_hwnd,idFailMsg,"Error",MB_OK); return;}
  13. #define WM_PLAYOVER WM_USER+300        
  14. class CVideoPlay  
  15. {
  16. public:
  17. CVideoPlay();
  18. CVideoPlay(HWND hwnd);
  19. virtual ~CVideoPlay();
  20. void FindDevice(CStringList &DevName);  //搜索视频设备
  21. void RealPlay();                        //实时图像的播放
  22. void PlayFromFile(CString szFile);      //视频文件的播放
  23. void PausePlay();                       //暂停播放
  24. void ResumePlay(); //继续播放
  25. void StopPlay(); //停止播放
  26. void DisplayVideoWin();    //显示视频播放窗口
  27. int PlayOver();
  28. HWND m_hwnd; //视频播放窗口的父窗口句柄
  29. REFTIME tCurrent; //视频文件的当前位置时间
  30. REFTIME tLength; //视频文件的总时间长度
  31. REFTIME tRemain; //视频文件的剩余时间
  32.     IGraphBuilder *pigb; //视频文件过滤器图表生成器接口指针
  33. ICaptureGraphBuilder *CapPigb; //捕捉过滤器图表生成器接口指针
  34. IGraphBuilder *CappFg; //实时图像过滤器图表生成器接口指针
  35.     IMediaControl *pimc; //数据流的控制接口指针
  36.     IMediaEventEx *pimex; //过滤器图表的事件接口指针
  37.     IVideoWindow *pivw; //视频播放窗口接口指针
  38. IAMDroppedFrames *pDF; //捕捉过滤器性能查询接口指针
  39. IMediaPosition * pmp; //数据流的位置查询接口指针
  40.     IBaseFilter *pVCap; //过滤器接口指针
  41. };
  42. #endif // !defined(AFX_VIDEOPLAY_H__761FDC3A_3404_11D4_883E_0000210A0111__INCLUDED_)