www.pudn.com > MyPlayerbylqh.rar > MediaPlayback.h
/************************************************************************************** * * * * **************************************************************************************/ #ifndef MEDIA_PLAYBACK_H #define MEDIA_PLAYBACK_H #include#include "Input.h" #include "Decaps.h" #include "MediaBuffer.h" #include "VideoDecoder.h" #include "VideoBuffer.h" #include "VideoRenderer.h" #include "AudioDecoder.h" #include "AudioRenderer.h" #include "MediaClasses.h" #include "Subtitles.h" #define WM_PLAYA_PLAYBACK_END (WM_USER + 2) /* * Playback Class * -------------- * * ——为所有媒体类中的项和过滤器提供一个前端处理 * */ class MediaPlayback { public: MediaInput *input; MediaDecaps *decaps; MediaVideoDecoder *videoDecoder; MediaVideoBuffer *videoBuffer; MediaVideoRenderer *videoRenderer; MediaAudioDecoder *audioDecoder; MediaAudioRenderer *audioRenderer; MediaSubtitler *subtitler; HWND hwndPlayback; RECT *videoRect; BOOL hasVideo; BOOL hasAudio; BOOL hasSubtitles; BOOL playing; BOOL paused; BOOL rewind; BOOL fastForward; BOOL fullscreen; BOOL desktopMode; BOOL end; BOOL buffering; BOOL hasToBuffer; DWORD bufferingProgress; DWORD loop; DWORD baseTime; DWORD stopTime; DWORD volume; HANDLE playbackMutex; HANDLE videoThread; DWORD videoThreadId; DWORD videoFrames; DWORD audioBytes; char filename[512]; MediaPlayback(); ~MediaPlayback(); MP_RESULT OpenMedia(char *lpFilename, HWND hwndPlayback); MP_RESULT OpenMediaSource(char *lpFilename); MP_RESULT OpenMediaFromSource(HWND hwnd); BOOL HasVideo(); BOOL HasAudio(); char *GetFilename(); unsigned int GetVideoWidth(); unsigned int GetVideoHeight(); unsigned long GetVideoTime(); unsigned long GetAudioTime(); double GetPlaybackProgress(); unsigned int GetActualTime(); unsigned int GetTotalTime(); double GetCurrentFps(); BOOL IsPaused(); BOOL IsPlaying(); BOOL IsInFullscreen(); BOOL IsOverlay(); BOOL IsBuffering(); DWORD GetBufferingProgress(); MP_RESULT UpdateBuffering(); MP_RESULT FlipToGDI(); MP_RESULT Play(); MP_RESULT Pause(); MP_RESULT NextFrame(); MP_RESULT Stop(int redrawWindow); MP_RESULT Close(); MP_RESULT FastForward(); MP_RESULT Rewind(); MP_RESULT Seek(int percent); MP_RESULT MaintainImage(); MP_RESULT SetDesktopMode(BOOL on); MP_RESULT SetVideoRect(RECT *rect); MP_RESULT SetFullscreen(int active, HWND hwnd); MP_RESULT SetVolume(int volume); MP_RESULT SetLoop(int loop); }; #endif