libmediaplayer.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #pragma once
  2. #include <stdio.h>
  3. #ifdef _WIN32
  4. #ifdef LIBMEDIAPLAYER_EXPORTS
  5. #define LIBMEDIAPLAYER_API __declspec(dllexport)
  6. #else
  7. #define LIBMEDIAPLAYER_API __declspec(dllimport)
  8. #endif
  9. # elif ( defined(__GNUC__) && __GNUC__ >= 4 )
  10. #define LIBMEDIAPLAYER_API __attribute__((visibility("default")))
  11. #else // _WIN32
  12. #define LIBMEDIAPLAYER_API
  13. #endif // _WIN32
  14. #ifdef _WIN32
  15. #ifndef RVC_NO_VTABLE
  16. #define RVC_NO_VTABLE __declspec(novtable)
  17. #endif // !RVC_NO_VTABLE
  18. #else
  19. #ifndef RVC_NO_VTABLE
  20. #define RVC_NO_VTABLE
  21. #endif // !RVC_NO_VTABLE
  22. #endif // _WIN32
  23. #ifndef TIME_LEN
  24. #define TIME_LEN 9
  25. #endif // !TIME_LEN
  26. #ifndef MAX_FILECOUNT
  27. #define MAX_FILECOUNT 32
  28. #endif // !MAX_FILECOUNT
  29. #ifndef MAX_PATH
  30. #define MAX_PATH 260
  31. #endif // !MAX_PATH
  32. enum PlayModeEnum
  33. {
  34. UNKNOWN = -1, // 未知
  35. SINGLE, // 单一
  36. SALESRECORD, // 客户经理
  37. LOCALAUDIO, // 本地音频
  38. LOCALVIDEO, // 本地视频
  39. THRIDSALESRECORD // 3.0客户经理双录
  40. };
  41. struct CMediaPlayConfig
  42. {
  43. char strVideoRunTime_S[TIME_LEN]; // 每天允许视频播放的起始时间
  44. char strVideoRunTime_E[TIME_LEN]; // 每天允许视频播放的终止时间
  45. bool bFullScreen; // 是否全屏
  46. bool bPrimMonitor; // 是否主屏显示
  47. bool bSimpleMode; // 是否简洁模式
  48. PlayModeEnum eMode; // 播放模式
  49. int nWndX; // 窗口X坐标
  50. int nWndY; // 窗口Y坐标
  51. int nWndWidth; // 窗口宽度
  52. int nWndHeight; // 窗口高度
  53. int nFileCnt; // 文件个数
  54. int nPlayCnt; // 播放次数
  55. int nPlayInterval; // 播放时间间隔
  56. char strNamePrefix[MAX_PATH]; // 客户经理录像名前缀
  57. char strRootPath[MAX_PATH]; // 根目录
  58. char strFileNames[MAX_FILECOUNT][MAX_PATH]; // 文件名数组
  59. int nVolume; // 音量
  60. };
  61. struct RVC_NO_VTABLE CMediaHostApi
  62. {
  63. virtual int LoadPlayConfig(CMediaPlayConfig& config, int CfgInx) = 0;
  64. virtual void Debug(const char* fmt, ...) = 0;
  65. };
  66. class libmediaplayer_impl; // 桥接
  67. class LIBMEDIAPLAYER_API Clibmediaplayer
  68. {
  69. public:
  70. Clibmediaplayer(CMediaHostApi* pHostApi);
  71. ~Clibmediaplayer();
  72. void PlayVideo(const char* pVideoDir, const char* pNamePrefix = NULL, int nVideoCount = 1);
  73. void PlayLocalAudio(const char* pAudioNames);
  74. void PlayLocalVideo(int nCfgInx, int nWndX, int nWndY, int nWndWidth, int nWndHeight);
  75. void Close();
  76. bool checkIsPlay(void* curThread);
  77. bool checkIsStop();
  78. void PlayMedia(CMediaPlayConfig& config);
  79. void SetVolume(int nVolume);
  80. void PlaySalesRecordVideo(int nWndX, int nWndY, int nWndWidth, int nWndHeight, const char* pVideoDir, const char* pNamePrefix = NULL, int nVideoCount = 1);
  81. private:
  82. libmediaplayer_impl* m_pImpl;
  83. };