videoplay.h

来自「VC++视频开发实例集锦(包括“远程视频监控”"语音识别系统&quot」· C头文件 代码 · 共 53 行

H
53
字号
// VideoPlay.h: interface for the CVideoPlay class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_VIDEOPLAY_H__761FDC3A_3404_11D4_883E_0000210A0111__INCLUDED_)
#define AFX_VIDEOPLAY_H__761FDC3A_3404_11D4_883E_0000210A0111__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <streams.h>             //要访问DirectShow的接口必须包含该头文件
#include <mmsystem.h>
#define HELPER_RELEASE(x)  if (x) {x->Release(); x = NULL; }
#define CHECK_ERROR(x, idFailMsg) if (FAILED(hr = (x))) { if (idFailMsg) MessageBox(m_hwnd,idFailMsg,"Error",MB_OK); return;}

#define WM_PLAYOVER WM_USER+300        

class CVideoPlay  
{
public:
	CVideoPlay();
	CVideoPlay(HWND hwnd);
	virtual ~CVideoPlay();

	void FindDevice(CStringList &DevName);  //搜索视频设备
	void RealPlay();                        //实时图像的播放
	void PlayFromFile(CString szFile);      //视频文件的播放
	void PausePlay();                       //暂停播放
	void ResumePlay();						//继续播放
	void StopPlay();						//停止播放
	void DisplayVideoWin();	  				//显示视频播放窗口
	int PlayOver();							

	HWND m_hwnd;							//视频播放窗口的父窗口句柄
	REFTIME tCurrent;						//视频文件的当前位置时间
	REFTIME tLength;						//视频文件的总时间长度
	REFTIME tRemain;						//视频文件的剩余时间
    IGraphBuilder *pigb;					//视频文件过滤器图表生成器接口指针
	ICaptureGraphBuilder *CapPigb;			//捕捉过滤器图表生成器接口指针
	IGraphBuilder *CappFg;					//实时图像过滤器图表生成器接口指针
    IMediaControl *pimc;					//数据流的控制接口指针
    IMediaEventEx *pimex;					//过滤器图表的事件接口指针
    IVideoWindow *pivw;						//视频播放窗口接口指针
	IAMDroppedFrames *pDF;					//捕捉过滤器性能查询接口指针
	IMediaPosition * pmp;					//数据流的位置查询接口指针
    IBaseFilter *pVCap;						//过滤器接口指针


};

#endif // !defined(AFX_VIDEOPLAY_H__761FDC3A_3404_11D4_883E_0000210A0111__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?