📄 player.h
字号:
#ifndef __PLAYERH__
#define __PLAYERH__
#include <streams.h>
#include <control.h>
#include "VrendModeFlag.h"
#include "../Coordinate.h"
// #define VOLUME_FULL 0L
// #define VOLUME_DEF -4000L
// #define VOLUME_SILENCE -10000L
typedef enum _PlayState
{
STATE_PLAY = 1,
STATE_STOP,
STATE_PAUSE,
STATE_SEEK,
STATE_INIT,
STATE_RELEASE,
}PLAYSTATE;
class CPlayer
{
public:
CPlayer(void);
int Initialize(HWND wndplay,TCHAR *name);
HRESULT play();
HRESULT pause();
HRESULT seek(int seektime);
HRESULT stop();
HRESULT checkautostop();
HRESULT GetMediaDuration(REFTIME& llMediaLength);
HRESULT GetMediaCurrPos(REFTIME& llMediaLength);
HRESULT SetMediaPos(REFTIME llMediaPos);
HRESULT SetVolume(LONG dwVolume);
void release();
void DeleteFilters();
public:
PLAYSTATE play_state;
BOOL m_bFullscreen;
protected:
HWND ghApp;
HRESULT hr;
IGraphBuilder *pGraph; // Filter Graph组件接口
IMediaControl *pMC; // 播放控制接口
IBasicAudio *pBA; // 音频相关接口
IMediaSeeking *pMS; // 随机定位接口
IMediaPosition *pMP;
IMediaEventEx *pME; // IMediaEventEx接口,让应用程序及时处理Filter Graph Manager发出的事件
};
void Msg(TCHAR *szFormat, ...);
#define SAFE_RELEASE(x){ if(x) x->Release(); x = NULL; }
#define JIF(x) if (FAILED(hr=(x))) \
{Msg(TEXT("FAILED(hr=0x%x) in ") TEXT(#x) TEXT("\n\0"), hr); return hr;}
#define LIF(x) if (FAILED(hr=(x))) \
{Msg(TEXT("FAILED(hr=0x%x) in ") TEXT(#x) TEXT("\n\0"), hr);}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -